freeleaps-ops/magicleaps/helm-pkg/magicleaps/templates/backend/deployment.yaml

153 lines
6.8 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/name: "backend"
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/instance: {{ .Release.Name }}
name: "backend"
namespace: {{ .Release.Namespace | quote }}
spec:
selector:
matchLabels:
app.kubernetes.io/name: "backend"
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
replicas: {{ .Values.backend.replicas }}
template:
metadata:
labels:
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/name: "backend"
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
containers:
- name: "backend"
image: "{{ coalesce .Values.backend.image.registry .Values.global.registry "docker.io"}}/{{ coalesce .Values.backend.image.repository .Values.global.repository }}/{{ .Values.backend.image.name }}:{{ .Values.backend.image.tag | default "latest" }}"
imagePullPolicy: {{ .Values.backend.image.imagePullPolicy | default "IfNotPresent" }}
ports:
{{- range $port := .Values.backend.ports }}
- containerPort: {{ $port.containerPort }}
name: {{ $port.name }}
protocol: {{ $port.protocol }}
{{- end }}
{{- if .Values.backend.resources }}
resources:
{{- toYaml .Values.backend.resources | nindent 12 }}
{{- end }}
{{- if .Values.backend.probes }}
{{- if and (.Values.backend.probes.liveness) (eq .Values.backend.probes.liveness.type "httpGet") }}
livenessProbe:
httpGet:
path: {{ .Values.backend.probes.liveness.config.path }}
port: {{ .Values.backend.probes.liveness.config.port }}
{{- if .Values.backend.probes.liveness.config.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.backend.probes.liveness.config.initialDelaySeconds }}
{{- end }}
{{- if .Values.backend.probes.liveness.config.periodSeconds }}
periodSeconds: {{ .Values.backend.probes.liveness.config.periodSeconds }}
{{- end }}
{{- if .Values.backend.probes.liveness.config.timeoutSeconds }}
timeoutSeconds: {{ .Values.backend.probes.liveness.config.timeoutSeconds }}
{{- end }}
{{- if .Values.backend.probes.liveness.config.successThreshold }}
successThreshold: {{ .Values.backend.probes.liveness.config.successThreshold }}
{{- end }}
{{- if .Values.backend.probes.liveness.config.failureThreshold }}
failureThreshold: {{ .Values.backend.probes.liveness.config.failureThreshold }}
{{- end }}
{{- if .Values.backend.probes.liveness.config.terminationGracePeriodSeconds }}
terminationGracePeriodSeconds: {{ .Values.backend.probes.liveness.config.terminationGracePeriodSeconds }}
{{- end }}
{{- end }}
{{- if and (.Values.backend.probes.readiness) (eq .Values.backend.probes.readiness.type "httpGet") }}
readinessProbe:
httpGet:
path: {{ .Values.backend.probes.readiness.config.path }}
port: {{ .Values.backend.probes.readiness.config.port }}
{{- if .Values.backend.probes.readiness.config.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.backend.probes.readiness.config.initialDelaySeconds }}
{{- end }}
{{- if .Values.backend.probes.readiness.config.periodSeconds }}
periodSeconds: {{ .Values.backend.probes.readiness.config.periodSeconds }}
{{- end }}
{{- if .Values.backend.probes.readiness.config.timeoutSeconds }}
timeoutSeconds: {{ .Values.backend.probes.readiness.config.timeoutSeconds }}
{{- end }}
{{- if .Values.backend.probes.readiness.config.successThreshold }}
successThreshold: {{ .Values.backend.probes.readiness.config.successThreshold }}
{{- end }}
{{- if .Values.backend.probes.readiness.config.failureThreshold }}
failureThreshold: {{ .Values.backend.probes.readiness.config.failureThreshold }}
{{- end }}
{{- if .Values.backend.probes.readiness.config.terminationGracePeriodSeconds }}
terminationGracePeriodSeconds: {{ .Values.backend.probes.readiness.config.terminationGracePeriodSeconds }}
{{- end }}
{{- end }}
{{- end}}
env:
{{- range $key, $value := .Values.backend.configs }}
- name: {{ $key | snakecase | upper }}
valueFrom:
secretKeyRef:
name: magicleaps-backend-config
key: {{ $key | snakecase | upper }}
{{- end }}
{{- if .Values.logIngest.enabled }}
volumeMounts:
- name: app-logs
mountPath: {{ .Values.logIngest.backendLogPath }}
{{- end }}
{{- if .Values.logIngest.enabled }}
- name: opentelemetry-collector
image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest
command:
- /otelcol-contrib
- --config=/etc/otelcol-contrib/otelcol-contrib.yaml
volumeMounts:
- name: app-logs
mountPath: {{ .Values.logIngest.backendLogPath }}
- name: otelcol-config
mountPath: /etc/otelcol-contrib
securityContext:
allowPrivilegeEscalation: true
privileged: true
runAsUser: 0
runAsGroup: 0
env:
- name: KUBE_META_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: KUBE_META_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: KUBE_META_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: KUBE_META_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: KUBE_META_POD_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: KUBE_META_OBJECT_NAME
valueFrom:
fieldRef:
fieldPath: metadata.labels['app.kubernetes.io/instance']
{{- end }}
volumes:
{{- if .Values.logIngest.enabled }}
- name: app-logs
emptyDir: {}
- name: otelcol-config
configMap:
name: {{ .Release.Name }}-backend-otelcol-config
{{- end }}