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