Helm 在 yaml 开头查找奇怪的行为

问题描述 投票:0回答:1

我有一个用于生成 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 }}

我不明白发生了什么事)))

if-statement kubernetes-helm lookup
1个回答
0
投票

从文档来看,--dry-run 实际上并没有连接到实时集群。应该使用 —-dry-run=“server” 来做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.