繁体   English   中英

在 helm configmap 中重用 UUID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM