Назад | Перейти на главную страницу

Как использовать Terraform для создания кластера GKE и развертывания ресурсов Kubernetes

Я хочу создать кластер GKE, а затем импортировать его как существующий кластер в Rancher. На втором этапе мне нужно установить некоторые ресурсы Kubernetes в кластер.

Создание кластера работает нормально. Я установил

master_auth {
  client_certificate_config {
    issue_client_certificate = true
  }
}

а затем получить доступ к значениям в

provider "kubernetes" {
  host                   = var.kubernetes_endpoint
  client_certificate     = var.kubernetes_client_certificate
  client_key             = var.kubernetes_client_key
  cluster_ca_certificate = var.kubernetes_cluster_ca_certificate
}

Однако я получаю сообщение об ошибке при попытке создать ресурсы Kubernetes в кластере.

Error: clusterroles.rbac.authorization.k8s.io is forbidden: User "client" cannot create resource "clusterroles" in API group "rbac.authorization.k8s.io" at the cluster scope
  on modules/install-rancher/resources.tf line 1, in resource "kubernetes_cluster_role" "proxy-clusterrole-kubeapiserver":
   1: resource "kubernetes_cluster_role" "proxy-clusterrole-kubeapiserver" {

Есть ли способ получить сертификат клиента с правами админа через Terraform?

Вот как вы можете решить мою проблему и связать разные провайдеры / развертывания Terraform.

data "google_client_config" "client_config" {
  provider = google-beta
}

provider "kubernetes" {
  load_config_file = false

  host                   = var.endpoint_from_created_cluster
  token                  = data.google_client_config.client_config.access_token
  cluster_ca_certificate = var.ca_certificate_from_created_cluster
}