Mandanten konfigurieren
Auf der Seite Plattformbasis konfigurieren wurden Identität, Domain, Präfix und Mailserver jedes Mandanten angelegt. In diesem Schritt werden unter dem jeweiligen Eintrag die benötigten Datenpfade und Anwendungen ergänzt und konfiguriert.
Verwenden Sie dafür immer die vollständigen Komponentenblöcke aus dem default_inventory.yml des ausgewählten Releases. Die Beispiele auf dieser Seite erklären die entscheidenden Felder, ersetzen aber nicht die versionsgebundene Vorlage.
Grundprinzip
Ein Komponentenblock liegt immer innerhalb des betreffenden Listeneintrags:
inv_tenants:
- tenant_realm: "stadt"
display_name: "Stadt Beispiel"
tenant_domain: "platform.example.org"
tenant_prefix: "stadt"
hypersensus_domain: "portal.platform.example.org"
mailserver:
user: "{{ inv_email.user }}"
password: "{{ inv_email.password }}"
server: "{{ inv_email.server }}"
port: "{{ inv_email.port }}"
email_from: "{{ inv_email.email_from }}"
idm:
enable: true
timescale:
enable: true
# ... Komponentenkonfiguration ...
stellio:
enable: true
# ... Komponentenkonfiguration ...
| Feld | Bedeutung | Erwarteter Wert |
|---|---|---|
tenant_realm | stabiler Name des Keycloak-Realm und fachliche Mandantenkennung | eindeutiger Realm-Name ohne URL |
display_name | lesbarer Anzeigename in gemeinsamen Oberflächen | offizieller Name des Mandanten |
tenant_domain | Basisdomain der mandantenbezogenen Endpunkte | Hostname ohne https:// und Pfad |
tenant_prefix | Präfix der Kubernetes-Namespaces und technischen Ressourcen | kurze, eindeutige und dauerhaft stabile Kennung |
hypersensus_domain | optional abweichender HYPERSENSUS-Hostname dieses Mandanten | Hostname ohne Protokoll; Feld weglassen oder leer lassen, um tenant_domain zu verwenden |
mailserver.* | Mailkonto dieses Mandanten | im Standard die fünf Werte aus inv_email; nur bei einem eigenen Mandantenkonto abweichend setzen |
Ein direkt unter einer Komponente stehendes enable nimmt diese Komponente in den Rollout auf oder überspringt sie. Das spätere Umschalten auf false deinstalliert keine bereits vorhandenen Ressourcen.
enable_logical_backup wirkt dagegen immer auf den Datenbank-Cluster der jeweiligen Komponente. Alle so aktivierten logischen Backups verwenden gemeinsam das unter inv_op_stack.postgres_operator.logical_backup konfigurierte globale S3-Ziel des PostgreSQL-Operators. Richten Sie dieses Ziel vollständig ein, bevor Sie den Schalter bei PostgreSQL, Stellio, FROST, KomMonitor, Superset, CKAN oder der Geo-Datenbank aktivieren.
Integration & Orchestrierung
Datenquellen anbinden, Datenflüsse aufbauen und Verarbeitungsschritte orchestrieren.
Node-RED
Stellt eine oder mehrere getrennte Integrations- und Transformationslaufzeiten bereit.
Keycloak, Ingress und optional Git-Zugang
Node-RED einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
nr_flows:
- enable: true
name: "nodered-import"
git_url: ""
flow_name: "flow.json"
gitlab:
access_user: ""
access_mail: ""
write_read_token: ""
# grafana_dashboards: "dashboards/grafana/"
# client_certs:
# enable: true
# client_cert: "<pem>"
# client_key: "<pem>"
network_policy: "default"
use_ssh: false
env_vars:
ngsild_tenant: "stadt"
limits:
cpu: "500m"
memory: "512Mi"
deployment_strategy: "Recreate"
function_global_context:
os: 'require("os")'
function_global_context_modules: []
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
name | Eindeutiger Name dieser Node-RED-Instanz. | DNS-konformer Name; je Listeneintrag eindeutig |
git_url | Optionales Repository mit dem Flow-Projekt. | HTTPS-/SSH-URL oder leer für keinen Import |
flow_name | Aus dem Repository zu ladende Flow-Datei. | Relativer Dateiname, standardmäßig flow.json |
gitlab.* | Zugangsdaten zum privaten Flow-Repository. | Minimal berechtigter Deploy Token |
grafana_dashboards | Optionaler Ordner mit zu importierenden Grafana-Dashboards. | Relativer Repositorypfad oder Feld weglassen |
client_certs | Optionales Client-Zertifikat für ausgehende mTLS-Verbindungen. | enable sowie PEM-kodiertes Zertifikat und Schlüssel |
env_vars | Fachliche Umgebungswerte des Flows. | Schlüssel-Wert-Paare oder [] |
network_policy | Optionales Netzwerkprofil. | default oder allow_external_only |
use_ssh | Verwendet für den Flow-Import eine SSH-Verbindung. | true oder false |
limits | Optionale Ressourcenobergrenzen. | Kubernetes-CPU- und Memory-Werte |
deployment_strategy | Strategie für den Austausch der Node-RED-Pods. | Recreate oder RollingUpdate |
function_global_context | Zusätzliche Module im functionGlobalContext von Node-RED. | Schlüssel mit JavaScript-require-Ausdruck |
function_global_context_modules | npm-Pakete für den functionGlobalContext. | Liste exakter Paketnamen |
Jeder Eintrag in nr_flows erzeugt eine eigenständige Instanz und besitzt deshalb einen eigenen enable-Schalter.
Kontext & IoT
Kontext, Beziehungen, Sensordaten und ihre zeitliche Entwicklung abbilden.

