2

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

我为提供者做出了比 kubernetes 更重要的声明,并且我的 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
  }
}

错误信息

有人可以帮忙吗?

4

1 回答 1

1

经过一番挖掘,我发现这个资源需要一个运行的 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 图表一起应用。

于 2021-05-14T20:03:43.243 回答