Zum Hauptinhalt springen
Version: In Entwicklung

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 ...
FeldBedeutungErwarteter Wert
tenant_realmstabiler Name des Keycloak-Realm und fachliche Mandantenkennungeindeutiger Realm-Name ohne URL
display_namelesbarer Anzeigename in gemeinsamen Oberflächenoffizieller Name des Mandanten
tenant_domainBasisdomain der mandantenbezogenen EndpunkteHostname ohne https:// und Pfad
tenant_prefixPräfix der Kubernetes-Namespaces und technischen Ressourcenkurze, eindeutige und dauerhaft stabile Kennung
hypersensus_domainoptional abweichender HYPERSENSUS-Hostname dieses MandantenHostname ohne Protokoll; Feld weglassen oder leer lassen, um tenant_domain zu verwenden
mailserver.*Mailkonto dieses Mandantenim 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.

Komponentengruppe

Integration & Orchestrierung

Datenquellen anbinden, Datenflüsse aufbauen und Verarbeitungsschritte orchestrieren.

Integration

Node-RED

Stellt eine oder mehrere getrennte Integrations- und Transformationslaufzeiten bereit.

Inventory
nr_flows[].enable
Ansible-Tag
nodered
Direkte Voraussetzungen

Keycloak, Ingress und optional Git-Zugang

Inventory-Konfiguration

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: []
ParameterBedeutungErwartete Werte
nameEindeutiger Name dieser Node-RED-Instanz.DNS-konformer Name; je Listeneintrag eindeutig
git_urlOptionales Repository mit dem Flow-Projekt.HTTPS-/SSH-URL oder leer für keinen Import
flow_nameAus dem Repository zu ladende Flow-Datei.Relativer Dateiname, standardmäßig flow.json
gitlab.*Zugangsdaten zum privaten Flow-Repository.Minimal berechtigter Deploy Token
grafana_dashboardsOptionaler Ordner mit zu importierenden Grafana-Dashboards.Relativer Repositorypfad oder Feld weglassen
client_certsOptionales Client-Zertifikat für ausgehende mTLS-Verbindungen.enable sowie PEM-kodiertes Zertifikat und Schlüssel
env_varsFachliche Umgebungswerte des Flows.Schlüssel-Wert-Paare oder []
network_policyOptionales Netzwerkprofil.default oder allow_external_only
use_sshVerwendet für den Flow-Import eine SSH-Verbindung.true oder false
limitsOptionale Ressourcenobergrenzen.Kubernetes-CPU- und Memory-Werte
deployment_strategyStrategie für den Austausch der Node-RED-Pods.Recreate oder RollingUpdate
function_global_contextZusätzliche Module im functionGlobalContext von Node-RED.Schlüssel mit JavaScript-require-Ausdruck
function_global_context_modulesnpm-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.

Komponentengruppe

Kontext & IoT

Kontext, Beziehungen, Sensordaten und ihre zeitliche Entwicklung abbilden.

NGSI-LD-Kontext

Stellio

Verwaltet aktuelle Zustände und Beziehungen als NGSI-LD-Kontext.

Inventory
stellio.enable
Ansible-Tag
context_mgmt
Direkte Voraussetzungen

PostgreSQL-Operator; Keycloak für geschützte Zugänge

Inventory-Konfiguration

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
ParameterBedeutungErwartete Werte
storage_sizePVC-Größe der Stellio-Datenbank.Kubernetes-Größe, z. B. 50Gi
enable_logical_backupAktiviert das logische Datenbank-Backup.true oder false
use_quantumleapLeitet Kontextänderungen zusätzlich an QuantumLeap weiter.true oder false
api_gateway.enable_compressionKomprimiert Antworten am Stellio-API-Zugang.true oder false
kafka.cluster_idStabile Kennung der internen Kafka-Laufzeit.Genau 22 Zeichen, keine Sonderzeichen
context_hoster.enableStellt die JSON-LD-Kontexte des Mandanten bereit.true oder false
Historisierung

