SNFR19 - Registries Targeted
Modules MUST be published to their respective language public registries.
- Bicep =
Bicep Public Module Registry
- Within the
avm
directory
- Within the
- Terraform = HashiCorp Terraform Registry
See the language specific contribution guides for detailed guidance and sample code to use in AVM modules to achieve this requirement.
SNFR2 - E2E Testing
Modules MUST implement end-to-end (deployment) testing that create actual resources to validate that module deployments work. In Bicep tests are sourced from the directories in
/tests/e2e
. In Terraform, these are in/examples
.Each test MUST run and complete without user inputs successfully, for automation purposes.
SNFR20 - GitHub Teams Only
All GitHub repositories that AVM module are published from and hosted within MUST only assign GitHub repository permissions to GitHub teams only.
Each module MUST have separate GitHub teams assigned for module owners AND module contributors respectively. These GitHub teams MUST be created in the Azure organization in GitHub.
SNFR21 - Cross Language Collaboration
When the module owners of the same Resource or Pattern AVM module are not the same individual or team for all languages, each languages team SHOULD collaborate with their sibling language team for the same module to ensure consistency where possible.
SNFR22 - Parameters/Variables for Resource IDs
A module parameter/variable that requires a full Azure Resource ID as an input value, e.g.
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{keyVaultName}
, MUST containResourceId/resource_id
in its parameter/variable name to assist users in knowing what value to provide at a glance of the parameter/variable name.SNFR23 - GitHub Repo Labels
GitHub repositories where modules are held MUST use the below labels and SHOULD not use any additional labels: