【发布时间】:2021-03-29 10:02:03
【问题描述】:
我有一个模块调用另一个模块,我将 kubernetes 提供程序从主模块传递给第一个模块,然后将它传递给另一个模块。传递给第一个模块的提供者工作正常,但从第一个模块传递给其他模块的提供者不起作用
main.tf
data "google_container_cluster" "gke" {
depends_on = [module.gke]
name = var.gke_cluster_name
project = var.project_id
location = var.gke_zone
}
provider "kubernetes" {
alias = "my-kuber"
host = "https://${data.google_container_cluster.gke.endpoint}"
token = data.google_client_config.provider.access_token
cluster_ca_certificate = base64decode(data.google_container_cluster.gke.master_auth[0].cluster_ca_certificate)
load_config_file = false
}
module "first-module" {
source = "./modules/first-module"
providers {
kubernetes.my-kuber = kubernetes.my-kuber
}
.
.
.
}
first-module.tf
provider "kubernetes" {
alias = "my-kuber"
}
module "sub-module" {
source = "./modules/second-module"
providers {
kubernetes.my-kuber = kubernetes.my-kuber
}
.
.
.
}
第二个模块.tf
provider "kubernetes" {
alias = "my-kuber"
}
resource "kubernetes_namespace" "ns" {
provider = kubernetes.my-kuber
metadata {
name = var.namespace
}
}
这里传递给second_module.tf 的 kubernetes.my-kuber 没有正确的集群凭据并且它失败了
我错过了什么吗?是否支持将提供程序向下传递到子模块?
提前致谢
【问题讨论】:
标签: kubernetes terraform google-kubernetes-engine