deploy-templates/templates/deployment.yaml (97 lines of code) (raw):
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "geoServer.fullname" . }}
labels:
{{- include "geoServer.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "geoServer.selectorLabels" . | nindent 6 }}
replicas: {{ .Values.global.registry.geoServer.replicas }}
strategy:
type: Recreate
template:
metadata:
labels:
collect.logs: "plain-text"
{{- include "geoServer.labels" . | nindent 8 }}
annotations:
backup.velero.io/backup-volumes: {{- include "geoServer.volume.name" . | indent 1 }}
{{- if .Values.global.registry.geoServer.istio.sidecar.enabled }}
traffic.sidecar.istio.io/excludeOutboundPorts: '6379'
sidecar.istio.io/inject: 'true'
{{- include "geoServer.istioResources" . | nindent 8 }}
{{- end }}
spec:
containers:
- name: {{ template "geoServer.fullname" . }}
env:
{{- range $name, $value := .Values.global.registry.geoServer.container.envVars }}
- name: {{ $name }}
value: {{ $value | quote }}
{{- end }}
{{- if .Values.geoServer.volume.enabled }}
- name: GEOSERVER_DATA_DIR
value: {{ .Values.geoServer.volume.mountPath }}
{{- end }}
- name: GEOSERVER_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.geoServer.secret.name }}
key: password
- name: PROXY_BASE_URL
{{- $url := printf "https://%s/geoserver" ( include "geoServer.hostname" . )}}
value: {{ $url }}
- name: GEOSERVER_CSRF_WHITELIST
value: '{{ template "officer-portal.hostname" (dict "root" $ "portal" "officer") }},{{ template "geoServer.hostname" . }}'
- name: HTTP_MAX_HEADER_SIZE
value: "64000"
- name: JAVA_OPTS
value: {{ .Values.geoServer.javaOpts }}
- name: GEOSERVER_ADMIN_USER
value: admin
image: "{{ .Values.image.name }}:{{ .Values.image.version }}"
ports:
- containerPort: {{ .Values.geoServer.service.port }}
name: {{.Values.geoServer.service.portName }}
- containerPort: {{ .Values.geoServer.jvmMetrics.port }}
name: {{.Values.geoServer.jvmMetrics.portName }}
livenessProbe:
httpGet:
path: {{ .Values.geoServer.httpHealthCheckPath }}
port: {{ .Values.geoServer.service.port }}
failureThreshold: 10
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
readinessProbe:
httpGet:
path: {{ .Values.geoServer.httpHealthCheckPath }}
port: {{ .Values.geoServer.service.port }}
failureThreshold: 10
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
{{- if or .Values.global.registry.geoServer.container.resources.requests .Values.global.registry.geoServer.container.resources.limits }}
resources:
{{- toYaml .Values.global.registry.geoServer.container.resources | nindent 12 }}
{{- end }}
volumeMounts:
- name: {{- include "geoServer.volume.name" . | indent 1 }}
mountPath: {{ .Values.geoServer.volume.mountPath }}
readOnly: {{ .Values.geoServer.volume.readOnly }}
{{- if .Values.geoServer.serviceAccount.enabled }}
serviceAccountName: {{ default ( include "geoServer.serviceAccountName" . ) .Values.geoServer.serviceAccount.name }}
{{- end }}
{{- if .Values.geoServer.podSecurityContext }}
securityContext: {{ toYaml .Values.geoServer.podSecurityContext | nindent 8 }}
{{- end }}
{{- if .Values.geoServer.volume.enabled }}
volumes:
- name: {{- include "geoServer.volume.name" . | indent 1 }}
persistentVolumeClaim:
claimName: {{- include "geoServer.volume.name" . | indent 1 }}
{{- end }}