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 代码开发技巧总结