3ef28260f5c9ea3f8d2dc0c324a8dae2e9fd9ec6
[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       containers:
45       - name: {{ include "common.container.policymanagementservice" . }}
46         image: {{ .Values.policymanagementservice.image.registry }}/{{ .Values.policymanagementservice.image.name }}:{{ .Values.policymanagementservice.image.tag }}
47         imagePullPolicy: {{ .Values.policymanagementservice.imagePullPolicy }}
48         ports:
49         - containerPort: {{ .Values.policymanagementservice.service.targetPort1 }}
50           protocol: TCP
51         - containerPort: {{ .Values.policymanagementservice.service.targetPort2 }}
52           protocol: TCP
53         readinessProbe:
54           tcpSocket:
55             port: {{ .Values.policymanagementservice.service.targetPort1 }}
56           initialDelaySeconds: {{ .Values.policymanagementservice.liveness.initialDelaySeconds }}
57           periodSeconds: {{ .Values.policymanagementservice.liveness.periodSeconds }}
58         livenessProbe:
59           httpGet:
60             path: /status
61             port: {{ .Values.policymanagementservice.service.targetPort1 }}
62           initialDelaySeconds: {{ .Values.policymanagementservice.liveness.initialDelaySeconds }}
63           periodSeconds: {{ .Values.policymanagementservice.liveness.periodSeconds }}
64         volumeMounts:
65         - name: {{ include "common.name.policymanagementservice" . }}-vardata
66           mountPath: "/var/policy-management-service"
67         - name: {{ include "common.name.policymanagementservice" . }}-policy-config
68           mountPath: /opt/app/policy-agent/config
69         - name: {{ include "common.name.policymanagementservice" . }}-policy-data
70           mountPath: /opt/app/policy-agent/data
71       volumes:
72         - name: {{ include "common.name.policymanagementservice" . }}-policy-config
73           configMap:
74             name: {{ include "common.name.policymanagementservice" . }}-configmap-config
75         - name: {{ include "common.name.policymanagementservice" . }}-policy-data
76           configMap:
77             name: {{ include "common.name.policymanagementservice" . }}-configmap-data
78   volumeClaimTemplates:
79     - metadata:
80         name: {{ include "common.name.policymanagementservice" . }}-vardata
81       spec:
82         accessModes:
83           - ReadWriteOnce
84         storageClassName: "{{ .Values.policymanagementservice.persistence.storageClassName }}"
85         resources:
86           requests:
87             storage: "{{ .Values.policymanagementservice.persistence.size }}"