Merge "[DMAAP] DMaaP ServiceMesh compatibility"
[oom.git] / kubernetes / aaf / components / aaf-sms / components / aaf-sms-vault / templates / statefulset.yaml
1 {{/*
2 # Copyright 2018 Intel Corporation, Inc
3 # Modifications © 2020 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: apps/v1
19 kind: StatefulSet
20 metadata:
21   name: {{ include "common.fullname" . }}
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   replicas: {{ .Values.replicaCount }}
30   selector:
31     matchLabels:
32       app: {{ include "common.name" . }}
33   serviceName: {{ include "common.servicename" . }}
34   template:
35     metadata:
36       labels:
37         app: {{ include "common.name" . }}
38         release: {{ include "common.release" . }}
39     spec:
40 {{- if .Values.persistence.enabled }}
41       initContainers:
42         - name: fix-permission
43           command:
44             - /bin/sh
45           args:
46             - -c
47             - |
48               chmod -R 775 /consul/data
49               chown -R 100:1000 /consul/data
50           image: {{ include "repositoryGenerator.image.busybox" . }}
51           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
52           volumeMounts:
53             - mountPath: /consul/data
54               name: {{ include "common.fullname" . }}-data
55 {{- end }}
56       containers:
57       - image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.vault }}
58         name: {{ include "common.name" . }}
59         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
60         args: ["server"]
61         ports:
62         - containerPort: {{ .Values.service.internalPort }}
63         volumeMounts:
64         - mountPath: /vault/config/config.json
65           name: {{ include "common.fullname" . }}-vault
66           subPath: config.json
67         - mountPath: /etc/localtime
68           name: localtime
69           readOnly: true
70         resources:
71 {{ include "common.resources" . | indent 10 }}
72       - image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.consul }}
73         name: {{ include "common.name" . }}-backend
74         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
75         args: ["agent","-server","-bind","0.0.0.0","-bootstrap-expect=1","-config-file","/consul/config/config.json"]
76         ports:
77         - name: http
78           containerPort: 8500
79         volumeMounts:
80 {{- if .Values.persistence.enabled }}
81         - mountPath: /consul/data
82           name: {{ include "common.fullname" . }}-data
83 {{- end }}
84         - mountPath: /consul/config/config.json
85           name: {{ include "common.fullname" . }}-consulconfiguration
86           subPath: config.json
87         - mountPath: /etc/localtime
88           name: localtime
89           readOnly: true
90         resources:
91 {{ include "common.resources" . | indent 10 }}
92       volumes:
93         - name: {{ include "common.fullname" . }}-consulconfiguration
94           configMap:
95             name: {{ include "common.fullname" . }}-consul
96         - name: {{ include "common.fullname" . }}-vault
97           configMap:
98             name: {{ include "common.fullname" . }}-vault
99         - name: localtime
100           hostPath:
101             path: /etc/localtime
102       imagePullSecrets:
103       - name: "{{ include "common.namespace" . }}-docker-registry-key"
104 {{- if .Values.persistence.enabled }}
105   volumeClaimTemplates:
106   - metadata:
107       name: {{ include "common.fullname" . }}-data
108       labels:
109         name: {{ include "common.fullname" . }}
110         chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
111         release: "{{ include "common.release" . }}"
112         heritage: "{{ .Release.Service }}"
113     spec:
114       accessModes:
115       - {{ .Values.persistence.accessMode | quote }}
116       storageClassName: {{ include "common.storageClass" . }}
117       resources:
118         requests:
119           storage: {{ .Values.persistence.size | quote }}
120 {{- end }}