Stellio
Verwaltet aktuelle Zustände und Beziehungen als NGSI-LD-Kontext.
PostgreSQL-Operator; Keycloak für geschützte Zugänge
Stellio einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
stellio:
enable: true
enable_logical_backup: false
storage_size: "50Gi"
use_quantumleap: true
api_gateway:
enable_compression: false
kafka:
cluster_id: "<22-zeichen>"
context_hoster:
enable: true
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
storage_size | PVC-Größe der Stellio-Datenbank. | Kubernetes-Größe, z. B. 50Gi |
enable_logical_backup | Aktiviert das logische Datenbank-Backup. | true oder false |
use_quantumleap | Leitet Kontextänderungen zusätzlich an QuantumLeap weiter. | true oder false |
api_gateway.enable_compression | Komprimiert Antworten am Stellio-API-Zugang. | true oder false |
kafka.cluster_id | Stabile Kennung der internen Kafka-Laufzeit. | Genau 22 Zeichen, keine Sonderzeichen |
context_hoster.enable | Stellt die JSON-LD-Kontexte des Mandanten bereit. | true oder false |
QuantumLeap
Überführt NGSI-LD-Kontextänderungen in historisch abfragbare Zeitreihen.
Stellio und PostgreSQL mit TimescaleDB
QuantumLeap wird innerhalb des Stellio-Blocks aktiviert. Eine separate mandantenbezogene Konfiguration ist im Standard-Inventory nicht erforderlich.
Context Hoster
Veröffentlicht versionierte JSON-LD-Kontexte für die NGSI-LD-Datenmodelle.
Stellio und Zugriff auf das konfigurierte Image
Context Hoster einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
context_hoster:
enable: true
image_project: "registry.gitlab.com/…/ngsi-ld-context-hoster"
image_tag: "main"
git_user: ""
git_token: ""
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
image_project | Registry-Pfad des Context-Hoster-Images. | Vollständiger Container-Registry-Pfad |
image_tag | Freigegebener Stand des Images. | Unveränderlicher Release-Tag empfohlen |
git_user / git_token | Lesezugang für ein privates Artefakt. | Leer bei öffentlichem Image; sonst Deploy Token |

