Merge "[UUI] Service Mesh Compliance for UUI"
[oom.git] / kubernetes / contrib / components / netbox / components / netbox-app / templates / deployment.yaml
1 {{/*
2 # Copyright © 2018 Amdocs, Bell Canada
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     spec:
38       containers:
39       - name: {{ include "common.name" . }}
40         image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
41         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
42         ports:
43         - containerPort: {{ .Values.service.internalPort }}
44           # disable liveness probe when breakpoints set in debugger
45           # so K8s doesn't restart unresponsive container
46         {{ if .Values.liveness.enabled }}
47         livenessProbe:
48           tcpSocket:
49             port: {{ .Values.service.internalPort }}
50           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
51           periodSeconds: {{ .Values.liveness.periodSeconds }}
52         {{ end }}
53         readinessProbe:
54           tcpSocket:
55             port: {{ .Values.service.internalPort }}
56           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
57           periodSeconds: {{ .Values.readiness.periodSeconds }}
58         env:
59           - name: DB_PASSWORD
60             valueFrom:
61               secretKeyRef:
62                 name: {{ template "common.fullname" . }}-pass
63                 key: DB_PASSWORD
64           - name: EMAIL_PASSWORD
65             valueFrom:
66               secretKeyRef:
67                 name: {{ template "common.fullname" . }}-pass
68                 key: EMAIL_PASSWORD
69           - name: NAPALM_PASSWORD
70             valueFrom:
71               secretKeyRef:
72                 name: {{ template "common.fullname" . }}-pass
73                 key: NAPALM_PASSWORD
74           - name: SECRET_KEY
75             valueFrom:
76               secretKeyRef:
77                 name: {{ template "common.fullname" . }}-pass
78                 key: SECRET_KEY
79           - name: SUPERUSER_PASSWORD
80             valueFrom:
81               secretKeyRef:
82                 name: {{ template "common.fullname" . }}-pass
83                 key: SUPERUSER_PASSWORD
84           - name: SUPERUSER_API_TOKEN
85             valueFrom:
86               secretKeyRef:
87                 name: {{ template "common.fullname" . }}-pass
88                 key: SUPERUSER_API_TOKEN
89           - name: ALLOWED_HOSTS
90             value: {{ .Values.config.allowedHosts | quote }}
91           - name: DB_NAME
92             value: {{ .Values.config.dbName }}
93           - name: DB_USER
94             value: {{ .Values.config.dbUser }}
95           - name: DB_HOST
96             value: {{ .Values.config.dbHost }}
97           - name: EMAIL_SERVER
98             value: {{ .Values.config.emailServer }}
99           - name: EMAIL_PORT
100             value: {{ .Values.config.emailPort  | quote }}
101           - name: EMAIL_USERNAME
102             value: {{ .Values.config.emailUsername }}
103           - name: EMAIL_TIMEOUT
104             value: {{ .Values.config.emailTimeout  | quote }}
105           - name: EMAIL_FROM
106             value: {{ .Values.config.emailFrom }}
107           - name: MEDIA_ROOT
108             value: {{ .Values.config.mediaRoot }}
109           - name: NAPALM_USERNAME
110             value: {{ .Values.config.napalmUsername }}
111           - name: NAPALM_TIMEOUT
112             value: {{ .Values.config.napalmTimeout  | quote }}
113           - name: MAX_PAGE_SIZE
114             value: {{ .Values.config.maxPageSize  | quote }}
115           - name: SUPERUSER_NAME
116             value: {{ .Values.config.superuserName }}
117           - name: SUPERUSER_EMAIL
118             value: {{ .Values.config.superuserEmail }}
119         volumeMounts:
120         - mountPath: /etc/localtime
121           name: localtime
122           readOnly: true
123         - mountPath: /opt/netbox/startup_scripts
124           name: {{ include "common.fullname" . }}-startupscripts-config
125         - mountPath: /opt/netbox/initializers
126           name: {{ include "common.fullname" . }}-initializers-config
127         - mountPath: /etc/netbox/config
128           name: {{ include "common.fullname" . }}-configuration-config
129         - name: {{ include "common.fullname" . }}
130           mountPath: /opt/netbox/netbox/static
131         resources:
132 {{ include "common.resources" . | indent 12 }}
133       {{- if .Values.nodeSelector }}
134       nodeSelector:
135 {{ toYaml .Values.nodeSelector | indent 10 }}
136       {{- end -}}
137       {{- if .Values.affinity }}
138       affinity:
139 {{ toYaml .Values.affinity | indent 10 }}
140       {{- end }}
141       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
142       volumes:
143         - name: localtime
144           hostPath:
145             path: /etc/localtime
146         - name: {{ include "common.fullname" . }}
147           persistentVolumeClaim:
148             claimName: {{ include "common.release" . }}-{{ .Values.persistence.staticPvName }}
149         - name: {{ include "common.fullname" . }}-startupscripts-config
150           configMap:
151             name: {{ include "common.fullname" . }}-startupscripts-configmap
152         - name: {{ include "common.fullname" . }}-initializers-config
153           configMap:
154             name: {{ include "common.fullname" . }}-initializers-configmap
155         - name: {{ include "common.fullname" . }}-configuration-config
156           configMap:
157             name: {{ include "common.fullname" . }}-configuration-configmap
158       imagePullSecrets:
159       - name: "{{ include "common.namespace" . }}-docker-registry-key"