您根本不需要此处的google_container_cluster
数据源,因为相关信息也在您在同一上下文中创建的google_container_cluster
资源中。
数据源用于访问完全在 Terraform 之外或在不同 Terraform 上下文中创建的资源的数据(例如,不同的状态文件和不同的目录,即terraform apply
'd)。
我不确定您当前处于何种状态,数据源正在选择现有容器集群,然后您定义一个资源以使用数据源的输出创建该容器集群,但这过于复杂且略有破坏 -如果您销毁所有内容并重新应用它,它将无法按原样工作。
相反,您应该删除google_container_cluster
数据源并将google_container_cluster
资源修改为:
resource "google_container_cluster" "cluster" {
name = "${var.project}-cluster"
location = var.region
# ...
}
然后在您的提供程序中引用此资源kubernetes
:
provider "kubernetes" {
load_config_file = false
host = "https://${google_container_cluster.cluster.endpoint}"
cluster_ca_certificate = base64decode(google_container_cluster.cluster.master_auth.0.cluster_ca_certificate)
token = data.google_client_config.current.access_token
}