Files
Artista-Filmcamp/k8s
Nick SzaunigandClaude Opus 5.5 32a5b8eb9d
Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 2m24s
fix(security): Haertung der minimalen k8s-Manifeste wiederhergestellt
Befunde des Commit-Security-Reviews: automountServiceAccountToken: false
fuer Postgres, App und Worker; Speicherlimits fuer Migrations-initContainer
und Worker; Laufzeitgrenze (activeDeadlineSeconds) fuer den Worker;
Groessenlimits fuer die emptyDir-Volumes.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-28 01:15:55 +02:00
..

Kubernetes (RKE2, Traefik, cert-manager)

Einmalig

  1. csi-driver-smb installieren:
    helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
    helm install csi-driver-smb csi-driver-smb/csi-driver-smb -n kube-system
    
  2. Auf dem NAS die Ordner artista/modelcamp-postgres (leer) und artista/modelcamp-media anlegen und SMB-Verschlüsselung erlauben.
  3. Anpassen:
    • nas.example.lan in 02-storage.yaml
    • modelcamp.example.org in 01-config.yaml und 05-ingress.yaml
    • den Traefik-Namespace in 07-networkpolicy.yaml
  4. Secrets: cp k8s/secrets.yaml.example k8s/secrets.yaml, die Werte eintragen.
  5. Ausrollen:
    kubectl apply -f k8s/00-namespace.yaml
    kubectl apply -f k8s/secrets.yaml
    kubectl apply -f k8s/
    
  6. Admin anlegen (E-Mail und Name ersetzen; das einmalige Passwort wird ausgegeben, die 2FA richtest du bei der ersten Anmeldung unter /admin ein):
    kubectl -n artista run admin-create --rm -i --restart=Never \
      --image=git.encry.de/nick.rosenloecher/artista-modelcamp-tools:latest --labels=db-client=true \
      --overrides='{"spec":{"securityContext":{"runAsNonRoot":true,"runAsUser":1001,"seccompProfile":{"type":"RuntimeDefault"}},"containers":[{"name":"admin-create","image":"git.encry.de/nick.rosenloecher/artista-modelcamp-tools:latest","command":["tsx","scripts/create-admin.ts","--email","[email protected]","--name","Dein Name"],"envFrom":[{"configMapRef":{"name":"artista-modelcamp-config"}},{"secretRef":{"name":"artista-modelcamp-secrets"}}],"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}}}]}}'
    

Update

Bei jedem Push auf main baut die Gitea-Pipeline die Images mit dem Tag latest. Danach:

kubectl -n artista rollout restart deploy/artista-modelcamp-app

Der initContainer migriert die Datenbank automatisch.