Operatoren und Richtlinien
Operatoren, logische Datenbank-Backups und Kubernetes-Richtlinien einrichten.
← Zur Übersicht der Plattformkonfiguration
Gemeinsame Dienste werden einmal je Umgebung eingerichtet und stehen vor den Mandanten bereit.
inv_op_stack:
ns_name: "{{ ENVIRONMENT }}-operator-stack"
cert_manager_operator:
enable: true
ns_name: "{{ ENVIRONMENT }}-operator-stack"
postgres_operator:
enable: true
ns_name: "{{ ENVIRONMENT }}-operator-stack"
logical_backup:
enabled: false
endpoint: "https://s3.example.org"
bucket: "udsp-postgres-backups"
region: "eu-central-1"
access_key: "<secret>"
secret: "<secret>"
schedule: "0 0 * * *"
retention_time: "7 days"
minio_operator:
enable: true
enable_console_ingress: false
ns_name: "{{ ENVIRONMENT }}-operator-stack"
keycloak_operator:
enable: true
ns_name: "{{ ENVIRONMENT }}-operator-stack"
keel_operator:
enable: false
ns_name: "{{ ENVIRONMENT }}-operator-stack"
admin: "admin@{{ DOMAIN }}"
password: "<secret>"
inv_security:
ns_name: "{{ ENVIRONMENT }}-security-stack"
kyverno:
enable: true
enforce_policies: false
policy_reporter:
enable: true
ui_enabled: true
kyverno_plugin_enabled: true
Welche Komponenten damit konfiguriert werden
| Inventory-Block | Komponente der UDSP | Aufgabe |
|---|---|---|
cert_manager_operator | cert-manager | stellt Zertifikatsressourcen und die automatische TLS-Erneuerung bereit |
postgres_operator | PostgreSQL | erzeugt und verwaltet über den Zalando PostgreSQL Operator die Datenbank-Cluster der Plattformkomponenten |
minio_operator | MinIO | verwaltet über den MinIO Operator mandantenbezogene MinIO-Instanzen und deren Speicher |
keycloak_operator | Keycloak | stellt über den Keycloak Operator die zentrale Keycloak-Instanz im Cluster bereit und gleicht deren Kubernetes-Zustand ab |
keel_operator | Keel | automatisiert – sofern bewusst aktiviert – Image-Aktualisierungen von Workloads |
kyverno | Kyverno | prüft Kubernetes-Ressourcen gegen die mitgelieferten Sicherheitsrichtlinien |
policy_reporter | Policy Reporter | sammelt und visualisiert die Ergebnisse der Kyverno-Prüfungen |
Weitere Variablen
| Feld | Bedeutung |
|---|---|
inv_op_stack.ns_name | gemeinsamer Namespace der Operatoren; die komponentenspezifischen ns_name-Werte sollten im Standardpfad darauf zeigen |
postgres_operator.logical_backup.enabled | aktiviert das gemeinsame S3-Ziel für alle komponentenbezogenen Schalter enable_logical_backup |
postgres_operator.logical_backup.endpoint | S3-kompatibler Endpunkt des globalen PostgreSQL-Backupziels |
postgres_operator.logical_backup.bucket | vorhandener Bucket für logische Datenbank-Backups |
postgres_operator.logical_backup.region | vom S3-Anbieter erwartete Region |
postgres_operator.logical_backup.access_key / secret | Zugangsdaten eines technischen Kontos mit minimal erforderlichen Bucket-Rechten |
postgres_operator.logical_backup.schedule | Standardzeitplan als Cron-Ausdruck |
postgres_operator.logical_backup.retention_time | Aufbewahrungsangabe des PostgreSQL-Operators, beispielsweise 7 days |
minio_operator.enable_console_ingress | Legacy-Schalter für die MinIO-Operator-Konsole; im Gateway-API-Standardpfad deaktiviert lassen, solange keine unterstützte HTTPRoute vorgesehen ist |
keel_operator.admin / password | administrativer Zugang für Keel, sofern die Komponente aktiviert wird |
inv_security.ns_name | Namespace für Kyverno und Policy Reporter, beispielsweise prd-security-stack |
kyverno.enforce_policies: false | Audit-Modus: Verstöße werden gemeldet, neue oder geänderte Ressourcen aber nicht deshalb abgelehnt |
kyverno.enforce_policies: true | Enforce-Modus: Kubernetes-Anfragen, die gegen die meisten mitgelieferten Regeln verstoßen, können blockiert werden |
policy_reporter.ui_enabled | stellt zusätzlich zur Reporter-API die administrative Weboberfläche bereit |
policy_reporter.kyverno_plugin_enabled | aktiviert die erweiterte Kyverno-Integration in der Reporter-Oberfläche |
Der Policy Reporter wird im aktuellen Playbook innerhalb des Kyverno-Pfads installiert. Wird Kyverno deaktiviert, wird deshalb auch ein separat auf true gesetzter Policy Reporter nicht ausgerollt.
Die Reporter-UI wird nicht automatisch öffentlich bereitgestellt; das Playbook nennt nach der Installation einen kubectl port-forward-Aufruf für den administrativen Zugriff.
Für eine neue Umgebung sollte enforce_policies zunächst auf false bleiben. Prüfen Sie die entstehenden Reports, beheben oder begründen Sie Abweichungen und testen Sie anschließend true in Staging. Eine direkte Aktivierung kann verhindern, dass UDSP-Komponenten mit noch nicht policykonformen Manifests ausgerollt werden.
Die Policy require-namespace-labels ist im derzeitigen Plattformcode fest auf Audit gesetzt. Sie blockiert deshalb auch bei enforce_policies: true keine Namespaces. Die übrigen mitgelieferten Validierungsregeln verwenden den Schalter.
Wichtige Beziehungen:
- Keycloak, TimescaleDB, Stellio, FROST, GeoStack, Superset und CKAN verwenden den PostgreSQL-Operator.
- Mandantenbezogene MinIO-Instanzen benötigen den MinIO-Operator.
- Der Keycloak-Operator stellt die Keycloak-Instanz im Cluster bereit und hält deren Kubernetes-Ressourcen im gewünschten Zustand.
- Realms, Clients, Rollen, Gruppen und Mappings werden anschließend durch die Ansible-Konfiguration des jeweiligen Mandanten beziehungsweise der jeweiligen Komponente über die Keycloak Admin API angelegt. Diese fachliche Keycloak-Konfiguration übernimmt nicht der Operator.
- cert-manager wird von den standardmäßigen TLS-Endpunkten am Gateway erwartet.
- Policy Reporter wird nur zusammen mit Kyverno installiert.
Aktivieren Sie postgres_operator.logical_backup.enabled erst, wenn das S3-Ziel vollständig eingerichtet und aus dem Cluster erreichbar ist. Dieses Ziel wird nicht nur für die mandantenbezogene PostgreSQL-/TimescaleDB verwendet, sondern auch für aktivierte logische Backups von Keycloak, Stellio, FROST, Superset, CKAN und der Geo-Datenbank.
Konfigurationsfelder
Diese Felder gehören zu den globalen Blöcken außerhalb von inv_tenants. Verwenden Sie die vollständige Vorlage des ausgewählten Releases; optionale und mitgeführte Kompatibilitätsfelder sind in der Tabelle gekennzeichnet.
Operatoren und logische PostgreSQL-Backups
| Inventory-Pfad | Bedeutung | Erwarteter Wert |
|---|---|---|
inv_op_stack.ns_name | Gemeinsamer Namespace der Operatoren. | DNS-konformer Namespace |
inv_op_stack.cert_manager_operator.enable / ns_name | Aktiviert cert-manager und legt dessen Namespace fest. | true oder false; Namespace |
inv_op_stack.postgres_operator.enable / ns_name | Aktiviert den PostgreSQL-Operator und legt dessen Namespace fest. | true oder false; Namespace |
inv_op_stack.postgres_operator.logical_backup.enabled | Aktiviert die globale Unterstützung logischer PostgreSQL-Backups. | true oder false |
inv_op_stack.postgres_operator.logical_backup.endpoint | S3-kompatibler Endpunkt des Backupziels. | Vom Anbieter erwartete URL |
inv_op_stack.postgres_operator.logical_backup.bucket | Bucket für die logischen Datenbank-Backups. | Vorhandener Bucketname |
inv_op_stack.postgres_operator.logical_backup.region | S3-Region des Buckets. | Exakter Anbieterwert |
inv_op_stack.postgres_operator.logical_backup.access_key | Technischer Zugriffsschlüssel. | Secret mit minimalen Bucket-Rechten |
inv_op_stack.postgres_operator.logical_backup.secret | Geheimer Schlüssel des technischen S3-Kontos. | Secret |
inv_op_stack.postgres_operator.logical_backup.schedule | Standardzeitplan der logischen Backups. | Cron-Ausdruck |
inv_op_stack.postgres_operator.logical_backup.retention_time | Aufbewahrung durch den PostgreSQL-Operator. | PostgreSQL-Dauer, z. B. 7 days oder 2 weeks |
inv_op_stack.minio_operator.enable / ns_name | Aktiviert den MinIO-Operator und legt dessen Namespace fest. | true oder false; Namespace |
inv_op_stack.minio_operator.enable_console_ingress | Legacy-Schalter für die Operator-Konsole; nicht für den Gateway-API-Standardpfad verwenden. | false beibehalten, solange keine unterstützte HTTPRoute vorgesehen ist |
inv_op_stack.keycloak_operator.enable / ns_name | Aktiviert den Keycloak-Operator und legt dessen Namespace fest. | true oder false; Namespace |
inv_op_stack.keel_operator.enable / ns_name | Aktiviert Keel und legt dessen Namespace fest. | true oder false; Namespace |
inv_op_stack.keel_operator.admin | Administrativer Keel-Benutzer. | E-Mail-Adresse |
inv_op_stack.keel_operator.password | Passwort des Keel-Administrators. | Secret |
Richtlinienprüfung
| Inventory-Pfad | Bedeutung | Erwarteter Wert |
|---|---|---|
inv_security.ns_name | Gemeinsamer Namespace des Security-Stacks. | Namespace |
inv_security.kyverno.enable | Installiert Kyverno und die mitgelieferten Regeln. | true oder false |
inv_security.kyverno.enforce_policies | Wechselt unterstützte Regeln von Audit auf Enforce. | false für Beobachtung; true erst nach Prüfung in Staging |
inv_security.policy_reporter.enable | Installiert Policy Reporter zusammen mit Kyverno. | true oder false |
inv_security.policy_reporter.ui_enabled | Aktiviert die administrative Reporter-Weboberfläche. | true oder false |
inv_security.policy_reporter.kyverno_plugin_enabled | Aktiviert die erweiterte Kyverno-Integration der Reporter-UI. | true oder false |