Merge "[DMAAP] DMaaP ServiceMesh compatibility"
[oom.git] / kubernetes / appc / components / appc-ansible-server / templates / statefulset.yaml
1 {{/*
2 # Copyright © 2018 Amdocs, Bell Canada, AT&T
3 #
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.
15 */}}
16
17 apiVersion: apps/v1
18 kind: StatefulSet
19 metadata:
20   name: {{ include "common.fullname" . }}
21   namespace: {{ include "common.namespace" . }}
22   labels:
23     app: {{ include "common.name" . }}
24     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
25     release: {{ include "common.release" . }}
26     heritage: {{ .Release.Service }}
27 spec:
28   serviceName: {{ include "common.servicename" . }}
29   selector:
30     matchLabels:
31       app: {{ include "common.name" . }}
32   replicas: {{ .Values.replicaCount }}
33   template:
34     metadata:
35       labels:
36         app: {{ include "common.name" . }}
37         release: {{ include "common.release" . }}
38     spec:
39       initContainers:
40       - name: {{ include "common.name" . }}-chown
41         image: {{ include "repositoryGenerator.image.busybox" . }}
42         command: ["sh", "-c", "chown -R {{ .Values.config.ansibleUid }}:{{ .Values.config.ansibleGid}} {{ .Values.persistence.playbookPath }}"]
43         volumeMounts:
44           - mountPath: {{ .Values.persistence.playbookPath }}
45             name: {{ include "common.fullname" . }}-playbook
46       containers:
47         - name: {{ include "common.name" . }}
48           command: ["/bin/bash"]
49           args: ["-c", "cd /opt/onap/ccsdk && ./startAnsibleServer.sh"]
50           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
51           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
52           ports:
53           - containerPort: {{ .Values.service.internalPort }}
54           # disable liveness probe when breakpoints set in debugger
55           # so K8s doesn't restart unresponsive container
56           {{ if .Values.liveness.enabled }}
57           livenessProbe:
58             tcpSocket:
59               port: {{ .Values.service.internalPort }}
60             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
61             periodSeconds: {{ .Values.liveness.periodSeconds }}
62           {{ end }}
63           readinessProbe:
64             tcpSocket:
65               port: {{ .Values.service.internalPort }}
66             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
67             periodSeconds: {{ .Values.readiness.periodSeconds }}
68           volumeMounts:
69           - mountPath: /etc/localtime
70             name: localtime
71             readOnly: true
72           - mountPath: {{ .Values.config.configDir }}/RestServer_config
73             name: config
74             subPath: RestServer_config
75           - mountPath: {{ .Values.persistence.playbookPath }}
76             name: {{ include "common.fullname" . }}-playbook
77           resources:
78 {{ include "common.resources" . | indent 12 }}
79         {{- if .Values.nodeSelector }}
80         nodeSelector:
81 {{ toYaml .Values.nodeSelector | indent 10 }}
82         {{- end -}}
83         {{- if .Values.affinity }}
84         affinity:
85 {{ toYaml .Values.affinity | indent 10 }}
86         {{- end }}
87       volumes:
88         - name: localtime
89           hostPath:
90             path: /etc/localtime
91         - name: config
92           configMap:
93             name: {{ include "common.fullname" . }}
94             defaultMode: 0644
95 {{ if not .Values.persistence.enabled }}
96         - name: {{ include "common.fullname" . }}-playbook
97           emptyDir: {}
98 {{ else }}
99   volumeClaimTemplates:
100   - metadata:
101       name: {{ include "common.fullname" . }}-playbook
102       labels:
103         name: {{ include "common.fullname" . }}
104         chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
105         release: "{{ include "common.release" . }}"
106         heritage: "{{ .Release.Service }}"
107     spec:
108       accessModes:
109       - {{ .Values.persistence.accessMode }}
110       storageClassName: {{ include "common.storageClass" . }}
111       resources:
112         requests:
113           storage: {{ .Values.persistence.size }}
114 {{ end }}