File tree Expand file tree Collapse file tree 10 files changed +112
-23
lines changed
Expand file tree Collapse file tree 10 files changed +112
-23
lines changed Original file line number Diff line number Diff line change @@ -214,6 +214,7 @@ helm delete --namespace test my-application
214214| Key | Type | Default | Description |
215215| -----| ------| ---------| -------------|
216216| rbac.enabled | bool | ` true ` | Enable RBAC. |
217+ | rbac.existingServiceAccountName | string | ` "" ` | Existing Service Account Name. |
217218| rbac.serviceAccount.enabled | bool | ` false ` | Deploy Service Account. |
218219| rbac.serviceAccount.name | string | ` {{ include "application.name" $ }} ` | Service Account Name. |
219220| rbac.serviceAccount.additionalLabels | object | ` nil ` | Additional labels for Service Account. |
Original file line number Diff line number Diff line change @@ -68,3 +68,18 @@ reference:
6868 kind: Route
6969 name: { { include " application.name" . } }
7070{ {- end } }
71+
72+ { {- define " application.service-account-name" } }
73+ { {- if .Values.rbac.enabled } }
74+ { {- if and .Values.rbac.serviceAccount.enabled .Values.rbac.existingServiceAccountName } }
75+ { {- fail " Conflict: 'rbac.existingServiceAccountName' is set, but a new service account is being created. Please disable 'rbac.serviceAccount.enabled' or unset 'rbac.existingServiceAccountName'." } }
76+ { {- end } }
77+ { {- if .Values.rbac.serviceAccount.enabled } }
78+ { {- default (include " application.name" .) .Values.rbac.serviceAccount.name } }
79+ { {- else } }
80+ { {- default " null" .Values.rbac.existingServiceAccountName } }
81+ { {- end } }
82+ { {- else } }
83+ null
84+ { {- end } }
85+ { {- end } }
Original file line number Diff line number Diff line change 5454 annotations : {{ toYaml . | nindent 12 }}
5555 {{- end }}
5656 spec :
57- {{- if $.Values.rbac.enabled }}
58- {{- if $.Values.rbac.serviceAccount.name }}
59- serviceAccountName : {{ $.Values.rbac.serviceAccount.name }}
60- {{- else }}
61- serviceAccountName : {{ template "application.name" $ }}
62- {{- end }}
63- {{- end }}
57+ serviceAccountName : {{ template "application.service-account-name" $ }}
6458 containers :
6559 - name : {{ $name }}
6660 {{- $image := required (print "Undefined image repo for container '" $name "'") $job.image.repository }}
Original file line number Diff line number Diff line change 7474 ]
7575{{- end }}
7676 spec :
77+ serviceAccountName : {{ template "application.service-account-name" $ }}
7778 {{- if .Values.deployment.hostAliases }}
7879 hostAliases :
7980{{ toYaml .Values.deployment.hostAliases | indent 6 }}
@@ -308,13 +309,6 @@ spec:
308309 {{- end }}
309310 {{- end }}
310311 {{- end }}
311- {{- if .Values.rbac.serviceAccount.enabled }}
312- {{- if .Values.rbac.serviceAccount.name }}
313- serviceAccountName : {{ .Values.rbac.serviceAccount.name }}
314- {{- else }}
315- serviceAccountName : {{ template "application.name" $ }}
316- {{- end }}
317- {{- end }}
318312 {{- if .Values.deployment.hostNetwork }}
319313 hostNetwork : {{ .Values.deployment.hostNetwork }}
320314 {{- end }}
Original file line number Diff line number Diff line change 3737 annotations : {{ toYaml . | nindent 8 }}
3838 {{- end }}
3939 spec :
40- {{- if $.Values.rbac.enabled }}
41- {{- if $.Values.rbac.serviceAccount.name }}
42- serviceAccountName : {{ $.Values.rbac.serviceAccount.name }}
43- {{- else }}
44- serviceAccountName : {{ template "application.name" $ }}
45- {{- end }}
46- {{- end }}
40+ serviceAccountName : {{ template "application.service-account-name" $ }}
4741 containers :
4842 - name : {{ $name }}
4943
Original file line number Diff line number Diff line change 33apiVersion : v1
44kind : ServiceAccount
55metadata :
6- name : {{ default (include "application.name" .) .Values.rbac.serviceAccount.name }}
6+ name : {{ template "application.service-account- name" . }}
77 namespace : {{ template "application.namespace" . }}
88 labels :
99 {{- include "application.labels" $ | nindent 4 }}
Original file line number Diff line number Diff line change @@ -77,3 +77,47 @@ tests:
7777 - equal :
7878 path : spec.jobTemplate.spec.template.spec.containers[0].image
7979 value : example-image:example-tag@sha256:example-digest
80+
81+ - it : yields empty service account name when disabled
82+ set :
83+ cronJob :
84+ enabled : true
85+ jobs :
86+ example :
87+ image :
88+ repository : example-image
89+ rbac.serviceAccount.enabled : false
90+ asserts :
91+ - isNullOrEmpty :
92+ path : spec.jobTemplate.spec.template.spec.serviceAccountName
93+
94+ - it : uses service account name override when present
95+ set :
96+ cronJob :
97+ enabled : true
98+ jobs :
99+ example :
100+ image :
101+ repository : example-image
102+ rbac.serviceAccount.enabled : true
103+ rbac.serviceAccount.name : example-sa
104+ asserts :
105+ - equal :
106+ path : spec.jobTemplate.spec.template.spec.serviceAccountName
107+ value : example-sa
108+
109+ - it : uses a generated service account name when not given
110+ set :
111+ cronJob :
112+ enabled : true
113+ jobs :
114+ example :
115+ image :
116+ repository : example-image
117+ applicationName : example-app
118+ rbac.serviceAccount.enabled : true
119+ rbac.serviceAccount.name : " "
120+ asserts :
121+ - equal :
122+ path : spec.jobTemplate.spec.template.spec.serviceAccountName
123+ value : example-app
Original file line number Diff line number Diff line change 9191 set :
9292 rbac.serviceAccount.enabled : false
9393 asserts :
94- - notExists :
94+ - isNullOrEmpty :
9595 path : spec.template.spec.serviceAccountName
9696
9797 - it : uses service account name override when present
Original file line number Diff line number Diff line change @@ -95,3 +95,47 @@ tests:
9595 path : spec.template.metadata.annotations
9696 value :
9797 helm.sh/hook : " pre-install,pre-upgrade"
98+
99+ - it : yields empty service account name when disabled
100+ set :
101+ job :
102+ enabled : true
103+ jobs :
104+ example :
105+ image :
106+ repository : example-image
107+ rbac.serviceAccount.enabled : false
108+ asserts :
109+ - isNullOrEmpty :
110+ path : spec.template.spec.serviceAccountName
111+
112+ - it : uses service account name override when present
113+ set :
114+ job :
115+ enabled : true
116+ jobs :
117+ example :
118+ image :
119+ repository : example-image
120+ rbac.serviceAccount.enabled : true
121+ rbac.serviceAccount.name : example-sa
122+ asserts :
123+ - equal :
124+ path : spec.template.spec.serviceAccountName
125+ value : example-sa
126+
127+ - it : uses a generated service account name when not given
128+ set :
129+ job :
130+ enabled : true
131+ jobs :
132+ example :
133+ image :
134+ repository : example-image
135+ applicationName : example-app
136+ rbac.serviceAccount.enabled : true
137+ rbac.serviceAccount.name : " "
138+ asserts :
139+ - equal :
140+ path : spec.template.spec.serviceAccountName
141+ value : example-app
Original file line number Diff line number Diff line change @@ -654,6 +654,9 @@ rbac:
654654 # -- (bool) Enable RBAC.
655655 # @section -- RBAC Parameters
656656 enabled : true
657+ # -- (string) Existing Service Account Name.
658+ # @section -- RBAC Parameters
659+ existingServiceAccountName : " "
657660 serviceAccount :
658661 # -- (bool) Deploy Service Account.
659662 # @section -- RBAC Parameters
You can’t perform that action at this time.
0 commit comments