blob: 92e5c9e6c8c8420e6928872bb2a3cc05ed51a7fd [file] [log] [blame]
saul.gill7124a4b2021-09-09 12:02:49 +01001{{/*
2# ============LICENSE_START=======================================================
3# Copyright (C) 2021 Nordix Foundation. All rights reserved.
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# SPDX-License-Identifier: Apache-2.0
18# ============LICENSE_END=========================================================
19*/}}
20
21apiVersion: apps/v1
22kind: Deployment
23metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
24spec:
25 selector: {{- include "common.selectors" . | nindent 4 }}
26 replicas: {{ .Values.replicaCount }}
27 template:
28 metadata: {{- include "common.templateMetadata" . | nindent 6 }}
29 spec:
30 initContainers:
31 - command:
32 - /app/ready.py
33 args:
34 - --job-name
35 - {{ include "common.release" . }}-policy-galera-config
36 env:
37 - name: NAMESPACE
38 valueFrom:
39 fieldRef:
40 apiVersion: v1
41 fieldPath: metadata.namespace
42 image: {{ include "repositoryGenerator.image.readiness" . }}
43 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
44 name: {{ include "common.name" . }}-readiness
45 - command:
46 - sh
47 args:
48 - -c
49 - "cd /config-input && for PFILE in `ls -1`; do envsubst <${PFILE} >/config/${PFILE}; done"
50 env:
51 - name: SQL_USER
52 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
53 - name: SQL_PASSWORD
54 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 10 }}
55 - name: RUNTIME_USER
56 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "runtime-secret" "key" "login") | indent 10 }}
57 - name: RUNTIME_PASSWORD
58 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "runtime-secret" "key" "password") | indent 10 }}
59 volumeMounts:
60 - mountPath: /config-input
61 name: cl-runtime-config
62 - mountPath: /config
63 name: cl-runtime-config-processed
64 image: {{ include "repositoryGenerator.image.envsubst" . }}
65 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
66 name: {{ include "common.name" . }}-update-config
67{{ include "common.certInitializer.initContainer" . | indent 6 }}
68 containers:
69 - name: {{ include "common.name" . }}
70 image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
71 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
72{{- if .Values.global.aafEnabled }}
73 command: ["sh","-c"]
74 args: ["source {{ .Values.certInitializer.credsPath }}/.ci;\
75 /opt/app/policy/clamp/bin/controlloop-runtime.sh /opt/app/policy/clamp/etc/mounted/clRuntimeParameters.yaml"]
76{{- else }}
77 command: ["/opt/app/policy/clamp/bin/controlloop-runtime.sh"]
78 args: ["/opt/app/policy/clamp/etc/mounted/clRuntimeParameters.yaml"]
79 env:
80 - name: KEYSTORE_PASSWD
81 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "keystore-password" "key" "password") | indent 12 }}
82 - name: TRUSTSTORE_PASSWD
83 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "truststore-password" "key" "password") | indent 12 }}
84{{- end }}
85 ports: {{ include "common.containerPorts" . | nindent 12 }}
86 # disable liveness probe when breakpoints set in debugger
87 # so K8s doesn't restart unresponsive container
88 {{- if eq .Values.liveness.enabled true }}
89 livenessProbe:
90 tcpSocket:
91 port: {{ .Values.liveness.port }}
92 initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
93 periodSeconds: {{ .Values.liveness.periodSeconds }}
94 {{ end -}}
95 readinessProbe:
96 tcpSocket:
97 port: {{ .Values.readiness.port }}
98 initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
99 periodSeconds: {{ .Values.readiness.periodSeconds }}
100 volumeMounts:
101{{ include "common.certInitializer.volumeMount" . | indent 10 }}
102 - mountPath: /etc/localtime
103 name: localtime
104 readOnly: true
105 - mountPath: /opt/app/policy/clamp/etc/mounted
106 name: cl-runtime-config-processed
107 resources:
108{{ include "common.resources" . }}
109 {{- if .Values.nodeSelector }}
110 nodeSelector:
111{{ toYaml .Values.nodeSelector | indent 10 }}
112 {{- end -}}
113 {{- if .Values.affinity }}
114 affinity:
115{{ toYaml .Values.affinity | indent 10 }}
116 {{- end }}
117 serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
118 volumes:
119{{ include "common.certInitializer.volumes" . | indent 8 }}
120 - name: localtime
121 hostPath:
122 path: /etc/localtime
123 - name: cl-runtime-config
124 configMap:
125 name: {{ include "common.fullname" . }}-configmap
126 defaultMode: 0755
127 - name: cl-runtime-config-processed
128 emptyDir:
129 medium: Memory
130 imagePullSecrets:
131 - name: "{{ include "common.namespace" . }}-docker-registry-key"