无法将 configmap 数据作为环境变量添加到 pod 中。它说不能将无效的变量名添加为环境变量
Unable to add configmap data as environment variables into pod. it says invalid variable name cannot be added as environmental variable
我正在尝试将配置数据添加为环境变量,但 Kubernetes 警告变量名称无效。 configmap 数据包含 JSON 和 属性 个文件。
spec:
containers:
- name: env-var-configmap
image: nginx:1.7.9
envFrom:
- configMapRef:
name: example-configmap
部署后我没有看到它们被添加到进程环境中。相反,我看到如下警告消息
Config map example-configmap contains keys that are not valid environment variable names. Only config map keys with valid names will be added as environment variables.
但我发现如果我直接将它作为键值对添加它就可以了
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 中的所有值添加为环境变量?
示例参考如下
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
我的回答是,虽然@P-Ekambaram 已经帮助你解决了问题,但我收到了同样的错误消息,事实证明我的问题是我将 configMap 命名为 ms-provisioning-broadsoft-adapter
并试图使用 ms-provisioning-broadsoft-adapter
作为关键。一旦我将它们的键更改为 ms_provisioning_broadsoft_adapter
,例如我添加了下划线而不是连字符,它很乐意让我将它添加到应用程序中。
希望这对同样遇到错误的其他人有所帮助 invalid variable name cannot be added as environmental variable
您应该重命名您的变量。
在我的例子中,他们是这样的:
VV-CUSTOMER-CODE
VV-CUSTOMER-URL
我刚刚重命名为:
VV_CUSTOMER_CODE
VV_CUSTOMER_URL
工作正常。 Openshift/kubernets 适用于 下划线 _,但不适用于连字符 - .
希望对你有帮助
我正在尝试将配置数据添加为环境变量,但 Kubernetes 警告变量名称无效。 configmap 数据包含 JSON 和 属性 个文件。
spec:
containers:
- name: env-var-configmap
image: nginx:1.7.9
envFrom:
- configMapRef:
name: example-configmap
部署后我没有看到它们被添加到进程环境中。相反,我看到如下警告消息
Config map example-configmap contains keys that are not valid environment variable names. Only config map keys with valid names will be added as environment variables.
但我发现如果我直接将它作为键值对添加它就可以了
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 中的所有值添加为环境变量?
示例参考如下
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
我的回答是,虽然@P-Ekambaram 已经帮助你解决了问题,但我收到了同样的错误消息,事实证明我的问题是我将 configMap 命名为 ms-provisioning-broadsoft-adapter
并试图使用 ms-provisioning-broadsoft-adapter
作为关键。一旦我将它们的键更改为 ms_provisioning_broadsoft_adapter
,例如我添加了下划线而不是连字符,它很乐意让我将它添加到应用程序中。
希望这对同样遇到错误的其他人有所帮助 invalid variable name cannot be added as environmental variable
您应该重命名您的变量。
在我的例子中,他们是这样的:
VV-CUSTOMER-CODE
VV-CUSTOMER-URL
我刚刚重命名为:
VV_CUSTOMER_CODE
VV_CUSTOMER_URL
工作正常。 Openshift/kubernets 适用于 下划线 _,但不适用于连字符 - .
希望对你有帮助