我有一个configmap,其中我在data
部分定义了以下键值Map:
apiVersion: v1
kind: ConfigMap
metadata:
namespace: test
name: test-config
data:
TEST: "CONFIGMAP_VALUE"
字符串
然后在容器的定义中(在deployment / statefulset manifest中)有以下内容:
env:
- name: TEST
value: "ANOTHER_VALUE"
envFrom:
- configMapRef:
name: test-config
型
当这样做时,我期望来自configmap的值(TEST=“CONFIGMAP_VALUE”)将覆盖容器规范(TEST=“ANOTHER_VALUE”)中指定的(默认)值,但事实并非如此(TEST总是从容器规范中获取值)。我找不到任何相关的文档-有可能实现这种env变量值覆盖吗?
1条答案
按热度按时间5kgi1eie1#
Kubernetes API参考:
envFrom
:用于填充容器中环境变量的源列表。源中定义的键必须是C_IDENTIFIER。当容器启动时,所有无效的密钥都将作为事件报告。当一个键存在于多个源中时,与最后一个源关联的值将优先。由具有重复键的环境定义的值将优先。无法更新。所以上面清楚地说明了env将优先于envFrom。
当一个键存在于多个源中时,与最后一个源关联的值将优先。
因此,对于重写,不要使用
envFrom
,而是在env
中定义两次值,如下所示:字符串
检查:
型