【问题标题】:How to use a token created in a secret in another resource?如何使用在另一个资源的秘密中创建的令牌?
【发布时间】:2020-03-07 03:12:21
【问题描述】:

我正在尝试创建服务帐户密码,以便使用令牌填充密码:

resource "kubernetes_service_account" "k8s-api-token" {
  metadata {
    namespace = "${var.whatever_namespace}"
    name = "api-service-account"
  }
  secret {
    name = "api-service-account-secret"
  }
}

resource "kubernetes_secret" "k8s-api-token" {
  metadata {
    namespace = "${var.whatever_namespace}"
    name = "${kubernetes_service_account.k8s-api-token.metadata.0.name}-secret"
    annotations = {
      "kubernetes.io/service-account.name" = "${kubernetes_service_account.k8s-api-token.metadata.0.name}"
    }
  }
  type = "kubernetes.io/service-account-token"
}

data "kubernetes_secret" "k8s-api-token" {
  depends_on = ["kubernetes_secret.k8s-api-token"]
  metadata {
    namespace = "${var.whatever_namespace}"
    name = "${kubernetes_secret.k8s-api-token.metadata.0.name}"
  }
}

resource "kubernetes_secret" "whatever-secrets" {
  depends_on = ["kubernetes_secret.k8s-api-token"]
  metadata {
    name = "botfront-secrets"
    namespace = "${var.whatever_namespace}"
  }

  data = {
    K8S_API   = "${data.kubernetes_secret.k8s-api-token.data.token}"
  }
}

但它给了我一个错误: Resource 'data.kubernetes_secret.k8s-api-token' does not have attribute 'data.token' for variable 'data.kubernetes_secret.k8s-api-token.data.token'

我可以验证秘密是否已创建,但即使运行 terraform state show kubernetes_secret.k8s_api_token 也不会返回任何内容

我做错了什么?

【问题讨论】:

  • 如果您删除kubernetes_secret.api-secrets 资源,它实际上会输出吗?还是输出为空?
  • @ydaetskcoR 我只有unknown resource 'kubernetes_secret.api-secrets' referenced in variable kubernetes_secret.api.data.token
  • @ydaetskcoR 我编辑了我的问题以更好地描述我想要实现的目标。
  • 你能确认你在这里使用的是 Terraform 0.11 吗?

标签: terraform terraform-provider-kubernetes


【解决方案1】:

解决方法是使用查找:

K8S_API = ${lookup(data.kubernetes_secret.k8s-api-token-data.data, "token","")}

来源:http://blog.crashtest-security.com/resource-does-not-have-attribute

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2020-11-26
    • 1970-01-01
    • 2020-12-17
    • 2020-07-27
    相关资源
    最近更新 更多