将kubernetes定义中定义的env值扩展到container
Expand the env value defined in kubernetes definition to container
我正在尝试在 docker 容器中设置一些环境变量,下面是来自 kubernetes pod 定义的环境定义部分。
env:
- name: NRIA_LICENSE_KEY
value: NRIA_LICENSE_KEY
-name: NRIA_DISPLAY_NAME
value: abc-$HOSTNAME
然而,当我在容器中回显 NRIA_DISPLAY_NAME 变量的值时,我得到的输出低于预期。
echo $NRIA_DISPLAY_NAME
NRIA_DISPLAY_NAME=abc-$HOSTNAME
预期输出:
echo $NRIA_DISPLAY_NAME
NRIA_DISPLAY_NAME=abc-myhostname ($HOSTNAME should be replaced with the actual hostname value)
我也试过在命令标签中设置它,但没有用。
command: [ "bash", "-c", "export NRIA_DISPLAY_NAME=abc-$HOSTNAME" ]
- name: NRIA_DISPLAY_NAME
value: abc-$HOSTNAME
应该对其进行两处更改:
确保您希望替换的内容 也 出现在 env:
块中——我知道您可能认为 $HOSTNAME
普遍存在,但并不总是如此,在 kubernetes 心智模型中肯定不是这样
使用语法 $(INTERPOLATION_HERE)
而不是 bash-centric $VAR
或 ${VAR}
。该语法记录在 PodSpec
参考文献
中
因此:
env:
- name: HOSTNAME
valueFrom:
fieldRef:
fieldPath: metadata.name
# or "status.hostIP" or "spec.nodeName" etc
- name: NRIA_DISPLAY_NAME
value: abc-$(HOSTNAME)
我正在尝试在 docker 容器中设置一些环境变量,下面是来自 kubernetes pod 定义的环境定义部分。
env:
- name: NRIA_LICENSE_KEY
value: NRIA_LICENSE_KEY
-name: NRIA_DISPLAY_NAME
value: abc-$HOSTNAME
然而,当我在容器中回显 NRIA_DISPLAY_NAME 变量的值时,我得到的输出低于预期。
echo $NRIA_DISPLAY_NAME
NRIA_DISPLAY_NAME=abc-$HOSTNAME
预期输出:
echo $NRIA_DISPLAY_NAME
NRIA_DISPLAY_NAME=abc-myhostname ($HOSTNAME should be replaced with the actual hostname value)
我也试过在命令标签中设置它,但没有用。
command: [ "bash", "-c", "export NRIA_DISPLAY_NAME=abc-$HOSTNAME" ]
- name: NRIA_DISPLAY_NAME
value: abc-$HOSTNAME
应该对其进行两处更改:
确保您希望替换的内容 也 出现在
env:
块中——我知道您可能认为$HOSTNAME
普遍存在,但并不总是如此,在 kubernetes 心智模型中肯定不是这样使用语法
$(INTERPOLATION_HERE)
而不是 bash-centric$VAR
或${VAR}
。该语法记录在PodSpec
参考文献 中
因此:
env:
- name: HOSTNAME
valueFrom:
fieldRef:
fieldPath: metadata.name
# or "status.hostIP" or "spec.nodeName" etc
- name: NRIA_DISPLAY_NAME
value: abc-$(HOSTNAME)