Zum Hauptinhalt springen

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-BlockKomponente der UDSPAufgabe
cert_manager_operatorcert-managerstellt Zertifikatsressourcen und die automatische TLS-Erneuerung bereit
postgres_operatorPostgreSQLerzeugt und verwaltet über den Zalando PostgreSQL Operator die Datenbank-Cluster der Plattformkomponenten
minio_operatorMinIOverwaltet über den MinIO Operator mandantenbezogene MinIO-Instanzen und deren Speicher
keycloak_operatorKeycloakstellt über den Keycloak Operator die zentrale Keycloak-Instanz im Cluster bereit und gleicht deren Kubernetes-Zustand ab
keel_operatorKeelautomatisiert – sofern bewusst aktiviert – Image-Aktualisierungen von Workloads
kyvernoKyvernoprüft Kubernetes-Ressourcen gegen die mitgelieferten Sicherheitsrichtlinien
policy_reporterPolicy Reportersammelt und visualisiert die Ergebnisse der Kyverno-Prüfungen

Weitere Variablen​

FeldBedeutung
inv_op_stack.ns_namegemeinsamer Namespace der Operatoren; die komponentenspezifischen ns_name-Werte sollten im Standardpfad darauf zeigen
postgres_operator.logical_backup.enabledaktiviert das gemeinsame S3-Ziel für alle komponentenbezogenen Schalter enable_logical_backup
postgres_operator.logical_backup.endpointS3-kompatibler Endpunkt des globalen PostgreSQL-Backupziels
postgres_operator.logical_backup.bucketvorhandener Bucket für logische Datenbank-Backups
postgres_operator.logical_backup.regionvom S3-Anbieter erwartete Region
postgres_operator.logical_backup.access_key / secretZugangsdaten eines technischen Kontos mit minimal erforderlichen Bucket-Rechten
postgres_operator.logical_backup.scheduleStandardzeitplan als Cron-Ausdruck
postgres_operator.logical_backup.retention_timeAufbewahrungsangabe des PostgreSQL-Operators, beispielsweise 7 days
minio_operator.enable_console_ingressLegacy-Schalter für die MinIO-Operator-Konsole; im Gateway-API-Standardpfad deaktiviert lassen, solange keine unterstützte HTTPRoute vorgesehen ist
keel_operator.admin / passwordadministrativer Zugang für Keel, sofern die Komponente aktiviert wird
inv_security.ns_nameNamespace für Kyverno und Policy Reporter, beispielsweise prd-security-stack
kyverno.enforce_policies: falseAudit-Modus: Verstöße werden gemeldet, neue oder geänderte Ressourcen aber nicht deshalb abgelehnt
kyverno.enforce_policies: trueEnforce-Modus: Kubernetes-Anfragen, die gegen die meisten mitgelieferten Regeln verstoßen, können blockiert werden
policy_reporter.ui_enabledstellt zusätzlich zur Reporter-API die administrative Weboberfläche bereit
policy_reporter.kyverno_plugin_enabledaktiviert 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.

Aktuelle Ausnahme

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-PfadBedeutungErwarteter Wert
inv_op_stack.ns_nameGemeinsamer Namespace der Operatoren.DNS-konformer Namespace
inv_op_stack.cert_manager_operator.enable / ns_nameAktiviert cert-manager und legt dessen Namespace fest.true oder false; Namespace
inv_op_stack.postgres_operator.enable / ns_nameAktiviert den PostgreSQL-Operator und legt dessen Namespace fest.true oder false; Namespace
inv_op_stack.postgres_operator.logical_backup.enabledAktiviert die globale Unterstützung logischer PostgreSQL-Backups.true oder false
inv_op_stack.postgres_operator.logical_backup.endpointS3-kompatibler Endpunkt des Backupziels.Vom Anbieter erwartete URL
inv_op_stack.postgres_operator.logical_backup.bucketBucket für die logischen Datenbank-Backups.Vorhandener Bucketname
inv_op_stack.postgres_operator.logical_backup.regionS3-Region des Buckets.Exakter Anbieterwert
inv_op_stack.postgres_operator.logical_backup.access_keyTechnischer Zugriffsschlüssel.Secret mit minimalen Bucket-Rechten
inv_op_stack.postgres_operator.logical_backup.secretGeheimer Schlüssel des technischen S3-Kontos.Secret
inv_op_stack.postgres_operator.logical_backup.scheduleStandardzeitplan der logischen Backups.Cron-Ausdruck
inv_op_stack.postgres_operator.logical_backup.retention_timeAufbewahrung durch den PostgreSQL-Operator.PostgreSQL-Dauer, z. B. 7 days oder 2 weeks
inv_op_stack.minio_operator.enable / ns_nameAktiviert den MinIO-Operator und legt dessen Namespace fest.true oder false; Namespace
inv_op_stack.minio_operator.enable_console_ingressLegacy-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_nameAktiviert den Keycloak-Operator und legt dessen Namespace fest.true oder false; Namespace
inv_op_stack.keel_operator.enable / ns_nameAktiviert Keel und legt dessen Namespace fest.true oder false; Namespace
inv_op_stack.keel_operator.adminAdministrativer Keel-Benutzer.E-Mail-Adresse
inv_op_stack.keel_operator.passwordPasswort des Keel-Administrators.Secret

Richtlinienprüfung​

Inventory-PfadBedeutungErwarteter Wert
inv_security.ns_nameGemeinsamer Namespace des Security-Stacks.Namespace
inv_security.kyverno.enableInstalliert Kyverno und die mitgelieferten Regeln.true oder false
inv_security.kyverno.enforce_policiesWechselt unterstützte Regeln von Audit auf Enforce.false für Beobachtung; true erst nach Prüfung in Staging
inv_security.policy_reporter.enableInstalliert Policy Reporter zusammen mit Kyverno.true oder false
inv_security.policy_reporter.ui_enabledAktiviert die administrative Reporter-Weboberfläche.true oder false
inv_security.policy_reporter.kyverno_plugin_enabledAktiviert die erweiterte Kyverno-Integration der Reporter-UI.true oder false