无法将configmap数据作为环境变量添加到pod中。它说不能将无效的变量名称添加为环境变量

时间:2020-07-22 07:37:45

标签: kubernetes openshift

我正在尝试将配置数据添加为环境变量,但是Kubernetes警告有关无效的变量名称。 configmap数据包含JSON和属性文件。

spec:
  containers:
    - name: env-var-configmap
      image: nginx:1.7.9 
      envFrom:
        - configMapRef:
            name: example-configmap

部署后,我看不到它们已添加到流程环境中。相反,我看到如下警告消息

Config映射example-configmap包含不是有效环境变量名称的键。只有具有有效名称的配置映射键将被添加为环境变量。

但是我看到如果直接将其作为键值对添加它会起作用

env:
  # Define the environment variable
  - name: SPECIAL_LEVEL_KEY
    valueFrom:
      configMapKeyRef:
        # The ConfigMap containing the value you want to assign to SPECIAL_LEVEL_KEY
        name: special-config
        # Specify the key associated with the value
        key: special.how

我在configmap数据中有数千个键值,因此无法将它们全部添加为单独的键值对。

是否有简短的语法将configmap中的所有值添加为环境变量?

2 个答案:

答案 0 :(得分:0)

示例参考如下

create configmap as shown below

apiVersion: v1
kind: ConfigMap
metadata:
  name: special-config
  namespace: default
data:
  SPECIAL_LEVEL: very
  SPECIAL_TYPE: charm
load configmap data as environment variables in the pod

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  containers:
    - name: test-container
      image: k8s.gcr.io/busybox
      command: [ "/bin/sh", "-c", "env" ]
      envFrom:
      - configMapRef:
          name: special-config
  restartPolicy: Never
output

master $ kubectl logs dapi-test-pod | grep SPECIAL
SPECIAL_LEVEL=very
SPECIAL_TYPE=charm

答案 1 :(得分:0)

我的回答,虽然@P-Ekambaram 已经帮助了你,但我收到了同样的错误信息,结果是我的问题是我将 configMap ms-provisioning-broadsoft-adapter 命名并试图使用 {{1} } 作为关键。一旦我将它们的键更改为 ms-provisioning-broadsoft-adapter,例如我添加了下划线而不是连字符,它很高兴让我将它添加到应用程序中。

希望这可以帮助其他人也遇到错误 ms_provisioning_broadsoft_adapter

相关问题