FROST-Server
Speichert und veröffentlicht Sensor- und Beobachtungsdaten per SensorThings API.
PostgreSQL-Operator und Keycloak-Mandant
FROST-Server einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
frost:
enable: true
mqtt_enable: true
enable_logical_backup: false
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
mqtt_enable | Stellt neben HTTP auch den MQTT-Endpunkt bereit. | true oder false |
enable_logical_backup | Aktiviert das logische Backup der FROST-Datenbank. | true oder false |
Datenhaltung
Strukturierte Fachdaten, Zeitreihen und Objekte dauerhaft speichern.
PostgreSQL
Stellt die mandantenbezogene PostgreSQL-Datenbank mit TimescaleDB-Erweiterung bereit.
PostgreSQL-Operator
PostgreSQL einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
timescale:
enable: true
enable_logical_backup: false
storage_size: "20Gi"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
storage_size | Anfänglich angeforderte PVC-Größe. | Kubernetes-Größe, z. B. 20Gi oder 100Gi |
enable_logical_backup | Schaltet den logischen PostgreSQL-Backup-Pfad ein. | true oder false |
MinIO
Stellt einen S3-kompatiblen Objektspeicher für den Mandanten bereit.
MinIO-Operator und Keycloak-Mandant
MinIO einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
minio:
enable: true
tenant:
enable: true
name: "stadt-minio"
servers: 1
volumesPerServer: 1
capacityPerVolume: "20Gi"
max_file_size: "5g"
admin_user: "minio_admin"
admin_pass: "<secret>"
buckets:
- "fachdaten"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
tenant.name | Technischer, dauerhaft stabiler Name der Instanz. | DNS-konformer, in der Umgebung eindeutiger Name |
servers | Anzahl der MinIO-Server. | Ganzzahl; für Produktion mindestens 4 |
volumesPerServer | Volumes je MinIO-Server. | Ganzzahl; für Produktion mindestens 4 |
capacityPerVolume | Angeforderte Kapazität je Volume. | Kubernetes-Größe, z. B. 20Gi oder 1Ti |
max_file_size | Maximale Uploadgröße am Ingress. | NGINX-Größe, z. B. 500m oder 5g |
admin_user / admin_pass | Initialer administrativer Zugang. | Ohne Leerzeichen; Passwort als Secret |
buckets | Beim Rollout anzulegende Buckets. | Liste eindeutiger Bucket-Namen |
Die Werte 1 Server und 1 Volume sind nur für nichtproduktive Umgebungen geeignet. PVCs lassen sich üblicherweise nicht verkleinern.
Anwendungsebene
Daten analysieren, veröffentlichen und über Anwendungen, Kataloge und Geodienste nutzbar machen.
Grafana
Visualisiert Fachdaten und bindet den Mandanten an Keycloak an.
Keycloak und aktivierte Datenquellen
Grafana einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
grafana:
enable: true
admin: "grafana_admin"
password: "<secret>"
usergroupmapping:
enable: false
# subdomain: "grafana-intern"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
admin / password | Lokales technisches Administrationskonto. | Benutzername frei wählbar; starkes Passwort als Secret |
usergroupmapping.enable | Ordnet Keycloak-Gruppen den vorgesehenen Grafana-Teams zu. | true oder false |
subdomain | Überschreibt die automatisch gebildete Grafana-Subdomain. | Nur Host-Präfix, ohne Protokoll und Domain |
KomMonitor
Stellt die kommunale Monitoring- und Kartenanwendung für den Mandanten bereit.
Keycloak und PostgreSQL-Operator
KomMonitor einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
kommonitor:
enable: true
is_prod: true
enable_logical_backup: false
title: "KomMonitor Stadt"
localStoragePrefix: "kommonitor-stadt"
organization: "Stadt Beispiel"
organization_contact: "kontakt@example.org"
startLocation:
lat: 51.0504
lon: 13.7373
initialZoom: 12
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
is_prod | Aktiviert die produktive Anwendungskonfiguration. | true oder false |
enable_logical_backup | Aktiviert das logische Datenbank-Backup. | true oder false |
title | Sichtbarer Name der Anwendung. | Freier Text |
localStoragePrefix | Trennt Browserdaten mehrerer Installationen. | Eindeutig und vollständig kleingeschrieben |
organization / organization_contact | Betreiberbezeichnung und Kontakt. | Freier Text beziehungsweise E-Mail-Adresse |
startLocation | Initialer Kartenausschnitt. | Breiten-/Längengrad und ganzzahliger Zoom |
Smart City Dashboard
Stellt das EDAG Smart City Dashboard unter einer eigenen Domain bereit.
Keycloak, Domain und anwendungsspezifische Secrets
Smart City Dashboard einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
edag_dashboard:
enable: true
namespace: "prod-edag-stack"
domain: "dashboard.example.org"
# frontend_domain: "dashboards.example.org"
tenant: "public"
encryption_key: "<64-hex-zeichen>"
mapbox_token: ""
cookiebot_id: ""
mail_to: ""
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
namespace | Ziel-Namespace des Dashboards. | DNS-konformer Kubernetes-Name |
domain | Öffentlicher Hostname. | Vollständiger Hostname ohne https:// |
frontend_domain | Optional abweichender öffentlicher Hostname des Frontends. | Vollständiger Hostname ohne https://; sonst wird domain verwendet |
tenant | Zielpfad der Ingress-Weiterleitung. | Mandantenkennung, z. B. public |
encryption_key | Stabiler Schlüssel für verschlüsselte Anwendungswerte. | 64 Hex-Zeichen, z. B. aus openssl rand -hex 32 |
mapbox_token / cookiebot_id / mail_to | Optionale externe Integrationen. | Anbieterspezifischer Wert oder leer |
GeoStack
Aktiviert den gemeinsamen Geodatenbereich; seine Teilkomponenten werden darunter einzeln gewählt.
Keycloak, PostgreSQL-Operator und Registry-Zugang
GeoStack einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
geodata:
enable: true
ns_name: "prod-geodata-stack"
gitlab_user: "<deploy-user>"
gitlab_token: "<deploy-token>"
masterportal:
enable: true
portal_backend:
enable: true
geoserver:
enable: true
mapfish:
enable: true
gisdb:
enable_logical_backup: false
storage_size: "10Gi"
citydb:
enable: false
wfs:
db_service: "<service>"
db_port: "<port>"
db_name: "<database>"
db_schema: "<schema>"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
ns_name | Gemeinsamer Namespace des Geodatenbereichs. | DNS-konformer Kubernetes-Name |
gitlab_user / gitlab_token | Registry-Zugang für kundenspezifische Images. | Deploy Token mit read_registry |
masterportal / portal_backend / geoserver / mapfish.enable | Wählt die benötigten GeoStack-Teile. | Jeweils true oder false |
gisdb.storage_size | PVC-Größe der PostGIS-Datenbank. | Kubernetes-Größe, z. B. 10Gi |
gisdb.enable_logical_backup | Aktiviert das logische PostGIS-Backup. | true oder false |
citydb.enable | Aktiviert den optionalen 3D-CityDB-/WFS-Pfad. | true oder false |
citydb.wfs.db_service / db_port | Zielservice und Port der von CityDB verwendeten Datenbank. | Kubernetes-Service und numerischer Port |
citydb.wfs.db_name / db_schema | Datenbank und Schema für die CityDB-Inhalte. | Vorhandene Datenbank- und Schemanamen |

