Kubernetes 如何将configMap加载到环境变量中?

Kubernetes 如何将configMap加载到环境变量中?,kubernetes,Kubernetes,如何将configMap加载到环境变量中 我做过的事情 Kubernetes仅描述了此场景,并遵循此场景: 实际上,我已经通过Terraform设置了我的configMap: resource "kubernetes_config_map" "production_database_host" { metadata { name = "production-database-host" } data { connection_name = "${google_sql

如何将configMap加载到环境变量中

我做过的事情

Kubernetes仅描述了此场景,并遵循此场景:

实际上,我已经通过Terraform设置了我的
configMap

resource "kubernetes_config_map" "production_database_host" {
  metadata {
    name = "production-database-host"
  }

  data {
    connection_name = "${google_sql_database_instance.master.connection_name}"
  }
}
但是通过Kubernetes,它看起来是这样的:

apiVersion: v1
data:
  connection_name: this_string_is_redacted
kind: ConfigMap
metadata:
  creationTimestamp: 2018-10-12T05:49:49Z
  name: production-database-host
  namespace: default
  resourceVersion: "316273"
  selfLink: /api/v1/namespaces/default/configmaps/production-database-host
  uid: a1c06423-cde2-11e8-b615-42010a800235
(通过运行
kubectl get configmap生产数据库主机-o yaml
获取)

现在,我还有一个工作容器,在部署中,我添加了一个环境变量,如下所示:

env:
 - name: INSTANCE_CONNECTION_NAME
   valueFrom:
     configMapKeyRef:
       name: production-database-host
       key: connection_name
但是,应用此配置会使我:

$ kubectl apply -f .

error: error converting YAML to JSON: yaml: line 39: did not find expected key
我做错了什么?为什么不直接将
这个字符串\u被\u编辑
加载到
实例\u连接\u名称
环境变量中


编辑:我的基础结构的所有源代码都在这里。首先应用地形文件,它们创建Kubnernetes集群并添加configMap。然后我应用Kubernetes配置。

这是一个格式问题,不幸的是块:

env:
 - name: INSTANCE_CONNECTION_NAME
   valueFrom:
     configMapKeyRef:
       name: production-database-host
       key: connection_name

比我本该缩进的多了一个空格。其他一切都很好。

您可以粘贴您使用的整个yaml吗。yaml有什么问题吗?是否可能是格式问题、yaml中定义的节的api版本错误或语法错误。正在查找部署的清单yaml文件。看起来可能是格式问题,您正在应用哪个文件并明确给出错误?@Veerendra I可以做得更好,我已经用整个代码库粘贴了一个到repo的链接。@mk_sta done,我已经添加了所有源文件。