-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat!: harmonize service account binding #major #363
base: master
Are you sure you want to change the base?
Conversation
0ef820d
to
7d495fb
Compare
7d495fb
to
c127a42
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a few comments. I like the idea of adding a semantic value like this, but I feel the way it currently is introduces more confusion than clarity. I expanded upon this in one of the threads I opened below.
application/templates/_helpers.tpl
Outdated
{{- if .Values.rbac.serviceAccount.enabled }} | ||
{{- default (include "application.name" .) .Values.rbac.serviceAccount.name }} | ||
{{- else }} | ||
{{- default "null" .Values.rbac.existingServiceAccountName }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Edge case, may or may not be something to take into consideration: service accounts named null
. Also, we're assuming the result of this partial template to be interpreted as YAML rather than a raw string, that may create confusion.
{{- default "null" .Values.rbac.existingServiceAccountName }} | |
{{- $saName := .Values.rbac.existingServiceAccountName }} | |
{{- empty $saName | ternary (quote $saName) "null" }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the partial now only returns strings, do you think i should still quote the output?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's a good idea, yes, since the output is supposed to be a string.
4662e88
to
a6b974e
Compare
a6b974e
to
6d404a8
Compare
6d404a8
to
0c15cb1
Compare
0c15cb1
to
de41a4f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Final set of comments, I promise. Reminder to add a unit test for it if you do take the suggestion. Otherwise, LGTM.
serviceAccountName: {{ template "application.name" $ }} | ||
{{- end }} | ||
{{- end }} | ||
serviceAccountName: {{ include "application.serviceAccountName" $ }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This may be another feature, but personally, I think we should add this:
serviceAccountName: {{ include "application.serviceAccountName" $ }} | |
automountServiceAccountToken: {{ $.Values.rbac.enabled }} | |
serviceAccountName: {{ include "application.serviceAccountName" $ }} |
If RBAC is disabled, we shouldn't even allow mounting tokens for the default service account, I'd say. What do you think?
@@ -74,6 +74,7 @@ spec: | |||
] | |||
{{- end }} | |||
spec: | |||
serviceAccountName: {{ include "application.serviceAccountName" $ }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as in the other thread.
serviceAccountName: {{ include "application.serviceAccountName" $ }} | |
automountServiceAccount: {{ $.Values.rbac.enabled }} | |
serviceAccountName: {{ include "application.serviceAccountName" $ }} |
serviceAccountName: {{ template "application.name" $ }} | ||
{{- end }} | ||
{{- end }} | ||
serviceAccountName: {{ include "application.serviceAccountName" $ }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as in the other threads.
serviceAccountName: {{ include "application.serviceAccountName" $ }} | |
automountServiceAccount: {{ $.Values.rbac.enabled }} | |
serviceAccountName: {{ include "application.serviceAccountName" $ }} |
Closes #320
Closes #361
BREAKING: Rename
rbac.serviceAccount.enabled
field torbac.serviceAccount.create
.Fix inconsistencies in serviceAccount binding across
CronJob
,Job
, andDeployment
templates by introducing a newapplication.serviceAccountName
template:rbac.serviceAccount.create
rbac.serviceAccount.name
true
""
(include "application.name" .)
true
"foo"
"foo"
false
""
"default"
false
"bar"
"bar"