设计helm图表以创建多个服务帐户

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

我正在尝试创建一个舵图模板来创建多个服务帐户。原因是,我需要一个服务帐户来验证我的 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 没有。有人可以帮我理解这是为什么吗?

kubernetes kubernetes-helm
1个回答
0
投票

您应该在每个 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 }}
© www.soinside.com 2019 - 2024. All rights reserved.