Add support for auto creating SA for job and deployment

This commit is contained in:
Maidul Islam
2024-11-06 16:37:34 -05:00
parent 7503876ca0
commit 4e796e7e41
8 changed files with 196 additions and 25 deletions
@@ -40,6 +40,23 @@ component: {{ .Values.infisical.name | quote }}
{{ include "infisical.common.matchLabels" . }}
{{- end -}}
{{- define "infisical.roleName" -}}
{{- printf "%s-infisical" .Release.Name -}}
{{- end -}}
{{- define "infisical.roleBindingName" -}}
{{- printf "%s-infisical" .Release.Name -}}
{{- end -}}
{{- define "infisical.serviceAccountName" -}}
{{- if .Values.infisical.serviceAccount.create -}}
{{- printf "%s-infisical" .Release.Name -}}
{{- else -}}
{{- .Values.infisical.serviceAccount.name | default "default" -}}
{{- end -}}
{{- end -}}
{{/*
Create a fully qualified backend name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
@@ -34,10 +34,11 @@ spec:
{{- toYaml $infisicalValues.image.imagePullSecrets | nindent 6 }}
{{- end }}
{{- if $infisicalValues.autoDatabaseSchemaMigration }}
serviceAccountName: {{ include "infisical.serviceAccountName" . }}
initContainers:
- name: "migration-init"
image: {{ $infisicalValues.databaseSchemaMigrationInitContainer.image }}
imagePullPolicy: {{ $infisicalValues.databaseSchemaMigrationInitContainer.imagePullPolicy }}
image: "{{ $infisicalValues.databaseSchemaMigrationJob.image.repository }}:{{ $infisicalValues.databaseSchemaMigrationJob.image.tag }}"
imagePullPolicy: {{ $infisicalValues.databaseSchemaMigrationJob.image.pullPolicy }}
args:
- "job"
- "{{ .Release.Name }}-schema-migration-{{ .Release.Revision }}"
@@ -1,8 +1,25 @@
---
{{- if .Values.infisical.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ printf "%s-infisical" .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "infisical.labels" . | nindent 4 }}
{{- with .Values.infisical.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: k8s-wait-for-infisical-schema-migration
name: {{ include "infisical.roleName" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "infisical.labels" . | nindent 4 }}
rules:
- apiGroups: ["batch"]
resources: ["jobs"]
@@ -11,13 +28,15 @@ rules:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: infisical-database-schema-migration
name: {{ include "infisical.roleBindingName" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "infisical.labels" . | nindent 4 }}
subjects:
- kind: ServiceAccount
name: {{ .Values.infisical.databaseSchemaMigrationJob.serviceAccountName | default "default" }}
namespace: {{ .Release.Namespace }}
- kind: ServiceAccount
name: {{ include "infisical.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: Role
name: k8s-wait-for-infisical-schema-migration
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ include "infisical.roleName" . }}
@@ -16,7 +16,7 @@ spec:
app.kubernetes.io/instance: {{ .Release.Name | quote }}
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
spec:
serviceAccountName: {{ .Values.infisical.databaseSchemaMigrationJob.serviceAccountName | default "default" }}
serviceAccountName: {{ include "infisical.serviceAccountName" . }}
{{- if $infisicalValues.image.imagePullSecrets }}
imagePullSecrets:
{{- toYaml $infisicalValues.image.imagePullSecrets | nindent 6 }}