DevOps¶
Dieser Bereich beschreibt den Betrieb der Open Data Infrastruktur (ODI): wie die Umgebungen aufgebaut sind und wie Code-Änderungen automatisiert bis in den laufenden Cluster gelangen.
Architektur-Überblick¶
Das Gesamtbild zeigt den Weg einer Code-Änderung – von den Service-Repos über CI/CD und die Container-Registry bis zum GitOps-Rollout in die gespiegelten Umgebungen Stage und Produktion, getragen von der IONOS-Cloud-Infrastruktur.
Ein Klick auf die Grafik öffnet sie groß und zoombar.
- Quellcode (openCode). Die
odi-*-Service-Repos und das Doku-Repo; manuell ist nur dergit pushaufmain. - ① CI (GitLab). Pro Repo eine
.gitlab-ci.yml:bump-version(→-dev-N) undbuild-imagemit Kaniko. Das Muster liegt zentral inodi-ci-templates. - ② Container-Registry (IONOS). Getrennte Stage- und Prod-Registry; Stage nutzt
bewegliche
…-dev-N-Tags, Produktion feste Release-Tags. - ③ GitOps (Flux).
ImageRepository+ImagePolicyerkennen neue Images,ImageUpdateAutomationschreibt den Tag ins Manifest zurück, dieKustomizationrollt ihn in den Cluster aus – ohne manuellen Deploy-Schritt. - Umgebungen. Stage ist ein 1:1-Spiegel der Produktion; beide laufen als Kubernetes-Cluster und werden per Flux abgeglichen.
- Betrieb & Sicherheit. Observability (Grafana/Loki, VictoriaMetrics), out-of-band verwaltete Secrets, Keycloak (IAM) und TLS/Ingress.
- Cloud-Infrastruktur (opencode.de + IONOS). GitLab, GitLab-Workers und GitLab-Pages bei opencode.de; Managed Kubernetes (Stage & Prod, je eigener Nodepool) und die Container-Registries bei IONOS.
Inhalt dieses Bereichs¶
-
Umgebungen: Stage & Produktion – Aufbau der beiden Umgebungen: Die Stage als 1:1-Spiegel der Produktion, umgebungsspezifische Unterschiede (Domains, Registry, Image-Tags, eigene Infrastruktur) sowie der Umgang mit Secrets.
-
CI/CD- & Flux-Pipeline – Der Weg vom Code zum Container: GitLab-CI (Build & Push mit Kaniko), Flux Image-Automation und der GitOps-Rollout – vollautomatisch, manuell ist nur der Code-Commit.
-
Geteilte CI-Templates – Das zentrale Repository
odi-ci-templates: die Node-/Python-Pipeline-Vorlagen, ihre Einbindung perincludeund eine Auflistung der Projekte, die sie nutzen.