0cb1d733ebb949142ef37f7a9ce1740b181e7fec
[oom.git] / kubernetes / multicloud / charts / multicloud-windriver / templates / deployment.yaml
1 {{/*
2 # Copyright © 2017 Amdocs, Bell Canada
3 # Modifications Copyright © 2018 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: extensions/v1beta1
19 kind: Deployment
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: {{ .Release.Name }}
27     heritage: {{ .Release.Service }}
28 spec:
29   replicas: {{ .Values.replicaCount }}
30   selector:
31     matchLabels:
32       app: {{ include "common.name" . }}
33   template:
34     metadata:
35       labels:
36         app: {{ include "common.name" . }}
37         release: {{ .Release.Name }}
38       name: {{ include "common.name" . }}
39       annotations:
40         sidecar.istio.io/inject: "{{.Values.istioSidecar}}"
41     spec:
42      initContainers:
43      - command: ["sh", "-c", "chown -R 100:101 /data"]
44        image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.global.ubuntuInitImage }}"
45        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
46        name: {{ include "common.name" . }}-init
47        volumeMounts:
48        - mountPath: /data
49          name: artifact-data
50      containers:
51      - env:
52        - name: MSB_ADDR
53          value: "{{ .Values.config.msbgateway }}.{{ include "common.namespace" . }}"
54        - name: MSB_PORT
55          value: "{{ .Values.config.msbPort }}"
56        - name: AAI_ADDR
57          value: aai.{{ include "common.namespace" . }}
58        - name: AAI_PORT
59          value: "{{ .Values.config.aai.port }}"
60        - name: AAI_SCHEMA_VERSION
61          value: "{{ .Values.config.aai.schemaVersion }}"
62        - name: AAI_USERNAME
63          value: "{{ .Values.config.aai.username }}"
64        - name: AAI_PASSWORD
65          value: "{{ .Values.config.aai.password }}"
66        name: {{ include "common.name" . }}
67        volumeMounts:
68        - mountPath: /var/log/onap
69          name: windriver-log
70        - mountPath: /opt/windriver/titanium_cloud/pub/config/log.yml
71          name: windriver-logconfig
72          subPath: log.yml
73        - mountPath: /opt/artifacts/
74          name: artifact-data
75        resources:
76 {{ include "common.resources" . | indent 12 }}
77        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
78        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
79        ports:
80        - containerPort: {{ .Values.service.internalPort }}
81        # disable liveness probe when breakpoints set in debugger
82        # so K8s doesn't restart unresponsive container
83        {{ if .Values.liveness.enabled }}
84        livenessProbe:
85          httpGet:
86            path: /api/multicloud-titaniumcloud/v1/swagger.json
87            port: {{ .Values.service.internalPort }}
88            scheme: HTTP
89          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
90          periodSeconds: {{ .Values.liveness.periodSeconds }}
91          timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
92          successThreshold: {{ .Values.liveness.successThreshold }}
93          failureThreshold: {{ .Values.liveness.failureThreshold }}
94        {{ end }}
95      # side car containers
96      - image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
97        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
98        name: filebeat-onap
99        volumeMounts:
100        - mountPath: /usr/share/filebeat/filebeat.yml
101          name: filebeat-conf
102          subPath: filebeat.yml
103        - mountPath: /var/log/onap
104          name: windriver-log
105        - mountPath: /usr/share/filebeat/data
106          name: windriver-data-filebeat
107      - image: "{{ include "common.repository" . }}/{{ .Values.global.artifactImage }}"
108        name: framework-artifactbroker
109        command: ["/opt/app/distribution/bin/artifact-dist.sh"]
110        args: ["/opt/app/distribution/etc/mounted/config.json"]
111        ports:
112        - containerPort: 9014
113          protocol: TCP
114        volumeMounts:
115        - mountPath: /opt/app/distribution/etc/mounted/config.json
116          name: windriver-logconfig
117          subPath: config.json
118        - mountPath: /data
119          name: artifact-data
120
121      volumes:
122      - name: windriver-log
123        emptyDir: {}
124      - name: windriver-data-filebeat
125        emptyDir: {}
126      - name: filebeat-conf
127        configMap:
128          name: multicloud-filebeat-configmap
129      - name: windriver-logconfig
130        configMap:
131          name: {{ include "common.fullname" . }}-log-configmap
132      - name: artifact-data
133      {{- if .Values.persistence.enabled }}
134        persistentVolumeClaim:
135          claimName: {{ include "common.fullname" . }}
136      {{- else }}
137        emptyDir: {}
138      {{- end }}
139      imagePullSecrets:
140      - name: "{{ include "common.namespace" . }}-docker-registry-key"
141      restartPolicy: Always