QuantumLeap

Überführt NGSI-LD-Kontextänderungen in historisch abfragbare Zeitreihen.

Inventory
stellio.use_quantumleap
Ansible-Tag
quantumleap · context_mgmt
Direkte Voraussetzungen

Stellio und PostgreSQL mit TimescaleDB

Nur aktivieren oder deaktivieren

QuantumLeap wird innerhalb des Stellio-Blocks aktiviert. Eine separate mandantenbezogene Konfiguration ist im Standard-Inventory nicht erforderlich.

JSON-LD-Kontexte

Context Hoster

Veröffentlicht versionierte JSON-LD-Kontexte für die NGSI-LD-Datenmodelle.

Inventory
stellio.context_hoster.enable
Ansible-Tag
context_hoster · context_mgmt
Direkte Voraussetzungen

Stellio und Zugriff auf das konfigurierte Image

Inventory-Konfiguration

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: ""
ParameterBedeutungErwartete Werte
image_projectRegistry-Pfad des Context-Hoster-Images.Vollständiger Container-Registry-Pfad
image_tagFreigegebener Stand des Images.Unveränderlicher Release-Tag empfohlen
git_user / git_tokenLesezugang für ein privates Artefakt.Leer bei öffentlichem Image; sonst Deploy Token
SensorThings

FROST-Server

Speichert und veröffentlicht Sensor- und Beobachtungsdaten per SensorThings API.

Inventory
frost.enable
Ansible-Tag
cm_frost
Direkte Voraussetzungen

PostgreSQL-Operator und Keycloak-Mandant

Inventory-Konfiguration

FROST-Server einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

frost:
enable: true
mqtt_enable: true
enable_logical_backup: false
ParameterBedeutungErwartete Werte
mqtt_enableStellt neben HTTP auch den MQTT-Endpunkt bereit.true oder false
enable_logical_backupAktiviert das logische Backup der FROST-Datenbank.true oder false
Komponentengruppe

Datenhaltung

Strukturierte Fachdaten, Zeitreihen und Objekte dauerhaft speichern.

Datenhaltung

PostgreSQL

Stellt die mandantenbezogene PostgreSQL-Datenbank mit TimescaleDB-Erweiterung bereit.

Inventory
timescale.enable
Ansible-Tag
dm_timescale
Direkte Voraussetzungen

PostgreSQL-Operator

Inventory-Konfiguration

PostgreSQL einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

timescale:
enable: true
enable_logical_backup: false
storage_size: "20Gi"
ParameterBedeutungErwartete Werte
storage_sizeAnfänglich angeforderte PVC-Größe.Kubernetes-Größe, z. B. 20Gi oder 100Gi
enable_logical_backupSchaltet den logischen PostgreSQL-Backup-Pfad ein.true oder false
Objektspeicher

MinIO

Stellt einen S3-kompatiblen Objektspeicher für den Mandanten bereit.

Inventory
minio.tenant.enable
Ansible-Tag
dm_minio_tenant
Direkte Voraussetzungen

MinIO-Operator und Keycloak-Mandant

Inventory-Konfiguration

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"
ParameterBedeutungErwartete Werte
tenant.nameTechnischer, dauerhaft stabiler Name der Instanz.DNS-konformer, in der Umgebung eindeutiger Name
serversAnzahl der MinIO-Server.Ganzzahl; für Produktion mindestens 4
volumesPerServerVolumes je MinIO-Server.Ganzzahl; für Produktion mindestens 4
capacityPerVolumeAngeforderte Kapazität je Volume.Kubernetes-Größe, z. B. 20Gi oder 1Ti
max_file_sizeMaximale Uploadgröße am Ingress.NGINX-Größe, z. B. 500m oder 5g
admin_user / admin_passInitialer administrativer Zugang.Ohne Leerzeichen; Passwort als Secret
bucketsBeim 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.

Komponentengruppe

Anwendungsebene

