Zum Inhalt

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.

Stage als Spiegel der Produktion

Ü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.com und Image-Namen auf odi-*
  • Image-Tags auf …-dev-N inkl. 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.