rjfmachado / ResourceModules

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.

Home Page:https://aka.ms/carml

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Name Status
Action Groups Insights - ActionGroups
Activity Log Alerts Insights - ActivityLogAlerts
Activity Logs Insights - DiagnosticSettings
Analysis Services Servers AnalysisServices - Servers
API Connections Web - Connections
API Management Services ApiManagement - Service
App Configuration AppConfiguration - ConfigurationStores
App ContainerApps App - ContainerApps
App ManagedEnvironments App - Managed Environments
App Service Environments Web - HostingEnvironments
App Service Plans Web - Serverfarms
Application Gateway WebApp Firewall Policies Network - ApplicationGatewayWebApplicationFirewallPolicies
Application Insights Insights - Components
Application Security Groups Network - ApplicationSecurityGroups
Authorization Locks Authorization - Locks
Automation Accounts Automation - AutomationAccounts
Availability Sets Compute - AvailabilitySets
AVD Application Groups DesktopVirtualization - ApplicationGroups
AVD Host Pools DesktopVirtualization - HostPools
AVD Scaling Plans DesktopVirtualization - Scalingplans
AVD Workspaces DesktopVirtualization - Workspaces
Azure Active Directory Domain Services AAD - DomainServices
Azure Compute Galleries Compute - Galleries
Azure Databricks Databricks - Workspaces
Azure Firewalls Network - AzureFirewalls
Azure Health Bots HealthBot - HealthBots
Azure Kubernetes Services ContainerService - ManagedClusters
Azure Monitor Private Link Scopes Insights - PrivateLinkScopes
Azure NetApp Files NetApp - NetAppAccounts
Azure Security Center Security - AzureSecurityCenter
Azure Synapse Analytics Synapse - PrivateLinkHubs
Bastion Hosts Network - BastionHosts
Batch Accounts Batch - BatchAccounts
Budgets Consumption - Budgets
Cache Redis Cache - Redis
CDN Profiles CDN - Profiles
Cognitive Services CognitiveServices - Accounts
Compute Disks Compute - Disks
Container Instances ContainerInstance - ContainerGroups
Container Registries ContainerRegistry - Registries
Data Factories DataFactory - Factories
DataCollectionEndpoints Insights - DataCollectionEndpoints
DataCollectionRules Insights - DataCollectionRules
DataProtection BackupVaults DataProtection - BackupVaults
DBforMySQL FlexibleServers DbForMySQL - FlexibleServers
DBforPostgreSQL FlexibleServers DbForPostgreSQL - FlexibleServers
DDoS Protection Plans Network - DdosProtectionPlans
Deployment Scripts Resources - DeploymentScripts
DevTestLab Labs DevTestLab - Labs
DigitalTwin Instances DigitalTwins - DigitalTwinsInstances
Disk Encryption Sets Compute - DiskEncryptionSets
DocumentDB Database Accounts DocumentDB - DatabaseAccounts
Event Grid System Topics EventGrid - System Topics
Event Grid Topics EventGrid - Topics
Event Hub Namespaces EventHub - Namespaces
EventGrid Domains EventGrid - Domains
EventGrid EventSubscriptions EventGrid - Event Subscriptions
Express Route Gateways Network - ExpressRouteGateway
ExpressRoute Circuits Network - ExpressRouteCircuits
Firewall Policies Network - FirewallPolicies
Front Doors Network - Frontdoors
HealthcareApis Workspaces HealthcareApis - Workspaces
Image Templates VirtualMachineImages - ImageTemplates
Images Compute - Images
IP Groups Network - IpGroups
Key Vaults KeyVault - Vaults
Kubernetes Configuration Extensions KubernetesConfiguration - Extensions
Kubernetes Configuration Flux Configurations KubernetesConfiguration - FluxConfigurations
Load Balancers Network - LoadBalancers
Local Network Gateways Network - LocalNetworkGateways
Log Analytics Workspaces OperationalInsights - Workspaces
Logic Apps Logic - Workflows
Machine Learning Workspaces MachineLearningServices - Workspaces
Maintenance Configurations Maintenance - MaintenanceConfigurations
Management Groups Management - ManagementGroups
Metric Alerts Insights - MetricAlerts
NAT Gateways Network - NatGateways
Network Application Gateways Network - ApplicationGateways
Network DnsResolvers Network - DNS Resolvers
Network Interface Network - NetworkInterfaces
Network NetworkManagers Network - Network Managers
Network PrivateLinkServices Network - PrivateLinkServices
Network Security Groups Network - NetworkSecurityGroups
Network Watchers Network - NetworkWatchers
OperationsManagement Solutions OperationsManagement - Solutions
Policy Assignments Authorization - PolicyAssignments
Policy Definitions Authorization - PolicyDefinitions
Policy Exemptions Authorization - PolicyExemptions
Policy Set Definitions Authorization - PolicySetDefinitions
PolicyInsights Remediations PolicyInsights - Remediations
PowerBIDedicated Capacities PowerBiDedicated - Capacities
Private DNS Zones Network - PrivateDnsZones
Private Endpoints Network - PrivateEndpoints
Proximity Placement Groups Compute - ProximityPlacementGroups
Public DNS Zones Network - Public DnsZones
Public IP Addresses Network - PublicIpAddresses
Public IP Prefixes Network - PublicIpPrefixes
Public SSH Keys Compute - SshPublicKeys
Purview Accounts Purview - Accounts
Recovery Services Vaults RecoveryServices - Vaults
Registration Definitions ManagedServices - RegistrationDefinitions
Resource Groups Resources - ResourceGroups
Resources Tags Resources - Tags
Role Assignments Authorization - RoleAssignments
Role Definitions Authorization - RoleDefinitions
Route Tables Network - RouteTables
Scheduled Query Rules Insights - ScheduledQueryRules
Service Bus Namespaces ServiceBus - Namespaces
Service Fabric Clusters ServiceFabric - Clusters
SignalRService SignalR SignalRService - SignalR
SQL Managed Instances Sql - ManagedInstances
SQL Servers Sql - Servers
Static Web Apps Web - StaticSites
Storage Accounts Storage - StorageAccounts
Synapse Workspaces Synapse - Workspaces
Traffic Manager Profiles Network - TrafficManagerProfiles
User Assigned Identities ManagedIdentity - UserAssignedIdentities
Virtual Hubs Network - VirtualHubs
Virtual Machine Scale Sets Compute - VirtualMachineScaleSets
Virtual Machines Compute - VirtualMachines
Virtual Network Gateway Connections Network - Connections
Virtual Network Gateways Network - VirtualNetworkGateways
Virtual Networks Network - VirtualNetworks
Virtual WANs Network - VirtualWans
VPN Gateways Network - VPNGateways
VPN Sites Network - VPN Sites
Web PubSub Services SignalRService - WebPubSub
Web Tests Insights - Web Tests
Web/Function Apps Web - Sites

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.

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.

https://aka.ms/carml

License:MIT License


Languages

Language:Bicep 89.3%Language:PowerShell 10.7%