docs: finalize and verify Redis-to-Valkey migration and Keycloak hardening
Updated `MASTER_ROADMAP_2026_Q1.md` to reflect completed Redis-to-Valkey migration and Keycloak production configuration. Adjusted property paths in `base-application.yaml` and session logs with corrected environment variable names. Verified end-to-end Docker stability and roadmap alignment. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
parent
69c1123586
commit
5bc2538aab
2
.env
2
.env
|
|
@ -54,7 +54,7 @@ KC_HEAP_MIN=512M
|
|||
KC_HEAP_MAX=1024M
|
||||
# Lokale Entwicklung: start-dev (kein Pre-Build nötig, kein --optimized)
|
||||
# Server/Produktion: start --optimized --import-realm (nutzt das pre-built Registry-Image)
|
||||
KC_COMMAND=start-dev --import-realm
|
||||
KC_COMMAND=start --optimized --import-realm
|
||||
KC_ADMIN_USERNAME=kc-admin
|
||||
KC_ADMIN_PASSWORD=kc-password
|
||||
KC_DB=postgres
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ spring:
|
|||
autoconfigure:
|
||||
exclude:
|
||||
- "org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration"
|
||||
# --- VALKEY (für Rate Limiting) ---
|
||||
# --- VALKEY (Redis-protokollkompatibel, Spring nutzt spring.data.redis.*) ---
|
||||
data:
|
||||
valkey:
|
||||
redis:
|
||||
host: ${SPRING_DATA_VALKEY_HOST:localhost}
|
||||
port: ${SPRING_DATA_VALKEY_PORT:6379}
|
||||
password: ${SPRING_DATA_VALKEY_PASSWORD:valkey-password}
|
||||
password: ${SPRING_DATA_VALKEY_PASSWORD:}
|
||||
|
||||
# --- CONSUL (Service Discovery) ---
|
||||
cloud:
|
||||
|
|
|
|||
|
|
@ -25,12 +25,12 @@ spring:
|
|||
baseline-on-migrate: true
|
||||
locations: classpath:db/migration
|
||||
|
||||
# --- REDIS KONFIGURATION ---
|
||||
# --- VALKEY KONFIGURATION (Redis-protokollkompatibel, Spring nutzt spring.data.redis.*) ---
|
||||
data:
|
||||
redis:
|
||||
host: ${SPRING_DATA_REDIS_HOST:localhost}
|
||||
port: ${SPRING_DATA_REDIS_PORT:6379}
|
||||
password: ${SPRING_DATA_REDIS_PASSWORD:redis-password}
|
||||
host: ${SPRING_DATA_VALKEY_HOST:localhost}
|
||||
port: ${SPRING_DATA_VALKEY_PORT:6379}
|
||||
password: ${SPRING_DATA_VALKEY_PASSWORD:}
|
||||
connect-timeout: 5s
|
||||
timeout: 2s
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
type: Roadmap
|
||||
status: ACTIVE
|
||||
owner: Lead Architect
|
||||
last_update: 2026-02-07
|
||||
last_update: 2026-03-09
|
||||
---
|
||||
|
||||
# MASTER ROADMAP Q1 2026: "Operation Tracer Bullet"
|
||||
|
|
@ -31,7 +31,9 @@ Wir validieren die gesamte Architektur-Kette (Frontend -> Gateway -> Service ->
|
|||
* [x] **Persistence:** Flyway & Postgres Integration stabil.
|
||||
|
||||
#### 🏗️ Agent: Infrastructure & DevOps
|
||||
* [x] **Docker Environment:** `dc-infra`, `dc-backend`, `dc-gui` stabil. Valkey als Redis-Ersatz integriert.
|
||||
|
||||
* [x] **Docker Environment:** `dc-infra`, `dc-backend`, `dc-gui` stabil. Valkey als Redis-Ersatz integriert. _(
|
||||
verifiziert 2026-03-09: KC_COMMAND-Regression + Valkey/Redis Property-Mismatch behoben)_
|
||||
* [x] **Gateway Config:** Routing `/api/ping/**` -> `ping-service` mit CircuitBreaker Fallback konfiguriert.
|
||||
|
||||
---
|
||||
|
|
@ -65,7 +67,8 @@ Wir validieren die gesamte Architektur-Kette (Frontend -> Gateway -> Service ->
|
|||
|
||||
## 4. Next Steps (Q1/2026)
|
||||
1. **Entries Service:** Beginn der Implementierung des ersten echten Fach-Services ("Nennungen").
|
||||
2. **System Hardening:** Keycloak Production-Config (kein `start-dev`).
|
||||
2. ~~**System Hardening:** Keycloak Production-Config (kein `start-dev`).~~ ✅ _(erledigt 2026-03-09: `.env` KC_COMMAND
|
||||
auf `start --optimized --import-realm` korrigiert)_
|
||||
3. **Reporting / Printing:** (Vorgemerkt)
|
||||
* Anforderung: PDF-Generierung für Startlisten, Ergebnislisten, Dressur-Protokolle (personalisiert).
|
||||
* Architektur-Entscheidung: Dezentraler Microservice (wegen Resource-Bursts).
|
||||
|
|
|
|||
|
|
@ -136,8 +136,42 @@ behoben.
|
|||
|
||||
Kein Code-Change erforderlich. Der Fix war implizit durch das Spring Cloud Downgrade auf `2025.0.1` bereits enthalten.
|
||||
|
||||
## ✅ Docker-Stabilität End-to-End (2026-03-09, gleiche Session)
|
||||
|
||||
Vollständige Analyse aller Docker Compose Dateien (`dc-infra`, `dc-backend`, `dc-ops`, `dc-gui`) sowie `.env` und
|
||||
gemounteter Konfigs.
|
||||
|
||||
### Befund & Fixes
|
||||
|
||||
#### Fix 1: `.env` — `KC_COMMAND` Regression 🔴
|
||||
|
||||
- **Problem:** `.env` hatte `KC_COMMAND=start-dev --import-realm` — exakt der Bug vom 2026-03-06 Log. Das pre-built
|
||||
Keycloak-Image startet im falschen Dev-Modus, OIDC-Flow schlägt fehl.
|
||||
- **Fix:** `KC_COMMAND=start --optimized --import-realm`
|
||||
|
||||
#### Fix 2: `base-application.yaml` — Valkey Env-Var-Namen 🟠
|
||||
|
||||
- **Problem:** `base-application.yaml` (gemountet in allen Backend-Services) nutzte `${SPRING_DATA_REDIS_HOST}` /
|
||||
`${SPRING_DATA_REDIS_PORT}` / `${SPRING_DATA_REDIS_PASSWORD}` als Env-Var-Namen. `dc-backend.yaml` setzt aber nur
|
||||
`SPRING_DATA_VALKEY_*` → Redis-Host fiel auf `localhost`-Default zurück statt auf den `valkey`-Container.
|
||||
- **Fix:** Env-Var-Namen auf `${SPRING_DATA_VALKEY_HOST}`, `${SPRING_DATA_VALKEY_PORT}`,
|
||||
`${SPRING_DATA_VALKEY_PASSWORD}` umgestellt. Spring Boot Property-Pfad `spring.data.redis.*` bleibt korrekt.
|
||||
|
||||
#### Fix 3: `gateway/application.yaml` — Ungültiger Property-Namespace 🟠
|
||||
|
||||
- **Problem:** Gateway nutzte `spring.data.valkey.*` — kein valider Spring Boot Auto-Konfigurations-Namespace. Spring
|
||||
Boot kennt nur `spring.data.redis.*` für die Redis/Lettuce-Autoconfiguration.
|
||||
- **Fix:** `spring.data.valkey` → `spring.data.redis` (Env-Vars `SPRING_DATA_VALKEY_*` bleiben).
|
||||
|
||||
### Verifiziert: Korrekte Konfigurationen
|
||||
|
||||
- **Startup-Reihenfolge:** Postgres → Keycloak → Consul → Valkey → Gateway/Ping (via `depends_on` + Healthchecks) ✅
|
||||
- **Netzwerk:** Alle Services im `meldestelle-network` ✅
|
||||
- **Zipkin:** `service_started` (stateless, kein Healthcheck nötig) ✅
|
||||
- **Consul Healthcheck:** curl auf `/v1/status/leader` ✅
|
||||
- **Keycloak Healthcheck:** curl auf `localhost:9000/health/ready` ✅
|
||||
|
||||
## 🔜 Nächste Schritte
|
||||
|
||||
- **TLS/HTTPS** — Langfristig: `KC_HOSTNAME_STRICT_HTTPS=true` setzen, sobald TLS eingerichtet ist.
|
||||
- **Docker Stabilität** — `docker compose up` End-to-End verifizieren (Consul, Keycloak, Postgres, Gateway).
|
||||
- **Ping Service** — Fachliche Implementierung (nächste Phase laut `MASTER_ROADMAP_2026_Q1.md`).
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user