Files
ApiCore/deploy/k8s/overlays/encry/kustomization.yaml
T
Nick SzaunigandClaude Opus 5.5 ec8c95056d
Backend Image / build-and-push (push) Successful in 6m43s
Frontend Image / build-and-push (push) Failing after 12m42s
Manifests / validate (push) Successful in 18s
docs: README im Root, Backend/Frontend-READMEs, Statuszeilen (2026-10-16)
Neues README im Root mit Zweck, Aufbau, Start, Prüfbefehlen, Betrieb und
Projektstand (Issues #44, #43). Backend- und Frontend-README ersetzen die
Framework-Vorlagen. CLAUDE.md: Ordnerstruktur und echte Arbeitsweise
(main, gebündelt pushen, Rollout nur mit Freigabe). ARCHITECTURE §7/§8:
Live-ConfigMap, ensure-secrets.sh, korrektes Admin-Seed-Verhalten.
.env.example um BACKUP_MAX_IMPORT_BYTES und SEED_ADMIN_* ergänzt.
Statuszeilen in Plänen Rückgrat, T3–T6 und Specs Fahrplan, T7.

Refs #42

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-16 08:12:49 +02:00

53 lines
2.6 KiB
YAML

# Overlay fuer den RKE2-Cluster von EnCry (Namespace apicore, Traefik mit
# Middleware cloudflare-only). Vor jedem Rollout zeigt
# kubectl diff -k deploy/k8s/overlays/encry
# was sich aendert; nach dem Rollout ist der Diff leer.
#
# Gewollte Platzhalter, nie so anwenden:
# - Image-Digests sha256:000...: Runbook Schritt 0 traegt die Digests der
# CI-Builds (sha-<commit>) und von postgres:18.6-alpine ein.
# - Hosts und TLS in ingress-*.yaml: Runbook Schritt 1 uebernimmt sie aus dem
# Live-Stand. Die Werte in configmap-*.yaml sind seit 2026-10-15 schon die
# Live-Werte (Commit 6e3e9ae).
#
# Backend-Digest: Das neue Image (CMD nur `node dist/main.js`) geht erst
# zusammen mit components/backend-roles live (Runbook Schritt 3). Bis dahin
# bleibt hier der Digest des laufenden Images. Ohne APICORE_ROLE bricht das
# neue Image den Start in Produktion absichtlich ab. APICORE_ROLE nicht von
# Hand setzen: ohne die initContainer von backend-roles liefe dann keine
# Migration.
#
# Postgres: Bis 2026-10-13 wichen die Repo-Manifeste vom Cluster ab (Repo
# app: apicore-postgres, ohne Haertung, volumeClaimTemplates; Cluster
# app.kubernetes.io/name, gehaertet, statisches PVC apicore-postgres-data).
# Seit 2026-10-13 ist base/postgres der Live-Stand (StatefulSet, Service,
# PVC), nur das Image-Digest kommt von hier. Selektor und Volumes sind
# unveraenderlich: Aenderungen an Postgres immer zuerst gegen den Cluster
# pruefen (kubectl diff), nie die Live-Haertung zuruecknehmen. Das PV
# pv-apicore-postgres und sein SMB-Secret liegen nicht in diesem Repo.
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: apicore
resources:
- ../../base
- configmap-backend.yaml
- configmap-frontend.yaml
- ingress-backend.yaml
- ingress-frontend.yaml
# Zielstand. Je Runbook-Schritt nur die bis dahin freigegebenen Komponenten
# aktivieren (Schritt 1: keine). Das Auskommentieren ist nur lokal fuer
# kubectl diff/apply - nicht committen. Die CI rendert und prueft jeden
# Schritt (deploy/k8s/tests/render-stages.mjs).
components:
- ../../components/network-policies # Schritt 2
- ../../components/pod-hardening # Schritt 3
- ../../components/backend-roles # Schritt 3
- ../../components/api-hpa # Schritt 5
images:
- name: git.encry.de/nick.rosenloecher/apicore-backend
digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
- name: git.encry.de/nick.rosenloecher/apicore-frontend
digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
- name: postgres
digest: sha256:0000000000000000000000000000000000000000000000000000000000000000