Home

Awesome

<h1 style="color: steelblue;">⚠️ CARML - AVM transition ⚠️</h1>

CARML evolved to and has been rebranded as the Bicep version of Azure Verifiefd Modules (AVM). AVM is a straight-line successor of CARML, the next evolutionary step. A lot of CARML’s principles and architecture decisions have formed the basis for AVM.

While this means some minor changes in things such as parameter names or "standard interfaces" (e.g., diagnostic settings, etc.), you can still use the same modules you're used to and love, as they have been transitioned to AVM as resource or pattern modules.

A notice with additional details has been placed in each module. If for any reason, you still need access to the CARML version of the module, you can find it in the CARML repository by following the links in the module's README.md file.

Going forward, only the AVM version of the modules will receive updates and new features.

NOTE: A few modules have been retired without being moved to AVM as is. In most of these cases, capabilities originally provided by these modules have been implemented differently in AVM - e.g., as part of all AVM modules.

In the upcoming period, the AVM team will work on ensuring full compatibility of CARML's inner-sourcing solution (CI environment) with AVM.

AzureIcon Common Azure Resource Modules Library

Description

This repository includes a library of mature and curated Bicep modules as well as a Continuous Integration (CI) environment leveraged for modules' validation and versioned publishing.

The CI environment supports both ARM and Bicep and can be leveraged using GitHub actions as well as Azure DevOps pipelines.

Get started

Note: To ensure the modules and environment work as expected, please ensure you are using the latest version of the used tools such as PowerShell and Bicep. Especially in case of the latter, note, that you need to manually update the Bicep CLI. For further information, see our troubleshooting guide.

Available Resource Modules

