vdc/Modules
dwas01 c9300aee67 event.hub module updates
fix deploy.json
2019-09-11 04:19:19 +12:00
..
APIManagement/2.0 api.management module updates 2019-09-11 00:30:09 +12:00
ActiveDirectory/2.0 Jcotillo/ntier iaas fixes (#110) 2019-08-26 01:06:06 -07:00
ActiveDirectoryDomainServices/2.0 Jcotillo/ntier iaas fixes (#110) 2019-08-26 01:06:06 -07:00
AnalysisServices/2.0 analysis.services module updates 2019-09-11 03:19:54 +12:00
AppServiceEnvironments/2.0 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
AppServicePlan/2.0 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
AppServiceWebApp/2.0 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
ApplicationGateway ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
ApplicationInsights/2.0 application.insights module updates 2019-09-11 00:30:35 +12:00
ApplicationSecurityGroups/2.0 Modularization of Virtual Machine templates (#101) 2019-08-15 22:40:53 -07:00
AutomationAccounts/2.0 Jcotillo/ntier iaas v2 (#109) 2019-08-23 22:31:50 -07:00
AzureBastion/2.0 Jcotillo/ntier iaas v2 (#109) 2019-08-23 22:31:50 -07:00
AzureDatabricks/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
AzureFirewall/2.0 AKS Archetype (#96) 2019-08-23 22:48:47 -07:00
AzureKubernetesServices/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
AzureSecurityCenter/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
CognitiveServices/2.0 cognitive.services module updates 2019-09-11 03:20:17 +12:00
ContainerRegistries/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
CosmosDB/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
DNS/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
DataFactories/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
EventGrid/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
EventHub/2.0 event.hub module updates 2019-09-11 04:19:19 +12:00
FunctionApps/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
InternetInformationServices/2.0 Jcotillo/ntier iaas v2 (#109) 2019-08-23 22:31:50 -07:00
KeyVault/2.0 Jcotillo/ntier iaas fixes (#110) 2019-08-26 01:06:06 -07:00
LoadBalancers/2.0 Jcotillo/ntier iaas fixes (#110) 2019-08-26 01:06:06 -07:00
LogAnalytics/2.0 AKS Archetype (#96) 2019-08-23 22:48:47 -07:00
LogicApps/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
MachineLearning/2.0 machine.learning module updates 2019-09-09 11:36:02 +12:00
MachineLearningServices/2.0 machine.learning module updates 2019-09-09 11:36:02 +12:00
MySQL/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
NISTControls/2.0 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
NetworkSecurityGroups/2.0 Modularization of Virtual Machine templates (#101) 2019-08-15 22:40:53 -07:00
NotificationHub/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
ProximityPlacementGroups/2.0 Jcotillo/ntier iaas v2 (#109) 2019-08-23 22:31:50 -07:00
RecoveryServicesVaults/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
RedisCache/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
RouteTables/2.0 Modularization of Virtual Machine templates (#101) 2019-08-15 22:40:53 -07:00
SQLDBServer/2.0 ASE/SQL DB pipeline (#73) 2019-07-06 14:08:46 -07:00
SQLDatabase/2.0 ASE/SQL DB pipeline (#73) 2019-07-06 14:08:46 -07:00
SQLManagedInstances/2.0 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
SQLServerAlwaysOn/2.0 Jcotillo/ntier iaas fixes (#110) 2019-08-26 01:06:06 -07:00
SearchServices/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
ServiceBus/2.0 6484 api managment, 6593 analyis services modules (#116) 2019-08-28 19:34:54 -07:00
StorageAccounts/2.0 removed files 2019-08-28 11:30:44 -07:00
StreamAnalytics/2.0 stream.analytics module updates 2019-09-11 03:20:57 +12:00
UpdateAzureFirewall/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
VirtualMachineKeyEncryptionKey/2.0 Modularization of Virtual Machine templates (#101) 2019-08-15 22:40:53 -07:00
VirtualMachineScaleSets/2.0 replaced extension 2019-08-26 08:14:39 -07:00
VirtualMachines/2.0 updated extension name 2019-08-26 09:14:35 -07:00
VirtualNetwork/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
VirtualNetworkGateway/2.0 gw fix 2019-08-28 12:42:11 -07:00
VirtualNetworkGatewayConnection/2.0 added policy and rbac tests 2019-08-24 00:24:21 -07:00
VirtualNetworkPeering/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
deploying-modules.md ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
module-readme-template.md ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
readme.md ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
testing-modules.md ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00

readme.md

Modules 2.0

A module is a reusable set of artifacts that can be composed into an archetype. The modules can be deployed by anything that can deploy ARM templates. There is no need for a proprietary tool for deploying a single module. This document is about the 2.0 format for modules.

At a minimum, a module must have:

  • deployment and parameters files (e.g deploy.json and parameters.json)
  • a readme.md file
  • tests (e.g. module.tests.ps1) - located in the Tests subfolder

In addition, a module may include the following (each in a subfolder named after the asset type):

  • Policy (ARM template) definition + assignment
  • RBAC (ARM template) definition + assignment
  • Scripts (bash scripts, powershell, batch files, etc.)

Guidelines

A module usually represents a single resource or a set of closely related resources. For example, a storage account and the associated lock or virtual machine and network interfaces.

  • Don't use hyphens in file names, folder names, parameters, or variables.
  • Module names should use PascalCase and are derived from the names in the Azure Portal
  • Parameters and variables in ARM template should use camelCase
  • Don't use nested deployments pointing to different subscription and or resource group
    • There are situations where nested deployments are okay (i.e., BitLocker – to encrypt the OS drive youll need to run a nested deployment)

Testing

Tests rely on Powershell and Pester and on ARM validation.

There are two test files:

  • module.tests.ps1 is required.
  • output.tests.ps1 is optional. The optional file is for debugging purposes. It writes deployment input parameters to the console.

The module test verifies that required parameters are defined in the parameters file and verifies that the template file has the following parameters:

    $expectedProperties = '$schema',
    'contentVersion',
    'parameters',
    'variables',
    'resources',
    'outputs' | Sort-Object

Once all Pester test passes, proceed to run any of the following commands:

  • Powershell:

Test-AzResourceGroupDeployment

  • Azure CLI:

az group deployment validate

Before creating a PR, make sure that these two type of tests pass.