Terraform data.google_container_cluster.cluster.endpoint 为空

Posted

技术标签:

【中文标题】Terraform data.google_container_cluster.cluster.endpoint 为空【英文标题】:Terraform data.google_container_cluster.cluster.endpoint is null 【发布时间】:2021-11-29 21:47:01 【问题描述】:

我想管理使用 terraform 到使用外部 terraform 脚本定义的 GKE 集群的服务的配置。

我使用kubernetes_secret 创建了配置。

类似下面的东西

resource "kubernetes_secret" "service_secret" 
  metadata 
    name = "my-secret"
    namespace = "my-namespace"
    

  data = 
    username = "admin"
    password = "P4ssw0rd"
  

而且我也把这个google客户端配置来配置kubernetes提供者。

data "google_client_config" "current" 



data "google_container_cluster" "cluster" 
  name = "my-container"
  location = "asia-southeast1"
  zone = "asia-southeast1-a"


provider "kubernetes" 
  host                   = "https://$data.google_container_cluster.cluster.endpoint"
  token                  = data.google_client_config.current.access_token
  cluster_ca_certificate = base64decode(data.google_container_cluster.cluster.master_auth[0].cluster_ca_certificate)

当我应用 terraform 时,它会在下面显示错误消息

data.google_container_cluster.cluster.endpoint is null

我错过了这里的一些步骤吗?

【问题讨论】:

如果您只有 google_container_cluster 数据源并输出完整的内容,那会显示什么? @ydaetskcoR 我该怎么做?可以给我示例代码吗? 【参考方案1】:

在尝试从 google_container_cluster 数据源初始化 kubernetes 提供程序时,我遇到了相同/类似的问题。 terraform show 刚刚显示了数据源属性的所有空值。我的解决方法是在数据源中指定项目,例如,

data "google_container_cluster" "cluster" 
  name     = "my-container"
  location = "asia-southeast1"
  zone     = "asia-southeast1-a"
  project  = "my-project"

https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/container_cluster#project

project - (可选)资源所属的项目。如果未提供,则使用提供者项目。

在我的例子中,谷歌提供商指向的项目与包含我想要获取信息的集群的项目不同。

此外,您应该能够从该块中删除zone 属性。 location 如果是区域集群,则应指区域;如果是区域集群,则应指区域。

【讨论】:

以上是关于Terraform data.google_container_cluster.cluster.endpoint 为空的主要内容,如果未能解决你的问题,请参考以下文章

Terraform 学习总结——Terraform 命令详解

Terraform 学习总结(10)—— 阿里云平台 Terraform 代码开发技巧总结

Terraform 学习总结(10)—— 阿里云平台 Terraform 代码开发技巧总结

Terraform 学习总结(10)—— 阿里云平台 Terraform 代码开发技巧总结

terraform如何创建数据盘

Terraform 学习总结—— Terraform 常用命令再总结