Enhance: Enable O2 DMS by exposing k8s API endpoint
[pti/o2.git] / charts / templates / deployment.yaml
1 # Copyright (C) 2021 Wind River Systems, Inc.
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 ---
16 apiVersion: apps/v1
17 kind: Deployment
18 metadata:
19   name: o2api
20   namespace: {{ .Values.global.namespace }}
21   labels:
22     app: o2api
23 spec:
24   replicas: 1
25   selector:
26     matchLabels:
27       app: o2api
28   template:
29     metadata:
30       labels:
31         app: o2api
32     spec:
33       imagePullSecrets:
34         - name: {{ .Values.o2ims.imagePullSecrets }}
35 {{- if .Values.o2ims.affinity }}
36       affinity:
37 {{ toYaml .Values.o2ims.affinity | indent 8 }}
38 {{- end }}
39       containers:
40         - name: postgres
41           image: postgres:9.6
42           ports:
43             - containerPort: 5432
44           env:
45             - name: POSTGRES_PASSWORD
46               value: o2ims123
47             - name: POSTGRES_USER
48               value: o2ims
49           command: ["/bin/bash", "/opt/postgres_start.sh"]
50           volumeMounts:
51             - name: scripts
52               mountPath: /opt
53         - name: redis
54           image: redis:alpine
55           ports:
56             - containerPort: 6379
57         - name: o2pubsub
58           image: "{{ .Values.o2ims.image.repository }}:{{ .Values.o2ims.image.tag }}"
59           command: ["/bin/bash", "/opt/o2pubsub_start.sh"]
60           env:
61             - name: DB_HOST
62               value: postgres
63             - name: DB_PASSWORD
64               value: o2ims123
65             - name: LOGGING_CONFIG_LEVEL
66               value: {{ .Values.o2ims.logginglevel }}
67             - name: OS_AUTH_URL
68               value: {{ .Values.ocloud.OS_AUTH_URL }}
69             - name: OS_PASSWORD
70               value: {{ .Values.ocloud.OS_PASSWORD }}
71             - name: OS_USERNAME
72               value: {{ .Values.ocloud.OS_USERNAME }}
73             - name: PYTHONDONTWRITEBYTECODE
74               value: "1"
75             - name: REDIS_HOST
76               value: redis
77             - name: K8S_KUBECONFIG
78               value: {{ .Values.ocloud.K8S_KUBECONFIG }}
79           volumeMounts:
80             - name: scripts
81               mountPath: /opt
82         - name: watcher
83           image: "{{ .Values.o2ims.image.repository }}:{{ .Values.o2ims.image.tag }}"
84           command: ["/bin/bash", "/opt/o2watcher_start.sh"]
85           env:
86             - name: API_HOST_EXTERNAL_FLOATING
87               value: {{ .Values.ocloud.API_HOST_EXTERNAL_FLOATING }}
88             - name: DB_HOST
89               value: postgres
90             - name: DB_PASSWORD
91               value: o2ims123
92             - name: LOGGING_CONFIG_LEVEL
93               value: {{ .Values.o2ims.logginglevel }}
94             - name: OS_AUTH_URL
95               value: {{ .Values.ocloud.OS_AUTH_URL }}
96             - name: OS_PASSWORD
97               value: {{ .Values.ocloud.OS_PASSWORD }}
98             - name: OS_USERNAME
99               value: {{ .Values.ocloud.OS_USERNAME }}
100             - name: PYTHONDONTWRITEBYTECODE
101               value: "1"
102             - name: REDIS_HOST
103               value: redis
104           volumeMounts:
105             - name: scripts
106               mountPath: /opt
107         - name: o2api
108           image: "{{ .Values.o2ims.image.repository }}:{{ .Values.o2ims.image.tag }}"
109           ports:
110             - containerPort: 80
111           env:
112             - name: API_HOST_EXTERNAL_FLOATING
113               value: {{ .Values.ocloud.API_HOST_EXTERNAL_FLOATING }}
114             - name: DB_HOST
115               value: postgres
116             - name: DB_PASSWORD
117               value: o2ims123
118             - name: FLASK_APP
119               value: /root/o2/o2app/entrypoints/flask_application.py
120             - name: FLASK_DEBUG
121               value: {{ .Values.o2ims.logginglevel }}
122             - name: LOGGING_CONFIG_LEVEL
123               value: {{ .Values.o2ims.logginglevel }}
124             - name: OS_AUTH_URL
125             - name: OS_PASSWORD
126             - name: OS_USERNAME
127             - name: PYTHONDONTWRITEBYTECODE
128               value: "1"
129             - name: PYTHONUNBUFFERED
130               value: "1"
131             - name: REDIS_HOST
132               value: redis
133           command: ["/bin/bash", "/opt/o2api_start.sh"]
134           volumeMounts:
135             - name: scripts
136               mountPath: /opt
137       volumes:
138         - name: scripts
139           configMap:
140             name: {{ .Chart.Name }}-scripts-configmap
141 ---