Module registry¶
De pagina Module Registry toont de Terraform-modules die je organisatie publiceert in een private module registry, met hun versies en downloadlinks. Zo kan een workload team de goedgekeurde module voor een resource vinden en een versie kiezen zonder het portaal te verlaten.
De pagina verschijnt alleen in het menu als de feature flag features.moduleRegistry aanstaat. Het portaal host de modules zelf niet. Het leest ze uit de registry die je configureert.
Wat je kunt doen¶
| Actie | Detail |
|---|---|
| Modules bekijken | De lijst toont elke module als namespace/name/provider |
| Versies bekijken | Elke module heeft een lijst met gepubliceerde versies, met README en changelog per versie |
| Downloaden | Een versie wordt gedownload als <namespace>-<name>-<provider>-<version>.zip |
| Een versie uploaden of verwijderen | Alleen als de tweede flag, features.moduleRegistryUpdate, aanstaat. Anders antwoordt het portaal met HTTP 403 |
Standaard alleen-lezen
Uploaden en verwijderen staan los van bekijken. Een team dat alleen iets wil opzoeken, heeft de updateflag nooit nodig.
Hoe het werkt¶
De portaalbackend roept de registry aan met een bearer token. Hij vraagt het token aan met zijn eigen managed identity (DefaultAzureCredential) voor de geconfigureerde tokenscope. De backend biedt daarna twee routes aan de webapp:
| Route | Doel |
|---|---|
GET /api/module-registry/terraform/modules |
Modules weergeven |
GET .../terraform/modules/<ns>/<name>/<provider>/versions |
Versies van één module weergeven |
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/readme |
De README van een versie lezen |
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/changelog |
De changelog van een versie lezen |
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/download |
Een versie downloaden |
POST en DELETE op .../<ns>/<name>/<provider>/<version> |
Een versie uploaden of verwijderen (vereist de updateflag) |
De registry moet dus Entra ID-tokens voor de identity van het portaal accepteren. Welk registryproduct je gebruikt valt buiten de scope van deze pagina. Het portaal praat met een registry die het Terraform module registry-protocol aanbiedt.
Setup¶
Voor het platformteam. De configuratie staat in de app settings van de omgeving:
| Instelling | Doel |
|---|---|
features.moduleRegistry |
Toont de pagina en schakelt de backend in |
features.moduleRegistryUpdate |
Schakelt uploaden en verwijderen in |
moduleRegistry.baseUrl (app setting MODULE_REGISTRY_BASE_URL) |
URL van de registry |
moduleRegistry.tokenScope (app setting MODULE_REGISTRY_TOKEN_SCOPE) |
Scope voor de tokenaanvraag |
moduleRegistry.tenantId (app setting MODULE_REGISTRY_TENANT_ID, optioneel) |
Tenant waar het token wordt aangevraagd, als die afwijkt van de home tenant |
Als de registry alleen via een privénetwerk bereikbaar is, heeft de App Service een route ernaartoe nodig via de VNet-integratie van de omgeving. Zie Architectuur.
Gerelateerd¶
- Configuratie
- Managed templates voor de templates die zulke modules gebruiken