Daten analysieren, veröffentlichen und über Anwendungen, Kataloge und Geodienste nutzbar machen.

Visualisierung

Grafana

Visualisiert Fachdaten und bindet den Mandanten an Keycloak an.

Inventory
grafana.enable
Ansible-Tag
dm_grafana
Direkte Voraussetzungen

Keycloak und aktivierte Datenquellen

Inventory-Konfiguration

Grafana einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

grafana:
enable: true
admin: "grafana_admin"
password: "<secret>"
usergroupmapping:
enable: false
# subdomain: "grafana-intern"
ParameterBedeutungErwartete Werte
admin / passwordLokales technisches Administrationskonto.Benutzername frei wählbar; starkes Passwort als Secret
usergroupmapping.enableOrdnet 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
Fachanwendung

KomMonitor

Stellt die kommunale Monitoring- und Kartenanwendung für den Mandanten bereit.

Inventory
kommonitor.enable
Ansible-Tag
kommonitor
Direkte Voraussetzungen

Keycloak und PostgreSQL-Operator

Inventory-Konfiguration

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
ParameterBedeutungErwartete Werte
is_prodAktiviert die produktive Anwendungskonfiguration.true oder false
enable_logical_backupAktiviert das logische Datenbank-Backup.true oder false
titleSichtbarer Name der Anwendung.Freier Text
localStoragePrefixTrennt Browserdaten mehrerer Installationen.Eindeutig und vollständig kleingeschrieben
organization / organization_contactBetreiberbezeichnung und Kontakt.Freier Text beziehungsweise E-Mail-Adresse
startLocationInitialer Kartenausschnitt.Breiten-/Längengrad und ganzzahliger Zoom
Anwendung

Smart City Dashboard

Stellt das EDAG Smart City Dashboard unter einer eigenen Domain bereit.

Inventory
edag_dashboard.enable
Ansible-Tag
smartcity_dashboard
Direkte Voraussetzungen

Keycloak, Domain und anwendungsspezifische Secrets

Inventory-Konfiguration

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: ""
ParameterBedeutungErwartete Werte
namespaceZiel-Namespace des Dashboards.DNS-konformer Kubernetes-Name
domainÖffentlicher Hostname.Vollständiger Hostname ohne https://
frontend_domainOptional abweichender öffentlicher Hostname des Frontends.Vollständiger Hostname ohne https://; sonst wird domain verwendet
tenantZielpfad der Ingress-Weiterleitung.Mandantenkennung, z. B. public
encryption_keyStabiler Schlüssel für verschlüsselte Anwendungswerte.64 Hex-Zeichen, z. B. aus openssl rand -hex 32
mapbox_token / cookiebot_id / mail_toOptionale externe Integrationen.Anbieterspezifischer Wert oder leer
Geodaten

GeoStack

Aktiviert den gemeinsamen Geodatenbereich; seine Teilkomponenten werden darunter einzeln gewählt.

Inventory
geodata.enable
Ansible-Tag
geostack
Direkte Voraussetzungen

Keycloak, PostgreSQL-Operator und Registry-Zugang

Inventory-Konfiguration

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>"
ParameterBedeutungErwartete Werte
ns_nameGemeinsamer Namespace des Geodatenbereichs.DNS-konformer Kubernetes-Name
gitlab_user / gitlab_tokenRegistry-Zugang für kundenspezifische Images.Deploy Token mit read_registry
masterportal / portal_backend / geoserver / mapfish.enableWählt die benötigten GeoStack-Teile.Jeweils true oder false
gisdb.storage_sizePVC-Größe der PostGIS-Datenbank.Kubernetes-Größe, z. B. 10Gi
gisdb.enable_logical_backupAktiviert das logische PostGIS-Backup.true oder false
citydb.enableAktiviert den optionalen 3D-CityDB-/WFS-Pfad.true oder false
citydb.wfs.db_service / db_portZielservice und Port der von CityDB verwendeten Datenbank.Kubernetes-Service und numerischer Port
citydb.wfs.db_name / db_schemaDatenbank und Schema für die CityDB-Inhalte.Vorhandene Datenbank- und Schemanamen
Geoportal

