blob: d52aa6ce42619d29547a647f53eefc168569a2a6 [file] [log] [blame]
Mohammed Naserf3f59a72023-01-15 21:02:04 -05001{{/*
2Licensed under the Apache License, Version 2.0 (the "License");
3you may not use this file except in compliance with the License.
4You may obtain a copy of the License at
5
6 http://www.apache.org/licenses/LICENSE-2.0
7
8Unless required by applicable law or agreed to in writing, software
9distributed under the License is distributed on an "AS IS" BASIS,
10WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11See the License for the specific language governing permissions and
12limitations under the License.
13*/}}
14
15{{- if .Values.manifests.job_fernet_setup }}
16{{- if eq .Values.conf.keystone.token.provider "fernet" }}
17{{- $envAll := . }}
18
19{{- $mounts_keystone_fernet_setup := .Values.pod.mounts.keystone_fernet_setup.keystone_fernet_setup }}
20{{- $mounts_keystone_fernet_setup_init := .Values.pod.mounts.keystone_fernet_setup.init_container }}
21
22{{- $serviceAccountName := "keystone-fernet-setup" }}
23{{ tuple $envAll "fernet_setup" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
24---
25apiVersion: rbac.authorization.k8s.io/v1
26kind: Role
27metadata:
28 name: {{ $serviceAccountName }}
29rules:
30 - apiGroups:
31 - ""
32 resources:
33 - secrets
34 verbs:
35 - get
36 - list
37 - create
38 - update
39---
40apiVersion: rbac.authorization.k8s.io/v1
41kind: RoleBinding
42metadata:
43 name: {{ $serviceAccountName }}
44roleRef:
45 apiGroup: rbac.authorization.k8s.io
46 kind: Role
47 name: {{ $serviceAccountName }}
48subjects:
49 - kind: ServiceAccount
50 name: {{ $serviceAccountName }}
51 namespace: {{ $envAll.Release.Namespace }}
52---
53apiVersion: batch/v1
54kind: Job
55metadata:
56 name: keystone-fernet-setup
57 labels:
58{{ tuple $envAll "keystone" "fernet-setup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
Mohammed Naserf3f59a72023-01-15 21:02:04 -050059 annotations:
Oleksandr K.4a0e28f2024-11-21 03:23:41 +010060{{- if .Values.helm3_hook }}
Mohammed Naserf3f59a72023-01-15 21:02:04 -050061 "helm.sh/hook": post-install,post-upgrade
62 "helm.sh/hook-weight": "-5"
63 "helm.sh/hook-delete-policy": before-hook-creation
64{{- end }}
Oleksandr K.4a0e28f2024-11-21 03:23:41 +010065{{ tuple "keystone_fernet_setup" $envAll | include "helm-toolkit.snippets.custom_job_annotations" | indent 4 }}
Mohammed Naserf3f59a72023-01-15 21:02:04 -050066spec:
67 template:
68 metadata:
69 labels:
70{{ tuple $envAll "keystone" "fernet-setup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
71 annotations:
72{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
73 configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
74 configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
75{{ dict "envAll" $envAll "podName" "keystone-fernet-setup" "containerNames" (list "keystone-fernet-setup") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 8 }}
76 spec:
77 serviceAccountName: {{ $serviceAccountName }}
78{{ dict "envAll" $envAll "application" "fernet_setup" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
79 initContainers:
80{{ tuple $envAll "fernet_setup" $mounts_keystone_fernet_setup_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
81 restartPolicy: OnFailure
Oleksandr Kozachenkoa10d7852023-02-02 22:01:16 +010082{{ if $envAll.Values.pod.tolerations.keystone.enabled }}
83{{ tuple $envAll "keystone" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
84{{ end }}
Mohammed Naserf3f59a72023-01-15 21:02:04 -050085 nodeSelector:
86 {{ .Values.labels.job.node_selector_key }}: {{ .Values.labels.job.node_selector_value }}
87 containers:
88 - name: keystone-fernet-setup
89{{ tuple $envAll "keystone_fernet_setup" | include "helm-toolkit.snippets.image" | indent 10 }}
90{{ tuple $envAll $envAll.Values.pod.resources.jobs.fernet_setup | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
91{{ dict "envAll" $envAll "application" "fernet_setup" "container" "keystone_fernet_setup" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
92 env:
93 - name: KEYSTONE_USER
94 value: {{ .Values.jobs.fernet_setup.user | quote }}
95 - name: KEYSTONE_GROUP
96 value: {{ .Values.jobs.fernet_setup.group | quote }}
97 - name: KUBERNETES_NAMESPACE
98 value: {{ .Release.Namespace | quote }}
99 - name: KEYSTONE_KEYS_REPOSITORY
100 value: {{ .Values.conf.keystone.fernet_tokens.key_repository | quote }}
101 command:
102 - python
103 - /tmp/fernet-manage.py
104 - fernet_setup
105 volumeMounts:
106 - name: pod-tmp
107 mountPath: /tmp
108 - name: etckeystone
109 mountPath: /etc/keystone
110 - name: fernet-keys
111 mountPath: {{ .Values.conf.keystone.fernet_tokens.key_repository | quote }}
112 - name: keystone-etc
113 mountPath: /etc/keystone/keystone.conf
114 subPath: keystone.conf
115 readOnly: true
116 {{- if .Values.conf.keystone.DEFAULT.log_config_append }}
117 - name: keystone-etc
118 mountPath: {{ .Values.conf.keystone.DEFAULT.log_config_append }}
119 subPath: {{ base .Values.conf.keystone.DEFAULT.log_config_append }}
120 readOnly: true
121 {{- end }}
122 - name: keystone-bin
123 mountPath: /tmp/fernet-manage.py
124 subPath: fernet-manage.py
125 readOnly: true
126{{ if $mounts_keystone_fernet_setup.volumeMounts }}{{ toYaml $mounts_keystone_fernet_setup.volumeMounts | indent 12 }}{{ end }}
127 volumes:
128 - name: pod-tmp
129 emptyDir: {}
130 - name: etckeystone
131 emptyDir: {}
132 - name: fernet-keys
133 emptyDir: {}
134 - name: keystone-etc
135 secret:
136 secretName: keystone-etc
137 defaultMode: 0444
138 - name: keystone-bin
139 configMap:
140 name: keystone-bin
141 defaultMode: 0555
142{{ if $mounts_keystone_fernet_setup.volumes }}{{ toYaml $mounts_keystone_fernet_setup.volumes | indent 8 }}{{ end }}
143{{- end }}
144{{- end }}