Giter Site home page Giter Site logo

azure / resourcemodules Goto Github PK

View Code? Open in Web Editor NEW
719.0 31.0 457.0 48.67 MB

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

License: MIT License

Bicep 89.75% PowerShell 10.25%
arm azure iac modules microsoft bicep bicep-templates platform building-block publishing

resourcemodules's Introduction

⚠️ Upcoming breaking changes ⚠️

Following the recent release of 0.11.0, the upcoming period will focus on implementing the remaining changes required to align CARML's modules to the specifications of Azure Verified Modules (currently in development). This will enable us to move & publish the modules of the CARML library to the official Public Bicep Registry. You can read more about CARML's future in AVM here.

You can find details on the status of the migration in this issue.

Please note that these changes will affect many interfaces (e.g., the diagnostic settings). We intend to keep this period as short as possible, but are limited by our own available capacity. As we want to avoid one 'big bang' migration, we will incrementally align & move modules, and keep a copy in this repository until the move is concluded. For modules that were already published, we will redirect the proposed changes to the AVM folder of the new repository. In its final state, this AVM folder will contain all modules you can currently find in the modules folder of this repository.

Possible changes include (but are not limited to):

  • An update of the extension resource interfaces (i.e., diagnostic settings, RBAC, etc.)
  • An update of the README.md that comes with each module (including an update of the utility itself) to allow for a more detailed parameter description
  • An update to individual folder names
  • The addition of several user defined types (requiring Bicep version 0.21.1)

Modules that are already migrated to AVM will contain a file MOVED-TO-AVM.md to indicate that further contributions to the module should be done in the Public Bicep Registry's repository. Therefore, further contributions to those modules will not be integrated in the CARML repository.

Once the move concluded, the library & CI environment is planned to be maintained. However, several changes to the CARML CI environment will become necessary to ensure a low entry barrier when onboarding both (for example, as per the AVM specs we will need to be less restrictive in our tests).

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 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
jobs Container App Jobs 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
roleAssignments 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
redisEnterprise Redis Cache Enterprise 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
disks Compute Disks Deploy to Azure
diskEncryptionSets Disk Encryption Sets 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
virtualMachines Virtual Machines Deploy to Azure
virtualMachineScaleSets Virtual Machine Scale Sets 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 accessConnectors Azure Databricks Access Connectors Deploy to Azure
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 databaseAccounts 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
dataCollectionRules Data Collection Rules Deploy to Azure
diagnosticSettings Diagnostic Settings (Activity Logs) for Azure Subscriptions Deploy to Azure
metricAlerts Metric Alerts Deploy to Azure
privateLinkScopes 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 applicationGateways Network Application Gateways Deploy to Azure
ApplicationGatewayWebApplicationFirewallPolicies Application Gateway Web Application Firewall (WAF) Policies Deploy to Azure
applicationSecurityGroups Application Security Groups (ASG) Deploy to Azure
azureFirewalls 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
frontDoors Azure Front Doors Deploy to Azure
FrontDoorWebApplicationFirewallPolicies Front Door Web Application Firewall (WAF) Policies 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
networkManagers 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
privateEndpoints 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
virtualNetworks Virtual Networks Deploy to Azure
virtualNetworkGateways Virtual Network Gateways 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.ResourceGraph queries Resource Graph Queries Deploy to Azure
Microsoft.Resources deploymentScripts Deployment Scripts Deploy to Azure
resourceGroups Resource Groups Deploy to Azure
tags Resources Tags Deploy to Azure
Microsoft.Search searchServices Search Services Deploy to Azure
Microsoft.Security azuresecuritycenter 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 connections 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.

resourcemodules's People

Contributors

ahmadabdalla avatar akata72 avatar alexandersehr avatar arnoldna avatar chrissidebotham avatar coolhome avatar davidkarlsen avatar elanzel avatar elbatane avatar eriqua avatar fabmas avatar fblix avatar jpeasier avatar krbar avatar lsnoddy avatar mariusstorhaug avatar matebarabas avatar microsoftopensource avatar mrroundrobin avatar msanzdelrio avatar prasanjeets avatar rahalan avatar segraef avatar senavar avatar seseicht avatar shawntmeyer avatar simonbms avatar somilganguly avatar tyconsulting avatar wseng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

