chore(deploy): Overlay auf Live-Stand, Rollout-Runbook Schritte 0 und 1 (#28)

- 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]>
This commit is contained in:
Nick.RosenloecherandClaude Opus 5.5 committed 2026-10-16 17:32:21 +02:00
1 parent e71848d996
commit fee84c7a6b
4 files changed
+28 -17

No files matched your search

@@ -1,5 +1,5 @@
# Werte fuer den Cluster, Bedeutung: base/frontend/configmap.example.yaml.
# Der Host ist ein Platzhalter, Runbook Schritt 1 uebernimmt den Live-Wert.
# Live-Wert (Runbook Schritt 1).
apiVersion: v1
kind: ConfigMap
metadata:
@@ -15,10 +15,10 @@ spec:
ingressClassName: traefik
tls:
- hosts:
- api.apicore.example.com
- apicorebackend.encry.de
secretName: apicore-backend-tls
rules:
- host: api.apicore.example.com
- host: apicorebackend.encry.de
http:
paths:
- path: /
@@ -15,10 +15,10 @@ spec:
ingressClassName: traefik
tls:
- hosts:
- apicore.example.com
- apicore.encry.de
secretName: apicore-frontend-tls
rules:
- host: apicore.example.com
- host: apicore.encry.de
http:
paths:
- path: /
+23 -12
View File
@@ -3,12 +3,9 @@
# 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).
# 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
@@ -44,14 +41,28 @@ components:
- ../../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:0000000000000000000000000000000000000000000000000000000000000000
digest: sha256:db06e375beab3750ee7d8cab8ab53a53731bd877fe6bdd154b4cd8df52fb4f03
# Live ohne Tag, nur Digest.
- name: git.encry.de/nick.rosenloecher/apicore-frontend
digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
# Abschreib-Image (.gitea/workflows/whisper-image.yml, Tag sha-<commit>).
# Platzhalter bis zum ersten CI-Build; dann den Digest eintragen.
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:0000000000000000000000000000000000000000000000000000000000000000
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
digest: sha256:0000000000000000000000000000000000000000000000000000000000000000
newTag: 18.6-alpine
digest: sha256:77f585114c32fbca283dc835b0596f4e52b51b4c6662d7810b2f4084f60a1873