0930d0748debbca7b1019f0b7de747379a6f2912
[it/dep.git] / nonrtric / helm / policymanagementservice / templates / statefulset.yaml
1 ################################################################################
2 #   Copyright (c) 2020 Nordix Foundation.                                      #
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 kind: StatefulSet
18 apiVersion: apps/v1
19 metadata:
20   name: {{ include "common.name.policymanagementservice" . }}
21   namespace: {{ include "common.namespace.nonrtric" . }}
22   generation: 1
23   labels:
24     app: {{ include "common.namespace.nonrtric" . }}-{{ include "common.name.policymanagementservice" . }}
25     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
26     release: {{ .Release.Name }}
27     heritage: {{ .Release.Service }}
28   annotations:
29     deployment.kubernetes.io/revision: '1'
30 spec:
31   serviceName: {{ include "common.name.policymanagementservice" . }}
32   replicas: 1
33   selector:
34     matchLabels:
35       app: {{ include "common.namespace.nonrtric" . }}-{{ include "common.name.policymanagementservice" . }}
36       release: {{ .Release.Name }}
37   template:
38     metadata:
39       labels:
40         app: {{ include "common.namespace.nonrtric" . }}-{{ include "common.name.policymanagementservice" . }}
41         release: {{ .Release.Name }}
42     spec:
43       hostname: {{ include "common.name.policymanagementservice" . }}
44       initContainers:
45       - name: copy
46         image: busybox:1.28
47         command:
48         - /bin/sh
49         - -c
50         - FILE=/var/policy-management-service/application_configuration.json;
51           if [ ! -f $FILE ]; then
52             cp  /etc/app/policy-management-service/initialdata/application_configuration.json $FILE;
53           fi
54         volumeMounts:
55         - name: {{ include "common.name.policymanagementservice" . }}-vardata
56           mountPath: "/var/policy-management-service"
57         - name: {{ include "common.name.policymanagementservice" . }}-policy-data
58           mountPath: /etc/app/policy-management-service/initialdata
59       containers:
60       - name: {{ include "common.container.policymanagementservice" . }}
61         image: {{ .Values.policymanagementservice.image.registry }}/{{ .Values.policymanagementservice.image.name }}:{{ .Values.policymanagementservice.image.tag }}
62         imagePullPolicy: {{ .Values.policymanagementservice.imagePullPolicy }}
63         ports:
64         - containerPort: {{ .Values.policymanagementservice.service.targetPort1 }}
65           protocol: TCP
66         - containerPort: {{ .Values.policymanagementservice.service.targetPort2 }}
67           protocol: TCP
68         readinessProbe:
69           tcpSocket:
70             port: {{ .Values.policymanagementservice.service.targetPort1 }}
71           initialDelaySeconds: {{ .Values.policymanagementservice.liveness.initialDelaySeconds }}
72           periodSeconds: {{ .Values.policymanagementservice.liveness.periodSeconds }}
73         livenessProbe:
74           httpGet:
75             path: /status
76             port: {{ .Values.policymanagementservice.service.targetPort1 }}
77           initialDelaySeconds: {{ .Values.policymanagementservice.liveness.initialDelaySeconds }}
78           periodSeconds: {{ .Values.policymanagementservice.liveness.periodSeconds }}
79         volumeMounts:
80         - name: {{ include "common.name.policymanagementservice" . }}-vardata
81           mountPath: "/var/policy-management-service"
82         - name: {{ include "common.name.policymanagementservice" . }}-policy-config
83           mountPath: /opt/app/policy-agent/config
84         - name: {{ include "common.name.policymanagementservice" . }}-policy-data
85           mountPath: /etc/app/policy-management-service/initialdata
86       volumes:
87         - name: {{ include "common.name.policymanagementservice" . }}-policy-config
88           configMap:
89             name: {{ include "common.name.policymanagementservice" . }}-configmap-config
90         - name: {{ include "common.name.policymanagementservice" . }}-policy-data
91           configMap:
92             name: {{ include "common.name.policymanagementservice" . }}-configmap-data
93   volumeClaimTemplates:
94     - metadata:
95         name: {{ include "common.name.policymanagementservice" . }}-vardata
96       spec:
97         accessModes:
98           - ReadWriteOnce
99         storageClassName: "{{ .Values.policymanagementservice.persistence.storageClassName }}"
100         resources:
101           requests:
102             storage: "{{ .Values.policymanagementservice.persistence.size }}"