kubernetes 地形data.google的端点为空

irlmq6kh  于 2022-11-28  发布在  Kubernetes
关注(0)|答案(3)|浏览(108)

我想管理一个服务的配置,使用terraform到一个使用外部terraform脚本定义的GKE集群。
我使用kubernetes_secret创建了配置。
类似以下内容

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

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

我还把这个谷歌客户端配置配置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
我是不是漏掉了什么步骤?

taor4pac

taor4pac1#

我在尝试从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应该指区域;如果是区域群集,则location应该指区域。

nkhmeac6

nkhmeac62#

当我想从scrach启动集群时,我遇到了同样的问题。那时没有声明变量。我用google_container_cluster块中的depends on参数解决了这个问题。

data "google_container_cluster" "my_cluster" {
  name = var.project_name

  depends_on = [
    google_container_node_pool.e2-small
  ]
}

在我的例子中,提供者正在等待节点被部署。Kubernete提供者在节点被配置和变量被声明后开始工作。

jv4diomz

jv4diomz3#

我问题:
name不正确,因此数据未返回任何内容
我试过了

data "google_container_cluster" "my_cluster" {
  name     = "gke_my-project-name_us-central1_my-cluster-name"
  location = "us-central1"
}

但名称错误,必须是my-cluster-name
最重要的是,数据指令没有说明此群集不存在 --sad_beeps--

data "google_container_cluster" "my_cluster" {
  name     = "my-cluster-name"
  location = "us-central1"
}

我希望这能为其他人保存时间

相关问题