- Image-Digests von backend, frontend und postgres sind die live laufenden; whisper bekommt seinen ersten CI-Digest. Die neuen CI-Digests für Schritt 3 stehen als Kommentar. - Ingress-Hosts und TLS: apicore.encry.de, apicorebackend.encry.de. - kubectl diff ohne Components zeigt nur Rollout-Strategie und startupProbe am Backend, den Digest-Pin für postgres (ein Neustart) und drei neue VOICE_*-Werte in der Backend-ConfigMap. Refs #28 Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
69 lines
3.7 KiB
YAML
69 lines
3.7 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.
|
|
#
|
|
# Keine Platzhalter mehr (Runbook Schritte 0 und 1, 2026-10-16): Image-Digests
|
|
# (unten), Hosts und TLS-Secrets in ingress-*.yaml und die Werte in
|
|
# configmap-*.yaml entsprechen dem Live-Stand.
|
|
#
|
|
# 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
|
|
- ../../components/voice # Sprachnotizen (T7), erst nach VOICE_ENCRYPTION_KEY im Secret
|
|
# Stand 2026-10-16 (Runbook Schritt 0): backend, frontend und postgres sind die
|
|
# LIVE laufenden Images (kubectl get deploy,sts, gleiche Digests wie im
|
|
# Cluster). Neue CI-Digests fuer Schritt 3
|
|
# (nicht hier eintragen, bevor backend-roles live geht):
|
|
# apicore-backend sha-6a915aa sha256:b0ff76c4f248565819ddede919f0701d31cd17de3522bc7a9278682840952d1d
|
|
# apicore-frontend sha-279ceec sha256:deb9fbc6cd0e300b0bc0b8096b085ba73403b794672c45d0468fe6cc5a3a48dc
|
|
images:
|
|
# Live: apicore-backend:sha-f5b1964@sha256:db06...; hier ohne Tag (gleicher
|
|
# Digest, gleiches Image), weil die Manifest-Tests das Backend-Image ohne Tag
|
|
# erwarten. Einziger Image-Unterschied im kubectl diff.
|
|
- name: git.encry.de/nick.rosenloecher/apicore-backend
|
|
digest: sha256:db06e375beab3750ee7d8cab8ab53a53731bd877fe6bdd154b4cd8df52fb4f03
|
|
# Live ohne Tag, nur Digest.
|
|
- name: git.encry.de/nick.rosenloecher/apicore-frontend
|
|
digest: sha256:aa348582d866b0ed628d3086cfc79dc5e8f17308af1bbc9ac80ea616b6828037
|
|
# Abschreib-Image (.gitea/workflows/whisper-image.yml), erster CI-Build
|
|
# sha-c53810b. Nur in components/voice, laeuft noch nicht live.
|
|
- name: git.encry.de/nick.rosenloecher/apicore-whisper
|
|
digest: sha256:bb0eb6cd0168d0acb79a220699d0c8e254df4616d6dae78c109501566e100cd1
|
|
# Live laeuft postgres:18.6-alpine nur per Tag; der Digest ist der Index-Digest,
|
|
# den der Pod gezogen hat (= Docker Hub 18.6-alpine am 2026-10-16). Das
|
|
# Anheften aendert das Pod-Template: beim apply startet Postgres einmal neu.
|
|
- name: postgres
|
|
newTag: 18.6-alpine
|
|
digest: sha256:77f585114c32fbca283dc835b0596f4e52b51b4c6662d7810b2f4084f60a1873
|