347442f8ef81bc1856c57c00d89351e14c96c24b
[oom.git] / kubernetes / message-router / charts / kafka / templates / deployment.yaml
1 # Copyright © 2017 Amdocs, Bell Canada
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #       http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 apiVersion: extensions/v1beta1
16 kind: Deployment
17 metadata:
18   name: {{ include "common.fullname" . }}
19   namespace: {{ include "common.namespace" . }}
20   labels:
21     app: {{ include "common.name" . }}
22     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
23     release: {{ .Release.Name }}
24     heritage: {{ .Release.Service }}
25 spec:
26   replicas: {{ .Values.replicaCount }}
27   template:
28     metadata:
29       labels:
30         app:  {{ include "common.name" . }}
31         release: {{ .Release.Name }}
32     spec:
33       initContainers:
34       - command:
35         - bash
36         args:
37         - -c
38         - "if [ -d /var/tmp/SDC-DISTR-NOTIF-TOPIC-SDC-OPENSOURCE-ENV1-0 ]; then echo nothing to do; else cp -a /opt/config/src/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/* /var/tmp/; fi"
39         image: "{{ .Values.global.configRepository }}/{{ .Values.global.configImage }}"
40         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
41         volumeMounts:
42         - mountPath: /var/tmp
43           name: kafka-data
44         name: kafka-primer
45       - command:
46         - /root/ready.py
47         args:
48         - --container-name
49         - {{ .Values.zookeeper.nameOverride }}
50         env:
51         - name: NAMESPACE
52           valueFrom:
53             fieldRef:
54               apiVersion: v1
55               fieldPath: metadata.namespace
56         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
57         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
58         name: {{ include "common.name" . }}-readiness
59       containers:
60       - name: {{ include "common.name" .  }}
61         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
62         imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
63         ports:
64         - containerPort: {{ .Values.service.internalPort }}
65         # disable liveness probe when breakpoints set in debugger
66         # so K8s doesn't restart unresponsive container
67         {{- if eq .Values.liveness.enabled true }}
68         livenessProbe:
69           tcpSocket:
70             port: {{ .Values.service.internalPort }}
71           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
72           periodSeconds: {{ .Values.liveness.periodSeconds }}
73         {{ end -}}
74         readinessProbe:
75           tcpSocket:
76             port: {{ .Values.service.internalPort }}
77           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
78           periodSeconds: {{ .Values.readiness.periodSeconds }}
79         env:
80         - name: KAFKA_ZOOKEEPER_CONNECT
81           value: "{{.Values.zookeeper.nameOverride}}:{{.Values.config.zookeeperPort}}"
82         - name: KAFKA_ADVERTISED_HOST_NAME
83           value: "{{ include "common.fullname" .  }}"
84         - name: KAFKA_BROKER_ID
85           value: "0"
86         - name: KAFKA_ADVERTISED_LISTENERS
87           value: PLAINTEXT://{{ include "common.name" .  }}:{{.Values.service.internalPort}}
88         - name: KAFKA_ADVERTISED_PORT
89           value: "{{.Values.service.internalPort}}"
90         - name: KAFKA_PORT
91           value: "{{.Values.service.internalPort}}"
92         volumeMounts:
93         - mountPath: /etc/localtime
94           name: localtime
95           readOnly: true
96         - mountPath: /var/run/docker.sock
97           name: docker-socket
98         - mountPath: /kafka
99           name: kafka-data
100       volumes:
101       - name: localtime
102         hostPath:
103           path: /etc/localtime
104       - name: docker-socket
105         hostPath:
106           path: /var/run/docker.sock
107       - name: kafka-data
108         persistentVolumeClaim:
109           claimName: {{ include "common.fullname" . }}
110       imagePullSecrets:
111       - name: "{{ include "common.namespace" . }}-docker-registry-key"