Masterportal
Stellt die Kartenoberfläche des GeoStacks bereit.
Aktiver GeoStack und freigegebenes Portal-Image
Masterportal einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
masterportal:
enable: true
appname: "geoportal"
image_project: "registry.gitlab.com/…/geoportal"
image_tag: "main"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
appname | Technischer Name der Portalanwendung. | DNS-konformer Name |
image_project | Registry-Pfad des angepassten Portals. | Vollständiger Container-Registry-Pfad |
image_tag | Auszurollender Stand. | Freigegebener, unveränderlicher Release-Tag |
Geoportal-Backend
Stellt die Backend-Funktionen und geschützten Zugänge des Geoportals bereit.
Aktiver GeoStack, Keycloak und freigegebenes Backend-Image
Geoportal-Backend einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
portal_backend:
enable: true
image_project: "registry.gitlab.com/…/geoportal_backend"
image_tag: "main"
public_role: "ds_open_data"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
image_project | Registry-Pfad des angepassten Backends. | Vollständiger Container-Registry-Pfad |
image_tag | Auszurollender Stand. | Freigegebener, unveränderlicher Release-Tag |
public_role | Keycloak-Rolle für öffentlich freigegebene Inhalte. | Existierende Rolle des Mandanten |
GeoServer
Veröffentlicht räumliche Daten als standardisierte Geodienste.
Aktiver GeoStack und PostGIS-Datenbank
GeoServer einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
geoserver:
enable: true
geoserverUser: "admin"
geoserverPassword: "<secret>"
dataDirSize: "8Gi"
cacheDirSize: "8Gi"
open_data_workspace: "ds_open_data"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
geoserverUser / geoserverPassword | Technisches Administrationskonto. | Benutzername und starkes Passwort als Secret |
dataDirSize | PVC-Größe des GeoServer-Datenverzeichnisses. | Kubernetes-Größe, z. B. 8Gi |
cacheDirSize | PVC-Größe des Karten-Caches. | Kubernetes-Größe, z. B. 8Gi |
open_data_workspace | Workspace für öffentlich freigegebene Geodaten. | Vorab festgelegter GeoServer-Workspace |
MapFish Print
Erzeugt serverseitig druckfähige Kartendokumente für das Geoportal.
Aktiver GeoStack und freigegebenes Druckdienst-Image
MapFish Print einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
mapfish:
enable: true
image_project: "registry.gitlab.com/…/mapfish-print"
image_tag: "latest"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
image_project | Registry-Pfad des angepassten Druckdienstes. | Vollständiger Container-Registry-Pfad |
image_tag | Auszurollender Stand. | Freigegebener, unveränderlicher Release-Tag |
Superset
Stellt explorative Analysen und interaktive BI-Dashboards bereit.
Keycloak, PostgreSQL-Operator und TimescaleDB
Superset einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
analytics:
enable: true
ns_name: "prod-analytics-stack"
enable_logical_backup: false
mapbox_api_token: ""
db_secret: "<secret>"
admin_user_name: "admin"
admin_user_password: "<secret>"
redis_auth_pasword: "<secret>"
redis_storage_size: "1Gi"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
ns_name | Namespace des Analyse-Stacks. | DNS-konformer Kubernetes-Name |
enable_logical_backup | Aktiviert das logische Backup der Superset-Datenbank. | true oder false |
mapbox_api_token | Ermöglicht Mapbox-Kartenvisualisierungen. | Mapbox-Token oder leer |
db_secret | Signiert und verschlüsselt interne Superset-Werte. | Einmalig erzeugen und stabil beibehalten |
admin_user_name / admin_user_password | Initiales lokales Administrationskonto. | Passwort ohne Dollarzeichen und als Secret |
redis_auth_pasword | Zugang der eingebetteten Redis-Instanz. | Starkes Passwort; Feldname entspricht dem Inventory |
redis_storage_size | PVC-Größe für Redis. | Kubernetes-Größe, z. B. 1Gi |

