首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform data.google_container_cluster.cluster.endpoint为空

Terraform data.google_container_cluster.cluster.endpoint为空
EN

Stack Overflow用户
提问于 2021-10-11 04:49:58
回答 1查看 254关注 0票数 1

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

我使用kubernetes_secret创建了配置。

类似于下面的内容

代码语言:javascript
复制
resource "kubernetes_secret" "service_secret" {
  metadata {
    name = "my-secret"
    namespace = "my-namespace"
  }  

  data = {
    username = "admin"
    password = "P4ssw0rd"
  }
}

我还将此google客户端配置用于配置kubernetes提供程序。

代码语言:javascript
复制
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

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

EN

回答 1

Stack Overflow用户

发布于 2021-10-26 17:04:47

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

代码语言:javascript
复制
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

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

在我的例子中,google提供商指向了一个不同的项目,而不是包含我想要获取信息的集群的项目。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69521179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档