Files
Artista-Filmcamp/k8s/06-worker.yaml
T
Nick SzaunigandClaude Opus 5.5 91791b791f refactor(k8s): minimale, flache Manifeste zum Kopieren
Kustomize-Struktur (base/overlays) entfernt. Stattdessen nummerierte
Einzeldateien, ausrollbar mit "kubectl apply -f k8s/":
00-namespace, 01-config, 02-storage (SMB-PVs/PVCs Postgres + Medien),
03-postgres (StatefulSet + Service), 04-app (Deployment mit
Migrations-initContainer + Service), 05-ingress, 06-worker,
07-networkpolicy. Secrets als secrets.yaml.example (echte secrets.yaml
ist gitignored). Images mit Tag latest aus der Gitea-Pipeline.
Kurzanleitung in k8s/README.md, Betriebsdoku angepasst.

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

35 lines
1.1 KiB
YAML

# Alle 10 Minuten: faellige Raten einziehen, abgelaufene Reservierungen
# freigeben, E-Mails nachsenden. Ohne ihn funktioniert Ratenzahlung nicht.
apiVersion: batch/v1
kind: CronJob
metadata:
name: artista-modelcamp-worker
namespace: artista
spec:
schedule: "*/10 * * * *"
concurrencyPolicy: Forbid
jobTemplate:
spec:
backoffLimit: 1
template:
metadata:
labels:
db-client: "true"
spec:
restartPolicy: Never
securityContext:
runAsNonRoot: true
runAsUser: 1001
seccompProfile: { type: RuntimeDefault }
containers:
- name: worker
image: git.encry.de/nick.rosenloecher/artista-modelcamp-tools:latest
imagePullPolicy: Always
command: ["tsx", "scripts/worker.ts"]
envFrom:
- configMapRef: { name: artista-modelcamp-config }
- secretRef: { name: artista-modelcamp-secrets }
securityContext:
allowPrivilegeEscalation: false
capabilities: { drop: ["ALL"] }