Kubernetes 舵手:如何避免在升级时重现秘密?
我在一个秘密模板中有这样的东西:Kubernetes 舵手:如何避免在升级时重现秘密?,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我在一个秘密模板中有这样的东西: apiVersion: v1 kind: Secret metadata: # not relevant type: Opaque data: password: {{ randAlphaNum 32 | b64enc | quote }} 现在,当进行头盔升级时,秘密被重新创造,但是使用这个的吊舱不是,他们也不应该,这没关系 这会导致POD在重新启动或升级时失败,因为新密码与旧密码不匹配 当秘密存在时,是否可以跳过重新创建它,如{-if notesi
apiVersion: v1
kind: Secret
metadata:
# not relevant
type: Opaque
data:
password: {{ randAlphaNum 32 | b64enc | quote }}
现在,当进行头盔升级时,秘密被重新创造,但是使用这个的吊舱不是,他们也不应该,这没关系
这会导致POD在重新启动或升级时失败,因为新密码与旧密码不匹配
当秘密存在时,是否可以跳过重新创建它,如{-if notesists theSecret}}以及如何执行?您可以使用HELM中的查找功能检查秘密是否存在
舵图中的功能如下所示:
秘密创造就像
示例文件:
图表示例:
您可以使用HELM中的查找功能检查机密是否存在
舵图中的功能如下所示:
秘密创造就像
示例文件:
图表示例:
我已经找到了,如何插入正确的模板参数?{{-if lookup v1 Secret{{.Release.Namespace}{{{include mychart.fullname.}}-Secret}}不起作用我不知道模板参数的含义?可能还没有,我是新手。检查一下帮助的验证你在使用3.1吗?或者你面临的错误?后续:我升级了头盔,仍然有3.2.4,到3.5.4,现在它可以工作了。我已经找到了这个,我如何插入正确的模板参数?{{-if lookup v1 Secret{{.Release.Namespace}{{{include mychart.fullname.}}-Secret}}不起作用我不知道模板参数的含义?可能还没有,我是新手。检查一下帮助的验证你在使用3.1吗?还是你面临的错误?后续:我升级了头盔,仍然有3.2.4,到3.5.4,现在它可以工作了。
{{/*
Example for function
*/}}
{{- define "gen.secret" -}}
{{- $secret := lookup "v1" "Secret" .Release.Namespace "test-secret" -}}
{{- if $secret -}}
{{/*
Reusing value of secret if exist
*/}}
password: {{ $secret.data.password }}
{{- else -}}
{{/*
add new data
*/}}
password: {{ randAlphaNum 32 | b64enc | quote }}
{{- end -}}
{{- end -}}
apiVersion: v1
kind: Secret
metadata:
name: "test-secret"
type: Opaque
data:
{{- ( include "gen.secret" . ) | indent 2 -}}
{{- $secret := (lookup "v1" "Secret" .Release.Namespace "test-secret" -}}
apiVersion: v1
kind: Secret
metadata:
name: test-secret
type: Opaque
# 2. If the secret exists, write it back
{{ if $secret -}}
data:
password: {{ $secret.data.password }}
# 3. If it doesn't exist ... create new
{{ else -}}
stringData:
password: {{ randAlphaNum 32 | b64enc | quote }}
{{ end }}