Add the authentication middleware for service.
[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       serviceAccountName: {{ .Values.o2ims.serviceaccountname }}
34       imagePullSecrets:
35         - name: {{ .Values.o2ims.imagePullSecrets }}
36 {{- if .Values.o2ims.affinity }}
37       affinity:
38 {{ toYaml .Values.o2ims.affinity | indent 8 }}
39 {{- end }}
40       containers:
41         - name: postgres
42           image: postgres:9.6
43           ports:
44             - containerPort: 5432
45           env:
46             - name: POSTGRES_PASSWORD
47               value: o2ims123
48             - name: POSTGRES_USER
49               value: o2ims
50           command: ["/bin/bash", "/opt/postgres_start.sh"]
51           volumeMounts:
52             - name: scripts
53               mountPath: /opt
54         - name: redis
55           image: redis:alpine
56           ports:
57             - containerPort: 6379
58         - name: o2pubsub
59           image: "{{ .Values.o2ims.image.repository }}:{{ .Values.o2ims.image.tag }}"
60           command: ["/bin/bash", "/opt/o2pubsub_start.sh"]
61           env:
62             - name: DB_HOST
63               value: postgres
64             - name: DB_PASSWORD
65               value: o2ims123
66             - name: LOGGING_CONFIG_LEVEL
67               value: {{ .Values.o2ims.logginglevel }}
68             - name: OS_AUTH_URL
69               value: {{ .Values.ocloud.OS_AUTH_URL }}
70             - name: OS_PASSWORD
71               value: {{ .Values.ocloud.OS_PASSWORD }}
72             - name: OS_USERNAME
73               value: {{ .Values.ocloud.OS_USERNAME }}
74             - name: PYTHONDONTWRITEBYTECODE
75               value: "1"
76             - name: REDIS_HOST
77               value: redis
78             - name: K8S_KUBECONFIG
79               value: {{ .Values.ocloud.K8S_KUBECONFIG }}
80           volumeMounts:
81             - name: scripts
82               mountPath: /opt
83         - name: watcher
84           image: "{{ .Values.o2ims.image.repository }}:{{ .Values.o2ims.image.tag }}"
85           command: ["/bin/bash", "/opt/o2watcher_start.sh"]
86           env:
87             - name: API_HOST_EXTERNAL_FLOATING
88               value: {{ .Values.ocloud.API_HOST_EXTERNAL_FLOATING }}
89             - name: DB_HOST
90               value: postgres
91             - name: DB_PASSWORD
92               value: o2ims123
93             - name: LOGGING_CONFIG_LEVEL
94               value: {{ .Values.o2ims.logginglevel }}
95             - name: OS_AUTH_URL
96               value: {{ .Values.ocloud.OS_AUTH_URL }}
97             - name: OS_PASSWORD
98               value: {{ .Values.ocloud.OS_PASSWORD }}
99             - name: OS_USERNAME
100               value: {{ .Values.ocloud.OS_USERNAME }}
101             - name: PYTHONDONTWRITEBYTECODE
102               value: "1"
103             - name: REDIS_HOST
104               value: redis
105           volumeMounts:
106             - name: scripts
107               mountPath: /opt
108         - name: o2api
109           image: "{{ .Values.o2ims.image.repository }}:{{ .Values.o2ims.image.tag }}"
110           ports:
111             - containerPort: 80
112           env:
113             - name: API_HOST_EXTERNAL_FLOATING
114               value: {{ .Values.ocloud.API_HOST_EXTERNAL_FLOATING }}
115             - name: DB_HOST
116               value: postgres
117             - name: DB_PASSWORD
118               value: o2ims123
119             - name: FLASK_APP
120               value: /root/o2/o2app/entrypoints/flask_application.py
121             - name: FLASK_DEBUG
122               value: {{ .Values.o2ims.logginglevel }}
123             - name: LOGGING_CONFIG_LEVEL
124               value: {{ .Values.o2ims.logginglevel }}
125             - name: OS_AUTH_URL
126             - name: OS_PASSWORD
127             - name: OS_USERNAME
128             - name: PYTHONDONTWRITEBYTECODE
129               value: "1"
130             - name: PYTHONUNBUFFERED
131               value: "1"
132             - name: REDIS_HOST
133               value: redis
134             - name: HELM_USER_PASSWD
135               value: {{ .Values.ocloud.HELM_USER_PASSWD }}
136           command: ["/bin/bash", "/opt/o2api_start.sh"]
137           volumeMounts:
138             - name: scripts
139               mountPath: /opt
140             - name: configs
141               mountPath: /configs
142         - name: helmcli
143           image: "{{ .Values.o2ims.image.repository }}:{{ .Values.o2ims.image.tag }}"
144           ports:
145             - containerPort: 22
146           env:
147             - name: API_HOST_EXTERNAL_FLOATING
148               value: {{ .Values.ocloud.API_HOST_EXTERNAL_FLOATING }}
149             - name: HELM_USER_PASSWD
150               value: {{ .Values.ocloud.HELM_USER_PASSWD }}
151           command: ["/bin/bash", "/opt/o2_helmcli_start.sh"]
152           volumeMounts:
153             - name: scripts
154               mountPath: /opt
155             - name: configs
156               mountPath: /configs
157       volumes:
158         - name: scripts
159           configMap:
160             name: {{ .Chart.Name }}-scripts-configmap
161         - name: configs
162           emptyDir: {}
163 ---