[MULTICLOUD] Service mesh compatibility
[oom.git] / kubernetes / multicloud / components / multicloud-starlingx / templates / deployment.yaml
1 {{/*
2 # Copyright (c) 2019 Intel Corporation.
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: Deployment
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   replicas: {{ .Values.replicaCount }}
29   selector:
30     matchLabels:
31       app: {{ include "common.name" . }}
32   template:
33     metadata:
34       labels:
35         app: {{ include "common.name" . }}
36         release: {{ include "common.release" . }}
37       name: {{ include "common.name" . }}
38       annotations:
39         sidecar.istio.io/inject: "{{.Values.istioSidecar}}"
40     spec:
41       containers:
42       - env:
43         - name: MSB_PROTO
44           value: "{{ if (include "common.needTLS" .) }}https{{ else }}http{{ end }}"
45         - name: MSB_ADDR
46           value: "{{ .Values.config.msbgateway }}.{{ include "common.namespace" . }}"
47         - name: MSB_PORT
48           value: "{{- if (include "common.needTLS" .) }}{{ .Values.config.msbPort }}{{ else }}{{ .Values.config.msbPlainPort }}{{ end }}"
49         - name: AAI_ADDR
50           value: "aai.{{ include "common.namespace" . }}"
51         - name: AAI_PORT
52           value: "{{- if (include "common.needTLS" .) }}{{ .Values.config.aai.aaiPort }}{{ else }}{{ .Values.config.aai.aaiPlainPort }}{{ end }}"
53         - name: AAI_SCHEMA_VERSION
54           value: "{{ .Values.config.aai.schemaVersion }}"
55         - name: AAI_USERNAME
56           value: "{{ .Values.config.aai.username }}"
57         - name: AAI_PASSWORD
58           value: "{{ .Values.config.aai.password }}"
59         - name: SSL_ENABLED
60           value: "{{- if (include "common.needTLS" .) }}{{ .Values.config.ssl_enabled }}{{ else }}false{{ end }}"
61         name: {{ include "common.name" . }}
62         volumeMounts:
63         - mountPath: "{{ .Values.log.path }}"
64           name: starlingx-log
65         - mountPath: /opt/starlingx/starlingx/pub/config/log.yml
66           name: starlingx-logconfig
67           subPath: log.yml
68         - mountPath: /opt/artifacts/
69           name: artifact-data
70         resources: {{ include "common.resources" . | nindent 12 }}
71         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
72         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
73         ports:
74         - containerPort: {{ .Values.service.internalPort }}
75         # disable liveness probe when breakpoints set in debugger
76         # so K8s doesn't restart unresponsive container
77         {{ if .Values.liveness.enabled }}
78         livenessProbe:
79           httpGet:
80             path: /api/multicloud-starlingx/v0/swagger.json
81             port: {{ .Values.service.internalPort }}
82             scheme: {{ if (include "common.needTLS" .) }}HTTPS{{ else }}HTTP{{ end }}
83           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
84           periodSeconds: {{ .Values.liveness.periodSeconds }}
85           timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
86           successThreshold: {{ .Values.liveness.successThreshold }}
87           failureThreshold: {{ .Values.liveness.failureThreshold }}
88         {{ end }}
89       # side car containers
90       {{ include "common.log.sidecar" . | nindent 7 }}
91       - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.memcached }}
92         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
93         name: memcached
94       - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.artifactImage }}
95         name: framework-artifactbroker
96         command: ["/opt/app/distribution/bin/artifact-dist.sh"]
97         args: ["/opt/app/distribution/etc/mounted/config.json"]
98         ports:
99         - containerPort: 9014
100           protocol: TCP
101         volumeMounts:
102         - mountPath: /opt/app/distribution/etc/mounted/config.json
103           name: starlingx-logconfig
104           subPath: config.json
105         - mountPath: /data
106           name: artifact-data
107       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
108       volumes:
109       - name: starlingx-log
110         emptyDir: {}
111       {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix . )) | nindent 7 }}
112       - name: starlingx-logconfig
113         configMap:
114           name: {{ include "common.fullname" . }}-log-configmap
115       - name: artifact-data
116         emptyDir: {}
117       imagePullSecrets:
118       - name: "{{ include "common.namespace" . }}-docker-registry-key"
119       restartPolicy: Always