vdc/Modules
Jorge Cotillo 7843f0dfc8
Jcotillo/ntier iaas fixes (#110)
* initial commit

* updated ntier-iaas azure devops pipeline

* updated azdo service connection

* updated service connection

* updated variable group name

* added spn environment keys

* removed artifacts storage validation

* updated simulated onprem pipeline

* updated depedency

* removed invalid dependency

* parameter updates

* updated ntier iaas pipeline

* added pipeline variables

* fixed dependencies

* fixed module definition name

* fixed reference output retrieval

* updated module definition name

* updated dependencies
2019-08-26 01:06:06 -07:00
..
APIManagement ASE sql archetype (#71) 2019-07-05 14:33:50 -07: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 ASE sql archetype (#71) 2019-07-05 14:33:50 -07: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 ASE sql archetype (#71) 2019-07-05 14:33:50 -07: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 ASE sql archetype (#71) 2019-07-05 14:33:50 -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 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
ContainerRegistries/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
CosmosDB ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
DNS ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
DataFactories ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
EventGrid ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
EventHub/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
FunctionApps ASE sql archetype (#71) 2019-07-05 14:33:50 -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 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
MachineLearning ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
MySQL ASE sql archetype (#71) 2019-07-05 14:33:50 -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 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
ProximityPlacementGroups/2.0 Jcotillo/ntier iaas v2 (#109) 2019-08-23 22:31:50 -07:00
RecoveryServicesVaults ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
RedisCache ASE sql archetype (#71) 2019-07-05 14:33:50 -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 ASE sql archetype (#71) 2019-07-05 14:33:50 -07:00
ServiceBus AKS Archetype (#96) 2019-08-23 22:48:47 -07:00
StorageAccounts/2.0 Jcotillo/ntier iaas fixes (#110) 2019-08-26 01:06:06 -07:00
StreamAnalytics/2.0 ASE sql archetype (#71) 2019-07-05 14:33:50 -07: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 Jcotillo/ntier iaas fixes (#110) 2019-08-26 01:06:06 -07:00
VirtualMachines/2.0 Jcotillo/ntier iaas fixes (#110) 2019-08-26 01:06:06 -07:00
VirtualNetwork/2.0 fixed unit test 2019-08-24 00:24:10 -07:00
VirtualNetworkGateway/2.0 added policy and rbac tests 2019-08-24 00:24:21 -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.