[英]Re-using UUID in helm configmap
有一个类似的问题暗示了在用作秘密或配置图时在 helm 图表中自动生成 uuid 的可能性。 我正在努力做到这一点,但每次我都会得到一个新的 uuid。
我的测试用例:
---
{{- $config := (lookup "v1" "ConfigMap" .Release.Namespace "{{ .Release.Name }}-testcase") -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ .Release.Name }}-testcase"
namespace: "{{ .Release.Namespace }}"
labels:
app.kubernetes.io/managed-by: "{{ .Release.Service }}"
app.kubernetes.io/instance: "{{ .Release.Name }}"
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
data:
{{- if $config }}
TEST_VALUE: {{ $config.data.TEST_VALUE | quote }}
{{- else }}
TEST_VALUE: {{ uuidv4 | quote }}
{{ end }}
我最初使用以下方法部署它:
helm upgrade --install --namespace test mytest .
如果我再次运行它,或者使用helm diff upgrade --namespace test mytest.
我得到了TEST_VALUE
的新值。 当我转储$config
的内容时,它是一个空的 map {}
。
我使用的是 Helm v3.9.0,kubectl 1.24,kube 服务器是 1.22。
注意:我无法在其他帖子的评论中提问,因为我没有足够的声誉。
参考我的问题,您附上了堆栈溢出帖子: https://github.com/helm/helm/issues/11187
使您的 configmap 工作的一种方法是在有条件地设置您的值之前将其保存为变量。 这意味着每次升级时,您都会生成一个通常不会使用的 UUID,但这并不引人注目。 分配现有值时,:= 应变为 =。 也不要忘记 b64enc 您在清单中的值
{{- $config := uuidv4 | b64enc | quote -}}
{{- $config_lookup := (lookup "v1" "ConfigMap" .Release.Namespace "{{ .Release.Name }}-testcase") -}}
{{- if $config_lookup -}}
{{- $config = $config_lookup.data.TEST_VALUE -}}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ .Release.Name }}-testcase"
namespace: "{{ .Release.Namespace }}"
labels:
app.kubernetes.io/managed-by: "{{ .Release.Service }}"
app.kubernetes.io/instance: "{{ .Release.Name }}"
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
data:
TEST_VALUE: {{ $config | quote }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.