Masterportal

Stellt die Kartenoberfläche des GeoStacks bereit.

Inventory
geodata.masterportal.enable
Ansible-Tag
geostack
Direkte Voraussetzungen

Aktiver GeoStack und freigegebenes Portal-Image

Inventory-Konfiguration

Masterportal einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

masterportal:
enable: true
appname: "geoportal"
image_project: "registry.gitlab.com/…/geoportal"
image_tag: "main"
ParameterBedeutungErwartete Werte
appnameTechnischer Name der Portalanwendung.DNS-konformer Name
image_projectRegistry-Pfad des angepassten Portals.Vollständiger Container-Registry-Pfad
image_tagAuszurollender Stand.Freigegebener, unveränderlicher Release-Tag
Geoportal-API

Geoportal-Backend

Stellt die Backend-Funktionen und geschützten Zugänge des Geoportals bereit.

Inventory
geodata.portal_backend.enable
Ansible-Tag
geostack
Direkte Voraussetzungen

Aktiver GeoStack, Keycloak und freigegebenes Backend-Image

Inventory-Konfiguration

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"
ParameterBedeutungErwartete Werte
image_projectRegistry-Pfad des angepassten Backends.Vollständiger Container-Registry-Pfad
image_tagAuszurollender Stand.Freigegebener, unveränderlicher Release-Tag
public_roleKeycloak-Rolle für öffentlich freigegebene Inhalte.Existierende Rolle des Mandanten
Geodienste

GeoServer

Veröffentlicht räumliche Daten als standardisierte Geodienste.

Inventory
geodata.geoserver.enable
Ansible-Tag
geostack
Direkte Voraussetzungen

Aktiver GeoStack und PostGIS-Datenbank

Inventory-Konfiguration

GeoServer einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

geoserver:
enable: true
geoserverUser: "admin"
geoserverPassword: "<secret>"
dataDirSize: "8Gi"
cacheDirSize: "8Gi"
open_data_workspace: "ds_open_data"
ParameterBedeutungErwartete Werte
geoserverUser / geoserverPasswordTechnisches Administrationskonto.Benutzername und starkes Passwort als Secret
dataDirSizePVC-Größe des GeoServer-Datenverzeichnisses.Kubernetes-Größe, z. B. 8Gi
cacheDirSizePVC-Größe des Karten-Caches.Kubernetes-Größe, z. B. 8Gi
open_data_workspaceWorkspace für öffentlich freigegebene Geodaten.Vorab festgelegter GeoServer-Workspace
Kartendruck

MapFish Print

Erzeugt serverseitig druckfähige Kartendokumente für das Geoportal.

Inventory
geodata.mapfish.enable
Ansible-Tag
geostack
Direkte Voraussetzungen

Aktiver GeoStack und freigegebenes Druckdienst-Image

Inventory-Konfiguration

MapFish Print einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

mapfish:
enable: true
image_project: "registry.gitlab.com/…/mapfish-print"
image_tag: "latest"
ParameterBedeutungErwartete Werte
image_projectRegistry-Pfad des angepassten Druckdienstes.Vollständiger Container-Registry-Pfad
image_tagAuszurollender Stand.Freigegebener, unveränderlicher Release-Tag
Analyse

Superset

Stellt explorative Analysen und interaktive BI-Dashboards bereit.

Inventory
analytics.enable
Ansible-Tag
analytics
Direkte Voraussetzungen

Keycloak, PostgreSQL-Operator und TimescaleDB

