构建REST客户端失败

问题描述

我正在尝试在 terraform 中使用 kubernetes-alpha 提供程序,但出现“无法构建 REST 客户端”错误消息。 我正在使用 tfk8s 将我的 yaml 文件转换terraform 代码

我为提供者比 kubernetes 做 seme 声明,我的 kubernetes 提供者正常工作

provider "kubernetes-alpha" {
  host                   = "https://${data.google_container_cluster.primary.endpoint}"
  token                  = data.google_client_config.default.access_token
  cluster_ca_certificate = base64decode(data.google_container_cluster.primary.master_auth[0].cluster_ca_certificate)
}

provider "kubernetes" {
  host                   = "https://${data.google_container_cluster.primary.endpoint}"
  token                  = data.google_client_config.default.access_token
  cluster_ca_certificate = base64decode(data.google_container_cluster.primary.master_auth[0].cluster_ca_certificate)
}
resource "kubernetes_manifest" "exemple" {
  provider = kubernetes-alpha
  manifest = {
     # result of tfk8s
  }
}

the error message

有人可以帮忙吗?

解决方法

经过一番挖掘,我发现这个资源需要一个正在运行的 kubernetes 实例和配置,然后 terraform 计划才能正常工作。最好在 github 中说明:https://github.com/hashicorp/terraform-provider-kubernetes-alpha/issues/199#issuecomment-832614387

基本上,您必须有两个步骤,首先 terraform 应用您的主要配置以在您的云中建立 kubernetes,然后在该集群建立后 terraform 应用 CRD 资源。

编辑:我仍在努力学习管理 terraform 配置的良好模式/实践,发现这非常有用。 How to give a .tf file as input in Terraform Apply command?。我最终只是将证书管理器 CRD 保留为标准的 kubernetes 清单 yaml,我将其与其他应用程序舵图一起应用于每个集群。