Umgebungen: Stage & Produktion¶
Die Open Data Infrastruktur (ODI) wird in zwei nahezu identischen Umgebungen betrieben. Die Stage ist als Preproduktion angelegt – ein 1:1-Spiegel der Produktion, auf dem Änderungen unter realitätsnahen Bedingungen getestet werden, bevor sie produktiv gehen.
Diagramm öffnen
Ein Klick auf die Grafik öffnet sie groß und zoombar.
Überblick¶
| Aspekt | Produktion | Stage (Preproduktion) |
|---|---|---|
| Basis-Domain | odi.schleswig-holstein.de |
odi-stage.schleswig-holstein.de |
| Kubernetes-Repo | odi-kubernetes-prod |
odi-kubernetes-stage |
| Cluster-Pfad | clusters/prod |
clusters/stage |
| Container Registry | odi-container-registry.cr.de-fra.ionos.com |
odi-container-registry-stage.cr.de-fra.ionos.com |
| Image-Tags | feste Release-Tags | …-dev-N (Flux-automatisiert) |
| Managed Postgres | Prod-Instanz | eigene Stage-Instanz |
| S3-Objektspeicher | Prod-Buckets | eigene Stage-Buckets |
| NFS-Speicher | Prod-Shares | eigene Stage-Shares |
| Deployment | Flux (GitOps) | Flux (GitOps) |
| Keycloak-Realm | open-data-infrastruktur |
open-data-infrastruktur |
Was „gespiegelt" bedeutet¶
Die Stage enthält dieselben Workloads und Namespaces wie die Produktion (u. a. Staging, Triple-Store, UDP, Visualization, Dynamic-Data, Schema-Repo, Keycloak sowie die Observability-Stacks Grafana/Loki und VictoriaMetrics). Beim Übertragen von Prod nach Stage werden ausschließlich umgebungsspezifische Werte angepasst:
- Hostnamen
*.odi.schleswig-holstein.de→*.odi-stage.schleswig-holstein.de - Registry
…ionos.com→…-stage…ionos.comund Image-Namen aufodi-* - Image-Tags auf
…-dev-Ninkl. Flux-$imagepolicy-Marker - Eigene Infrastruktur-Endpunkte (Postgres, S3, NFS) der Stage
Stage zeigt niemals auf Produktions-Daten
Datenbank-Host, S3-Endpoint/Buckets und NFS-Server der Produktion werden nicht
übernommen. Sie stehen in den Stage-Manifesten als klar markierte Platzhalter
(__STAGE_POSTGRES_HOST__, __STAGE_S3_ENDPOINT__, __STAGE_S3_BUCKET__,
__STAGE_NFS_SERVER__ …) und werden mit den echten Stage-Werten gefüllt. So kann eine
versehentliche Verbindung der Stage zu Produktions-Daten nicht passieren.
Secrets¶
Secrets werden nicht im Git verwaltet, sondern out-of-band per kubectl erzeugt.
Die Skripte und eine Werte-Vorlage liegen im Stage-Repo unter secrets/
(siehe secrets/README.md). Dazu gehören die Registry-Pull-Secrets, Keycloak-Client-Secrets,
Datenbank-Zugänge und das Basic-Auth-Secret des Inference-Schedulers.
Deployment¶
Beide Umgebungen werden per Flux im GitOps-Modell betrieben: Der gewünschte Zustand liegt im jeweiligen Git-Repository, Flux gleicht den Cluster kontinuierlich dagegen ab. Wie neue Images automatisch in die Stage gelangen, beschreibt die Seite CI/CD- & Flux-Pipeline.