resourcemodules's Issues

General: Add 'primary resource' to module ReadMe title

To improve readability and avoid confusion we should add the 'primary resource' (e.g. Microsoft.KeyVault/vaults) to the title of the module's readme.

Underneath we have the 'ResourceTypes' table that just lists all resources in the template. That may cause confusion as to what resource we aim at with the template. Hence the intended 'highlighting'

Cleanup RBAC roles per module

Right now, most modules have 'all' available RBAC roles as a variable in the template even though only a subset can be applied to the given service.
Where possible we should update these modules and reduce the roles to the once that are actually available.

This will in most instances also drastically reduce the template's size.

Merge AppService & WebApp modules under `Microsoft.Web/sites`

Both modules have almost the same content with one major difference:

  • The AppService module deploys a serverfarm (appServicePlan) directly and references its ID in the subsequent site deployment
  • The WebApp module deploys no serverfarm but only requires you to provide its ID in the site deployment

Ideally we merge both together and provide an experience where the ID can be provided as an optional parameter. If provided it is used, if it is not provided, but a name for an AppServicePlan is, an AppServicePlan is deployed and its ID used

Module Pipeline Implementation ADO

Set up the intial set of pipelines required to run the platform on AzureDevOps

  • Create V1 of unit-testing pipelines for Azure DevOps
  • Create V1 of test-deployment pipelines for Azure Devops
  • Create V1 of publish pipelines for Azure Devops
  • Create V1 of removal pipelines for AzureDevOps

Repository structure

Description

For a solid library base concrete file and folder structures must be defined.

  • Modules

    • Folder structure
      • Modules/
        ┣ ModuleName/
        ┣ deploy.bicep
        ┣ deploy.json
        ┣ parameters.json
        ┗ readme.md
    • Basic elements (templates, parameters, pipelines, workflows, ...)
    • Readme (deploy to Azure button, readme structure, ...)
    • Naming convention (deploy.json/deploy.bicep/...)
  • Repository

    • Folder structure (Resource provider based)
      • Modules/
        ┣ Microsoft.Compute/
        ┃ ┣ VirtualMachines/
        ┃ ┃ ┣ deploy.bicep
        ┃ ┃ ┣ deploy.json
        ┃ ┃ ┣ parameters.json
        ┃ ┃ ┗ readme.md
        ┃ ┗ VirtualMachineScaleSets/
        ┃ ┣ deploy.bicep
        ┃ ┣ deploy.json
        ┃ ┣ linux.parameters.json
        ┃ ┣ readme.md
        ┃ ┗ windows.parameters.json
        ┣ Microsoft.Storage/
        ┃ ┗ StorageAccounts/
        ┃ ┣ deploy.bicep
        ┃ ┣ deploy.json
        ┃ ┣ parameters.json
        ┃ ┗ readme.md

Module: NetworkWatcher merge NSGFlowLogs

The NSG Flow Logs Module resources are of type Microsoft.Network/networkWatchers/flowLogs and should be merged into the network watcher module.

They are also implemented in the NSG module itself which however seems to be fine to reduce the number of deployments in case somebody wants to do both.

However, it does not make sense to have the NetworkWatcher module + NSGFlowLogsModule + NSG Module (wirh NSG Flow Logs)

Documentation, Wiki and FAQ

Description

A common set of FAQs and Wiki needs to be set up.
General documentation is required for

  • What is a Module?
  • Module Dependencies?
  • What is a Module used for?
  • How to deploy a Module (with PS, CLI, AzOps, TF, ...)?
  • What is a Workload?
  • How have Modules to do with Azure Landing Zones?
  • How does this fit into CAF?
  • What collaboration platform is recommended (GitHub/ADO)?
  • What is IaC?
  • Azure Resource Manager Reference?
  • What are GitHub Actions and Workflows?
  • Are Azure Pipelines supported?
  • How to contribute a Module?
  • How to structure a Module (ARM Template) according to an ARM Template syntax?
  • How to structure a Module (Bicep Module) according to an ARM Template syntax?
  • What are Constructs?