CKAN
Katalogisiert und veröffentlicht Datenprodukte, Metadaten und Ressourcen.
Keycloak und PostgreSQL-Operator; Solr und Redis werden mitgebracht
CKAN einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
inv_mds:
enable: true
ns_name: "prod-metadata-stack"
enable_logical_backup: false
ckan:
app_host: "ckan"
ckan_plugins: "dcat dcatde scheming_datasets …"
ckan_views_plugins: "image_view text_view …"
footer:
impressum_url: "https://ckan.example.org/pages/impressum"
datenschutz_url: "https://ckan.example.org/pages/datenschutz"
nutzungsbedingungen_url: "https://ckan.example.org/pages/nutzungsbedingungen"
extra_link_name: "Über CKAN"
extra_link_url: "https://ckan.org/"
locale_default: "de"
custom_resources:
enable: false
gitlab:
url: "<repository-url>"
token_name: "<deploy-token-name>"
token_secret: "<deploy-token-secret>"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
ns_name | Namespace des Metadaten-Stacks. | DNS-konformer Kubernetes-Name |
enable_logical_backup | Aktiviert das logische Backup der CKAN-Datenbank. | true oder false |
ckan.app_host | Interner Hostname der CKAN-Anwendung. | Im Standard ckan |
ckan_plugins | Beim Start zu ladende CKAN-Erweiterungen. | Leerzeichengetrennte, mit dem Image kompatible Plugin-Namen |
ckan_views_plugins | Aktivierte Ressourcendarstellungen. | Leerzeichengetrennte Plugin-Namen |
footer.impressum_url / datenschutz_url / nutzungsbedingungen_url | Rechtliche Links des Katalog-Footers. | Vollständige HTTPS-URLs |
footer.extra_link_name / extra_link_url | Optionaler zusätzlicher Footer-Link. | Sichtbarer Name und vollständige URL |
locale_default | Standardsprache der Oberfläche. | Unterstützter Sprachcode, z. B. de oder en |
custom_resources.enable | Bindet kundenspezifische Ressourcen ein. | true oder false; bei privat zusätzlich Deploy Token |
custom_resources.gitlab.url | Repository mit den kundenspezifischen Ressourcen. | HTTPS-Repository-URL |
custom_resources.gitlab.token_name / token_secret | Optionaler Zugang zu einem privaten Ressourcen-Repository. | Deploy-Token-Name und Secret |
Docusaurus
Veröffentlicht eine eigene Dokumentationsinstanz für den Mandanten.
APISIX und Zugriff auf das Dokumentationsimage
Docusaurus einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
documentation:
enable: true
domain: "docs.example.org"
image_project: "registry.gitlab.com/…/documentation"
image_tag: "latest"
gitlab_user: ""
gitlab_token: ""
shared_documentation: false
public: false
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
domain | Öffentlicher Hostname der Dokumentation. | Vollständiger Hostname ohne https:// |
image_project / image_tag | Registry-Pfad und auszurollender Stand. | Container-Registry-Pfad und freigegebener Tag |
gitlab_user / gitlab_token | Zugang für ein privates Image. | Deploy Token oder leer bei öffentlichem Image |
shared_documentation | Nutzt eine Dokumentation gemeinsam über Mandanten hinweg. | true oder false |
public | Erlaubt öffentlichen Zugriff ohne Anmeldung. | true oder false |
Kontrollebene
Identität, API-Zugriff und administrative Zugänge des Mandanten steuern.
Keycloak-Mandant
Legt Realm, Clients und Rollen des Mandanten in der gemeinsamen Keycloak-Instanz an.
Keycloak- und PostgreSQL-Operator
Der Mandantenblock besitzt keine weiteren Einstellungen. Realm, Domain und Mailserver werden aus den gemeinsamen Mandantenwerten übernommen.

