我正在尝试将 kubernetes 秘密值映射到环境变量。我的秘诀如下图
apiVersion: v1
kind: Secret
metadata:
name: test-secret
type: opaque
data:
tls.crt: {{ required "A valid value is required for tls.crt" .Values.tlscrt }}
将key映射到部署yaml中的环境变量
env:
- name: TEST_VALUE
valueFrom:
secretKeyRef:
name: test-secret
key: tls.crt
当我执行 helm install 时,该值会被映射。但是,当我执行 helm upgrade 时,更改的值不会反映在环境变量中,它仍然具有旧值。任何人都可以在这里帮忙吗?
答案 0 :(得分:2)
对 secret
或 configMap
数据的更改不会反映在现有 Pod 中。您必须删除并重新创建 pod 才能看到更改。有多种方法可以自动执行此过程(请参阅此 Q/A 示例:Helm chart restart pods when configmap changes)并且它们都有一个共同点:您需要修改 pod 定义中的某些内容以触发重新启动。更新链接的 secret
或 configMap
时不会发生这种情况,因为链接保持不变。