Inventory-Konfiguration

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"
ParameterBedeutungErwartete Werte
ns_nameNamespace des Analyse-Stacks.DNS-konformer Kubernetes-Name
enable_logical_backupAktiviert das logische Backup der Superset-Datenbank.true oder false
mapbox_api_tokenErmöglicht Mapbox-Kartenvisualisierungen.Mapbox-Token oder leer
db_secretSigniert und verschlüsselt interne Superset-Werte.Einmalig erzeugen und stabil beibehalten
admin_user_name / admin_user_passwordInitiales lokales Administrationskonto.Passwort ohne Dollarzeichen und als Secret
redis_auth_paswordZugang der eingebetteten Redis-Instanz.Starkes Passwort; Feldname entspricht dem Inventory
redis_storage_sizePVC-Größe für Redis.Kubernetes-Größe, z. B. 1Gi
Datenkatalog

CKAN

Katalogisiert und veröffentlicht Datenprodukte, Metadaten und Ressourcen.

Inventory
inv_mds.enable
Ansible-Tag
metadata
Direkte Voraussetzungen

Keycloak und PostgreSQL-Operator; Solr und Redis werden mitgebracht

Inventory-Konfiguration

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>"
ParameterBedeutungErwartete Werte
ns_nameNamespace des Metadaten-Stacks.DNS-konformer Kubernetes-Name
enable_logical_backupAktiviert das logische Backup der CKAN-Datenbank.true oder false
ckan.app_hostInterner Hostname der CKAN-Anwendung.Im Standard ckan
ckan_pluginsBeim Start zu ladende CKAN-Erweiterungen.Leerzeichengetrennte, mit dem Image kompatible Plugin-Namen
ckan_views_pluginsAktivierte Ressourcendarstellungen.Leerzeichengetrennte Plugin-Namen
footer.impressum_url / datenschutz_url / nutzungsbedingungen_urlRechtliche Links des Katalog-Footers.Vollständige HTTPS-URLs
footer.extra_link_name / extra_link_urlOptionaler zusätzlicher Footer-Link.Sichtbarer Name und vollständige URL
locale_defaultStandardsprache der Oberfläche.Unterstützter Sprachcode, z. B. de oder en
custom_resources.enableBindet kundenspezifische Ressourcen ein.true oder false; bei privat zusätzlich Deploy Token
custom_resources.gitlab.urlRepository mit den kundenspezifischen Ressourcen.HTTPS-Repository-URL
custom_resources.gitlab.token_name / token_secretOptionaler Zugang zu einem privaten Ressourcen-Repository.Deploy-Token-Name und Secret
Dokumentation

Docusaurus

Veröffentlicht eine eigene Dokumentationsinstanz für den Mandanten.

Inventory
documentation.enable
Ansible-Tag
documentation
Direkte Voraussetzungen

APISIX und Zugriff auf das Dokumentationsimage

Inventory-Konfiguration

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
ParameterBedeutungErwartete Werte
domainÖffentlicher Hostname der Dokumentation.Vollständiger Hostname ohne https://
image_project / image_tagRegistry-Pfad und auszurollender Stand.Container-Registry-Pfad und freigegebener Tag
gitlab_user / gitlab_tokenZugang für ein privates Image.Deploy Token oder leer bei öffentlichem Image
shared_documentationNutzt eine Dokumentation gemeinsam über Mandanten hinweg.true oder false
publicErlaubt öffentlichen Zugriff ohne Anmeldung.true oder false
Komponentengruppe

Kontrollebene

Identität, API-Zugriff und administrative Zugänge des Mandanten steuern.

Identität

Keycloak-Mandant

Legt Realm, Clients und Rollen des Mandanten in der gemeinsamen Keycloak-Instanz an.

Inventory
idm.enable
Ansible-Tag
idm_keycloak
Direkte Voraussetzungen

Keycloak- und PostgreSQL-Operator

Nur aktivieren oder deaktivieren

Der Mandantenblock besitzt keine weiteren Einstellungen. Realm, Domain und Mailserver werden aus den gemeinsamen Mandantenwerten übernommen.

API-Zugriff

Apache APISIX

Veröffentlicht und schützt die mandantenbezogenen API-Routen.

Inventory
apisix.enable
Ansible-Tag
api_mgmt
Direkte Voraussetzungen

