[COMMON] Make imagePullSecrets configurable
[oom.git] / kubernetes / sdnc / templates / job.yaml
1 {{- if .Values.dgbuilder.enabled -}}
2 {{/*
3 # Copyright © 2017 Amdocs, Bell Canada, AT&T
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 */}}
17
18 apiVersion: batch/v1
19 kind: Job
20 metadata:
21   name: {{ include "common.fullname" . }}-dbinit-job
22   namespace: {{ include "common.namespace" . }}
23   labels:
24     app: {{ include "common.name" . }}
25     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
26     release: {{ include "common.release" . }}
27     heritage: {{ .Release.Service }}
28 spec:
29   backoffLimit: 20
30   template:
31     metadata:
32       labels:
33         app: {{ include "common.name" . }}-job
34         release: {{ include "common.release" . }}
35       name: {{ include "common.name" . }}
36     spec:
37       initContainers:
38       - command:
39         - sh
40         args:
41         - -c
42         - "cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done"
43         env:
44         - name: AAI_CLIENT_NAME
45           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-user-creds" "key" "login") | indent 10 }}
46         - name: AAI_CLIENT_PASSWORD
47           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-user-creds" "key" "password") | indent 10 }}
48         - name: MODELSERVICE_USER
49           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "modeling-user-creds" "key" "login") | indent 10 }}
50         - name: MODELSERVICE_PASSWORD
51           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "modeling-user-creds" "key" "password") | indent 10 }}
52         - name: RESTCONF_USER
53           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restconf-creds" "key" "login") | indent 10 }}
54         - name: RESTCONF_PASSWORD
55           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restconf-creds" "key" "password") | indent 10 }}
56         - name: ANSIBLE_USER
57           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ansible-creds" "key" "login") | indent 10 }}
58         - name: ANSIBLE_PASSWORD
59           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ansible-creds" "key" "password") | indent 10 }}
60         - name: SCALEOUT_USER
61           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "scaleout-creds" "key" "login") | indent 10 }}
62         - name: SCALEOUT_PASSWORD
63           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "scaleout-creds" "key" "password") | indent 10 }}
64         - name: NETBOX_APIKEY
65           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "netbox-apikey" "key" "password") | indent 10 }}
66         - name: SDNC_DB_USER
67           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
68         - name: SDNC_DB_PASSWORD
69           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 10 }}
70         volumeMounts:
71         - mountPath: /config-input
72           name: config-input
73         - mountPath: /config
74           name: properties
75         image: {{ include "repositoryGenerator.image.envsubst" . }}
76         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
77         name: {{ include "common.name" . }}-update-config
78
79       {{- if .Values.global.mariadbGalera.localCluster }}
80       {{-   if .Values.global.mariadbGalera.useOperator }}
81       {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_local_operator ) | indent 6 | trim }}
82       {{    else }}
83       {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_local ) | indent 6 | trim }}
84       {{-   end }}
85       {{ else }}
86       {{-   if .Values.global.mariadbGalera.useOperator }}
87       {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_global_operator ) | indent 6 | trim }}
88       {{   else }}
89       {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_global ) | indent 6 | trim }}
90       {{-   end }}
91       {{- end }}
92       containers:
93       - name: {{ include "common.name" . }}
94         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
95         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
96         env:
97           - name: MYSQL_ROOT_PASSWORD
98             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-root-password" "key" "password") | indent 12 }}
99           - name: ODL_ADMIN_USERNAME
100             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "login") | indent 12 }}
101           - name: ODL_ADMIN_PASSWORD
102             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "password") | indent 12 }}
103           - name: SDNC_DB_USER
104             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
105           - name: SDNC_DB_PASSWORD
106             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
107           - name: MYSQL_HOST
108             value: {{ include "common.mariadbService" . }}
109           - name: SDNC_HOME
110             value: "{{.Values.config.sdncHome}}"
111           - name: ETC_DIR
112             value: "{{.Values.config.etcDir}}"
113           - name: BIN_DIR
114             value: "{{.Values.config.binDir}}"
115           - name: SDNC_DB_DATABASE
116             value: "{{.Values.config.dbSdnctlDatabase}}"
117         volumeMounts:
118           - mountPath: {{ .Values.config.binDir }}/installSdncDb.sh
119             name: bin
120             subPath: installSdncDb.sh
121           - mountPath: {{ .Values.config.configDir }}/svclogic.properties
122             name: properties
123             subPath: svclogic.properties
124           - mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties
125             name: properties
126             subPath: svclogic.properties
127           - mountPath: {{ .Values.config.configDir }}/dblib.properties
128             name: properties
129             subPath: dblib.properties
130         command:
131           - /bin/bash
132         args:
133           - -c
134           - |
135             sleep 60; {{.Values.config.binDir }}/installSdncDb.sh
136         resources: {{ include "common.resources" . | nindent 10 }}
137       {{- if include "common.onServiceMesh" . }}
138       - name: sdnc-service-mesh-wait-for-job-container
139         image: {{ include "repositoryGenerator.image.quitQuit" . }}
140         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
141         command:
142           - /bin/sh
143           - "-c"
144         args:
145           - |
146             echo "waiting 20s for istio side cars to be up"; sleep 20s;
147             /app/ready.py --service-mesh-check sdnc -t 45;
148         env:
149         - name: NAMESPACE
150           valueFrom:
151             fieldRef:
152               apiVersion: v1
153               fieldPath: metadata.namespace
154       {{- end }}
155       {{- if .Values.nodeSelector }}
156       nodeSelector: {{ toYaml .Values.nodeSelector | nindent 8 }}
157       {{- end }}
158       {{- if .Values.affinity }}
159       affinity: {{ toYaml .Values.affinity | nindent 8 }}
160       {{- end }}
161       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
162       volumes:
163       - name: localtime
164         hostPath:
165           path: /etc/localtime
166       - name: docker-entrypoint-initdb-d
167         emptyDir: {}
168       - name: bin
169         configMap:
170           name: {{ include "common.fullname" . }}-bin
171           defaultMode: 0755
172       - name: config-input
173         configMap:
174           name: {{ include "common.fullname" . }}-properties
175           defaultMode: 0644
176       - name: properties
177         emptyDir:
178           medium: Memory
179       restartPolicy: Never
180       {{- include "common.imagePullSecrets" . | nindent 6 }}
181 {{- end -}}