Other

  • naming in general for parameters in modules to remain consistent naming structure within templates and files (input parameter as well as output parameters, camelcasing)

References

https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/file
https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/syntax
https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/plan/workloads#what-is-a-workload
https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/landing-zone/
https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/extension-resource-types
https://docs.microsoft.com/en-us/devops/deliver/what-is-infrastructure-as-code
https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/infrastructure-as-code
https://docs.microsoft.com/en-us/azure/architecture/framework/devops/automation-infrastructure

Resolve ambiguous modules

The following modules need another look:

  • AzureSecurityCenter: Ambiguous provider
  • appService: overlapping provider with appServicePlan
  • appServicePlan: overlapping provider with appService
  • webApp: overlapping provider with siteFunctions
  • sitesFunction: overlapping provider with webApp
  • OpenSystemsNVA: Ambiguous provider

Create/Generate `Deploy to Azure` Button

Example

Code

[![Deploy to Azure](/docs/media/deploytoazure.svg?sanitize=true)](<https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FModules%2Fmain%2Farm%2FMicrosoft.AnalysisServices%2Fservers%2Fdeploy.json>)

[![Deploy To Azure US Gov](/docs/media/deploytoazuregov.svg?sanitize=true)](<https://portal.azure.us/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FModules%2Fmain%2Farm%2FMicrosoft.AnalysisServices%2Fservers%2Fdeploy.json>)

[![Visualize](/docs/media/visualizebutton.svg?sanitize=true)](<http://armviz.io/#/?load=https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FModules%2Fmain%2Farm%2FMicrosoft.AnalysisServices%2Fservers%2Fdeploy.json>)

Deploy to Azure

Deploy To Azure US Gov

Visualize

References

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/deploy-to-azure-button
https://devblogs.microsoft.com/cse/2017/01/17/the-deploy-to-azure-button/
https://medium.com/@codeprincess/get-your-own-azure-button-now-8d79b1811061

Releases, Tags and GitHub Packages

Description

Do we have requirements to use

  • Releases
  • Tags
  • GitHub Packages

to further enable development of components without affecting already existing reference to older versions.
Especially if people are going to and want to reference raw content URLs without having an impact if the repository gets updated with never versions of improved code.

Auto-Generate Module Table

Now that we have the module table & script available it might be worth thinking about auto-generating / updating the list.

While the implementation should be relatively straight forward as the main script is already available, working around the branching policies may be the trickier part.

Test Deployment of Bicep Modules in Azure US Gov and Azure China

Description

Test Deployment of Bicep Modules in Azure US Gov and Azure China.

Acceptance Criteria

Manual deployment validation via Test-AzResourceGroupDeployment and New-AzResourceGroupDeployment is required and must be successful.
Optionally you can make use of the already existing Module Test Pipelines (https://github.com/Azure/ResourceModules/.github/workflows). You just have to set your ARM credentials to test in your environment.

AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }}

Modules to validate

Module Azure US Gov  Azure China Assignee
ReferenceModule ✔️ ✔️ @segraef
Activity Log Alert  
ActivityLog  
Analysis Services  
API Connection  
Api Management Service Apis  
Api Management Service Authorization Servers  
Api Management Service Backends  
Api Management Service Cache  
Api Management Service Named Values  
Api Management Service Products  
Api Management Subscriptions  
Api Management  
App Service Environment  
Application Insights  
ApplicationGateway  
ApplicationSecurityGroups  
AppServicePlan  
AutoManage  
AutomationAccounts  
AvailabilitySet  
AVD Application Groups  
AVD Applications  
AVD HostPools  
AVD Workspaces  
Azure Databricks  
Azure Health Bot  
Azure Monitor Private Link Scope  
AzureBastion  
AzureFirewall  
AzureKubernetesService  
AzureNetAppFiles  
AzureSecurityCenter  
AzureSQLDatabase  
AzureSQLServer  
Batch Accounts  
Budgets  
CognitiveServices  
ContainerInstances  
ContainerRegistry    
DataFactory    
DDoS Protection Plans  
Deployment Scripts  
DiskEncryptionSet  
Event Grid  
EventHub Namespaces  
EventHubs    
ExpressRoute Circuit  
Image Templates  
Image  
IP Groups  
KeyVault  
LoadBalancer  
Local Network Gateway  
LogAnalytics  
LogicApp  
Machine Learning Services  
Management groups  
Metric Alert  
NAT Gateway  
Network Watcher  
NetworkSecurityGroups  
NSG Flow Logs  
PolicyAssignment  
PolicyDefinition  
PolicyExemption  
policySetDefinition  
PrivateDnsZones  
PrivateEndpoints  
ProximityPlacementGroup  
Public IP Addresses  
Public IP Prefixes  
RecoveryServicesVaults  
registrationDefinitions  
Resource Group  
Role Assignments  
Role Definitions  
RouteTables  
Scheduled Query Rules  
ServiceBusNamespaces  
ServiceBusQueues  
Shared Image Definition  
Shared Image Gallery  
Software Update Configuration  
SQL Managed Instances Database  
SQL Managed Instances  
StorageAccounts  
TrafficManager  
User Assigned Identities  
Virtual Machine Scale Sets  
Virtual Machines    
Virtual Network  
Virtual Wan  
VirtualNetworkGateway  
VirtualNetworkGatewayConnection  
VirtualNetworkPeering  
Web/Function App  

References

Move virtualNetworkPeerings

Description

virtualNetworkPeerings needs to be moved from /arm/Microsoft.Network/virtualNetwork/virtualNetworkPeerings to /arm/Microsoft.Network/virtualNetwork/virtualNetworkResources/virtualNetworkPeerings if I'm correct.

Develop constructs/variants

Description

Move all modules which support easy deployments of multiple instances into constructs and create variants/constructs.

virtualMachines
roleAssignments
virtualNetworkpeerings

MD files showing as binary in PRs

Description

When reviewing PRs containing some markdown files, some of the files show as binary.
An assumed cause is that the encoding of files are UTF16-LE. The files that can be reviewed in a PR (working as expected) are mostly UTF8.

Change the encoding of all MD files to UTF8 to see if they work as indented again in PRs.

Compute: Galleries Images

Error: [-] [galleries] parameters section should contain all parameters from the deploy.json file 62ms (60ms|2ms)

Accounts CognitiveServices

Error: [-] [accounts] Output section should contain all outputs defined in the deploy.json file 104ms (101ms|3ms)

Construct: Management Group structure

Description

After converting the managementGroup module, it only deploys a single management group. To retain the functionality of being able to deploy an entire management group structure, a construct using this singular managementGroup module should be created.

Use same logic for deploying locks on modules

Description

There are two approaches to enable locks in modules. The module which is set up different is Microsoft.Insights/privateLinkScopes and Microsoft.Resources/resourceGroups . They have the different lock modes you can enable as a parameter lock while for the other modules, they just take a boolean for lockForDeletion, which only exposes the ability to deploy a CanNotDelete lock.

Align on one approach and make that the default for the modules which support locks.

Use same logic for deploying diagnosticSettings on modules

Description

There are two approaches to enable logs in modules. The module which is set up different is Microsoft.Insights/diagnosticLogs. It has the different logs you can enable as a parameter logsToEnable while for the others, what logs to enable is "hardcoded" into vars.

Align on one approach and make that the default for the modules which support diagnosticSettings

Remove comment in param files

Description

Clean up comments in param files. Make sure that the examples that the commented params are shown in the readme file rather than in the param file it self.

Create/Fix and test Bicep templates

Description

Some ARM templates still have non-Bicep compliant decompilation errors which need to be fixed.

Steps to reproduce

bicep decompile .\deploy.json

Repository name

Description

Based on the decision in #10 we also have to consider the naming of this repository

  • ResourceModules
  • Modules
  • Service Modules / ServiceModules
  • Units

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.