构建 REST 客户端失败

握草行*_*行天下 5 kubernetes google-kubernetes-engine terraform terraform-provider-gcp terraform-provider-kubernetes

我正在尝试在 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)
}
Run Code Online (Sandbox Code Playgroud)
resource "kubernetes_manifest" "exemple" {
  provider = kubernetes-alpha
  manifest = {
     # result of tfk8s
  }
}

Run Code Online (Sandbox Code Playgroud)

错误信息

有人可以帮忙吗?

mcc*_*end 2

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

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

编辑:我仍在尝试学习管理 terraform 配置的良好模式/实践,并发现这非常有帮助。如何在 Terraform Apply 命令中提供 .tf 文件作为输入?。我最终只是将证书管理器 CRD 保留为标准 kubernetes 清单 yaml,我将其与其他应用程序 helm 图表一起应用于每个集群。