我有一个用于生成 k8s 秘密的 yaml 文件:
{{- $secret_name := printf "%s-%s" .Values.app.secret.name .Values.stage -}}
{{- if not (lookup "v1" "Secret" .Release.Namespace $secret_name).data }}
apiVersion: v1
kind: Secret
metadata:
name: {{ $secret_name }}
data:
{{- range .Values.app.secret.data }}
{{ .key }}: {{ .value }}
{{- end}}
{{- end }}
正在查找的秘密已存在于当前命名空间中。但查找并没有找到它。
我正在通过以下方式检查正在运行的 k8s 集群
helm install -dry-run
或者
helm template --validate --debug
顺便说一句,$service_name变量正在正确生成
如果我在类似这样的地方添加另一个字段:
{{- $secret_name := printf "%s-%s" .Values.app.secret.name .Values.stage -}}
{{- if not (lookup "v1" "Secret" .Release.Namespace $secret_name).data }}
apiVersion: v1
kind: Secret
metadata:
name: {{ $secret_name }}
name1: {{ (lookup "v1" "Secret" .Release.Namespace $secret_name).data }}
data:
{{- range .Values.app.secret.data }}
{{ .key }}: {{ .value }}
{{- end}}
{{- end }}
数据正在按预期返回。但是,如果我将同一行放在文件的开头,则不会返回数据。
{{- $secret_name := printf "%s-%s" .Values.app.secret.name .Values.stage -}}
name1: {{ (lookup "v1" "Secret" .Release.Namespace $secret_name).data }}
{{- if not (lookup "v1" "Secret" .Release.Namespace $secret_name).data }}
apiVersion: v1
kind: Secret
metadata:
name: {{ $secret_name }}
data:
{{- range .Values.app.secret.data }}
{{ .key }}: {{ .value }}
{{- end}}
{{- end }}
我不明白发生了什么事)))
从文档来看,--dry-run 实际上并没有连接到实时集群。应该使用 —-dry-run=“server” 来做到这一点。