我正在尝试编写用于在 Google Cloud 上引导 GKE 集群(使用 RBAC)的 terraform 代码。GKE 集群已成功创建,但我想创建一个服务帐户,我可以在以后的kubernetes
提供程序配置中重用它。这意味着我需要kubernetes
在我的子模块中使用提供程序来临时创建kubernetes_service_account
其余 terraform 代码所需的内容。
resource "google_container_cluster" "k8s_autopilot_cluster" { ... }
provider kubernetes {
alias = "k8s_gcloud_temp"
cluster_ca_certificate = base64decode(google_container_cluster.k8s_autopilot_cluster.master_auth.0.cluster_ca_certificate)
host = google_container_cluster.k8s_autopilot_cluster.endpoint
client_certificate = base64decode(google_container_cluster.k8s_autopilot_cluster.master_auth.0.client_certificate)
client_key = base64decode(google_container_cluster.k8s_autopilot_cluster.master_auth.0.client_key)
}
resource "kubernetes_service_account" "terraform_k8s_sa" {
provider = kubernetes.k8s_gcloud_temp
metadata {
namespace = "kube-system"
name = "terraform-k8s-sa"
}
automount_service_account_token = false
}
所以我的集群创建成功,但我的创建kubernetes_service_account
总是失败,Error: serviceaccounts is forbidden: User "system:anonymous" cannot create resource "serviceaccounts" in API group "" in the namespace "kube-system"
.
知道为什么我不能使用master_auth
以及应该使用什么吗?