【发布时间】:2021-03-09 20:39:29
【问题描述】:
我有一个模板和一个部署,我的部署的环境变量之一是来自一个秘密的值,其中包含刚刚使用该模板的命名空间的名称。 secret 必须包含命名空间的名称,我无法更改。
我知道可以使用环境变量作为不同环境变量的值。看起来像这样:
env:
- name: MY_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: FULL_NAME
value: ${MY_NAME}.$(MY_NAMESPACE)
这样,如果我的命名空间的名称是 app 并且 MY_NAME 参数是 dan:
echo $FULL_NAME
> dan.app
但我想使用该名称作为对秘密名称的引用。像这样:
env:
- name: MY_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: FULL_NAME_SECRET
valueFrom:
secretKeyRef:
name: ${MY_NAME}.$(MY_NAMESPACE)
key: app_name
我收到一个事件:
Pod“test-0”无效[spec.containers[0].env[1].valueFrom.secretKeyRef.name:无效值:“dan.$(MY_NAMESPACE)”:DNS-1123 子域必须包含小写字母数字字符,“-”或“.”,并且必须以字母数字字符开头
基本上它不会将 $(MY_NAMESPACE) 转换为其 env 变量的实际值。
【问题讨论】:
标签: kubernetes openshift