/ResourceModulesJD

Primary LanguageBicepMIT LicenseMIT

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
aad domain-services Azure Active Directory Domain Services
analysis-services servers Analysis Services Servers
api-management service API Management Services
app container-apps App ContainerApps
managed-environments App ManagedEnvironments
app-configuration configuration-stores App Configuration
authorization locks Authorization Locks
policy-assignments Policy Assignments
policy-definitions Policy Definitions
policy-exemptions Policy Exemptions
policy-set-definitions Policy Set Definitions
role-assignments Role Assignments
role-definitions Role Definitions
automation automation-accounts Automation Accounts
batch batch-accounts Batch Accounts
cache redis Cache Redis
cdn profiles CDN Profiles
cognitive-services accounts Cognitive Services
compute availability-sets Availability Sets
disk-encryption-sets Disk Encryption Sets
disks Compute Disks
galleries Azure Compute Galleries
images Images
proximity-placement-groups Proximity Placement Groups
ssh-public-keys Public SSH Keys
virtual-machine-scale-sets Virtual Machine Scale Sets
virtual-machines Virtual Machines
consumption budgets Budgets
container-instance container-groups Container Instances
container-registry registries Container Registries
container-service managed-clusters Azure Kubernetes Services
data-factory factories Data Factories
data-protection backup-vaults DataProtection BackupVaults
databricks workspaces Azure Databricks
db-for-my-sql flexible-servers DBforMySQL FlexibleServers
db-for-postgre-sql flexible-servers DBforPostgreSQL FlexibleServers
desktop-virtualization application-groups AVD Application Groups
host-pools AVD Host Pools
scaling-plans AVD Scaling Plans
workspaces AVD Workspaces
dev-test-lab labs DevTestLab Labs
digital-twins digital-twins-instances DigitalTwin Instances
document-db database-accounts DocumentDB Database Accounts
event-grid domains EventGrid Domains
system-topics Event Grid System Topics
topics Event Grid Topics
event-hub namespaces Event Hub Namespaces
health-bot health-bots Azure Health Bots
healthcare-apis workspaces HealthcareApis Workspaces
insights action-groups Action Groups
activity-log-alerts Activity Log Alerts
components Application Insights
data-collection-endpoints DataCollectionEndpoints
data-collection-rules DataCollectionRules
diagnostic-settings Activity Logs
metric-alerts Metric Alerts
private-link-scopes Azure Monitor Private Link Scopes
scheduled-query-rules Scheduled Query Rules
webtests Web Tests
key-vault vaults Key Vaults
kubernetes-configuration extensions Kubernetes Configuration Extensions
flux-configurations Kubernetes Configuration Flux Configurations
logic workflows Logic Apps
machine-learning-services workspaces Machine Learning Workspaces
maintenance maintenance-configurations Maintenance Configurations
managed-identity user-assigned-identities User Assigned Identities
managed-services registration-definitions Registration Definitions
management management-groups Management Groups
net-app net-app-accounts Azure NetApp Files
network application-gateway-web-application-firewall-policies Application Gateway WebApp Firewall Policies
application-gateways Network Application Gateways
application-security-groups Application Security Groups
azure-firewalls Azure Firewalls
bastion-hosts Bastion Hosts
connections Virtual Network Gateway Connections
ddos-protection-plans DDoS Protection Plans
dns-resolvers Network DnsResolvers
dns-zones Public DNS Zones
express-route-circuits ExpressRoute Circuits
express-route-gateway Express Route Gateways
firewall-policies Firewall Policies
front-doors Front Doors
ip-groups IP Groups
load-balancers Load Balancers
local-network-gateways Local Network Gateways
nat-gateways NAT Gateways
network-interfaces Network Interface
network-managers Network NetworkManagers
network-security-groups Network Security Groups
network-watchers Network Watchers
private-dns-zones Private DNS Zones
private-endpoints Private Endpoints
private-link-services Network PrivateLinkServices
public-ip-addresses Public IP Addresses
public-ip-prefixes Public IP Prefixes
route-tables Route Tables
trafficmanagerprofiles Traffic Manager Profiles
virtual-hubs Virtual Hubs
virtual-network-gateways Virtual Network Gateways
virtual-networks Virtual Networks
virtual-wans Virtual WANs
vpn-gateways VPN Gateways
vpn-sites VPN Sites
operational-insights workspaces Log Analytics Workspaces
operations-management solutions OperationsManagement Solutions
policy-insights remediations PolicyInsights Remediations
power-bi-dedicated capacities PowerBIDedicated Capacities
purview accounts Purview Accounts
recovery-services vaults Recovery Services Vaults
resources deployment-scripts Deployment Scripts
resource-groups Resource Groups
tags Resources Tags
security azure-security-center Azure Security Center
service-bus namespaces Service Bus Namespaces
service-fabric clusters Service Fabric Clusters
signal-r-service signal-r SignalRService SignalR
web-pub-sub Web PubSub Services
sql managed-instances SQL Managed Instances
servers SQL Servers
storage storage-accounts Storage Accounts
synapse private-link-hubs Azure Synapse Analytics
workspaces Synapse Workspaces
virtual-machine-images image-templates Image Templates
web connections API Connections
hosting-environments App Service Environments
serverfarms App Service Plans
sites Web/Function Apps
static-sites Static Web Apps

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 status Tables .Platform: Update ReadMe status 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 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.