Update netbox deployment
[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.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           tcpSocket:
52             port: {{ .Values.service.internalPort }}
53           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
54           periodSeconds: {{ .Values.readiness.periodSeconds }}
55         env:
56           - name: DB_PASSWORD
57             valueFrom:
58               secretKeyRef:
59                 name: {{ template "common.fullname" . }}-pass
60                 key: DB_PASSWORD
61           - name: EMAIL_PASSWORD
62             valueFrom:
63               secretKeyRef:
64                 name: {{ template "common.fullname" . }}-pass
65                 key: EMAIL_PASSWORD
66           - name: NAPALM_PASSWORD
67             valueFrom:
68               secretKeyRef:
69                 name: {{ template "common.fullname" . }}-pass
70                 key: NAPALM_PASSWORD
71           - name: SECRET_KEY
72             valueFrom:
73               secretKeyRef:
74                 name: {{ template "common.fullname" . }}-pass
75                 key: SECRET_KEY
76           - name: SUPERUSER_PASSWORD
77             valueFrom:
78               secretKeyRef:
79                 name: {{ template "common.fullname" . }}-pass
80                 key: SUPERUSER_PASSWORD
81           - name: SUPERUSER_API_TOKEN
82             valueFrom:
83               secretKeyRef:
84                 name: {{ template "common.fullname" . }}-pass
85                 key: SUPERUSER_API_TOKEN
86           - name: ALLOWED_HOSTS
87             value: {{ .Values.config.allowedHosts | quote }}
88           - name: DB_NAME
89             value: {{ .Values.config.dbName }}
90           - name: DB_USER
91             value: {{ .Values.config.dbUser }}
92           - name: DB_HOST
93             value: {{ .Values.config.dbHost }}
94           - name: EMAIL_SERVER
95             value: {{ .Values.config.emailServer }}
96           - name: EMAIL_PORT
97             value: {{ .Values.config.emailPort  | quote }}
98           - name: EMAIL_USERNAME
99             value: {{ .Values.config.emailUsername }}
100           - name: EMAIL_TIMEOUT
101             value: {{ .Values.config.emailTimeout  | quote }}
102           - name: EMAIL_FROM
103             value: {{ .Values.config.emailFrom }}
104           - name: MEDIA_ROOT
105             value: {{ .Values.config.mediaRoot }}
106           - name: NAPALM_USERNAME
107             value: {{ .Values.config.napalmUsername }}
108           - name: NAPALM_TIMEOUT
109             value: {{ .Values.config.napalmTimeout  | quote }}
110           - name: MAX_PAGE_SIZE
111             value: {{ .Values.config.maxPageSize  | quote }}
112           - name: SUPERUSER_NAME
113             value: {{ .Values.config.superuserName }}
114           - name: SUPERUSER_EMAIL
115             value: {{ .Values.config.superuserEmail }}
116         volumeMounts:
117         - mountPath: /etc/localtime
118           name: localtime
119           readOnly: true
120         - mountPath: /opt/netbox/startup_scripts
121           name: {{ include "common.fullname" . }}-startupscripts-config
122         - mountPath: /opt/netbox/initializers
123           name: {{ include "common.fullname" . }}-initializers-config
124         - mountPath: /etc/netbox/config
125           name: {{ include "common.fullname" . }}-configuration-config
126         - name: {{ include "common.fullname" . }}
127           mountPath: /opt/netbox/netbox/static
128         resources:
129 {{ include "common.resources" . | indent 12 }}
130       {{- if .Values.nodeSelector }}
131       nodeSelector:
132 {{ toYaml .Values.nodeSelector | indent 10 }}
133       {{- end -}}
134       {{- if .Values.affinity }}
135       affinity:
136 {{ toYaml .Values.affinity | indent 10 }}
137       {{- end }}
138       volumes:
139         - name: localtime
140           hostPath:
141             path: /etc/localtime
142         - name: {{ include "common.fullname" . }}
143           persistentVolumeClaim:
144             claimName: {{ .Release.Name }}-{{ .Values.persistence.staticPvName }}
145         - name: {{ include "common.fullname" . }}-startupscripts-config
146           configMap:
147             name: {{ include "common.fullname" . }}-startupscripts-configmap
148         - name: {{ include "common.fullname" . }}-initializers-config
149           configMap:
150             name: {{ include "common.fullname" . }}-initializers-configmap
151         - name: {{ include "common.fullname" . }}-configuration-config
152           configMap:
153             name: {{ include "common.fullname" . }}-configuration-configmap
154       imagePullSecrets:
155       - name: "{{ include "common.namespace" . }}-docker-registry-key"