blob: b0b71748117a0e7757d06b8f67ad887138a2b648 [file] [log] [blame]
vaibhavjayasea9aee02018-08-31 06:22:26 +00001# Copyright © 2018 Amdocs, Bell Canada
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
vitalied1e5876c2018-03-29 10:24:27 -050015apiVersion: apps/v1beta1
16kind: StatefulSet
17metadata:
18 name: {{ include "common.fullname" . }}
19 namespace: {{ include "common.namespace" . }}
20 labels:
21 app: {{ include "common.fullname" . }}
22 chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
23 release: "{{ .Release.Name }}"
24 heritage: "{{ .Release.Service }}"
25spec:
pramod47b1b822018-08-28 15:41:45 +000026 serviceName: {{ .Values.service.name }}
vitalied1e5876c2018-03-29 10:24:27 -050027 replicas: {{ .Values.replicaCount }}
28 template:
29 metadata:
30 labels:
31 app: {{ include "common.fullname" . }}
sushil masal08ef7092019-02-21 16:21:51 +053032 chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
33 release: "{{ .Release.Name }}"
34 heritage: "{{ .Release.Service }}"
vitalied1e5876c2018-03-29 10:24:27 -050035 annotations:
36 pod.alpha.kubernetes.io/initialized: "true"
37 spec:
38 {{- if .Values.nodeSelector }}
39 nodeSelector:
40{{ toYaml .Values.nodeSelector | indent 8 }}
41 {{- end }}
42 volumes:
43 {{- if .Values.externalConfig }}
44 - name: config
45 configMap:
Jerry Floodf406ab82018-10-23 07:10:48 -040046 name: {{ include "common.fullname" . }}-external-config
vitalied1e5876c2018-03-29 10:24:27 -050047 {{- end}}
48 - name: localtime
49 hostPath:
50 path: /etc/localtime
51 imagePullSecrets:
52 - name: {{ include "common.namespace" . }}-docker-registry-key
53 containers:
pramod47b1b822018-08-28 15:41:45 +000054 - name: {{ include "common.name" . }}
BorislavGdf11cd52018-05-06 12:55:20 +000055 image: "{{ include "common.repository" . }}/{{ .Values.image }}"
vitalied1e5876c2018-03-29 10:24:27 -050056 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}}
57 env:
58 - name: POD_NAMESPACE
59 valueFrom:
60 fieldRef:
61 apiVersion: v1
62 fieldPath: metadata.namespace
63 - name: MYSQL_USER
64 value: {{ default "" .Values.config.userName | quote }}
65 - name: MYSQL_PASSWORD
66 valueFrom:
67 secretKeyRef:
68 name: {{ template "common.fullname" . }}
69 key: user-password
70 - name: MYSQL_DATABASE
71 value: {{ default "" .Values.config.mysqlDatabase | quote }}
72 - name: MYSQL_ROOT_PASSWORD
73 valueFrom:
74 secretKeyRef:
75 name: {{ template "common.fullname" . }}
76 key: db-root-password
77 ports:
78 - containerPort: {{ .Values.service.internalPort }}
Mike Elliott4c88b2d2018-09-13 09:32:08 -040079 name: {{ .Values.service.portName }}
vitalied1e5876c2018-03-29 10:24:27 -050080 - containerPort: {{ .Values.service.sstPort }}
Mike Elliott4c88b2d2018-09-13 09:32:08 -040081 name: {{ .Values.service.sstPortName }}
vitalied1e5876c2018-03-29 10:24:27 -050082 - containerPort: {{ .Values.service.replicationPort }}
83 name: {{ .Values.service.replicationName }}
84 - containerPort: {{ .Values.service.istPort }}
Mike Elliott4c88b2d2018-09-13 09:32:08 -040085 name: {{ .Values.service.istPortName }}
vitalied1e5876c2018-03-29 10:24:27 -050086 readinessProbe:
87 exec:
88 command:
89 - /usr/share/container-scripts/mysql/readiness-probe.sh
90 initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
91 periodSeconds: {{ .Values.readiness.periodSeconds }}
yangyane63c9212019-05-22 13:04:15 +080092 timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
vitalied1e5876c2018-03-29 10:24:27 -050093 {{- if eq .Values.liveness.enabled true }}
94 livenessProbe:
95 exec:
96 command: ["mysqladmin", "ping"]
97 initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
98 periodSeconds: {{ .Values.liveness.periodSeconds }}
99 timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
100 {{- end }}
101 resources:
Mandeep Khinda5e3f36a2018-09-24 15:25:42 +0000102{{ include "common.resources" . | indent 12 }}
vitalied1e5876c2018-03-29 10:24:27 -0500103 volumeMounts:
104 {{- if .Values.externalConfig }}
105 - mountPath: /etc/config
106 name: config
107 {{- end}}
108 - mountPath: /etc/localtime
109 name: localtime
110 readOnly: true
111{{- if .Values.persistence.enabled }}
112 - mountPath: /var/lib/mysql
113 name: {{ include "common.fullname" . }}-data
vitalied1e5876c2018-03-29 10:24:27 -0500114 initContainers:
115 - name: mariadb-galera-prepare
BorislavGdf11cd52018-05-06 12:55:20 +0000116 image: "{{ include "common.repository" . }}/{{ .Values.imageInit }}"
mahendrr91fc6a92019-04-12 07:11:32 +0000117 imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}}
vitalied1e5876c2018-03-29 10:24:27 -0500118 command: ["sh", "-c", "chown -R 27:27 /var/lib/mysql"]
119 volumeMounts:
120 - name: {{ include "common.fullname" . }}-data
121 mountPath: /var/lib/mysql
122 volumeClaimTemplates:
123 - metadata:
124 name: {{ include "common.fullname" . }}-data
pramod47b1b822018-08-28 15:41:45 +0000125 labels:
126 name: {{ include "common.fullname" . }}
sushil masal08ef7092019-02-21 16:21:51 +0530127 chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
128 release: "{{ .Release.Name }}"
129 heritage: "{{ .Release.Service }}"
vitalied1e5876c2018-03-29 10:24:27 -0500130 spec:
131 accessModes:
132 - {{ .Values.persistence.accessMode | quote }}
pramod47b1b822018-08-28 15:41:45 +0000133 storageClassName: {{ include "common.fullname" . }}-data
vitalied1e5876c2018-03-29 10:24:27 -0500134 resources:
135 requests:
136 storage: {{ .Values.persistence.size | quote }}
Alexis de Talhouët634b4552018-10-28 21:56:33 -0400137 selector:
138 matchLabels:
139 name: {{ include "common.fullname" . }}
BorislavGdf11cd52018-05-06 12:55:20 +0000140{{- end }}