我想管理一个服务的配置,使用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
我是不是漏掉了什么步骤?
3条答案
按热度按时间taor4pac1#
我在尝试从google_container_cluster数据源初始化kubernetes提供程序时遇到了相同/类似的问题。
terraform show
只显示了数据源属性的所有空值。对我来说,修复方法是在数据源中指定项目,例如,https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/container_cluster#project
project -(可选)资源所属的项目。如果未提供,则使用提供程序项目。
在我的例子中,谷歌提供商指向的是一个不同的项目,而不是包含我想要获取信息的集群的项目。
此外,您应该能够从该块中删除
zone
属性。如果是区域群集,则location
应该指区域;如果是区域群集,则location
应该指区域。nkhmeac62#
当我想从scrach启动集群时,我遇到了同样的问题。那时没有声明变量。我用google_container_cluster块中的depends on参数解决了这个问题。
在我的例子中,提供者正在等待节点被部署。Kubernete提供者在节点被配置和变量被声明后开始工作。
jv4diomz3#
我问题:
name
不正确,因此数据未返回任何内容我试过了
但名称错误,必须是
my-cluster-name
最重要的是,数据指令没有说明此群集不存在 --sad_beeps--
我希望这能为其他人保存时间