boday_tf/charts/boday-it/templates/web-deployment.yaml
root e9220a6a69
Some checks failed
Django Helm GitOps Deploy / build-and-test (push) Failing after 11s
Django Helm GitOps Deploy / deploy-prod (push) Has been skipped
talos deploy
2026-11-08 02:32:47 +01:00

77 lines
2.5 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-web
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ .Release.Name }}-web
template:
metadata:
labels:
app: {{ .Release.Name }}-web
spec:
# 1. INIT-CONTAINER: Sammelt statische Dateien beim Pod-Start
initContainers:
- name: collectstatic
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
command:
- /bin/sh
- -c
- |
python manage.py migrate --noinput && \
python manage.py collectstatic --noinput
env:
- name: DEBUG
value: {{ .Values.django.debug | quote }}
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-secrets
key: django-secret-key
volumeMounts:
- name: static-assets
mountPath: /code/staticfiles
containers:
# 2. HAUPT-CONTAINER: Django / Gunicorn
- name: django
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
command: ["gunicorn", "boday_it.wsgi:application", "--bind", "0.0.0.0:8000"]
env:
- name: DEBUG
value: {{ .Values.django.debug | quote }}
- name: ALLOWED_HOSTS
value: {{ .Values.django.allowedHosts | quote }}
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-secrets
key: django-secret-key
- name: DATABASE_URL
value: "postgres://{{ .Values.postgres.user }}:$(POSTGRES_PASSWORD)@{{ .Release.Name }}-db:5432/{{ .Values.postgres.database }}"
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-secrets
key: postgres-password
ports:
- containerPort: 8000
name: webport
# 3. SIDECAR-CONTAINER: Nginx für superschnelles Static-Asset Delivery
- name: nginx-static
image: nginx:alpine
volumeMounts:
- name: static-assets
mountPath: /usr/share/nginx/html/static
ports:
- containerPort: 80
name: staticport
volumes:
- name: static-assets
emptyDir: {}