Ga naar inhoud

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.