我正在尝试创建一个秘密,仅当它不存在时才需要创建,或者当我这样做时分配现有的秘密
helm upgrade
。我尝试了下面的代码
apiVersion: v1
kind: Secret
metadata:
name: "{{.Release.Namespace}}-mongodb-secret"
type: Opaque
data:
{{- $secretObj := (lookup "v1" "Secret" .Release.Namespace "{{.Release.Namespace}}-mongodb-secret") | default dict }}
{{- $secretData := (get $secretObj "data") | default dict }}
{{- $mongodbpasswords := (get $secretData "mongodb-passwords") | default (randAlphaNum 8 | b64enc) }}
mongodb-passwords: {{ $mongodbpasswords | quote }}
{{- $mongodbrootpassword := (get $secretData "mongodb-root-password") | default (randAlphaNum 8 | b64enc) }}
mongodb-root-password: {{ $mongodbrootpassword | quote }}
第一次它运行良好,即它创建了这些密码。当我这样做时
helm upgrade
我希望它不会创建一组新的密码,即不更改密码,但它会再次创建。我在这里缺少什么。
您的
$secretObj
作业具有嵌入式 Helm 命令。试试这个:
{{- $secretObj := (lookup "v1" "Secret" .Release.Namespace (printf "%s-mongodb-secret" .Release.Namespace)) | default dict }}