![](/img/trans.png)
[英]Terraform GCP: Unable to reach Private Kubernetes Master to create kubernetes_secret
[英]How to get the data.token from Kubernetes_secret terraform resource
我正在嘗試訪問 terraform 中的Kubernetes_secret
data.token
屬性,但我不斷收到錯誤消息
Resource 'data.kubernetes_secret.misp_whitelist_secret' does not have attribute 'data.token' for variable 'data.kubernetes_secret.misp_whitelist_secret.data.token'
解決這個問題的方法是什么?
resource "kubernetes_service_account" "misp_whitelist_sa" {
metadata {
name = "misp-whitelist-sa"
}
}
data "kubernetes_secret" "misp_whitelist_secret" {
metadata {
name = "${kubernetes_service_account.misp_whitelist_sa.default_secret_name}"
namespace = "${kubernetes_service_account.misp_whitelist_sa.metadata.0.namespace}"
}
depends_on = [
"kubernetes_service_account.misp_whitelist_sa",
]
}
我正在嘗試訪問 terraform google_cloud_function 資源中的 data.token
resource "google_cloudfunctions_function" "misp_whitelist_function" {
name = "${var.cluster}-misp-whitelist"
....<additional data> .....
environment_variables = {
CLUSTER = "${var.cluster}"
PROJECT = "${var.project}"
AUTH = "${data.kubernetes_secret.misp_whitelist_secret.data.token}"
}
}
訪問數據密鑰的正確方法是:
AUTH = "${data.kubernetes_secret.misp_whitelist_secret.data["token"]}"
好吧,我的頭撞在牆上很長時間了。 另一個答案是正確的,但跳過了關鍵步驟。
您需要確保秘密聲明了正確的類型(還可能指定注釋?)
resource "kubernetes_secret" "vault" {
metadata {
name = "vault-token"
annotations = {
"kubernetes.io/service-account.name" = "vault"
}
}
type = "kubernetes.io/service-account-token" // THIS!
}
然后,一旦指定了正確的類型,就可以使用令牌
output "token" {
value = kubernetes_secret.vault.data.token
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.