【问题标题】:Terraform GCE and kubernetesTerraform GCE 和 Kubernetes
【发布时间】:2018-03-28 11:47:19
【问题描述】:

我使用 terraform 配置 Google 容器引擎,并且还使用 terraform Kubernetes 提供程序。我在私人仓库中有一些 docker 镜像,我喜欢使用 kubernetes 提供程序来拉取,但我在使用 image_pull_secrets 时遇到了一些困难。

resource "kubernetes_service_account" "example" {
  metadata {
    name = "terraform-example"
  }
  secret {
    name = "${kubernetes_secret.example.metadata.0.name}"
  }
}

resource "kubernetes_secret" "example" {
  metadata {
    name = "terraform-example"
  }
}

我想知道我应该为 image_pull_secrets 使用什么。

  resource "kubernetes_replication_controller" "xxx-rest-client" {
    metadata {
      name = "xxx-rest-client"
      labels {
        app = "xxx-rest-client"
      }
    }
    spec {
      replicas = 2
      selector {
        name = "xxx-rest-client"
      }
      template {
        image_pull_secrets   = ["${kubernetes_service_account.example.UNKNOWN}"]
        container {
          image               = "test/xxx-rest-client"
          name                = "xxx-rest-client"
          //port  = ["3128"]

          resources{
            limits{
              cpu    = "1.0"
              memory = "512Mi"
            }
            requests{
              cpu    = "250m"
              memory = "50Mi"
            }
          }
        }
      }
    }
     depends_on = ["google_container_cluster.xxx"]
  }

【问题讨论】:

  • 当我使用 image_pull_secrets = ["${kubernetes_service_account.example.default_secret_name}"] 我会得到这个错误:1 个错误发生:* kubernetes_replication_controller.XXX:"spec.0.template. 0.image_pull_secrets.0.name": 未设置必填字段

标签: kubernetes terraform google-compute-engine


【解决方案1】:

pull secrets 列表的每个元素都需要是一个地图。

image_pull_secrets = [
  {
    name = "${kubernetes_service_account.example.default_secret_name}"
  }
]

试一试,它应该适合你。

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2016-04-05
    • 2019-04-16
    • 1970-01-01
    • 2021-07-15
    • 2017-11-23
    • 2019-11-26
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多