a5573c80911ed9eb04e170f1fa2569cdd675a0f5
[oom.git] / kubernetes / aaf / charts / aaf-sms / charts / aaf-sms-quorumclient / templates / statefulset.yaml
1 # Copyright 2018 Intel Corporation, Inc
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
15 apiVersion: apps/v1beta1
16 kind: StatefulSet
17 metadata:
18   name: {{ include "common.fullname" . }}
19   namespace: {{ include "common.namespace" . }}
20   labels:
21     app: {{ include "common.name" . }}
22     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
23     release: {{ .Release.Name }}
24     heritage: {{ .Release.Service }}
25 spec:
26   replicas: {{ .Values.replicaCount }}
27   serviceName:
28   template:
29     metadata:
30       labels:
31         app: {{ include "common.name" . }}
32         release: {{ .Release.Name }}
33     spec:
34       imagePullSecrets:
35       - name: "{{ include "common.namespace" . }}-docker-registry-key"
36       containers:
37       - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
38         name: {{ include "common.name" . }}
39         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
40         command: ["/quorumclient/bin/quorumclient"]
41         workingDir: /quorumclient/
42         volumeMounts:
43           - mountPath: /etc/localtime
44             name: localtime
45             readOnly: true
46           - mountPath: /quorumclient/config.json
47             name: {{ include "common.name" .}}
48             subPath: config.json
49 {{- if .Values.persistence.enabled }}
50           - mountPath: /quorumclient/auth
51             name: {{ include "common.fullname" . }}-data
52 {{- end }}
53         resources:
54 {{ include "common.resources" . | indent 10 }}
55         {{- if .Values.nodeSelector }}
56         nodeSelector:
57 {{ toYaml .Values.nodeSelector | indent 10 }}
58         {{- end -}}
59         {{- if .Values.affinity }}
60         affinity:
61 {{ toYaml .Values.affinity | indent 10 }}
62         {{- end }}
63       volumes:
64       - name: localtime
65         hostPath:
66           path: /etc/localtime
67       - name : {{ include "common.name" . }}
68         configMap:
69           name: {{ include "common.fullname" . }}
70           items:
71           - key: config.json
72             path: config.json
73             mode: 0755
74 {{- if .Values.persistence.enabled }}
75   volumeClaimTemplates:
76   - metadata:
77       name: {{ include "common.fullname" . }}-data
78       labels:
79         name: {{ include "common.fullname" . }}
80         chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
81         release: "{{ .Release.Name }}"
82         heritage: "{{ .Release.Service }}"
83     spec:
84       accessModes:
85       - {{ .Values.persistence.accessMode | quote }}
86       storageClassName: {{ include "common.storageClass" . }}
87       resources:
88         requests:
89           storage: {{ .Values.persistence.size | quote }}
90 {{- end }}