【问题标题】:Terraform kubernetes_config_map --from-env-fileTerraform kubernetes_config_map --from-env-file
【发布时间】:2019-12-18 09:54:05
【问题描述】:

我正在使用“--from-env-file”选项创建一个 kubernetes configMap,以将文件内容存储为环境变量。

kubectl create configmap env --from-env-file=env.properties -n namespace

当我如下创建一个 terraform 资源时,创建的 configMap 包含一个文件,而不是环境变量。

resource "kubernetes_config_map" "env" {
  metadata {
    name = "env-config"
    namespace = var.namespace
  }
  data = {
    "env.properties"   = "${file("${path.module}/env.properties")}"
  }
}

如何使用 terraform-kubernetes-provider 资源创建将文件内容作为环境变量的 configMap?

【问题讨论】:

    标签: kubernetes terraform configmap terraform-provider-kubernetes


    【解决方案1】:

    如果env.properties 看起来像这样:

    $ cat env.properties
    enemies=aliens
    lives=3
    allowed="true"
    

    那么kubectl create configmap env --from-env-file=env.properties -n namespace 会产生这样的结果:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: env
      namespace: namespace
    data:
      allowed: '"true"'
      enemies: aliens
      lives: "3"
    

    但是你用 Terraform 做的事情会更像这样:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: env
      namespace: namespace
    data:
      env.properties: |
        enemies=aliens
        lives=3
        allowed="true"
    

    基于Terraform docs,您正在寻找的似乎是不可能的,即Terraform 提供程序中对--from-env-file 行为的一些本机支持。

    您通过 Terraform 方式获得的 ConfigMap 格式仍然有用,您可能只需要更改将数据从 ConfigMap 提取到您的 pod/部署中的方式。如果您可以分享更多详细信息,甚至是您使用配置映射的 pod/部署的简化/清理示例,则可以描述如何更改这些以利用 ConfigMap 的不同样式。查看更多here

    【讨论】:

    • 是的,我在文档中找不到足够的信息来实现 --from-env-file 选项。但是,是的,我知道另一种方式,我可以在我的部署中修改这个 configMap 的使用。谢谢。
    猜你喜欢
    • 2019-05-09
    • 2012-08-09
    • 2012-01-23
    • 1970-01-01
    • 2022-12-27
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    相关资源
    最近更新 更多