Skip to content

This repository includes a CI platform for and collection of mature and curated Bicep modules. The platform supports both ARM and Bicep and can be leveraged using GitHub actions as well as Azure DevOps pipelines.

License

Notifications You must be signed in to change notification settings

jan-delaet/ResourceModules

 
 

Repository files navigation

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.

Upcoming breaking changes

In between now and the release of version 0.11.0, the main branch is subject to several upcoming breaking changes that will affect all modules (e.g., the renaming of folders and files).

The rationale is an ongoing effort to prepare our modules for a release in the official Public Bicep Registry, forcing us to align the structural requirements.

For more details, please refer to the issue #3131.

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 later, note, that you need to manually update the Bicep CLI. For further information, see our troubleshooting guide.

Available Resource Modules

Provider namespace Resource Type Name Deploy
Microsoft.AAD domainServices Azure Active Directory Domain Services Deploy to Azure
Microsoft.AnalysisServices servers Analysis Services Servers Deploy to Azure
Microsoft.ApiManagement service API Management Services Deploy to Azure
Microsoft.App containerApps Container Apps Deploy to Azure
managedEnvironments App ManagedEnvironments Deploy to Azure
Microsoft.AppConfiguration configurationStores App Configuration Stores Deploy to Azure
Microsoft.Authorization locks Authorization Locks (All scopes) Deploy to Azure
policyAssignments Policy Assignments (All scopes) Deploy to Azure
policyDefinitions Policy Definitions (All scopes) Deploy to Azure
policyExemptions Policy Exemptions (All scopes) Deploy to Azure
policySetDefinitions Policy Set Definitions (Initiatives) (All scopes) Deploy to Azure
roleAssignmentApprovals Role Assignments (All scopes) Deploy to Azure
roleDefinitions Role Definitions (All scopes) Deploy to Azure
Microsoft.Automation automationAccounts Automation Accounts Deploy to Azure
Microsoft.Batch batchAccounts Batch Accounts Deploy to Azure
Microsoft.Cache Redis Redis Cache Deploy to Azure
Microsoft.Cdn profiles CDN Profiles Deploy to Azure
Microsoft.CognitiveServices accounts Cognitive Services Deploy to Azure
Microsoft.Compute availabilitySets Availability Sets Deploy to Azure
diskEncryptionSets Disk Encryption Sets Deploy to Azure
diskAccesses Compute Disks Deploy to Azure
galleries Azure Compute Galleries Deploy to Azure
images Images Deploy to Azure
proximityPlacementGroups Proximity Placement Groups Deploy to Azure
sshPublicKeys Public SSH Keys Deploy to Azure
virtualMachineScaleSets Virtual Machine Scale Sets Deploy to Azure
virtualMachines Virtual Machines Deploy to Azure
Microsoft.Consumption budgets Consumption Budgets Deploy to Azure
Microsoft.ContainerInstance containerGroups Container Instances Container Groups Deploy to Azure
Microsoft.ContainerRegistry registries Azure Container Registries (ACR) Deploy to Azure
Microsoft.ContainerService managedClusters Azure Kubernetes Service (AKS) Managed Clusters Deploy to Azure
Microsoft.DataFactory factories Data Factories Deploy to Azure
Microsoft.DataProtection backupVaults Data Protection Backup Vaults Deploy to Azure
Microsoft.Databricks workspaces Azure Databricks Workspaces Deploy to Azure
Microsoft.DBforMySQL flexibleServers DBforMySQL Flexible Servers Deploy to Azure
Microsoft.DBforPostgreSQL flexibleServers DBforPostgreSQL Flexible Servers Deploy to Azure
Microsoft.DesktopVirtualization applicationGroups Azure Virtual Desktop (AVD) Application Groups Deploy to Azure
hostPools Azure Virtual Desktop (AVD) Host Pools Deploy to Azure
scalingPlans Azure Virtual Desktop (AVD) Scaling Plans Deploy to Azure
workspaces Azure Virtual Desktop (AVD) Workspaces Deploy to Azure
Microsoft.DevTestLab labs DevTest Labs Deploy to Azure
Microsoft.DigitalTwins digitalTwinsInstances Digital Twins Instances Deploy to Azure
Microsoft.DocumentDB databaseAccountNames DocumentDB Database Accounts Deploy to Azure
Microsoft.EventGrid domains Event Grid Domains Deploy to Azure
systemTopics Event Grid System Topics Deploy to Azure
topics Event Grid Topics Deploy to Azure
Microsoft.EventHub namespaces Event Hub Namespaces Deploy to Azure
Microsoft.HealthBot healthBots Azure Health Bots Deploy to Azure
Microsoft.HealthcareApis workspaces Healthcare API Workspaces Deploy to Azure
Microsoft.Insights actionGroups Action Groups Deploy to Azure
activityLogAlerts Activity Log Alerts Deploy to Azure
components Application Insights Deploy to Azure
dataCollectionEndpoints Data Collection Endpoints Deploy to Azure
dataCollectionRuleAssociations Data Collection Rules Deploy to Azure
diagnosticSettings Diagnostic Settings (Activity Logs) for Azure Subscriptions Deploy to Azure
metricAlerts Metric Alerts Deploy to Azure
privateLinkScopeOperationStatuses Azure Monitor Private Link Scopes Deploy to Azure
scheduledQueryRules Scheduled Query Rules Deploy to Azure
webtests Web Tests Deploy to Azure
Microsoft.KeyVault vaults Key Vaults Deploy to Azure
Microsoft.KubernetesConfiguration extensions Kubernetes Configuration Extensions Deploy to Azure
fluxConfigurations Kubernetes Configuration Flux Configurations Deploy to Azure
Microsoft.Logic workflows Logic Apps (Workflows) Deploy to Azure
Microsoft.MachineLearningServices workspaces Machine Learning Services Workspaces Deploy to Azure
Microsoft.Maintenance maintenanceConfigurations Maintenance Configurations Deploy to Azure
Microsoft.ManagedIdentity userAssignedIdentities User Assigned Identities Deploy to Azure
Microsoft.ManagedServices registrationDefinitions Registration Definitions Deploy to Azure
Microsoft.Management managementGroups Management Groups Deploy to Azure
Microsoft.NetApp netAppAccounts Azure NetApp Files Deploy to Azure
Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies Application Gateway Web Application Firewall (WAF) Policies Deploy to Azure
applicationGatewayAvailableRequestHeaders Network Application Gateways Deploy to Azure
applicationSecurityGroups Application Security Groups (ASG) Deploy to Azure
azureFirewallFqdnTags Azure Firewalls Deploy to Azure
bastionHosts Bastion Hosts Deploy to Azure
connections Virtual Network Gateway Connections Deploy to Azure
ddosProtectionPlans DDoS Protection Plans Deploy to Azure
dnsForwardingRulesets Dns Forwarding Rulesets Deploy to Azure
dnsResolvers DNS Resolvers Deploy to Azure
dnsZones Public DNS Zones Deploy to Azure
expressRouteCircuits ExpressRoute Circuits Deploy to Azure
expressRouteGateways Express Route Gateways Deploy to Azure
firewallPolicies Firewall Policies Deploy to Azure
frontdoorOperationResults Azure Front Doors Deploy to Azure
ipGroups IP Groups Deploy to Azure
loadBalancers Load Balancers Deploy to Azure
localNetworkGateways Local Network Gateways Deploy to Azure
natGateways NAT Gateways Deploy to Azure
networkInterfaces Network Interface Deploy to Azure
networkManagerConnections Network Managers Deploy to Azure
networkSecurityGroups Network Security Groups Deploy to Azure
networkWatchers Network Watchers Deploy to Azure
privateDnsZones Private DNS Zones Deploy to Azure
privateEndpointRedirectMaps Private Endpoints Deploy to Azure
privateLinkServices Private Link Services Deploy to Azure
publicIPAddresses Public IP Addresses Deploy to Azure
publicIPPrefixes Public IP Prefixes Deploy to Azure
routeTables Route Tables Deploy to Azure
serviceEndpointPolicies Service Endpoint Policies Deploy to Azure
trafficmanagerprofiles Traffic Manager Profiles Deploy to Azure
virtualHubs Virtual Hubs Deploy to Azure
virtualNetworkGateways Virtual Network Gateways Deploy to Azure
virtualNetworkGateways Virtual Networks Deploy to Azure
virtualWans Virtual WANs Deploy to Azure
vpnGateways VPN Gateways Deploy to Azure
vpnSites VPN Sites Deploy to Azure
Microsoft.OperationalInsights workspaces Log Analytics Workspaces Deploy to Azure
Microsoft.OperationsManagement solutions Operations Management Solutions Deploy to Azure
Microsoft.PolicyInsights remediations Policy Insights Remediations Deploy to Azure
Microsoft.PowerBIDedicated capacities Power BI Dedicated Capacities Deploy to Azure
Microsoft.Purview accounts Purview Accounts Deploy to Azure
Microsoft.RecoveryServices vaults Recovery Services Vaults Deploy to Azure
Microsoft.Relay namespaces Relay Namespaces Deploy to Azure
Microsoft.Resources deploymentScripts Deployment Scripts Deploy to Azure
resourceGroups Resource Groups Deploy to Azure
tagNamespaceOperationResults Resources Tags Deploy to Azure
Microsoft.Security security Azure Security Center (Defender for Cloud) Deploy to Azure
Microsoft.ServiceBus namespaces Service Bus Namespaces Deploy to Azure
Microsoft.ServiceFabric clusters Service Fabric Clusters Deploy to Azure
Microsoft.SignalRService signalR SignalR Service SignalR Deploy to Azure
webPubSub SignalR Web PubSub Services Deploy to Azure
Microsoft.Sql managedInstances SQL Managed Instances Deploy to Azure
servers Azure SQL Servers Deploy to Azure
Microsoft.Storage storageAccounts Storage Accounts Deploy to Azure
Microsoft.Synapse privateLinkHubs Azure Synapse Analytics Deploy to Azure
workspaces Synapse Workspaces Deploy to Azure
Microsoft.VirtualMachineImages imageTemplates Virtual Machine Image Templates Deploy to Azure
Microsoft.Web connectionGateways API Connections Deploy to Azure
hostingEnvironments App Service Environments Deploy to Azure
serverfarms App Service Plans Deploy to Azure
sites Web/Function Apps Deploy to Azure
staticSites Static Web Apps Deploy to Azure

Platform

Name Status
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 CARML is constantly evolving and introducing new features. The main branch of this repository changes frequently and thus, it always contains the latest available version of the code. Some of the updates may introduce breaking changes as well.

  • Default path: To avoid disruptions, use distinct versions available through releases.
  • Early adopter path: If the risk of breaking changes is understood and accepted, you can use the code in the main branch directly. However, the CARML team recommends against automatically pulling code from main. It is always recommended to review changes before you pull them into your own repository.

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 [email protected] 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.

About

This repository includes a CI platform for and collection of mature and curated Bicep modules. The platform supports both ARM and Bicep and can be leveraged using GitHub actions as well as Azure DevOps pipelines.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Bicep 89.4%
  • PowerShell 10.6%