我正在尝试创建一个舵图模板来创建多个服务帐户。原因是,我需要一个服务帐户来验证我的 pod,另一个服务帐户用于工作负载托管身份。当我运行下面的 helm 图表时,我没有得到预期的结果。
下面是values.yaml:
`serviceAccounts:
- name: SA1
annotations:
meta.helm.sh/release-name: "SA1"
meta.helm.sh/release-namespace: "somenamespace"
labels:
app.kubernetes.io/instance: SA1
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: SA1
app.kubernetes.io/version: "1.0.0"
helm.sh/chart: SA1-1.0.0
version: "1.0.0"
- name: SA2
annotations:
azure.workload.identity/client-id: XXXXXXX
labels:
azure.workload.identity/use: "true"`
以及服务帐户 helm 图表模板:
`{{- range .Values.serviceAccounts }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .name }}
namespace: {{ index .annotations "meta.helm.sh/release-namespace" }}
annotations:
{{- toYaml .annotations | nindent 4 }}
labels:
{{- toYaml .labels | nindent 4 }}
{{- end }}
`
问题是,SA2 在部署期间创建,但 SA1 没有。有人可以帮我理解这是为什么吗?
您应该在每个 API 资源的顶部添加单独的破折号,例如,
{{- range .Values.serviceAccounts }}
--- # This separator line is essential
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .name }}
namespace: {{ index .annotations "meta.helm.sh/release-namespace" }}
annotations:
{{- toYaml .annotations | nindent 4 }}
labels:
{{- toYaml .labels | nindent 4 }}
{{- end }}