Zum Inhalt

Module Registry

Die Seite Module Registry listet die Terraform-Module auf, die deine Organisation in einer privaten Modul-Registry veröffentlicht, mit ihren Versionen und Download-Links. Sie ermöglicht es einem Workload-Team, das freigegebene Modul für eine Ressource zu finden und eine Version zu wählen, ohne das Portal zu verlassen.

Die Seite erscheint im Menü nur, wenn das Feature-Flag features.moduleRegistry aktiv ist. Das Portal hostet die Module nicht selbst, es liest sie aus der Registry, die du konfigurierst.

Was du tun kannst

Aktion Detail
Module durchsuchen Die Liste zeigt jedes Modul als namespace/name/provider
Versionen ansehen Jedes Modul hat eine Liste veröffentlichter Versionen, mit README und Changelog pro Version
Download Eine Version wird als <namespace>-<name>-<provider>-<version>.zip heruntergeladen
Eine Version hochladen oder löschen Nur wenn das zweite Flag, features.moduleRegistryUpdate, aktiv ist. Sonst antwortet das Portal mit HTTP 403

Standardmäßig nur lesend

Hochladen und Löschen sind vom Durchsuchen getrennt. Ein Team, das nur nachschlagen will, braucht das Update-Flag nie.

Wie es funktioniert

Das Portal-Backend ruft die Registry mit einem Bearer-Token auf. Es fordert das Token mit seiner eigenen Managed Identity (DefaultAzureCredential) für den konfigurierten Token-Scope an. Das Backend stellt dann zwei Routen für die Web-App bereit:

Route Zweck
GET /api/module-registry/terraform/modules Module auflisten
GET .../terraform/modules/<ns>/<name>/<provider>/versions Versionen eines Moduls auflisten
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/readme Das README einer Version lesen
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/changelog Den Changelog einer Version lesen
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/download Eine Version herunterladen
POST und DELETE auf .../<ns>/<name>/<provider>/<version> Eine Version hochladen oder löschen (braucht das Update-Flag)

Die Registry muss daher Entra-ID-Tokens für die Identität des Portals akzeptieren. Welches Registry-Produkt du nutzt, liegt außerhalb des Umfangs dieser Seite. Das Portal spricht mit einer Registry, die das Terraform-Module-Registry-Protokoll bereitstellt.

Einrichtung

Für das Plattform-Team. Die Konfiguration liegt in den App-Einstellungen der Umgebung:

Einstellung Zweck
features.moduleRegistry Zeigt die Seite und aktiviert das Backend
features.moduleRegistryUpdate Aktiviert Hochladen und Löschen
moduleRegistry.baseUrl (App-Einstellung MODULE_REGISTRY_BASE_URL) URL der Registry
moduleRegistry.tokenScope (App-Einstellung MODULE_REGISTRY_TOKEN_SCOPE) Scope für die Token-Anfrage
moduleRegistry.tenantId (App-Einstellung MODULE_REGISTRY_TENANT_ID, optional) Tenant, bei dem das Token angefordert wird, wenn er vom Home-Tenant abweicht

Ist die Registry nur über ein privates Netzwerk erreichbar, braucht der App Service eine Route dorthin über die VNet-Integration der Umgebung. Siehe Architektur.