Keycloak und die Zielkomponenten der API-Routen

Inventory-Konfiguration

Apache APISIX einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

apisix:
enable: true
api_credentials:
admin_role: "<32-zeichen>"
viewer_role: "<32-zeichen>"
ParameterBedeutungErwartete Werte
admin_roleSchlüssel mit Schreibrechten für die interne Admin API.Zufällige Zeichenfolge mit genau 32 Zeichen
viewer_roleSeparater 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.

Administration

pgAdmin

Bietet eine technische Administrationsoberfläche für PostgreSQL-Dienste.

Inventory
pgadmin.enable
Ansible-Tag
dm_pgadmin
Direkte Voraussetzungen

Keycloak und vorhandene PostgreSQL-Dienste

Inventory-Konfiguration

pgAdmin einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

pgadmin:
enable: true
env_email: "admin@example.org"
env_password: "<secret>"
config_enhanced_cookie_protection: "True"
ParameterBedeutungErwartete Werte
env_emailInitiale E-Mail des lokalen Administrationskontos.Gültige E-Mail-Adresse
env_passwordInitiales Passwort dieses Kontos.Starkes Passwort als Secret
config_enhanced_cookie_protectionBindet Session-Cookies stärker an die Sitzung."True" beibehalten
Komponentengruppe

Betriebsebene

Mandantenbezogene Sicherungen für den laufenden Plattformbetrieb konfigurieren.

Backup

Velero-Schedules

Erzeugt mandantenbezogene Zeitpläne für Kubernetes-Ressourcen und Volumes.

Inventory
velero.enable
Ansible-Tag
op_velero
Direkte Voraussetzungen

Globale Velero-Installation und konfigurierte Storage Location

Inventory-Konfiguration

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"
ParameterBedeutungErwartete Werte
backup_storage_locationVerweist auf ein global konfiguriertes S3-Backupziel.Exakter Name aus inv_velero.backup_storage_locations
scheduleZeitplan des Backups.Cron-Ausdruck, z. B. 0 0 * * *
ttlAufbewahrungsdauer eines Backups.Go-Dauer, z. B. 168h0m0s
tenant_backup_2.enableAktiviert einen zweiten, unabhängigen Zeitplan.true oder false
tenant_backup_2.backup_storage_location / schedule / ttlZiel, 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.

Monitoring

Sensor-Anomalie-Alerting

Aktiviert die mitgelieferten Prometheus-Regeln und eine mandantenbezogene E-Mail-Weiterleitung für Sensoranomalien.

Inventory
observability.sensor_anomaly_alerting.enable
Ansible-Tag
monitoring
Direkte Voraussetzungen

Global aktivierter Observability-Stack und funktionierender Mailversand

Inventory-Konfiguration

Sensor-Anomalie-Alerting einstellen

Relevanter Ausschnitt innerhalb des Mandantenblocks

observability:
sensor_anomaly_alerting:
enable: true
mail_to: "datenbetrieb@example.org"
ParameterBedeutungErwartete Werte
sensor_anomaly_alerting.enableAktiviert die mandantenbezogenen Sensor-Anomalieregeln.true oder false
sensor_anomaly_alerting.mail_toEmpfä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
FeldBedeutungVerwendung
fiware.enableaktiviert den bestehenden Orion-/MongoDB-Pfadnur für Bestandsinstallationen und geplante Migrationen
fiware.mongo.initdb_databaseinitiale MongoDB-Datenbank von Orionstabiler Datenbankname
fiware.mongo.initdb_root_username / initdb_root_passwordinitialer administrativer MongoDB-ZugangSecrets
fiware.orion.mongodb_user / mongodb_passwordAnwendungszugang von Orion zur MongoDBgetrennte Secrets
apim.enableaktiviert den bestehenden Gravitee-Pfadnur für Bestandsinstallationen und geplante Migrationen

Vor dem Rollout prüfen

  • Jeder aktivierte Komponentenblock stammt aus dem default_inventory.yml des 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.