blob: 7157e3390b8a6e6846eb330f5502bff8dbc66d65 [file] [log] [blame]
Krzysztof Opasiakc0a57f82020-03-23 15:50:13 +01001{{/*
Krzysztof Opasiak01c975b2019-12-16 17:42:38 +01002# Copyright © 2019 Amdocs, Bell Canada, Orange, Samsung Electronics
vaibhavjayasea9aee02018-08-31 06:22:26 +00003#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
Krzysztof Opasiakc0a57f82020-03-23 15:50:13 +010015*/}}
vaibhavjayasea9aee02018-08-31 06:22:26 +000016
vitalied1e5876c2018-03-29 10:24:27 -050017apiVersion: apps/v1beta1
18kind: StatefulSet
19metadata:
20 name: {{ include "common.fullname" . }}
21 namespace: {{ include "common.namespace" . }}
22 labels:
23 app: {{ include "common.fullname" . }}
24 chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
Krzysztof Opasiak137d7cc2020-01-24 23:49:11 +010025 release: "{{ include "common.release" . }}"
vitalied1e5876c2018-03-29 10:24:27 -050026 heritage: "{{ .Release.Service }}"
27spec:
pramod47b1b822018-08-28 15:41:45 +000028 serviceName: {{ .Values.service.name }}
vitalied1e5876c2018-03-29 10:24:27 -050029 replicas: {{ .Values.replicaCount }}
30 template:
31 metadata:
32 labels:
33 app: {{ include "common.fullname" . }}
sushil masal08ef7092019-02-21 16:21:51 +053034 chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
Krzysztof Opasiak137d7cc2020-01-24 23:49:11 +010035 release: "{{ include "common.release" . }}"
sushil masal08ef7092019-02-21 16:21:51 +053036 heritage: "{{ .Release.Service }}"
vitalied1e5876c2018-03-29 10:24:27 -050037 annotations:
38 pod.alpha.kubernetes.io/initialized: "true"
39 spec:
40 {{- if .Values.nodeSelector }}
41 nodeSelector:
42{{ toYaml .Values.nodeSelector | indent 8 }}
43 {{- end }}
44 volumes:
45 {{- if .Values.externalConfig }}
46 - name: config
47 configMap:
Jerry Floodf406ab82018-10-23 07:10:48 -040048 name: {{ include "common.fullname" . }}-external-config
vitalied1e5876c2018-03-29 10:24:27 -050049 {{- end}}
50 - name: localtime
51 hostPath:
52 path: /etc/localtime
53 imagePullSecrets:
54 - name: {{ include "common.namespace" . }}-docker-registry-key
55 containers:
pramod47b1b822018-08-28 15:41:45 +000056 - name: {{ include "common.name" . }}
BorislavGdf11cd52018-05-06 12:55:20 +000057 image: "{{ include "common.repository" . }}/{{ .Values.image }}"
vitalied1e5876c2018-03-29 10:24:27 -050058 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}}
59 env:
60 - name: POD_NAMESPACE
61 valueFrom:
62 fieldRef:
63 apiVersion: v1
64 fieldPath: metadata.namespace
65 - name: MYSQL_USER
Krzysztof Opasiakc0a57f82020-03-23 15:50:13 +010066 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.mariadb.secret.userCredentialsUID" .) "key" "login") | indent 14}}
vitalied1e5876c2018-03-29 10:24:27 -050067 - name: MYSQL_PASSWORD
Krzysztof Opasiakc0a57f82020-03-23 15:50:13 +010068 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.mariadb.secret.userCredentialsUID" .) "key" "password") | indent 14}}
vitalied1e5876c2018-03-29 10:24:27 -050069 - name: MYSQL_DATABASE
70 value: {{ default "" .Values.config.mysqlDatabase | quote }}
71 - name: MYSQL_ROOT_PASSWORD
Krzysztof Opasiakc0a57f82020-03-23 15:50:13 +010072 {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" (include "common.mariadb.secret.rootPassUID" .) "key" "password") | indent 14}}
vitalied1e5876c2018-03-29 10:24:27 -050073 ports:
74 - containerPort: {{ .Values.service.internalPort }}
Mike Elliott4c88b2d2018-09-13 09:32:08 -040075 name: {{ .Values.service.portName }}
vitalied1e5876c2018-03-29 10:24:27 -050076 - containerPort: {{ .Values.service.sstPort }}
Mike Elliott4c88b2d2018-09-13 09:32:08 -040077 name: {{ .Values.service.sstPortName }}
vitalied1e5876c2018-03-29 10:24:27 -050078 - containerPort: {{ .Values.service.replicationPort }}
79 name: {{ .Values.service.replicationName }}
80 - containerPort: {{ .Values.service.istPort }}
Mike Elliott4c88b2d2018-09-13 09:32:08 -040081 name: {{ .Values.service.istPortName }}
vitalied1e5876c2018-03-29 10:24:27 -050082 readinessProbe:
83 exec:
84 command:
85 - /usr/share/container-scripts/mysql/readiness-probe.sh
86 initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
87 periodSeconds: {{ .Values.readiness.periodSeconds }}
yangyane63c9212019-05-22 13:04:15 +080088 timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
vitalied1e5876c2018-03-29 10:24:27 -050089 {{- if eq .Values.liveness.enabled true }}
90 livenessProbe:
91 exec:
92 command: ["mysqladmin", "ping"]
93 initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
94 periodSeconds: {{ .Values.liveness.periodSeconds }}
95 timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
96 {{- end }}
97 resources:
Mandeep Khinda5e3f36a2018-09-24 15:25:42 +000098{{ include "common.resources" . | indent 12 }}
vitalied1e5876c2018-03-29 10:24:27 -050099 volumeMounts:
100 {{- if .Values.externalConfig }}
101 - mountPath: /etc/config
102 name: config
103 {{- end}}
104 - mountPath: /etc/localtime
105 name: localtime
106 readOnly: true
107{{- if .Values.persistence.enabled }}
108 - mountPath: /var/lib/mysql
109 name: {{ include "common.fullname" . }}-data
vitalied1e5876c2018-03-29 10:24:27 -0500110 initContainers:
Sylvain Desbureauxb7ed2ee2019-11-29 11:35:13 +0100111 - name: {{ include "common.name" . }}-prepare
BorislavGdf11cd52018-05-06 12:55:20 +0000112 image: "{{ include "common.repository" . }}/{{ .Values.imageInit }}"
mahendrr91fc6a92019-04-12 07:11:32 +0000113 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}}
vitalied1e5876c2018-03-29 10:24:27 -0500114 command: ["sh", "-c", "chown -R 27:27 /var/lib/mysql"]
115 volumeMounts:
116 - name: {{ include "common.fullname" . }}-data
117 mountPath: /var/lib/mysql
118 volumeClaimTemplates:
119 - metadata:
120 name: {{ include "common.fullname" . }}-data
pramod47b1b822018-08-28 15:41:45 +0000121 labels:
122 name: {{ include "common.fullname" . }}
sushil masal08ef7092019-02-21 16:21:51 +0530123 chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
Krzysztof Opasiak137d7cc2020-01-24 23:49:11 +0100124 release: "{{ include "common.release" . }}"
sushil masal08ef7092019-02-21 16:21:51 +0530125 heritage: "{{ .Release.Service }}"
vitalied1e5876c2018-03-29 10:24:27 -0500126 spec:
127 accessModes:
128 - {{ .Values.persistence.accessMode | quote }}
Sylvain Desbureaux524c8782019-11-08 17:36:02 +0100129 storageClassName: {{ include "common.storageClass" . }}
vitalied1e5876c2018-03-29 10:24:27 -0500130 resources:
131 requests:
132 storage: {{ .Values.persistence.size | quote }}
BorislavGdf11cd52018-05-06 12:55:20 +0000133{{- end }}