Provider namespaceResource TypeName
Microsoft.AADdomainServicesAzure Active Directory Domain Services
Microsoft.AnalysisServicesserversAnalysis Services Servers
Microsoft.ApiManagementserviceAPI Management Services
Microsoft.AppcontainerAppsContainer Apps
jobsContainer App Jobs
managedEnvironmentsApp ManagedEnvironments
Microsoft.AppConfigurationconfigurationStoresApp Configuration Stores
Microsoft.AuthorizationlocksAuthorization Locks (All scopes)
policyAssignmentsPolicy Assignments (All scopes)
policyDefinitionsPolicy Definitions (All scopes)
policyExemptionsPolicy Exemptions (All scopes)
policySetDefinitionsPolicy Set Definitions (Initiatives) (All scopes)
roleAssignmentsRole Assignments (All scopes)
roleDefinitionsRole Definitions (All scopes)
Microsoft.AutomationautomationAccountsAutomation Accounts
Microsoft.BatchbatchAccountsBatch Accounts
Microsoft.CacheredisRedis Cache
redisEnterpriseRedis Cache Enterprise
Microsoft.CdnprofilesCDN Profiles
Microsoft.CognitiveServicesaccountsCognitive Services
Microsoft.ComputeavailabilitySetsAvailability Sets
disksCompute Disks
diskEncryptionSetsDisk Encryption Sets
galleriesAzure Compute Galleries
imagesImages
proximityPlacementGroupsProximity Placement Groups
sshPublicKeysPublic SSH Keys
virtualMachinesVirtual Machines
virtualMachineScaleSetsVirtual Machine Scale Sets
Microsoft.ConsumptionbudgetsConsumption Budgets
Microsoft.ContainerInstancecontainerGroupsContainer Instances Container Groups
Microsoft.ContainerRegistryregistriesAzure Container Registries (ACR)
Microsoft.ContainerServicemanagedClustersAzure Kubernetes Service (AKS) Managed Clusters
Microsoft.DataFactoryfactoriesData Factories
Microsoft.DataProtectionbackupVaultsData Protection Backup Vaults
Microsoft.DatabricksaccessConnectorsAzure Databricks Access Connectors
workspacesAzure Databricks Workspaces
Microsoft.DBforMySQLflexibleServersDBforMySQL Flexible Servers
Microsoft.DBforPostgreSQLflexibleServersDBforPostgreSQL Flexible Servers
Microsoft.DesktopVirtualizationapplicationGroupsAzure Virtual Desktop (AVD) Application Groups
hostPoolsAzure Virtual Desktop (AVD) Host Pools
scalingPlansAzure Virtual Desktop (AVD) Scaling Plans
workspacesAzure Virtual Desktop (AVD) Workspaces
Microsoft.DevTestLablabsDevTest Labs
Microsoft.DigitalTwinsdigitalTwinsInstancesDigital Twins Instances
Microsoft.DocumentDBdatabaseAccountsDocumentDB Database Accounts
Microsoft.EventGriddomainsEvent Grid Domains
systemTopicsEvent Grid System Topics
topicsEvent Grid Topics
Microsoft.EventHubnamespacesEvent Hub Namespaces
Microsoft.HealthBothealthBotsAzure Health Bots
Microsoft.HealthcareApisworkspacesHealthcare API Workspaces
microsoft.insightsactionGroupsAction Groups
activityLogAlertsActivity Log Alerts
componentsApplication Insights
dataCollectionEndpointsData Collection Endpoints
dataCollectionRulesData Collection Rules
diagnosticSettingsDiagnostic Settings (Activity Logs) for Azure Subscriptions
metricAlertsMetric Alerts
privateLinkScopesAzure Monitor Private Link Scopes
scheduledQueryRulesScheduled Query Rules
webtestsWeb Tests
Microsoft.KeyVaultvaultsKey Vaults
Microsoft.KubernetesConfigurationextensionsKubernetes Configuration Extensions
fluxConfigurationsKubernetes Configuration Flux Configurations
Microsoft.LogicworkflowsLogic Apps (Workflows)
Microsoft.MachineLearningServicesworkspacesMachine Learning Services Workspaces
Microsoft.MaintenancemaintenanceConfigurationsMaintenance Configurations
Microsoft.ManagedIdentityuserAssignedIdentitiesUser Assigned Identities
Microsoft.ManagedServicesregistrationDefinitionsRegistration Definitions
Microsoft.ManagementmanagementGroupsManagement Groups
Microsoft.NetAppnetAppAccountsAzure NetApp Files
Microsoft.NetworkapplicationGatewaysNetwork Application Gateways
ApplicationGatewayWebApplicationFirewallPoliciesApplication Gateway Web Application Firewall (WAF) Policies
applicationSecurityGroupsApplication Security Groups (ASG)
azureFirewallsAzure Firewalls
bastionHostsBastion Hosts
connectionsVirtual Network Gateway Connections
ddosProtectionPlansDDoS Protection Plans
dnsForwardingRulesetsDns Forwarding Rulesets
dnsResolversDNS Resolvers
dnsZonesPublic DNS Zones
expressRouteCircuitsExpressRoute Circuits
expressRouteGatewaysExpress Route Gateways
firewallPoliciesFirewall Policies
frontDoorsAzure Front Doors
FrontDoorWebApplicationFirewallPoliciesFront Door Web Application Firewall (WAF) Policies
ipGroupsIP Groups
loadBalancersLoad Balancers
localNetworkGatewaysLocal Network Gateways
natGatewaysNAT Gateways
networkInterfacesNetwork Interface
networkManagersNetwork Managers
networkSecurityGroupsNetwork Security Groups
networkWatchersNetwork Watchers
privateDnsZonesPrivate DNS Zones
privateEndpointsPrivate Endpoints
privateLinkServicesPrivate Link Services
publicIPAddressesPublic IP Addresses
publicIPPrefixesPublic IP Prefixes
routeTablesRoute Tables
serviceEndpointPoliciesService Endpoint Policies
trafficmanagerprofilesTraffic Manager Profiles
virtualHubsVirtual Hubs
virtualNetworksVirtual Networks
virtualNetworkGatewaysVirtual Network Gateways
virtualWansVirtual WANs
vpnGatewaysVPN Gateways
vpnSitesVPN Sites
Microsoft.OperationalInsightsworkspacesLog Analytics Workspaces
Microsoft.OperationsManagementsolutionsOperations Management Solutions
Microsoft.PolicyInsightsremediationsPolicy Insights Remediations
Microsoft.PowerBIDedicatedcapacitiesPower BI Dedicated Capacities
Microsoft.PurviewaccountsPurview Accounts
Microsoft.RecoveryServicesvaultsRecovery Services Vaults
Microsoft.RelaynamespacesRelay Namespaces
Microsoft.ResourceGraphqueriesResource Graph Queries
Microsoft.ResourcesdeploymentScriptsDeployment Scripts
resourceGroupsResource Groups
tagsResources Tags
Microsoft.SearchsearchServicesSearch Services
Microsoft.SecurityazuresecuritycenterAzure Security Center (Defender for Cloud)
Microsoft.ServiceBusnamespacesService Bus Namespaces
Microsoft.ServiceFabricclustersService Fabric Clusters
Microsoft.SignalRServicesignalRSignalR Service SignalR
webPubSubSignalR Web PubSub Services
Microsoft.SqlmanagedInstancesSQL Managed Instances
serversAzure SQL Servers
Microsoft.StoragestorageAccountsStorage Accounts
Microsoft.SynapseprivateLinkHubsAzure Synapse Analytics
workspacesSynapse Workspaces
Microsoft.VirtualMachineImagesimageTemplatesVirtual Machine Image Templates
Microsoft.WebconnectionsAPI Connections
hostingEnvironmentsApp Service Environments
serverfarmsApp Service Plans
sitesWeb/Function Apps
staticSitesStatic Web Apps

Platform

NameStatus
Update API Specs file.Platform: Update API Specs file
Assign Pull Request to Author.Platform: Assign Pull Request to Author
Test - ConvertTo-ARMTemplate.ps1.Platform: Test - ConvertTo-ARMTemplate.ps1
Clean up deployment history.Platform: Clean up deployment history
Library PSRule pre-flight validation.Platform: Library PSRule pre-flight validation
Broken Links Check.Platform: Broken Links Check
Linter (audit).Platform: Linter (audit)
Manage issues for failing pipelines.Platform: Manage issues for failing pipelines
Update ReadMe Module Tables.Platform: Update ReadMe Module Tables
Update Static Test Documentation.Platform: Update Static Test Documentation
Sync Docs/Wiki.Platform: Sync Docs/Wiki

Disclaimer

Please note that the main branch of this repository always contains the latest available version of the code. Some of the updates may introduce breaking changes as well.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

For specific guidelines on how to contribute to this repository please refer to the Contribution guide Wiki section.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Learn More

Telemetry

Modules provided in this library have telemetry enabled by default. To learn more about this feature, please refer to the Telemetry article in the wiki.

<!-- References --> <!-- Local --> <!-- External --> <!-- Docs -->