Apache APISIX
Veröffentlicht und schützt die mandantenbezogenen API-Routen.
Keycloak und die Zielkomponenten der API-Routen
Apache APISIX einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
apisix:
enable: true
api_credentials:
admin_role: "<32-zeichen>"
viewer_role: "<32-zeichen>"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
admin_role | Schlüssel mit Schreibrechten für die interne Admin API. | Zufällige Zeichenfolge mit genau 32 Zeichen |
viewer_role | Separater Schlüssel mit lesendem Zugriff. | Andere zufällige Zeichenfolge mit genau 32 Zeichen |
Führen Sie den APISIX-Tag nach neu hinzugefügten Zielkomponenten erneut aus, damit die zugehörigen Routen erzeugt werden.
pgAdmin
Bietet eine technische Administrationsoberfläche für PostgreSQL-Dienste.
Keycloak und vorhandene PostgreSQL-Dienste
pgAdmin einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
pgadmin:
enable: true
env_email: "admin@example.org"
env_password: "<secret>"
config_enhanced_cookie_protection: "True"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
env_email | Initiale E-Mail des lokalen Administrationskontos. | Gültige E-Mail-Adresse |
env_password | Initiales Passwort dieses Kontos. | Starkes Passwort als Secret |
config_enhanced_cookie_protection | Bindet Session-Cookies stärker an die Sitzung. | "True" beibehalten |
Betriebsebene
Mandantenbezogene Sicherungen für den laufenden Plattformbetrieb konfigurieren.
Velero-Schedules
Erzeugt mandantenbezogene Zeitpläne für Kubernetes-Ressourcen und Volumes.
Globale Velero-Installation und konfigurierte Storage Location
Velero-Schedules einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
velero:
enable: true
tenant_backup:
backup_storage_location: "s3-primary"
schedule: "0 0 * * *"
ttl: "168h0m0s"
tenant_backup_2:
enable: false
backup_storage_location: "s3-secondary"
schedule: "0 12 * * *"
ttl: "168h0m0s"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
backup_storage_location | Verweist auf ein global konfiguriertes S3-Backupziel. | Exakter Name aus inv_velero.backup_storage_locations |
schedule | Zeitplan des Backups. | Cron-Ausdruck, z. B. 0 0 * * * |
ttl | Aufbewahrungsdauer eines Backups. | Go-Dauer, z. B. 168h0m0s |
tenant_backup_2.enable | Aktiviert einen zweiten, unabhängigen Zeitplan. | true oder false |
tenant_backup_2.backup_storage_location / schedule / ttl | Ziel, Zeitplan und Aufbewahrung des zweiten Backups. | Vorhandenes globales S3-Ziel, Cron-Ausdruck und Go-Dauer |
Ein Velero-Schedule ersetzt keine logischen Datenbank-Backups. Verwenden Sie beide Verfahren passend zum Wiederherstellungsziel.
Sensor-Anomalie-Alerting
Aktiviert die mitgelieferten Prometheus-Regeln und eine mandantenbezogene E-Mail-Weiterleitung für Sensoranomalien.
Global aktivierter Observability-Stack und funktionierender Mailversand
Sensor-Anomalie-Alerting einstellen
Relevanter Ausschnitt innerhalb des Mandantenblocks
observability:
sensor_anomaly_alerting:
enable: true
mail_to: "datenbetrieb@example.org"
| Parameter | Bedeutung | Erwartete Werte |
|---|---|---|
sensor_anomaly_alerting.enable | Aktiviert die mandantenbezogenen Sensor-Anomalieregeln. | true oder false |
sensor_anomaly_alerting.mail_to | Empfänger der zugehörigen Alarmmeldungen. | Gültige betriebliche E-Mail-Adresse |
Nicht für Neuinstallationen verwenden
Das Repository enthält weiterhin Legacy-Pfade für:
- Orion Context Broker unter
fiware.enable - Gravitee API Management unter
apim.enable
Diese Pfade dienen bestehenden Installationen und Migrationen. Für neue Plattformen sind Stellio und APISIX vorgesehen. Aktivieren Sie Legacy- und Zielpfad nicht parallel, sofern dies nicht ausdrücklich in einem Migrationskonzept vorgesehen ist.
Damit auch diese im Default-Inventory enthaltenen Felder vollständig nachvollziehbar bleiben, zeigt die folgende Referenz ihren Aufbau:
fiware:
enable: false
mongo:
initdb_database: "orion"
initdb_root_username: "<secret>"
initdb_root_password: "<secret>"
orion:
mongodb_user: "<secret>"
mongodb_password: "<secret>"
apim:
enable: false
| Feld | Bedeutung | Verwendung |
|---|---|---|
fiware.enable | aktiviert den bestehenden Orion-/MongoDB-Pfad | nur für Bestandsinstallationen und geplante Migrationen |
fiware.mongo.initdb_database | initiale MongoDB-Datenbank von Orion | stabiler Datenbankname |
fiware.mongo.initdb_root_username / initdb_root_password | initialer administrativer MongoDB-Zugang | Secrets |
fiware.orion.mongodb_user / mongodb_password | Anwendungszugang von Orion zur MongoDB | getrennte Secrets |
apim.enable | aktiviert den bestehenden Gravitee-Pfad | nur für Bestandsinstallationen und geplante Migrationen |
Vor dem Rollout prüfen
- Jeder aktivierte Komponentenblock stammt aus dem
default_inventory.ymldes verwendeten Releases. - Secrets, Imagezugänge, Domains und Storagewerte sind vollständig gepflegt.
- Benötigte Operatoren und globale Plattformdienste sind aktiviert.
- Nicht benötigte Standardkomponenten wurden bewusst deaktiviert.
- Das Inventory wurde wie unter Inventory validieren beschrieben geprüft.
Der vollständige Erst-Rollout und die Ansible-Tags für spätere selektive Runs werden im nächsten Schritt unter Plattform ausrollen beschrieben.