From 4cfec80407e3a43c4585b3ea16c4ddab4f0ed66e Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Wed, 1 Jun 2022 19:27:14 -0700 Subject: [PATCH 01/20] initial content adding from presentation --- docs/wiki/Personas.md | 53 ++++++++++++++++++ docs/wiki/media/Personas/ModuleDevelopers.png | Bin 0 -> 14591 bytes .../wiki/media/Personas/SolutionConsumers.png | Bin 0 -> 20475 bytes .../media/Personas/SolutionDevelopers.png | Bin 0 -> 17480 bytes 4 files changed, 53 insertions(+) create mode 100644 docs/wiki/Personas.md create mode 100644 docs/wiki/media/Personas/ModuleDevelopers.png create mode 100644 docs/wiki/media/Personas/SolutionConsumers.png create mode 100644 docs/wiki/media/Personas/SolutionDevelopers.png diff --git a/docs/wiki/Personas.md b/docs/wiki/Personas.md new file mode 100644 index 0000000000..01b4902ba8 --- /dev/null +++ b/docs/wiki/Personas.md @@ -0,0 +1,53 @@ +# CARML Personas + +## Solution Consumer + +![SolutionConsumers](./media/Personas/SolutionConsumers.png) + +### Activities + +- Clone or reference the multi-module solution (ex., AKS Landing Zone Accelerator) +- Understand the reference architecture, key decisions +- Update parameters to include organization and environment specific data +- Deploy the template + +### Benefits + +- Start with known good reference implementations +- Consume Microsoft and organization-specific guidance +- Improve time to value for workload administrators and users + + +## Solution Developer + +![SolutionDevelopers](./media/Personas/SolutionDevelopers.png) + +### Activities + +- Create (dev, integration test, publish) multi-module solutions for specific reference patterns (workloads, applications, environments) +- If necessary, can modify (dev, unit test, publish) existing modules to implement organization-specific standards + +### Benefits + +- Codify the reference pattern (guidance, decisions, governance) +- Focus on the reference pattern requirements. +- Can adopt the toolkit’s infra-as-code guidance. +- Simplify downstream usage by application/workload teams + + +## Module Developer + +![ModuleDevelopers](./media/Personas/ModuleDevelopers.png) + + +### Activities + +- Create, update modules for Azure resources. +- Incorporate new resource provider capabilities, and extensions +- Improve documentation +- Improve continuous integration +- Requires in depth knowledge of CARML, Bicep, ARM, DevOps and infra-as-code + +### Benefits + +- Contributes to building and maintaining a common code base. Particularly beneficial to customer that have an Enterprise or Distributed Operating model. diff --git a/docs/wiki/media/Personas/ModuleDevelopers.png b/docs/wiki/media/Personas/ModuleDevelopers.png new file mode 100644 index 0000000000000000000000000000000000000000..e949f4404f504791c191d47ba2a21ab7cfd2bfc4 GIT binary patch literal 14591 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
  • gNKq3J&(- z2)!NfH^lYA+^N-#-6GMqnga>E2(^tvQrzwSmHx8xGme%M5V`cQHNS&M6p`$^LM1pX z_MvS^CmTTp+57v~a4Oqot>z;Fi4mqH`?OxNk*E(ANIg4|>b6cQx&bo)0xfYnfP-d}fz|M#XulAMt4lae>xcp_|*Vke2 zzS@ko`f$@6tO?rD-M}7OU0x<<9Z&4Mx?AEbmZy4g#0ejKk88?Cs2_hi6ju2%Z6M7v z_{ND8iiZep714PO(%iQ4_BS)G#@ODbvy(`eQX{wQ|tT+;m zqWyjxw@XuM*jIofJpB1-xd9xPlaD`0MD?8eNDyIsP{ql8)_AyTRu4#11EOe~WL#{j zIaWYGlUj0RRhouc3hUY7z&1DXHh40`zE2<9P!;ULVz4`k_c^1D;q)BM5?ar`4KH~mmBZRCoVs__Pu|$ zJhb<+F)CI_Cg7pY$eQVH7~ zXL?eXz2vF76jJ@e4?1aA2}m;=^ji941g3pP!bc0#bk{jSAdq6cU36CT)i;O! zcJj2(9T(p{jXkGZU!5vFDTGFWG|0LO!$_sAVD%CtR=VvP~wbn*z z=gTCy6VmXGsL@lVhMOHs9BK0rDglq_8#uiA;L_};Pw_-`J+OXTJ!Y+09n%G`jQ~)J z#sjfqFCi*-203sVq_k1`78*o4xqWUmS$t0ZBWi_;ueInDDXCL8?}zW<h&=BDazSu{8<1!;X(SqxEruPlsx{;uqG+kY9u#Tck#%!8Tp4QrZ$ zW!IxNN1~g0$m8UYR?r$7LuL%X6W2y}i!LN>`WL^TtE>1CsFB=9?sQXI5i-__F|$kkugknK+~iPvF=Vz9 z_Z39ZuKF}D5J5s+n4fJJjzkv1_x=~IV3PJ;v93d@dCXxD^yRu*-S9Mt+v;lSggbgZ zrc+Oj``Aits2A9xX@eMva$>uOHVHK+&AWaEfj<1i#If9`98mjvSNf;db=c68felAj zcA8|qPvg~vuDGGd0CC6w)0T{ zzB81dZ#AIS#G!mfHQ*rem7!&~i0U4Q+0D8Bd2NPYVS!uX0q`6BHuzkiZ^N4(k_-L3 zuHFHjA2P;YBTiKnj8qrS@Ng!1Jzj$?7^xC z{>ZFsbM1~OE!Vp|B$ai?StDGyR1;8jD=-|2?(-_96|<=HwvWHvNvT#}f4XQ(9Lc+9 zn!0fsX-Z;)F~}NYQnbD;)7_&zV`fJMWSbh@KejZxwe!to3?s5k{&GD}K(ee1mpzav ze)|WDgT|Z{3j%3^%k9vWiruWJMt3DEs zgU7MCui*KNz$Sr7*T6g@pwBE6niZCpD?id}b<7T;r1WW8Jz+xYKo+Jm(7Uc%rgP{1 FzX3EO9~J-r literal 0 HcmV?d00001 diff --git a/docs/wiki/media/Personas/SolutionDevelopers.png b/docs/wiki/media/Personas/SolutionDevelopers.png new file mode 100644 index 0000000000000000000000000000000000000000..58fe2c87697c44d0a999feb7775b9d4ab13c5400 GIT binary patch literal 17480 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 Date: Mon, 6 Jun 2022 18:34:12 -0400 Subject: [PATCH 02/20] add persona text from strategy docx --- docs/wiki/Personas.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/wiki/Personas.md b/docs/wiki/Personas.md index 01b4902ba8..dddfb732b6 100644 --- a/docs/wiki/Personas.md +++ b/docs/wiki/Personas.md @@ -4,10 +4,16 @@ ![SolutionConsumers](./media/Personas/SolutionConsumers.png) +Indirect persona. User not necessarily Developer. Focus is on implementing an end-to-end solution. Versus building one. Can consume via registry, package, etc. Perhaps even via wizard or click to deploy button. Will need to understand the configuration data (parameters) required – and the optionals. Will need to understand the architecture and opinion. + +- This persona isn’t really consuming CARML directly. They are consuming CARML via another solution: +- Ex., AKS Landing Zone Accelerator +- Ex., internally developed (within Contoso) L3 patterns + ### Activities - Clone or reference the multi-module solution (ex., AKS Landing Zone Accelerator) -- Understand the reference architecture, key decisions +- Understand the reference architecture, key decisions - Update parameters to include organization and environment specific data - Deploy the template @@ -17,11 +23,18 @@ - Consume Microsoft and organization-specific guidance - Improve time to value for workload administrators and users - ## Solution Developer ![SolutionDevelopers](./media/Personas/SolutionDevelopers.png) +Developer not User. Focus is on using CARML to build end-to-end solutions. That are opinionated. That will be published for consumption by others. That will be used many times (many orgs, many teams, many environments/subs/lzs). Required to use the CARML library (public or org/customer specific implementation). Should develop a preference for registry (public, private). Might benefit the most from overcoming the learning curve – because the standardization and scale they can achieve with CARML. + +- Modules: Use existing to develop and test a multi-module solution (ex., a Landing Zone Accelerator, or an internal platform/workload team). Might lead to creating/updating modules. +- CI: Use CI to improve multi-module dev/test? Might lead to improving CI. +- Sample 1: A contrived multi-module solution (L3 patterns?) using modules that make sense together and deploy quickly but not necessarily a reference architecture +- Sample 2: The simplest reference architecture on Azure Architecture Center. +- Existing CARML solutions: links to real world uses (AKS, etc). These links provide examples of real world solutions using CARML. Vs the previous sample which illustrate how within the project. + ### Activities - Create (dev, integration test, publish) multi-module solutions for specific reference patterns (workloads, applications, environments) @@ -34,11 +47,16 @@ - Can adopt the toolkit’s infra-as-code guidance. - Simplify downstream usage by application/workload teams - ## Module Developer ![ModuleDevelopers](./media/Personas/ModuleDevelopers.png) +Developer not User. Focus is on CARML itself. Wants to add org/company specifics to the library (either via convention/parameters, or extensions, or CI). Wants to do so in a way that could contribute back upstream (into CARML for world). Is tasked with improving the library – for org/customer or world. Is tasked with helping the CARML Solution Developer (see next). + +- Modules: Create new. Update existing. +- CI: Improve CI +- Sample 1: A simple resource, with CARML extensions, deploys fast. +- Sample 2: A complex resource, with CARML extensions, child resources, “smart defaults”, PowerShell style “scenario” documentation ### Activities From e3108488dc72817e23ae1947051db79be95cdfa1 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Mon, 13 Jun 2022 22:54:13 -0700 Subject: [PATCH 03/20] update personas article --- docs/wiki/Logical Layers and Personas.md | 111 +++++++++++++++++++++++ docs/wiki/Personas.md | 71 --------------- docs/wiki/media/Personas/layers.png | Bin 0 -> 16967 bytes 3 files changed, 111 insertions(+), 71 deletions(-) create mode 100644 docs/wiki/Logical Layers and Personas.md delete mode 100644 docs/wiki/Personas.md create mode 100644 docs/wiki/media/Personas/layers.png diff --git a/docs/wiki/Logical Layers and Personas.md b/docs/wiki/Logical Layers and Personas.md new file mode 100644 index 0000000000..a11b615273 --- /dev/null +++ b/docs/wiki/Logical Layers and Personas.md @@ -0,0 +1,111 @@ +CARML can be represented as a key layer of a logical technology stack. This article provides an overview of the different personas using/interacting with the CARML repository and various layers if its technology stack. + +### _Navigation_ + +- [Logical layers](#logical-layers) +- [Personas](#personas) + - [Solution Consumer](#solution-consumer) + - [Typical Activities of a Solution Consumer](#typical-activities-of-a-solution-consumer) + - [How does a Solution Consumer benefit from CARML?](#how-does-a-solution-consumer-benefit-from-carml) + - [Solution Developer](#solution-developer) + - [Typical Activities of a Solution Developer](#typical-activities-of-a-solution-developer) + - [How does a Solution Developer benefit from CARML?](#how-does-a-solution-developer-benefit-from-carml) + - [Module Developer](#module-developer) + - [Typical Activities of a Module Developer](#typical-activities-of-a-module-developer) + - [How does a Module Developer benefit from CARML?](#how-does-a-module-developer-benefit-from-carml) + +# Logical layers + +This chapter explains how the different layers of the technology stack (see below) and the solutions developed based on it rely on each other. +![Layers](media/Personas/layers.png) + +In bottom-up order, the layers are: +- **Azure Resource Manager**: At the bottom, you can see the engine, powering Azure. This layer takes API level interactions and makes changes to or reads data from Azure's management plane. To directly interact with the ARM, one would need to learn and directly leverage its REST API. +- **Bicep**: Microsoft's new proprietary DSL (domain specific language). To build solutions based on Bicep, one would need to know all the relevant details of the DSL itself as well as all Azure resource types involved in the solution(s) to be developed. +- **CARML**: This module library offers a consistent code base of tested, reliable and ready-to-deploy Bicep modules. To build complex, multi-module solutions based on CARML, one would need to get familiar with the library, have a good understanding of Bicep, but wouldn't need to know all details of all Azure resources, or how to author feature-rich templates for deploying the resources required by the solution. +- **Solutions**: this layer represents a complex solution in Azure, that provides a meaningful functionality for its users. A solution can be something like an Azure Kubernetes Services (AKS) environment, that can host containers to run applications. In this model, to build a custom solution, one would need to be familiar with the modules provided by the CARML library. +- **Applications**: an application/workload run in a cloud environment, such as an AKS platform, etc. In case of application/workload, we can typically differentiate *administrators* and *end users*. + +# Personas + +In the context of CARML, we differentiate three personas: +- Solution Consumer +- Solution Developer +- Module Developer + +## Solution Consumer + +![SolutionConsumers](./media/Personas/SolutionConsumers.png) + +A ***Solution Consumer*** is an indirect persona. This person is rather a cloud administrator and not necessarily a developer. The focus of this persona is on **implementing and managing an end-to-end solution** (application/workload), rather than building one. A Solution Consumer can benefit from CARML's modules via a complex, multi-module solution that leverages a Bicep registry, a package, etc.; perhaps even a wizard or a click-to-deploy button. +This persona will need to understand the required and optional configuration data (parameters) and will need to understand the architecture and "opinion" behind the solution. + +- This persona isn’t consuming CARML directly, but is consuming CARML via a solution that relies on it: +- Ex., AKS Landing Zone Accelerator +- Ex., internally developed custom L3 patterns (i.e., Contoso's own solutions) + +> **Note**: Solution Consumers are not to be confused with end users. A solutions consumers are cloud administrators, deploying a complex solution and administering an application installed into such a cloud environment. An end user (also known as information worker) is someone who'll simply use an application hosted in the cloud for his/her work. + +### Typical Activities of a Solution Consumer + +- Clone or reference a multi-module solution (ex., AKS Landing Zone Accelerator). +- Understand the reference architecture, key decisions. +- Update parameters to include organization and environment specific data. +- Deploy the template(s) of the multi-module solution. + +### How does a Solution Consumer benefit from CARML? + +- Start with known good reference implementations. +- Consume Microsoft and organization-specific guidance. +- Improve time to value for workload administrators and users. + +## Solution Developer + +![SolutionDevelopers](./media/Personas/SolutionDevelopers.png) + +A ***Solution Developer*** is not a user. Their focus is on using CARML to **build end-to-end solutions** that are opinionated. These solutions will be published (publicly and/or privately) for consumption by others and will be used many times by many organizations/teams, in many environments/subscriptions/landing zones). +A Solution Developer uses the CARML library (its public or organization/customer specific implementation), with a chosen preference for using its modules via Bicep registry (public, private), or template specs, or direct reference or using Git submodules, etc. Solution Developers might benefit the most from overcoming the learning curve – because the standardization and scale they can achieve with CARML. + +- Modules: Use an existing code base to develop and test multi-module solutions (ex., a Landing Zone Accelerator, or an internal platform/workload team). This might also lead to creating/updating modules. +- CI: Use the provided CI environment to improve multi-module development and testing. This might also lead to improving CI. +- Sample 1: A contrived multi-module solution (L3 patterns) using modules that make sense together and deploy quickly but not necessarily a reference architecture +- Sample 2: The simplest reference architecture on [Azure Architecture Center](https://docs.microsoft.com/en-us/azure/architecture/). +- Existing CARML solutions (These links provide examples of real world solutions using CARML. Vs the previous sample which illustrate how within the project.): + - [AKS Landing Zone Accelerator](https://github.com/Azure/AKS-Landing-Zone-Accelerator) + - [AVD Landing Zone Accelerator](https://github.com/Azure/avdaccelerator) + + +### Typical Activities of a Solution Developer + +- Create (develop, run integration tests for and publish) multi-module solutions for specific reference patterns (workloads, applications, environments). +- If necessary, can modify (develop, run unit tests for and publish) existing modules to implement organization-specific standards - however, applying significant modifications or creating new modules, also qualifies this persona as [Module Developer](#module-developer). + +### How does a Solution Developer benefit from CARML? + +- Codify reference patterns (guidance, decisions, governance). +- Focus on the requirements of the reference patterns. +- Can adopt the toolkit’s infra-as-code guidance. +- Simplify downstream usage for application/workload teams. + +## Module Developer + +![ModuleDevelopers](./media/Personas/ModuleDevelopers.png) + +A ***Module Developer*** is not a user. Their focus is on CARML itself. A Module Developer is tasked with improving the library – for their organization/customer or the whole world (open source community). They might want to add organization/company specifics to the library (either via conventions, parameters, extensions, or CI-specific changes). They might also implement/improve generic things, in a way that could be contributed back upstream, into the CARML open source repository for the greater public. A Module Developer is tasked with helping the CARML Solution Developer (see next). + +- Modules: Create new. Update existing. +- CI: Improve CI. +- Sample 1: A simple resource, with CARML extensions, deploys fast. +- Sample 2: A complex resource, with CARML extensions, child resources, “smart defaults”, PowerShell style “scenario” documentation. + +### Typical Activities of a Module Developer + +- Create, update modules for Azure resources. +- Incorporate new resource providers or new capabilities, and extensions to existing resource providers. +- Improve the CARML repository's documentation. +- Improve continuous integration for testing/publishing CARML modules. +- Requires in depth knowledge of CARML, Bicep, ARM, DevOps and infra-as-code. + +### How does a Module Developer benefit from CARML? + +- Contributes to building and maintaining a common code base. Particularly beneficial to customer that have an Enterprise or Distributed Operating model. diff --git a/docs/wiki/Personas.md b/docs/wiki/Personas.md deleted file mode 100644 index dddfb732b6..0000000000 --- a/docs/wiki/Personas.md +++ /dev/null @@ -1,71 +0,0 @@ -# CARML Personas - -## Solution Consumer - -![SolutionConsumers](./media/Personas/SolutionConsumers.png) - -Indirect persona. User not necessarily Developer. Focus is on implementing an end-to-end solution. Versus building one. Can consume via registry, package, etc. Perhaps even via wizard or click to deploy button. Will need to understand the configuration data (parameters) required – and the optionals. Will need to understand the architecture and opinion. - -- This persona isn’t really consuming CARML directly. They are consuming CARML via another solution: -- Ex., AKS Landing Zone Accelerator -- Ex., internally developed (within Contoso) L3 patterns - -### Activities - -- Clone or reference the multi-module solution (ex., AKS Landing Zone Accelerator) -- Understand the reference architecture, key decisions -- Update parameters to include organization and environment specific data -- Deploy the template - -### Benefits - -- Start with known good reference implementations -- Consume Microsoft and organization-specific guidance -- Improve time to value for workload administrators and users - -## Solution Developer - -![SolutionDevelopers](./media/Personas/SolutionDevelopers.png) - -Developer not User. Focus is on using CARML to build end-to-end solutions. That are opinionated. That will be published for consumption by others. That will be used many times (many orgs, many teams, many environments/subs/lzs). Required to use the CARML library (public or org/customer specific implementation). Should develop a preference for registry (public, private). Might benefit the most from overcoming the learning curve – because the standardization and scale they can achieve with CARML. - -- Modules: Use existing to develop and test a multi-module solution (ex., a Landing Zone Accelerator, or an internal platform/workload team). Might lead to creating/updating modules. -- CI: Use CI to improve multi-module dev/test? Might lead to improving CI. -- Sample 1: A contrived multi-module solution (L3 patterns?) using modules that make sense together and deploy quickly but not necessarily a reference architecture -- Sample 2: The simplest reference architecture on Azure Architecture Center. -- Existing CARML solutions: links to real world uses (AKS, etc). These links provide examples of real world solutions using CARML. Vs the previous sample which illustrate how within the project. - -### Activities - -- Create (dev, integration test, publish) multi-module solutions for specific reference patterns (workloads, applications, environments) -- If necessary, can modify (dev, unit test, publish) existing modules to implement organization-specific standards - -### Benefits - -- Codify the reference pattern (guidance, decisions, governance) -- Focus on the reference pattern requirements. -- Can adopt the toolkit’s infra-as-code guidance. -- Simplify downstream usage by application/workload teams - -## Module Developer - -![ModuleDevelopers](./media/Personas/ModuleDevelopers.png) - -Developer not User. Focus is on CARML itself. Wants to add org/company specifics to the library (either via convention/parameters, or extensions, or CI). Wants to do so in a way that could contribute back upstream (into CARML for world). Is tasked with improving the library – for org/customer or world. Is tasked with helping the CARML Solution Developer (see next). - -- Modules: Create new. Update existing. -- CI: Improve CI -- Sample 1: A simple resource, with CARML extensions, deploys fast. -- Sample 2: A complex resource, with CARML extensions, child resources, “smart defaults”, PowerShell style “scenario” documentation - -### Activities - -- Create, update modules for Azure resources. -- Incorporate new resource provider capabilities, and extensions -- Improve documentation -- Improve continuous integration -- Requires in depth knowledge of CARML, Bicep, ARM, DevOps and infra-as-code - -### Benefits - -- Contributes to building and maintaining a common code base. Particularly beneficial to customer that have an Enterprise or Distributed Operating model. diff --git a/docs/wiki/media/Personas/layers.png b/docs/wiki/media/Personas/layers.png new file mode 100644 index 0000000000000000000000000000000000000000..4f381bfc31ba050aefb382bceb2591e20667d469 GIT binary patch literal 16967 zcmbunWmsG7wly3|3xy)ZTb$zV4h=2t#ocLfcZXud-MzRw6bbGQL4&op2A2YXH+`PH z&%5{j&X4yy=SPy2l{?p(xz}3vm~)IV6ZT0#5*?Kg6#xLBOG}9<0{{pc@JHawXYf7l zltHiHF9=S`k{JuHDs;}KjkL|5X{ zs-!4us?W;aoxStC8}JP3n?sbcsTN^S-c$#jt0n4|>c7(o56XVU3zfi4bN?Kg1f3x& zNl}U)=prOSoBZ88I(GE1?8kQG3nX0P99{bDbUkJ_k?Hhhp|QD{HVxu_YVM{epr%5d z%osSHFR_zaGB!pL3#4IaQpN3Il6yLSoFLm-c)U!xiov#~hSQpc*m~J}NszI;exH)@ijl~;r7rILayJLK?tbvxKx~JO!fA}cPtKeJ zIg%LXsa#JhRw z-X-uGex#MtXwm)g(`rSb$Wn2t!@^X7$26LMD<({C#~&q&P0y{4;cPou6A-eJqDGca zLNb(T{db&cV+c5RHedkY=j)g7=jaeNbihyZ|KVmRQPHZ2XqH!g0BP+@LmU|l)!2=o z{cKyu31_H_SKoQwnb_VE5wR8a=)~NX-aCGtEgOPSLLoGgU_^Q}8HM+s+!^GQdKz}` zE03PkF)evxUnLR)ti)e}kB#i4;x~qIg%2Tp5usujn3F${zQf9m-)5pwBX>pj^fug& zJJ~9aNUkMq#^bh{J5wU%2E-#8%61#I?vItD$2ZU^R#oZA%P0r#$~SxqAfe+2T;mcJ zEl+xR$8&+mWt9&`{gF3Q%HztrSRY(w`kiY|hPKibPJfBFeUG2@7$`DPv+ z=O#S;DA3A~d^Ck5o4Z9^QO6*ZRMf@B4AlXq7Qb?e>uaF;J&`rdA2DPm^k&b>MRs`h z^1Bcy^}G@3OK7`d1kg&D0As>+F1`$3TDl3l^>x8^V5VlJZiaX7PjN661ZatOn&`Ji$1&*I`ZnD&}30u=eO`S z9jNv^QL@Cu1KHe%DstMJet1aQ>RtTgZ%QN2mOJ#TV5{x4f`>Hg45O(?%Jv7+5U#AB zEAlJqT|kn~uTr5G!TZ@44Y~FA>PGS7p^Jxa+Y_ZCYEOljH!MmY-IlZpD7hbPjTOdZ zXDp3_GJC}we;*G$67JxeFC>iD>Vg+kvu@k(T!SE@IVLVSg>7YMnY!|<;UxqYjOU>{ zr`+cbrv3RyH#6I!q%;2UPO&2ur>eOhd$`Ch8K64B9%=Z-S14UF(v}asFel}oK9T}F zCI^nE^o&Ml8CLgZVtSco2J`OwBH(DkEzl{@9~^=cz|G_#^{vp zmO85q`=uP(7q^pBV%M8EVCnl;9A`1TMxPup)V1)k!xQ~dcWx@T`o3Aw-qr0u@fxhv z_7brexTT47OxmAlXYp2uX4IoM8ZIR5T3hIq?X5D(%C-YUhv`*c5M+-e+NIi_W5nOj zZ#fRy&sJv{A3^8Jq249vdn@*H?<<$FRIxOJCrZK+V(2HTh^j`~pCnbI*EUGBN*4)X zHwU2=fplKsLl^>$pB%$;m0u|qj&RCde5i)d00Vf}K8JLlJLd8-sINSz(`;JT4(WeY zjkb*f&OFWxK#3|-IqC}fp5vv(e)rb*~L@JM9G*XIrdKb2jJqzEoHe);=f{a3~ zs^PCv!{0#`X~KQm7>)6Q>e}%SSS}}G+Z0P1gke#vMdsrr-SRZ? zE@%DQYjNh9+(+~-+v&uL@m!?oUX@UH<@q8l`P=@omG|ibn^v#O9Vh5C5;NbGHT0+q z>w0;48LM}5vr+DlN2#jaqH)j?aSRfl4~o$^bxCzl3d5Ih5pp?103Trw7r;NC;(xul zAGD7w*j7wdj{hn*WQ;vvj6L)r-~kRr_sea&8Hat(*w$z*c}RucasC^c2pF|OP3Pbk z3Liiv>bg|DLhe-eH`tkSAj`qOe_&FT<8vdul0^^ONJ>`WRx?HVH!$mbb=J^!ccb^D zsZ#m0Aaij@cAF#Mqs&C^G#ksm1IKT!G(?F@zq;ffoghX#>l+Z6f##BwcMG+CB~{cF z?F8>aRL3K;a=fKt3Crye@n1lQk}!s#7h;rt?`c&$vRx*q6{eL2S@SW6aL0^&*m?8e zF|}rlc&g?P@Y(;El0f<=2!0_c;w2SoZ4N%$t(p81Co&vhO^4^fW|i@{49fzJRm1jK z56NhutNOBG8hINYIVB#Y+p`ynbFi)DsPzhA7JW65VFb$LVC1^DA^VM2#|yp}`-7u5 zeHt_TVzhO?%sXrF1X`k^G#{^f+CiJe? zV7$uq_~=|bk+?=t#l7pBLh7TZ)h;Bfy6>5P5^(Kq13?h{$&p+mtp}0DxyLzaG#C|Y z(M>RIBj(}zmPi#x@L%VoH9-yUUJWf4*%7Sm6M6kC?;js&#$+G?{6&NQH)+AYWE0zD zMP99fHxhz3t-{7j^egaeLDr~Q^VzP0>ac~~D<Se}Y~=`xt*@!59uQSU!;0Y%LF zbri^Qdt9EOL7?VyNk@fYhlE!H)+vJvCA zjX{(@bpQH-G>1x_HP+J#o{K0?tyX7GLhCNX;8PW1?h?lRw%E%enn-xd$*1ouhKw3QE zN?uhiR0{2${+GD`Ds^$`yy7GEl~2dZ&z0W2&KW5fg^R3%=g1LT(8g_&RcLNVa@ea3 z5G7|p6H#_}aAZ4(y#&ed>O zXBZnD$l5$e99wyIyqz*JTXy1lTpW}?v_xGzjPn*%Vd~67$uB6#z2xO*c;Y5RahGHE z^=9rHeV4)PTciv*ABG)Vb>5V|%&)LSdtCk>TT{qb$cT9%vs@%Op>Om){K2Jrbw}gA zMjW4|Jt$sREp>60E6~$>_|H=OCNP*mjz46d=7hY(PM*aLO%etP1LFQ{oU`Z^1TXO5 z#o)cE$-&MXE2Rz{*n0)NHLft>%d=b!8TkZXR4_fG)^)**cNGioz1~!;UAz*mo|?G4 zU6rpLTT(=kj1rYqNVsVxSeY>%0~UI}#$u5A9c=M_kK4uN!_$EMxhM~+j3CWzA? zqyv6q^9veHjhSyvSW~_-eA>j?j<}N$kzj^4wsEox`4NpsD7p*TlRQgIwFeE7U`oid zIB3@l9qc2A<3MywUqcM$BK(jMDzXz!Q4Nm@WI=CdGER?W@p4ys8uon{i=S>!l1k}d z0tHBlB}tV=ao2N~hgr4PDm_>mxAB|T+3*Md9ZZA9geuj4cNEsu-k@TJ?VCZpkgDZ7Ul`((O0i=23;2NGzgApU4r-{~$q3Q1&&eQxIuEvi zZI}i^DtrltBcX)B6F&bq9BnK`;Vbk+!Kpt>FWa~es8MCxaV|?t{i}?n*G=C34~#@& zHe)S!k=}Q3Z0`E?k?7q&aXQ^4bBZw-GS2T=rTF_P9RQnTcZgrvuu-$K^>&U3xATbOaZm-qiR2fXq%zbBB9Z4_BBBCaKU*)@PC&eQbX! z*%BGVE`%Rha%a2!dMpHGGlYVIg6)(_v~mks6+Ig4fG&hZ$WrBd39n(PRNu>&h<<8J zkRk*?7sYG%GcmdmA)ssef4s?x03c*sxtAfTZsggP=P071B&(NH>e0cH;xjpNChq7C{|iLI*UuH$B>`v>(oD)E4M& zqK>rWDZE11d}g^kQX~R#2!uM2=(FXf!`c^rV(6WcevJC@2c(>}xvcFjBtpLWpc`Y2 zd~(U!JrRmoSWwjfpG*|*Ma*$uU15}9CA^k*jXqw+|8O03w6vN1%<}LhSTcf^V{s!v z8Jv<|74Y`SK2ZUYvnp=!)>wv$U*vcfTj_shAbYw#$`BeXk4=qL2(!QpW2}gKRg;g9-Vb#XORpOGd))#i66jZ@ zY`8r8CLWJEQ@GiSaWG#DKq|Dmc1@^6Zmgi3xkukZ_6Dt8M=U%EEr9t^ZqOK*;fa|Y z^$|!*@#^du3ky8D5pQE5dTDg#dQo)*x6WdAZV+7pJxhyEB{NQ7w^W9da%`J(7TDD6 z8&!ruVs-kgk<&_!NGcEeec`1#p^%TBIK+wXplN!O%s)hGMNU}o%}0#R0j?ZryQ!co(w zs*!S!0cp{r9HlcMt>J7kp0@8l%zNz9RJIP-&3JIUT`+Z8CHqIc4U|&}2{jX_0&|D5 zcpk4xh1wkj=F@KQawzlaAo_0l@-UN`)(4HW&Wy3CLqrem z1qZ)57q0nTl0vMa7*c`gug`z{psIz?q0E!YpITyiiEefFrxq1E*uEdw$TB-M44vAp z1;Q(BMDd+>VHW2GfxF|q#1ZHdA55yh%{6=-Md}IzqRhEi+mjx*=ht!vV!Y0qo>#9~ z)lT8XJy~1QEDo4=4SXevyg3~}f9TyV`5rzARMdBoilR1gB5A2e_5OQe3OO=8deRE7{cjd->xM=9T_k*>kE@aU7&`i^y4X(00~Ys) z+oqw&R?{!*)@{d#0zKSJ@B>pKWP|oBTLXjp%%2(EmB`8~#7W72!DyvN>|!^k+oDWx zvgKt#pTCj%cqxD~ovxlDL@t*SIQ#;V{Zl2XtO|XPXOm~{Zn)Db!^!*XC!dX9?#k)) z%d0NlK=%0}wd0=YH+rm=(=S5JQH@%?`<6;9l{-5=A{+j=*B>UmXKKv3xxH2)w7N2v zG^jx)zfg{ZA=J>q-h`R^&BNkj4$=puQd#x_aB#dek;~TztPuaY!}wlXI9Yi;r3=Ne zU?Zq#5cKh(va@{W&i$=iaNPv(A{QqO`<5u6zECwYJ#|2XTZ`gzpxqw*^%_|uD(J&C zNW#+i+v)_&*%~*W!;)0Pg{dycJ9Ev`=(u0vmYe*f)~)r=cV6rb#*1MhO3@E>C{I_P z2`%St`OpddLWgMNI^-H-VF*)(Sx!fJA_2l=Qh}Fu8sUqw3=JFnZ>~=%#CP34t|jU{ zYo7~-=2gj&nX$lQh;Iq*yL|^cSC)3XCtOUF>nBL@lKk?Jj=FEz1N?{_P!kFh%2UUb z=JyevH`{UYps^h-3nU{+r9nejqHpMldRWO*5<9u>a!vLgdN$#~^w zdGA#F!5DJ_&>V9_9>s0`SD^IY!J2c=Wnk7S_|nW6&chF_t*zCXlyDz_hg1GppaVpP z-E&Ho+)uxa#j<6c*kvSEmX$F))-(T0jSe3Z`>B4^7Z|QusF=yut&d2NKmq^!F7?oC z-3R-a6!6Ki)4gz8RUR*=y0TKdEmT=gFKcxB9p_z|BSa5&U*%U(Dv^vJQu=U*{8+4z zgZnC8?BmQnxY)z+tDW~Ik(%1Zv!bVj#y;4wo`*@>3GB9KL}FtU8>TJ*P|f_m8C2MG zBdr+Kh7=!Ubrs}xvUYuaoiEui-Z~R|AGSFdlOx~~-nTb~H_9gGWMFq3+u%a0riB8C zZJxb`ih_TcQYk0AR7;z)#EwOg-;5E5C!+qn!SiPSm6RT`fokhr>~=de0RaCQHq@ps zHekQywTIr_rxQg#ox9sn!De3dzH$KI(=+{>v=mamyWimTyW#bx7`yBeg6j03{YGSi zPS?#R?}s@veI631z*~NT}DS8N5mU+fW0R4{q1r!Hks|QZGuM@8|=#UAibR&o)P_IdpNVb?4}H4 z)7usZDdU2tiLIbV4;yaS1P+|W*U(FlstkimFnnk_ZOd~Nuckd$xZsC*_n(RL|0fau ze;F{8;dZorbE8jmfE5wE7ukOOxHby3C5Wh*3^0Pgr)qO(v~z_rCoR>t1^2;W^6`YX z?DDx*x?!>A{6@c&Fz8`)h%-y8kRstc#RO?t*-$)OuIzY6!xUVuEGNr~8O80@zaCM< z`O$51Vw&XJ4uxmIBrc3CqTgug1#)E4q*T48fbIk;_;_4YwmNE}<5Z#~+jLUKJ4&XslT*VB7M%1|D$p<#7FA=o$q48Vg zezhmTN}EwkoG43WFhc4^SI+j!~BPxtBhielysjIoK2(DB!QNUvl7M=PE_$8p< zp*}5JDEB|r2l6{Ja9H_1O)Mo@(QF;V!}&#H*GZ6qmf!cmQ7+Y%G+kI$hBQk3*D_~% zy_>BMO@))pg}sLf)g60jK*$8dc1}BIKPDbiq#2`w10)mpm@DmV{itLB!ZiSWSorjA z%N_XLYtQPg*wMP|&^y$7zWhl&{1uYObj6dcX_8nN8L4M)if9j4+Y6ex@|Y0X+yh zM@>A}`ezdJon<*u`VgnwwdXDIjX+VikX01vj{5wE>LMHN4bnZt^Dv8jyN?vjy{10X z`+awyIxfzn!S_v1d52$8d_9TM4AX|2Tm^4dXu{*m(X4P3X}$dDQ&%x_jOst_tL*wi zy&CT;1nIhNd$+BRsLGj1?&K>edz=+vx11W4F6E;X_xzKp2L zb4h2*$e(ab3F5CNfp`%g744lrf?1>~Z}<9^2z;&>!R5R|VpUHK;3Ry(xIRs@t7Zw~4r!H-;nGC~bIHw5aJ!c#dfZ?P?LRH_m>I(4NwWF{M_M%Ny zMe{yjFH_e6D>T%z;>9G=)82P1A6_mRRPu(=4D2&=bbp~y!EeiQvL#^EkRD07x5&6{ z-gpkq9@5^+A-^agjAI7sW(e|MAXGMxoXguZ z-afH;AT~@@c)P~1Lh235x20^aL(`@3ZrzNsEYr1pTBG{uATu;^ym#h|BPTnFyCSd{ zkJ{A?1pWgy_HBtjD z{6^6a0*Wd86hwT4VG&#s?+M;t)FzFo&kU;%u0=!Lh+-Kq>D!zbxq79US)H5sJMOBD zM&pRC6n|S(pVVpMj`4JFd8V>nbH_z`3MVKv1l}?6r}?dPyc6IT!zhngHD94MieKZx zvHrqgR=do<G0UcnX|pvpsS3gSL8Id{rqDS zgIPb>CvOWB9xr1`;zg6Tp-L+?G?Yh4v59NLq^+$%mNG|k&NsF%SQfc)qcegLxx1IE zIG#;K!!1}8Yvl<)<;7Z1SB&tKawK}3?~MBNgPY?#u&~xZOPHG-I7_J`#aaU#Mx8F4 zqo9$^^u9vZ)zKEz2l~XrM=J*$KA7b>`!#cLJ)ZPr8n}pt^l5?j{#I;fVg2yde34Ir zlkrIg`IuhN!$Zvz29h0#!XJ;oxwkQ`&4$I>>aY07oqPO?x-P$oMXTWA=eqZc|vtZg_q#4%!6rMJ1zAP9)YV1 zf-9s?>wATWwZmLp5^|k+wgWST$H}?B@9LJ6CaHKq=6qj)`j^vT1Z#U%p3{o@nu^T}#c95p{Ln4XWTP7z@&s0+h3o#PQ6^F~4IL@d znB3*(Kvztb=_jm+S$SCUs?~QLWub$fkh^3yZF*9>FpQgOs!LX+!zaDVi03C-GZ~LM z1#~)L!+VPR31S7ewa|P}%DB}?OVPT9MVju+rj6gu?vd*SNdNkX2>6+0S|%y}D)h4( ztrq9%FGn%B;H8N_`B+#;L?*!DVB@!ed6I@HNq`O)X%Mqo5^eKjZ=@c|9o$wZILuj% zvs?z^vex@5bV0(z(FgKnp^=W3@f;>AGiEJe4;WxnpZLAvEgo6bj?2yj5sKzZ{?Cr| zxa=A(Dwar1$vf_9f|McdSH1-YgukMuweQH(-wT!=%kyham}l%L-cLopFHfLaz0DtPh${UUSJ=d%H?Y>Mj_9bsU-m zRyepWB4#UgrcjUoR}Of_P)z-TZpaK(7cy$h`GDVg57lo24u(r^XV4;wFiEEl4bb8~ z8nO-D*@wjewALR#465!&<0(lsA4GoPuJ`o%Dw-yUy(#~o>9nv>ZinSWb9?dZATc?E zZi@}w-7B3NQ|t}!Ol(QM+RHpSEfaZkg~hlk9DHyzsV2yT)KrG+-9GN~LGAGQQW^@6 zJ~@cA&-tlR5lQ2^^aD)$QY?!XlFkX!L z^_i}Y-wF2b6d-xW;~Cza(mp%kc?CDlW7~S=_BTg`JQAgL(V;I5R<{@vg zIll*o80(WY*PDAQp3zIBG(*k=Cqu#Jh?H_?)fHJP*Bj7-@A}=y<=t*O6uXm?XKl6` zBQBWa6A1(yI@hu@+mjbrU)q^^b;6o8UeLnsEBTH!oNAsd8J1;w<(%N}M4qXf z@dX<;o#X1w#iKyR_%7+i`=ICntGg@@vS|wZB4*OeA4&Bc`M*S=W0Lqd?H{wifk$cG zereJVd0g{;yHDSmI%;h=cEKaJz<_w_wN`pJt%L$7L(;-ibI4WUe!TZ&+SNe3BrSLFF91qNP^bN|m?;05Uq zb=8Vj&F=Y<02%)%wwCEbf3NpJ`>5TWG|Rq{=B497z!r)n_o0_R?Q5`TX!J&qQEb4U zD?Q9lD!8)t*(IIWy5hbz?aQ2c=w7B)%dNi^iA3TH{{&Y8?dfLW3~Myt|D~MxryKyU zZw%e;FVD1V;nuNG8Ctn@zsu7H-p3D206>?~Y3ro*k#*eLKh+IvQ8oq$r~2V#P%K|N z`;3US4R%aE55X1>m4ckCSb>%mgSmnS)7CH$_sOmH?G;qIzst(f$l zCTHR4oyx{ze&~5`^*z2{{ppn-wX)TQ8UR3-Hjq#}>99fil zNy^LdOA!FM&dM>QLMyA&4g5NPej=alzj~wosRdt2!6O&3c=JN1zG=U6b^Ukm10?6M z?$Kdm?YJ?~9S=@ycl{?n|LAVs%LZ!dfI;lu!`y#oYr^YO#A!`GruE6?JrgEcrlq{C*<;V?66thKr0q29|3?dx_TAbnXb1AS)#rW zFuFUe%(8Opz=pf_?B6`PA4VWc7`2XUe^es`{Ip;F;|GHa9sjU^QN!X@_)!0-u77*9 zqNmpIHNWS`Isge33x*hvnV5NGUOmAK|y_>hRCI=5W&S@-?>8Mlj__3%@R!r{se3&K#1mcx-hEMoaqzf=qdZ z6!*}aNnw`?ifEwxr{9M)n)550G`4Vz1Tum zWU631d``MMkRW^|6;Vy0f%OC{;1si-iw!);qafi+X~z@)B82JHwH?^8cudR+NV$P^ z@0kAcePA2y5lQ>cv$H}|%R5NrX?q=3S|xwW3VUWOr2RzK8s$uFzhG?O2Iy5igx+X& zglA_^Zr&WmI3{sphfd1nXxnKfGps6*#k_ z*1;gN^)T0FEp4E{xRBHy_!^Ux~q;u7sn*zDzY zNt7%Ly;{TL5JTBLfw%Iuhr(D9&Nppr$x-9=V6#E|SsyWUW*ma8wYWWBl4K3hIu!=) zxjSj*BWRH(t`L^GiVE3_<*Jeb)4iesN)Kr+uOqZF0Hp32 zS#`;N?iJUeAp{#iolRf4x0O>8HM<8NkXXf6YR?J#><%4I$kDtt@Z0;|?6X$0kl6gf z!m&dVXV!YVWgL?|YpjN?q;iDIX=q1VXDE0p-l#Bj)L~oV$oIJ`$BOUU(cmjm$hxfn z_$brobAd6^R-Bc)hP~a;!L&aQEA!h3_Rftlik%(s_=~jX_k}@HwU5$-{e7=2z$r;D z5;KRxnyV9d4+>Tmq)zrypbQJF?{Jr@?qm`U{M@v_KW$^D&0y36DnvV z@RuSznSQQ3D?OA}E|-i8D1D^AnwBnQ*oQREH(j04vNXyC*~ zWJ=3dm0={*OgLqbegAAkC+47@4L?a~zph6$St@SWLXUUcualy}-^TL3KBnHa3^eO; z-gBPxxRcJfT&;axdWKn#JvQ1fl~bx#t@}t`9wpu}jH;88ovDJ%FfrVnNJO zIY1WcEu07Pb_25xzf|y%H+dHle~D`U;rI!m**qtjZvHFbEa)!rsOj!YA6+Mg$WBKC z**i?~A`ooQwfhAoZG68a2j{&O*K5g&=@RHYPN`imr$vZ#wS%XAw++X$tw9PD(4m}&8Ig@l{H*l+9smTTBamxYR zGYXADqHWc_(-!tU?;*6hWJ+rps?>+z@28Rf2I59G?Dtb13N`h-z5T5=>`cl)E_3+s{&Yokc|B zgH`b!>U-4=;`~r8TCs}&{lZCjdlCqvm zil$uO(cb~+sw5;dqMSVT`8FS%2N2itZ~#8L|I8#mmosLr0$KWVvo9}cNHEaKf%CvP zmCk@(>P@5%)38;-DYRa=+|@(Y3dvtynPj3T6iFXjXOGKDI$<#f%sFeo&@v zf?k>)3ZVrSfYzK<(;RW+j}FsjBQYtuT5aWcvk=!*kAFY{k?YEs$ z26Xiw+-gZM6 z+HrC7LEK}$@4Y8|>u+^DY%fF`n9zdhytn%wUpms6c%u<7d&F@JDYJmBCf|E`rFt## zJpEkMES;ST_P*%$7-{8M{dpZ0##FEoQ5%gg{#rq}9Odby&COO!P_VXe2OJj9D`Bic z`6$MlBhN20f>XTaCX1XjioSyuK0DGXBuuYi!b~mO?HLcrXaC`y1n$sSy{biaeZT_Y zqpgbmP{8O+-F#Yltikd<+AHY)91qgyBa@~0%Q+c79<053M&%PpeP65mf5Ug*7JvE^ z{sp^>%$>cAt4xMhs>z?oH3NTK6QRa5)jcR+(i$4rc6AuM%dtg&{Fyo7M&lpWb54x5 z@2fJ1Fl5(uq_^z|JyM%-^CaeeP!hQlsdPv9Id$s5;X1fLpy<2&`Gld~E=4TWwPd(- zu|aiWva?628~G)k1+f{%`7(=_Mi{A#0M|=!G<7KJsIpbpf$SzAyq|Oacut5Vk(9jP z=?YO?dF*&X{CicPZ6-Z`gM7+Mh%_eYdAmqEb7~W(T(ymia;1THHSh6M{TX_fhhW7q zDS|mX38(&zO=24te(?*ROFjGpE_HNLXyYm+;vaWS=tsEB^z)_2zxi;6cEV~{Gn#Lu zdHfLr*wBCGtzU7L{a(G?Ffv#SIXj8v4YHt$dJ_U&sA zg`8+Mq_-P1t#A$Fd!UsP7^WgD&1jc3ja%Dn^V*xNpp%sU;nnj%z}GhY2ZLNPywUUk|#}WbGbK>m>~bT&yby zx=Hxd0Ons8Q5d)_RYNawKFEZV{p$2gVJ?dM#GPl^;u?bvx4gT1D~A^rcXng7zD}L9 zYCsPPtk+}qr3WP;DH;%RHxo@0}c zT;;BfdSOfde8fJnFy;>V`{fPPna~Cf?NsObPi*%#PruSIt`R-+A{t!B8bd)8b^C`( zDN;Bt=wg!ieFnjQneVJ4_PI6)Ud{nyEu(Y|pXDJnwII}9n1&p+Pn0=h>OQbFT{nXP zOz;UG=K7JsVilrTa97L)lpOZEorXE*Yfhwg6nR$P(nH}U#QoG;;&MLL>BW?|bX_$T zve3>&wW_nxs&89Cv{dG~EY5Zu)W#_k< zRqzgp2~ZNmMWx+bZ~6p4w&MC^n53fIiDBNMq%Xf4Dzt;Y7gHi*W_iqubCXFMpn1Z0 zu>0BbY^q}9w2R(Py&lb zg6e8hdD(aE)ONB$zkh+v`;z5TJSNQXKj2$3G)X*x?kEmJ$Fkqm!E&yYd5aJ=MN>l% zRqmYwQ&oN*qXbiOAL=+yef!dv@qLs%e>VwVxjbrjCT|eZ{mO^05LBx^hOqU_h%mg% zj1getE0K|xL^-n}ygE69h5Ot7rokdRV!9LU5>#l30{6bkHN-z{W6hy8@mimw4vMQZPjh~MYWQvX?G5)dp(Y`!SZg3w{h-9{q9Fb3+%PtB@?I}}#-_E1 zGwCw|xDD1=%@o|u8-vk_<7f64OvJE*`X`oHc)pm3WsRj1e?hFWcy()TA7&c|l$FNl z{z8(r%1gD)sD*e17=vF;M(Q|^qg=}OgnM=$WsB7MTcjFHfVGm^y6|=nJuJU5wSy6E z{%qXxcNx*NpI6tvcW~exgIHvl-r5`*0=2RxQ+~x!l7vOo)6)7lN01r>-Xd7*SXl{N zSO(&DwtVTtBl7QMjSy`)7n6bs{Hd1gKbjuxLo;(@Xm(tJ{bd?M4e*iq$mQ3%)upxN z$R$Kc{~>k9s71U0(7hqjd3U4mS-9_|VW2{4M<>XuqeX!UAQG^+h;6e@K0E zo9}KpZ;`Fd@lkjRoR7%;BW^c;MQ@~y?B#Os^U_#bgn9uxYU<){9cA0$opjV-O}`Cq zr`5f~bh$>cy_4wOMZVXqNjau3s zPvNG$2Y&lMlJxvUqoBdxTC-pKRX<`rT#|OoV}PsIKWu4L9y}cW;uKH~HW1)@np|DW zW2RZe4juj&=)e7sy?6g^bC7?MY|=&KG{!&$gID>d8KfiF7ZRED1vvh$)@#YBRKUDA zDeulRHIWMCq6-Hk;Z0!=;*{A#=Hz0J!1&LIa9e~q?Qep{{rGe5oIdmKbKqY1{`k@# zsZ^!i@Io_{1eN$#FaJxZ#$;Q6MZk4U%78h5=yj3ox14aQu4(sG8hs(lt+ihz26BJQ zbbRRZ*1o0&F*gK zJ2aMGqpm9f_jIk7n^UeS?!ya zJkM*B&&64sL;a!IN3klZqDXhUI0X@NH#w9PS)q55UzsdnK`HIpc=S!tTkV7PZMj~bvSzZy-wC>JnqW`QS&od zA>jV8wm}L_^-*Qi)`MYgjHyyQZGv}Yz!Jp?cwgq{Q{n_+Ty?->ApS|As?1}#tGu9jvD64>| ztcJq4o>abdPJOkEZdd#JF|%~MgK@#q{*O$VFiO(PzP)ee1k0%dkhH#;YU1W(`gYii zIHu)1s5L$LIzdD$l6Z3m2U5mZEn{}9jPItH;Z`B|I!|K|ZWnD$p>x^)zDSaRQQ!D> z$6H;}!FI{mCo&c>XdnA$Wpe@PNSjt)A1Oa4p~xzJ?ye%dwa`1G0R0D|*HBOs>t+`UOHAL^}uXJYQQZ6_+)j?$chz5$N0vG?_g80*&G3H-|!?xyD@5L^6N#0;VMLODeYO6BOx8cs`!|Ret|Sppxr4 z%XxB%8Z#`lxNCkCgSwkaHg;0I=~tVwptOU$y}hf?ZK$E|*6hNxB4N*Enhr`A{{MZHYECc~e! zf)#x6iQvxrkz*3k?jX|arm(fE=kl5P35|UjUt@(>wz<-4{Z~vuI=AIMrj%JFx<^et z52^PR1`i`JLN}J2;3c@fznrbK90@b^>{r7*34HZjucO(=$j5U3PAe%q`yn#Cp4w+U z3+5d1hZW!+8-;A)cGA9w?(KDn4j@5wrZzoaHa)-+FpTJS|IOWzkCL>}Pt5-i?N_F56%)NyC3 z+H27tJNIMDw^;DClH$JOB(l&nIPkhX4v7BZuTp-LYku)vsHD5>i(`3hV@9)>!WXpK zR^st1Lq-Cb{NPI?D;T_}Uz(mMr0{j7DlE#9tOz3g@`W1C9C$}wf2-p!F@O8LnYjuc zohXIyYfv5&YI~7l6C+3X`x9_0{{)iQ?!+2I9mfu=p}C$rq$qGS3VSh_ zO-~N4xUKk}080Z;?`6nJEgLP1VGeZ{wb7%aN9>%uFq|k`B|oarXeLL7J4xfsBML4u zotA0}JOf>5^M%In~)=GHieL?*R2)+Fg1w0NTrfW|Ee4V1OH)hPkSBFkKWp_Dzg7}ZS7 zi(GbXv^9}PSByVO7%?im>h`Au{Qu}UkcT@i7MFx!nvH*)h@yo!MJIMA*>+Vpe+fA4 zinG>2?qXlyoqDUoWhvSUe`jD+7$ za9;KB>5u+&umC&-y4+FyLk+vGYOh_r@%1+PObP!RfWH)~qT0v4-#e|-3!UP|&c`U) zNi=A^TsK$q3Q41CZpsCJ5>aWJllQZcjR^%$n4t5M=Q2dh;cx{HAT6#SR`t>F>;D0j Cv2@Y^ literal 0 HcmV?d00001 From 6b1053cf9a3483ea1cd675484fd86b157ea02d89 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Mon, 20 Jun 2022 18:06:44 -0700 Subject: [PATCH 04/20] Merge branch 'main' into users/mabara/1460 --- .../modulePipelines/ms.aad.domainservices.yml | 2 +- .../ms.analysisservices.servers.yml | 2 +- .../ms.apimanagement.service.yml | 2 +- ...s.appconfiguration.configurationstores.yml | 2 +- .../ms.authorization.locks.yml | 55 ++ .../ms.authorization.policyassignments.yml | 2 +- .../ms.authorization.policydefinitions.yml | 2 +- .../ms.authorization.policyexemptions.yml | 2 +- .../ms.authorization.policysetdefinitions.yml | 2 +- .../ms.authorization.roleassignments.yml | 2 +- .../ms.authorization.roledefinitions.yml | 2 +- .../ms.automation.automationaccounts.yml | 2 +- .../ms.batch.batchaccounts.yml | 2 +- .../ms.cognitiveservices.accounts.yml | 2 +- .../ms.compute.availabilitysets.yml | 2 +- .../ms.compute.diskencryptionsets.yml | 2 +- .../modulePipelines/ms.compute.disks.yml | 2 +- .../modulePipelines/ms.compute.galleries.yml | 2 +- .../modulePipelines/ms.compute.images.yml | 2 +- .../ms.compute.proximityplacementgroups.yml | 2 +- .../ms.compute.virtualmachines.yml | 2 +- .../ms.compute.virtualmachinescalesets.yml | 2 +- .../ms.consumption.budgets.yml | 2 +- .../ms.containerinstance.containergroups.yml | 2 +- .../ms.containerregistry.registries.yml | 2 +- .../ms.containerservice.managedclusters.yml | 2 +- .../ms.databricks.workspaces.yml | 2 +- .../ms.datafactory.factories.yml | 2 +- .../ms.dataprotection.backupvaults.yml | 55 ++ ...esktopvirtualization.applicationgroups.yml | 2 +- .../ms.desktopvirtualization.hostpools.yml | 2 +- .../ms.desktopvirtualization.scalingplans.yml | 2 +- .../ms.desktopvirtualization.workspaces.yml | 2 +- .../ms.documentdb.databaseaccounts.yml | 2 +- .../ms.eventgrid.systemtopics.yml | 2 +- .../modulePipelines/ms.eventgrid.topics.yml | 2 +- .../ms.eventhub.namespaces.yml | 2 +- .../ms.healthbot.healthbots.yml | 2 +- .../ms.insights.actiongroups.yml | 2 +- .../ms.insights.activitylogalerts.yml | 2 +- .../ms.insights.components.yml | 2 +- .../ms.insights.diagnosticsettings.yml | 2 +- .../ms.insights.metricalerts.yml | 2 +- .../ms.insights.privatelinkscopes.yml | 2 +- .../ms.insights.scheduledqueryrules.yml | 2 +- .../modulePipelines/ms.keyvault.vaults.yml | 2 +- .../ms.kubernetesconfiguration.extensions.yml | 2 +- ...rnetesconfiguration.fluxconfigurations.yml | 2 +- .../modulePipelines/ms.logic.workflows.yml | 2 +- .../ms.machinelearningservices.workspaces.yml | 2 +- ...managedidentity.userassignedidentities.yml | 2 +- ...anagedservices.registrationdefinitions.yml | 4 +- .../ms.management.managementgroups.yml | 2 +- .../ms.netapp.netappaccounts.yml | 2 +- .../ms.network.applicationgateways.yml | 2 +- .../ms.network.applicationsecuritygroups.yml | 2 +- .../ms.network.azurefirewalls.yml | 2 +- .../ms.network.bastionhosts.yml | 2 +- .../ms.network.connections.yml | 2 +- .../ms.network.ddosprotectionplans.yml | 2 +- .../ms.network.expressroutecircuits.yml | 2 +- .../ms.network.firewallpolicies.yml | 2 +- .../modulePipelines/ms.network.frontdoors.yml | 2 +- .../modulePipelines/ms.network.ipgroups.yml | 2 +- .../ms.network.loadbalancers.yml | 2 +- .../ms.network.localnetworkgateways.yml | 2 +- .../ms.network.natgateways.yml | 2 +- .../ms.network.networkinterfaces.yml | 2 +- .../ms.network.networksecuritygroups.yml | 2 +- .../ms.network.networkwatchers.yml | 2 +- .../ms.network.privatednszones.yml | 2 +- .../ms.network.privateendpoints.yml | 2 +- .../ms.network.publicipaddresses.yml | 2 +- .../ms.network.publicipprefixes.yml | 2 +- .../ms.network.routetables.yml | 2 +- .../ms.network.trafficmanagerprofiles.yml | 2 +- .../ms.network.virtualhubs.yml | 2 +- .../ms.network.virtualnetworkgateways.yml | 2 +- .../ms.network.virtualnetworks.yml | 2 +- .../ms.network.virtualwans.yml | 2 +- .../ms.network.vpngateways.yml | 2 +- .../modulePipelines/ms.network.vpnsites.yml | 2 +- .../ms.operationalinsights.workspaces.yml | 2 +- .../ms.operationsmanagement.solutions.yml | 56 ++ .../ms.recoveryservices.vaults.yml | 2 +- .../ms.resources.deploymentscripts.yml | 3 +- .../ms.resources.resourcegroups.yml | 2 +- .../modulePipelines/ms.resources.tags.yml | 2 +- .../ms.security.azuresecuritycenter.yml | 2 +- .../ms.servicebus.namespaces.yml | 2 +- .../ms.servicefabric.clusters.yml | 2 +- .../ms.sql.managedinstances.yml | 2 +- .../modulePipelines/ms.sql.servers.yml | 2 +- .../ms.storage.storageaccounts.yml | 3 +- .../ms.synapse.privatelinkhubs.yml | 2 +- ...ms.virtualmachineimages.imagetemplates.yml | 2 +- .../modulePipelines/ms.web.connections.yml | 2 +- .../ms.web.hostingenvironments.yml | 5 +- .../modulePipelines/ms.web.serverfarms.yml | 2 +- .azuredevops/modulePipelines/ms.web.sites.yml | 2 +- .../modulePipelines/ms.web.staticsites.yml | 2 +- .../pipelineTemplates/jobs.publishModule.yml | 3 +- .../jobs.validateModulePester.yml | 119 +--- .../platform.dependencies.yml | 20 +- .../platform.updateReadMe.yml | 2 +- .../platformPipelines/platform.wiki-sync.yml | 2 +- .../templates/publishModule/action.yml | 120 ++-- .../validateModuleDeployment/action.yml | 286 +++++----- .../templates/validateModulePester/action.yml | 69 +-- .github/workflows/ms.authorization.locks.yml | 145 +++++ .../ms.dataprotection.backupvaults.yml | 142 +++++ ...anagedservices.registrationdefinitions.yml | 2 +- .../ms.operationsmanagement.solutions.yml | 142 +++++ .github/workflows/platform.dependencies.yml | 52 +- README.md | 3 + SECURITY.md | 2 +- SUPPORT.md | 6 +- arm/.global/global.module.tests.ps1 | 430 ++++++++------ arm/.global/shared/helper.psm1 | 126 ++++- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 6 +- arm/Microsoft.AAD/DomainServices/deploy.bicep | 14 +- arm/Microsoft.AAD/DomainServices/readme.md | 10 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../servers/.parameters/max.parameters.json | 6 +- .../servers/.parameters/parameters.json | 3 + .../servers/deploy.bicep | 12 +- .../servers/readme.md | 14 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../service/.parameters/max.parameters.json | 3 + .../service/.parameters/parameters.json | 3 + .../service/apis/deploy.bicep | 4 +- .../service/deploy.bicep | 34 +- .../service/products/deploy.bicep | 6 +- arm/Microsoft.ApiManagement/service/readme.md | 10 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 20 + .../configurationStores/deploy.bicep | 63 ++- .../.bicep/nested_roleAssignments.bicep} | 26 +- .../keyValues/deploy.bicep | 51 ++ .../configurationStores/keyValues/readme.md | 407 +++++++++++++ .../keyValues/version.json | 4 + .../configurationStores/readme.md | 44 +- .../configurationStores/version.json | 2 +- .../locks/.parameters/rg.parameters.json | 15 + .../locks/deploy.bicep | 69 +++ arm/Microsoft.Authorization/locks/readme.md | 87 +++ .../locks/resourceGroup/deploy.bicep | 49 ++ .../locks/resourceGroup/readme.md | 39 ++ .../locks/resourceGroup/version.json | 4 + .../locks/subscription/deploy.bicep | 49 ++ .../locks/subscription/readme.md | 39 ++ .../locks/subscription/version.json | 4 + .../locks/version.json | 4 + .../policyAssignments/deploy.bicep | 8 +- .../policyDefinitions/deploy.bicep | 6 +- .../policyExemptions/deploy.bicep | 8 +- .../policySetDefinitions/deploy.bicep | 8 +- .../managementGroup/deploy.bicep | 4 +- .../managementGroup/readme.md | 2 +- .../policySetDefinitions/readme.md | 2 +- .../roleAssignments/deploy.bicep | 8 +- .../roleDefinitions/deploy.bicep | 8 +- .../.bicep/nested_linkedService.bicep | 37 -- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.bicep/nested_solution.bicep | 43 -- .../.parameters/encr.parameters.json | 19 +- .../.parameters/min.parameters.json | 2 +- .../.parameters/parameters.json | 13 +- .../automationAccounts/deploy.bicep | 40 +- .../automationAccounts/readme.md | 56 +- .../batchAccounts/.parameters/parameters.json | 3 + .../batchAccounts/deploy.bicep | 10 +- arm/Microsoft.Batch/batchAccounts/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../accounts/.parameters/parameters.json | 3 + .../accounts/deploy.bicep | 18 +- .../accounts/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../availabilitySets/deploy.bicep | 10 +- .../availabilitySets/readme.md | 6 +- .../.bicep/nested_kvAccessPolicy.bicep | 36 -- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../diskEncryptionSets/deploy.bicep | 4 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../disks/.parameters/parameters.json | 3 + arm/Microsoft.Compute/disks/deploy.bicep | 10 +- arm/Microsoft.Compute/disks/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 2 +- .../galleries/.parameters/parameters.json | 3 + arm/Microsoft.Compute/galleries/deploy.bicep | 18 +- ...bac.bicep => nested_roleAssignments.bicep} | 2 +- .../galleries/images/deploy.bicep | 6 +- .../galleries/images/readme.md | 2 +- arm/Microsoft.Compute/galleries/readme.md | 10 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 arm/Microsoft.Compute/images/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../proximityPlacementGroups/deploy.bicep | 10 +- .../proximityPlacementGroups/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/linux.parameters.json | 3 + .../.parameters/windows.parameters.json | 3 + .../virtualMachineScaleSets/deploy.bicep | 28 +- .../virtualMachineScaleSets/readme.md | 10 +- .../.bicep/nested_networkInterface.bicep | 9 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/linux.parameters.json | 3 + .../.parameters/windows.parameters.json | 3 + .../virtualMachines/deploy.bicep | 29 +- .../virtualMachines/readme.md | 27 +- .../.parameters/parameters.json | 3 + .../containerGroups/deploy.bicep | 10 +- .../containerGroups/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../registries/.parameters/parameters.json | 11 + .../registries/deploy.bicep | 46 +- .../registries/readme.md | 24 +- .../registries/webhooks/deploy.bicep | 92 +++ .../registries/webhooks/readme.md | 93 +++ .../registries/webhooks/version.json | 4 + ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/azure.parameters.json | 3 + .../managedClusters/deploy.bicep | 18 +- .../managedClusters/readme.md | 8 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../factories/.parameters/parameters.json | 3 + .../factories/deploy.bicep | 18 +- arm/Microsoft.DataFactory/factories/readme.md | 6 +- .../backupVaults/.bicep/nested_rbac.bicep | 43 ++ .../.parameters/min.parameters.json | 9 + .../backupVaults/.parameters/parameters.json | 76 +++ .../backupVaults/backupPolicies/deploy.bicep | 42 ++ .../backupVaults/backupPolicies/readme.md | 176 ++++++ .../backupVaults/backupPolicies/version.json | 3 + .../backupVaults/deploy.bicep | 127 +++++ .../backupVaults/readme.md | 535 ++++++++++++++++++ .../backupVaults/version.json | 3 + ...bac.bicep => nested_roleAssignments.bicep} | 0 .../workspaces/.parameters/parameters.json | 3 + .../workspaces/deploy.bicep | 12 +- arm/Microsoft.Databricks/workspaces/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../applicationgroups/deploy.bicep | 16 +- .../applicationgroups/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../hostpools/.parameters/parameters.json | 6 +- .../hostpools/deploy.bicep | 12 +- .../hostpools/readme.md | 10 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../scalingplans/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../workspaces/.parameters/parameters.json | 3 + .../workspaces/deploy.bicep | 14 +- .../workspaces/readme.md | 8 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/plain.parameters.json | 3 + .../databaseAccounts/deploy.bicep | 18 +- .../mongodbDatabases/deploy.bicep | 4 +- .../databaseAccounts/readme.md | 6 +- .../sqlDatabases/deploy.bicep | 4 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../systemTopics/.parameters/parameters.json | 3 + .../systemTopics/deploy.bicep | 12 +- .../systemTopics/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../topics/.parameters/parameters.json | 3 + arm/Microsoft.EventGrid/topics/deploy.bicep | 18 +- arm/Microsoft.EventGrid/topics/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../namespaces/.parameters/parameters.json | 3 + .../namespaces/deploy.bicep | 28 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../namespaces/eventhubs/deploy.bicep | 16 +- .../namespaces/eventhubs/readme.md | 2 +- arm/Microsoft.EventHub/namespaces/readme.md | 7 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../healthBots/.parameters/parameters.json | 3 + .../healthBots/deploy.bicep | 12 +- arm/Microsoft.HealthBot/healthBots/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../actionGroups/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../activityLogAlerts/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../components/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../metricAlerts/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../privateLinkScopes/deploy.bicep | 20 +- .../privateLinkScopes/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../scheduledQueryRules/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../vaults/.parameters/parameters.json | 3 + arm/Microsoft.KeyVault/vaults/deploy.bicep | 22 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../vaults/keys/deploy.bicep | 2 +- arm/Microsoft.KeyVault/vaults/readme.md | 7 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../vaults/secrets/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../workflows/.parameters/parameters.json | 3 + arm/Microsoft.Logic/workflows/deploy.bicep | 12 +- arm/Microsoft.Logic/workflows/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../workspaces/.parameters/parameters.json | 3 + .../workspaces/deploy.bicep | 20 +- .../workspaces/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../userAssignedIdentities/deploy.bicep | 12 +- .../userAssignedIdentities/readme.md | 6 +- .../managementGroups/.bicep/nested_rbac.bicep | 318 ----------- .../.parameters/parameters.json | 10 - .../managementGroups/deploy.bicep | 15 - .../managementGroups/readme.md | 20 - ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/nfs3.parameters.json | 3 + ...bac.bicep => nested_roleAssignments.bicep} | 0 .../netAppAccounts/capacityPools/deploy.bicep | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../capacityPools/volumes/deploy.bicep | 2 +- .../netAppAccounts/deploy.bicep | 16 +- arm/Microsoft.NetApp/netAppAccounts/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 5 +- .../applicationGateways/deploy.bicep | 10 +- .../applicationGateways/readme.md | 10 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../applicationSecurityGroups/deploy.bicep | 10 +- .../applicationSecurityGroups/readme.md | 6 +- .../.bicep/nested_publicIPAddress.bicep | 161 ------ ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../azureFirewalls/deploy.bicep | 25 +- .../azureFirewalls/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/addpip.parameters.json | 20 + .../.parameters/custompip.parameters.json | 37 ++ .../bastionHosts/.parameters/parameters.json | 5 +- .../bastionHosts/deploy.bicep | 84 ++- arm/Microsoft.Network/bastionHosts/readme.md | 280 ++++++++- .../.parameters/vnet2vnet.parameters.json | 3 + .../connections/deploy.bicep | 8 +- arm/Microsoft.Network/connections/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../ddosProtectionPlans/deploy.bicep | 10 +- .../ddosProtectionPlans/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../expressRouteCircuits/deploy.bicep | 10 +- .../expressRouteCircuits/readme.md | 6 +- .../firewallPolicies/deploy.bicep | 4 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../frontDoors/.parameters/parameters.json | 3 + arm/Microsoft.Network/frontDoors/deploy.bicep | 10 +- arm/Microsoft.Network/frontDoors/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../ipGroups/.parameters/parameters.json | 3 + arm/Microsoft.Network/ipGroups/deploy.bicep | 10 +- arm/Microsoft.Network/ipGroups/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../loadBalancers/.parameters/parameters.json | 3 + .../loadBalancers/deploy.bicep | 16 +- arm/Microsoft.Network/loadBalancers/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../localNetworkGateways/deploy.bicep | 10 +- .../localNetworkGateways/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../natGateways/.parameters/parameters.json | 3 + .../natGateways/deploy.bicep | 14 +- arm/Microsoft.Network/natGateways/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../networkInterfaces/deploy.bicep | 10 +- .../networkInterfaces/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../networkSecurityGroups/deploy.bicep | 14 +- .../networkSecurityGroups/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../networkWatchers/deploy.bicep | 16 +- .../networkWatchers/readme.md | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + ...bac.bicep => nested_roleAssignments.bicep} | 0 .../privateDnsZones/A/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../privateDnsZones/AAAA/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../privateDnsZones/CNAME/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../privateDnsZones/MX/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../privateDnsZones/PTR/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../privateDnsZones/SOA/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../privateDnsZones/SRV/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../privateDnsZones/TXT/deploy.bicep | 2 +- .../privateDnsZones/deploy.bicep | 30 +- .../privateDnsZones/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../privateEndpoints/deploy.bicep | 14 +- .../privateEndpoints/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../publicIPAddresses/deploy.bicep | 10 +- .../publicIPAddresses/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../publicIPPrefixes/deploy.bicep | 10 +- .../publicIPPrefixes/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../routeTables/.parameters/parameters.json | 3 + .../routeTables/deploy.bicep | 10 +- arm/Microsoft.Network/routeTables/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../trafficmanagerprofiles/deploy.bicep | 10 +- .../trafficmanagerprofiles/readme.md | 6 +- .../virtualHubs/.parameters/parameters.json | 3 + .../virtualHubs/deploy.bicep | 14 +- arm/Microsoft.Network/virtualHubs/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/vpn.parameters.json | 3 + .../virtualNetworkGateways/deploy.bicep | 14 +- .../virtualNetworkGateways/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../virtualNetworks/deploy.bicep | 18 +- .../virtualNetworks/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../virtualNetworks/subnets/deploy.bicep | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../virtualWans/.parameters/parameters.json | 3 + .../virtualWans/deploy.bicep | 10 +- arm/Microsoft.Network/virtualWans/readme.md | 6 +- .../vpnGateways/.parameters/parameters.json | 3 + .../vpnGateways/deploy.bicep | 14 +- arm/Microsoft.Network/vpnGateways/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../vpnSites/.parameters/parameters.json | 3 + arm/Microsoft.Network/vpnSites/deploy.bicep | 10 +- arm/Microsoft.Network/vpnSites/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../workspaces/.bicep/nested_solutions.bicep | 32 -- .../.parameters/min.parameters.json | 2 +- .../workspaces/.parameters/parameters.json | 7 +- .../workspaces/deploy.bicep | 35 +- .../workspaces/linkedServices/deploy.bicep | 6 +- .../workspaces/readme.md | 118 ++-- .../solutions/.parameters/min.parameters.json | 12 + .../solutions/.parameters/ms.parameters.json | 18 + .../.parameters/nonms.parameters.json | 18 + .../solutions/deploy.bicep | 63 +++ .../solutions/readme.md | 180 ++++++ .../solutions/version.json | 4 + ...bac.bicep => nested_roleAssignments.bicep} | 0 .../vaults/.parameters/parameters.json | 3 + .../vaults/deploy.bicep | 24 +- .../vaults/protectionContainers/deploy.bicep | 2 +- .../protectedItems/deploy.bicep | 4 +- .../protectedItems/readme.md | 4 +- .../vaults/protectionContainers/readme.md | 2 +- .../vaults/readme.md | 6 +- .../vaults/replicationFabrics/deploy.bicep | 4 +- .../deploy.bicep | 4 +- .../.parameters/ps.parameters.json | 3 + .../deploymentScripts/deploy.bicep | 10 +- .../deploymentScripts/readme.md | 6 +- .../resourceGroups/.bicep/nested_lock.bicep | 31 - ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../resourceGroups/deploy.bicep | 14 +- .../resourceGroups/readme.md | 6 +- arm/Microsoft.Resources/tags/deploy.bicep | 6 +- .../azureSecurityCenter/deploy.bicep | 158 +++--- .../azureSecurityCenter/readme.md | 3 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../namespaces/.parameters/parameters.json | 3 + .../namespaces/deploy.bicep | 34 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../namespaces/queues/deploy.bicep | 14 +- .../namespaces/queues/readme.md | 2 +- arm/Microsoft.ServiceBus/namespaces/readme.md | 7 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../namespaces/topics/deploy.bicep | 14 +- .../namespaces/topics/readme.md | 2 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../clusters/.parameters/full.parameters.json | 3 + .../clusters/deploy.bicep | 14 +- .../clusters/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../managedInstances/databases/deploy.bicep | 16 +- .../managedInstances/databases/readme.md | 2 +- .../managedInstances/deploy.bicep | 28 +- arm/Microsoft.Sql/managedInstances/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../servers/.parameters/parameters.json | 3 + arm/Microsoft.Sql/servers/deploy.bicep | 26 +- arm/Microsoft.Sql/servers/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/encr.parameters.json | 38 ++ .../.parameters/parameters.json | 3 + ...bac.bicep => nested_roleAssignments.bicep} | 0 .../blobServices/containers/deploy.bicep | 6 +- .../storageAccounts/blobServices/deploy.bicep | 4 +- .../storageAccounts/deploy.bicep | 61 +- .../storageAccounts/fileServices/deploy.bicep | 4 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../fileServices/shares/deploy.bicep | 2 +- .../queueServices/deploy.bicep | 4 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../queueServices/queues/deploy.bicep | 2 +- .../storageAccounts/readme.md | 100 +++- .../tableServices/deploy.bicep | 4 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../privateLinkHubs/deploy.bicep | 18 +- .../privateLinkHubs/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/parameters.json | 3 + .../imageTemplates/deploy.bicep | 10 +- .../imageTemplates/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../connections/.parameters/parameters.json | 3 + arm/Microsoft.Web/connections/deploy.bicep | 10 +- arm/Microsoft.Web/connections/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../.parameters/asev2.parameters.json | 54 ++ ...{parameters.json => asev3.parameters.json} | 13 +- .../hostingEnvironments/deploy.bicep | 52 +- .../hostingEnvironments/readme.md | 179 +++++- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../serverfarms/.parameters/parameters.json | 3 + arm/Microsoft.Web/serverfarms/deploy.bicep | 10 +- arm/Microsoft.Web/serverfarms/readme.md | 6 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../sites/.parameters/fa.parameters.json | 3 + .../sites/.parameters/wa.min.parameters.json | 2 +- arm/Microsoft.Web/sites/deploy.bicep | 20 +- arm/Microsoft.Web/sites/readme.md | 8 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../staticSites/.parameters/parameters.json | 3 + arm/Microsoft.Web/staticSites/deploy.bicep | 16 +- arm/Microsoft.Web/staticSites/readme.md | 6 +- arm/README.md | 5 +- ...bac.bicep => nested_roleAssignments.bicep} | 0 .../deploy.bicep | 8 +- .../readme.md | 1 + .../virtualMachinesMultiple/deploy.bicep | 15 +- .../Contribution guide - Contribution flow.md | 61 +- ...ribution guide - Generate module readme.md | 26 +- ...bution guide - Get formatted RBAC roles.md | 31 +- ...ibution guide - Validate module locally.md | 18 +- docs/wiki/Contribution guide.md | 2 +- ...started - Check NamePrefix availability.md | 16 +- ...g started - Get module cross-references.md | 19 +- ...g started - Scenario 1 Consume library.md} | 30 +- ...oard module library and CI environment.md} | 178 +++--- ...Getting started - Scenario 3 Contribute.md | 6 +- docs/wiki/Getting started.md | 4 +- docs/wiki/Home.md | 31 +- ...eroperability - Bicep to ARM conversion.md | 12 +- ...ility - Register Azure DevOps Pipelines.md | 24 +- docs/wiki/Interoperability.md | 2 +- docs/wiki/Known issues.md | 46 +- docs/wiki/Solution creation.md | 67 +-- ... environment - Bicep configuration file.md | 9 +- ... CI environment - Deployment validation.md | 71 +-- ...ent - GitHub ReadMe module table update.md | 12 +- .../The CI environment - Pipeline design.md | 198 +++---- .../The CI environment - Pipeline usage.md | 70 +-- docs/wiki/The CI environment - Publishing.md | 22 +- .../The CI environment - Static validation.md | 25 +- .../The CI environment - Token replacement.md | 24 +- docs/wiki/The CI environment.md | 2 +- .../The context - CARML CI environment.md | 42 +- docs/wiki/The context - CARML library.md | 44 +- docs/wiki/The context - CARML overview.md | 10 +- docs/wiki/The library - Module design.md | 182 +++--- docs/wiki/The library - Module usage.md | 17 +- docs/wiki/Upgrade from 0.3.1 to 0.4.0.md | 22 +- docs/wiki/_Sidebar.md | 4 +- .../{ => CIEnvironment}/gHtriggerPipeline.png | Bin .../{ => CIEnvironment}/ghActionsTab.png | Bin .../media/{ => CIEnvironment}/pipelineNew.png | Bin .../{ => CIEnvironment}/pipelineNew2.png | Bin .../{ => CIEnvironment}/pipelineNew3.png | Bin .../{ => CIEnvironment}/pipelineNew4.png | Bin .../{ => CIEnvironment}/pipelineNew5.png | Bin .../{ => CIEnvironment}/pipelineNew6.png | Bin .../{ => CIEnvironment}/pipelineStart.png | Bin .../{ => CIEnvironment}/pipelineStart2.png | Bin .../{ => CIEnvironment}/pipelineStart3.png | Bin .../{ => CIEnvironment}/tokenReplacement.png | Bin .../media/{ => CIEnvironment}/tokenTypes.png | Bin ...{CARLM_overview.png => CARML_overview.png} | Bin .../{ => ContributionGuide}/badgeDropdown.png | Bin .../carmlStatusBadge.png | Bin .../{ => ContributionGuide}/projectsTab.jpg | Bin .../{ => ContributionGuide}/rbacRoles.png | Bin .../cloneDownloadRepo.JPG | Bin .../SetupEnvironment/workflow_permissions.png | Bin 0 -> 32604 bytes .../pipelineOrchestration.png | Bin .../templateOrchestration.png | Bin docs/wiki/media/completeFlow.png | Bin 777456 -> 0 bytes docs/wiki/media/completeFlowTransp.png | Bin 634429 -> 0 bytes docs/wiki/media/dependencyPipeline.png | Bin 41793 -> 0 bytes docs/wiki/media/deploymentFlow.png | Bin 114976 -> 0 bytes docs/wiki/media/deploymentModel.png | Bin 66515 -> 0 bytes docs/wiki/media/paramFileTokenGet.jpg | Bin 1441124 -> 0 bytes docs/wiki/media/pipelinePhases.png | Bin 27629 -> 0 bytes docs/wiki/media/statusBadge.jpg | Bin 56165 -> 0 bytes .../parameters/parameters.json | 2 +- .../hostpools/parameters/parameters.json | 2 +- .../parameters/ase.parameters.json | 13 + .../parameters/bas.additional.parameters.json | 15 + .../parameters/12.bastion.parameters.json | 23 + .../parameters/13.bastion.parameters.json | 23 + .../parameters/parameters.json | 23 +- .../workspaces/parameters/sol.parameters.json | 9 + .../vaults/parameters/parameters.json | 3 +- .../parameters/locks.parameters.json | 9 + .../resourcePublish/Get-ModulesToPublish.ps1 | 2 +- .../Initialize-DeploymentRemoval.ps1 | 25 +- .../helper/Invoke-ResourceRemoval.ps1 | 9 + .../helper/Remove-Deployment.ps1 | 4 + .../sharedScripts/Set-EnvironmentOnAgent.ps1 | 96 +++- .../Register-AzureDevOpsPipeline.ps1 | 3 +- utilities/tools/Get-LinkedModuleList.ps1 | 2 +- utilities/tools/Set-ModuleReadMe.ps1 | 14 +- utilities/tools/Set-ReadMeModuleTable.ps1 | 5 +- 645 files changed, 7120 insertions(+), 3212 deletions(-) create mode 100644 .azuredevops/modulePipelines/ms.authorization.locks.yml create mode 100644 .azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml create mode 100644 .azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml create mode 100644 .github/workflows/ms.authorization.locks.yml create mode 100644 .github/workflows/ms.dataprotection.backupvaults.yml create mode 100644 .github/workflows/ms.operationsmanagement.solutions.yml rename arm/Microsoft.AAD/DomainServices/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.AnalysisServices/servers/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.ApiManagement/service/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.AppConfiguration/configurationStores/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/{Microsoft.Network/azureFirewalls/.bicep/nested_publicIPAddress_rbac.bicep => Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep} (63%) create mode 100644 arm/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep create mode 100644 arm/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md create mode 100644 arm/Microsoft.AppConfiguration/configurationStores/keyValues/version.json create mode 100644 arm/Microsoft.Authorization/locks/.parameters/rg.parameters.json create mode 100644 arm/Microsoft.Authorization/locks/deploy.bicep create mode 100644 arm/Microsoft.Authorization/locks/readme.md create mode 100644 arm/Microsoft.Authorization/locks/resourceGroup/deploy.bicep create mode 100644 arm/Microsoft.Authorization/locks/resourceGroup/readme.md create mode 100644 arm/Microsoft.Authorization/locks/resourceGroup/version.json create mode 100644 arm/Microsoft.Authorization/locks/subscription/deploy.bicep create mode 100644 arm/Microsoft.Authorization/locks/subscription/readme.md create mode 100644 arm/Microsoft.Authorization/locks/subscription/version.json create mode 100644 arm/Microsoft.Authorization/locks/version.json delete mode 100644 arm/Microsoft.Automation/automationAccounts/.bicep/nested_linkedService.bicep rename arm/Microsoft.Automation/automationAccounts/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) delete mode 100644 arm/Microsoft.Automation/automationAccounts/.bicep/nested_solution.bicep rename arm/Microsoft.CognitiveServices/accounts/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Compute/availabilitySets/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) delete mode 100644 arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_kvAccessPolicy.bicep rename arm/Microsoft.Compute/diskEncryptionSets/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Compute/disks/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Compute/galleries/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (98%) rename arm/Microsoft.Compute/galleries/images/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (97%) rename arm/Microsoft.Compute/images/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Compute/proximityPlacementGroups/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Compute/virtualMachineScaleSets/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Compute/virtualMachines/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.ContainerRegistry/registries/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) create mode 100644 arm/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep create mode 100644 arm/Microsoft.ContainerRegistry/registries/webhooks/readme.md create mode 100644 arm/Microsoft.ContainerRegistry/registries/webhooks/version.json rename arm/Microsoft.ContainerService/managedClusters/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.DataFactory/factories/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) create mode 100644 arm/Microsoft.DataProtection/backupVaults/.bicep/nested_rbac.bicep create mode 100644 arm/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json create mode 100644 arm/Microsoft.DataProtection/backupVaults/.parameters/parameters.json create mode 100644 arm/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep create mode 100644 arm/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md create mode 100644 arm/Microsoft.DataProtection/backupVaults/backupPolicies/version.json create mode 100644 arm/Microsoft.DataProtection/backupVaults/deploy.bicep create mode 100644 arm/Microsoft.DataProtection/backupVaults/readme.md create mode 100644 arm/Microsoft.DataProtection/backupVaults/version.json rename arm/Microsoft.Databricks/workspaces/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.DesktopVirtualization/applicationgroups/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.DesktopVirtualization/hostpools/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.DesktopVirtualization/scalingplans/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.DesktopVirtualization/workspaces/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.DocumentDB/databaseAccounts/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.EventGrid/systemTopics/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.EventGrid/topics/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.EventHub/namespaces/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.EventHub/namespaces/eventhubs/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.HealthBot/healthBots/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Insights/actionGroups/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Insights/activityLogAlerts/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Insights/components/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Insights/metricAlerts/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Insights/privateLinkScopes/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Insights/scheduledQueryRules/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.KeyVault/vaults/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.KeyVault/vaults/keys/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.KeyVault/vaults/secrets/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Logic/workflows/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.MachineLearningServices/workspaces/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) delete mode 100644 arm/Microsoft.Management/managementGroups/.bicep/nested_rbac.bicep rename arm/Microsoft.NetApp/netAppAccounts/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/applicationGateways/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/applicationSecurityGroups/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) delete mode 100644 arm/Microsoft.Network/azureFirewalls/.bicep/nested_publicIPAddress.bicep rename arm/Microsoft.Network/azureFirewalls/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/bastionHosts/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) create mode 100644 arm/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json create mode 100644 arm/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json rename arm/Microsoft.Network/ddosProtectionPlans/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/expressRouteCircuits/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/frontDoors/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/ipGroups/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/loadBalancers/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/localNetworkGateways/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/natGateways/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/networkInterfaces/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/networkSecurityGroups/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/networkWatchers/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/A/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/AAAA/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/CNAME/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/MX/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/PTR/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/SOA/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/SRV/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateDnsZones/TXT/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/privateEndpoints/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/publicIPAddresses/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/publicIPPrefixes/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/routeTables/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/trafficmanagerprofiles/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/virtualNetworkGateways/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/virtualNetworks/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/virtualNetworks/subnets/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/virtualWans/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Network/vpnSites/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.OperationalInsights/workspaces/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) delete mode 100644 arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_solutions.bicep create mode 100644 arm/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json create mode 100644 arm/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json create mode 100644 arm/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json create mode 100644 arm/Microsoft.OperationsManagement/solutions/deploy.bicep create mode 100644 arm/Microsoft.OperationsManagement/solutions/readme.md create mode 100644 arm/Microsoft.OperationsManagement/solutions/version.json rename arm/Microsoft.RecoveryServices/vaults/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) delete mode 100644 arm/Microsoft.Resources/resourceGroups/.bicep/nested_lock.bicep rename arm/Microsoft.Resources/resourceGroups/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.ServiceBus/namespaces/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.ServiceBus/namespaces/queues/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.ServiceBus/namespaces/topics/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.ServiceFabric/clusters/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Sql/managedInstances/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Sql/servers/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Storage/storageAccounts/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) create mode 100644 arm/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json rename arm/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Synapse/privateLinkHubs/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.VirtualMachineImages/imageTemplates/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Web/connections/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Web/hostingEnvironments/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) create mode 100644 arm/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json rename arm/Microsoft.Web/hostingEnvironments/.parameters/{parameters.json => asev3.parameters.json} (83%) rename arm/Microsoft.Web/serverfarms/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Web/sites/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename arm/Microsoft.Web/staticSites/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/{nested_rbac.bicep => nested_roleAssignments.bicep} (100%) rename docs/wiki/{Getting started - Scenario 2 Consume library.md => Getting started - Scenario 1 Consume library.md} (56%) rename docs/wiki/{Getting started - Scenario 1 Onboard module library and CI environment.md => Getting started - Scenario 2 Onboard module library and CI environment.md} (67%) rename docs/wiki/media/{ => CIEnvironment}/gHtriggerPipeline.png (100%) rename docs/wiki/media/{ => CIEnvironment}/ghActionsTab.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineNew.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineNew2.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineNew3.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineNew4.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineNew5.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineNew6.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineStart.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineStart2.png (100%) rename docs/wiki/media/{ => CIEnvironment}/pipelineStart3.png (100%) rename docs/wiki/media/{ => CIEnvironment}/tokenReplacement.png (100%) rename docs/wiki/media/{ => CIEnvironment}/tokenTypes.png (100%) rename docs/wiki/media/Context/{CARLM_overview.png => CARML_overview.png} (100%) rename docs/wiki/media/{ => ContributionGuide}/badgeDropdown.png (100%) rename docs/wiki/media/{ => ContributionGuide}/carmlStatusBadge.png (100%) rename docs/wiki/media/{ => ContributionGuide}/projectsTab.jpg (100%) rename docs/wiki/media/{ => ContributionGuide}/rbacRoles.png (100%) rename docs/wiki/media/{ => GettingStarted}/cloneDownloadRepo.JPG (100%) create mode 100644 docs/wiki/media/SetupEnvironment/workflow_permissions.png rename docs/wiki/media/{ => SolutionCreation}/pipelineOrchestration.png (100%) rename docs/wiki/media/{ => SolutionCreation}/templateOrchestration.png (100%) delete mode 100644 docs/wiki/media/completeFlow.png delete mode 100644 docs/wiki/media/completeFlowTransp.png delete mode 100644 docs/wiki/media/dependencyPipeline.png delete mode 100644 docs/wiki/media/deploymentFlow.png delete mode 100644 docs/wiki/media/deploymentModel.png delete mode 100644 docs/wiki/media/paramFileTokenGet.jpg delete mode 100644 docs/wiki/media/pipelinePhases.png delete mode 100644 docs/wiki/media/statusBadge.jpg create mode 100644 utilities/pipelines/dependencies/Microsoft.Network/publicIPAddresses/parameters/bas.additional.parameters.json create mode 100644 utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/12.bastion.parameters.json create mode 100644 utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/13.bastion.parameters.json create mode 100644 utilities/pipelines/dependencies/Microsoft.OperationalInsights/workspaces/parameters/sol.parameters.json create mode 100644 utilities/pipelines/dependencies/Microsoft.Resources/resourceGroups/parameters/locks.parameters.json diff --git a/.azuredevops/modulePipelines/ms.aad.domainservices.yml b/.azuredevops/modulePipelines/ms.aad.domainservices.yml index c02fe1a3fa..a11e9a9940 100644 --- a/.azuredevops/modulePipelines/ms.aad.domainservices.yml +++ b/.azuredevops/modulePipelines/ms.aad.domainservices.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.aad.domainservices.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.AAD/DomainServices/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml index b53d702a14..61c1cf2529 100644 --- a/.azuredevops/modulePipelines/ms.analysisservices.servers.yml +++ b/.azuredevops/modulePipelines/ms.analysisservices.servers.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.analysisservices.servers.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.AnalysisServices/servers/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.apimanagement.service.yml b/.azuredevops/modulePipelines/ms.apimanagement.service.yml index 890f212a89..c9ce3c1ec4 100644 --- a/.azuredevops/modulePipelines/ms.apimanagement.service.yml +++ b/.azuredevops/modulePipelines/ms.apimanagement.service.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.apimanagement.service.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.ApiManagement/service/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml index 8350f6f95f..71b9c1aaea 100644 --- a/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml +++ b/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.appconfiguration.configurationstores.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.AppConfiguration/configurationStores/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.authorization.locks.yml b/.azuredevops/modulePipelines/ms.authorization.locks.yml new file mode 100644 index 0000000000..796262ea91 --- /dev/null +++ b/.azuredevops/modulePipelines/ms.authorization.locks.yml @@ -0,0 +1,55 @@ +name: 'Authorization - Locks' + +parameters: + - name: removeDeployment + displayName: Remove deployed module + type: boolean + default: true + - name: prerelease + displayName: Publish prerelease module + type: boolean + default: false + +pr: none + +trigger: + batch: true + branches: + include: + - main + paths: + include: + - '/.azuredevops/modulePipelines/ms.authorization.locks.yml' + - '/.azuredevops/pipelineTemplates/*.yml' + - '/arm/Microsoft.Authorization/locks/*' + - '/arm/.global/global.module.tests.ps1' + exclude: + - '/**/*.md' + +variables: + - template: '../../global.variables.yml' + - group: 'PLATFORM_VARIABLES' + - name: modulePath + value: '/arm/Microsoft.Authorization/locks' + +stages: + - stage: Validation + displayName: Static validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml + + - stage: Deployment + displayName: Deployment validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + deploymentBlocks: + - path: $(modulePath)/.parameters/rg.parameters.json + templateFilePath: $(modulePath)/deploy.bicep + + - stage: Publishing + displayName: Publishing + condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml diff --git a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml index 967137339f..58909f70ec 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.authorization.policyassignments.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Authorization/policyAssignments/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml index 1e41b0cf37..d72e85726e 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.authorization.policydefinitions.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Authorization/policyDefinitions/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml index 039a963645..bf0ba49d1d 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.authorization.policyexemptions.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Authorization/policyExemptions/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml index 6c35dab6ac..075a7d1e98 100644 --- a/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.authorization.policysetdefinitions.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Authorization/policySetDefinitions/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml index f56e0fab07..eaf576d22e 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.authorization.roleassignments.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Authorization/roleAssignments/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml index 4d097a5a28..7d17acf846 100644 --- a/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml +++ b/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.authorization.roledefinitions.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Authorization/roleDefinitions/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml index 6def36bfb8..712302abd9 100644 --- a/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml +++ b/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.automation.automationaccounts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Automation/automationAccounts/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml index 696c5c11cf..281f7c72c2 100644 --- a/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml +++ b/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.batch.batchaccounts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Batch/batchAccounts/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml index 651f718237..56654ea7da 100644 --- a/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml +++ b/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.cognitiveservices.accounts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.CognitiveServices/accounts/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml index ced557d6f4..c824e8c9be 100644 --- a/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml +++ b/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.compute.availabilitysets.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Compute/availabilitySets/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml index 687771b964..7f75460410 100644 --- a/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml +++ b/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.compute.diskencryptionsets.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Compute/diskEncryptionSets/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.compute.disks.yml b/.azuredevops/modulePipelines/ms.compute.disks.yml index 0ccabc18d4..3f9cae557f 100644 --- a/.azuredevops/modulePipelines/ms.compute.disks.yml +++ b/.azuredevops/modulePipelines/ms.compute.disks.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.compute.disks.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Compute/disks/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.compute.galleries.yml b/.azuredevops/modulePipelines/ms.compute.galleries.yml index b3d9d717bf..cf84e0fbef 100644 --- a/.azuredevops/modulePipelines/ms.compute.galleries.yml +++ b/.azuredevops/modulePipelines/ms.compute.galleries.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.compute.galleries.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Compute/galleries/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.compute.images.yml b/.azuredevops/modulePipelines/ms.compute.images.yml index d17925e8d3..834db0a5d7 100644 --- a/.azuredevops/modulePipelines/ms.compute.images.yml +++ b/.azuredevops/modulePipelines/ms.compute.images.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.compute.images.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Compute/images/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml index cbaa9ea1a0..c14f444ee2 100644 --- a/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml +++ b/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.compute.proximityplacementgroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Compute/proximityPlacementGroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml index bff51adb88..2fc6340f98 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.compute.virtualmachines.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Compute/virtualMachines/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml index 5dac586912..70b43e3cc6 100644 --- a/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml +++ b/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.compute.virtualmachinescalesets.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Compute/virtualMachineScaleSets/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.consumption.budgets.yml b/.azuredevops/modulePipelines/ms.consumption.budgets.yml index 219513d6a8..ba9e462fa4 100644 --- a/.azuredevops/modulePipelines/ms.consumption.budgets.yml +++ b/.azuredevops/modulePipelines/ms.consumption.budgets.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.consumption.budgets.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Consumption/budgets/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml index ec49b3c6ce..694b57b52b 100644 --- a/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml +++ b/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.containerinstance.containergroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.ContainerInstance/containerGroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml index 0d0719059b..dd2760a326 100644 --- a/.azuredevops/modulePipelines/ms.containerregistry.registries.yml +++ b/.azuredevops/modulePipelines/ms.containerregistry.registries.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.containerregistry.registries.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.ContainerRegistry/registries/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml index afbfad4d2b..68d4bc63d7 100644 --- a/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml +++ b/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.containerservice.managedclusters.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.ContainerService/managedClusters/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml index 36777fe42d..7ec75b0a9b 100644 --- a/.azuredevops/modulePipelines/ms.databricks.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.databricks.workspaces.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.databricks.workspaces.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Databricks/workspaces/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.datafactory.factories.yml b/.azuredevops/modulePipelines/ms.datafactory.factories.yml index 8f13a4a1fb..ccfabaf55b 100644 --- a/.azuredevops/modulePipelines/ms.datafactory.factories.yml +++ b/.azuredevops/modulePipelines/ms.datafactory.factories.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.datafactory.factories.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.DataFactory/factories/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml new file mode 100644 index 0000000000..55ba9a7eea --- /dev/null +++ b/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml @@ -0,0 +1,55 @@ +name: 'DataProtection - BackupVaults' + +parameters: + - name: removeDeployment + displayName: Remove deployed module + type: boolean + default: true + - name: prerelease + displayName: Publish prerelease module + type: boolean + default: false + +pr: none + +trigger: + batch: true + branches: + include: + - main + paths: + include: + - '/.azuredevops/modulePipelines/ms.dataprotection.backupvaults.yml' + - '/.azuredevops/pipelineTemplates/*.yml' + - '/arm/Microsoft.DataProtection/vaults/*' + - '/arm/.global/global.module.tests.ps1' + exclude: + - '/**/*.md' + +variables: + - template: '../../global.variables.yml' + - group: 'PLATFORM_VARIABLES' + - name: modulePath + value: '/arm/Microsoft.DataProtection/backupVaults' + +stages: + - stage: Validation + displayName: Static validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml + + - stage: Deployment + displayName: Deployment validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + deploymentBlocks: + - path: $(modulePath)/.parameters/min.parameters.json + - path: $(modulePath)/.parameters/parameters.json + + - stage: Publishing + displayName: Publishing + condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml index ea1a3d9f62..51d36df82c 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.desktopvirtualization.applicationgroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.DesktopVirtualization/applicationgroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml index 2a8c19e784..1d1c49a4d2 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.desktopvirtualization.hostpools.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.DesktopVirtualization/hostpools/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml index bca677f92b..d17711a4bc 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.desktopvirtualization.scalingplans.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.DesktopVirtualization/scalingplans/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml index 23d24d24b5..cfad4bfdc2 100644 --- a/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.desktopvirtualization.workspaces.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.DesktopVirtualization/workspaces/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml index 5b319ed878..4966965b0b 100644 --- a/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml +++ b/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.documentdb.databaseaccounts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.DocumentDB/databaseAccounts/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml index 7eb88f59d0..71a74153cf 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.eventgrid.systemtopics.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.EventGrid/systemTopics/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml index 695b8277bd..76fbff905a 100644 --- a/.azuredevops/modulePipelines/ms.eventgrid.topics.yml +++ b/.azuredevops/modulePipelines/ms.eventgrid.topics.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.eventgrid.topics.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.EventGrid/topics/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml index 1218276a34..b3d86604f3 100644 --- a/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.eventhub.namespaces.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.EventHub/namespaces/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml index e6a37c0988..8e5078a82a 100644 --- a/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml +++ b/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.healthbot.healthbots.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.HealthBot/healthBots/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml index 379e82a877..dcecbc2b6a 100644 --- a/.azuredevops/modulePipelines/ms.insights.actiongroups.yml +++ b/.azuredevops/modulePipelines/ms.insights.actiongroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.insights.actiongroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Insights/actionGroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml index 8d4c6bd01a..e5de0671d3 100644 --- a/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.insights.activitylogalerts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Insights/activityLogAlerts/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.insights.components.yml b/.azuredevops/modulePipelines/ms.insights.components.yml index 09c67aefc8..129e5301e2 100644 --- a/.azuredevops/modulePipelines/ms.insights.components.yml +++ b/.azuredevops/modulePipelines/ms.insights.components.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.insights.components.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Insights/components/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml index b0850b947a..d1407b082c 100644 --- a/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml +++ b/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.insights.diagnosticsettings.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Insights/diagnosticSettings/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml index 50d8d342c7..a92a0c44aa 100644 --- a/.azuredevops/modulePipelines/ms.insights.metricalerts.yml +++ b/.azuredevops/modulePipelines/ms.insights.metricalerts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.insights.metricalerts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Insights/metricAlerts/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml index 9f3170f52f..f2f22672c9 100644 --- a/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml +++ b/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.insights.privatelinkscopes.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Insights/privateLinkScopes/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml index 7c09a7ca28..cf0a3e7e2c 100644 --- a/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml +++ b/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.insights.scheduledqueryrules.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Insights/scheduledQueryRules/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml index 8c3b531f95..dd9f52090d 100644 --- a/.azuredevops/modulePipelines/ms.keyvault.vaults.yml +++ b/.azuredevops/modulePipelines/ms.keyvault.vaults.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.keyvault.vaults.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.KeyVault/vaults/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml index cc977eaa62..6e4a9957b8 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.kubernetesconfiguration.extensions.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.KubernetesConfiguration/extensions/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml index 9d21bee8cd..cc43f6e135 100644 --- a/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml +++ b/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.kubernetesconfiguration.fluxconfigurations.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.KubernetesConfiguration/fluxConfigurations/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.logic.workflows.yml b/.azuredevops/modulePipelines/ms.logic.workflows.yml index 3fb2b7be5f..661b4d355c 100644 --- a/.azuredevops/modulePipelines/ms.logic.workflows.yml +++ b/.azuredevops/modulePipelines/ms.logic.workflows.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.logic.workflows.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Logic/workflows/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml index 6f5d0a1cc8..d309cdb975 100644 --- a/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.machinelearningservices.workspaces.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.MachineLearningServices/workspaces/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml index 88b09b383e..80121f67e5 100644 --- a/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml +++ b/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.managedidentity.userassignedidentities.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.ManagedIdentity/userAssignedIdentities/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml index 965acdc8bd..62fee30f9b 100644 --- a/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml +++ b/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml @@ -4,7 +4,7 @@ parameters: - name: removeDeployment displayName: Remove deployed module type: boolean - default: false # Needs a custom removal script + default: true - name: prerelease displayName: Publish prerelease module type: boolean @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.managedservices.registrationdefinitions.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.ManagedServices/registrationDefinitions/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.management.managementgroups.yml b/.azuredevops/modulePipelines/ms.management.managementgroups.yml index 615ab227ee..308ff44dc5 100644 --- a/.azuredevops/modulePipelines/ms.management.managementgroups.yml +++ b/.azuredevops/modulePipelines/ms.management.managementgroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.management.managementgroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Management/managementGroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml index d0756d5c19..2b161f504d 100644 --- a/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml +++ b/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.netapp.netappaccounts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.NetApp/netAppAccounts/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml index 11d414aaf6..6225a4f68c 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationgateways.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.applicationgateways.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/applicationGateways/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml index d937443a98..f4e3156552 100644 --- a/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.applicationsecuritygroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/applicationSecurityGroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml index c8ab5e6758..4a55274d85 100644 --- a/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml +++ b/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.azurefirewalls.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/azureFirewalls/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml index 4aa3213912..a456581930 100644 --- a/.azuredevops/modulePipelines/ms.network.bastionhosts.yml +++ b/.azuredevops/modulePipelines/ms.network.bastionhosts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.bastionhosts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/bastionHosts/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.connections.yml b/.azuredevops/modulePipelines/ms.network.connections.yml index 6b4cc11764..2111b74e77 100644 --- a/.azuredevops/modulePipelines/ms.network.connections.yml +++ b/.azuredevops/modulePipelines/ms.network.connections.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.connections.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/connections/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml index b7ef751770..0f63e495bc 100644 --- a/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml +++ b/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.ddosprotectionplans.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/ddosProtectionPlans/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml index 51f4921c27..1fc686d50f 100644 --- a/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml +++ b/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.expressroutecircuits.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/expressRouteCircuits/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml index 1025c854d8..69a52d6e60 100644 --- a/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml +++ b/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.firewallpolicies.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/firewallpolicies/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.frontdoors.yml b/.azuredevops/modulePipelines/ms.network.frontdoors.yml index aec0e387fd..6ef0c447e5 100644 --- a/.azuredevops/modulePipelines/ms.network.frontdoors.yml +++ b/.azuredevops/modulePipelines/ms.network.frontdoors.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.frontdoors.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/frontDoors/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.ipgroups.yml b/.azuredevops/modulePipelines/ms.network.ipgroups.yml index e89f72c24e..2cebe6016a 100644 --- a/.azuredevops/modulePipelines/ms.network.ipgroups.yml +++ b/.azuredevops/modulePipelines/ms.network.ipgroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.ipgroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/ipGroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml index 120694c31a..1ab86396d9 100644 --- a/.azuredevops/modulePipelines/ms.network.loadbalancers.yml +++ b/.azuredevops/modulePipelines/ms.network.loadbalancers.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.loadbalancers.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/loadBalancers/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml index 84f45e752d..74c7f3f7bd 100644 --- a/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.localnetworkgateways.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/localNetworkGateways/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.natgateways.yml b/.azuredevops/modulePipelines/ms.network.natgateways.yml index b2f9f8a1b8..036aebbf69 100644 --- a/.azuredevops/modulePipelines/ms.network.natgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.natgateways.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.natgateways.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/natGateways/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml index b4c77b7569..ce5051d2f2 100644 --- a/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml +++ b/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.networkinterfaces.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/networkInterfaces/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml index 5ffdc7ec21..97508a03c9 100644 --- a/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml +++ b/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.networksecuritygroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/networkSecurityGroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml index 826a30bbf6..e18f04f34c 100644 --- a/.azuredevops/modulePipelines/ms.network.networkwatchers.yml +++ b/.azuredevops/modulePipelines/ms.network.networkwatchers.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.networkwatchers.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/networkWatchers/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.privatednszones.yml b/.azuredevops/modulePipelines/ms.network.privatednszones.yml index d27438d5cc..9b152568fb 100644 --- a/.azuredevops/modulePipelines/ms.network.privatednszones.yml +++ b/.azuredevops/modulePipelines/ms.network.privatednszones.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.privatednszones.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/privateDnsZones/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml index b83d1b1a99..fd9b955ead 100644 --- a/.azuredevops/modulePipelines/ms.network.privateendpoints.yml +++ b/.azuredevops/modulePipelines/ms.network.privateendpoints.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.privateendpoints.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/privateEndpoints/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml index 16ecbb04b7..2bf7ddc62e 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.publicipaddresses.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/publicIPAddresses/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml index 0b26d934ae..4b779ece81 100644 --- a/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml +++ b/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.publicipprefixes.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/publicIPPrefixes/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.routetables.yml b/.azuredevops/modulePipelines/ms.network.routetables.yml index bbe6fc2ea4..1aac7ed90d 100644 --- a/.azuredevops/modulePipelines/ms.network.routetables.yml +++ b/.azuredevops/modulePipelines/ms.network.routetables.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.routetables.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/routeTables/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml index b945593f93..45d8db3d5a 100644 --- a/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml +++ b/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.trafficmanagerprofiles.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/trafficmanagerprofiles/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml index 1ee1fa014c..c117fae374 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualhubs.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualhubs.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.virtualhubs.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/virtualHubs/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml index 8e5dd86bae..51a9c6a5a6 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.virtualnetworkgateways.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/virtualNetworkGateways/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml index a64315fd44..8d1ae7e5dc 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.virtualnetworks.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/virtualNetworks/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.virtualwans.yml b/.azuredevops/modulePipelines/ms.network.virtualwans.yml index 4641306f77..b507e19983 100644 --- a/.azuredevops/modulePipelines/ms.network.virtualwans.yml +++ b/.azuredevops/modulePipelines/ms.network.virtualwans.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.virtualwans.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/virtualWans/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.vpngateways.yml b/.azuredevops/modulePipelines/ms.network.vpngateways.yml index 3ad60dfcc1..cc2d3f9c8b 100644 --- a/.azuredevops/modulePipelines/ms.network.vpngateways.yml +++ b/.azuredevops/modulePipelines/ms.network.vpngateways.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.vpngateways.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/vpnGateways/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.network.vpnsites.yml b/.azuredevops/modulePipelines/ms.network.vpnsites.yml index db7f94f23b..2c9be39166 100644 --- a/.azuredevops/modulePipelines/ms.network.vpnsites.yml +++ b/.azuredevops/modulePipelines/ms.network.vpnsites.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.network.vpnsites.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Network/vpnSites/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml index ccc86d3434..daf7fc3728 100644 --- a/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml +++ b/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.operationalinsights.workspaces.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.OperationalInsights/workspaces/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml new file mode 100644 index 0000000000..483f0184d5 --- /dev/null +++ b/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml @@ -0,0 +1,56 @@ +name: 'OperationsManagement - Solutions' + +parameters: + - name: removeDeployment + displayName: Remove deployed module + type: boolean + default: true + - name: prerelease + displayName: Publish prerelease module + type: boolean + default: false + +pr: none + +trigger: + batch: true + branches: + include: + - main + paths: + include: + - '/.azuredevops/modulePipelines/ms.operationsmanagement.solutions.yml' + - '/.azuredevops/pipelineTemplates/*.yml' + - '/arm/Microsoft.OperationsManagement/solutions/*' + - '/arm/.global/global.module.tests.ps1' + exclude: + - '/**/*.md' + +variables: + - template: '../../global.variables.yml' + - group: 'PLATFORM_VARIABLES' + - name: modulePath + value: '/arm/Microsoft.OperationsManagement/solutions' + +stages: + - stage: Validation + displayName: Static validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModulePester.yml + + - stage: Deployment + displayName: Deployment validation + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml + parameters: + removeDeployment: '${{ parameters.removeDeployment }}' + deploymentBlocks: + - path: $(modulePath)/.parameters/min.parameters.json + - path: $(modulePath)/.parameters/nonms.parameters.json + - path: $(modulePath)/.parameters/ms.parameters.json + + - stage: Publishing + displayName: Publishing + condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) + jobs: + - template: /.azuredevops/pipelineTemplates/jobs.publishModule.yml diff --git a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml index c2f152f702..bc65e9622b 100644 --- a/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml +++ b/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.recoveryservices.vaults.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.RecoveryServices/vaults/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml index e8e7958d4a..cd826e0c27 100644 --- a/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml +++ b/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.resources.deploymentscripts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Resources/deploymentScripts/*' - '/arm/.global/global.module.tests.ps1' exclude: @@ -48,7 +48,6 @@ stages: - path: $(modulePath)/.parameters/cli.parameters.json - path: $(modulePath)/.parameters/ps.parameters.json - - stage: Publishing displayName: Publishing condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq('${{ parameters.prerelease }}', 'true'))) diff --git a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml index aa30667d78..9bde0ab4fc 100644 --- a/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml +++ b/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.resources.resourcegroups.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Resources/resourceGroups/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.resources.tags.yml b/.azuredevops/modulePipelines/ms.resources.tags.yml index 1191adfdc1..d0fe3f9404 100644 --- a/.azuredevops/modulePipelines/ms.resources.tags.yml +++ b/.azuredevops/modulePipelines/ms.resources.tags.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.resources.tags.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Resources/tags/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml index 5ebbe28dec..a08f557ef1 100644 --- a/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml +++ b/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.security.azuresecuritycenter.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Security/azureSecurityCenter/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml index 9705d56759..d555a10dde 100644 --- a/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml +++ b/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.servicebus.namespaces.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.ServiceBus/namespaces/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml index 044ed42793..34031c7247 100644 --- a/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml +++ b/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.servicefabric.clusters.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/Microsoft.ServiceFabric/clusters/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml index fc218e771e..2a063183c0 100644 --- a/.azuredevops/modulePipelines/ms.sql.managedinstances.yml +++ b/.azuredevops/modulePipelines/ms.sql.managedinstances.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.sql.managedinstances.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Sql/managedInstances/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.sql.servers.yml b/.azuredevops/modulePipelines/ms.sql.servers.yml index d73e2796a1..c644d3a1df 100644 --- a/.azuredevops/modulePipelines/ms.sql.servers.yml +++ b/.azuredevops/modulePipelines/ms.sql.servers.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.sql.servers.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Sql/servers/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml index 5c38fd0527..51f381d312 100644 --- a/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml +++ b/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.storage.storageaccounts.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Storage/storageAccounts/*' - '/arm/.global/global.module.tests.ps1' exclude: @@ -49,6 +49,7 @@ stages: - path: $(modulePath)/.parameters/nfs.parameters.json - path: $(modulePath)/.parameters/parameters.json - path: $(modulePath)/.parameters/v1.parameters.json + - path: $(modulePath)/.parameters/encr.parameters.json - stage: Publishing displayName: Publishing diff --git a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml index cd4e58b8b7..e34d190ed5 100644 --- a/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml +++ b/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.synapse.privatelinkhubs.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Synapse/privateLinkHubs/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml index 7eb6002e95..525c02e6fb 100644 --- a/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml +++ b/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.virtualmachineimages.imagetemplates.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.VirtualMachineImages/imageTemplates/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.web.connections.yml b/.azuredevops/modulePipelines/ms.web.connections.yml index ec6b0e1ec8..9abaa4136d 100644 --- a/.azuredevops/modulePipelines/ms.web.connections.yml +++ b/.azuredevops/modulePipelines/ms.web.connections.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.web.connections.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Web/connections/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml index 306170dfb7..fc2abe59b5 100644 --- a/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml +++ b/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.web.hostingenvironments.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Web/hostingEnvironments/*' - '/arm/.global/global.module.tests.ps1' exclude: @@ -45,7 +45,8 @@ stages: parameters: removeDeployment: '${{ parameters.removeDeployment }}' deploymentBlocks: - - path: $(modulePath)/.parameters/parameters.json + - path: $(modulePath)/.parameters/asev2.parameters.json + - path: $(modulePath)/.parameters/asev3.parameters.json defaultJobTimeoutInMinutes: 180 - stage: Publishing diff --git a/.azuredevops/modulePipelines/ms.web.serverfarms.yml b/.azuredevops/modulePipelines/ms.web.serverfarms.yml index 309a23b009..285b2ce94b 100644 --- a/.azuredevops/modulePipelines/ms.web.serverfarms.yml +++ b/.azuredevops/modulePipelines/ms.web.serverfarms.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.web.serverfarms.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Web/serverfarms/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.web.sites.yml b/.azuredevops/modulePipelines/ms.web.sites.yml index dbdd9e2079..2c7584cd63 100644 --- a/.azuredevops/modulePipelines/ms.web.sites.yml +++ b/.azuredevops/modulePipelines/ms.web.sites.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.web.sites.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Web/sites/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/modulePipelines/ms.web.staticsites.yml b/.azuredevops/modulePipelines/ms.web.staticsites.yml index f7e912c9e3..7784a2ce12 100644 --- a/.azuredevops/modulePipelines/ms.web.staticsites.yml +++ b/.azuredevops/modulePipelines/ms.web.staticsites.yml @@ -20,7 +20,7 @@ trigger: paths: include: - '/.azuredevops/modulePipelines/ms.web.staticsites.yml' - - '/.azuredevops/pipelineTemplates/module.*.yml' + - '/.azuredevops/pipelineTemplates/*.yml' - '/arm/Microsoft.Web/staticSites/*' - '/arm/.global/global.module.tests.ps1' exclude: diff --git a/.azuredevops/pipelineTemplates/jobs.publishModule.yml b/.azuredevops/pipelineTemplates/jobs.publishModule.yml index b4b6db816c..622e05a8e5 100644 --- a/.azuredevops/pipelineTemplates/jobs.publishModule.yml +++ b/.azuredevops/pipelineTemplates/jobs.publishModule.yml @@ -268,6 +268,7 @@ jobs: scriptLocation: inlineScript inlineScript: | # Log into Az-PowerShell context + . $profile # Load PS-Profile configuration $SecuredPassword = ConvertTo-SecureString -AsPlainText -String $env:servicePrincipalKey $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $env:servicePrincipalId, $SecuredPassword Connect-AzAccount -ServicePrincipal -TenantId $env:tenantId -Credential $Credential @@ -310,4 +311,4 @@ jobs: Publish-ModuleToPrivateBicepRegistry @functionInput -Verbose Write-Host "##[endgroup]" - } \ No newline at end of file + } diff --git a/.azuredevops/pipelineTemplates/jobs.validateModulePester.yml b/.azuredevops/pipelineTemplates/jobs.validateModulePester.yml index b5711d27b3..9e2870a142 100644 --- a/.azuredevops/pipelineTemplates/jobs.validateModulePester.yml +++ b/.azuredevops/pipelineTemplates/jobs.validateModulePester.yml @@ -152,11 +152,11 @@ jobs: if (-not [String]::IsNullOrEmpty('${{ parameters.managementGroupId }}')) { $enforcedTokenList['managementGroupId'] = '${{ parameters.managementGroupId }}' } - if (-not [String]::IsNullOrEmpty('$(ARM_TENANT_ID)')) { - $enforcedTokenList['deploymentSpId'] = '$(ARM_TENANT_ID)' - } if (-not [String]::IsNullOrEmpty('$(DEPLOYMENT_SP_ID)')) { - $enforcedTokenList['tenantId'] = '$(DEPLOYMENT_SP_ID)' + $enforcedTokenList['deploymentSpId'] = '$(DEPLOYMENT_SP_ID)' + } + if (-not [String]::IsNullOrEmpty('$(ARM_TENANT_ID)')) { + $enforcedTokenList['tenantId'] = '$(ARM_TENANT_ID)' } # --------------------- # @@ -169,9 +169,6 @@ jobs: enforcedTokenList = $enforcedTokenList } } - Filter = @{ - ExcludeTag = 'ApiCheck' - } TestResult = @{ TestSuiteName = 'Global Module Tests' OutputPath = 'arm/.global/global-testResults.xml' @@ -194,111 +191,3 @@ jobs: searchFolder: 'arm/.global' continueOnError: false condition: succeededOrFailed() - - - job: - displayName: Run global API tests - timeoutInMinutes: ${{ parameters.defaultJobTimeoutInMinutes }} - pool: - ${{ if ne(parameters.vmImage, '') }}: - vmImage: ${{ parameters.vmImage }} - ${{ if ne(parameters.poolName, '') }}: - name: ${{ parameters.poolName }} - steps: - # [Checkout Repositories] task(s) - #-------------------------------- - - checkout: self - - ${{ if ne(parameters.checkoutRepositories, '') }}: - - ${{ each checkoutRepository in parameters.checkoutRepositories }}: - - checkout: ${{ checkoutRepository }} - fetchDepth: 1 # the depth of commits to ask Git to fetch; if not set defaults to no limit - path: 's/${{ checkoutRepository }}' - - # [Multi Repo] Support task - #-------------------------- - - task: PowerShell@2 - displayName: Handle Multi-Repo Invocation - inputs: - targetType: inline - pwsh: true - script: | - # Handle multiple-repositories - if( "${{ join(';',parameters.checkoutRepositories) }}".length -gt 0) { - Write-Verbose "Multi-Repo Checkout" -Verbose - $moduleRepoRoot = Join-Path '$(System.DefaultWorkingDirectory)' '$(modulesRepository)' - $parametersRepoRoot = Join-Path '$(System.DefaultWorkingDirectory)' '${{ parameters.parametersRepository }}' - } else { - Write-Verbose "No Multi-Repo Checkout" -Verbose - $moduleRepoRoot = '$(System.DefaultWorkingDirectory)' - $parametersRepoRoot = '$(System.DefaultWorkingDirectory)' - } - Write-Output "##vso[task.setvariable variable=ModuleRepoRoot]$moduleRepoRoot" - Write-Output "##vso[task.setvariable variable=ParametersRepoRoot]$parametersRepoRoot" - - # [Agent] Prepare environment - #---------------------------- - - task: PowerShell@2 - displayName: 'Setup agent' - inputs: - targetType: inline - pwsh: true - script: | - # Load used functions - . (Join-Path '$(moduleRepoRoot)' 'utilities' 'pipelines' 'sharedScripts' 'Set-EnvironmentOnAgent.ps1') - - # Set agent up - Set-EnvironmentOnAgent - - # [Module Pester Test] task(s) - #----------------------------- - - task: AzurePowerShell@5 - displayName: 'Run API tests via (Pester) via connection [${{ parameters.serviceConnection }}]' - inputs: - azureSubscription: ${{ parameters.serviceConnection }} - azurePowerShellVersion: ${{ parameters.azurePowerShellVersion }} - preferredAzurePowerShellVersion: ${{ parameters.preferredAzurePowerShellVersion }} - ScriptType: InlineScript - pwsh: true - inline: | - $moduleFolderPaths = @(Join-Path '$(moduleRepoRoot)' '${{ parameters.modulePath }}') - $moduleFolderPaths += (Get-ChildItem $moduleFolderPaths -Recurse -Directory -Force).FullName | Where-Object { - (Get-ChildItem $_ -File -Depth 0 -Include @('deploy.json', 'deploy.bicep') -Force).Count -gt 0 - } - Write-Verbose "Execute tests in path(s):" -Verbose - foreach($moduleFolderPath in $moduleFolderPaths) { - Write-Verbose "- [($moduleFolderPath]" -Verbose - } - - # --------------------- # - # Invoke Pester test(s) # - # --------------------- # - Invoke-Pester -Configuration @{ - Run = @{ - Container = New-PesterContainer -Path (Join-Path '$(moduleRepoRoot)' 'arm' '.global' 'global.module.tests.ps1') -Data @{ - moduleFolderPaths = $moduleFolderPaths - } - } - Filter = @{ - Tag = 'ApiCheck' - } - TestResult = @{ - TestSuiteName = 'Global Module API Tests' - OutputPath = 'arm/.global/api-testResults.xml' - OutputFormat = 'NUnitXml' - Enabled = $true - } - Output = @{ - Verbosity = 'Detailed' - } - } -ErrorAction 'Stop' - errorActionPreference: continue - - - task: PublishTestResults@2 - displayName: Publish Test Results - inputs: - testRunTitle: 'Global Module API Tests' - testResultsFormat: NUnit - testResultsFiles: api-testResults.xml - failTaskOnFailedTests: true - searchFolder: 'arm/.global' - continueOnError: false - condition: succeededOrFailed() diff --git a/.azuredevops/platformPipelines/platform.dependencies.yml b/.azuredevops/platformPipelines/platform.dependencies.yml index 5022693228..33013e95ea 100644 --- a/.azuredevops/platformPipelines/platform.dependencies.yml +++ b/.azuredevops/platformPipelines/platform.dependencies.yml @@ -47,6 +47,9 @@ stages: - path: $(dependencyPath)/$(resourceType)/parameters/validation.parameters.json templateFilePath: $(templateFilePath) displayName: Validation Resource Group + - path: $(dependencyPath)/$(resourceType)/parameters/locks.parameters.json + templateFilePath: $(templateFilePath) + displayName: Locks Resource Group - stage: deploy_ppg displayName: Deploy proximity placement group @@ -547,6 +550,9 @@ stages: - path: $(dependencyPath)/$(resourceType)/parameters/fw.additional.parameters.json templateFilePath: $(templateFilePath) displayName: Firewall Additional Public IP + - path: $(dependencyPath)/$(resourceType)/parameters/bas.additional.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion Additional Public IP - stage: deploy_appi displayName: Deploy application insight dependsOn: @@ -925,7 +931,7 @@ stages: displayName: Default Virtual Network - path: $(dependencyPath)/$(resourceType)/parameters/1.bastion.parameters.json templateFilePath: $(templateFilePath) - displayName: Bastion Virtual Network + displayName: Bastion Virtual Network Min - path: $(dependencyPath)/$(resourceType)/parameters/2.vnetpeer01.parameters.json templateFilePath: $(templateFilePath) displayName: VNET PEering 1 Virtual Network @@ -949,7 +955,17 @@ stages: displayName: Azure Firewall Virtual Network Min - path: $(dependencyPath)/$(resourceType)/parameters/10.azfw.parameters.json templateFilePath: $(templateFilePath) - displayName: Azure Firewall Virtual Network Custom Pip + displayName: Azure Firewall Virtual Network Additonal + - path: $(dependencyPath)/$(resourceType)/parameters/11.azfw.parameters.json + templateFilePath: $(templateFilePath) + displayName: Azure Firewall Virtual Network Custom + - path: $(dependencyPath)/$(resourceType)/parameters/12.bastion.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion Virtual Network Additional + - path: $(dependencyPath)/$(resourceType)/parameters/13.bastion.parameters.json + templateFilePath: $(templateFilePath) + displayName: Bastion Virtual Network Custom + - ${{ if eq( parameters.deploySqlMiDependencies, true) }}: - path: $(dependencyPath)/$(resourceType)/parameters/6.sqlmi.parameters.json templateFilePath: $(templateFilePath) diff --git a/.azuredevops/platformPipelines/platform.updateReadMe.yml b/.azuredevops/platformPipelines/platform.updateReadMe.yml index 13ebd9444d..d2eb068bf0 100644 --- a/.azuredevops/platformPipelines/platform.updateReadMe.yml +++ b/.azuredevops/platformPipelines/platform.updateReadMe.yml @@ -13,7 +13,7 @@ trigger: - 'arm/**/deploy.json' variables: - - template: '/.azuredevops/pipelineVariables/global.variables.yml' + - template: '../../global.variables.yml' - name: pipelinePrincipalGitUserName value: 'CARMLPipelinePrincipal' - name: pipelinePrincipalGitUserEmail diff --git a/.azuredevops/platformPipelines/platform.wiki-sync.yml b/.azuredevops/platformPipelines/platform.wiki-sync.yml index f63c80fb75..0d9809af6f 100644 --- a/.azuredevops/platformPipelines/platform.wiki-sync.yml +++ b/.azuredevops/platformPipelines/platform.wiki-sync.yml @@ -16,7 +16,7 @@ trigger: variables: - group: 'PLATFORM_VARIABLES' - - template: '/.azuredevops/pipelineVariables/global.variables.yml' + - template: '../../global.variables.yml' - name: pipelinePrincipalGitUserName value: 'CARMLPipelinePrincipal' - name: pipelinePrincipalGitUserEmail diff --git a/.github/actions/templates/publishModule/action.yml b/.github/actions/templates/publishModule/action.yml index 598e787e87..cb3a327922 100644 --- a/.github/actions/templates/publishModule/action.yml +++ b/.github/actions/templates/publishModule/action.yml @@ -92,85 +92,89 @@ runs: enable-AzPSSession: true - name: 'Publish module to template specs' - shell: pwsh if: ${{ inputs.templateSpecsDoPublish == 'true' }} - run: | - # Grouping task logs - Write-Output "::group::Publish module to template specs" - - # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourcePublish' 'Get-ModulesToPublish.ps1') - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourcePublish' 'Publish-ModuleToTemplateSpec.ps1') - - $functionInput = @{ - TemplateFilePath = Join-Path $env:GITHUB_WORKSPACE "${{ inputs.templateFilePath }}" - } - - Write-Verbose "Invoke task with" -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - # Get the modified child resources - $ModulesToPublish = Get-ModulesToPublish @functionInput -Verbose + uses: azure/powershell@v1 + with: + azPSVersion: 'latest' + inlineScript: | + # Grouping task logs + Write-Output "::group::Publish module to template specs" - # Publish the modified child resources - foreach ($ModuleToPublish in $ModulesToPublish) { - $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] - Write-Output "::group::$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" + # Load used functions + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourcePublish' 'Get-ModulesToPublish.ps1') + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourcePublish' 'Publish-ModuleToTemplateSpec.ps1') $functionInput = @{ - TemplateFilePath = $ModuleToPublish.TemplateFilePath - TemplateSpecsRgName = '${{ inputs.templateSpecsRgName }}' - TemplateSpecsRgLocation = '${{ inputs.templateSpecsRgLocation }}' - TemplateSpecsDescription = '${{ inputs.templateSpecsDescription }}' - ModuleVersion = $ModuleToPublish.Version + TemplateFilePath = Join-Path $env:GITHUB_WORKSPACE "${{ inputs.templateFilePath }}" } Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - Publish-ModuleToTemplateSpec @functionInput -Verbose - } + # Get the modified child resources + $ModulesToPublish = Get-ModulesToPublish @functionInput -Verbose - Write-Output "::endgroup::" + # Publish the modified child resources + foreach ($ModuleToPublish in $ModulesToPublish) { + $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] + Write-Output "::group::$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" - - name: 'Publish module to private bicep registry' - shell: pwsh - if: ${{ inputs.bicepRegistryDoPublish == 'true' }} - run: | - # Grouping task logs - Write-Output "::group::Publish module to private bicep registry" + $functionInput = @{ + TemplateFilePath = $ModuleToPublish.TemplateFilePath + TemplateSpecsRgName = '${{ inputs.templateSpecsRgName }}' + TemplateSpecsRgLocation = '${{ inputs.templateSpecsRgLocation }}' + TemplateSpecsDescription = '${{ inputs.templateSpecsDescription }}' + ModuleVersion = $ModuleToPublish.Version + } - # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourcePublish' 'Get-ModulesToPublish.ps1') - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourcePublish' 'Publish-ModuleToPrivateBicepRegistry.ps1') + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - $functionInput = @{ - TemplateFilePath = Join-Path $env:GITHUB_WORKSPACE "${{ inputs.templateFilePath }}" - } + Publish-ModuleToTemplateSpec @functionInput -Verbose + } - Write-Verbose "Invoke task with" -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + Write-Output "::endgroup::" - # Get the modified child resources - $ModulesToPublish = Get-ModulesToPublish @functionInput -Verbose + - name: 'Publish module to private bicep registry' + if: ${{ inputs.bicepRegistryDoPublish == 'true' }} + uses: azure/powershell@v1 + with: + azPSVersion: 'latest' + inlineScript: | + # Grouping task logs + Write-Output "::group::Publish module to private bicep registry" - # Publish the modified child resources - foreach ($ModuleToPublish in $ModulesToPublish) { - $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] - Write-Output "::group::$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" + # Load used functions + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourcePublish' 'Get-ModulesToPublish.ps1') + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourcePublish' 'Publish-ModuleToPrivateBicepRegistry.ps1') $functionInput = @{ - TemplateFilePath = $ModuleToPublish.TemplateFilePath - BicepRegistryName = '${{ inputs.bicepRegistryName }}' - BicepRegistryRgName = '${{ inputs.bicepRegistryRgName }}' - BicepRegistryRgLocation = '${{ inputs.bicepRegistryRgLocation }}' - ModuleVersion = $ModuleToPublish.Version + TemplateFilePath = Join-Path $env:GITHUB_WORKSPACE "${{ inputs.templateFilePath }}" } Write-Verbose "Invoke task with" -Verbose Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - Publish-ModuleToPrivateBicepRegistry @functionInput -Verbose - } + # Get the modified child resources + $ModulesToPublish = Get-ModulesToPublish @functionInput -Verbose - Write-Output "::endgroup::" + # Publish the modified child resources + foreach ($ModuleToPublish in $ModulesToPublish) { + $RelPath = (($ModuleToPublish.TemplateFilePath).Split('/arm/')[-1]).Split('/deploy.')[0] + Write-Output "::group::$(' - [{0}] [{1}]' -f $RelPath, $ModuleToPublish.Version)" + + $functionInput = @{ + TemplateFilePath = $ModuleToPublish.TemplateFilePath + BicepRegistryName = '${{ inputs.bicepRegistryName }}' + BicepRegistryRgName = '${{ inputs.bicepRegistryRgName }}' + BicepRegistryRgLocation = '${{ inputs.bicepRegistryRgLocation }}' + ModuleVersion = $ModuleToPublish.Version + } + + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + + Publish-ModuleToPrivateBicepRegistry @functionInput -Verbose + } + + Write-Output "::endgroup::" diff --git a/.github/actions/templates/validateModuleDeployment/action.yml b/.github/actions/templates/validateModuleDeployment/action.yml index 3bd386f6f5..7d23efa771 100644 --- a/.github/actions/templates/validateModuleDeployment/action.yml +++ b/.github/actions/templates/validateModuleDeployment/action.yml @@ -119,183 +119,191 @@ runs: # [Token replacement] task(s) # --------------------------- - name: 'Replace Parameter File Tokens [${{ inputs.parameterFilePath }}] ' - shell: pwsh - run: | - # Grouping task logs - Write-Output "::group::Replace Parameter File Tokens [${{ inputs.parameterFilePath }}]" - - # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') - - # Load Settings File - $Settings = Get-Content -Path "settings.json" | ConvertFrom-Json -AsHashTable - - # Construct Token Function Input - $ConvertTokensInputs = @{ - Tokens = @{} - FilePath = '${{ inputs.parameterFilePath }}' - TokenPrefix = $Settings.parameterFileTokens.tokenPrefix - TokenSuffix = $Settings.parameterFileTokens.tokenSuffix - } + uses: azure/powershell@v1 + with: + azPSVersion: 'latest' + inlineScript: | + # Grouping task logs + Write-Output "::group::Replace Parameter File Tokens [${{ inputs.parameterFilePath }}]" + + # Load used functions + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'tokensReplacement' 'Convert-TokensInFile.ps1') + + # Load Settings File + $Settings = Get-Content -Path "settings.json" | ConvertFrom-Json -AsHashTable + + # Construct Token Function Input + $ConvertTokensInputs = @{ + Tokens = @{} + FilePath = '${{ inputs.parameterFilePath }}' + TokenPrefix = $Settings.parameterFileTokens.tokenPrefix + TokenSuffix = $Settings.parameterFileTokens.tokenSuffix + } - # Local tokens - $ConvertTokensInputs.Tokens += @{ - resourceGroupName = '${{ inputs.resourceGroupName }}' - subscriptionId = '${{ inputs.subscriptionId }}' - managementGroupId = '${{ inputs.managementGroupId }}' - tenantId = '${{ env.ARM_TENANT_ID }}' - deploymentSpId = '${{ env.DEPLOYMENT_SP_ID }}' - } + # Local tokens + $ConvertTokensInputs.Tokens += @{ + resourceGroupName = '${{ inputs.resourceGroupName }}' + subscriptionId = '${{ inputs.subscriptionId }}' + managementGroupId = '${{ inputs.managementGroupId }}' + tenantId = '${{ env.ARM_TENANT_ID }}' + deploymentSpId = '${{ env.DEPLOYMENT_SP_ID }}' + } - # Add local tokens - if ($Settings.parameterFileTokens.localTokens) { - $tokenMap = @{} - foreach ($token in $Settings.parameterFileTokens.localTokens) { - $tokenMap += @{ $token.name = $token.value } + # Add local tokens + if ($Settings.parameterFileTokens.localTokens) { + $tokenMap = @{} + foreach ($token in $Settings.parameterFileTokens.localTokens) { + $tokenMap += @{ $token.name = $token.value } + } + Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens += $tokenMap } - Write-Verbose ('Using local tokens [{0}]' -f ($tokenMap.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens += $tokenMap - } - # Add custom tokens (passed in via the pipeline) - if(-not [String]::IsNullOrEmpty('${{ inputs.customParameterFileTokens }}')) { - $customTokens = '${{ inputs.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable - Write-Verbose ('Using custom parameter file tokens [{0}]' -f ($customTokens.Keys -join ', ')) -Verbose - $ConvertTokensInputs.Tokens += $customTokens - } + # Add custom tokens (passed in via the pipeline) + if(-not [String]::IsNullOrEmpty('${{ inputs.customParameterFileTokens }}')) { + $customTokens = '${{ inputs.customParameterFileTokens }}' | ConvertFrom-Json -AsHashTable + Write-Verbose ('Using custom parameter file tokens [{0}]' -f ($customTokens.Keys -join ', ')) -Verbose + $ConvertTokensInputs.Tokens += $customTokens + } - # Invoke Token Replacement Functionality - $null = Convert-TokensInFile @ConvertTokensInputs + # Invoke Token Replacement Functionality + $null = Convert-TokensInFile @ConvertTokensInputs - Write-Output "::endgroup::" + Write-Output "::endgroup::" # [Deployment validation] task(s) # ------------------------------- - name: 'Validate [${{ inputs.templateFilePath }}]' - shell: pwsh - run: | - # Grouping task logs - Write-Output "::group::Validate [${{ inputs.templateFilePath }}]" + uses: azure/powershell@v1 + with: + azPSVersion: 'latest' + inlineScript: | + # Grouping task logs + Write-Output "::group::Validate [${{ inputs.templateFilePath }}]" - # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - - # ----------- # - # INVOKE TEST # - # ----------- # - $functionInput = @{ - templateFilePath = '${{ inputs.templateFilePath }}' - location = '${{ inputs.location }}' - resourceGroupName = '${{ inputs.resourceGroupName }}' - subscriptionId = '${{ inputs.subscriptionId }}' - managementGroupId = '${{ inputs.managementGroupId }}' - additionalParameters = @{} - } + # Load used functions + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'Test-TemplateDeployment.ps1') - if(-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { - $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' - } + # ----------- # + # INVOKE TEST # + # ----------- # + $functionInput = @{ + templateFilePath = '${{ inputs.templateFilePath }}' + location = '${{ inputs.location }}' + resourceGroupName = '${{ inputs.resourceGroupName }}' + subscriptionId = '${{ inputs.subscriptionId }}' + managementGroupId = '${{ inputs.managementGroupId }}' + additionalParameters = @{} + } - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { - $functionInput['additionalParameters'] += @{ - enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry - } - } + if(-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { + $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' + } - Write-Verbose "Invoke task with" -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + $functionInput['additionalParameters'] += @{ + enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry + } + } - Test-TemplateDeployment @functionInput -Verbose + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - Write-Output "::endgroup::" + Test-TemplateDeployment @functionInput -Verbose + + Write-Output "::endgroup::" # [Deployment execution] task(s) # ------------------------------ - name: 'Deploy [${{ inputs.templateFilePath }}] with parameters [${{ inputs.parameterFilePath }}]' - shell: pwsh id: deploy_step - run: | - # Grouping task logs - Write-Output "::group::Deploy [${{ inputs.templateFilePath }}] with parameters [${{ inputs.parameterFilePath }}]" + uses: azure/powershell@v1 + with: + azPSVersion: 'latest' + inlineScript: | + # Grouping task logs + Write-Output "::group::Deploy [${{ inputs.templateFilePath }}] with parameters [${{ inputs.parameterFilePath }}]" - # Load used functions - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'New-TemplateDeployment.ps1') - - $functionInput = @{ - templateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - location = '${{ inputs.location }}' - resourceGroupName = '${{ inputs.resourceGroupName }}' - subscriptionId = '${{ inputs.subscriptionId }}' - managementGroupId = '${{ inputs.managementGroupId }}' - doNotThrow = $true - additionalParameters = @{} - } + # Load used functions + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceDeployment' 'New-TemplateDeployment.ps1') - if(-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { - $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' - } + $functionInput = @{ + templateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + location = '${{ inputs.location }}' + resourceGroupName = '${{ inputs.resourceGroupName }}' + subscriptionId = '${{ inputs.subscriptionId }}' + managementGroupId = '${{ inputs.managementGroupId }}' + doNotThrow = $true + additionalParameters = @{} + } - $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json - if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { - $functionInput['additionalParameters'] += @{ - enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry - } - } + if(-not [String]::IsNullOrEmpty('${{ inputs.parameterFilePath }}')) { + $functionInput['parameterFilePath'] = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.parameterFilePath }}' + } - Write-Verbose "Invoke task with" -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose + $projectSettings = Get-Content -Path 'settings.json' | ConvertFrom-Json + if (-not [String]::IsNullOrEmpty($projectSettings.enableDefaultTelemetry) -and (Get-Content -Path $functionInput.templateFilePath -Raw) -like '*param enableDefaultTelemetry*') { + $functionInput['additionalParameters'] += @{ + enableDefaultTelemetry = $projectSettings.enableDefaultTelemetry + } + } - # Invoke deployment - $res = New-TemplateDeployment @functionInput -Verbose + Write-Verbose "Invoke task with" -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - # Get deployment name - Write-Output ('::set-output name={0}::{1}' -f 'deploymentName', $res.deploymentName) + # Invoke deployment + $res = New-TemplateDeployment @functionInput -Verbose - # Populate further outputs - $deploymentOutputHash=@{} + # Get deployment name + Write-Output ('::set-output name={0}::{1}' -f 'deploymentName', $res.deploymentName) - foreach ($outputKey in $res.deploymentOutput.Keys) { - Write-Output ('::set-output name={0}::{1}' -f $outputKey, $res.deploymentOutput[$outputKey].Value) - $deploymentOutputHash.add($outputKey,$res.deploymentOutput[$outputKey].Value) - } + # Populate further outputs + $deploymentOutputHash=@{} - $deploymentOutput = $deploymentOutputHash | ConvertTo-Json -Compress -Depth 100 - Write-Verbose "Deployment output: $deploymentOutput" -Verbose - Write-Output ('::set-output name={0}::{1}' -f 'deploymentOutput', $deploymentOutput) + foreach ($outputKey in $res.deploymentOutput.Keys) { + Write-Output ('::set-output name={0}::{1}' -f $outputKey, $res.deploymentOutput[$outputKey].Value) + $deploymentOutputHash.add($outputKey,$res.deploymentOutput[$outputKey].Value) + } - if ($res.ContainsKey('exception')) { - # Happens only if there is an exception - throw $res.exception - } + $deploymentOutput = $deploymentOutputHash | ConvertTo-Json -Compress -Depth 100 + Write-Verbose "Deployment output: $deploymentOutput" -Verbose + Write-Output ('::set-output name={0}::{1}' -f 'deploymentOutput', $deploymentOutput) - Write-Output "::endgroup::" + if ($res.ContainsKey('exception')) { + # Happens only if there is an exception + throw $res.exception + } + + Write-Output "::endgroup::" # [Deployment removal] task(s) # ---------------------------- - name: 'Remove [${{ inputs.templateFilePath }}] from parameters [${{ inputs.parameterFilePath }}]' - shell: pwsh if: ${{ always() && inputs.removeDeployment == 'true' && steps.deploy_step.outputs.deploymentName != '' }} - run: | - # Grouping task logs - Write-Output "::group::Remove [${{ inputs.templateFilePath }}] from parameters [${{ inputs.parameterFilePath }}]" + uses: azure/powershell@v1 + with: + azPSVersion: 'latest' + inlineScript: | + # Grouping task logs + Write-Output "::group::Remove [${{ inputs.templateFilePath }}] from parameters [${{ inputs.parameterFilePath }}]" + + # Load used function + . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') + + if (-not [String]::IsNullOrEmpty('${{ steps.deploy_step.outputs.deploymentName }}')) { + $functionInput = @{ + DeploymentName = '${{ steps.deploy_step.outputs.deploymentName }}' + TemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' + ResourceGroupName = '${{ inputs.resourceGroupName }}' + ManagementGroupId = '${{ inputs.managementGroupId }}' + Verbose = $true + } - # Load used function - . (Join-Path $env:GITHUB_WORKSPACE 'utilities' 'pipelines' 'resourceRemoval' 'Initialize-DeploymentRemoval.ps1') + Write-Verbose 'Invoke task with' -Verbose + Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - if (-not [String]::IsNullOrEmpty('${{ steps.deploy_step.outputs.deploymentName }}')) { - $functionInput = @{ - DeploymentName = '${{ steps.deploy_step.outputs.deploymentName }}' - TemplateFilePath = Join-Path $env:GITHUB_WORKSPACE '${{ inputs.templateFilePath }}' - ResourceGroupName = '${{ inputs.resourceGroupName }}' - ManagementGroupId = '${{ inputs.managementGroupId }}' - Verbose = $true + Initialize-DeploymentRemoval @functionInput } - Write-Verbose 'Invoke task with' -Verbose - Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose - - Initialize-DeploymentRemoval @functionInput - } - - Write-Output "::endgroup::" + Write-Output "::endgroup::" diff --git a/.github/actions/templates/validateModulePester/action.yml b/.github/actions/templates/validateModulePester/action.yml index dd24a671db..2585707067 100644 --- a/.github/actions/templates/validateModulePester/action.yml +++ b/.github/actions/templates/validateModulePester/action.yml @@ -52,7 +52,7 @@ runs: Write-Output "::endgroup::" - - name: Azure Login + - name: 'Azure Login' uses: Azure/login@v1 with: creds: ${{ env.AZURE_CREDENTIALS }} @@ -83,11 +83,11 @@ runs: if (-not [String]::IsNullOrEmpty('${{ env.ARM_MGMTGROUP_ID }}')) { $enforcedTokenList['managementGroupId'] = '${{ env.ARM_MGMTGROUP_ID }}' } - if (-not [String]::IsNullOrEmpty('${{ env.ARM_TENANT_ID }}')) { - $enforcedTokenList['deploymentSpId'] = '${{ env.ARM_TENANT_ID }}' - } if (-not [String]::IsNullOrEmpty('${{ env.DEPLOYMENT_SP_ID }}')) { - $enforcedTokenList['tenantId'] = '${{ env.DEPLOYMENT_SP_ID }}' + $enforcedTokenList['deploymentSpId'] = '${{ env.DEPLOYMENT_SP_ID }}' + } + if (-not [String]::IsNullOrEmpty('${{ env.ARM_TENANT_ID }}')) { + $enforcedTokenList['tenantId'] = '${{ env.ARM_TENANT_ID }}' } # --------------------- # @@ -100,9 +100,6 @@ runs: enforcedTokenList = $enforcedTokenList } } - Filter = @{ - ExcludeTag = 'ApiCheck' - } TestResult = @{ TestSuiteName = 'Global Module Tests' OutputPath = 'arm/.global/global-testResults.xml' @@ -114,60 +111,8 @@ runs: } } - Write-Output "::endgroup::" - - - name: Publish Test Results + - name: 'Publish Test Results' uses: EnricoMi/publish-unit-test-result-action@v1 - if: always() && !contains('cancelled,skipped', steps.pester_run_step.outcome) - with: - files: arm/.global/global-testResults.xml - - # [Module Pester Test] task(s) - #----------------------------- - - name: 'Run API tests via Pester' - id: pester_api_run_step if: always() - shell: pwsh - run: | - # Grouping task logs - Write-Output "::group::Run API tests via Pester" - - $moduleFolderPaths = @(Join-Path $env:GITHUB_WORKSPACE "${{ inputs.modulePath }}") - $moduleFolderPaths += (Get-ChildItem $moduleFolderPaths -Recurse -Directory -Force).FullName | Where-Object { - (Get-ChildItem $_ -File -Depth 0 -Include @('deploy.json', 'deploy.bicep') -Force).Count -gt 0 - } - Write-Verbose "Execute tests in path(s):" -Verbose - foreach($moduleFolderPath in $moduleFolderPaths) { - Write-Verbose "- [($moduleFolderPath]" -Verbose - } - - # --------------------- # - # Invoke Pester test(s) # - # --------------------- # - Invoke-Pester -Configuration @{ - Run = @{ - Container = New-PesterContainer -Path 'arm/.global/global.module.tests.ps1' -Data @{ - moduleFolderPaths = $moduleFolderPaths - } - } - Filter = @{ - Tag = 'ApiCheck' - } - TestResult = @{ - TestSuiteName = 'Global Module API Tests' - OutputPath = 'arm/.global/api-testResults.xml' - OutputFormat = 'JUnitXml' - Enabled = $true - } - Output = @{ - Verbosity = 'Detailed' - } - } - - Write-Output "::endgroup::" - - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v1 - if: always() && !contains('cancelled,skipped', steps.pester_api_run_step.outcome) with: - files: arm/.global/api-testResults.xml + files: 'arm/.global/*-testResults.xml' diff --git a/.github/workflows/ms.authorization.locks.yml b/.github/workflows/ms.authorization.locks.yml new file mode 100644 index 0000000000..49c6070b64 --- /dev/null +++ b/.github/workflows/ms.authorization.locks.yml @@ -0,0 +1,145 @@ +name: 'Authorization: Locks' + +on: + workflow_dispatch: + inputs: + removeDeployment: + type: boolean + description: 'Remove deployed module' + required: false + default: true + prerelease: + type: boolean + description: 'Publish prerelease module' + required: false + default: false + push: + branches: + - main + paths: + - '.github/actions/templates/**' + - '.github/workflows/ms.authorization.locks.yml' + - 'arm/Microsoft.Authorization/locks/**' + - 'arm/.global/global.module.tests.ps1' + - '!*/**/readme.md' + - 'utilities/pipelines/**' + - '!utilities/pipelines/dependencies/**' + +env: + variablesPath: 'global.variables.yml' + modulePath: 'arm/Microsoft.Authorization/locks' + workflowPath: '.github/workflows/ms.authorization.locks.yml' + AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} + ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' + ARM_MGMTGROUP_ID: '${{ secrets.ARM_MGMTGROUP_ID }}' + ARM_TENANT_ID: '${{ secrets.ARM_TENANT_ID }}' + DEPLOYMENT_SP_ID: '${{ secrets.DEPLOYMENT_SP_ID }}' + +jobs: + ########################### + # Initialize pipeline # + ########################### + job_initialize_pipeline: + runs-on: ubuntu-20.04 + name: 'Initialize pipeline' + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: 'Set input parameters to output variables' + id: get-workflow-param + uses: ./.github/actions/templates/getWorkflowInput + with: + workflowPath: '${{ env.workflowPath}}' + - name: 'Get parameter file paths' + id: get-parameter-file-paths + uses: ./.github/actions/templates/getParameterFiles + with: + modulePath: '${{ env.modulePath }}' + outputs: + removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} + parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + + ######################### + # Static validation # + ######################### + job_module_pester_validation: + runs-on: ubuntu-20.04 + name: 'Static validation' + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: 'Run tests' + uses: ./.github/actions/templates/validateModulePester + with: + modulePath: '${{ env.modulePath }}' + + ############################# + # Deployment validation # + ############################# + job_module_deploy_validation: + runs-on: ubuntu-20.04 + name: 'Deployment validation' + needs: + - job_initialize_pipeline + - job_module_pester_validation + strategy: + fail-fast: false + matrix: + parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + # ------------------- # + ## Deploy & Remove ## + # ------------------- # + - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + uses: ./.github/actions/templates/validateModuleDeployment + with: + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + location: '${{ env.location }}' + resourceGroupName: '${{ env.resourceGroupName }}' + subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' + managementGroupId: '${{ secrets.ARM_MGMTGROUP_ID }}' + removeDeployment: '${{ needs.job_initialize_pipeline.outputs.removeDeployment }}' + + ################## + # Publishing # + ################## + job_publish_module: + name: 'Publishing' + if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' || github.event.inputs.prerelease == 'true' + runs-on: ubuntu-20.04 + needs: + - job_module_deploy_validation + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + - name: 'Publishing' + uses: ./.github/actions/templates/publishModule + with: + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + templateSpecsRGName: '${{ env.templateSpecsRGName }}' + templateSpecsRGLocation: '${{ env.templateSpecsRGLocation }}' + templateSpecsDescription: '${{ env.templateSpecsDescription }}' + templateSpecsDoPublish: '${{ env.templateSpecsDoPublish }}' + bicepRegistryName: '${{ env.bicepRegistryName }}' + bicepRegistryRGName: '${{ env.bicepRegistryRGName }}' + bicepRegistryRgLocation: '${{ env.bicepRegistryRgLocation }}' + bicepRegistryDoPublish: '${{ env.bicepRegistryDoPublish }}' diff --git a/.github/workflows/ms.dataprotection.backupvaults.yml b/.github/workflows/ms.dataprotection.backupvaults.yml new file mode 100644 index 0000000000..5f6b9fc845 --- /dev/null +++ b/.github/workflows/ms.dataprotection.backupvaults.yml @@ -0,0 +1,142 @@ +name: "DataProtection: BackupVaults" + +on: + workflow_dispatch: + inputs: + removeDeployment: + type: boolean + description: "Remove deployed module" + required: false + default: true + prerelease: + type: boolean + description: "Publish prerelease module" + required: false + default: false + push: + branches: + - main + paths: + - ".github/actions/templates/**" + - ".github/workflows/ms.dataprotection.backupvaults.yml" + - "arm/Microsoft.DataProtection/backupVaults/**" + - "arm/.global/global.module.tests.ps1" + - "!*/**/readme.md" + - "utilities/pipelines/**" + - "!utilities/pipelines/dependencies/**" + +env: + variablesPath: "global.variables.yml" + modulePath: "arm/Microsoft.DataProtection/backupVaults" + workflowPath: ".github/workflows/ms.dataprotection.backupvaults.yml" + AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} + ARM_SUBSCRIPTION_ID: "${{ secrets.ARM_SUBSCRIPTION_ID }}" + ARM_MGMTGROUP_ID: "${{ secrets.ARM_MGMTGROUP_ID }}" + ARM_TENANT_ID: "${{ secrets.ARM_TENANT_ID }}" + DEPLOYMENT_SP_ID: "${{ secrets.DEPLOYMENT_SP_ID }}" + +jobs: + ########################### + # Initialize pipeline # + ########################### + job_initialize_pipeline: + runs-on: ubuntu-20.04 + name: "Initialize pipeline" + steps: + - name: "Checkout" + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: "Set input parameters to output variables" + id: get-workflow-param + uses: ./.github/actions/templates/getWorkflowInput + with: + workflowPath: "${{ env.workflowPath}}" + - name: "Get parameter file paths" + id: get-parameter-file-paths + uses: ./.github/actions/templates/getParameterFiles + with: + modulePath: "${{ env.modulePath }}" + outputs: + removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} + parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + + ######################### + # Static validation # + ######################### + job_module_pester_validation: + runs-on: ubuntu-20.04 + name: "Static validation" + steps: + - name: "Checkout" + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: "Run tests" + uses: ./.github/actions/templates/validateModulePester + with: + modulePath: "${{ env.modulePath }}" + + ############################# + # Deployment validation # + ############################# + job_module_deploy_validation: + runs-on: ubuntu-20.04 + name: "Deployment validation" + needs: + - job_initialize_pipeline + - job_module_pester_validation + strategy: + fail-fast: false + matrix: + parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + steps: + - name: "Checkout" + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + - name: "Using parameter file [${{ matrix.parameterFilePaths }}]" + uses: ./.github/actions/templates/validateModuleDeployment + with: + templateFilePath: "${{ env.modulePath }}/deploy.bicep" + parameterFilePath: "${{ env.modulePath }}/${{ matrix.parameterFilePaths }}" + location: "${{ env.location }}" + resourceGroupName: "${{ env.resourceGroupName }}" + subscriptionId: "${{ secrets.ARM_SUBSCRIPTION_ID }}" + managementGroupId: "${{ secrets.ARM_MGMTGROUP_ID }}" + removeDeployment: "${{ needs.job_initialize_pipeline.outputs.removeDeployment }}" + + ################## + # Publishing # + ################## + job_publish_module: + name: "Publishing" + if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' || github.event.inputs.prerelease == 'true' + runs-on: ubuntu-20.04 + needs: + - job_module_deploy_validation + steps: + - name: "Checkout" + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + - name: "Publishing" + uses: ./.github/actions/templates/publishModule + with: + templateFilePath: "${{ env.modulePath }}/deploy.bicep" + templateSpecsRGName: "${{ env.templateSpecsRGName }}" + templateSpecsRGLocation: "${{ env.templateSpecsRGLocation }}" + templateSpecsDescription: "${{ env.templateSpecsDescription }}" + templateSpecsDoPublish: "${{ env.templateSpecsDoPublish }}" + bicepRegistryName: "${{ env.bicepRegistryName }}" + bicepRegistryRGName: "${{ env.bicepRegistryRGName }}" + bicepRegistryRgLocation: "${{ env.bicepRegistryRgLocation }}" + bicepRegistryDoPublish: "${{ env.bicepRegistryDoPublish }}" diff --git a/.github/workflows/ms.managedservices.registrationdefinitions.yml b/.github/workflows/ms.managedservices.registrationdefinitions.yml index 73cdc76d09..174cdf5a4d 100644 --- a/.github/workflows/ms.managedservices.registrationdefinitions.yml +++ b/.github/workflows/ms.managedservices.registrationdefinitions.yml @@ -7,7 +7,7 @@ on: type: boolean description: 'Remove deployed module' required: false - default: false # Needs a custom removal script + default: true prerelease: type: boolean description: 'Publish prerelease module' diff --git a/.github/workflows/ms.operationsmanagement.solutions.yml b/.github/workflows/ms.operationsmanagement.solutions.yml new file mode 100644 index 0000000000..db74fec086 --- /dev/null +++ b/.github/workflows/ms.operationsmanagement.solutions.yml @@ -0,0 +1,142 @@ +name: 'OperationsManagement: Solutions' + +on: + workflow_dispatch: + inputs: + removeDeployment: + type: boolean + description: 'Remove deployed module' + required: false + default: true + prerelease: + type: boolean + description: 'Publish prerelease module' + required: false + default: false + push: + branches: + - main + paths: + - '.github/actions/templates/**' + - '.github/workflows/ms.operationsmanagement.solutions.yml' + - 'arm/Microsoft.OperationsManagement/solutions/**' + - 'arm/.global/global.module.tests.ps1' + - '!*/**/readme.md' + - 'utilities/pipelines/**' + - '!utilities/pipelines/dependencies/**' + +env: + variablesPath: 'global.variables.yml' + modulePath: 'arm/Microsoft.OperationsManagement/solutions' + workflowPath: '.github/workflows/ms.operationsmanagement.solutions.yml' + AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} + ARM_SUBSCRIPTION_ID: '${{ secrets.ARM_SUBSCRIPTION_ID }}' + ARM_MGMTGROUP_ID: '${{ secrets.ARM_MGMTGROUP_ID }}' + ARM_TENANT_ID: '${{ secrets.ARM_TENANT_ID }}' + DEPLOYMENT_SP_ID: '${{ secrets.DEPLOYMENT_SP_ID }}' + +jobs: + ########################### + # Initialize pipeline # + ########################### + job_initialize_pipeline: + runs-on: ubuntu-20.04 + name: 'Initialize pipeline' + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: 'Set input parameters to output variables' + id: get-workflow-param + uses: ./.github/actions/templates/getWorkflowInput + with: + workflowPath: '${{ env.workflowPath}}' + - name: 'Get parameter file paths' + id: get-parameter-file-paths + uses: ./.github/actions/templates/getParameterFiles + with: + modulePath: '${{ env.modulePath }}' + outputs: + removeDeployment: ${{ steps.get-workflow-param.outputs.removeDeployment }} + parameterFilePaths: ${{ steps.get-parameter-file-paths.outputs.parameterFilePaths }} + + ######################### + # Static validation # + ######################### + job_module_pester_validation: + runs-on: ubuntu-20.04 + name: 'Static validation' + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: 'Run tests' + uses: ./.github/actions/templates/validateModulePester + with: + modulePath: '${{ env.modulePath }}' + + ############################# + # Deployment validation # + ############################# + job_module_deploy_validation: + runs-on: ubuntu-20.04 + name: 'Deployment validation' + needs: + - job_initialize_pipeline + - job_module_pester_validation + strategy: + fail-fast: false + matrix: + parameterFilePaths: ${{ fromJSON(needs.job_initialize_pipeline.outputs.parameterFilePaths) }} + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + - name: 'Using parameter file [${{ matrix.parameterFilePaths }}]' + uses: ./.github/actions/templates/validateModuleDeployment + with: + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + parameterFilePath: '${{ env.modulePath }}/${{ matrix.parameterFilePaths }}' + location: '${{ env.location }}' + resourceGroupName: '${{ env.resourceGroupName }}' + subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' + managementGroupId: '${{ secrets.ARM_MGMTGROUP_ID }}' + removeDeployment: '${{ needs.job_initialize_pipeline.outputs.removeDeployment }}' + + ################## + # Publishing # + ################## + job_publish_module: + name: 'Publishing' + if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' || github.event.inputs.prerelease == 'true' + runs-on: ubuntu-20.04 + needs: + - job_module_deploy_validation + steps: + - name: 'Checkout' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set environment variables + uses: ./.github/actions/templates/setEnvironmentVariables + with: + variablesPath: ${{ env.variablesPath }} + - name: 'Publishing' + uses: ./.github/actions/templates/publishModule + with: + templateFilePath: '${{ env.modulePath }}/deploy.bicep' + templateSpecsRGName: '${{ env.templateSpecsRGName }}' + templateSpecsRGLocation: '${{ env.templateSpecsRGLocation }}' + templateSpecsDescription: '${{ env.templateSpecsDescription }}' + templateSpecsDoPublish: '${{ env.templateSpecsDoPublish }}' + bicepRegistryName: '${{ env.bicepRegistryName }}' + bicepRegistryRGName: '${{ env.bicepRegistryRGName }}' + bicepRegistryRgLocation: '${{ env.bicepRegistryRgLocation }}' + bicepRegistryDoPublish: '${{ env.bicepRegistryDoPublish }}' diff --git a/.github/workflows/platform.dependencies.yml b/.github/workflows/platform.dependencies.yml index fb76c5b845..1754c3c32c 100644 --- a/.github/workflows/platform.dependencies.yml +++ b/.github/workflows/platform.dependencies.yml @@ -43,7 +43,7 @@ jobs: strategy: fail-fast: false matrix: - parameterFilePaths: ['validation.parameters.json'] + parameterFilePaths: ['validation.parameters.json', 'locks.parameters.json'] steps: - name: 'Checkout' uses: actions/checkout@v2 @@ -76,6 +76,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -105,6 +106,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' id: deploy_msi uses: ./.github/actions/templates/validateModuleDeployment @@ -116,6 +118,7 @@ jobs: subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' managementGroupId: '${{ secrets.ARM_MGMTGROUP_ID }}' removeDeployment: '${{ env.removeDeployment }}' + - name: Set msi principal ID output id: print_msi_prinId uses: azure/powershell@v1 @@ -143,6 +146,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -170,6 +174,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -197,6 +202,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -224,6 +230,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -246,12 +253,13 @@ jobs: fail-fast: false matrix: parameterFilePaths: - ['appi.parameters.json', 'aut.parameters.json', 'parameters.json'] + ['appi.parameters.json', 'aut.parameters.json', 'sol.parameters.json', 'parameters.json'] steps: - name: 'Checkout' uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -280,6 +288,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -303,6 +312,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Setup agent' shell: pwsh run: | @@ -316,11 +326,13 @@ jobs: # Set agent up Set-EnvironmentOnAgent -PSModules $Modules + - name: Azure Login uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} enable-AzPSSession: true + - name: Run PowerShell uses: azure/powershell@v1 with: @@ -384,6 +396,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -416,6 +429,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' id: deploy_imgt uses: ./.github/actions/templates/validateModuleDeployment @@ -427,6 +441,7 @@ jobs: subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' managementGroupId: '${{ secrets.ARM_MGMTGROUP_ID }}' removeDeployment: '${{ env.removeDeployment }}' + - name: 'Set image template output' id: print_imgt_output uses: azure/powershell@v1 @@ -456,6 +471,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Setup agent' shell: pwsh run: | @@ -470,11 +486,13 @@ jobs: # Set agent up Set-EnvironmentOnAgent -PSModules $Modules + - name: Azure Login uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} enable-AzPSSession: true + - name: 'Trigger building new image' uses: azure/powershell@v1 with: @@ -486,6 +504,7 @@ jobs: Write-Verbose "Trigger new image creation with imageTemplateName $imageTemplateName and imageTemplateResourceGroup $imageTemplateResourceGroup" -Verbose Start-AzImageBuilderTemplate -ImageTemplateName $imageTemplateName -ResourceGroupName $imageTemplateResourceGroup azPSVersion: 'latest' + - name: 'Copy baked vhd to a storage account' uses: azure/powershell@v1 with: @@ -574,6 +593,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -601,6 +621,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -628,6 +649,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -656,6 +678,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -692,6 +715,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -722,6 +746,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -749,6 +774,7 @@ jobs: [ 'apgw.parameters.json', 'bas.parameters.json', + 'bas.additional.parameters.json', 'lb.parameters.json', 'lb.min.parameters.json', 'fw.parameters.json', @@ -759,6 +785,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -788,6 +815,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -817,6 +845,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -846,6 +875,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -876,6 +906,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -908,6 +939,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -933,6 +965,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Setup agent' shell: pwsh run: | @@ -946,11 +979,13 @@ jobs: # Set agent up Set-EnvironmentOnAgent -PSModules $Modules + - name: Azure Login uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} enable-AzPSSession: true + - name: 'Set key vault secrets keys and certificates' uses: azure/powershell@v1 with: @@ -1084,6 +1119,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -1109,6 +1145,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Setup agent' shell: pwsh run: | @@ -1128,6 +1165,7 @@ jobs: with: creds: ${{ secrets.AZURE_CREDENTIALS }} enable-AzPSSession: true + - name: 'Set sqlmi key vault secrets and keys' uses: azure/powershell@v1 with: @@ -1203,6 +1241,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -1230,6 +1269,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -1263,6 +1303,9 @@ jobs: '8.aadds.parameters.json', '9.azfw.parameters.json', '10.azfw.parameters.json', + '11.azfw.parameters.json', + '12.bastion.parameters.json', + '13.bastion.parameters.json', 'parameters.json' ] steps: @@ -1270,6 +1313,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -1299,6 +1343,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -1326,6 +1371,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -1355,6 +1401,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: @@ -1382,6 +1429,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - name: 'Deploy module' uses: ./.github/actions/templates/validateModuleDeployment with: diff --git a/README.md b/README.md index 407176a7d7..7d4e4a6241 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ The CI environment supports both ARM and Bicep and can be leveraged using GitHub | [App Service Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Web/serverfarms) | [!['Web: Serverfarms'](https://github.com/Azure/ResourceModules/workflows/Web:%20Serverfarms/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.web.serverfarms.yml) | | [Application Insights](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Insights/components) | [!['Insights: Components'](https://github.com/Azure/ResourceModules/workflows/Insights:%20Components/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.insights.components.yml) | | [Application Security Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/applicationSecurityGroups) | [!['Network: ApplicationSecurityGroups'](https://github.com/Azure/ResourceModules/workflows/Network:%20ApplicationSecurityGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.applicationsecuritygroups.yml) | +| [Authorization Locks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/locks) | [!['Authorization: Locks'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20Locks/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.locks.yml) | | [Automation Accounts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Automation/automationAccounts) | [!['Automation: AutomationAccounts'](https://github.com/Azure/ResourceModules/workflows/Automation:%20AutomationAccounts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.automation.automationaccounts.yml) | | [Availability Sets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/availabilitySets) | [!['Compute: AvailabilitySets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20AvailabilitySets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.availabilitysets.yml) | | [AVD Application Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/applicationgroups) | [!['DesktopVirtualization: ApplicationGroups'](https://github.com/Azure/ResourceModules/workflows/DesktopVirtualization:%20ApplicationGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.desktopvirtualization.applicationgroups.yml) | @@ -64,6 +65,7 @@ The CI environment supports both ARM and Bicep and can be leveraged using GitHub | [Container Instances](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerInstance/containerGroups) | [!['ContainerInstance: ContainerGroups'](https://github.com/Azure/ResourceModules/workflows/ContainerInstance:%20ContainerGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerinstance.containergroups.yml) | | [Container Registries](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerRegistry/registries) | [!['ContainerRegistry: Registries'](https://github.com/Azure/ResourceModules/workflows/ContainerRegistry:%20Registries/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.containerregistry.registries.yml) | | [Data Factories](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataFactory/factories) | [!['DataFactory: Factories'](https://github.com/Azure/ResourceModules/workflows/DataFactory:%20Factories/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.datafactory.factories.yml) | +| [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataProtection/backupVaults) | [![DataProtection: BackupVaults](https://github.com/Azure/ResourceModules/workflows/DataProtection:%20BackupVaults/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.dataprotection.backupvaults.yml) | | [DDoS Protection Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/ddosProtectionPlans) | [!['Network: DdosProtectionPlans'](https://github.com/Azure/ResourceModules/workflows/Network:%20DdosProtectionPlans/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.ddosprotectionplans.yml) | | [Deployment Scripts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/deploymentScripts) | [!['Resources: DeploymentScripts'](https://github.com/Azure/ResourceModules/workflows/Resources:%20DeploymentScripts/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.resources.deploymentscripts.yml) | | [Disk Encryption Sets](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Compute/diskEncryptionSets) | [!['Compute: DiskEncryptionSets'](https://github.com/Azure/ResourceModules/workflows/Compute:%20DiskEncryptionSets/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.compute.diskencryptionsets.yml) | @@ -92,6 +94,7 @@ The CI environment supports both ARM and Bicep and can be leveraged using GitHub | [Network Interface](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkInterfaces) | [!['Network: NetworkInterfaces'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkInterfaces/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkinterfaces.yml) | | [Network Security Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkSecurityGroups) | [!['Network: NetworkSecurityGroups'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkSecurityGroups/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networksecuritygroups.yml) | | [Network Watchers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/networkWatchers) | [!['Network: NetworkWatchers'](https://github.com/Azure/ResourceModules/workflows/Network:%20NetworkWatchers/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.network.networkwatchers.yml) | +| [OperationsManagement Solutions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationsManagement/solutions) | [!['OperationsManagement: Solutions'](https://github.com/Azure/ResourceModules/workflows/OperationsManagement:%20Solutions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.operationsmanagement.solutions.yml) | | [Policy Assignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyAssignments) | [!['Authorization: PolicyAssignments'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyAssignments/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policyassignments.yml) | | [Policy Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyDefinitions) | [!['Authorization: PolicyDefinitions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyDefinitions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policydefinitions.yml) | | [Policy Exemptions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyExemptions) | [!['Authorization: PolicyExemptions'](https://github.com/Azure/ResourceModules/workflows/Authorization:%20PolicyExemptions/badge.svg)](https://github.com/Azure/ResourceModules/actions/workflows/ms.authorization.policyexemptions.yml) | diff --git a/SECURITY.md b/SECURITY.md index 4fa5946a86..afdb1a0885 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -18,7 +18,7 @@ You should receive a response within 24 hours. If for some reason you do not, pl Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: -* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) +* Type of issue (e.g., buffer overflow, SQL injection, cross-site scripting, etc.) * Full paths of source file(s) related to the manifestation of the issue * The location of the affected source code (tag/branch/commit or direct URL) * Any special configuration required to reproduce the issue diff --git a/SUPPORT.md b/SUPPORT.md index b83506f3a4..5f8e13652a 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -6,9 +6,9 @@ If issues are encountered when deploying these Bicep modules users will be able Following list of issues are within the scope of Microsoft support: -- Underlying Resource or Resource Provider issues when deploying modules (e.g. Management Groups, Policies, Log Analytics Workspace, Virtual WAN, Virtual Network) for any deployment failure -- Module specific issues (e.g. template errors, internal server errors, etc.) -- Template specific issues (e.g. template publishing, resource removal, etc.) +- Underlying Resource or Resource Provider issues when deploying modules (e.g., Management Groups, Policies, Log Analytics Workspace, Virtual WAN, Virtual Network) for any deployment failure +- Module specific issues (e.g., template errors, internal server errors, etc.) +- Template specific issues (e.g., template publishing, resource removal, etc.) Any issues that are deemed outside of the above list by Microsoft support and/or requires bugfix in the module or code in the repo, Microsoft support will redirect user to file the issue on GitHub. diff --git a/arm/.global/global.module.tests.ps1 b/arm/.global/global.module.tests.ps1 index 15ae9e6c5b..049c61f1fa 100644 --- a/arm/.global/global.module.tests.ps1 +++ b/arm/.global/global.module.tests.ps1 @@ -23,6 +23,11 @@ $script:enforcedTokenList = $enforcedTokenList # For runtime purposes, we cache the compiled template in a hashtable that uses a formatted relative module path as a key $script:convertedTemplates = @{} +# Shared exception messages +$script:bicepTemplateCompilationFailedException = "Unable to compile the deploy.bicep template's content. This can happen if there is an error in the template. Please check if you can run the command `az bicep build --file {0} --stdout | ConvertFrom-Json -AsHashtable`." # -f $templateFilePath +$script:jsonTemplateLoadFailedException = "Unable to load the deploy.json template's content. This can happen if there is an error in the template. Please check if you can run the command `Get-Content {0} -Raw | ConvertFrom-Json -AsHashtable`." # -f $templateFilePath +$script:templateNotFoundException = 'No template file found in folder [{0}]' # -f $moduleFolderPath + # Import any helper function used in this test script Import-Module (Join-Path $PSScriptRoot 'shared\helper.psm1') -Force @@ -70,6 +75,7 @@ Describe 'File/folder tests' -Tag Modules { } It '[] Module should contain a [deploy.json/deploy.bicep] file' -TestCases $moduleFolderTestCases { + param( [string] $moduleFolderPath ) $hasARM = (Test-Path (Join-Path -Path $moduleFolderPath 'deploy.json')) @@ -78,16 +84,19 @@ Describe 'File/folder tests' -Tag Modules { } It '[] Module should contain a [readme.md] file' -TestCases $moduleFolderTestCases { + param( [string] $moduleFolderPath ) (Test-Path (Join-Path -Path $moduleFolderPath 'readme.md')) | Should -Be $true } It '[] Module should contain a [.parameters] folder' -TestCases ($moduleFolderTestCases | Where-Object { $_.isTopLevelModule }) { + param( [string] $moduleFolderPath ) Test-Path (Join-Path -Path $moduleFolderPath '.parameters') | Should -Be $true } It '[] Module should contain a [version.json] file' -TestCases $moduleFolderTestCases { + param( [string] $moduleFolderPath ) (Test-Path (Join-Path -Path $moduleFolderPath 'version.json')) | Should -Be $true } @@ -97,7 +106,7 @@ Describe 'File/folder tests' -Tag Modules { $folderTestCases = [System.Collections.ArrayList]@() foreach ($moduleFolderPath in $moduleFolderPaths) { - if (Test-Path (Join-Path $moduleFolderPath '.paramateres')) { + if (Test-Path (Join-Path $moduleFolderPath '.parameters')) { $folderTestCases += @{ moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] moduleFolderPath = $moduleFolderPath @@ -106,8 +115,9 @@ Describe 'File/folder tests' -Tag Modules { } It '[] folder should contain one or more *parameters.json files' -TestCases $folderTestCases { + param( - $moduleFolderName, + [string] $moduleFolderName, $moduleFolderPath ) $parameterFolderPath = Join-Path $moduleFolderPath '.parameters' @@ -128,8 +138,9 @@ Describe 'File/folder tests' -Tag Modules { } It '[] *parameters.json files in the .parameters folder should be valid json' -TestCases $parameterFolderFilesTestCases { + param( - $moduleFolderName, + [string] $moduleFolderName, $parameterFilePath ) (Get-Content $parameterFilePath) | ConvertFrom-Json @@ -149,12 +160,20 @@ Describe 'Readme tests' -Tag Readme { if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' - $templateContent = az bicep build --file $templateFilePath --stdout | ConvertFrom-Json -AsHashtable + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + + if (-not $templateContent) { + throw ($bicepTemplateCompilationFailedException -f $templateFilePath) + } } elseIf (Test-Path (Join-Path $moduleFolderPath 'deploy.json')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.json' $templateContent = Get-Content $templateFilePath -Raw | ConvertFrom-Json -AsHashtable + + if (-not $templateContent) { + throw ($jsonTemplateLoadFailedException -f $templateFilePath) + } } else { - throw "No template file found in folder [$moduleFolderPath]" + throw ($templateNotFoundException -f $moduleFolderPath) } $convertedTemplates[$moduleFolderPathKey] = @{ templateFilePath = $templateFilePath @@ -172,64 +191,57 @@ Describe 'Readme tests' -Tag Readme { templateFilePath = $templateFilePath readMeFilePath = Join-Path -Path $moduleFolderPath 'readme.md' readMeContent = Get-Content (Join-Path -Path $moduleFolderPath 'readme.md') + isTopLevelModule = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1].Split('/').Count -eq 2 # / } } It '[] Readme.md file should not be empty' -TestCases $readmeFolderTestCases { + param( - $moduleFolderName, - $readMeContent + [string] $moduleFolderName, + [object[]] $readMeContent ) $readMeContent | Should -Not -Be $null } - It '[] Readme.md file should contain the these titles in order: Resource Types, Parameters, Outputs' -TestCases $readmeFolderTestCases { + It '[] Readme.md file should contain these sections in order: Navigation, Resource Types, Parameters, Outputs, Deployment examples' -TestCases $readmeFolderTestCases { + param( - $moduleFolderName, - $readMeContent + [string] $moduleFolderName, + [object[]] $readMeContent, + [boolean] $isTopLevelModule ) - $ReadmeHTML = ($readMeContent | ConvertFrom-Markdown -ErrorAction SilentlyContinue).Html + $expectedHeadersInOrder = @('Navigation', 'Resource types', 'Parameters', 'Outputs') - $Heading2Order = @('Resource Types', 'parameters', 'Outputs') - $Headings2List = @() - foreach ($H in $ReadmeHTML) { - if ($H.Contains('') + 1 - $EndIndex = $H.LastIndexof('<') - $headings2List += ($H.Substring($StartingIndex, $EndIndex - $StartingIndex)) - } + if ($isTopLevelModule) { + # Only top-level modules have parameter files and hence deployment examples + $expectedHeadersInOrder += 'Deployment examples' } - $differentiatingItems = $Heading2Order | Where-Object { $Headings2List -notcontains $_ } - $differentiatingItems.Count | Should -Be 0 -Because ('list of heading titles missing in the ReadMe file [{0}] should be empty' -f ($differentiatingItems -join ',')) + $actualHeadersInOrder = $readMeContent | Where-Object { $_ -like '#*' } | ForEach-Object { ($_ -replace '#', '').TrimStart() } + + $filteredActuals = $actualHeadersInOrder | Where-Object { $expectedHeadersInOrder -contains $_ } + + $missingHeaders = $expectedHeadersInOrder | Where-Object { $actualHeadersInOrder -notcontains $_ } + $missingHeaders.Count | Should -Be 0 -Because ('the list of missing headers [{0}] should be empty' -f ($missingHeaders -join ',')) + + $filteredActuals | Should -Be $expectedHeadersInOrder -Because 'the headers should exist in the expected order' } It '[] Resources section should contain all resources from the template file' -TestCases $readmeFolderTestCases { + param( - $moduleFolderName, - $templateContent, - $readMeContent + [string] $moduleFolderName, + [hashtable] $templateContent, + [object[]] $readMeContent ) # Get ReadMe data - $resourcesSectionStartIndex = 0 - while ($readMeContent[$resourcesSectionStartIndex] -notlike '*# Resource Types' -and -not ($resourcesSectionStartIndex -ge $readMeContent.count)) { - $resourcesSectionStartIndex++ - } - - $resourcesTableStartIndex = $resourcesSectionStartIndex + 1 - while ($readMeContent[$resourcesTableStartIndex] -notlike '*|*' -and -not ($resourcesTableStartIndex -ge $readMeContent.count)) { - $resourcesTableStartIndex++ - } - - $resourcesTableEndIndex = $resourcesTableStartIndex + 2 - while ($readMeContent[$resourcesTableEndIndex] -like '|*' -and -not ($resourcesTableEndIndex -ge $readMeContent.count)) { - $resourcesTableEndIndex++ - } + $tableStartIndex, $tableEndIndex = Get-TableStartAndEndIndex -ReadMeContent $readMeContent -MarkdownSectionIdentifier '*# Resource Types' $ReadMeResourcesList = [System.Collections.ArrayList]@() - for ($index = $resourcesTableStartIndex + 2; $index -lt $resourcesTableEndIndex; $index++) { + for ($index = $tableStartIndex + 2; $index -lt $tableEndIndex; $index++) { $ReadMeResourcesList += $readMeContent[$index].Split('|')[1].Replace('`', '').Trim() } @@ -242,31 +254,19 @@ Describe 'Readme tests' -Tag Readme { $differentiatingItems.Count | Should -Be 0 -Because ("list of template resources missing from the ReadMe's list [{0}] should be empty" -f ($differentiatingItems -join ',')) } - It '[] Resources section should not contain more resources as in the template file' -TestCases $readmeFolderTestCases { + It '[] Resources section should not contain more resources than the template file' -TestCases $readmeFolderTestCases { + param( - $moduleFolderName, - $templateContent, - $readMeContent + [string] $moduleFolderName, + [hashtable] $templateContent, + [object[]] $readMeContent ) # Get ReadMe data - $resourcesSectionStartIndex = 0 - while ($readMeContent[$resourcesSectionStartIndex] -notlike '*# Resource Types' -and -not ($resourcesSectionStartIndex -ge $readMeContent.count)) { - $resourcesSectionStartIndex++ - } - - $resourcesTableStartIndex = $resourcesSectionStartIndex + 1 - while ($readMeContent[$resourcesTableStartIndex] -notlike '*|*' -and -not ($resourcesTableStartIndex -ge $readMeContent.count)) { - $resourcesTableStartIndex++ - } - - $resourcesTableEndIndex = $resourcesTableStartIndex + 2 - while ($readMeContent[$resourcesTableEndIndex] -like '|*' -and -not ($resourcesTableEndIndex -ge $readMeContent.count)) { - $resourcesTableEndIndex++ - } + $tableStartIndex, $tableEndIndex = Get-TableStartAndEndIndex -ReadMeContent $readMeContent -MarkdownSectionIdentifier '*# Resource Types' $ReadMeResourcesList = [System.Collections.ArrayList]@() - for ($index = $resourcesTableStartIndex + 2; $index -lt $resourcesTableEndIndex; $index++) { + for ($index = $tableStartIndex + 2; $index -lt $tableEndIndex; $index++) { $ReadMeResourcesList += $readMeContent[$index].Split('|')[1].Replace('`', '').Trim() } @@ -279,40 +279,70 @@ Describe 'Readme tests' -Tag Readme { $differentiatingItems.Count | Should -Be 0 -Because ("list of resources in the ReadMe's list [{0}] not in the template file should be empty" -f ($differentiatingItems -join ',')) } - It '[] parameters section should contain a table with these column names in order: Parameter Name, Type, Default Value, Possible values, Description' -TestCases $readmeFolderTestCases { + It '[] Parameters section should contain a table for each existing parameter category in the following order: Required, Conditional, Optional, Generated' -TestCases $readmeFolderTestCases { + param( - $moduleFolderName, - $readMeContent + [string] $moduleFolderName, + [hashtable] $templateContent, + [object[]] $readMeContent ) - $ReadmeHTML = ($readMeContent | ConvertFrom-Markdown -ErrorAction SilentlyContinue).Html - $ParameterHeadingOrder = @('Parameter Name', 'Type', 'Default Value', 'Allowed Values', 'Description') - $ComparisonFlag = 0 - $Headings = @(@()) - foreach ($H in $ReadmeHTML) { - if ($H.Contains('') + 1 - $EndIndex = $H.LastIndexof('<') - $Headings += , (@($H.Substring($StartingIndex, $EndIndex - $StartingIndex), $ReadmeHTML.IndexOf($H))) - } - } - $HeadingIndex = $Headings | Where-Object { $_ -eq 'parameters' } - if ($HeadingIndex -eq $null) { - Write-Verbose "[parameters section should contain a table with these column names in order: Parameter Name, Type, Default Value, Possible values, Description] Error At ($moduleFolderName)" -Verbose - $true | Should -Be $false - } - $ParameterHeadingsList = $ReadmeHTML[$HeadingIndex[1] + 2].Replace('

    |', '').Replace('|

    ', '').Split('|').Trim() - if (Compare-Object -ReferenceObject $ParameterHeadingOrder -DifferenceObject $ParameterHeadingsList -SyncWindow 0) { - $ComparisonFlag = $ComparisonFlag + 1 + $expectColumnsInOrder = @('Required', 'Conditional', 'Optional', 'Generated') + + ## Get all descriptions + $descriptions = $templateContent.parameters.Values.metadata.description + + ## Get the module parameter categories + $expectedParamCategories = $descriptions | ForEach-Object { $_.Split('.')[0] } | Select-Object -Unique # Get categories in template + $expectedParamCategoriesInOrder = $expectColumnsInOrder | Where-Object { $_ -in $expectedParamCategories } # add required ones in order + $expectedParamCategoriesInOrder += $expectedParamCategories | Where-Object { $_ -notin $expectColumnsInOrder } # add non-required ones after + + $actualParamCategories = $readMeContent | Select-String -Pattern '^\*\*(.+) parameters\*\*$' -AllMatches | ForEach-Object { $_.Matches.Groups[1].Value } # get actual in readme + + $actualParamCategories | Should -Be $expectedParamCategoriesInOrder + } + + It '[] parameter tables should provide columns in the following order: Parameter Name, Type, Default Value, Allowed Values, Description. Each column should be present unless empty for all the rows.' -TestCases $readmeFolderTestCases { + + param( + [string] $moduleFolderName, + [hashtable] $templateContent, + [object[]] $readMeContent + ) + + ## Get all descriptions + $descriptions = $templateContent.parameters.Values.metadata.description + + ## Get the module parameter categories + $paramCategories = $descriptions | ForEach-Object { $_.Split('.')[0] } | Select-Object -Unique + + foreach ($paramCategory in $paramCategories) { + + # Filter to relevant items + [array] $categoryParameters = $templateContent.parameters.Values | Where-Object { $_.metadata.description -like "$paramCategory. *" } | Sort-Object -Property 'Name' -Culture 'en-US' + + # Check properties for later reference + $shouldHaveDefault = $categoryParameters.defaultValue.count -gt 0 + $shouldHaveAllowed = $categoryParameters.allowedValues.count -gt 0 + + $expectedColumnsInOrder = @('Parameter Name', 'Type') + if ($shouldHaveDefault) { $expectedColumnsInOrder += @('Default Value') } + if ($shouldHaveAllowed) { $expectedColumnsInOrder += @('Allowed Values') } + $expectedColumnsInOrder += @('Description') + + $readMeCategoryIndex = $readMeContent | Select-String -Pattern "^\*\*$paramCategory parameters\*\*$" | ForEach-Object { $_.LineNumber } + $readmeCategoryColumns = ($readMeContent[$readMeCategoryIndex] -split '\|') | ForEach-Object { $_.Trim() } | Where-Object { -not [String]::IsNullOrEmpty($_) } + + $readmeCategoryColumns | Should -Be $expectedColumnsInOrder } - ($ComparisonFlag -gt 2) | Should -Be $false } - It '[] parameters section should contain all parameters from the template file' -TestCases $readmeFolderTestCases { + It '[] Parameters section should contain all parameters from the template file' -TestCases $readmeFolderTestCases { + param( - $moduleFolderName, - $templateContent, - $readMeContent + [string] $moduleFolderName, + [hashtable] $templateContent, + [object[]] $readMeContent ) # Get Template data @@ -320,26 +350,17 @@ Describe 'Readme tests' -Tag Readme { # Get ReadMe data ## Get section start index - $parametersSectionStartIndex = 0 - while ($readMeContent[$parametersSectionStartIndex] -notlike '*# Parameters' -and -not ($parametersSectionStartIndex -ge $readMeContent.count)) { - $parametersSectionStartIndex++ - } - Write-Verbose ("Start row of the parameters section in the readme: $parametersSectionStartIndex") + $sectionStartIndex = Get-MarkdownSectionStartIndex -ReadMeContent $readMeContent -MarkdownSectionIdentifier '*# Parameters' - if ($parametersSectionStartIndex -ge $readMeContent.count) { + if ($sectionStartIndex -ge $readMeContent.count) { throw 'Parameters section is missing in the Readme. Please add and re-run the tests.' } - ## Get section end index - $parametersSectionEndIndex = $parametersSectionStartIndex + 1 - while ($readMeContent[$parametersSectionEndIndex] -notlike '*# *' -and -not ($parametersSectionEndIndex -ge $readMeContent.count)) { - $parametersSectionEndIndex++ - } - Write-Verbose ("End row of the parameters section in the readme: $parametersSectionEndIndex") + $parametersSectionEndIndex = Get-MarkdownSectionEndIndex -ReadMeContent $readMeContent -SectionStartIndex $sectionStartIndex ## Iterate over all parameter tables $parametersList = [System.Collections.ArrayList]@() - $sectionIndex = $parametersSectionStartIndex + $sectionIndex = $sectionStartIndex while ($sectionIndex -lt $parametersSectionEndIndex) { ### Get table start index $parametersTableStartIndex = $sectionIndex @@ -367,23 +388,15 @@ Describe 'Readme tests' -Tag Readme { } It '[] Outputs section should contain a table with these column names in order: Output Name, Type' -TestCases $readmeFolderTestCases { + param( - $moduleFolderName, + [string] $moduleFolderName, $readMeContent ) - # Get ReadMe data - $outputsSectionStartIndex = 0 - while ($readMeContent[$outputsSectionStartIndex] -notlike '*# Outputs' -and -not ($outputsSectionStartIndex -ge $readMeContent.count)) { - $outputsSectionStartIndex++ - } - - $outputsTableStartIndex = $outputsSectionStartIndex + 1 - while ($readMeContent[$outputsTableStartIndex] -notlike '*|*' -and -not ($outputsTableStartIndex -ge $readMeContent.count)) { - $outputsTableStartIndex++ - } + $tableStartIndex, $tableEndIndex = Get-TableStartAndEndIndex -ReadMeContent $readMeContent -MarkdownSectionIdentifier '*# Outputs' - $outputsTableHeader = $readMeContent[$outputsTableStartIndex].Split('|').Trim() | Where-Object { -not [String]::IsNullOrEmpty($_) } + $outputsTableHeader = $readMeContent[$tableStartIndex].Split('|').Trim() | Where-Object { -not [String]::IsNullOrEmpty($_) } # Test $expectedOutputsTableOrder = @('Output Name', 'Type') @@ -392,45 +405,34 @@ Describe 'Readme tests' -Tag Readme { } It '[] Output section should contain all outputs defined in the template file' -TestCases $readmeFolderTestCases { + param( - $moduleFolderName, - $templateContent, - $readMeContent + [string] $moduleFolderName, + [hashtable] $templateContent, + [object[]] $readMeContent ) # Get ReadMe data - $outputsSectionStartIndex = 0 - while ($readMeContent[$outputsSectionStartIndex] -notlike '*# Outputs' -and -not ($outputsSectionStartIndex -ge $readMeContent.count)) { - $outputsSectionStartIndex++ - } - - $outputsTableStartIndex = $outputsSectionStartIndex + 1 - while ($readMeContent[$outputsTableStartIndex] -notlike '*|*' -and -not ($outputsTableStartIndex -ge $readMeContent.count)) { - $outputsTableStartIndex++ - } + $tableStartIndex, $tableEndIndex = Get-TableStartAndEndIndex -ReadMeContent $readMeContent -MarkdownSectionIdentifier '*# Outputs' - $outputsTableEndIndex = $outputsTableStartIndex + 2 - while ($readMeContent[$outputsTableEndIndex] -like '|*' -and -not ($outputsTableEndIndex -ge $readMeContent.count)) { - $outputsTableEndIndex++ - } - - $ReadMeoutputsList = [System.Collections.ArrayList]@() - for ($index = $outputsTableStartIndex + 2; $index -lt $outputsTableEndIndex; $index++) { - $ReadMeoutputsList += $readMeContent[$index].Split('|')[1].Replace('`', '').Trim() + $ReadMeOutputsList = [System.Collections.ArrayList]@() + for ($index = $tableStartIndex + 2; $index -lt $tableEndIndex; $index++) { + $ReadMeOutputsList += $readMeContent[$index].Split('|')[1].Replace('`', '').Trim() } # Template data $expectedOutputs = $templateContent.outputs.Keys # Test - $differentiatingItems = $expectedOutputs | Where-Object { $ReadMeoutputsList -notcontains $_ } + $differentiatingItems = $expectedOutputs | Where-Object { $ReadMeOutputsList -notcontains $_ } $differentiatingItems.Count | Should -Be 0 -Because ('list of template outputs missing in the ReadMe file [{0}] should be empty' -f ($differentiatingItems -join ',')) - $differentiatingItems = $ReadMeoutputsList | Where-Object { $expectedOutputs -notcontains $_ } + $differentiatingItems = $ReadMeOutputsList | Where-Object { $expectedOutputs -notcontains $_ } $differentiatingItems.Count | Should -Be 0 -Because ('list of excess template outputs defined in the ReadMe file [{0}] should be empty' -f ($differentiatingItems -join ',')) } It '[] Set-ModuleReadMe script should not apply any updates' -TestCases $readmeFolderTestCases { + param( [string] $moduleFolderName, [string] $templateFilePath, @@ -451,7 +453,12 @@ Describe 'Readme tests' -Tag Readme { $fileHashAfter = (Get-FileHash $readMeFilePath).Hash # Compare - $fileHashBefore -eq $fileHashAfter | Should -Be $true -Because 'The file hashes before and after applying the Set-ModuleReadMe function should be identical' + $filesAreTheSame = $fileHashBefore -eq $fileHashAfter + if (-not $filesAreTheSame) { + $diffReponse = git diff + Write-Warning ($diffReponse | Out-String) -Verbose + } + $filesAreTheSame | Should -Be $true -Because 'The file hashes before and after applying the Set-ModuleReadMe function should be identical' } } } @@ -468,12 +475,20 @@ Describe 'Deployment template tests' -Tag Template { if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' - $templateContent = az bicep build --file $templateFilePath --stdout | ConvertFrom-Json -AsHashtable + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + + if (-not $templateContent) { + throw ($bicepTemplateCompilationFailedException -f $templateFilePath) + } } elseIf (Test-Path (Join-Path $moduleFolderPath 'deploy.json')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.json' $templateContent = Get-Content $templateFilePath -Raw | ConvertFrom-Json -AsHashtable + + if (-not $templateContent) { + throw ($jsonTemplateLoadFailedException -f $templateFilePath) + } } else { - throw "No template file found in folder [$moduleFolderPath]" + throw ($templateNotFoundException -f $moduleFolderPath) } $convertedTemplates[$moduleFolderPathKey] = @{ templateFilePath = $templateFilePath @@ -515,9 +530,10 @@ Describe 'Deployment template tests' -Tag Template { } It '[] the template file should not be empty' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) $templateContent | Should -Not -Be $null } @@ -526,8 +542,8 @@ Describe 'Deployment template tests' -Tag Template { # the actual value changes depending on the scope of the template (RG, subscription, MG, tenant) !! # https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) $Schemaverion = $templateContent.'$schema' @@ -548,9 +564,10 @@ Describe 'Deployment template tests' -Tag Template { } It '[] Template schema should use HTTPS reference' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) $Schemaverion = $templateContent.'$schema' ($Schemaverion.Substring(0, 5) -eq 'https') | Should -Be $true @@ -559,8 +576,8 @@ Describe 'Deployment template tests' -Tag Template { It '[] All apiVersion properties should be set to a static, hard-coded value' -TestCases $deploymentFolderTestCases { #https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-best-practices param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) $ApiVersion = $templateContent.resources.apiVersion $ApiVersionArray = @() @@ -582,34 +599,37 @@ Describe 'Deployment template tests' -Tag Template { } It '[] the template file should contain required elements: schema, contentVersion, resources' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) $templateContent.Keys | Should -Contain '$schema' $templateContent.Keys | Should -Contain 'contentVersion' $templateContent.Keys | Should -Contain 'resources' } - It '[] If delete lock is implemented, the template should have a lock parameter with the default value of [NotSpecified]' -TestCases $deploymentFolderTestCases { + It '[] If delete lock is implemented, the template should have a lock parameter with the default value of ['''']' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) if ($lock = $templateContent.parameters.lock) { $lock.Keys | Should -Contain 'defaultValue' - $lock.defaultValue | Should -Be 'NotSpecified' + $lock.defaultValue | Should -Be '' } } It '[] Parameter names should be camel-cased (no dashes or underscores and must start with lower-case letter)' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) if (-not $templateContent.parameters) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no parameters.' return } @@ -626,13 +646,14 @@ Describe 'Deployment template tests' -Tag Template { } It '[] Variable names should be camel-cased (no dashes or underscores and must start with lower-case letter)' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) if (-not $templateContent.variables) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no variables.' return } @@ -650,9 +671,10 @@ Describe 'Deployment template tests' -Tag Template { } It '[] Output names should be camel-cased (no dashes or underscores and must start with lower-case letter)' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) $CamelCasingFlag = @() $Outputs = $templateContent.outputs.Keys @@ -668,9 +690,10 @@ Describe 'Deployment template tests' -Tag Template { } It '[] CUA ID deployment should be present in the template' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) $enableDefaultTelemetryFlag = @() $Schemaverion = $templateContent.'$schema' @@ -685,9 +708,10 @@ Describe 'Deployment template tests' -Tag Template { } It "[] The Location should be defined as a parameter, with the default value of 'resourceGroup().Location' or global for ResourceGroup deployment scope" -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) $LocationFlag = $true $Schemaverion = $templateContent.'$schema' @@ -710,7 +734,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent, + [hashtable] $templateContent, [string] $templateFilePath ) @@ -732,7 +756,7 @@ Describe 'Deployment template tests' -Tag Template { param( [string] $moduleFolderName, - $templateContent, + [hashtable] $templateContent, [string] $templateFilePath ) @@ -745,33 +769,54 @@ Describe 'Deployment template tests' -Tag Template { } It '[] Resource name output should exist' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent, + $templateFilePath ) + # check if module contains a 'primary' resource we could draw a name from + $moduleResourceType = (Split-Path (($templateFilePath -replace '\\', '/') -split '/arm/')[1] -Parent) -replace '\\', '/' + if ($templateContent.resources.type -notcontains $moduleResourceType) { + Set-ItResult -Skipped -Because 'the module template has no primary resource to fetch a name from.' + return + } + + # Otherwise test for standard outputs $outputs = $templateContent.outputs.Keys $outputs | Should -Contain 'name' } It '[] Resource ID output should exist' -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent, + $templateFilePath ) + # check if module contains a 'primary' resource we could draw a name from + $moduleResourceType = (Split-Path (($templateFilePath -replace '\\', '/') -split '/arm/')[1] -Parent) -replace '\\', '/' + if ($templateContent.resources.type -notcontains $moduleResourceType) { + Set-ItResult -Skipped -Because 'the module template has no primary resource to fetch a resource ID from.' + return + } + + # Otherwise test for standard outputs $outputs = $templateContent.outputs.Keys $outputs | Should -Contain 'resourceId' } It "[] parameters' description should start with a one word category starting with a capital letter, followed by a dot, a space and the actual description text ending with a dot." -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) if (-not $templateContent.parameters) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no parameters.' return } @@ -787,13 +832,14 @@ Describe 'Deployment template tests' -Tag Template { } It "[] Conditional parameters' description should contain 'Required if' followed by the condition making the parameter required." -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) if (-not $templateContent.parameters) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no parameters.' return } @@ -801,10 +847,8 @@ Describe 'Deployment template tests' -Tag Template { $templateParameters = $templateContent.parameters.Keys foreach ($parameter in $templateParameters) { $data = ($templateContent.parameters.$parameter.metadata).description - switch -regex ($data) - { - '^Conditional. .*' - { + switch -regex ($data) { + '^Conditional. .*' { if ($data -notmatch '.*\. Required if .*') { $incorrectParameters += $parameter } @@ -815,13 +859,14 @@ Describe 'Deployment template tests' -Tag Template { } It "[] outputs' description should start with a capital letter and contain text ending with a dot." -TestCases $deploymentFolderTestCases { + param( - $moduleFolderName, - $templateContent + [string] $moduleFolderName, + [hashtable] $templateContent ) if (-not $templateContent.outputs) { - # Skip test + Set-ItResult -Skipped -Because 'the module template has no outputs.' return } @@ -913,7 +958,7 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] $testCases = @() $ApiVersions = Get-AzResourceProvider -ListAvailable - foreach ($moduleFolderPath in $moduleFolderPathsFiltered) { + foreach ($moduleFolderPath in $moduleFolderPaths) { $moduleFolderName = $moduleFolderPath.Replace('\', '/').Split('/arm/')[1] @@ -922,12 +967,20 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] if (-not ($convertedTemplates.Keys -contains $moduleFolderPathKey)) { if (Test-Path (Join-Path $moduleFolderPath 'deploy.bicep')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.bicep' - $templateContent = az bicep build --file $templateFilePath --stdout | ConvertFrom-Json -AsHashtable + $templateContent = az bicep build --file $templateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable + + if (-not $templateContent) { + throw ($bicepTemplateCompilationFailedException -f $templateFilePath) + } } elseIf (Test-Path (Join-Path $moduleFolderPath 'deploy.json')) { $templateFilePath = Join-Path $moduleFolderPath 'deploy.json' $templateContent = Get-Content $templateFilePath -Raw | ConvertFrom-Json -AsHashtable + + if (-not $templateContent) { + throw ($jsonTemplateLoadFailedException -f $templateFilePath) + } } else { - throw "No template file found in folder [$moduleFolderPath]" + throw ($templateNotFoundException -f $moduleFolderPath) } $convertedTemplates[$moduleFolderPathKey] = @{ templateFilePath = $templateFilePath @@ -1001,12 +1054,13 @@ Describe "API version tests [All apiVersions in the template should be 'recent'] } It 'In [] used resource type [] should use one of the recent API version(s). Currently using []' -TestCases $TestCases { + param( - $moduleName, - $resourceType, - $TargetApi, - $ProviderNamespace, - $AvailableApiVersions + [string] $moduleName, + [string] $resourceType, + [string] $TargetApi, + [string] $ProviderNamespace, + [object[]] $AvailableApiVersions ) $namespaceResourceTypes = ($AvailableApiVersions | Where-Object { $_.ProviderNamespace -eq $ProviderNamespace }).ResourceTypes diff --git a/arm/.global/shared/helper.psm1 b/arm/.global/shared/helper.psm1 index a1a368d6af..f7102aae44 100644 --- a/arm/.global/shared/helper.psm1 +++ b/arm/.global/shared/helper.psm1 @@ -1,5 +1,129 @@ -# Load used functions +############################## +# Load general functions # +############################## $repoRootPath = (Get-Item $PSScriptRoot).Parent.Parent.Parent.FullName . (Join-Path $repoRootPath 'utilities' 'pipelines' 'sharedScripts' 'Get-NestedResourceList.ps1') . (Join-Path $repoRootPath 'utilities' 'pipelines' 'sharedScripts' 'Get-ScopeOfTemplateFile.ps1') + +#################################### +# Load test-specific functions # +#################################### + +<# +.SYNOPSIS +Get the index of a header in a given markdown array + +.DESCRIPTION +Get the index of a header in a given markdown array + +.PARAMETER ReadMeContent +Required. The content to search in + +.PARAMETER MarkdownSectionIdentifier +Required. The header to search for. For example '*# Parameters' + +.EXAMPLE +Get-MarkdownSectionStartIndex -ReadMeContent @('# Parameters', 'other content') -MarkdownSectionIdentifier '*# Parameters' + +Get the index of the '# Parameters' header in the given markdown array @('# Parameters', 'other content') +#> +function Get-MarkdownSectionStartIndex { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [array] $ReadMeContent, + + [Parameter(Mandatory = $true)] + [string] $MarkdownSectionIdentifier + ) + + $sectionStartIndex = 0 + while ($ReadMeContent[$sectionStartIndex] -notlike $MarkdownSectionIdentifier -and -not ($sectionStartIndex -ge $ReadMeContent.count)) { + $sectionStartIndex++ + } + + return $sectionStartIndex +} + +<# +.SYNOPSIS +Get the last index of a section in a given markdown array + +.DESCRIPTION +Get the last index of a section in a given markdown array. The end of a section is identified by the start of a new header. + +.PARAMETER ReadMeContent +Required. The content to search in + +.PARAMETER SectionStartIndex +Required. The index where the section starts + +.EXAMPLE +Get-MarkdownSectionEndIndex -ReadMeContent @('somrthing', '# Parameters', 'other content', '# Other header') -SectionStartIndex 2 + +Search for the end index of the section starting in index 2 in array @('somrthing', '# Parameters', 'other content', '# Other header'). Would return 3. +#> +function Get-MarkdownSectionEndIndex { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [array] $ReadMeContent, + + [Parameter(Mandatory = $true)] + [int] $SectionStartIndex + ) + + $sectionEndIndex = $sectionStartIndex + 1 + while ($readMeContent[$sectionEndIndex] -notlike '*# *' -and -not ($sectionEndIndex -ge $ReadMeContent.count)) { + $sectionEndIndex++ + } + + return $sectionEndIndex +} + +<# +.SYNOPSIS +Get the start & end index of a table in a given markdown section, indentified by a header + +.DESCRIPTION +Get the start & end index of a table in a given markdown section, indentified by a header. + +.PARAMETER ReadMeContent +Required. The content to search in + +.PARAMETER MarkdownSectionIdentifier +Required. The header of the section containing the table to search for. For example '*# Parameters' + +.EXAMPLE +$tableStartIndex, $tableEndIndex = Get-TableStartAndEndIndex -ReadMeContent @('# Parameters', '| a | b |', '| - | - |', '| 1 | 2 |', 'other content') -MarkdownSectionIdentifier '*# Parameters' + +Get the start & end index of the table in section '# Parameters' in the given ReadMe content. Would return @(1,3) +#> +function Get-TableStartAndEndIndex { + + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [array] $ReadMeContent, + + [Parameter(Mandatory = $true)] + [string] $MarkdownSectionIdentifier + ) + + $sectionStartIndex = Get-MarkdownSectionStartIndex -ReadMeContent $ReadMeContent -MarkdownSectionIdentifier $MarkdownSectionIdentifier + + $tableStartIndex = $sectionStartIndex + 1 + while ($readMeContent[$tableStartIndex] -notlike '*|*' -and -not ($tableStartIndex -ge $readMeContent.count)) { + $tableStartIndex++ + } + + $tableEndIndex = $tableStartIndex + 2 + while ($readMeContent[$tableEndIndex] -like '|*' -and -not ($tableEndIndex -ge $readMeContent.count)) { + $tableEndIndex++ + } + + return $tableStartIndex, $tableEndIndex +} diff --git a/arm/Microsoft.AAD/DomainServices/.bicep/nested_rbac.bicep b/arm/Microsoft.AAD/DomainServices/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.AAD/DomainServices/.bicep/nested_rbac.bicep rename to arm/Microsoft.AAD/DomainServices/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.AAD/DomainServices/.parameters/parameters.json b/arm/Microsoft.AAD/DomainServices/.parameters/parameters.json index 78d6988768..6166d322e2 100644 --- a/arm/Microsoft.AAD/DomainServices/.parameters/parameters.json +++ b/arm/Microsoft.AAD/DomainServices/.parameters/parameters.json @@ -8,6 +8,9 @@ "sku": { "value": "Standard" }, + "lock": { + "value": "CanNotDelete" + }, "replicaSets": { "value": [ { @@ -48,9 +51,6 @@ }, "diagnosticEventHubName": { "value": "adp-<>-az-evh-x-001" - }, - "lock": { - "value": "NotSpecified" } } } diff --git a/arm/Microsoft.AAD/DomainServices/deploy.bicep b/arm/Microsoft.AAD/DomainServices/deploy.bicep index b8b482446d..677eea59fa 100644 --- a/arm/Microsoft.AAD/DomainServices/deploy.bicep +++ b/arm/Microsoft.AAD/DomainServices/deploy.bicep @@ -132,12 +132,12 @@ param diagnosticLogsRetentionInDays int = 365 param enableDefaultTelemetry bool = true @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -220,7 +220,7 @@ resource domainService 'Microsoft.AAD/DomainServices@2021-05-01' = { } resource domainService_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if ((!empty(diagnosticStorageAccountId)) || (!empty(diagnosticWorkspaceId)) || (!empty(diagnosticEventHubAuthorizationRuleId)) || (!empty(diagnosticEventHubName))) { - name: '${domainName}-diagnosticSettings' + name: '${domainService.name}-diagnosticSettings' properties: { storageAccountId: !empty(diagnosticStorageAccountId) ? diagnosticStorageAccountId : null workspaceId: !empty(diagnosticWorkspaceId) ? diagnosticWorkspaceId : null @@ -231,16 +231,16 @@ resource domainService_diagnosticSettings 'Microsoft.Insights/diagnosticSettings scope: domainService } -resource domainService_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { - name: '${domainName}-${lock}-lock' +resource domainService_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { + name: '${domainService.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: domainService } -module domainService_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module domainService_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-VNet-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.AAD/DomainServices/readme.md b/arm/Microsoft.AAD/DomainServices/readme.md index 590850713f..32b06fe225 100644 --- a/arm/Microsoft.AAD/DomainServices/readme.md +++ b/arm/Microsoft.AAD/DomainServices/readme.md @@ -49,7 +49,7 @@ This template deploys Azure Active Directory Domain Services (AADDS). | `kerberosRc4Encryption` | string | `'Enabled'` | `[Enabled, Disabled]` | The value is to enable Kerberos requests that use RC4 encryption. | | `ldaps` | string | `'Enabled'` | `[Enabled, Disabled]` | A flag to determine whether or not Secure LDAP is enabled or disabled. | | `location` | string | `[resourceGroup().location]` | | The location to deploy the Azure ADDS Services. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `logsToEnable` | array | `[SystemSecurity, AccountManagement, LogonLogoff, ObjectAccess, PolicyChange, PrivilegeUse, DetailTracking, DirectoryServiceAccess, AccountLogon]` | `[SystemSecurity, AccountManagement, LogonLogoff, ObjectAccess, PolicyChange, PrivilegeUse, DetailTracking, DirectoryServiceAccess, AccountLogon]` | The name of logs that will be streamed. | | `name` | string | `[parameters('domainName')]` | | The name of the AADDS resource. Defaults to the domain name specific to the Azure ADDS service. | | `notifyDcAdmins` | string | `'Enabled'` | `[Enabled, Disabled]` | The value is to notify the DC Admins. | @@ -224,6 +224,9 @@ $pfxCertificate = [System.Convert]::ToBase64String($rawCertByteStream) "sku": { "value": "Standard" }, + "lock": { + "value": "CanNotDelete" + }, "replicaSets": { "value": [ { @@ -264,9 +267,6 @@ $pfxCertificate = [System.Convert]::ToBase64String($rawCertByteStream) }, "diagnosticEventHubName": { "value": "adp-<>-az-evh-x-001" - }, - "lock": { - "value": "NotSpecified" } } } @@ -290,6 +290,7 @@ module DomainServices './Microsoft.AAD/DomainServices/deploy.bicep' = { params: { domainName: '<>.onmicrosoft.com' sku: 'Standard' + lock: 'CanNotDelete' replicaSets: [ { location: 'WestEurope' @@ -305,7 +306,6 @@ module DomainServices './Microsoft.AAD/DomainServices/deploy.bicep' = { diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' - lock: 'NotSpecified' } ``` diff --git a/arm/Microsoft.AnalysisServices/servers/.bicep/nested_rbac.bicep b/arm/Microsoft.AnalysisServices/servers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.AnalysisServices/servers/.bicep/nested_rbac.bicep rename to arm/Microsoft.AnalysisServices/servers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json b/arm/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json index eafaffd74d..54abf71cc2 100644 --- a/arm/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json +++ b/arm/Microsoft.AnalysisServices/servers/.parameters/max.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>azasweumax001" }, + "lock": { + "value": "CanNotDelete" + }, "skuName": { "value": "S0" }, @@ -38,9 +41,6 @@ "diagnosticEventHubName": { "value": "adp-<>-az-evh-x-001" }, - "lock": { - "value": "NotSpecified" - }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.AnalysisServices/servers/.parameters/parameters.json b/arm/Microsoft.AnalysisServices/servers/.parameters/parameters.json index e2e01dcad7..592ffff258 100644 --- a/arm/Microsoft.AnalysisServices/servers/.parameters/parameters.json +++ b/arm/Microsoft.AnalysisServices/servers/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>azasweux001" }, + "lock": { + "value": "CanNotDelete" + }, "skuName": { "value": "S0" }, diff --git a/arm/Microsoft.AnalysisServices/servers/deploy.bicep b/arm/Microsoft.AnalysisServices/servers/deploy.bicep index 728a95e5c7..299d482632 100644 --- a/arm/Microsoft.AnalysisServices/servers/deploy.bicep +++ b/arm/Microsoft.AnalysisServices/servers/deploy.bicep @@ -40,12 +40,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -121,11 +121,11 @@ resource server 'Microsoft.AnalysisServices/servers@2017-08-01' = { } } -resource server_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource server_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${server.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: server } @@ -143,7 +143,7 @@ resource server_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@2021-0 scope: server } -module server_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module server_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AnServicesServer-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.AnalysisServices/servers/readme.md b/arm/Microsoft.AnalysisServices/servers/readme.md index 2038c59b33..87388fcc40 100644 --- a/arm/Microsoft.AnalysisServices/servers/readme.md +++ b/arm/Microsoft.AnalysisServices/servers/readme.md @@ -39,7 +39,7 @@ This module deploys an Analysis Services Server. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `firewallSettings` | object | `{object}` | | The inbound firewall rules to define on the server. If not specified, firewall is disabled. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `skuCapacity` | int | `1` | | The total number of query replica scale-out instances. | | `skuName` | string | `'S0'` | | The SKU name of the Azure Analysis Services server to create. | @@ -171,6 +171,9 @@ roleAssignments: [ "name": { "value": "<>azasweumax001" }, + "lock": { + "value": "CanNotDelete" + }, "skuName": { "value": "S0" }, @@ -204,9 +207,6 @@ roleAssignments: [ "diagnosticEventHubName": { "value": "adp-<>-az-evh-x-001" }, - "lock": { - "value": "NotSpecified" - }, "roleAssignments": { "value": [ { @@ -244,6 +244,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { name: '${uniqueString(deployment().name)}-servers' params: { name: '<>azasweumax001' + lock: 'CanNotDelete' skuName: 'S0' skuCapacity: 1 firewallSettings: { @@ -261,7 +262,6 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' - lock: 'NotSpecified' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' @@ -333,6 +333,9 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { "name": { "value": "<>azasweux001" }, + "lock": { + "value": "CanNotDelete" + }, "skuName": { "value": "S0" }, @@ -377,6 +380,7 @@ module servers './Microsoft.AnalysisServices/servers/deploy.bicep' = { name: '${uniqueString(deployment().name)}-servers' params: { name: '<>azasweux001' + lock: 'CanNotDelete' skuName: 'S0' roleAssignments: [ { diff --git a/arm/Microsoft.ApiManagement/service/.bicep/nested_rbac.bicep b/arm/Microsoft.ApiManagement/service/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ApiManagement/service/.bicep/nested_rbac.bicep rename to arm/Microsoft.ApiManagement/service/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ApiManagement/service/.parameters/max.parameters.json b/arm/Microsoft.ApiManagement/service/.parameters/max.parameters.json index 6e0aa4c385..f760ecf1d4 100644 --- a/arm/Microsoft.ApiManagement/service/.parameters/max.parameters.json +++ b/arm/Microsoft.ApiManagement/service/.parameters/max.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-apim-max-001" }, + "lock": { + "value": "CanNotDelete" + }, "publisherEmail": { "value": "apimgmt-noreply@mail.windowsazure.com" }, diff --git a/arm/Microsoft.ApiManagement/service/.parameters/parameters.json b/arm/Microsoft.ApiManagement/service/.parameters/parameters.json index 4cf5e8349e..8f73097f17 100644 --- a/arm/Microsoft.ApiManagement/service/.parameters/parameters.json +++ b/arm/Microsoft.ApiManagement/service/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-apim-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "publisherEmail": { "value": "apimgmt-noreply@mail.windowsazure.com" }, diff --git a/arm/Microsoft.ApiManagement/service/apis/deploy.bicep b/arm/Microsoft.ApiManagement/service/apis/deploy.bicep index 97b557c374..067e1731ea 100644 --- a/arm/Microsoft.ApiManagement/service/apis/deploy.bicep +++ b/arm/Microsoft.ApiManagement/service/apis/deploy.bicep @@ -94,7 +94,7 @@ param value string = '' @description('Optional. Criteria to limit import of WSDL to a subset of the document.') param wsdlSelector object = {} -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -146,7 +146,7 @@ module policy 'policies/deploy.bicep' = [for (policy, index) in policies: { apiName: api.name format: contains(policy, 'format') ? policy.format : 'xml' value: policy.value - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.ApiManagement/service/deploy.bicep b/arm/Microsoft.ApiManagement/service/deploy.bicep index 29dc9381fd..9ac435f3a8 100644 --- a/arm/Microsoft.ApiManagement/service/deploy.bicep +++ b/arm/Microsoft.ApiManagement/service/deploy.bicep @@ -47,12 +47,12 @@ param userAssignedIdentities object = {} param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Limit control plane API calls to API Management service with version equal to or newer than this value.') param minApiVersion string = '' @@ -153,7 +153,7 @@ param subscriptions array = [] @description('Optional. The name of the diagnostic setting, if deployed.') param diagnosticSettingsName string = '${name}-diagnosticSettings' -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { category: category @@ -248,7 +248,7 @@ module apis_resource 'apis/deploy.bicep' = [for (api, index) in apis: { type: contains(api, 'type') ? api.type : 'http' value: contains(api, 'value') ? api.value : '' wsdlSelector: contains(api, 'wsdlSelector') ? api.wsdlSelector : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ apiVersionSet_resource @@ -261,7 +261,7 @@ module apiVersionSet_resource 'apiVersionSets/deploy.bicep' = [for (apiVersionSe apiManagementServiceName: apiManagementService.name name: apiVersionSet.name properties: contains(apiVersionSet, 'properties') ? apiVersionSet.properties : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -292,7 +292,7 @@ module authorizationServers_resource '.bicep/nested_authorizationServers.bicep' supportState: contains(authorizationServer, 'supportState') ? authorizationServer.supportState : false tokenBodyParameters: contains(authorizationServer, 'tokenBodyParameters') ? authorizationServer.tokenBodyParameters : [] tokenEndpoint: contains(authorizationServer, 'tokenEndpoint') ? authorizationServer.tokenEndpoint : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -313,7 +313,7 @@ module backends_resource 'backends/deploy.bicep' = [for (backend, index) in back validateCertificateChain: false validateCertificateName: false } - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -326,7 +326,7 @@ module caches_resource 'caches/deploy.bicep' = [for (cache, index) in caches: { name: cache.name resourceId: contains(cache, 'resourceId') ? cache.resourceId : '' useFromLocation: cache.useFromLocation - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -346,7 +346,7 @@ module identityProvider_resource 'identityProviders/deploy.bicep' = [for (identi identityProviderSignInTenant: contains(identityProvider, 'identityProviderSignInTenant') ? identityProvider.identityProviderSignInTenant : '' identityProviderSignUpPolicyName: contains(identityProvider, 'identityProviderSignUpPolicyName') ? identityProvider.identityProviderSignUpPolicyName : '' identityProviderType: contains(identityProvider, 'identityProviderType') ? identityProvider.identityProviderType : 'aad' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -360,7 +360,7 @@ module namedValues_resource 'namedValues/deploy.bicep' = [for (namedValue, index namedValueTags: contains(namedValue, 'namedValueTags') ? namedValue.namedValueTags : [] secret: contains(namedValue, 'secret') ? namedValue.secret : false value: contains(namedValue, 'value') ? namedValue.value : newGuidValue - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -370,7 +370,7 @@ module portalSettings_resource 'portalsettings/deploy.bicep' = [for (portalSetti apiManagementServiceName: apiManagementService.name name: portalSetting.name properties: contains(portalSetting, 'properties') ? portalSetting.properties : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -380,7 +380,7 @@ module policy_resource 'policies/deploy.bicep' = [for (policy, index) in policie apiManagementServiceName: apiManagementService.name value: policy.value format: contains(policy, 'format') ? policy.format : 'xml' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -397,7 +397,7 @@ module products_resource 'products/deploy.bicep' = [for (product, index) in prod subscriptionRequired: contains(product, 'subscriptionRequired') ? product.subscriptionRequired : false subscriptionsLimit: contains(product, 'subscriptionsLimit') ? product.subscriptionsLimit : 1 terms: contains(product, 'terms') ? product.terms : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ apis_resource @@ -415,14 +415,14 @@ module subscriptions_resource 'subscriptions/deploy.bicep' = [for (subscription, scope: contains(subscription, 'scope') ? subscription.scope : '/apis' secondaryKey: contains(subscription, 'secondaryKey') ? subscription.secondaryKey : '' state: contains(subscription, 'state') ? subscription.state : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource apiManagementService_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource apiManagementService_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${apiManagementService.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: apiManagementService @@ -441,7 +441,7 @@ resource apiManagementService_diagnosticSettings 'Microsoft.Insights/diagnosticS scope: apiManagementService } -module apiManagementService_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module apiManagementService_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Apim-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.ApiManagement/service/products/deploy.bicep b/arm/Microsoft.ApiManagement/service/products/deploy.bicep index d4f493b70d..835db80954 100644 --- a/arm/Microsoft.ApiManagement/service/products/deploy.bicep +++ b/arm/Microsoft.ApiManagement/service/products/deploy.bicep @@ -31,7 +31,7 @@ param subscriptionsLimit int = 1 @description('Optional. Product terms of use. Developers trying to subscribe to the product will be presented and required to accept these terms before they can complete the subscription process.') param terms string = '' -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -69,7 +69,7 @@ module product_apis 'apis/deploy.bicep' = [for (api, index) in apis: { apiManagementServiceName: apiManagementServiceName name: api.name productName: name - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -79,7 +79,7 @@ module product_groups 'groups/deploy.bicep' = [for (group, index) in groups: { apiManagementServiceName: apiManagementServiceName name: group.name productName: name - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.ApiManagement/service/readme.md b/arm/Microsoft.ApiManagement/service/readme.md index bf00e3947c..6b9b86880c 100644 --- a/arm/Microsoft.ApiManagement/service/readme.md +++ b/arm/Microsoft.ApiManagement/service/readme.md @@ -67,7 +67,7 @@ This module deploys an API management service. | `hostnameConfigurations` | array | `[]` | | Custom hostname configuration of the API Management service. | | `identityProviders` | _[identityProviders](identityProviders/readme.md)_ array | `[]` | | Identity providers. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `minApiVersion` | string | `''` | | Limit control plane API calls to API Management service with version equal to or newer than this value. | | `namedValues` | _[namedValues](namedValues/readme.md)_ array | `[]` | | Named values. | | `newGuidValue` | string | `[newGuid()]` | | Necessary to create a new GUID. | @@ -282,6 +282,9 @@ userAssignedIdentities: { "name": { "value": "<>-az-apim-max-001" }, + "lock": { + "value": "CanNotDelete" + }, "publisherEmail": { "value": "apimgmt-noreply@mail.windowsazure.com" }, @@ -463,6 +466,7 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { name: '${uniqueString(deployment().name)}-service' params: { name: '<>-az-apim-max-001' + lock: 'CanNotDelete' publisherEmail: 'apimgmt-noreply@mail.windowsazure.com' publisherName: '<>-az-amorg-x-001' apis: [ @@ -651,6 +655,9 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { "name": { "value": "<>-az-apim-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "publisherEmail": { "value": "apimgmt-noreply@mail.windowsazure.com" }, @@ -711,6 +718,7 @@ module service './Microsoft.ApiManagement/service/deploy.bicep' = { name: '${uniqueString(deployment().name)}-service' params: { name: '<>-az-apim-x-001' + lock: 'CanNotDelete' publisherEmail: 'apimgmt-noreply@mail.windowsazure.com' publisherName: '<>-az-amorg-x-001' portalSettings: [ diff --git a/arm/Microsoft.AppConfiguration/configurationStores/.bicep/nested_rbac.bicep b/arm/Microsoft.AppConfiguration/configurationStores/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.AppConfiguration/configurationStores/.bicep/nested_rbac.bicep rename to arm/Microsoft.AppConfiguration/configurationStores/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json b/arm/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json index a1bdb8cac9..81fee88944 100644 --- a/arm/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json +++ b/arm/Microsoft.AppConfiguration/configurationStores/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-appcs-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "diagnosticLogsRetentionInDays": { "value": 7 }, @@ -23,6 +26,23 @@ "systemAssignedIdentity": { "value": true }, + "keyValues": { + "value": [ + { + "name": "keyName", + "value": "valueName", + "contentType": "contentType", + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + } + ] + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.AppConfiguration/configurationStores/deploy.bicep b/arm/Microsoft.AppConfiguration/configurationStores/deploy.bicep index 7e48dd6af2..466ff938cb 100644 --- a/arm/Microsoft.AppConfiguration/configurationStores/deploy.bicep +++ b/arm/Microsoft.AppConfiguration/configurationStores/deploy.bicep @@ -42,6 +42,9 @@ param publicNetworkAccess string = 'Enabled' @maxValue(7) param softDeleteRetentionInDays int = 1 +@description('Optional. All Key / Values to create.') +param keyValues array = [] + @description('Optional. Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely.') @minValue(0) @maxValue(365) @@ -60,12 +63,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -100,6 +103,8 @@ param diagnosticSettingsName string = '${name}-diagnosticSettings' @description('Optional. Configuration Details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible.') param privateEndpoints array = [] +var enableReferencedModulesTelemetry = false + var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { category: category enabled: true @@ -138,7 +143,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource appConfiguration 'Microsoft.AppConfiguration/configurationStores@2021-10-01-preview' = { +resource configurationStore 'Microsoft.AppConfiguration/configurationStores@2021-10-01-preview' = { name: name location: location tags: tags @@ -155,16 +160,28 @@ resource appConfiguration 'Microsoft.AppConfiguration/configurationStores@2021-1 } } -resource appConfiguration_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { - name: '${appConfiguration.name}-${lock}-lock' +module configurationStore_keyValues 'keyValues/deploy.bicep' = [for (keyValue, index) in keyValues: { + name: '${uniqueString(deployment().name, location)}-appConfig-KeyValues-${index}' + params: { + appConfigurationName: configurationStore.name + name: keyValue.name + value: keyValue.value + contentType: contains(keyValue, 'contentType') ? keyValue.contentType : '' + tags: contains(keyValue, 'tags') ? keyValue.tags : {} + enableDefaultTelemetry: enableReferencedModulesTelemetry + } +}] + +resource configurationStore_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { + name: '${configurationStore.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } - scope: appConfiguration + scope: configurationStore } -resource appConfiguration_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@2021-05-01-preview' = if ((!empty(diagnosticStorageAccountId)) || (!empty(diagnosticWorkspaceId)) || (!empty(diagnosticEventHubAuthorizationRuleId)) || (!empty(diagnosticEventHubName))) { +resource configurationStore_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@2021-05-01-preview' = if ((!empty(diagnosticStorageAccountId)) || (!empty(diagnosticWorkspaceId)) || (!empty(diagnosticEventHubAuthorizationRuleId)) || (!empty(diagnosticEventHubName))) { name: diagnosticSettingsName properties: { storageAccountId: !empty(diagnosticStorageAccountId) ? diagnosticStorageAccountId : null @@ -174,32 +191,32 @@ resource appConfiguration_diagnosticSettings 'Microsoft.Insights/diagnosticsetti metrics: diagnosticsMetrics logs: diagnosticsLogs } - scope: appConfiguration + scope: configurationStore } -module appConfiguration_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module configurationStore_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AppConfig-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' principalIds: roleAssignment.principalIds principalType: contains(roleAssignment, 'principalType') ? roleAssignment.principalType : '' roleDefinitionIdOrName: roleAssignment.roleDefinitionIdOrName - resourceId: appConfiguration.id + resourceId: configurationStore.id } }] -module appConfiguration_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { - name: '${uniqueString(deployment().name, location)}-appConfiguration-PrivateEndpoint-${index}' +module configurationStore_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { + name: '${uniqueString(deployment().name, location)}-configurationStore-PrivateEndpoint-${index}' params: { groupIds: [ privateEndpoint.service ] - name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(appConfiguration.id, '/'))}-${privateEndpoint.service}-${index}' - serviceResourceId: appConfiguration.id + name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(configurationStore.id, '/'))}-${privateEndpoint.service}-${index}' + serviceResourceId: configurationStore.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -209,16 +226,16 @@ module appConfiguration_privateEndpoints '../../Microsoft.Network/privateEndpoin }] @description('The name of the app configuration.') -output name string = appConfiguration.name +output name string = configurationStore.name @description('The resource ID of the app configuration.') -output resourceId string = appConfiguration.id +output resourceId string = configurationStore.id -@description('The resource group the batch account was deployed into.') +@description('The resource group the app configuration store was deployed into.') output resourceGroupName string = resourceGroup().name @description('The principal ID of the system assigned identity.') -output systemAssignedPrincipalId string = systemAssignedIdentity && contains(appConfiguration.identity, 'principalId') ? appConfiguration.identity.principalId : '' +output systemAssignedPrincipalId string = systemAssignedIdentity && contains(configurationStore.identity, 'principalId') ? configurationStore.identity.principalId : '' @description('The location the resource was deployed into.') -output location string = appConfiguration.location +output location string = configurationStore.location diff --git a/arm/Microsoft.Network/azureFirewalls/.bicep/nested_publicIPAddress_rbac.bicep b/arm/Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep similarity index 63% rename from arm/Microsoft.Network/azureFirewalls/.bicep/nested_publicIPAddress_rbac.bicep rename to arm/Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep index afb6225762..1a65e573d0 100644 --- a/arm/Microsoft.Network/azureFirewalls/.bicep/nested_publicIPAddress_rbac.bicep +++ b/arm/Microsoft.AppConfiguration/configurationStores/keyValues/.bicep/nested_roleAssignments.bicep @@ -1,10 +1,10 @@ -@sys.description('Required. The IDs of the prinicpals to assign to role to') +@sys.description('Required. The IDs of the principals to assign the role to.') param principalIds array -@sys.description('Required. The name of the role to assign. If it cannot be found you can specify the role definition ID instead') +@sys.description('Required. The name of the role to assign. If it cannot be found you can specify the role definition ID instead.') param roleDefinitionIdOrName string -@sys.description('Required. The resource ID of the resource to apply the role assignment to') +@sys.description('Required. The resource ID of the resource to apply the role assignment to.') param resourceId string @sys.description('Optional. The principal type of the assigned principal ID.') @@ -18,44 +18,38 @@ param resourceId string ]) param principalType string = '' -@sys.description('Optional. Description of role assignment') +@sys.description('Optional. The description of the role assignment.') param description string = '' var builtInRoleNames = { 'Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635') 'Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c') 'Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7') - 'Avere Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4f8fab4f-1852-4a58-a46a-8eaf358af14a') - 'Avere Operator': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'c025889f-8102-4ebf-b32c-fc0c6f0c6bd9') - 'DevTest Labs User': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '76283e04-6283-4c54-8f91-bcf1374a3c64') + 'App Configuration Data Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b') + 'App Configuration Data Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '516239f1-63e1-4d78-a4de-a74fb236a071') 'Log Analytics Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '92aaf0da-9dab-42b6-94a3-d43ce8d16293') 'Log Analytics Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '73c42c96-874c-492b-b04d-ab87d138a893') 'Managed Application Contributor Role': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '641177b8-a67a-45b9-a033-47bc880bb21e') 'Managed Application Operator Role': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'c7393b34-138c-406f-901b-d8cf2b17e6ae') 'Managed Applications Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b9331d33-8a36-4f8c-b097-4f54124fdb44') - 'Microsoft OneAsset Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'fd1bb084-1503-4bd2-99c0-630220046786') 'Monitoring Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '749f88d5-cbae-40b8-bcfc-e573ddc772fa') 'Monitoring Metrics Publisher': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '3913510d-42f4-4e42-8a64-420c390055eb') 'Monitoring Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '43d0d8ad-25c7-4714-9337-8ba259a9fe05') - 'Reservation Purchaser': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f7b75c60-3036-4b75-91c3-6b41c27c1689') 'Resource Policy Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '36243c78-bf99-498c-9df9-86d9f8d28608') 'User Access Administrator': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9') - 'Virtual Machine Administrator Login': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '1c0163c0-47e6-4577-8991-ea5c82e286e4') - 'Virtual Machine Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '9980e02c-c2be-4d73-94e8-173b1dc7cf3c') - 'Virtual Machine User Login': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'fb879df8-f326-4884-b1cf-06f3ad86be52') } -resource publicIpAddress 'Microsoft.Network/publicIPAddresses@2021-05-01' existing = { +resource appConfiguration 'Microsoft.AppConfiguration/configurationStores@2021-10-01-preview' existing = { name: last(split(resourceId, '/')) } resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = [for principalId in principalIds: { - name: guid(publicIpAddress.name, principalId, roleDefinitionIdOrName) + name: guid(appConfiguration.id, principalId, roleDefinitionIdOrName) properties: { description: description roleDefinitionId: contains(builtInRoleNames, roleDefinitionIdOrName) ? builtInRoleNames[roleDefinitionIdOrName] : roleDefinitionIdOrName principalId: principalId - principalType: !empty(principalType) ? any(principalType) : null + principalType: !empty(principalType) ? principalType : null } - scope: publicIpAddress + scope: appConfiguration }] diff --git a/arm/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep b/arm/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep new file mode 100644 index 0000000000..55bc707f76 --- /dev/null +++ b/arm/Microsoft.AppConfiguration/configurationStores/keyValues/deploy.bicep @@ -0,0 +1,51 @@ +@description('Required. Name of the key.') +param name string + +@description('Required. Name of the value.') +param value string + +@description('Conditional. The name of the parent app configuration store. Required if the template is used in a standalone deployment.') +param appConfigurationName string + +@description('Optional. The content type of the key-values value. Providing a proper content-type can enable transformations of values when they are retrieved by applications.') +param contentType string = '' + +@description('Optional. Tags of the resource.') +param tags object = {} + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') // update all the descriptions +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource appConfiguration 'Microsoft.AppConfiguration/configurationStores@2021-10-01-preview' existing = { + name: appConfigurationName +} + +resource keyValues 'Microsoft.AppConfiguration/configurationStores/keyValues@2021-10-01-preview' = { + name: name + parent: appConfiguration + properties: { + contentType: contentType + tags: tags + value: value + } +} +@description('The name of the key values.') +output name string = keyValues.name + +@description('The resource ID of the key values.') +output resourceId string = keyValues.id + +@description('The resource group the batch account was deployed into.') +output resourceGroupName string = resourceGroup().name diff --git a/arm/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md b/arm/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md new file mode 100644 index 0000000000..f70de3d865 --- /dev/null +++ b/arm/Microsoft.AppConfiguration/configurationStores/keyValues/readme.md @@ -0,0 +1,407 @@ +# App Configuration `[Microsoft.AppConfiguration/configurationStores/keyValues]` + +This module deploys an App Configuration Store. + +## Navigation + +- [Resource types](#Resource-types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Deployment examples](#Deployment-examples) + +## Resource types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.AppConfiguration/configurationStores/keyValues` | [2021-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.AppConfiguration/2021-10-01-preview/configurationStores/keyValues) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | Name of the key. | +| `value` | string | Name of the value. | + +**Conditional parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `appConfigurationName` | string | The name of the parent app configuration store. Required if the template is used in a standalone deployment. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `contentType` | string | `''` | The content type of the key-values value. Providing a proper content-type can enable transformations of values when they are retrieved by applications. | +| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `tags` | object | `{object}` | Tags of the resource. | + + +### Parameter Usage: `tags` + +Tag names and tag values can be provided as needed. A tag can be left without a value. + +
    + +Parameter JSON format + +```json +"tags": { + "value": { + "Environment": "Non-Prod", + "Contact": "test.user@testcompany.com", + "PurchaseOrder": "1234", + "CostCenter": "7890", + "ServiceName": "DeploymentValidation", + "Role": "DeploymentValidation" + } +} +``` + +
    + +
    + +Bicep format + +```bicep +tags: { + Environment: 'Non-Prod' + Contact: 'test.user@testcompany.com' + PurchaseOrder: '1234' + CostCenter: '7890' + ServiceName: 'DeploymentValidation' + Role: 'DeploymentValidation' +} +``` + +
    +

    + +### Parameter Usage: `userAssignedIdentities` + +You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format: + +

    + +Parameter JSON format + +```json +"userAssignedIdentities": { + "value": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-001": {}, + "/subscriptions/12345678-1234-1234-1234-123456789012/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-002": {} + } +} +``` + +
    + +
    + +Bicep format + +```bicep +userAssignedIdentities: { + '/subscriptions/12345678-1234-1234-1234-123456789012/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-001': {} + '/subscriptions/12345678-1234-1234-1234-123456789012/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-002': {} +} +``` + +
    +

    + +### Parameter Usage: `roleAssignments` + +Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. + +

    + +Parameter JSON format + +```json +"roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "description": "Reader Role Assignment", + "principalIds": [ + "12345678-1234-1234-1234-123456789012", // object 1 + "78945612-1234-1234-1234-123456789012" // object 2 + ] + }, + { + "roleDefinitionIdOrName": "/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11", + "principalIds": [ + "12345678-1234-1234-1234-123456789012" // object 1 + ], + "principalType": "ServicePrincipal" + } + ] +} +``` + +
    + +
    + +Bicep format + +```bicep +roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + description: 'Reader Role Assignment' + principalIds: [ + '12345678-1234-1234-1234-123456789012' // object 1 + '78945612-1234-1234-1234-123456789012' // object 2 + ] + } + { + roleDefinitionIdOrName: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11' + principalIds: [ + '12345678-1234-1234-1234-123456789012' // object 1 + ] + principalType: 'ServicePrincipal' + } +] +``` + +
    +

    + +======= +### Parameter Usage: `privateEndpoints` + +To use Private Endpoint the following dependencies must be deployed: + +- Destination subnet must be created with the following configuration option - `"privateEndpointNetworkPolicies": "Disabled"`. Setting this option acknowledges that NSG rules are not applied to Private Endpoints (this capability is coming soon). A full example is available in the Virtual Network Module. +- Although not strictly required, it is highly recommended to first create a private DNS Zone to host Private Endpoint DNS records. See [Azure Private Endpoint DNS configuration](https://docs.microsoft.com/en-us/azure/private-link/private-endpoint-dns) for more information. + +

    + +Parameter JSON format + +```json +"privateEndpoints": { + "value": [ + // Example showing all available fields + { + "name": "sxx-az-pe", // Optional: Name will be automatically generated if one is not provided here + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001", + "service": "<>", // e.g. vault, registry, file, blob, queue, table etc. + "privateDnsZoneResourceIds": [ // Optional: No DNS record will be created if a private DNS zone Resource ID is not specified + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.net" + ], + "customDnsConfigs": [ // Optional + { + "fqdn": "customname.test.local", + "ipAddresses": [ + "10.10.10.10" + ] + } + ] + }, + // Example showing only mandatory fields + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001", + "service": "<>" // e.g. vault, registry, file, blob, queue, table etc. + } + ] +} +``` + +
    + +
    + +Bicep format + +```bicep +privateEndpoints: [ + // Example showing all available fields + { + name: 'sxx-az-pe' // Optional: Name will be automatically generated if one is not provided here + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001' + service: '<>' // e.g. vault registry file blob queue table etc. + privateDnsZoneResourceIds: [ // Optional: No DNS record will be created if a private DNS zone Resource ID is not specified + '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.net' + ] + // Optional + customDnsConfigs: [ + { + fqdn: 'customname.test.local' + ipAddresses: [ + '10.10.10.10' + ] + } + ] + } + // Example showing only mandatory fields + { + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001' + service: '<>' // e.g. vault registry file blob queue table etc. + } +] +``` + +
    +

    + +>>>>>>> 3c13c7e234f0efcae26a25417453c58843d2002d +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the key values. | +| `resourceGroupName` | string | The resource group the batch account was deployed into. | +| `resourceId` | string | The resource ID of the key values. | + +## Deployment examples + +

    Example 1

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-appcs-min-001" + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module configurationStores './Microsoft.AppConfiguration/configurationStores/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-configurationStores' + params: { + name: '<>-az-appcs-min-001' + } +``` + +
    +

    + +

    Example 2

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-appcs-x-001" + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "systemAssignedIdentity": { + "value": true + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "createMode": { + "value": "Default" + }, + "disableLocalAuth": { + "value": false + }, + "enablePurgeProtection": { + "value": false + }, + "publicNetworkAccess": { + "value": "Enabled" + }, + "softDeleteRetentionInDays": { + "value": 1 + }, + "privateEndpoints": { + "value": [ + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "service": "configurationStores" + } + ] + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module configurationStores './Microsoft.AppConfiguration/configurationStores/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-configurationStores' + params: { + name: '<>-az-appcs-x-001' + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' + diagnosticEventHubName: 'adp-<>-az-evh-x-001' + systemAssignedIdentity: true + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + '<>' + ] + } + ] + createMode: 'Default' + disableLocalAuth: false + enablePurgeProtection: false + publicNetworkAccess: 'Enabled' + softDeleteRetentionInDays: 1 + privateEndpoints: [ + { + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + service: 'configurationStores' + } + ] + } +``` + +
    +

    diff --git a/arm/Microsoft.AppConfiguration/configurationStores/keyValues/version.json b/arm/Microsoft.AppConfiguration/configurationStores/keyValues/version.json new file mode 100644 index 0000000000..41f66cc990 --- /dev/null +++ b/arm/Microsoft.AppConfiguration/configurationStores/keyValues/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.1" +} diff --git a/arm/Microsoft.AppConfiguration/configurationStores/readme.md b/arm/Microsoft.AppConfiguration/configurationStores/readme.md index 017d296933..b70a65c7fc 100644 --- a/arm/Microsoft.AppConfiguration/configurationStores/readme.md +++ b/arm/Microsoft.AppConfiguration/configurationStores/readme.md @@ -14,6 +14,7 @@ This module deploys an App Configuration Store. | Resource Type | API Version | | :-- | :-- | | `Microsoft.AppConfiguration/configurationStores` | [2021-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.AppConfiguration/2021-10-01-preview/configurationStores) | +| `Microsoft.AppConfiguration/configurationStores/keyValues` | [2021-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.AppConfiguration/2021-10-01-preview/configurationStores/keyValues) | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | @@ -43,8 +44,9 @@ This module deploys an App Configuration Store. | `disableLocalAuth` | bool | `False` | | Disables all authentication methods other than AAD authentication. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `enablePurgeProtection` | bool | `False` | | Property specifying whether protection against purge is enabled for this configuration store. | +| `keyValues` | _[keyValues](keyValues/readme.md)_ array | `[]` | | All Key / Values to create. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible. | | `publicNetworkAccess` | string | `'Enabled'` | `[Disabled, Enabled]` | Control permission for data plane traffic coming from public networks while private endpoint is enabled. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -187,6 +189,7 @@ roleAssignments: [

    +======= ### Parameter Usage: `privateEndpoints` To use Private Endpoint the following dependencies must be deployed: @@ -264,13 +267,14 @@ privateEndpoints: [

    +>>>>>>> 3c13c7e234f0efcae26a25417453c58843d2002d ## Outputs | Output Name | Type | Description | | :-- | :-- | :-- | | `location` | string | The location the resource was deployed into. | | `name` | string | The name of the app configuration. | -| `resourceGroupName` | string | The resource group the batch account was deployed into. | +| `resourceGroupName` | string | The resource group the app configuration store was deployed into. | | `resourceId` | string | The resource ID of the app configuration. | | `systemAssignedPrincipalId` | string | The principal ID of the system assigned identity. | @@ -326,6 +330,9 @@ module configurationStores './Microsoft.AppConfiguration/configurationStores/dep "name": { "value": "<>-az-appcs-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "diagnosticLogsRetentionInDays": { "value": 7 }, @@ -344,6 +351,23 @@ module configurationStores './Microsoft.AppConfiguration/configurationStores/dep "systemAssignedIdentity": { "value": true }, + "keyValues": { + "value": [ + { + "name": "keyName", + "value": "valueName", + "contentType": "contentType", + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + } + ] + }, "roleAssignments": { "value": [ { @@ -393,12 +417,28 @@ module configurationStores './Microsoft.AppConfiguration/configurationStores/dep name: '${uniqueString(deployment().name)}-configurationStores' params: { name: '<>-az-appcs-x-001' + lock: 'CanNotDelete' diagnosticLogsRetentionInDays: 7 diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' systemAssignedIdentity: true + keyValues: [ + { + name: 'keyName' + value: 'valueName' + contentType: 'contentType' + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + '<>' + ] + } + ] + } + ] roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.AppConfiguration/configurationStores/version.json b/arm/Microsoft.AppConfiguration/configurationStores/version.json index 41f66cc990..09da9cf49c 100644 --- a/arm/Microsoft.AppConfiguration/configurationStores/version.json +++ b/arm/Microsoft.AppConfiguration/configurationStores/version.json @@ -1,4 +1,4 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "0.1" + "version": "0.2" } diff --git a/arm/Microsoft.Authorization/locks/.parameters/rg.parameters.json b/arm/Microsoft.Authorization/locks/.parameters/rg.parameters.json new file mode 100644 index 0000000000..dc4870ce99 --- /dev/null +++ b/arm/Microsoft.Authorization/locks/.parameters/rg.parameters.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "level": { + "value": "CanNotDelete" + }, + "resourceGroupName": { + "value": "adp-<>-az-locks-rg-001" + }, + "subscriptionId": { + "value": "<>" + } + } +} diff --git a/arm/Microsoft.Authorization/locks/deploy.bicep b/arm/Microsoft.Authorization/locks/deploy.bicep new file mode 100644 index 0000000000..be930fb265 --- /dev/null +++ b/arm/Microsoft.Authorization/locks/deploy.bicep @@ -0,0 +1,69 @@ +targetScope = 'subscription' + +@allowed([ + 'CanNotDelete' + 'ReadOnly' +]) +@description('Required. Set lock level.') +param level string + +@description('Optional. The decription attached to the lock.') +param notes string = level == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +@description('Optional. Name of the Resource Group to assign the lock to. If Resource Group name is provided, and Subscription ID is provided, the module deploys at resource group level, therefore assigns the provided lock to the resource group.') +param resourceGroupName string = '' + +@description('Optional. Subscription ID of the subscription to assign the lock to. If not provided, will use the current scope for deployment. If no resource group name is provided, the module deploys at subscription level, therefore assigns the provided locks to the subscription.') +param subscriptionId string = subscription().id + +@sys.description('Optional. Location for all resources.') +param location string = deployment().location + +var enableReferencedModulesTelemetry = false + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' + location: location + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +module lock_sub 'subscription/deploy.bicep' = if (!empty(subscriptionId) && empty(resourceGroupName)) { + name: '${uniqueString(deployment().name, location)}-Lock-Sub-Module' + scope: subscription(subscriptionId) + params: { + name: '${subscription().displayName}-${level}-lock' + level: level + notes: notes + enableDefaultTelemetry: enableReferencedModulesTelemetry + } +} + +module lock_rg 'resourceGroup/deploy.bicep' = if (!empty(subscriptionId) && !empty(resourceGroupName)) { + name: '${uniqueString(deployment().name, location)}-Lock-RG-Module' + scope: resourceGroup(subscriptionId, resourceGroupName) + params: { + name: '${resourceGroupName}-${level}-lock' + level: level + notes: notes + enableDefaultTelemetry: enableReferencedModulesTelemetry + } +} + +@description('The name of the lock.') +output name string = empty(resourceGroupName) ? lock_sub.outputs.name : lock_rg.outputs.name + +@description('The resource ID of the lock.') +output resourceId string = empty(resourceGroupName) ? lock_sub.outputs.resourceId : lock_rg.outputs.resourceId + +@sys.description('The scope this lock applies to.') +output scope string = empty(resourceGroupName) ? lock_sub.outputs.scope : lock_rg.outputs.scope diff --git a/arm/Microsoft.Authorization/locks/readme.md b/arm/Microsoft.Authorization/locks/readme.md new file mode 100644 index 0000000000..fe2172de6b --- /dev/null +++ b/arm/Microsoft.Authorization/locks/readme.md @@ -0,0 +1,87 @@ +# Authorization Locks `[Microsoft.Authorization/locks]` + +This module deploys Authorization Locks. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Deployment examples](#Deployment-examples) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Allowed Values | Description | +| :-- | :-- | :-- | :-- | +| `level` | string | `[CanNotDelete, ReadOnly]` | Set lock level. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `location` | string | `[deployment().location]` | Location for all resources. | +| `notes` | string | `[if(equals(parameters('level'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot modify the resource or child resources.')]` | The decription attached to the lock. | +| `resourceGroupName` | string | `''` | Name of the Resource Group to assign the lock to. If Resource Group name is provided, and Subscription ID is provided, the module deploys at resource group level, therefore assigns the provided lock to the resource group. | +| `subscriptionId` | string | `[subscription().id]` | Subscription ID of the subscription to assign the lock to. If not provided, will use the current scope for deployment. If no resource group name is provided, the module deploys at subscription level, therefore assigns the provided locks to the subscription. | + + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the lock. | +| `resourceId` | string | The resource ID of the lock. | +| `scope` | string | The scope this lock applies to. | + +## Deployment examples + +

    Example 1

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "level": { + "value": "CanNotDelete" + }, + "resourceGroupName": { + "value": "adp-<>-az-locks-rg-001" + }, + "subscriptionId": { + "value": "<>" + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module locks './Microsoft.Authorization/locks/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-locks' + params: { + level: 'CanNotDelete' + resourceGroupName: 'adp-<>-az-locks-rg-001' + subscriptionId: '<>' + } +``` + +
    +

    diff --git a/arm/Microsoft.Authorization/locks/resourceGroup/deploy.bicep b/arm/Microsoft.Authorization/locks/resourceGroup/deploy.bicep new file mode 100644 index 0000000000..f7058ddc81 --- /dev/null +++ b/arm/Microsoft.Authorization/locks/resourceGroup/deploy.bicep @@ -0,0 +1,49 @@ +targetScope = 'resourceGroup' + +@description('Optional. The name of the lock.') +param name string = '${level}-lock' + +@allowed([ + 'CanNotDelete' + 'ReadOnly' +]) +@description('Required. Set lock level.') +param level string + +@description('Optional. The decription attached to the lock.') +param notes string = level == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource lock 'Microsoft.Authorization/locks@2017-04-01' = { + name: name + properties: { + level: level + notes: notes + } +} + +@description('The name of the lock.') +output name string = lock.name + +@description('The resource ID of the lock.') +output resourceId string = lock.id + +@description('The name of the resource group name the lock was applied to.') +output resourceGroupName string = resourceGroup().name + +@sys.description('The scope this lock applies to.') +output scope string = resourceGroup().id diff --git a/arm/Microsoft.Authorization/locks/resourceGroup/readme.md b/arm/Microsoft.Authorization/locks/resourceGroup/readme.md new file mode 100644 index 0000000000..ccce2f04c5 --- /dev/null +++ b/arm/Microsoft.Authorization/locks/resourceGroup/readme.md @@ -0,0 +1,39 @@ +# Authorization Locks on Resource Group level `[Microsoft.Authorization/locks/resourceGroup]` + +This module deploys Authorization Locks on Resource Group level. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Allowed Values | Description | +| :-- | :-- | :-- | :-- | +| `level` | string | `[CanNotDelete, ReadOnly]` | Set lock level. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `name` | string | `[format('{0}-lock', parameters('level'))]` | The name of the lock. | +| `notes` | string | `[if(equals(parameters('level'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot modify the resource or child resources.')]` | The decription attached to the lock. | + + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the lock. | +| `resourceGroupName` | string | The name of the resource group name the lock was applied to. | +| `resourceId` | string | The resource ID of the lock. | +| `scope` | string | The scope this lock applies to. | diff --git a/arm/Microsoft.Authorization/locks/resourceGroup/version.json b/arm/Microsoft.Authorization/locks/resourceGroup/version.json new file mode 100644 index 0000000000..41f66cc990 --- /dev/null +++ b/arm/Microsoft.Authorization/locks/resourceGroup/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.1" +} diff --git a/arm/Microsoft.Authorization/locks/subscription/deploy.bicep b/arm/Microsoft.Authorization/locks/subscription/deploy.bicep new file mode 100644 index 0000000000..e2604033ce --- /dev/null +++ b/arm/Microsoft.Authorization/locks/subscription/deploy.bicep @@ -0,0 +1,49 @@ +targetScope = 'subscription' + +@description('Optional. The name of the lock.') +param name string = '${level}-lock' + +@allowed([ + 'CanNotDelete' + 'ReadOnly' +]) +@description('Required. Set lock level.') +param level string + +@description('Optional. The decription attached to the lock.') +param notes string = level == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource lock 'Microsoft.Authorization/locks@2017-04-01' = { + name: name + properties: { + level: level + notes: notes + } +} + +@description('The name of the lock.') +output name string = lock.name + +@description('The resource ID of the lock.') +output resourceId string = lock.id + +@description('The subscription name the lock was deployed into.') +output subscriptionName string = subscription().displayName + +@sys.description('The scope this lock applies to.') +output scope string = subscription().id diff --git a/arm/Microsoft.Authorization/locks/subscription/readme.md b/arm/Microsoft.Authorization/locks/subscription/readme.md new file mode 100644 index 0000000000..9483b14824 --- /dev/null +++ b/arm/Microsoft.Authorization/locks/subscription/readme.md @@ -0,0 +1,39 @@ +# Authorization Locks on Subscription level `[Microsoft.Authorization/locks/subscription]` + +This module deploys Authorization Locks on Subscription level. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Allowed Values | Description | +| :-- | :-- | :-- | :-- | +| `level` | string | `[CanNotDelete, ReadOnly]` | Set lock level. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `name` | string | `[format('{0}-lock', parameters('level'))]` | The name of the lock. | +| `notes` | string | `[if(equals(parameters('level'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot modify the resource or child resources.')]` | The decription attached to the lock. | + + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the lock. | +| `resourceId` | string | The resource ID of the lock. | +| `scope` | string | The scope this lock applies to. | +| `subscriptionName` | string | The subscription name the lock was deployed into. | diff --git a/arm/Microsoft.Authorization/locks/subscription/version.json b/arm/Microsoft.Authorization/locks/subscription/version.json new file mode 100644 index 0000000000..41f66cc990 --- /dev/null +++ b/arm/Microsoft.Authorization/locks/subscription/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.1" +} diff --git a/arm/Microsoft.Authorization/locks/version.json b/arm/Microsoft.Authorization/locks/version.json new file mode 100644 index 0000000000..41f66cc990 --- /dev/null +++ b/arm/Microsoft.Authorization/locks/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.1" +} diff --git a/arm/Microsoft.Authorization/policyAssignments/deploy.bicep b/arm/Microsoft.Authorization/policyAssignments/deploy.bicep index b8312a2088..764383db90 100644 --- a/arm/Microsoft.Authorization/policyAssignments/deploy.bicep +++ b/arm/Microsoft.Authorization/policyAssignments/deploy.bicep @@ -61,7 +61,7 @@ param location string = deployment().location @sys.description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -94,7 +94,7 @@ module policyAssignment_mg 'managementGroup/deploy.bicep' = if (empty(subscripti notScopes: !empty(notScopes) ? notScopes : [] managementGroupId: managementGroupId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -116,7 +116,7 @@ module policyAssignment_sub 'subscription/deploy.bicep' = if (!empty(subscriptio notScopes: !empty(notScopes) ? notScopes : [] subscriptionId: subscriptionId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -138,7 +138,7 @@ module policyAssignment_rg 'resourceGroup/deploy.bicep' = if (!empty(resourceGro notScopes: !empty(notScopes) ? notScopes : [] subscriptionId: subscriptionId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Authorization/policyDefinitions/deploy.bicep b/arm/Microsoft.Authorization/policyDefinitions/deploy.bicep index 320f650992..455ad65454 100644 --- a/arm/Microsoft.Authorization/policyDefinitions/deploy.bicep +++ b/arm/Microsoft.Authorization/policyDefinitions/deploy.bicep @@ -42,7 +42,7 @@ param location string = deployment().location @sys.description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -70,7 +70,7 @@ module policyDefinition_mg 'managementGroup/deploy.bicep' = if (empty(subscripti parameters: !empty(parameters) ? parameters : {} policyRule: policyRule location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -87,7 +87,7 @@ module policyDefinition_sub 'subscription/deploy.bicep' = if (!empty(subscriptio parameters: !empty(parameters) ? parameters : {} policyRule: policyRule location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Authorization/policyExemptions/deploy.bicep b/arm/Microsoft.Authorization/policyExemptions/deploy.bicep index 6abb4fbdb1..a0f74a42a9 100644 --- a/arm/Microsoft.Authorization/policyExemptions/deploy.bicep +++ b/arm/Microsoft.Authorization/policyExemptions/deploy.bicep @@ -45,7 +45,7 @@ param location string = deployment().location @sys.description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -74,7 +74,7 @@ module policyExemption_mg 'managementGroup/deploy.bicep' = if (empty(subscriptio expiresOn: !empty(expiresOn) ? expiresOn : '' managementGroupId: managementGroupId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -92,7 +92,7 @@ module policyExemption_sub 'subscription/deploy.bicep' = if (!empty(subscription expiresOn: !empty(expiresOn) ? expiresOn : '' subscriptionId: subscriptionId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -110,7 +110,7 @@ module policyExemption_rg 'resourceGroup/deploy.bicep' = if (!empty(resourceGrou expiresOn: !empty(expiresOn) ? expiresOn : '' subscriptionId: subscriptionId resourceGroupName: resourceGroupName - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Authorization/policySetDefinitions/deploy.bicep b/arm/Microsoft.Authorization/policySetDefinitions/deploy.bicep index cc3631ac5f..f57db04f2b 100644 --- a/arm/Microsoft.Authorization/policySetDefinitions/deploy.bicep +++ b/arm/Microsoft.Authorization/policySetDefinitions/deploy.bicep @@ -1,6 +1,6 @@ targetScope = 'managementGroup' -@sys.description('Required. Specifies the name of the policy Set Definition (Initiative). Maximum length is 24 characters for management group scope and 64 characters for subscription scope.') +@sys.description('Required. Specifies the name of the policy Set Definition (Initiative).') @maxLength(64) param name string @@ -35,7 +35,7 @@ param location string = deployment().location @sys.description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -63,7 +63,7 @@ module policySetDefinition_mg 'managementGroup/deploy.bicep' = if (empty(subscri policyDefinitionGroups: !empty(policyDefinitionGroups) ? policyDefinitionGroups : [] managementGroupId: managementGroupId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -80,7 +80,7 @@ module policySetDefinition_sub 'subscription/deploy.bicep' = if (!empty(subscrip policyDefinitionGroups: !empty(policyDefinitionGroups) ? policyDefinitionGroups : [] subscriptionId: subscriptionId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep b/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep index e477cb8161..54a92f6ec2 100644 --- a/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep +++ b/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/deploy.bicep @@ -1,7 +1,7 @@ targetScope = 'managementGroup' -@sys.description('Required. Specifies the name of the policy Set Definition (Initiative). Maximum length is 24 characters for management group scope.') -@maxLength(24) +@sys.description('Required. Specifies the name of the policy Set Definition (Initiative).') +@maxLength(64) param name string @sys.description('Optional. The display name of the Set Definition (Initiative). Maximum length is 128 characters.') diff --git a/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md b/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md index 30ffcb68a4..83f6854956 100644 --- a/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md +++ b/arm/Microsoft.Authorization/policySetDefinitions/managementGroup/readme.md @@ -19,7 +19,7 @@ With this module you can create policy set definitions on a management group lev **Required parameters** | Parameter Name | Type | Description | | :-- | :-- | :-- | -| `name` | string | Specifies the name of the policy Set Definition (Initiative). Maximum length is 24 characters for management group scope. | +| `name` | string | Specifies the name of the policy Set Definition (Initiative). | | `policyDefinitions` | array | The array of Policy definitions object to include for this policy set. Each object must include the Policy definition ID, and optionally other properties like parameters. | **Optional parameters** diff --git a/arm/Microsoft.Authorization/policySetDefinitions/readme.md b/arm/Microsoft.Authorization/policySetDefinitions/readme.md index c5bbda9874..eb194adcdb 100644 --- a/arm/Microsoft.Authorization/policySetDefinitions/readme.md +++ b/arm/Microsoft.Authorization/policySetDefinitions/readme.md @@ -22,7 +22,7 @@ With this module you can create policy set definitions across the management gro **Required parameters** | Parameter Name | Type | Description | | :-- | :-- | :-- | -| `name` | string | Specifies the name of the policy Set Definition (Initiative). Maximum length is 24 characters for management group scope and 64 characters for subscription scope. | +| `name` | string | Specifies the name of the policy Set Definition (Initiative). | | `policyDefinitions` | array | The array of Policy definitions object to include for this policy set. Each object must include the Policy definition ID, and optionally other properties like parameters. | **Optional parameters** diff --git a/arm/Microsoft.Authorization/roleAssignments/deploy.bicep b/arm/Microsoft.Authorization/roleAssignments/deploy.bicep index 4695bc3573..f2ac30b171 100644 --- a/arm/Microsoft.Authorization/roleAssignments/deploy.bicep +++ b/arm/Microsoft.Authorization/roleAssignments/deploy.bicep @@ -47,7 +47,7 @@ param principalType string = '' @sys.description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -75,7 +75,7 @@ module roleAssignment_mg 'managementGroup/deploy.bicep' = if (empty(subscription conditionVersion: conditionVersion condition: !empty(condition) ? condition : '' location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -92,7 +92,7 @@ module roleAssignment_sub 'subscription/deploy.bicep' = if (!empty(subscriptionI conditionVersion: conditionVersion condition: !empty(condition) ? condition : '' location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -109,7 +109,7 @@ module roleAssignment_rg 'resourceGroup/deploy.bicep' = if (!empty(resourceGroup delegatedManagedIdentityResourceId: !empty(delegatedManagedIdentityResourceId) ? delegatedManagedIdentityResourceId : '' conditionVersion: conditionVersion condition: !empty(condition) ? condition : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Authorization/roleDefinitions/deploy.bicep b/arm/Microsoft.Authorization/roleDefinitions/deploy.bicep index 810e9c5707..052c570948 100644 --- a/arm/Microsoft.Authorization/roleDefinitions/deploy.bicep +++ b/arm/Microsoft.Authorization/roleDefinitions/deploy.bicep @@ -36,7 +36,7 @@ param assignableScopes array = [] @sys.description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -62,7 +62,7 @@ module roleDefinition_mg 'managementGroup/deploy.bicep' = if (empty(subscription assignableScopes: !empty(assignableScopes) ? assignableScopes : [] managementGroupId: managementGroupId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -79,7 +79,7 @@ module roleDefinition_sub 'subscription/deploy.bicep' = if (!empty(subscriptionI assignableScopes: !empty(assignableScopes) ? assignableScopes : [] subscriptionId: subscriptionId location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -96,7 +96,7 @@ module roleDefinition_rg 'resourceGroup/deploy.bicep' = if (!empty(resourceGroup assignableScopes: !empty(assignableScopes) ? assignableScopes : [] subscriptionId: subscriptionId resourceGroupName: resourceGroupName - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Automation/automationAccounts/.bicep/nested_linkedService.bicep b/arm/Microsoft.Automation/automationAccounts/.bicep/nested_linkedService.bicep deleted file mode 100644 index 651118484b..0000000000 --- a/arm/Microsoft.Automation/automationAccounts/.bicep/nested_linkedService.bicep +++ /dev/null @@ -1,37 +0,0 @@ -@description('Required. Name of the link') -param name string - -@description('Required. Name of the Log Analytics workspace') -param logAnalyticsWorkspaceName string - -@description('Required. The resource ID of the resource that will be linked to the workspace. This should be used for linking resources which require read access.') -param resourceId string = '' - -@description('Optional. The resource ID of the resource that will be linked to the workspace. This should be used for linking resources which require write access.') -param writeAccessResourceId string = '' - -@description('Optional. Tags to configure in the resource.') -param tags object = {} - -resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2021-06-01' existing = { - name: logAnalyticsWorkspaceName -} - -resource linkedService 'Microsoft.OperationalInsights/workspaces/linkedServices@2020-03-01-preview' = { - name: name - parent: logAnalyticsWorkspace - tags: tags - properties: { - resourceId: !empty(resourceId) ? resourceId : null - writeAccessResourceId: !empty(writeAccessResourceId) ? writeAccessResourceId : null - } -} - -@description('The name of the deployed linked service') -output name string = linkedService.name - -@description('The resource ID of the deployed linked service') -output resourceId string = linkedService.id - -@description('The resource group where the linked service is deployed') -output resourceGroupName string = resourceGroup().name diff --git a/arm/Microsoft.Automation/automationAccounts/.bicep/nested_rbac.bicep b/arm/Microsoft.Automation/automationAccounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Automation/automationAccounts/.bicep/nested_rbac.bicep rename to arm/Microsoft.Automation/automationAccounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Automation/automationAccounts/.bicep/nested_solution.bicep b/arm/Microsoft.Automation/automationAccounts/.bicep/nested_solution.bicep deleted file mode 100644 index b6cbf586ea..0000000000 --- a/arm/Microsoft.Automation/automationAccounts/.bicep/nested_solution.bicep +++ /dev/null @@ -1,43 +0,0 @@ -@description('Required. Name of the solution') -param name string - -@description('Required. Name of the Log Analytics workspace') -param logAnalyticsWorkspaceName string - -@description('Optional. Location for all resources.') -param location string = resourceGroup().location - -@description('Optional. The product of the deployed solution. For gallery solution, it is OMSGallery.') -param product string = 'OMSGallery' - -@description('Optional. The publisher name of the deployed solution. For gallery solution, it is Microsoft.') -param publisher string = 'Microsoft' - -resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = { - name: logAnalyticsWorkspaceName -} - -var solutionName = '${name}(${logAnalyticsWorkspace.name})' - -resource solution 'Microsoft.OperationsManagement/solutions@2015-11-01-preview' = { - name: solutionName - location: location - properties: { - workspaceResourceId: logAnalyticsWorkspace.id - } - plan: { - name: solutionName - promotionCode: '' - product: '${product}/${name}' - publisher: publisher - } -} - -@description('The name of the deployed solution') -output name string = solution.name - -@description('The resource ID of the deployed solution') -output resourceId string = solution.id - -@description('The resource group where the solution is deployed') -output resourceGroupName string = resourceGroup().name diff --git a/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json b/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json index c396172aaa..de787fa3bb 100644 --- a/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json +++ b/arm/Microsoft.Automation/automationAccounts/.parameters/encr.parameters.json @@ -3,24 +3,23 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-wd-aut-encr-001" + "value": "<>-az-aut-encr-001" }, - "encryptionKeySource" : { - "value" : "Microsoft.Keyvault" + "encryptionKeySource": { + "value": "Microsoft.Keyvault" }, "encryptionUserAssignedIdentity": { "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" // this identity needs to be one of the identities defined in userAssignedIdentities section }, - "keyName" : { - "value" : "keyEncryptionKey" + "keyName": { + "value": "keyEncryptionKey" }, - "keyvaultUri" : { - "value" : "https://adp-carml-az-kv-nopr-002.vault.azure.net/" + "keyvaultUri": { + "value": "https://adp-<>-az-kv-nopr-002.vault.azure.net/" }, - "keyVersion" : { - "value" : "9917c14be51d4d93b37218de7d326f60" + "keyVersion": { + "value": "9917c14be51d4d93b37218de7d326f60" }, - "userAssignedIdentities": { "value": { "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} diff --git a/arm/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json b/arm/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json index 36d11228da..c76e891806 100644 --- a/arm/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json +++ b/arm/Microsoft.Automation/automationAccounts/.parameters/min.parameters.json @@ -3,7 +3,7 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-wd-aut-min-001" + "value": "<>-az-aut-min-001" } } } diff --git a/arm/Microsoft.Automation/automationAccounts/.parameters/parameters.json b/arm/Microsoft.Automation/automationAccounts/.parameters/parameters.json index 5973a95523..ae5e51517b 100644 --- a/arm/Microsoft.Automation/automationAccounts/.parameters/parameters.json +++ b/arm/Microsoft.Automation/automationAccounts/.parameters/parameters.json @@ -3,14 +3,17 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-wd-aut-x-001" + "value": "<>-az-aut-x-001" + }, + "lock": { + "value": "CanNotDelete" }, "schedules": { "value": [ { "name": "TestSchedule", "startTime": "", - "expiryTime": "9999-12-31T23:59:00+00:00", + "expiryTime": "9999-12-31T13:00", "interval": 15, "frequency": "Minute", "timeZone": "Europe/Berlin", @@ -81,7 +84,11 @@ }, "gallerySolutions": { "value": [ - "Updates" + { + "name": "Updates", + "product": "OMSGallery", + "publisher": "Microsoft" + } ] }, "softwareUpdateConfigurations": { diff --git a/arm/Microsoft.Automation/automationAccounts/deploy.bicep b/arm/Microsoft.Automation/automationAccounts/deploy.bicep index b076c71097..387eba3a0c 100644 --- a/arm/Microsoft.Automation/automationAccounts/deploy.bicep +++ b/arm/Microsoft.Automation/automationAccounts/deploy.bicep @@ -81,12 +81,12 @@ param systemAssignedIdentity bool = false param userAssignedIdentities object = {} @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -120,7 +120,7 @@ param diagnosticMetricsToEnable array = [ @description('Optional. The name of the diagnostic setting, if deployed.') param diagnosticSettingsName string = '${name}-diagnosticSettings' -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { category: category @@ -192,7 +192,7 @@ module automationAccount_modules 'modules/deploy.bicep' = [for (module, index) i uri: module.uri location: location tags: tags - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -208,7 +208,7 @@ module automationAccount_schedules 'schedules/deploy.bicep' = [for (schedule, in interval: contains(schedule, 'interval') ? schedule.interval : 0 startTime: contains(schedule, 'startTime') ? schedule.startTime : '' timeZone: contains(schedule, 'timeZone') ? schedule.timeZone : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -223,7 +223,7 @@ module automationAccount_runbooks 'runbooks/deploy.bicep' = [for (runbook, index version: contains(runbook, 'version') ? runbook.version : '' location: location tags: tags - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -235,7 +235,7 @@ module automationAccount_jobSchedules 'jobSchedules/deploy.bicep' = [for (jobSch scheduleName: jobSchedule.scheduleName parameters: contains(jobSchedule, 'parameters') ? jobSchedule.parameters : {} runOn: contains(jobSchedule, 'runOn') ? jobSchedule.runOn : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ automationAccount_schedules @@ -251,15 +251,16 @@ module automationAccount_variables 'variables/deploy.bicep' = [for (variable, in description: contains(variable, 'description') ? variable.description : '' value: variable.value isEncrypted: contains(variable, 'isEncrypted') ? variable.isEncrypted : true - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -module automationAccount_linkedService '.bicep/nested_linkedService.bicep' = if (!empty(linkedWorkspaceResourceId)) { +module automationAccount_linkedService '../../Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep' = if (!empty(linkedWorkspaceResourceId)) { name: '${uniqueString(deployment().name, location)}-AutoAccount-LinkedService' params: { name: 'automation' logAnalyticsWorkspaceName: last(split(linkedWorkspaceResourceId, '/')) + enableDefaultTelemetry: enableReferencedModulesTelemetry resourceId: automationAccount.id tags: tags } @@ -268,12 +269,15 @@ module automationAccount_linkedService '.bicep/nested_linkedService.bicep' = if scope: resourceGroup(!empty(linkedWorkspaceResourceId) ? split(linkedWorkspaceResourceId, '/')[2] : subscription().subscriptionId, !empty(linkedWorkspaceResourceId) ? split(linkedWorkspaceResourceId, '/')[4] : resourceGroup().name) } -module automationAccount_solutions '.bicep/nested_solution.bicep' = [for (gallerySolution, index) in gallerySolutions: if (!empty(linkedWorkspaceResourceId)) { +module automationAccount_solutions '../../Microsoft.OperationsManagement/solutions/deploy.bicep' = [for (gallerySolution, index) in gallerySolutions: if (!empty(linkedWorkspaceResourceId)) { name: '${uniqueString(deployment().name, location)}-AutoAccount-Solution-${index}' params: { - name: gallerySolution + name: gallerySolution.name location: location logAnalyticsWorkspaceName: last(split(linkedWorkspaceResourceId, '/')) + product: contains(gallerySolution, 'product') ? gallerySolution.product : 'OMSGallery' + publisher: contains(gallerySolution, 'publisher') ? gallerySolution.publisher : 'Microsoft' + enableDefaultTelemetry: enableReferencedModulesTelemetry } // This is to support solution to law in different subscription and resource group than the automation account. // The current scope is used by default if no linked service is intended to be created. @@ -323,17 +327,17 @@ module automationAccount_softwareUpdateConfigurations 'softwareUpdateConfigurati 'Security' ] weekDays: contains(softwareUpdateConfiguration, 'weekDays') ? softwareUpdateConfiguration.weekDays : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ automationAccount_solutions ] }] -resource automationAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { - name: '${automationAccount.name}-AutoAccount-${lock}-lock' +resource automationAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { + name: '${automationAccount.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: automationAccount @@ -361,9 +365,9 @@ module automationAccount_privateEndpoints '../../Microsoft.Network/privateEndpoi name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(automationAccount.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: automationAccount.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -372,7 +376,7 @@ module automationAccount_privateEndpoints '../../Microsoft.Network/privateEndpoi } }] -module automationAccount_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module automationAccount_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AutoAccount-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Automation/automationAccounts/readme.md b/arm/Microsoft.Automation/automationAccounts/readme.md index 49b775fa0c..b95992ee0c 100644 --- a/arm/Microsoft.Automation/automationAccounts/readme.md +++ b/arm/Microsoft.Automation/automationAccounts/readme.md @@ -25,7 +25,7 @@ This module deploys an Azure Automation Account. | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | | `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | -| `Microsoft.OperationalInsights/workspaces/linkedServices` | [2020-03-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.OperationalInsights/2020-03-01-preview/workspaces/linkedServices) | +| `Microsoft.OperationalInsights/workspaces/linkedServices` | [2020-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.OperationalInsights/2020-08-01/workspaces/linkedServices) | | `Microsoft.OperationsManagement/solutions` | [2015-11-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.OperationsManagement/2015-11-01-preview/solutions) | ## Parameters @@ -56,7 +56,7 @@ This module deploys an Azure Automation Account. | `keyVersion` | string | `''` | | The key version of the key used to encrypt data. This parameter is needed only if you enable Microsoft.Keyvault as encryptionKeySource. | | `linkedWorkspaceResourceId` | string | `''` | | ID of the log analytics workspace to be linked to the deployed automation account. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `modules` | _[modules](modules/readme.md)_ array | `[]` | | List of modules to be created in the automation account. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -71,7 +71,7 @@ This module deploys an Azure Automation Account. ### Parameter Usage: `encryption` -Prerequsites: +Prerequisites: - User Assigned Identity for Encryption needs `Get`, `List`, `Wrap` and `Unwrap` permissions on the key. - User Assigned Identity have to be one of the defined identities in userAssignedIdentities parameter block. - To use Azure Automation with customer managed keys, both `Soft Delete` and `Do Not Purge` features must be turned on to allow for recovery of keys in case of accidental deletion. @@ -357,22 +357,22 @@ userAssignedIdentities: { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-wd-aut-encr-001" + "value": "<>-az-aut-encr-001" }, - "encryptionKeySource" : { - "value" : "Microsoft.Keyvault" + "encryptionKeySource": { + "value": "Microsoft.Keyvault" }, "encryptionUserAssignedIdentity": { "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" // this identity needs to be one of the identities defined in userAssignedIdentities section }, - "keyName" : { - "value" : "keyEncryptionKey" + "keyName": { + "value": "keyEncryptionKey" }, - "keyvaultUri" : { - "value" : "https://adp-carml-az-kv-nopr-002.vault.azure.net/" + "keyvaultUri": { + "value": "https://adp-<>-az-kv-nopr-002.vault.azure.net/" }, - "keyVersion" : { - "value" : "9917c14be51d4d93b37218de7d326f60" + "keyVersion": { + "value": "9917c14be51d4d93b37218de7d326f60" }, "userAssignedIdentities": { "value": { @@ -394,11 +394,11 @@ userAssignedIdentities: { module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bicep' = { name: '${uniqueString(deployment().name)}-automationAccounts' params: { - name: '<>-wd-aut-encr-001' + name: '<>-az-aut-encr-001' encryptionKeySource: 'Microsoft.Keyvault' encryptionUserAssignedIdentity: '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001' keyName: 'keyEncryptionKey' - keyvaultUri: 'https://adp-carml-az-kv-nopr-002.vault.azure.net/' + keyvaultUri: 'https://adp-<>-az-kv-nopr-002.vault.azure.net/' keyVersion: '9917c14be51d4d93b37218de7d326f60' userAssignedIdentities: { '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} @@ -421,7 +421,7 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-wd-aut-min-001" + "value": "<>-az-aut-min-001" } } } @@ -438,7 +438,7 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bicep' = { name: '${uniqueString(deployment().name)}-automationAccounts' params: { - name: '<>-wd-aut-min-001' + name: '<>-az-aut-min-001' } ``` @@ -457,14 +457,17 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-wd-aut-x-001" + "value": "<>-az-aut-x-001" + }, + "lock": { + "value": "CanNotDelete" }, "schedules": { "value": [ { "name": "TestSchedule", "startTime": "", - "expiryTime": "9999-12-31T23:59:00+00:00", + "expiryTime": "9999-12-31T13:00", "interval": 15, "frequency": "Minute", "timeZone": "Europe/Berlin", @@ -535,7 +538,11 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice }, "gallerySolutions": { "value": [ - "Updates" + { + "name": "Updates", + "product": "OMSGallery", + "publisher": "Microsoft" + } ] }, "softwareUpdateConfigurations": { @@ -657,12 +664,13 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bicep' = { name: '${uniqueString(deployment().name)}-automationAccounts' params: { - name: '<>-wd-aut-x-001' + name: '<>-az-aut-x-001' + lock: 'CanNotDelete' schedules: [ { name: 'TestSchedule' startTime: '' - expiryTime: '9999-12-31T23:59:59.9999999+01:00' + expiryTime: '9999-12-31T13:00' interval: 15 frequency: 'Minute' timeZone: 'Europe/Berlin' @@ -721,7 +729,11 @@ module automationAccounts './Microsoft.Automation/automationAccounts/deploy.bice ] linkedWorkspaceResourceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-aut-001' gallerySolutions: [ - 'Updates' + { + name: 'Updates' + product: 'OMSGallery' + publisher: 'Microsoft' + } ] softwareUpdateConfigurations: [ { diff --git a/arm/Microsoft.Batch/batchAccounts/.parameters/parameters.json b/arm/Microsoft.Batch/batchAccounts/.parameters/parameters.json index b2085df34e..d87ce3fd34 100644 --- a/arm/Microsoft.Batch/batchAccounts/.parameters/parameters.json +++ b/arm/Microsoft.Batch/batchAccounts/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>azbaweux001" }, + "lock": { + "value": "CanNotDelete" + }, "diagnosticLogsRetentionInDays": { "value": 7 }, diff --git a/arm/Microsoft.Batch/batchAccounts/deploy.bicep b/arm/Microsoft.Batch/batchAccounts/deploy.bicep index 30c15296d2..635939747b 100644 --- a/arm/Microsoft.Batch/batchAccounts/deploy.bicep +++ b/arm/Microsoft.Batch/batchAccounts/deploy.bicep @@ -55,12 +55,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -182,11 +182,11 @@ resource batchAccount 'Microsoft.Batch/batchAccounts@2022-01-01' = { } } -resource batchAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource batchAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${batchAccount.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: batchAccount } diff --git a/arm/Microsoft.Batch/batchAccounts/readme.md b/arm/Microsoft.Batch/batchAccounts/readme.md index 426e0cfc8d..80418ad1ce 100644 --- a/arm/Microsoft.Batch/batchAccounts/readme.md +++ b/arm/Microsoft.Batch/batchAccounts/readme.md @@ -45,7 +45,7 @@ | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `encryptionKeySource` | string | `'Microsoft.Batch'` | `[Microsoft.Batch, Microsoft.KeyVault]` | Type of the key source. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `poolAllocationMode` | string | `'BatchService'` | `[BatchService, UserSubscription]` | The allocation mode for creating pools in the Batch account. Determines which quota will be used. | | `publicNetworkAccess` | string | `'Enabled'` | `[Disabled, Enabled]` | The network access type for operating on the resources in the Batch account. | | `storageAccessIdentity` | string | `''` | | The reference to a user assigned identity associated with the Batch pool which a compute node will use. | @@ -194,6 +194,9 @@ module batchAccounts './Microsoft.Batch/batchAccounts/deploy.bicep' = { "name": { "value": "<>azbaweux001" }, + "lock": { + "value": "CanNotDelete" + }, "diagnosticLogsRetentionInDays": { "value": 7 }, @@ -240,6 +243,7 @@ module batchAccounts './Microsoft.Batch/batchAccounts/deploy.bicep' = { name: '${uniqueString(deployment().name)}-batchAccounts' params: { name: '<>azbaweux001' + lock: 'CanNotDelete' diagnosticLogsRetentionInDays: 7 diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' diff --git a/arm/Microsoft.CognitiveServices/accounts/.bicep/nested_rbac.bicep b/arm/Microsoft.CognitiveServices/accounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.CognitiveServices/accounts/.bicep/nested_rbac.bicep rename to arm/Microsoft.CognitiveServices/accounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.CognitiveServices/accounts/.parameters/parameters.json b/arm/Microsoft.CognitiveServices/accounts/.parameters/parameters.json index a7eb9a7d6f..9b8a8a07da 100644 --- a/arm/Microsoft.CognitiveServices/accounts/.parameters/parameters.json +++ b/arm/Microsoft.CognitiveServices/accounts/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-cgs-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "kind": { "value": "Face" }, diff --git a/arm/Microsoft.CognitiveServices/accounts/deploy.bicep b/arm/Microsoft.CognitiveServices/accounts/deploy.bicep index abe3a86d52..17c346d42f 100644 --- a/arm/Microsoft.CognitiveServices/accounts/deploy.bicep +++ b/arm/Microsoft.CognitiveServices/accounts/deploy.bicep @@ -90,12 +90,12 @@ param systemAssignedIdentity bool = false param userAssignedIdentities object = {} @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Configuration Details for private endpoints.') param privateEndpoints array = [] @@ -173,6 +173,8 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { } }] +var enableReferencedModulesTelemetry = false + var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned,UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None') var identity = identityType != 'None' ? { @@ -222,11 +224,11 @@ resource cognitiveServices 'Microsoft.CognitiveServices/accounts@2021-10-01' = { } } -resource cognitiveServices_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource cognitiveServices_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${cognitiveServices.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: cognitiveServices } @@ -253,9 +255,9 @@ module cognitiveServices_privateEndpoints '../../Microsoft.Network/privateEndpoi name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(cognitiveServices.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: cognitiveServices.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -264,7 +266,7 @@ module cognitiveServices_privateEndpoints '../../Microsoft.Network/privateEndpoi } }] -module cognitiveServices_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module cognitiveServices_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-CognitiveServices-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.CognitiveServices/accounts/readme.md b/arm/Microsoft.CognitiveServices/accounts/readme.md index e2ec279c51..800db10ae6 100644 --- a/arm/Microsoft.CognitiveServices/accounts/readme.md +++ b/arm/Microsoft.CognitiveServices/accounts/readme.md @@ -51,7 +51,7 @@ This module deploys different kinds of cognitive services resources | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `encryption` | object | `{object}` | | Properties to configure encryption. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `migrationToken` | string | `''` | | Resource migration token. | | `networkAcls` | object | `{object}` | | Service endpoint object information. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. | @@ -366,6 +366,9 @@ userAssignedIdentities: { "name": { "value": "<>-az-cgs-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "kind": { "value": "Face" }, @@ -421,6 +424,7 @@ module accounts './Microsoft.CognitiveServices/accounts/deploy.bicep' = { name: '${uniqueString(deployment().name)}-accounts' params: { name: '<>-az-cgs-x-001' + lock: 'CanNotDelete' kind: 'Face' sku: 'F0' roleAssignments: [ diff --git a/arm/Microsoft.Compute/availabilitySets/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/availabilitySets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/availabilitySets/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/availabilitySets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/availabilitySets/.parameters/parameters.json b/arm/Microsoft.Compute/availabilitySets/.parameters/parameters.json index cfa2eab50f..f7d8be50c6 100644 --- a/arm/Microsoft.Compute/availabilitySets/.parameters/parameters.json +++ b/arm/Microsoft.Compute/availabilitySets/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-avs-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Compute/availabilitySets/deploy.bicep b/arm/Microsoft.Compute/availabilitySets/deploy.bicep index 416f8573fe..487a64c862 100644 --- a/arm/Microsoft.Compute/availabilitySets/deploy.bicep +++ b/arm/Microsoft.Compute/availabilitySets/deploy.bicep @@ -20,12 +20,12 @@ param proximityPlacementGroupId string = '' param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -64,16 +64,16 @@ resource availabilitySet 'Microsoft.Compute/availabilitySets@2021-07-01' = { } } -resource availabilitySet_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource availabilitySet_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${availabilitySet.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: availabilitySet } -module availabilitySet_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module availabilitySet_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AvSet-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Compute/availabilitySets/readme.md b/arm/Microsoft.Compute/availabilitySets/readme.md index 508453929b..871371a75e 100644 --- a/arm/Microsoft.Compute/availabilitySets/readme.md +++ b/arm/Microsoft.Compute/availabilitySets/readme.md @@ -32,7 +32,7 @@ This template deploys an availability set | `availabilitySetUpdateDomain` | int | `5` | | The number of update domains to use. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Resource location. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `proximityPlacementGroupId` | string | `''` | | Resource ID of a proximity placement group. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the availability set resource. | @@ -199,6 +199,9 @@ module availabilitySets './Microsoft.Compute/availabilitySets/deploy.bicep' = { "name": { "value": "<>-az-avs-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -228,6 +231,7 @@ module availabilitySets './Microsoft.Compute/availabilitySets/deploy.bicep' = { name: '${uniqueString(deployment().name)}-availabilitySets' params: { name: '<>-az-avs-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_kvAccessPolicy.bicep b/arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_kvAccessPolicy.bicep deleted file mode 100644 index 64765196a8..0000000000 --- a/arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_kvAccessPolicy.bicep +++ /dev/null @@ -1,36 +0,0 @@ -@description('Required. The name of the key vault') -param keyVaultName string - -@description('Optional. An array of 0 to 16 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault\'s tenant ID.') -param accessPolicies array = [] - -@description('Optional. The access policy name') -param name string = 'add' - -var formattedAccessPolicies = [for accessPolicy in accessPolicies: { - applicationId: contains(accessPolicy, 'applicationId') ? accessPolicy.applicationId : '' - objectId: contains(accessPolicy, 'objectId') ? accessPolicy.objectId : '' - permissions: accessPolicy.permissions - tenantId: contains(accessPolicy, 'tenantId') ? accessPolicy.tenantId : tenant().tenantId -}] - -resource keyVault 'Microsoft.KeyVault/vaults@2021-06-01-preview' existing = { - name: keyVaultName -} - -resource policies 'Microsoft.KeyVault/vaults/accessPolicies@2021-06-01-preview' = { - name: name - parent: keyVault - properties: { - accessPolicies: formattedAccessPolicies - } -} - -@description('The name of the resource group the access policies assignment was created in.') -output resourceGroupName string = resourceGroup().name - -@description('The name of the access policies assignment') -output name string = policies.name - -@description('The resource ID of the access policies assignment') -output resourceId string = policies.id diff --git a/arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/diskEncryptionSets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/diskEncryptionSets/deploy.bicep b/arm/Microsoft.Compute/diskEncryptionSets/deploy.bicep index 450cc072f2..56827da5a4 100644 --- a/arm/Microsoft.Compute/diskEncryptionSets/deploy.bicep +++ b/arm/Microsoft.Compute/diskEncryptionSets/deploy.bicep @@ -60,7 +60,7 @@ resource diskEncryptionSet 'Microsoft.Compute/diskEncryptionSets@2021-04-01' = { } } -module keyVaultAccessPolicies '.bicep/nested_kvAccessPolicy.bicep' = { +module keyVaultAccessPolicies '../../Microsoft.KeyVault/vaults/accessPolicies/deploy.bicep' = { name: '${uniqueString(deployment().name, location)}-DiskEncrSet-KVAccessPolicies' params: { keyVaultName: last(split(keyVaultId, '/')) @@ -84,7 +84,7 @@ module keyVaultAccessPolicies '.bicep/nested_kvAccessPolicy.bicep' = { scope: resourceGroup(split(keyVaultId, '/')[2], split(keyVaultId, '/')[4]) } -module diskEncryptionSet_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module diskEncryptionSet_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-DiskEncrSet-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Compute/disks/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/disks/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/disks/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/disks/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/disks/.parameters/parameters.json b/arm/Microsoft.Compute/disks/.parameters/parameters.json index 3608893d90..833336ee1e 100644 --- a/arm/Microsoft.Compute/disks/.parameters/parameters.json +++ b/arm/Microsoft.Compute/disks/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-disk-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "sku": { "value": "UltraSSD_LRS" }, diff --git a/arm/Microsoft.Compute/disks/deploy.bicep b/arm/Microsoft.Compute/disks/deploy.bicep index 98a1afaaf1..e0b4ce52ad 100644 --- a/arm/Microsoft.Compute/disks/deploy.bicep +++ b/arm/Microsoft.Compute/disks/deploy.bicep @@ -103,12 +103,12 @@ param publicNetworkAccess string = 'Disabled' param acceleratedNetwork bool = false @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -167,16 +167,16 @@ resource disk 'Microsoft.Compute/disks@2021-08-01' = { } } -resource disk_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource disk_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${disk.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: disk } -module disk_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module disk_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AvSet-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Compute/disks/readme.md b/arm/Microsoft.Compute/disks/readme.md index a51cd6b34e..6c9770f0b0 100644 --- a/arm/Microsoft.Compute/disks/readme.md +++ b/arm/Microsoft.Compute/disks/readme.md @@ -39,7 +39,7 @@ This template deploys a disk | `hyperVGeneration` | string | `'V2'` | `[V1, V2]` | The hypervisor generation of the Virtual Machine. Applicable to OS disks only. | | `imageReferenceId` | string | `''` | | A relative uri containing either a Platform Image Repository or user image reference. | | `location` | string | `[resourceGroup().location]` | | Resource location. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `logicalSectorSize` | int | `4096` | | Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. | | `maxShares` | int | `1` | | The maximum number of VMs that can attach to the disk at the same time. Default value is 0. | | `networkAccessPolicy` | string | `'DenyAll'` | `[AllowAll, AllowPrivate, DenyAll]` | Policy for accessing the disk via network. | @@ -377,6 +377,9 @@ module disks './Microsoft.Compute/disks/deploy.bicep' = { "name": { "value": "<>-az-disk-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "sku": { "value": "UltraSSD_LRS" }, @@ -424,6 +427,7 @@ module disks './Microsoft.Compute/disks/deploy.bicep' = { name: '${uniqueString(deployment().name)}-disks' params: { name: '<>-az-disk-x-001' + lock: 'CanNotDelete' sku: 'UltraSSD_LRS' diskSizeGB: 128 logicalSectorSize: 512 diff --git a/arm/Microsoft.Compute/galleries/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/galleries/.bicep/nested_roleAssignments.bicep similarity index 98% rename from arm/Microsoft.Compute/galleries/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/galleries/.bicep/nested_roleAssignments.bicep index 99c49b914f..0186f68665 100644 --- a/arm/Microsoft.Compute/galleries/.bicep/nested_rbac.bicep +++ b/arm/Microsoft.Compute/galleries/.bicep/nested_roleAssignments.bicep @@ -39,7 +39,7 @@ var builtInRoleNames = { 'User Access Administrator': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9') } -resource gallery 'Microsoft.Compute/galleries@2020-09-30' existing = { +resource gallery 'Microsoft.Compute/galleries@2021-10-01' existing = { name: last(split(resourceId, '/')) } diff --git a/arm/Microsoft.Compute/galleries/.parameters/parameters.json b/arm/Microsoft.Compute/galleries/.parameters/parameters.json index ccacaf0742..960e0365b2 100644 --- a/arm/Microsoft.Compute/galleries/.parameters/parameters.json +++ b/arm/Microsoft.Compute/galleries/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>azsigweux001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Compute/galleries/deploy.bicep b/arm/Microsoft.Compute/galleries/deploy.bicep index 4a421a8f2b..79c44f1104 100644 --- a/arm/Microsoft.Compute/galleries/deploy.bicep +++ b/arm/Microsoft.Compute/galleries/deploy.bicep @@ -12,12 +12,12 @@ param galleryDescription string = '' param images array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -28,7 +28,7 @@ param tags object = {} @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -42,7 +42,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource gallery 'Microsoft.Compute/galleries@2020-09-30' = { +resource gallery 'Microsoft.Compute/galleries@2021-10-01' = { name: name location: location tags: tags @@ -52,16 +52,16 @@ resource gallery 'Microsoft.Compute/galleries@2020-09-30' = { } } -resource gallery_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource gallery_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${gallery.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: gallery } -module gallery_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module gallery_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Gallery-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -99,7 +99,7 @@ module galleries_images 'images/deploy.bicep' = [for (image, index) in images: { excludedDiskTypes: contains(image, 'excludedDiskTypes') ? image.excludedDiskTypes : [] roleAssignments: contains(image, 'roleAssignments') ? image.roleAssignments : [] tags: contains(image, 'tags') ? image.tags : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.Compute/galleries/images/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/galleries/images/.bicep/nested_roleAssignments.bicep similarity index 97% rename from arm/Microsoft.Compute/galleries/images/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/galleries/images/.bicep/nested_roleAssignments.bicep index 9ce610eb30..caa9501f85 100644 --- a/arm/Microsoft.Compute/galleries/images/.bicep/nested_rbac.bicep +++ b/arm/Microsoft.Compute/galleries/images/.bicep/nested_roleAssignments.bicep @@ -41,7 +41,7 @@ var builtInRoleNames = { 'myCustomRoleAtSub': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '60cb79d9-783a-50a4-9f05-d4c579fb8ce3') } -resource galleryImage 'Microsoft.Compute/galleries/images@2020-09-30' existing = { +resource galleryImage 'Microsoft.Compute/galleries/images@2021-10-01' existing = { name: '${split(resourceId, '/')[8]}/${split(resourceId, '/')[10]}' } diff --git a/arm/Microsoft.Compute/galleries/images/deploy.bicep b/arm/Microsoft.Compute/galleries/images/deploy.bicep index beab97c68f..e7d9eeaade 100644 --- a/arm/Microsoft.Compute/galleries/images/deploy.bicep +++ b/arm/Microsoft.Compute/galleries/images/deploy.bicep @@ -106,11 +106,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource gallery 'Microsoft.Compute/galleries@2020-09-30' existing = { +resource gallery 'Microsoft.Compute/galleries@2021-10-01' existing = { name: galleryName } -resource image 'Microsoft.Compute/galleries/images@2020-09-30' = { +resource image 'Microsoft.Compute/galleries/images@2021-10-01' = { name: name parent: gallery location: location @@ -150,7 +150,7 @@ resource image 'Microsoft.Compute/galleries/images@2020-09-30' = { } } -module galleryImage_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module galleryImage_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Compute/galleries/images/readme.md b/arm/Microsoft.Compute/galleries/images/readme.md index f0066920d8..578ab26887 100644 --- a/arm/Microsoft.Compute/galleries/images/readme.md +++ b/arm/Microsoft.Compute/galleries/images/readme.md @@ -13,7 +13,7 @@ This module deploys an Image Definition in a Shared Image Gallery. | Resource Type | API Version | | :-- | :-- | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | -| `Microsoft.Compute/galleries/images` | [2020-09-30](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Compute/2020-09-30/galleries/images) | +| `Microsoft.Compute/galleries/images` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Compute/2021-10-01/galleries/images) | ## Parameters diff --git a/arm/Microsoft.Compute/galleries/readme.md b/arm/Microsoft.Compute/galleries/readme.md index 991968ac5e..5865fa0c01 100644 --- a/arm/Microsoft.Compute/galleries/readme.md +++ b/arm/Microsoft.Compute/galleries/readme.md @@ -15,8 +15,8 @@ This module deploys an Azure compute gallery (formerly known as shared image gal | :-- | :-- | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | -| `Microsoft.Compute/galleries` | [2020-09-30](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Compute/2020-09-30/galleries) | -| `Microsoft.Compute/galleries/images` | [2020-09-30](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Compute/2020-09-30/galleries/images) | +| `Microsoft.Compute/galleries` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Compute/2021-10-01/galleries) | +| `Microsoft.Compute/galleries/images` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Compute/2021-10-01/galleries/images) | ## Parameters @@ -32,7 +32,7 @@ This module deploys an Azure compute gallery (formerly known as shared image gal | `galleryDescription` | string | `''` | | Description of the Azure Shared Image Gallery. | | `images` | _[images](images/readme.md)_ array | `[]` | | Images to create. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags for all resources. | @@ -278,6 +278,9 @@ module galleries './Microsoft.Compute/galleries/deploy.bicep' = { "name": { "value": "<>azsigweux001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -304,6 +307,7 @@ module galleries './Microsoft.Compute/galleries/deploy.bicep' = { name: '${uniqueString(deployment().name)}-galleries' params: { name: '<>azsigweux001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Compute/images/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/images/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/images/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/images/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/images/deploy.bicep b/arm/Microsoft.Compute/images/deploy.bicep index bfb2bfaee5..dc01ff1312 100644 --- a/arm/Microsoft.Compute/images/deploy.bicep +++ b/arm/Microsoft.Compute/images/deploy.bicep @@ -62,7 +62,7 @@ resource image 'Microsoft.Compute/images@2021-04-01' = { } } -module image_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module image_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Image-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/proximityPlacementGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json b/arm/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json index 71bff3e25d..48ab4ed9c9 100644 --- a/arm/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json +++ b/arm/Microsoft.Compute/proximityPlacementGroups/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-ppg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/deploy.bicep b/arm/Microsoft.Compute/proximityPlacementGroups/deploy.bicep index 90f06cff8f..f9fb427305 100644 --- a/arm/Microsoft.Compute/proximityPlacementGroups/deploy.bicep +++ b/arm/Microsoft.Compute/proximityPlacementGroups/deploy.bicep @@ -12,12 +12,12 @@ param proximityPlacementGroupType string = 'Standard' param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -49,16 +49,16 @@ resource proximityPlacementGroup 'Microsoft.Compute/proximityPlacementGroups@202 } } -resource proximityPlacementGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource proximityPlacementGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${proximityPlacementGroup.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: proximityPlacementGroup } -module proximityPlacementGroup_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module proximityPlacementGroup_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ProxPlaceGroup-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Compute/proximityPlacementGroups/readme.md b/arm/Microsoft.Compute/proximityPlacementGroups/readme.md index d6626d621c..7e223230a5 100644 --- a/arm/Microsoft.Compute/proximityPlacementGroups/readme.md +++ b/arm/Microsoft.Compute/proximityPlacementGroups/readme.md @@ -29,7 +29,7 @@ This template deploys a proximity placement group. | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Resource location. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `proximityPlacementGroupType` | string | `'Standard'` | `[Standard, Ultra]` | Specifies the type of the proximity placement group. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the proximity placement group resource. | @@ -160,6 +160,9 @@ tags: { "name": { "value": "<>-az-ppg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -186,6 +189,7 @@ module proximityPlacementGroups './Microsoft.Compute/proximityPlacementGroups/de name: '${uniqueString(deployment().name)}-proximityPlacementGroups' params: { name: '<>-az-ppg-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/virtualMachineScaleSets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json b/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json index b4d6340af2..b17e54d583 100644 --- a/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json +++ b/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/linux.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-scaleset-linux-001" }, + "lock": { + "value": "CanNotDelete" + }, "vmNamePrefix": { "value": "vmsslinvm" }, diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json b/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json index 1fec6b76b8..6eed374c0f 100644 --- a/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json +++ b/arm/Microsoft.Compute/virtualMachineScaleSets/.parameters/windows.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-scaleset-win-001" }, + "lock": { + "value": "CanNotDelete" + }, "vmNamePrefix": { "value": "vmsswinvm" }, diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep b/arm/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep index 3546ea8c18..f672d34db8 100644 --- a/arm/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep +++ b/arm/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep @@ -158,12 +158,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Specifies the mode of an upgrade to virtual machines in the scale set.\' Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. ; Automatic - All virtual machines in the scale set are automatically updated at the same time. - Automatic, Manual, Rolling.') @allowed([ @@ -341,7 +341,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -497,7 +497,7 @@ module vmss_domainJoinExtension 'extensions/deploy.bicep' = if (extensionDomainJ protectedSettings: { Password: extensionDomainJoinPassword } - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -512,7 +512,7 @@ module vmss_microsoftAntiMalwareExtension 'extensions/deploy.bicep' = if (extens autoUpgradeMinorVersion: contains(extensionAntiMalwareConfig, 'autoUpgradeMinorVersion') ? extensionAntiMalwareConfig.autoUpgradeMinorVersion : true enableAutomaticUpgrade: contains(extensionAntiMalwareConfig, 'enableAutomaticUpgrade') ? extensionAntiMalwareConfig.enableAutomaticUpgrade : false settings: extensionAntiMalwareConfig.settings - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -537,7 +537,7 @@ module vmss_microsoftMonitoringAgentExtension 'extensions/deploy.bicep' = if (ex protectedSettings: { workspaceKey: !empty(monitoringWorkspaceId) ? vmss_logAnalyticsWorkspace.listKeys().primarySharedKey : '' } - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -551,7 +551,7 @@ module vmss_dependencyAgentExtension 'extensions/deploy.bicep' = if (extensionDe typeHandlerVersion: contains(extensionDependencyAgentConfig, 'typeHandlerVersion') ? extensionDependencyAgentConfig.typeHandlerVersion : '9.5' autoUpgradeMinorVersion: contains(extensionDependencyAgentConfig, 'autoUpgradeMinorVersion') ? extensionDependencyAgentConfig.autoUpgradeMinorVersion : true enableAutomaticUpgrade: contains(extensionDependencyAgentConfig, 'enableAutomaticUpgrade') ? extensionDependencyAgentConfig.enableAutomaticUpgrade : true - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -565,7 +565,7 @@ module vmss_networkWatcherAgentExtension 'extensions/deploy.bicep' = if (extensi typeHandlerVersion: contains(extensionNetworkWatcherAgentConfig, 'typeHandlerVersion') ? extensionNetworkWatcherAgentConfig.typeHandlerVersion : '1.4' autoUpgradeMinorVersion: contains(extensionNetworkWatcherAgentConfig, 'autoUpgradeMinorVersion') ? extensionNetworkWatcherAgentConfig.autoUpgradeMinorVersion : true enableAutomaticUpgrade: contains(extensionNetworkWatcherAgentConfig, 'enableAutomaticUpgrade') ? extensionNetworkWatcherAgentConfig.enableAutomaticUpgrade : false - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -581,7 +581,7 @@ module vmss_desiredStateConfigurationExtension 'extensions/deploy.bicep' = if (e enableAutomaticUpgrade: contains(extensionDSCConfig, 'enableAutomaticUpgrade') ? extensionDSCConfig.enableAutomaticUpgrade : false settings: contains(extensionDSCConfig, 'settings') ? extensionDSCConfig.settings : {} protectedSettings: contains(extensionDSCConfig, 'protectedSettings') ? extensionDSCConfig.protectedSettings : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -599,7 +599,7 @@ module vmss_customScriptExtension 'extensions/deploy.bicep' = if (extensionCusto fileUris: [for fileData in extensionCustomScriptConfig.fileData: contains(fileData, 'storageAccountId') ? '${fileData.uri}?${listAccountSas(fileData.storageAccountId, '2019-04-01', accountSasProperties).accountSasToken}' : fileData.uri] } protectedSettings: contains(extensionCustomScriptConfig, 'protectedSettings') ? extensionCustomScriptConfig.protectedSettings : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ vmss_desiredStateConfigurationExtension @@ -618,7 +618,7 @@ module vmss_diskEncryptionExtension 'extensions/deploy.bicep' = if (extensionDis enableAutomaticUpgrade: contains(extensionDiskEncryptionConfig, 'enableAutomaticUpgrade') ? extensionDiskEncryptionConfig.enableAutomaticUpgrade : false forceUpdateTag: contains(extensionDiskEncryptionConfig, 'forceUpdateTag') ? extensionDiskEncryptionConfig.forceUpdateTag : '1.0' settings: extensionDiskEncryptionConfig.settings - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ vmss_customScriptExtension @@ -626,10 +626,10 @@ module vmss_diskEncryptionExtension 'extensions/deploy.bicep' = if (extensionDis ] } -resource vmss_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource vmss_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${vmss.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: vmss @@ -647,7 +647,7 @@ resource vmss_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05- scope: vmss } -module vmss_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module vmss_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-VMSS-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Compute/virtualMachineScaleSets/readme.md b/arm/Microsoft.Compute/virtualMachineScaleSets/readme.md index d70c9619bf..f6233c9cec 100644 --- a/arm/Microsoft.Compute/virtualMachineScaleSets/readme.md +++ b/arm/Microsoft.Compute/virtualMachineScaleSets/readme.md @@ -77,7 +77,7 @@ The following resources are required to be able to deploy this resource. | `gracePeriod` | string | `'PT30M'` | | The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M). The maximum allowed grace period is 90 minutes (PT90M). | | `licenseType` | string | `''` | `[Windows_Client, Windows_Server, ]` | Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `maxBatchInstancePercent` | int | `20` | | The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. | | `maxPriceForLowPriorityVm` | string | `''` | | Specifies the maximum price you are willing to pay for a low priority VM/VMSS. This price is in US Dollars. | | `maxUnhealthyInstancePercent` | int | `20` | | The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. | @@ -1015,6 +1015,9 @@ module virtualMachineScaleSets './Microsoft.Compute/virtualMachineScaleSets/depl "name": { "value": "<>-scaleset-linux-001" }, + "lock": { + "value": "CanNotDelete" + }, "vmNamePrefix": { "value": "vmsslinvm" }, @@ -1208,6 +1211,7 @@ module virtualMachineScaleSets './Microsoft.Compute/virtualMachineScaleSets/depl name: '${uniqueString(deployment().name)}-virtualMachineScaleSets' params: { name: '<>-scaleset-linux-001' + lock: 'CanNotDelete' vmNamePrefix: 'vmsslinvm' skuName: 'Standard_B2s' skuCapacity: 1 @@ -1474,6 +1478,9 @@ module virtualMachineScaleSets './Microsoft.Compute/virtualMachineScaleSets/depl "name": { "value": "<>-scaleset-win-001" }, + "lock": { + "value": "CanNotDelete" + }, "vmNamePrefix": { "value": "vmsswinvm" }, @@ -1668,6 +1675,7 @@ module virtualMachineScaleSets './Microsoft.Compute/virtualMachineScaleSets/depl name: '${uniqueString(deployment().name)}-virtualMachineScaleSets' params: { name: '<>-scaleset-win-001' + lock: 'CanNotDelete' vmNamePrefix: 'vmsswinvm' skuName: 'Standard_B2s' skuCapacity: 1 diff --git a/arm/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep b/arm/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep index a7ae6cfb29..ba94af9262 100644 --- a/arm/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep +++ b/arm/Microsoft.Compute/virtualMachines/.bicep/nested_networkInterface.bicep @@ -10,7 +10,7 @@ param dnsServers array = [] param networkSecurityGroupResourceId string = '' param ipConfigurations array -param lock string +param lock string = '' param diagnosticStorageAccountId string param diagnosticLogsRetentionInDays int param diagnosticWorkspaceId string @@ -32,6 +32,8 @@ param pipDiagnosticSettingsName string = '${virtualMachineName}-diagnosticSettin @description('Optional. The name of the NIC diagnostic setting, if deployed.') param nicDiagnosticSettingsName string = '${virtualMachineName}-diagnosticSettings' +var enableReferencedModulesTelemetry = false + module networkInterface_publicIPAddresses '../../../Microsoft.Network/publicIPAddresses/deploy.bicep' = [for (ipConfiguration, index) in ipConfigurations: if (contains(ipConfiguration, 'pipconfiguration')) { name: '${deployment().name}-publicIP-${index}' params: { @@ -44,7 +46,7 @@ module networkInterface_publicIPAddresses '../../../Microsoft.Network/publicIPAd diagnosticSettingsName: pipDiagnosticSettingsName diagnosticStorageAccountId: diagnosticStorageAccountId diagnosticWorkspaceId: diagnosticWorkspaceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: location lock: lock publicIPAddressVersion: contains(ipConfiguration, 'publicIPAddressVersion') ? ipConfiguration.publicIPAddressVersion : 'IPv4' @@ -69,7 +71,6 @@ module networkInterface '../../../Microsoft.Network/networkInterfaces/deploy.bic privateIPAddress: contains(ipConfiguration, 'vmIPAddress') ? (!empty(ipConfiguration.vmIPAddress) ? ipConfiguration.vmIPAddress : null) : null publicIPAddressResourceId: contains(ipConfiguration, 'pipconfiguration') ? resourceId('Microsoft.Network/publicIPAddresses', '${virtualMachineName}${ipConfiguration.pipconfiguration.publicIpNameSuffix}') : null subnetId: ipConfiguration.subnetId - loadBalancerBackendAddressPools: contains(ipConfiguration, 'loadBalancerBackendAddressPools') ? ipConfiguration.loadBalancerBackendAddressPools : null applicationSecurityGroups: contains(ipConfiguration, 'applicationSecurityGroups') ? ipConfiguration.applicationSecurityGroups : null applicationGatewayBackendAddressPools: contains(ipConfiguration, 'applicationGatewayBackendAddressPools') ? ipConfiguration.applicationGatewayBackendAddressPools : null @@ -89,7 +90,7 @@ module networkInterface '../../../Microsoft.Network/networkInterfaces/deploy.bic diagnosticWorkspaceId: diagnosticWorkspaceId dnsServers: !empty(dnsServers) ? dnsServers : [] enableAcceleratedNetworking: enableAcceleratedNetworking - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry enableIPForwarding: enableIPForwarding lock: lock networkSecurityGroupResourceId: !empty(networkSecurityGroupResourceId) ? networkSecurityGroupResourceId : '' diff --git a/arm/Microsoft.Compute/virtualMachines/.bicep/nested_rbac.bicep b/arm/Microsoft.Compute/virtualMachines/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Compute/virtualMachines/.bicep/nested_rbac.bicep rename to arm/Microsoft.Compute/virtualMachines/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json b/arm/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json index 782d7f3eeb..1c42eef982 100644 --- a/arm/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json +++ b/arm/Microsoft.Compute/virtualMachines/.parameters/linux.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-vm-linux-01" }, + "lock": { + "value": "CanNotDelete" + }, "systemAssignedIdentity": { "value": true }, diff --git a/arm/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json b/arm/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json index edc17f7f59..3a3de41959 100644 --- a/arm/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json +++ b/arm/Microsoft.Compute/virtualMachines/.parameters/windows.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-vm-win-01" }, + "lock": { + "value": "CanNotDelete" + }, "encryptionAtHost": { "value": false }, diff --git a/arm/Microsoft.Compute/virtualMachines/deploy.bicep b/arm/Microsoft.Compute/virtualMachines/deploy.bicep index 4f5851acb2..afc563dc2d 100644 --- a/arm/Microsoft.Compute/virtualMachines/deploy.bicep +++ b/arm/Microsoft.Compute/virtualMachines/deploy.bicep @@ -240,12 +240,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -335,7 +335,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -487,7 +487,7 @@ module vm_domainJoinExtension 'extensions/deploy.bicep' = if (extensionDomainJoi protectedSettings: { Password: extensionDomainJoinPassword } - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -502,7 +502,7 @@ module vm_microsoftAntiMalwareExtension 'extensions/deploy.bicep' = if (extensio autoUpgradeMinorVersion: contains(extensionAntiMalwareConfig, 'autoUpgradeMinorVersion') ? extensionAntiMalwareConfig.autoUpgradeMinorVersion : true enableAutomaticUpgrade: contains(extensionAntiMalwareConfig, 'enableAutomaticUpgrade') ? extensionAntiMalwareConfig.enableAutomaticUpgrade : false settings: extensionAntiMalwareConfig.settings - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -527,7 +527,7 @@ module vm_microsoftMonitoringAgentExtension 'extensions/deploy.bicep' = if (exte protectedSettings: { workspaceKey: !empty(monitoringWorkspaceId) ? vm_logAnalyticsWorkspace.listKeys().primarySharedKey : '' } - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -541,7 +541,7 @@ module vm_dependencyAgentExtension 'extensions/deploy.bicep' = if (extensionDepe typeHandlerVersion: contains(extensionDependencyAgentConfig, 'typeHandlerVersion') ? extensionDependencyAgentConfig.typeHandlerVersion : '9.5' autoUpgradeMinorVersion: contains(extensionDependencyAgentConfig, 'autoUpgradeMinorVersion') ? extensionDependencyAgentConfig.autoUpgradeMinorVersion : true enableAutomaticUpgrade: contains(extensionDependencyAgentConfig, 'enableAutomaticUpgrade') ? extensionDependencyAgentConfig.enableAutomaticUpgrade : true - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -555,7 +555,7 @@ module vm_networkWatcherAgentExtension 'extensions/deploy.bicep' = if (extension typeHandlerVersion: contains(extensionNetworkWatcherAgentConfig, 'typeHandlerVersion') ? extensionNetworkWatcherAgentConfig.typeHandlerVersion : '1.4' autoUpgradeMinorVersion: contains(extensionNetworkWatcherAgentConfig, 'autoUpgradeMinorVersion') ? extensionNetworkWatcherAgentConfig.autoUpgradeMinorVersion : true enableAutomaticUpgrade: contains(extensionNetworkWatcherAgentConfig, 'enableAutomaticUpgrade') ? extensionNetworkWatcherAgentConfig.enableAutomaticUpgrade : false - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -571,7 +571,7 @@ module vm_desiredStateConfigurationExtension 'extensions/deploy.bicep' = if (ext enableAutomaticUpgrade: contains(extensionDSCConfig, 'enableAutomaticUpgrade') ? extensionDSCConfig.enableAutomaticUpgrade : false settings: contains(extensionDSCConfig, 'settings') ? extensionDSCConfig.settings : {} protectedSettings: contains(extensionDSCConfig, 'protectedSettings') ? extensionDSCConfig.protectedSettings : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -589,7 +589,7 @@ module vm_customScriptExtension 'extensions/deploy.bicep' = if (extensionCustomS fileUris: [for fileData in extensionCustomScriptConfig.fileData: contains(fileData, 'storageAccountId') ? '${fileData.uri}?${listAccountSas(fileData.storageAccountId, '2019-04-01', accountSasProperties).accountSasToken}' : fileData.uri] } protectedSettings: extensionCustomScriptProtectedSetting - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ vm_desiredStateConfigurationExtension @@ -608,7 +608,7 @@ module vm_diskEncryptionExtension 'extensions/deploy.bicep' = if (extensionDiskE enableAutomaticUpgrade: contains(extensionDiskEncryptionConfig, 'enableAutomaticUpgrade') ? extensionDiskEncryptionConfig.enableAutomaticUpgrade : false forceUpdateTag: contains(extensionDiskEncryptionConfig, 'forceUpdateTag') ? extensionDiskEncryptionConfig.forceUpdateTag : '1.0' settings: extensionDiskEncryptionConfig.settings - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ vm_customScriptExtension @@ -625,6 +625,7 @@ module virtualMachine_backup '../../Microsoft.RecoveryServices/vaults/protection protectionContainerName: 'iaasvmcontainer;iaasvmcontainerv2;${resourceGroup().name};${virtualMachine.name}' recoveryVaultName: backupVaultName sourceResourceId: virtualMachine.id + enableDefaultTelemetry: enableReferencedModulesTelemetry } scope: az.resourceGroup(backupVaultResourceGroup) dependsOn: [ @@ -638,16 +639,16 @@ module virtualMachine_backup '../../Microsoft.RecoveryServices/vaults/protection ] } -resource virtualMachine_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource virtualMachine_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${virtualMachine.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: virtualMachine } -module virtualMachine_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module virtualMachine_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-VM-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Compute/virtualMachines/readme.md b/arm/Microsoft.Compute/virtualMachines/readme.md index 69727052d0..3d4aa372af 100644 --- a/arm/Microsoft.Compute/virtualMachines/readme.md +++ b/arm/Microsoft.Compute/virtualMachines/readme.md @@ -78,7 +78,7 @@ This module deploys one Virtual Machine with one or multiple nics and optionally | `extensionNetworkWatcherAgentConfig` | object | `{object}` | | The configuration for the [Network Watcher Agent] extension. Must at least contain the ["enabled": true] property to be executed. | | `licenseType` | string | `''` | `[Windows_Client, Windows_Server, ]` | Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `maxPriceForLowPriorityVm` | string | `''` | | Specifies the maximum price you are willing to pay for a low priority VM/VMSS. This price is in US Dollars. | | `monitoringWorkspaceId` | string | `''` | | Resource ID of the monitoring log analytics workspace. Must be set when extensionMonitoringAgentConfig is set to true. | | `name` | string | `[take(toLower(uniqueString(resourceGroup().name)), 10)]` | | The name of the virtual machine to be created. You should use a unique prefix to reduce name collisions in Active Directory. If no value is provided, a 10 character long unique string will be generated based on the Resource Group's name. | @@ -1266,6 +1266,9 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "name": { "value": "<>-vm-linux-01" }, + "lock": { + "value": "CanNotDelete" + }, "systemAssignedIdentity": { "value": true }, @@ -1488,6 +1491,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { name: '${uniqueString(deployment().name)}-virtualMachines' params: { name: '<>-vm-linux-01' + lock: 'CanNotDelete' systemAssignedIdentity: true userAssignedIdentities: { '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} @@ -1739,22 +1743,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { } } adminUsername: 'localAdminUser' - adminPassword: [ - { - Value: { - keyVault: { - id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' - } - secretName: 'adminPassword' - } - MemberType: 8 - IsSettable: true - IsGettable: true - TypeNameOfValue: 'System.Management.Automation.PSCustomObject' - Name: 'reference' - IsInstance: true - } - ] + adminPassword: kv1.getSecret('adminPassword') nicConfigurations: [ { nicSuffix: '-nic-01' @@ -1901,6 +1890,9 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { "name": { "value": "<>-vm-win-01" }, + "lock": { + "value": "CanNotDelete" + }, "encryptionAtHost": { "value": false }, @@ -2145,6 +2137,7 @@ module virtualMachines './Microsoft.Compute/virtualMachines/deploy.bicep' = { name: '${uniqueString(deployment().name)}-virtualMachines' params: { name: '<>-vm-win-01' + lock: 'CanNotDelete' encryptionAtHost: false imageReference: { publisher: 'MicrosoftWindowsServer' diff --git a/arm/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json b/arm/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json index 1fdcb27dbd..cdbb1078cd 100644 --- a/arm/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json +++ b/arm/Microsoft.ContainerInstance/containerGroups/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-acg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "containerName": { "value": "<>-az-aci-x-001" }, diff --git a/arm/Microsoft.ContainerInstance/containerGroups/deploy.bicep b/arm/Microsoft.ContainerInstance/containerGroups/deploy.bicep index 0424d6f403..6ba3d5db01 100644 --- a/arm/Microsoft.ContainerInstance/containerGroups/deploy.bicep +++ b/arm/Microsoft.ContainerInstance/containerGroups/deploy.bicep @@ -40,12 +40,12 @@ param environmentVariables array = [] param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enables system assigned managed identity on the resource.') param systemAssignedIdentity bool = false @@ -111,11 +111,11 @@ resource containergroup 'Microsoft.ContainerInstance/containerGroups@2021-03-01' } } -resource containergroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource containergroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${containergroup.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: containergroup } diff --git a/arm/Microsoft.ContainerInstance/containerGroups/readme.md b/arm/Microsoft.ContainerInstance/containerGroups/readme.md index 15e9373b24..e224724a17 100644 --- a/arm/Microsoft.ContainerInstance/containerGroups/readme.md +++ b/arm/Microsoft.ContainerInstance/containerGroups/readme.md @@ -36,7 +36,7 @@ The top-level resource in Azure Container Instances is the container group. A co | `imageRegistryCredentials` | array | `[]` | | The image registry credentials by which the container group is created from. | | `ipAddressType` | string | `'Public'` | | Specifies if the IP is exposed to the public internet or private VNET. - Public or Private. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `memoryInGB` | int | `2` | | The amount of memory to allocate to the container in gigabytes. | | `osType` | string | `'Linux'` | | The operating system type required by the containers in the container group. - Windows or Linux. | | `ports` | array | `[System.Collections.Hashtable]` | | Port to open on the container and the public IP address. | @@ -184,6 +184,9 @@ userAssignedIdentities: { "name": { "value": "<>-az-acg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "containerName": { "value": "<>-az-aci-x-001" }, @@ -226,6 +229,7 @@ module containerGroups './Microsoft.ContainerInstance/containerGroups/deploy.bic name: '${uniqueString(deployment().name)}-containerGroups' params: { name: '<>-az-acg-x-001' + lock: 'CanNotDelete' containerName: '<>-az-aci-x-001' image: 'mcr.microsoft.com/azuredocs/aci-helloworld' ports: [ diff --git a/arm/Microsoft.ContainerRegistry/registries/.bicep/nested_rbac.bicep b/arm/Microsoft.ContainerRegistry/registries/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ContainerRegistry/registries/.bicep/nested_rbac.bicep rename to arm/Microsoft.ContainerRegistry/registries/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ContainerRegistry/registries/.parameters/parameters.json b/arm/Microsoft.ContainerRegistry/registries/.parameters/parameters.json index c900c68be8..970dd297eb 100644 --- a/arm/Microsoft.ContainerRegistry/registries/.parameters/parameters.json +++ b/arm/Microsoft.ContainerRegistry/registries/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>azacrx001" }, + "lock": { + "value": "CanNotDelete" + }, "acrAdminUserEnabled": { "value": false }, @@ -28,6 +31,14 @@ } ] }, + "webhooks": { + "value": [ + { + "name": "<>azacrx001webhook", + "serviceUri": "https://www.contoso.com/webhook" + } + ] + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.ContainerRegistry/registries/deploy.bicep b/arm/Microsoft.ContainerRegistry/registries/deploy.bicep index f3da157b87..4c0b7ea73f 100644 --- a/arm/Microsoft.ContainerRegistry/registries/deploy.bicep +++ b/arm/Microsoft.ContainerRegistry/registries/deploy.bicep @@ -12,7 +12,7 @@ param location string = resourceGroup().location @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] -@description('Optional. Configuration Details for private endpoints.') +@description('Optional. Configuration details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible.') param privateEndpoints array = [] @description('Optional. Tier of your Azure container registry.') @@ -97,13 +97,16 @@ param zoneRedundancy string = 'Disabled' @description('Optional. All replications to create.') param replications array = [] +@description('Optional. All webhooks to create.') +param webhooks array = [] + @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enables system assigned managed identity on the resource.') param systemAssignedIdentity bool = false @@ -181,7 +184,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -245,15 +248,36 @@ module registry_replications 'replications/deploy.bicep' = [for (replication, in regionEndpointEnabled: contains(replication, 'regionEndpointEnabled') ? replication.regionEndpointEnabled : true zoneRedundancy: contains(replication, 'zoneRedundancy') ? replication.zoneRedundancy : 'Disabled' tags: contains(replication, 'tags') ? replication.tags : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry + } +}] + +module registry_webhooks 'webhooks/deploy.bicep' = [for (webhook, index) in webhooks: { + name: '${uniqueString(deployment().name, location)}-Registry-Webhook-${index}' + params: { + name: webhook.name + registryName: registry.name + location: contains(webhook, 'location') ? webhook.location : location + action: contains(webhook, 'action') ? webhook.action : [ + 'chart_delete' + 'chart_push' + 'delete' + 'push' + 'quarantine' + ] + customHeaders: contains(webhook, 'customHeaders') ? webhook.customHeaders : {} + scope: contains(webhook, 'scope') ? webhook.scope : '' + status: contains(webhook, 'status') ? webhook.status : 'enabled' + serviceUri: webhook.serviceUri + tags: contains(webhook, 'tags') ? webhook.tags : {} } }] -resource registry_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource registry_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${registry.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: registry } @@ -271,7 +295,7 @@ resource registry_diagnosticSettingName 'Microsoft.Insights/diagnosticsettings@2 scope: registry } -module registry_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module registry_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ContainerRegistry-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -291,9 +315,9 @@ module registry_privateEndpoints '../../Microsoft.Network/privateEndpoints/deplo name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(registry.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: registry.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} diff --git a/arm/Microsoft.ContainerRegistry/registries/readme.md b/arm/Microsoft.ContainerRegistry/registries/readme.md index 15c8d6fefa..003513f6d0 100644 --- a/arm/Microsoft.ContainerRegistry/registries/readme.md +++ b/arm/Microsoft.ContainerRegistry/registries/readme.md @@ -17,6 +17,7 @@ Azure Container Registry is a managed, private Docker registry service based on | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.ContainerRegistry/registries` | [2021-09-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.ContainerRegistry/2021-09-01/registries) | | `Microsoft.ContainerRegistry/registries/replications` | [2021-12-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.ContainerRegistry/2021-12-01-preview/registries/replications) | +| `Microsoft.ContainerRegistry/registries/webhooks` | [2021-12-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.ContainerRegistry/2021-12-01-preview/registries/webhooks) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | | `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | @@ -47,11 +48,11 @@ Azure Container Registry is a managed, private Docker registry service based on | `exportPolicyStatus` | string | `'disabled'` | `[disabled, enabled]` | The value that indicates whether the export policy is enabled or not. | | `keyVaultProperties` | object | `{object}` | | Identity which will be used to access key vault and Key vault uri to access the encryption key. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `networkRuleBypassOptions` | string | `'AzureServices'` | | Whether to allow trusted Azure services to access a network restricted registry. Not relevant in case of public access. - AzureServices or None. | | `networkRuleSetDefaultAction` | string | `'Deny'` | `[Allow, Deny]` | The default action of allow or deny when no other rules match. | | `networkRuleSetIpRules` | array | `[]` | | The IP ACL rules. | -| `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. | +| `privateEndpoints` | array | `[]` | | Configuration details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible. | | `publicNetworkAccess` | string | `'Enabled'` | `[Disabled, Enabled]` | Whether or not public network access is allowed for the container registry. - Enabled or Disabled. | | `quarantinePolicyStatus` | string | `'disabled'` | `[disabled, enabled]` | The value that indicates whether the quarantine policy is enabled or not. | | `replications` | _[replications](replications/readme.md)_ array | `[]` | | All replications to create. | @@ -62,6 +63,7 @@ Azure Container Registry is a managed, private Docker registry service based on | `tags` | object | `{object}` | | Tags of the resource. | | `trustPolicyStatus` | string | `'disabled'` | `[disabled, enabled]` | The value that indicates whether the trust policy is enabled or not. | | `userAssignedIdentities` | object | `{object}` | | The ID(s) to assign to the resource. | +| `webhooks` | _[webhooks](webhooks/readme.md)_ array | `[]` | | All webhooks to create. | | `zoneRedundancy` | string | `'Disabled'` | `[Disabled, Enabled]` | Whether or not zone redundancy is enabled for this container registry. | @@ -373,6 +375,9 @@ module registries './Microsoft.ContainerRegistry/registries/deploy.bicep' = { "name": { "value": "<>azacrx001" }, + "lock": { + "value": "CanNotDelete" + }, "acrAdminUserEnabled": { "value": false }, @@ -396,6 +401,14 @@ module registries './Microsoft.ContainerRegistry/registries/deploy.bicep' = { } ] }, + "webhooks": { + "value": [ + { + "name": "<>azacrx001webhook", + "serviceUri": "https://www.contoso.com/webhook" + } + ] + }, "roleAssignments": { "value": [ { @@ -453,6 +466,7 @@ module registries './Microsoft.ContainerRegistry/registries/deploy.bicep' = { name: '${uniqueString(deployment().name)}-registries' params: { name: '<>azacrx001' + lock: 'CanNotDelete' acrAdminUserEnabled: false acrSku: 'Premium' exportPolicyStatus: 'enabled' @@ -464,6 +478,12 @@ module registries './Microsoft.ContainerRegistry/registries/deploy.bicep' = { location: 'northeurope' } ] + webhooks: [ + { + name: '<>azacrx001webhook' + serviceUri: 'https://www.contoso.com/webhook' + } + ] roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep b/arm/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep new file mode 100644 index 0000000000..a05764cfbe --- /dev/null +++ b/arm/Microsoft.ContainerRegistry/registries/webhooks/deploy.bicep @@ -0,0 +1,92 @@ +@description('Conditional. The name of the parent registry. Required if the template is used in a standalone deployment.') +param registryName string + +@description('Optional. The name of the registry webhook.') +@minLength(5) +@maxLength(50) +param name string = '${registryName}webhook' + +@description('Required. The service URI for the webhook to post notifications.') +param serviceUri string + +@allowed([ + 'disabled' + 'enabled' +]) +@description('Optional. The status of the webhook at the time the operation was called.') +param status string = 'enabled' + +@description('Optional. The list of actions that trigger the webhook to post notifications.') +param action array = [ + 'chart_delete' + 'chart_push' + 'delete' + 'push' + 'quarantine' +] + +@description('Optional. Location for all resources.') +param location string = resourceGroup().location + +@description('Optional. Tags of the resource.') +param tags object = {} + +@description('Optional. Custom headers that will be added to the webhook notifications.') +param customHeaders object = {} + +@description('Optional. The scope of repositories where the event can be triggered. For example, \'foo:*\' means events for all tags under repository \'foo\'. \'foo:bar\' means events for \'foo:bar\' only. \'foo\' is equivalent to \'foo:latest\'. Empty means all events.') +param scope string = '' + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource registry 'Microsoft.ContainerRegistry/registries@2021-09-01' existing = { + name: registryName +} + +resource webhook 'Microsoft.ContainerRegistry/registries/webhooks@2021-12-01-preview' = { + name: name + parent: registry + location: location + tags: tags + properties: { + actions: action + customHeaders: customHeaders + scope: scope + serviceUri: serviceUri + status: status + } +} + +@description('The resource ID of the webhook.') +output resourceId string = webhook.id + +@description('The name of the webhook.') +output name string = webhook.name + +@description('The name of the Azure container registry.') +output resourceGroupName string = resourceGroup().name + +@description('The actions of the webhook.') +output actions array = webhook.properties.actions + +@description('The status of the webhook.') +output status string = webhook.properties.status + +@description('The provisioning state of the webhook.') +output provistioningState string = webhook.properties.provisioningState + +@description('The location the resource was deployed into.') +output location string = webhook.location diff --git a/arm/Microsoft.ContainerRegistry/registries/webhooks/readme.md b/arm/Microsoft.ContainerRegistry/registries/webhooks/readme.md new file mode 100644 index 0000000000..dc9f3279d6 --- /dev/null +++ b/arm/Microsoft.ContainerRegistry/registries/webhooks/readme.md @@ -0,0 +1,93 @@ +# ContainerRegistry Registries Webhooks `[Microsoft.ContainerRegistry/registries/webhooks]` + +This module deploys ContainerRegistry Registries Webhooks. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.ContainerRegistry/registries/webhooks` | [2021-12-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.ContainerRegistry/2021-12-01-preview/registries/webhooks) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `serviceUri` | string | The service URI for the webhook to post notifications. | + +**Conditional parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `registryName` | string | The name of the parent registry. Required if the template is used in a standalone deployment. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Allowed Values | Description | +| :-- | :-- | :-- | :-- | :-- | +| `action` | array | `[chart_delete, chart_push, delete, push, quarantine]` | | The list of actions that trigger the webhook to post notifications. | +| `customHeaders` | object | `{object}` | | Custom headers that will be added to the webhook notifications. | +| `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `location` | string | `[resourceGroup().location]` | | Location for all resources. | +| `name` | string | `[format('{0}webhook', parameters('registryName'))]` | | The name of the registry webhook. | +| `scope` | string | `''` | | The scope of repositories where the event can be triggered. For example, 'foo:*' means events for all tags under repository 'foo'. 'foo:bar' means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'. Empty means all events. | +| `status` | string | `'enabled'` | `[disabled, enabled]` | The status of the webhook at the time the operation was called. | +| `tags` | object | `{object}` | | Tags of the resource. | + + +### Parameter Usage: `tags` + +Tag names and tag values can be provided as needed. A tag can be left without a value. + +

    + +Parameter JSON format + +```json +"tags": { + "value": { + "Environment": "Non-Prod", + "Contact": "test.user@testcompany.com", + "PurchaseOrder": "1234", + "CostCenter": "7890", + "ServiceName": "DeploymentValidation", + "Role": "DeploymentValidation" + } +} +``` + +
    + +
    + +Bicep format + +```bicep +tags: { + Environment: 'Non-Prod' + Contact: 'test.user@testcompany.com' + PurchaseOrder: '1234' + CostCenter: '7890' + ServiceName: 'DeploymentValidation' + Role: 'DeploymentValidation' +} +``` + +
    +

    + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `actions` | array | The actions of the webhook. | +| `location` | string | The location the resource was deployed into. | +| `name` | string | The name of the webhook. | +| `provistioningState` | string | The provisioning state of the webhook. | +| `resourceGroupName` | string | The name of the Azure container registry. | +| `resourceId` | string | The resource ID of the webhook. | +| `status` | string | The status of the webhook. | diff --git a/arm/Microsoft.ContainerRegistry/registries/webhooks/version.json b/arm/Microsoft.ContainerRegistry/registries/webhooks/version.json new file mode 100644 index 0000000000..41f66cc990 --- /dev/null +++ b/arm/Microsoft.ContainerRegistry/registries/webhooks/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.1" +} diff --git a/arm/Microsoft.ContainerService/managedClusters/.bicep/nested_rbac.bicep b/arm/Microsoft.ContainerService/managedClusters/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ContainerService/managedClusters/.bicep/nested_rbac.bicep rename to arm/Microsoft.ContainerService/managedClusters/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json b/arm/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json index 10a7e7af1c..b9406ba122 100644 --- a/arm/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json +++ b/arm/Microsoft.ContainerService/managedClusters/.parameters/azure.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-aks-azure-001" }, + "lock": { + "value": "CanNotDelete" + }, "primaryAgentPoolProfile": { "value": [ { diff --git a/arm/Microsoft.ContainerService/managedClusters/deploy.bicep b/arm/Microsoft.ContainerService/managedClusters/deploy.bicep index a7a2e2476e..52ded3c4f5 100644 --- a/arm/Microsoft.ContainerService/managedClusters/deploy.bicep +++ b/arm/Microsoft.ContainerService/managedClusters/deploy.bicep @@ -276,12 +276,12 @@ param enableDefaultTelemetry bool = true param roleAssignments array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -357,7 +357,7 @@ var lbProfile = { effectiveOutboundIPs: [] } -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -371,7 +371,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource managedCluster 'Microsoft.ContainerService/managedClusters@2022-02-01' = { +resource managedCluster 'Microsoft.ContainerService/managedClusters@2022-03-02-preview' = { name: name location: location tags: tags @@ -529,15 +529,15 @@ module managedCluster_agentPools 'agentPools/deploy.bicep' = [for (agentPool, in vmSize: contains(agentPool, 'vmSize') ? agentPool.vmSize : 'Standard_D2s_v3' vnetSubnetId: contains(agentPool, 'vnetSubnetId') ? agentPool.vnetSubnetId : '' workloadRuntime: contains(agentPool, 'workloadRuntime') ? agentPool.workloadRuntime : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource managedCluster_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource managedCluster_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${managedCluster.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: managedCluster } @@ -555,7 +555,7 @@ resource managedCluster_diagnosticSettings 'Microsoft.Insights/diagnosticsetting scope: managedCluster } -module managedCluster_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module managedCluster_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ManagedCluster-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.ContainerService/managedClusters/readme.md b/arm/Microsoft.ContainerService/managedClusters/readme.md index 3c3a576878..bb7ba89d83 100644 --- a/arm/Microsoft.ContainerService/managedClusters/readme.md +++ b/arm/Microsoft.ContainerService/managedClusters/readme.md @@ -15,7 +15,7 @@ This module deploys Azure Kubernetes Cluster (AKS). | :-- | :-- | | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | -| `Microsoft.ContainerService/managedClusters` | [2022-02-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.ContainerService/2022-02-01/managedClusters) | +| `Microsoft.ContainerService/managedClusters` | [2022-03-02-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.ContainerService/2022-03-02-preview/managedClusters) | | `Microsoft.ContainerService/managedClusters/agentPools` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.ContainerService/2021-08-01/managedClusters/agentPools) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | @@ -100,7 +100,7 @@ This module deploys Azure Kubernetes Cluster (AKS). | `ingressApplicationGatewayEnabled` | bool | `False` | | Specifies whether the ingressApplicationGateway (AGIC) add-on is enabled or not. | | `kubeDashboardEnabled` | bool | `False` | | Specifies whether the kubeDashboard add-on is enabled or not. | | `location` | string | `[resourceGroup().location]` | | Specifies the location of AKS cluster. It picks up Resource Group's location by default. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `managedOutboundIPCount` | int | `0` | | Outbound IP Count for the Load balancer. | | `monitoringWorkspaceId` | string | `''` | | Resource ID of the monitoring log analytics workspace. | | `nodeResourceGroup` | string | `[format('{0}_aks_{1}_nodes', resourceGroup().name, parameters('name'))]` | | Name of the resource group containing agent pool nodes. | @@ -372,6 +372,9 @@ userAssignedIdentities: { "name": { "value": "<>-az-aks-azure-001" }, + "lock": { + "value": "CanNotDelete" + }, "primaryAgentPoolProfile": { "value": [ { @@ -496,6 +499,7 @@ module managedClusters './Microsoft.ContainerService/managedClusters/deploy.bice name: '${uniqueString(deployment().name)}-managedClusters' params: { name: '<>-az-aks-azure-001' + lock: 'CanNotDelete' primaryAgentPoolProfile: [ { name: 'systempool' diff --git a/arm/Microsoft.DataFactory/factories/.bicep/nested_rbac.bicep b/arm/Microsoft.DataFactory/factories/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DataFactory/factories/.bicep/nested_rbac.bicep rename to arm/Microsoft.DataFactory/factories/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DataFactory/factories/.parameters/parameters.json b/arm/Microsoft.DataFactory/factories/.parameters/parameters.json index 8b5e31f738..f686b88025 100644 --- a/arm/Microsoft.DataFactory/factories/.parameters/parameters.json +++ b/arm/Microsoft.DataFactory/factories/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-adf-001" }, + "lock": { + "value": "CanNotDelete" + }, "managedVirtualNetworkName": { "value": "default" }, diff --git a/arm/Microsoft.DataFactory/factories/deploy.bicep b/arm/Microsoft.DataFactory/factories/deploy.bicep index 15043a78ca..7b740e8e3b 100644 --- a/arm/Microsoft.DataFactory/factories/deploy.bicep +++ b/arm/Microsoft.DataFactory/factories/deploy.bicep @@ -52,12 +52,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enables system assigned managed identity on the resource.') param systemAssignedIdentity bool = false @@ -135,7 +135,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -165,7 +165,7 @@ module dataFactory_managedVirtualNetwork 'managedVirtualNetwork/deploy.bicep' = params: { name: managedVirtualNetworkName dataFactoryName: dataFactory.name - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -177,18 +177,18 @@ module dataFactory_integrationRuntime 'integrationRuntime/deploy.bicep' = if (!e type: integrationRuntime.type managedVirtualNetworkName: contains(integrationRuntime, 'managedVirtualNetworkName') ? integrationRuntime.managedVirtualNetworkName : '' typeProperties: integrationRuntime.typeProperties - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ dataFactory_managedVirtualNetwork ] } -resource dataFactory_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource dataFactory_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${dataFactory.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: dataFactory } @@ -206,7 +206,7 @@ resource dataFactory_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@2 scope: dataFactory } -module dataFactory_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module dataFactory_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-DataFactory-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.DataFactory/factories/readme.md b/arm/Microsoft.DataFactory/factories/readme.md index 550b4b8317..a04429f76b 100644 --- a/arm/Microsoft.DataFactory/factories/readme.md +++ b/arm/Microsoft.DataFactory/factories/readme.md @@ -46,7 +46,7 @@ | `gitRootFolder` | string | `'/'` | | The root folder path name. Default is '/'. | | `integrationRuntime` | _[integrationRuntime](integrationRuntime/readme.md)_ object | `{object}` | | The object for the configuration of a Integration Runtime. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `managedVirtualNetworkName` | string | `''` | | The name of the Managed Virtual Network. | | `publicNetworkAccess` | bool | `True` | | Enable or disable public network access. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -214,6 +214,9 @@ userAssignedIdentities: { "name": { "value": "<>-adf-001" }, + "lock": { + "value": "CanNotDelete" + }, "managedVirtualNetworkName": { "value": "default" }, @@ -284,6 +287,7 @@ module factories './Microsoft.DataFactory/factories/deploy.bicep' = { name: '${uniqueString(deployment().name)}-factories' params: { name: '<>-adf-001' + lock: 'CanNotDelete' managedVirtualNetworkName: 'default' integrationRuntime: { name: 'AutoResolveIntegrationRuntime' diff --git a/arm/Microsoft.DataProtection/backupVaults/.bicep/nested_rbac.bicep b/arm/Microsoft.DataProtection/backupVaults/.bicep/nested_rbac.bicep new file mode 100644 index 0000000000..2f52129333 --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/.bicep/nested_rbac.bicep @@ -0,0 +1,43 @@ +@sys.description('Required. The IDs of the principals to assign the role to.') +param principalIds array + +@sys.description('Required. The name of the role to assign. If it cannot be found you can specify the role definition ID instead.') +param roleDefinitionIdOrName string + +@sys.description('Required. The resource ID of the resource to apply the role assignment to.') +param resourceId string + +@sys.description('Optional. The principal type of the assigned principal ID.') +@allowed([ + 'ServicePrincipal' + 'Group' + 'User' + 'ForeignGroup' + 'Device' + '' +]) +param principalType string = '' + +@sys.description('Optional. The description of the role assignment.') +param description string = '' + +var builtInRoleNames = { + 'Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635') + 'Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c') + 'Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7') +} + +resource bv 'Microsoft.DataProtection/backupVaults@2022-03-01' existing = { + name: last(split(resourceId, '/')) +} + +resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = [for principalId in principalIds: { + name: guid(bv.id, principalId, roleDefinitionIdOrName) + properties: { + description: description + roleDefinitionId: contains(builtInRoleNames, roleDefinitionIdOrName) ? builtInRoleNames[roleDefinitionIdOrName] : roleDefinitionIdOrName + principalId: principalId + principalType: !empty(principalType) ? any(principalType) : null + } + scope: bv +}] diff --git a/arm/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json b/arm/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json new file mode 100644 index 0000000000..6b44ecfa38 --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/.parameters/min.parameters.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-bv-min-001" + } + } +} diff --git a/arm/Microsoft.DataProtection/backupVaults/.parameters/parameters.json b/arm/Microsoft.DataProtection/backupVaults/.parameters/parameters.json new file mode 100644 index 0000000000..bad76a8a40 --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/.parameters/parameters.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-bv-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "backupPolicies": { + "value": [ + { + "name": "DefaultPolicy", + "properties": { + "policyRules": [ + { + "backupParameters": { + "backupType": "Incremental", + "objectType": "AzureBackupParams" + }, + "trigger": { + "schedule": { + "repeatingTimeIntervals": [ + "R/2022-05-31T23:30:00+01:00/P1D" + ], + "timeZone": "W. Europe Standard Time" + }, + "taggingCriteria": [ + { + "tagInfo": { + "tagName": "Default", + "id": "Default_" + }, + "taggingPriority": 99, + "isDefault": true + } + ], + "objectType": "ScheduleBasedTriggerContext" + }, + "dataStore": { + "dataStoreType": "OperationalStore", + "objectType": "DataStoreInfoBase" + }, + "name": "BackupDaily", + "objectType": "AzureBackupRule" + }, + { + "lifecycles": [ + { + "deleteAfter": { + "objectType": "AbsoluteDeleteOption", + "duration": "P7D" + }, + "targetDataStoreCopySettings": [], + "sourceDataStore": { + "dataStoreType": "OperationalStore", + "objectType": "DataStoreInfoBase" + } + } + ], + "isDefault": true, + "name": "Default", + "objectType": "AzureRetentionRule" + } + ], + "datasourceTypes": [ + "Microsoft.Compute/disks" + ], + "objectType": "BackupPolicy" + } + } + ] + } + } +} diff --git a/arm/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep b/arm/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep new file mode 100644 index 0000000000..7861a1f5e2 --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/backupPolicies/deploy.bicep @@ -0,0 +1,42 @@ +@description('Required. The name of the backup vault.') +param backupVaultName string + +@description('Optional. The name of the backup policy.') +param name string = 'DefaultPolicy' + +@description('Optional. The properties of the backup policy.') +param properties object = {} + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource backupVault 'Microsoft.DataProtection/backupVaults@2022-03-01' existing = { + name: backupVaultName +} + +resource backupPolicy 'Microsoft.DataProtection/backupVaults/backupPolicies@2022-03-01' = { + name: name + parent: backupVault + properties: properties +} + +@description('The name of the backup policy.') +output name string = backupPolicy.name + +@description('The resource ID of the backup policy.') +output resourceId string = backupPolicy.id + +@description('The name of the resource group the backup policy was created in.') +output resourceGroupName string = resourceGroup().name diff --git a/arm/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md b/arm/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md new file mode 100644 index 0000000000..27fb106813 --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/backupPolicies/readme.md @@ -0,0 +1,176 @@ +# DataProtection BackupVaults BackupPolicies `[Microsoft.DataProtection/backupVaults/backupPolicies]` + +This module deploys DataProtection BackupVaults BackupPolicies. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.DataProtection/backupVaults/backupPolicies` | [2022-03-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.DataProtection/2022-03-01/backupVaults/backupPolicies) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `backupVaultName` | string | The name of the backup vault. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `name` | string | `'DefaultPolicy'` | The name of the backup policy. | +| `properties` | object | `{object}` | The properties of the backup policy. | + + +### Parameter Usage: `properties` + +Create a backup policy. + +

    + +Parameter JSON format + +```json + "properties": { + "value": { + "policyRules": [ + { + "backupParameters": { + "backupType": "Incremental", + "objectType": "AzureBackupParams" + }, + "trigger": { + "schedule": { + "repeatingTimeIntervals": [ + "R/2022-05-31T23:30:00+01:00/P1D" + ], + "timeZone": "W. Europe Standard Time" + }, + "taggingCriteria": [ + { + "tagInfo": { + "tagName": "Default", + "id": "Default_" + }, + "taggingPriority": 99, + "isDefault": true + } + ], + "objectType": "ScheduleBasedTriggerContext" + }, + "dataStore": { + "dataStoreType": "OperationalStore", + "objectType": "DataStoreInfoBase" + }, + "name": "BackupDaily", + "objectType": "AzureBackupRule" + }, + { + "lifecycles": [ + { + "deleteAfter": { + "objectType": "AbsoluteDeleteOption", + "duration": "P7D" + }, + "targetDataStoreCopySettings": [], + "sourceDataStore": { + "dataStoreType": "OperationalStore", + "objectType": "DataStoreInfoBase" + } + } + ], + "isDefault": true, + "name": "Default", + "objectType": "AzureRetentionRule" + } + ], + "datasourceTypes": [ + "Microsoft.Compute/disks" + ], + "objectType": "BackupPolicy" + } +} +``` + +
    + +
    + +Bicep format + +```bicep +properties: { + policyRules: [ + { + backupParameters: { + backupType: 'Incremental' + objectType: 'AzureBackupParams' + } + trigger: { + schedule: { + repeatingTimeIntervals: [ + 'R/2022-05-31T23:30:00+01:00/P1D' + ] + timeZone: 'W. Europe Standard Time' + } + taggingCriteria: [ + { + tagInfo: { + tagName: 'Default' + id: 'Default_' + } + taggingPriority: 99 + isDefault: true + } + ] + objectType: 'ScheduleBasedTriggerContext' + } + dataStore: { + dataStoreType: 'OperationalStore' + objectType: 'DataStoreInfoBase' + } + name: 'BackupDaily' + objectType: 'AzureBackupRule' + } + { + lifecycles: [ + { + deleteAfter: { + objectType: 'AbsoluteDeleteOption' + duration: 'P7D' + } + targetDataStoreCopySettings: [] + sourceDataStore: { + dataStoreType: 'OperationalStore' + objectType: 'DataStoreInfoBase' + } + } + ] + isDefault: true + name: 'Default' + objectType: 'AzureRetentionRule' + } + ] + datasourceTypes: [ + 'Microsoft.Compute/disks' + ] + objectType: 'BackupPolicy' +} +``` + +
    + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the backup policy. | +| `resourceGroupName` | string | The name of the resource group the backup policy was created in. | +| `resourceId` | string | The resource ID of the backup policy. | diff --git a/arm/Microsoft.DataProtection/backupVaults/backupPolicies/version.json b/arm/Microsoft.DataProtection/backupVaults/backupPolicies/version.json new file mode 100644 index 0000000000..bfb28197ff --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/backupPolicies/version.json @@ -0,0 +1,3 @@ +{ + "version": "0.4" +} diff --git a/arm/Microsoft.DataProtection/backupVaults/deploy.bicep b/arm/Microsoft.DataProtection/backupVaults/deploy.bicep new file mode 100644 index 0000000000..7018414b15 --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/deploy.bicep @@ -0,0 +1,127 @@ +@description('Required. Name of the Backup Vault.') +param name string + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +@description('Optional. Location for all resources.') +param location string = resourceGroup().location + +@description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') +param roleAssignments array = [] + +@allowed([ + '' + 'CanNotDelete' + 'ReadOnly' +]) +@description('Optional. Specify the type of lock.') +param lock string = '' + +@description('Optional. Enables system assigned managed identity on the resource.') +param systemAssignedIdentity bool = false + +@description('Optional. The ID(s) to assign to the resource.') +param userAssignedIdentities object = {} + +@description('Optional. Tags of the Recovery Service Vault resource.') +param tags object = {} + +@description('Optional. The datastore type to use.') +@allowed([ + 'ArchiveStore' + 'SnapshotStore' + 'VaultStore' +]) +param dataStoreType string = 'SnapshotStore' + +@description('Optional. The vault redundancy level to use.') +@allowed([ + 'LocallyRedundant' + 'GeoRedundant' +]) +param type string = 'LocallyRedundant' + +@description('Optional. List of all backup policies.') +param backupPolicies array = [] + +var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned,UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None') + +var identity = identityType != 'None' ? { + type: identityType + userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null +} : null + +var enableReferencedModulesTelemetry = false + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource backupVault 'Microsoft.DataProtection/backupVaults@2022-03-01' = { + name: name + location: location + tags: tags + identity: any(identity) + properties: { + storageSettings: [ + { + type: type + datastoreType: dataStoreType + } + ] + } +} + +module backupVault_backupPolicies 'backupPolicies/deploy.bicep' = [for (backupPolicy, index) in backupPolicies: { + name: '${uniqueString(deployment().name, location)}-BV-BackupPolicy-${index}' + params: { + backupVaultName: backupVault.name + name: backupPolicy.name + properties: backupPolicy.properties + enableDefaultTelemetry: enableReferencedModulesTelemetry + } +}] + +resource backupVault_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { + name: '${backupVault.name}-${lock}-lock' + properties: { + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + } + scope: backupVault +} + +module backupVault_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { + name: '${uniqueString(deployment().name, location)}-bv-Rbac-${index}' + params: { + description: contains(roleAssignment, 'description') ? roleAssignment.description : '' + principalIds: roleAssignment.principalIds + principalType: contains(roleAssignment, 'principalType') ? roleAssignment.principalType : '' + roleDefinitionIdOrName: roleAssignment.roleDefinitionIdOrName + resourceId: backupVault.id + } +}] + +@description('The resource ID of the backup vault.') +output resourceId string = backupVault.id + +@description('The name of the resource group the recovery services vault was created in.') +output resourceGroupName string = resourceGroup().name + +@description('The Name of the backup vault.') +output name string = backupVault.name + +@description('The principal ID of the system assigned identity.') +output systemAssignedPrincipalId string = systemAssignedIdentity && contains(backupVault.identity, 'principalId') ? backupVault.identity.principalId : '' + +@description('The location the resource was deployed into.') +output location string = backupVault.location diff --git a/arm/Microsoft.DataProtection/backupVaults/readme.md b/arm/Microsoft.DataProtection/backupVaults/readme.md new file mode 100644 index 0000000000..b83dc6ea84 --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/readme.md @@ -0,0 +1,535 @@ +# DataProtection BackupVaults `[Microsoft.DataProtection/backupVaults]` + +This module deploys DataProtection BackupVaults. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Deployment examples](#Deployment-examples) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | +| `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | +| `Microsoft.DataProtection/backupVaults` | [2022-03-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.DataProtection/2022-03-01/backupVaults) | +| `Microsoft.DataProtection/backupVaults/backupPolicies` | [2022-03-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.DataProtection/2022-03-01/backupVaults/backupPolicies) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | Name of the Backup Vault. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Allowed Values | Description | +| :-- | :-- | :-- | :-- | :-- | +| `backupPolicies` | _[backupPolicies](backupPolicies/readme.md)_ array | `[]` | | List of all backup policies. | +| `dataStoreType` | string | `'SnapshotStore'` | `[ArchiveStore, SnapshotStore, VaultStore]` | The datastore type to use. | +| `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `location` | string | `[resourceGroup().location]` | | Location for all resources. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | +| `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | +| `systemAssignedIdentity` | bool | `False` | | Enables system assigned managed identity on the resource. | +| `tags` | object | `{object}` | | Tags of the Recovery Service Vault resource. | +| `type` | string | `'LocallyRedundant'` | `[LocallyRedundant, GeoRedundant]` | The vault redundancy level to use. | +| `userAssignedIdentities` | object | `{object}` | | The ID(s) to assign to the resource. | + + +### Parameter Usage: `backupPolicies` + +Create backup policies in the backupvault. + +
    + +Parameter JSON format +```json + "backupPolicies": { + "value": [ + { + "name": "DefaultPolicy", + "properties": { + "policyRules": [ + { + "backupParameters": { + "backupType": "Incremental", + "objectType": "AzureBackupParams" + }, + "trigger": { + "schedule": { + "repeatingTimeIntervals": [ + "R/2022-05-31T23:30:00+01:00/P1D" + ], + "timeZone": "W. Europe Standard Time" + }, + "taggingCriteria": [ + { + "tagInfo": { + "tagName": "Default", + "id": "Default_" + }, + "taggingPriority": 99, + "isDefault": true + } + ], + "objectType": "ScheduleBasedTriggerContext" + }, + "dataStore": { + "dataStoreType": "OperationalStore", + "objectType": "DataStoreInfoBase" + }, + "name": "BackupDaily", + "objectType": "AzureBackupRule" + }, + { + "lifecycles": [ + { + "deleteAfter": { + "objectType": "AbsoluteDeleteOption", + "duration": "P7D" + }, + "targetDataStoreCopySettings": [], + "sourceDataStore": { + "dataStoreType": "OperationalStore", + "objectType": "DataStoreInfoBase" + } + } + ], + "isDefault": true, + "name": "Default", + "objectType": "AzureRetentionRule" + } + ], + "datasourceTypes": [ + "Microsoft.Compute/disks" + ], + "objectType": "BackupPolicy" + } + } + ] +} +``` + +
    + +
    + +Bicep format + +```bicep +backupPolicies: [ + { + name: 'DefaultPolicy' + properties: { + policyRules: [ + { + backupParameters: { + backupType: 'Incremental' + objectType: 'AzureBackupParams' + } + trigger: { + schedule: { + repeatingTimeIntervals: [ + 'R/2022-05-31T23:30:00+01:00/P1D' + ] + timeZone: 'W. Europe Standard Time' + } + taggingCriteria: [ + { + tagInfo: { + tagName: 'Default' + id: 'Default_' + } + taggingPriority: 99 + isDefault: true + } + ] + objectType: 'ScheduleBasedTriggerContext' + } + dataStore: { + dataStoreType: 'OperationalStore' + objectType: 'DataStoreInfoBase' + } + name: 'BackupDaily' + objectType: 'AzureBackupRule' + } + { + lifecycles: [ + { + deleteAfter: { + objectType: 'AbsoluteDeleteOption' + duration: 'P7D' + } + targetDataStoreCopySettings: [] + sourceDataStore: { + dataStoreType: 'OperationalStore' + objectType: 'DataStoreInfoBase' + } + } + ] + isDefault: true + name: 'Default' + objectType: 'AzureRetentionRule' + } + ] + datasourceTypes: [ + 'Microsoft.Compute/disks' + ] + objectType: 'BackupPolicy' + } + } +] +``` + +
    + +### Parameter Usage: `roleAssignments` + +Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. + +
    + +Parameter JSON format + +```json +"roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "description": "Reader Role Assignment", + "principalIds": [ + "12345678-1234-1234-1234-123456789012", // object 1 + "78945612-1234-1234-1234-123456789012" // object 2 + ] + }, + { + "roleDefinitionIdOrName": "/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11", + "principalIds": [ + "12345678-1234-1234-1234-123456789012" // object 1 + ], + "principalType": "ServicePrincipal" + } + ] +} +``` + +
    + +
    + +Bicep format + +```bicep +roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + description: 'Reader Role Assignment' + principalIds: [ + '12345678-1234-1234-1234-123456789012' // object 1 + '78945612-1234-1234-1234-123456789012' // object 2 + ] + } + { + roleDefinitionIdOrName: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11' + principalIds: [ + '12345678-1234-1234-1234-123456789012' // object 1 + ] + principalType: 'ServicePrincipal' + } +] +``` + +
    +

    + +### Parameter Usage: `tags` + +Tag names and tag values can be provided as needed. A tag can be left without a value. + +

    + +Parameter JSON format + +```json +"tags": { + "value": { + "Environment": "Non-Prod", + "Contact": "test.user@testcompany.com", + "PurchaseOrder": "1234", + "CostCenter": "7890", + "ServiceName": "DeploymentValidation", + "Role": "DeploymentValidation" + } +} +``` + +
    + +
    + +Bicep format + +```bicep +tags: { + Environment: 'Non-Prod' + Contact: 'test.user@testcompany.com' + PurchaseOrder: '1234' + CostCenter: '7890' + ServiceName: 'DeploymentValidation' + Role: 'DeploymentValidation' +} +``` + +
    +

    + +### Parameter Usage: `userAssignedIdentities` + +You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format: + +

    + +Parameter JSON format + +```json +"userAssignedIdentities": { + "value": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-001": {}, + "/subscriptions/12345678-1234-1234-1234-123456789012/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-002": {} + } +} +``` + +
    + +
    + +Bicep format + +```bicep +userAssignedIdentities: { + '/subscriptions/12345678-1234-1234-1234-123456789012/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-001': {} + '/subscriptions/12345678-1234-1234-1234-123456789012/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-002': {} +} +``` + +
    +

    + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `location` | string | The location the resource was deployed into. | +| `name` | string | The Name of the backup vault. | +| `resourceGroupName` | string | The name of the resource group the recovery services vault was created in. | +| `resourceId` | string | The resource ID of the backup vault. | +| `systemAssignedPrincipalId` | string | The principal ID of the system assigned identity. | + +## Deployment examples + +

    Example 1

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-bv-min-001" + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module backupVaults './Microsoft.DataProtection/backupVaults/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-backupVaults' + params: { + name: '<>-az-bv-min-001' + } +``` + +
    +

    + +

    Example 2

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-bv-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "backupPolicies": { + "value": [ + { + "name": "DefaultPolicy", + "properties": { + "policyRules": [ + { + "backupParameters": { + "backupType": "Incremental", + "objectType": "AzureBackupParams" + }, + "trigger": { + "schedule": { + "repeatingTimeIntervals": [ + "R/2022-05-31T23:30:00+01:00/P1D" + ], + "timeZone": "W. Europe Standard Time" + }, + "taggingCriteria": [ + { + "tagInfo": { + "tagName": "Default", + "id": "Default_" + }, + "taggingPriority": 99, + "isDefault": true + } + ], + "objectType": "ScheduleBasedTriggerContext" + }, + "dataStore": { + "dataStoreType": "OperationalStore", + "objectType": "DataStoreInfoBase" + }, + "name": "BackupDaily", + "objectType": "AzureBackupRule" + }, + { + "lifecycles": [ + { + "deleteAfter": { + "objectType": "AbsoluteDeleteOption", + "duration": "P7D" + }, + "targetDataStoreCopySettings": [], + "sourceDataStore": { + "dataStoreType": "OperationalStore", + "objectType": "DataStoreInfoBase" + } + } + ], + "isDefault": true, + "name": "Default", + "objectType": "AzureRetentionRule" + } + ], + "datasourceTypes": [ + "Microsoft.Compute/disks" + ], + "objectType": "BackupPolicy" + } + } + ] + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module backupVaults './Microsoft.DataProtection/backupVaults/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-backupVaults' + params: { + name: '<>-az-bv-x-001' + lock: 'CanNotDelete' + backupPolicies: [ + { + name: 'DefaultPolicy' + properties: { + policyRules: [ + { + backupParameters: { + backupType: 'Incremental' + objectType: 'AzureBackupParams' + } + trigger: { + schedule: { + repeatingTimeIntervals: [ + 'R/2022-05-31T23:30:00+01:00/P1D' + ] + timeZone: 'W. Europe Standard Time' + } + taggingCriteria: [ + { + tagInfo: { + tagName: 'Default' + id: 'Default_' + } + taggingPriority: 99 + isDefault: true + } + ] + objectType: 'ScheduleBasedTriggerContext' + } + dataStore: { + dataStoreType: 'OperationalStore' + objectType: 'DataStoreInfoBase' + } + name: 'BackupDaily' + objectType: 'AzureBackupRule' + } + { + lifecycles: [ + { + deleteAfter: { + objectType: 'AbsoluteDeleteOption' + duration: 'P7D' + } + targetDataStoreCopySettings: [] + sourceDataStore: { + dataStoreType: 'OperationalStore' + objectType: 'DataStoreInfoBase' + } + } + ] + isDefault: true + name: 'Default' + objectType: 'AzureRetentionRule' + } + ] + datasourceTypes: [ + 'Microsoft.Compute/disks' + ] + objectType: 'BackupPolicy' + } + } + ] + } +``` + +
    +

    diff --git a/arm/Microsoft.DataProtection/backupVaults/version.json b/arm/Microsoft.DataProtection/backupVaults/version.json new file mode 100644 index 0000000000..bfb28197ff --- /dev/null +++ b/arm/Microsoft.DataProtection/backupVaults/version.json @@ -0,0 +1,3 @@ +{ + "version": "0.4" +} diff --git a/arm/Microsoft.Databricks/workspaces/.bicep/nested_rbac.bicep b/arm/Microsoft.Databricks/workspaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Databricks/workspaces/.bicep/nested_rbac.bicep rename to arm/Microsoft.Databricks/workspaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Databricks/workspaces/.parameters/parameters.json b/arm/Microsoft.Databricks/workspaces/.parameters/parameters.json index 7d3ba311ec..dc327499f5 100644 --- a/arm/Microsoft.Databricks/workspaces/.parameters/parameters.json +++ b/arm/Microsoft.Databricks/workspaces/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-adb-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Databricks/workspaces/deploy.bicep b/arm/Microsoft.Databricks/workspaces/deploy.bicep index 6a9addb035..bd531ac2b2 100644 --- a/arm/Microsoft.Databricks/workspaces/deploy.bicep +++ b/arm/Microsoft.Databricks/workspaces/deploy.bicep @@ -39,12 +39,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -118,11 +118,11 @@ resource workspace 'Microsoft.Databricks/workspaces@2018-04-01' = { } } -resource workspace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource workspace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${workspace.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: workspace } @@ -140,7 +140,7 @@ resource workspace_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@202 scope: workspace } -module workspace_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module workspace_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-DataBricks-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Databricks/workspaces/readme.md b/arm/Microsoft.Databricks/workspaces/readme.md index b8fa3709f9..86926ed7c0 100644 --- a/arm/Microsoft.Databricks/workspaces/readme.md +++ b/arm/Microsoft.Databricks/workspaces/readme.md @@ -35,7 +35,7 @@ | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `managedResourceGroupId` | string | `''` | | The managed resource group ID. | | `pricingTier` | string | `'premium'` | `[trial, standard, premium]` | The pricing tier of workspace. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -233,6 +233,9 @@ tags: { "name": { "value": "<>-az-adb-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -274,6 +277,7 @@ module workspaces './Microsoft.Databricks/workspaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workspaces' params: { name: '<>-az-adb-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_rbac.bicep b/arm/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_rbac.bicep rename to arm/Microsoft.DesktopVirtualization/applicationgroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json b/arm/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json index 2b43fed106..7e71ce4904 100644 --- a/arm/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json +++ b/arm/Microsoft.DesktopVirtualization/applicationgroups/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-avdag-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "location": { "value": "westeurope" }, diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep b/arm/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep index c9db7baa9c..8a1cb90b38 100644 --- a/arm/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep +++ b/arm/Microsoft.DesktopVirtualization/applicationgroups/deploy.bicep @@ -42,12 +42,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @sys.description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @sys.description('Optional. Tags of the resource.') param tags object = {} @@ -82,7 +82,7 @@ var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { } }] -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -112,11 +112,11 @@ resource appGroup 'Microsoft.DesktopVirtualization/applicationgroups@2021-07-12' } } -resource appGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource appGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${appGroup.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: appGroup } @@ -146,11 +146,11 @@ module appGroup_applications 'applications/deploy.bicep' = [for (application, in showInPortal: contains(application, 'showInPortal') ? application.showInPortal : false iconPath: contains(application, 'iconPath') ? application.iconPath : application.filePath iconIndex: contains(application, 'iconIndex') ? application.iconIndex : 0 - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -module appGroup_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module appGroup_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AppGroup-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.DesktopVirtualization/applicationgroups/readme.md b/arm/Microsoft.DesktopVirtualization/applicationgroups/readme.md index 142a7ed371..f241f5f1ae 100644 --- a/arm/Microsoft.DesktopVirtualization/applicationgroups/readme.md +++ b/arm/Microsoft.DesktopVirtualization/applicationgroups/readme.md @@ -43,7 +43,7 @@ This module deploys an Azure virtual desktop application group. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `friendlyName` | string | `''` | | The friendly name of the Application Group to be created. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalIds' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -217,6 +217,9 @@ module applicationgroups './Microsoft.DesktopVirtualization/applicationgroups/de "name": { "value": "<>-az-avdag-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "location": { "value": "westeurope" }, @@ -293,6 +296,7 @@ module applicationgroups './Microsoft.DesktopVirtualization/applicationgroups/de name: '${uniqueString(deployment().name)}-applicationgroups' params: { name: '<>-az-avdag-x-001' + lock: 'CanNotDelete' location: 'westeurope' applicationGroupType: 'RemoteApp' hostpoolName: 'adp-<>-az-avdhp-x-001' diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_rbac.bicep b/arm/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_rbac.bicep rename to arm/Microsoft.DesktopVirtualization/hostpools/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json b/arm/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json index ba8ef0e1f9..076213824f 100644 --- a/arm/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json +++ b/arm/Microsoft.DesktopVirtualization/hostpools/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-avdhp-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "location": { "value": "westeurope" }, @@ -48,9 +51,6 @@ } } }, - "validationEnviroment": { - "value": false - }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/deploy.bicep b/arm/Microsoft.DesktopVirtualization/hostpools/deploy.bicep index fcfcc58e46..37e98eb3e0 100644 --- a/arm/Microsoft.DesktopVirtualization/hostpools/deploy.bicep +++ b/arm/Microsoft.DesktopVirtualization/hostpools/deploy.bicep @@ -70,12 +70,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -165,11 +165,11 @@ resource hostPool 'Microsoft.DesktopVirtualization/hostpools@2021-07-12' = { } } -resource hostPool_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource hostPool_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${hostPool.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: hostPool } @@ -186,7 +186,7 @@ resource hostPool_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@2021 scope: hostPool } -module hostPool_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module hostPool_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-HostPool-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.DesktopVirtualization/hostpools/readme.md b/arm/Microsoft.DesktopVirtualization/hostpools/readme.md index db45706f17..0f3f4473db 100644 --- a/arm/Microsoft.DesktopVirtualization/hostpools/readme.md +++ b/arm/Microsoft.DesktopVirtualization/hostpools/readme.md @@ -42,7 +42,7 @@ This module deploys an Azure virtual desktop host pool. | `hostpoolType` | string | `'Pooled'` | `[Personal, Pooled]` | Set this parameter to Personal if you would like to enable Persistent Desktop experience. Defaults to Pooled. | | `loadBalancerType` | string | `'BreadthFirst'` | `[BreadthFirst, DepthFirst, Persistent]` | Type of load balancer algorithm. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `maxSessionLimit` | int | `99999` | | Maximum number of sessions. | | `personalDesktopAssignmentType` | string | `''` | `[Automatic, Direct, ]` | Set the type of assignment for a Personal Host Pool type. | | `preferredAppGroupType` | string | `'Desktop'` | `[Desktop, None, RailApplications]` | The type of preferred application group type, default to Desktop Application Group. | @@ -269,6 +269,9 @@ tags: { "name": { "value": "<>-az-avdhp-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "location": { "value": "westeurope" }, @@ -312,9 +315,6 @@ tags: { } } }, - "validationEnviroment": { - "value": false - }, "roleAssignments": { "value": [ { @@ -356,6 +356,7 @@ module hostpools './Microsoft.DesktopVirtualization/hostpools/deploy.bicep' = { name: '${uniqueString(deployment().name)}-hostpools' params: { name: '<>-az-avdhp-x-001' + lock: 'CanNotDelete' location: 'westeurope' hostpoolFriendlyName: 'AVDv2' hostpoolDescription: 'My first AVD Host Pool' @@ -381,7 +382,6 @@ module hostpools './Microsoft.DesktopVirtualization/hostpools/deploy.bicep' = { ram: 8 } } - validationEnviroment: false roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_rbac.bicep b/arm/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_rbac.bicep rename to arm/Microsoft.DesktopVirtualization/scalingplans/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep b/arm/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep index ff6481d64d..e3cd280024 100644 --- a/arm/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep +++ b/arm/Microsoft.DesktopVirtualization/scalingplans/deploy.bicep @@ -135,7 +135,7 @@ resource scalingplan_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@2 scope: scalingPlan } -module scalingplan_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module scalingplan_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Workspace-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_rbac.bicep b/arm/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_rbac.bicep rename to arm/Microsoft.DesktopVirtualization/workspaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json b/arm/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json index 7220e4d78e..5ffb007078 100644 --- a/arm/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json +++ b/arm/Microsoft.DesktopVirtualization/workspaces/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-avdws-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "location": { "value": "westeurope" }, diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/deploy.bicep b/arm/Microsoft.DesktopVirtualization/workspaces/deploy.bicep index 1c5be804e2..2036ead3ea 100644 --- a/arm/Microsoft.DesktopVirtualization/workspaces/deploy.bicep +++ b/arm/Microsoft.DesktopVirtualization/workspaces/deploy.bicep @@ -4,7 +4,7 @@ param name string @description('Optional. Location for all resources.') param location string = resourceGroup().location -@description('Required. Resource IDs fo the existing Application groups this workspace will group together.') +@description('Required. Resource IDs for the existing Application groups this workspace will group together.') param appGroupResourceIds array = [] @description('Optional. The friendly name of the Workspace to be created.') @@ -31,12 +31,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -96,11 +96,11 @@ resource workspace 'Microsoft.DesktopVirtualization/workspaces@2021-07-12' = { } } -resource workspace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource workspace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${workspace.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: workspace } @@ -117,7 +117,7 @@ resource workspace_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@202 scope: workspace } -module workspace_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module workspace_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Workspace-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.DesktopVirtualization/workspaces/readme.md b/arm/Microsoft.DesktopVirtualization/workspaces/readme.md index fd3fe6a532..6b111be13b 100644 --- a/arm/Microsoft.DesktopVirtualization/workspaces/readme.md +++ b/arm/Microsoft.DesktopVirtualization/workspaces/readme.md @@ -23,7 +23,7 @@ This module deploys an Azure virtual desktop workspace. **Required parameters** | Parameter Name | Type | Description | | :-- | :-- | :-- | -| `appGroupResourceIds` | array | Resource IDs fo the existing Application groups this workspace will group together. | +| `appGroupResourceIds` | array | Resource IDs for the existing Application groups this workspace will group together. | | `name` | string | The name of the workspace to be attach to new Application Group. | **Optional parameters** @@ -38,7 +38,7 @@ This module deploys an Azure virtual desktop workspace. | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalIds' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | | `workspaceDescription` | string | `''` | | The description of the Workspace to be created. | @@ -170,6 +170,9 @@ tags: { "name": { "value": "<>-az-avdws-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "location": { "value": "westeurope" }, @@ -225,6 +228,7 @@ module workspaces './Microsoft.DesktopVirtualization/workspaces/deploy.bicep' = name: '${uniqueString(deployment().name)}-workspaces' params: { name: '<>-az-avdws-x-001' + lock: 'CanNotDelete' location: 'westeurope' appGroupResourceIds: [ '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.DesktopVirtualization/applicationgroups/adp-<>-az-avdag-x-001' diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_rbac.bicep b/arm/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_rbac.bicep rename to arm/Microsoft.DocumentDB/databaseAccounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json b/arm/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json index 70fbc40cc8..564968cf20 100644 --- a/arm/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json +++ b/arm/Microsoft.DocumentDB/databaseAccounts/.parameters/plain.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-cdb-plain-001" }, + "lock": { + "value": "CanNotDelete" + }, "locations": { "value": [ { diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/deploy.bicep b/arm/Microsoft.DocumentDB/databaseAccounts/deploy.bicep index d4040cb764..1f603356aa 100644 --- a/arm/Microsoft.DocumentDB/databaseAccounts/deploy.bicep +++ b/arm/Microsoft.DocumentDB/databaseAccounts/deploy.bicep @@ -63,12 +63,12 @@ param mongodbDatabases array = [] param enableDefaultTelemetry bool = true @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalIds\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -179,7 +179,7 @@ var databaseAccount_locations = [for location in locations: { var kind = !empty(sqlDatabases) ? 'GlobalDocumentDB' : (!empty(mongodbDatabases) ? 'MongoDB' : 'Parse') -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false var databaseAccount_properties = !empty(sqlDatabases) ? { consistencyPolicy: consistencyPolicy[defaultConsistencyLevel] @@ -218,11 +218,11 @@ resource databaseAccount 'Microsoft.DocumentDB/databaseAccounts@2021-06-15' = { properties: databaseAccount_properties } -resource databaseAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource databaseAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${databaseAccount.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: databaseAccount } @@ -240,7 +240,7 @@ resource databaseAccount_diagnosticSettings 'Microsoft.Insights/diagnosticsettin scope: databaseAccount } -module databaseAccount_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module databaseAccount_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -257,7 +257,7 @@ module sqlDatabases_resource 'sqlDatabases/deploy.bicep' = [for sqlDatabase in s databaseAccountName: databaseAccount.name name: sqlDatabase.name containers: contains(sqlDatabase, 'containers') ? sqlDatabase.containers : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -267,7 +267,7 @@ module mongodbDatabases_resource 'mongodbDatabases/deploy.bicep' = [for mongodbD databaseAccountName: databaseAccount.name name: mongodbDatabase.name collections: contains(mongodbDatabase, 'collections') ? mongodbDatabase.collections : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep b/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep index 72319c9d02..7ec003f4fd 100644 --- a/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep +++ b/arm/Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/deploy.bicep @@ -16,7 +16,7 @@ param tags object = {} @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -56,7 +56,7 @@ module mongodbDatabase_collections 'collections/deploy.bicep' = [for collection name: collection.name indexes: collection.indexes shardKey: collection.shardKey - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/readme.md b/arm/Microsoft.DocumentDB/databaseAccounts/readme.md index 6893dd3e97..9fa1394988 100644 --- a/arm/Microsoft.DocumentDB/databaseAccounts/readme.md +++ b/arm/Microsoft.DocumentDB/databaseAccounts/readme.md @@ -46,7 +46,7 @@ This module deploys a DocumentDB database account and its child resources. | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `maxIntervalInSeconds` | int | `300` | | Max lag time (minutes). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400. | | `maxStalenessPrefix` | int | `100000` | | Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 1000000. Multi Region: 100000 to 1000000. | | `mongodbDatabases` | _[mongodbDatabases](mongodbDatabases/readme.md)_ array | `[]` | | MongoDB Databases configurations. | @@ -948,6 +948,9 @@ module databaseAccounts './Microsoft.DocumentDB/databaseAccounts/deploy.bicep' = "name": { "value": "<>-az-cdb-plain-001" }, + "lock": { + "value": "CanNotDelete" + }, "locations": { "value": [ { @@ -1003,6 +1006,7 @@ module databaseAccounts './Microsoft.DocumentDB/databaseAccounts/deploy.bicep' = name: '${uniqueString(deployment().name)}-databaseAccounts' params: { name: '<>-az-cdb-plain-001' + lock: 'CanNotDelete' locations: [ { locationName: 'West Europe' diff --git a/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep b/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep index cbaa9cdcce..23a662b0ae 100644 --- a/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep +++ b/arm/Microsoft.DocumentDB/databaseAccounts/sqlDatabases/deploy.bicep @@ -16,7 +16,7 @@ param tags object = {} @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -56,7 +56,7 @@ module container 'containers/deploy.bicep' = [for container in containers: { name: container.name paths: container.paths kind: container.kind - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.EventGrid/systemTopics/.bicep/nested_rbac.bicep b/arm/Microsoft.EventGrid/systemTopics/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.EventGrid/systemTopics/.bicep/nested_rbac.bicep rename to arm/Microsoft.EventGrid/systemTopics/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.EventGrid/systemTopics/.parameters/parameters.json b/arm/Microsoft.EventGrid/systemTopics/.parameters/parameters.json index 46728a6924..5a415c770e 100644 --- a/arm/Microsoft.EventGrid/systemTopics/.parameters/parameters.json +++ b/arm/Microsoft.EventGrid/systemTopics/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-egstn-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "source": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" }, diff --git a/arm/Microsoft.EventGrid/systemTopics/deploy.bicep b/arm/Microsoft.EventGrid/systemTopics/deploy.bicep index 61585c61eb..4814c0b7f8 100644 --- a/arm/Microsoft.EventGrid/systemTopics/deploy.bicep +++ b/arm/Microsoft.EventGrid/systemTopics/deploy.bicep @@ -31,12 +31,12 @@ param diagnosticEventHubName string = '' param roleAssignments array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enables system assigned managed identity on the resource.') param systemAssignedIdentity bool = false @@ -118,11 +118,11 @@ resource systemTopic 'Microsoft.EventGrid/systemTopics@2021-12-01' = { } } -resource systemTopic_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource systemTopic_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${systemTopic.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: systemTopic } @@ -140,7 +140,7 @@ resource systemTopic_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@2 scope: systemTopic } -module systemTopic_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module systemTopic_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-EventGrid-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.EventGrid/systemTopics/readme.md b/arm/Microsoft.EventGrid/systemTopics/readme.md index 6f84ee1544..79f1621cf0 100644 --- a/arm/Microsoft.EventGrid/systemTopics/readme.md +++ b/arm/Microsoft.EventGrid/systemTopics/readme.md @@ -40,7 +40,7 @@ This module deploys an Event Grid System Topic. | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `systemAssignedIdentity` | bool | `False` | | Enables system assigned managed identity on the resource. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -327,6 +327,9 @@ module systemTopics './Microsoft.EventGrid/systemTopics/deploy.bicep' = { "name": { "value": "<>-az-egstn-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "source": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" }, @@ -374,6 +377,7 @@ module systemTopics './Microsoft.EventGrid/systemTopics/deploy.bicep' = { name: '${uniqueString(deployment().name)}-systemTopics' params: { name: '<>-az-egstn-x-001' + lock: 'CanNotDelete' source: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' topicType: 'Microsoft.Storage.StorageAccounts' roleAssignments: [ diff --git a/arm/Microsoft.EventGrid/topics/.bicep/nested_rbac.bicep b/arm/Microsoft.EventGrid/topics/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.EventGrid/topics/.bicep/nested_rbac.bicep rename to arm/Microsoft.EventGrid/topics/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.EventGrid/topics/.parameters/parameters.json b/arm/Microsoft.EventGrid/topics/.parameters/parameters.json index 2d0de99e4e..5976a4588b 100644 --- a/arm/Microsoft.EventGrid/topics/.parameters/parameters.json +++ b/arm/Microsoft.EventGrid/topics/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-egtn-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.EventGrid/topics/deploy.bicep b/arm/Microsoft.EventGrid/topics/deploy.bicep index 67ebee0e73..58f651c84f 100644 --- a/arm/Microsoft.EventGrid/topics/deploy.bicep +++ b/arm/Microsoft.EventGrid/topics/deploy.bicep @@ -34,12 +34,12 @@ param privateEndpoints array = [] param roleAssignments array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -68,6 +68,8 @@ param diagnosticMetricsToEnable array = [ @description('Optional. The name of the diagnostic setting, if deployed.') param diagnosticSettingsName string = '${name}-diagnosticSettings' +var enableReferencedModulesTelemetry = false + var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { category: category enabled: true @@ -109,11 +111,11 @@ resource topic 'Microsoft.EventGrid/topics@2020-06-01' = { } } -resource topic_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource topic_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${topic.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: topic } @@ -140,9 +142,9 @@ module topic_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.b name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(topic.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: topic.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -151,7 +153,7 @@ module topic_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.b } }] -module topic_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module topic_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-topic-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.EventGrid/topics/readme.md b/arm/Microsoft.EventGrid/topics/readme.md index 0b801ec338..668bf55da7 100644 --- a/arm/Microsoft.EventGrid/topics/readme.md +++ b/arm/Microsoft.EventGrid/topics/readme.md @@ -41,7 +41,7 @@ This module deploys an event grid topic. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `inboundIpRules` | array | `[]` | | Array of IPs to whitelist. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. Event Grid topics should use private endpoints. | | `publicNetworkAccess` | string | `'Enabled'` | | Determines if traffic is allowed over public network. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -250,6 +250,9 @@ tags: { "name": { "value": "<>-az-egtn-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -299,6 +302,7 @@ module topics './Microsoft.EventGrid/topics/deploy.bicep' = { name: '${uniqueString(deployment().name)}-topics' params: { name: '<>-az-egtn-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.EventHub/namespaces/.bicep/nested_rbac.bicep b/arm/Microsoft.EventHub/namespaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/.bicep/nested_rbac.bicep rename to arm/Microsoft.EventHub/namespaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.EventHub/namespaces/.parameters/parameters.json b/arm/Microsoft.EventHub/namespaces/.parameters/parameters.json index bba54b6fac..38aff7a42e 100644 --- a/arm/Microsoft.EventHub/namespaces/.parameters/parameters.json +++ b/arm/Microsoft.EventHub/namespaces/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-evnsp-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "authorizationRules": { "value": [ { diff --git a/arm/Microsoft.EventHub/namespaces/deploy.bicep b/arm/Microsoft.EventHub/namespaces/deploy.bicep index b73b846109..657ea68a8b 100644 --- a/arm/Microsoft.EventHub/namespaces/deploy.bicep +++ b/arm/Microsoft.EventHub/namespaces/deploy.bicep @@ -64,12 +64,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enables system assigned managed identity on the resource.') param systemAssignedIdentity bool = false @@ -157,7 +157,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -188,11 +188,11 @@ resource eventHubNamespace 'Microsoft.EventHub/namespaces@2021-11-01' = { } } -resource eventHubNamespace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource eventHubNamespace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${eventHubNamespace.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: eventHubNamespace } @@ -235,12 +235,12 @@ module eventHubNamespace_eventHubs 'eventhubs/deploy.bicep' = [for (eventHub, in captureDescriptionSizeLimitInBytes: contains(eventHub, 'captureDescriptionSizeLimitInBytes') ? eventHub.captureDescriptionSizeLimitInBytes : 314572800 captureDescriptionSkipEmptyArchives: contains(eventHub, 'captureDescriptionSkipEmptyArchives') ? eventHub.captureDescriptionSkipEmptyArchives : false consumerGroups: contains(eventHub, 'consumerGroups') ? eventHub.consumerGroups : [] - lock: contains(eventHub, 'lock') ? eventHub.lock : 'NotSpecified' + lock: contains(eventHub, 'lock') ? eventHub.lock : '' messageRetentionInDays: contains(eventHub, 'messageRetentionInDays') ? eventHub.messageRetentionInDays : 1 partitionCount: contains(eventHub, 'partitionCount') ? eventHub.partitionCount : 2 roleAssignments: contains(eventHub, 'roleAssignments') ? eventHub.roleAssignments : [] status: contains(eventHub, 'status') ? eventHub.status : 'Active' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -250,7 +250,7 @@ module eventHubNamespace_diasterRecoveryConfig 'disasterRecoveryConfigs/deploy.b namespaceName: eventHubNamespace.name name: disasterRecoveryConfig.name partnerNamespaceId: contains(disasterRecoveryConfig, 'partnerNamespaceId') ? disasterRecoveryConfig.partnerNamespaceId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -260,7 +260,7 @@ module eventHubNamespace_authorizationRules 'authorizationRules/deploy.bicep' = namespaceName: eventHubNamespace.name name: authorizationRule.name rights: contains(authorizationRule, 'rights') ? authorizationRule.rights : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -273,7 +273,7 @@ module eventHubNamespace_networkRuleSet 'networkRuleSets/deploy.bicep' = if (!em trustedServiceAccessEnabled: contains(networkRuleSets, 'trustedServiceAccessEnabled') ? networkRuleSets.trustedServiceAccessEnabled : true ipRules: contains(networkRuleSets, 'ipRules') ? networkRuleSets.ipRules : [] virtualNetworkRules: contains(networkRuleSets, 'virtualNetworkRules') ? networkRuleSets.virtualNetworkRules : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -286,9 +286,9 @@ module eventHubNamespace_privateEndpoints '../../Microsoft.Network/privateEndpoi name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(eventHubNamespace.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: eventHubNamespace.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -297,7 +297,7 @@ module eventHubNamespace_privateEndpoints '../../Microsoft.Network/privateEndpoi } }] -module eventHubNamespace_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module eventHubNamespace_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-EvhbNamespace-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_rbac.bicep b/arm/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_rbac.bicep rename to arm/Microsoft.EventHub/namespaces/eventhubs/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep b/arm/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep index 1fd8958db7..fe11d46e7f 100644 --- a/arm/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep +++ b/arm/Microsoft.EventHub/namespaces/eventhubs/deploy.bicep @@ -48,12 +48,12 @@ param consumerGroups array = [ ] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -96,7 +96,7 @@ param captureDescriptionSkipEmptyArchives bool = false @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false var eventHubPropertiesSimple = { messageRetentionInDays: messageRetentionInDays @@ -146,10 +146,10 @@ resource eventHub 'Microsoft.EventHub/namespaces/eventhubs@2021-11-01' = { properties: captureDescriptionEnabled ? eventHubPropertiesWithCapture : eventHubPropertiesSimple } -resource eventHub_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource eventHub_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${eventHub.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: eventHub @@ -162,7 +162,7 @@ module eventHub_consumergroups 'consumergroups/deploy.bicep' = [for (consumerGro eventHubName: eventHub.name name: consumerGroup.name userMetadata: contains(consumerGroup, 'userMetadata') ? consumerGroup.userMetadata : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -173,11 +173,11 @@ module eventHub_authorizationRules 'authorizationRules/deploy.bicep' = [for (aut eventHubName: eventHub.name name: authorizationRule.name rights: contains(authorizationRule, 'rights') ? authorizationRule.rights : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -module eventHub_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module eventHub_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.EventHub/namespaces/eventhubs/readme.md b/arm/Microsoft.EventHub/namespaces/eventhubs/readme.md index c37b5d1d90..6ebdbd432c 100644 --- a/arm/Microsoft.EventHub/namespaces/eventhubs/readme.md +++ b/arm/Microsoft.EventHub/namespaces/eventhubs/readme.md @@ -45,7 +45,7 @@ This module deploys an Event Hub. | `captureDescriptionSkipEmptyArchives` | bool | `False` | | A value that indicates whether to Skip Empty Archives. | | `consumerGroups` | _[consumerGroups](consumerGroups/readme.md)_ array | `[System.Collections.Hashtable]` | | The consumer groups to create in this event hub instance. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `messageRetentionInDays` | int | `1` | | Number of days to retain the events for this Event Hub, value should be 1 to 7 days. | | `partitionCount` | int | `2` | | Number of partitions created for the Event Hub, allowed values are from 1 to 32 partitions. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | diff --git a/arm/Microsoft.EventHub/namespaces/readme.md b/arm/Microsoft.EventHub/namespaces/readme.md index be4e504c71..bd85b46992 100644 --- a/arm/Microsoft.EventHub/namespaces/readme.md +++ b/arm/Microsoft.EventHub/namespaces/readme.md @@ -45,7 +45,7 @@ This module deploys an event hub namespace. | `eventHubs` | _[eventHubs](eventHubs/readme.md)_ array | `[]` | | The event hubs to deploy into this namespace. | | `isAutoInflateEnabled` | bool | `False` | | Switch to enable the Auto Inflate feature of Event Hub. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `maximumThroughputUnits` | int | `1` | | Upper limit of throughput units when AutoInflate is enabled, value should be within 0 to 20 throughput units. | | `name` | string | `''` | | The name of the event hub namespace. If no name is provided, then unique name will be created. | | `networkRuleSets` | _[networkRuleSets](networkRuleSets/readme.md)_ object | `{object}` | | Networks ACLs, this object contains IPs/Subnets to whitelist or restrict access to private endpoints only. For security reasons, it is recommended to configure this object on the Namespace. | @@ -306,6 +306,7 @@ userAssignedIdentities: { module namespaces './Microsoft.EventHub/namespaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-namespaces' params: { + } ``` @@ -326,6 +327,9 @@ module namespaces './Microsoft.EventHub/namespaces/deploy.bicep' = { "name": { "value": "<>-az-evnsp-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "authorizationRules": { "value": [ { @@ -475,6 +479,7 @@ module namespaces './Microsoft.EventHub/namespaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-namespaces' params: { name: '<>-az-evnsp-x-001' + lock: 'CanNotDelete' authorizationRules: [ { name: 'RootManageSharedAccessKey' diff --git a/arm/Microsoft.HealthBot/healthBots/.bicep/nested_rbac.bicep b/arm/Microsoft.HealthBot/healthBots/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.HealthBot/healthBots/.bicep/nested_rbac.bicep rename to arm/Microsoft.HealthBot/healthBots/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.HealthBot/healthBots/.parameters/parameters.json b/arm/Microsoft.HealthBot/healthBots/.parameters/parameters.json index 76b924cc36..fef2b742de 100644 --- a/arm/Microsoft.HealthBot/healthBots/.parameters/parameters.json +++ b/arm/Microsoft.HealthBot/healthBots/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-ahb-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.HealthBot/healthBots/deploy.bicep b/arm/Microsoft.HealthBot/healthBots/deploy.bicep index d2fa21acc8..e8eb13754d 100644 --- a/arm/Microsoft.HealthBot/healthBots/deploy.bicep +++ b/arm/Microsoft.HealthBot/healthBots/deploy.bicep @@ -8,12 +8,12 @@ param sku string = 'F0' param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -46,16 +46,16 @@ resource azureHealthBot 'Microsoft.HealthBot/healthBots@2020-12-08' = { properties: {} } -resource azureHealthBot_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource azureHealthBot_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${azureHealthBot.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: azureHealthBot } -module healthBot_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module healthBot_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-HealthBot-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.HealthBot/healthBots/readme.md b/arm/Microsoft.HealthBot/healthBots/readme.md index eec445bb09..3c761eba4c 100644 --- a/arm/Microsoft.HealthBot/healthBots/readme.md +++ b/arm/Microsoft.HealthBot/healthBots/readme.md @@ -29,7 +29,7 @@ This module deploys an Azure Health Bot. | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `sku` | string | `'F0'` | | The resource model definition representing SKU. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -160,6 +160,9 @@ roleAssignments: [ "name": { "value": "<>-az-ahb-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -186,6 +189,7 @@ module healthBots './Microsoft.HealthBot/healthBots/deploy.bicep' = { name: '${uniqueString(deployment().name)}-healthBots' params: { name: '<>-az-ahb-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Insights/actionGroups/.bicep/nested_rbac.bicep b/arm/Microsoft.Insights/actionGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/actionGroups/.bicep/nested_rbac.bicep rename to arm/Microsoft.Insights/actionGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/actionGroups/deploy.bicep b/arm/Microsoft.Insights/actionGroups/deploy.bicep index ff7a611104..8f369c1ff4 100644 --- a/arm/Microsoft.Insights/actionGroups/deploy.bicep +++ b/arm/Microsoft.Insights/actionGroups/deploy.bicep @@ -81,7 +81,7 @@ resource actionGroup 'microsoft.insights/actionGroups@2019-06-01' = { } } -module actionGroup_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module actionGroup_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ActionGroup-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Insights/activityLogAlerts/.bicep/nested_rbac.bicep b/arm/Microsoft.Insights/activityLogAlerts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/activityLogAlerts/.bicep/nested_rbac.bicep rename to arm/Microsoft.Insights/activityLogAlerts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/activityLogAlerts/deploy.bicep b/arm/Microsoft.Insights/activityLogAlerts/deploy.bicep index b37cdfa502..4453cb6395 100644 --- a/arm/Microsoft.Insights/activityLogAlerts/deploy.bicep +++ b/arm/Microsoft.Insights/activityLogAlerts/deploy.bicep @@ -64,7 +64,7 @@ resource activityLogAlert 'Microsoft.Insights/activityLogAlerts@2020-10-01' = { } } -module activityLogAlert_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module activityLogAlert_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ActivityLogAlert-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Insights/components/.bicep/nested_rbac.bicep b/arm/Microsoft.Insights/components/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/components/.bicep/nested_rbac.bicep rename to arm/Microsoft.Insights/components/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/components/deploy.bicep b/arm/Microsoft.Insights/components/deploy.bicep index 2b1451f710..df25c2a77a 100644 --- a/arm/Microsoft.Insights/components/deploy.bicep +++ b/arm/Microsoft.Insights/components/deploy.bicep @@ -86,7 +86,7 @@ resource appInsights 'Microsoft.Insights/components@2020-02-02' = { } } -module appInsights_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module appInsights_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AppInsights-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Insights/metricAlerts/.bicep/nested_rbac.bicep b/arm/Microsoft.Insights/metricAlerts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/metricAlerts/.bicep/nested_rbac.bicep rename to arm/Microsoft.Insights/metricAlerts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/metricAlerts/deploy.bicep b/arm/Microsoft.Insights/metricAlerts/deploy.bicep index bb6d50b327..2fbc4fdc0d 100644 --- a/arm/Microsoft.Insights/metricAlerts/deploy.bicep +++ b/arm/Microsoft.Insights/metricAlerts/deploy.bicep @@ -119,7 +119,7 @@ resource metricAlert 'Microsoft.Insights/metricAlerts@2018-03-01' = { } } -module metricAlert_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module metricAlert_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-MetricAlert-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Insights/privateLinkScopes/.bicep/nested_rbac.bicep b/arm/Microsoft.Insights/privateLinkScopes/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/privateLinkScopes/.bicep/nested_rbac.bicep rename to arm/Microsoft.Insights/privateLinkScopes/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json b/arm/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json index ef2f7dcf7a..8bfe5c1638 100644 --- a/arm/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json +++ b/arm/Microsoft.Insights/privateLinkScopes/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-pls-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "scopedResources": { "value": [ { diff --git a/arm/Microsoft.Insights/privateLinkScopes/deploy.bicep b/arm/Microsoft.Insights/privateLinkScopes/deploy.bicep index 256e05565d..18a8c7696d 100644 --- a/arm/Microsoft.Insights/privateLinkScopes/deploy.bicep +++ b/arm/Microsoft.Insights/privateLinkScopes/deploy.bicep @@ -6,12 +6,12 @@ param name string param location string = 'global' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -28,7 +28,7 @@ param tags object = {} @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -55,17 +55,17 @@ module privateLinkScope_scopedResource 'scopedResources/deploy.bicep' = [for (sc name: scopedResource.name privateLinkScopeName: privateLinkScope.name linkedResourceId: scopedResource.linkedResourceId - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource privateLinkScope_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource privateLinkScope_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${privateLinkScope.name}-${lock}-lock' - scope: privateLinkScope properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } + scope: privateLinkScope } module privateLinkScope_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { @@ -77,9 +77,9 @@ module privateLinkScope_privateEndpoints '../../Microsoft.Network/privateEndpoin name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(privateLinkScope.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: privateLinkScope.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -88,7 +88,7 @@ module privateLinkScope_privateEndpoints '../../Microsoft.Network/privateEndpoin } }] -module privateLinkScope_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module privateLinkScope_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-PvtLinkScope-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Insights/privateLinkScopes/readme.md b/arm/Microsoft.Insights/privateLinkScopes/readme.md index e127d33d45..3add81522d 100644 --- a/arm/Microsoft.Insights/privateLinkScopes/readme.md +++ b/arm/Microsoft.Insights/privateLinkScopes/readme.md @@ -32,7 +32,7 @@ This module deploys an Azure Monitor Private Link Scope. | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `'global'` | | The location of the private link scope. Should be global. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `scopedResources` | _[scopedResources](scopedResources/readme.md)_ array | `[]` | | Configuration Details for Azure Monitor Resources. | @@ -241,6 +241,9 @@ tags: { "name": { "value": "<>-az-pls-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "scopedResources": { "value": [ { @@ -283,6 +286,7 @@ module privateLinkScopes './Microsoft.Insights/privateLinkScopes/deploy.bicep' = name: '${uniqueString(deployment().name)}-privateLinkScopes' params: { name: '<>-az-pls-x-001' + lock: 'CanNotDelete' scopedResources: [ { name: 'scoped1' diff --git a/arm/Microsoft.Insights/scheduledQueryRules/.bicep/nested_rbac.bicep b/arm/Microsoft.Insights/scheduledQueryRules/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Insights/scheduledQueryRules/.bicep/nested_rbac.bicep rename to arm/Microsoft.Insights/scheduledQueryRules/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Insights/scheduledQueryRules/deploy.bicep b/arm/Microsoft.Insights/scheduledQueryRules/deploy.bicep index 56c1f8bad0..d59d88817a 100644 --- a/arm/Microsoft.Insights/scheduledQueryRules/deploy.bicep +++ b/arm/Microsoft.Insights/scheduledQueryRules/deploy.bicep @@ -105,7 +105,7 @@ resource queryRule 'Microsoft.Insights/scheduledQueryRules@2021-02-01-preview' = } } -module queryRule_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module queryRule_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-QueryRule-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.KeyVault/vaults/.bicep/nested_rbac.bicep b/arm/Microsoft.KeyVault/vaults/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/.bicep/nested_rbac.bicep rename to arm/Microsoft.KeyVault/vaults/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.KeyVault/vaults/.parameters/parameters.json b/arm/Microsoft.KeyVault/vaults/.parameters/parameters.json index 804986a4ad..d015736c8f 100644 --- a/arm/Microsoft.KeyVault/vaults/.parameters/parameters.json +++ b/arm/Microsoft.KeyVault/vaults/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-kv-x-002" }, + "lock": { + "value": "CanNotDelete" + }, "softDeleteRetentionInDays": { "value": 7 }, diff --git a/arm/Microsoft.KeyVault/vaults/deploy.bicep b/arm/Microsoft.KeyVault/vaults/deploy.bicep index 65a88b5af8..b0314495cb 100644 --- a/arm/Microsoft.KeyVault/vaults/deploy.bicep +++ b/arm/Microsoft.KeyVault/vaults/deploy.bicep @@ -89,12 +89,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -175,7 +175,7 @@ var formattedAccessPolicies = [for accessPolicy in accessPolicies: { var secretList = !empty(secrets) ? secrets.secureList : [] -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false // =========== // // Deployments // @@ -216,10 +216,10 @@ resource keyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = { } } -resource keyVault_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource keyVault_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${keyVault.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: keyVault @@ -243,7 +243,7 @@ module keyVault_accessPolicies 'accessPolicies/deploy.bicep' = if (!empty(access params: { keyVaultName: keyVault.name accessPolicies: formattedAccessPolicies - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -259,7 +259,7 @@ module keyVault_secrets 'secrets/deploy.bicep' = [for (secret, index) in secretL contentType: contains(secret, 'contentType') ? secret.contentType : '' tags: contains(secret, 'tags') ? secret.tags : {} roleAssignments: contains(secret, 'roleAssignments') ? secret.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -277,7 +277,7 @@ module keyVault_keys 'keys/deploy.bicep' = [for (key, index) in keys: { kty: contains(key, 'kty') ? key.kty : 'EC' tags: contains(key, 'tags') ? key.tags : {} roleAssignments: contains(key, 'roleAssignments') ? key.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -290,9 +290,9 @@ module keyVault_privateEndpoints '../../Microsoft.Network/privateEndpoints/deplo name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(keyVault.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: keyVault.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -301,7 +301,7 @@ module keyVault_privateEndpoints '../../Microsoft.Network/privateEndpoints/deplo } }] -module keyVault_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module keyVault_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-KeyVault-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.KeyVault/vaults/keys/.bicep/nested_rbac.bicep b/arm/Microsoft.KeyVault/vaults/keys/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/keys/.bicep/nested_rbac.bicep rename to arm/Microsoft.KeyVault/vaults/keys/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.KeyVault/vaults/keys/deploy.bicep b/arm/Microsoft.KeyVault/vaults/keys/deploy.bicep index de0962508b..60432671eb 100644 --- a/arm/Microsoft.KeyVault/vaults/keys/deploy.bicep +++ b/arm/Microsoft.KeyVault/vaults/keys/deploy.bicep @@ -88,7 +88,7 @@ resource key 'Microsoft.KeyVault/vaults/keys@2019-09-01' = { } } -module key_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module key_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.KeyVault/vaults/readme.md b/arm/Microsoft.KeyVault/vaults/readme.md index 43b4f23147..955029e75b 100644 --- a/arm/Microsoft.KeyVault/vaults/readme.md +++ b/arm/Microsoft.KeyVault/vaults/readme.md @@ -47,7 +47,7 @@ This module deploys a key vault and its child resources. | `enableVaultForTemplateDeployment` | bool | `True` | `[True, False]` | Specifies if the vault is enabled for a template deployment. | | `keys` | _[keys](keys/readme.md)_ array | `[]` | | All keys to create. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `name` | string | `''` | | Name of the Key Vault. If no name is provided, then unique name will be created. | | `networkAcls` | object | `{object}` | | Service endpoint object information. For security reasons, it is recommended to set the DefaultAction Deny. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible. | @@ -405,6 +405,7 @@ privateEndpoints: [ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { + } ``` @@ -425,6 +426,9 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { "name": { "value": "<>-az-kv-x-002" }, + "lock": { + "value": "CanNotDelete" + }, "softDeleteRetentionInDays": { "value": 7 }, @@ -562,6 +566,7 @@ module vaults './Microsoft.KeyVault/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { name: '<>-az-kv-x-002' + lock: 'CanNotDelete' softDeleteRetentionInDays: 7 enableRbacAuthorization: false privateEndpoints: [ diff --git a/arm/Microsoft.KeyVault/vaults/secrets/.bicep/nested_rbac.bicep b/arm/Microsoft.KeyVault/vaults/secrets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.KeyVault/vaults/secrets/.bicep/nested_rbac.bicep rename to arm/Microsoft.KeyVault/vaults/secrets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.KeyVault/vaults/secrets/deploy.bicep b/arm/Microsoft.KeyVault/vaults/secrets/deploy.bicep index 1918cd7bc5..ceb2663d0b 100644 --- a/arm/Microsoft.KeyVault/vaults/secrets/deploy.bicep +++ b/arm/Microsoft.KeyVault/vaults/secrets/deploy.bicep @@ -61,7 +61,7 @@ resource secret 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = { } } -module secret_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module secret_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Logic/workflows/.bicep/nested_rbac.bicep b/arm/Microsoft.Logic/workflows/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Logic/workflows/.bicep/nested_rbac.bicep rename to arm/Microsoft.Logic/workflows/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Logic/workflows/.parameters/parameters.json b/arm/Microsoft.Logic/workflows/.parameters/parameters.json index 7ead1ba4ba..6436e5c1b7 100644 --- a/arm/Microsoft.Logic/workflows/.parameters/parameters.json +++ b/arm/Microsoft.Logic/workflows/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-lga-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "tags": { "value": {} }, diff --git a/arm/Microsoft.Logic/workflows/deploy.bicep b/arm/Microsoft.Logic/workflows/deploy.bicep index cdd469662f..98cfe8608c 100644 --- a/arm/Microsoft.Logic/workflows/deploy.bicep +++ b/arm/Microsoft.Logic/workflows/deploy.bicep @@ -49,12 +49,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -186,11 +186,11 @@ resource logicApp 'Microsoft.Logic/workflows@2019-05-01' = { } } -resource logicApp_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource logicApp_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${logicApp.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: logicApp } @@ -208,7 +208,7 @@ resource logicApp_diagnosticSettings 'Microsoft.Insights/diagnosticsettings@2021 scope: logicApp } -module logicApp_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module logicApp_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-LogicApp-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Logic/workflows/readme.md b/arm/Microsoft.Logic/workflows/readme.md index ddd7a4991c..a2ecc2e625 100644 --- a/arm/Microsoft.Logic/workflows/readme.md +++ b/arm/Microsoft.Logic/workflows/readme.md @@ -44,7 +44,7 @@ This module deploys a Logic App resource. | `integrationAccount` | object | `{object}` | | The integration account. | | `integrationServiceEnvironment` | object | `{object}` | | The integration service environment. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `state` | string | `'Enabled'` | `[NotSpecified, Completed, Enabled, Disabled, Deleted, Suspended]` | The state. - NotSpecified, Completed, Enabled, Disabled, Deleted, Suspended. | | `systemAssignedIdentity` | bool | `False` | | Enables system assigned managed identity on the resource. | @@ -327,6 +327,9 @@ userAssignedIdentities: { "name": { "value": "<>-az-lga-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "tags": { "value": {} }, @@ -409,6 +412,7 @@ module workflows './Microsoft.Logic/workflows/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workflows' params: { name: '<>-az-lga-x-001' + lock: 'CanNotDelete' tags: {} workflowActions: { HTTP: { diff --git a/arm/Microsoft.MachineLearningServices/workspaces/.bicep/nested_rbac.bicep b/arm/Microsoft.MachineLearningServices/workspaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.MachineLearningServices/workspaces/.bicep/nested_rbac.bicep rename to arm/Microsoft.MachineLearningServices/workspaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json b/arm/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json index c6ecc0756d..d8058a2616 100644 --- a/arm/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json +++ b/arm/Microsoft.MachineLearningServices/workspaces/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-mls-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "sku": { "value": "Basic" }, diff --git a/arm/Microsoft.MachineLearningServices/workspaces/deploy.bicep b/arm/Microsoft.MachineLearningServices/workspaces/deploy.bicep index 0fe12a8f55..3541bb651a 100644 --- a/arm/Microsoft.MachineLearningServices/workspaces/deploy.bicep +++ b/arm/Microsoft.MachineLearningServices/workspaces/deploy.bicep @@ -26,13 +26,13 @@ param associatedApplicationInsightsResourceId string @sys.description('Optional. The resource ID of the associated Container Registry.') param associatedContainerRegistryResourceId string = '' -@allowed([ +@sys.allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @sys.description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @sys.description('Optional. The flag to signal HBI data in the workspace and reduce diagnostic data collected by the service.') param hbiWorkspace bool = false @@ -138,6 +138,8 @@ param publicNetworkAccess string = 'Disabled' // ================// // Variables // // ================// +var enableReferencedModulesTelemetry = false + var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned,UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None') var identity = identityType != 'None' ? { @@ -233,11 +235,11 @@ module workspace_computes 'computes/deploy.bicep' = [for compute in computes: { } }] -resource workspace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource workspace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${workspace.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: workspace } @@ -264,9 +266,9 @@ module workspace_privateEndpoints '../../Microsoft.Network/privateEndpoints/depl name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(workspace.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: workspace.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -275,7 +277,7 @@ module workspace_privateEndpoints '../../Microsoft.Network/privateEndpoints/depl } }] -module workspace_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module workspace_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-MLWorkspace-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.MachineLearningServices/workspaces/readme.md b/arm/Microsoft.MachineLearningServices/workspaces/readme.md index 614dd1a6a0..188a3df2aa 100644 --- a/arm/Microsoft.MachineLearningServices/workspaces/readme.md +++ b/arm/Microsoft.MachineLearningServices/workspaces/readme.md @@ -62,7 +62,7 @@ This module deploys a Machine Learning Services Workspace. | `hbiWorkspace` | bool | `False` | | The flag to signal HBI data in the workspace and reduce diagnostic data collected by the service. | | `imageBuildCompute` | string | `''` | | The compute name for image build. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. | | `publicNetworkAccess` | string | `'Disabled'` | `[Enabled, Disabled]` | Whether requests from Public Network are allowed. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -467,6 +467,9 @@ module workspaces './Microsoft.MachineLearningServices/workspaces/deploy.bicep' "name": { "value": "<>-az-mls-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "sku": { "value": "Basic" }, @@ -590,6 +593,7 @@ module workspaces './Microsoft.MachineLearningServices/workspaces/deploy.bicep' name: '${uniqueString(deployment().name)}-workspaces' params: { name: '<>-az-mls-x-001' + lock: 'CanNotDelete' sku: 'Basic' associatedStorageAccountResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' associatedKeyVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-001' diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_rbac.bicep b/arm/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_rbac.bicep rename to arm/Microsoft.ManagedIdentity/userAssignedIdentities/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json b/arm/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json index 141d57730e..d76c001bb1 100644 --- a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json +++ b/arm/Microsoft.ManagedIdentity/userAssignedIdentities/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-msi-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep b/arm/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep index e60c093e4a..78d3ee9855 100644 --- a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep +++ b/arm/Microsoft.ManagedIdentity/userAssignedIdentities/deploy.bicep @@ -5,12 +5,12 @@ param name string = guid(resourceGroup().id) param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -39,16 +39,16 @@ resource userMsi 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = tags: tags } -resource userMsi_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource userMsi_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${userMsi.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: userMsi } -module userMsi_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module userMsi_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-UserMSI-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md b/arm/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md index caf36b4a9b..519353d644 100644 --- a/arm/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md +++ b/arm/Microsoft.ManagedIdentity/userAssignedIdentities/readme.md @@ -24,7 +24,7 @@ This module deploys a user assigned identity. | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `name` | string | `[guid(resourceGroup().id)]` | | Name of the User Assigned Identity. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -156,6 +156,9 @@ tags: { "name": { "value": "<>-az-msi-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -182,6 +185,7 @@ module userAssignedIdentities './Microsoft.ManagedIdentity/userAssignedIdentitie name: '${uniqueString(deployment().name)}-userAssignedIdentities' params: { name: '<>-az-msi-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Management/managementGroups/.bicep/nested_rbac.bicep b/arm/Microsoft.Management/managementGroups/.bicep/nested_rbac.bicep deleted file mode 100644 index 67d8295aac..0000000000 --- a/arm/Microsoft.Management/managementGroups/.bicep/nested_rbac.bicep +++ /dev/null @@ -1,318 +0,0 @@ -targetScope = 'managementGroup' - -@sys.description('Required. The IDs of the principals to assign the role to') -param principalIds array - -@sys.description('Required. The name of the role to assign. If it cannot be found you can specify the role definition ID instead') -param roleDefinitionIdOrName string - -@sys.description('Required. The resource ID of the resource to apply the role assignment to') -param resourceId string - -@sys.description('Optional. The principal type of the assigned principal ID.') -@allowed([ - 'ServicePrincipal' - 'Group' - 'User' - 'ForeignGroup' - 'Device' - '' -]) -param principalType string = '' - -@sys.description('Optional. The description of the role assignment.') -param description string = '' - -var builtInRoleNames = { - 'AcrPush': '/providers/Microsoft.Authorization/roleDefinitions/8311e382-0749-4cb8-b61a-304f252e45ec' - 'API Management Service Contributor': '/providers/Microsoft.Authorization/roleDefinitions/312a565d-c81f-4fd8-895a-4e21e48d571c' - 'AcrPull': '/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d' - 'AcrImageSigner': '/providers/Microsoft.Authorization/roleDefinitions/6cef56e8-d556-48e5-a04f-b8e64114680f' - 'AcrDelete': '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11' - 'AcrQuarantineReader': '/providers/Microsoft.Authorization/roleDefinitions/cdda3590-29a3-44f6-95f2-9f980659eb04' - 'AcrQuarantineWriter': '/providers/Microsoft.Authorization/roleDefinitions/c8d4ff99-41c3-41a8-9f60-21dfdad59608' - 'API Management Service Operator Role': '/providers/Microsoft.Authorization/roleDefinitions/e022efe7-f5ba-4159-bbe4-b44f577e9b61' - 'API Management Service Reader Role': '/providers/Microsoft.Authorization/roleDefinitions/71522526-b88f-4d52-b57f-d31fc3546d0d' - 'Application Insights Component Contributor': '/providers/Microsoft.Authorization/roleDefinitions/ae349356-3a1b-4a5e-921d-050484c6347e' - 'Application Insights Snapshot Debugger': '/providers/Microsoft.Authorization/roleDefinitions/08954f03-6346-4c2e-81c0-ec3a5cfae23b' - 'Attestation Reader': '/providers/Microsoft.Authorization/roleDefinitions/fd1bd22b-8476-40bc-a0bc-69b95687b9f3' - 'Automation Job Operator': '/providers/Microsoft.Authorization/roleDefinitions/4fe576fe-1146-4730-92eb-48519fa6bf9f' - 'Automation Runbook Operator': '/providers/Microsoft.Authorization/roleDefinitions/5fb5aef8-1081-4b8e-bb16-9d5d0385bab5' - 'Automation Operator': '/providers/Microsoft.Authorization/roleDefinitions/d3881f73-407a-4167-8283-e981cbba0404' - 'Avere Contributor': '/providers/Microsoft.Authorization/roleDefinitions/4f8fab4f-1852-4a58-a46a-8eaf358af14a' - 'Avere Operator': '/providers/Microsoft.Authorization/roleDefinitions/c025889f-8102-4ebf-b32c-fc0c6f0c6bd9' - 'Azure Kubernetes Service Cluster Admin Role': '/providers/Microsoft.Authorization/roleDefinitions/0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8' - 'Azure Kubernetes Service Cluster User Role': '/providers/Microsoft.Authorization/roleDefinitions/4abbcc35-e782-43d8-92c5-2d3f1bd2253f' - 'Azure Maps Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/423170ca-a8f6-4b0f-8487-9e4eb8f49bfa' - 'Azure Stack Registration Owner': '/providers/Microsoft.Authorization/roleDefinitions/6f12a6df-dd06-4f3e-bcb1-ce8be600526a' - 'Backup Contributor': '/providers/Microsoft.Authorization/roleDefinitions/5e467623-bb1f-42f4-a55d-6e525e11384b' - 'Billing Reader': '/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64' - 'Backup Operator': '/providers/Microsoft.Authorization/roleDefinitions/00c29273-979b-4161-815c-10b084fb9324' - 'Backup Reader': '/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912' - 'BizTalk Contributor': '/providers/Microsoft.Authorization/roleDefinitions/5e3c6656-6cfa-4708-81fe-0de47ac73342' - 'CDN Endpoint Contributor': '/providers/Microsoft.Authorization/roleDefinitions/426e0c7f-0c7e-4658-b36f-ff54d6c29b45' - 'CDN Endpoint Reader': '/providers/Microsoft.Authorization/roleDefinitions/871e35f6-b5c1-49cc-a043-bde969a0f2cd' - 'CDN Profile Contributor': '/providers/Microsoft.Authorization/roleDefinitions/ec156ff8-a8d1-4d15-830c-5b80698ca432' - 'CDN Profile Reader': '/providers/Microsoft.Authorization/roleDefinitions/8f96442b-4075-438f-813d-ad51ab4019af' - 'Classic Network Contributor': '/providers/Microsoft.Authorization/roleDefinitions/b34d265f-36f7-4a0d-a4d4-e158ca92e90f' - 'Classic Storage Account Contributor': '/providers/Microsoft.Authorization/roleDefinitions/86e8f5dc-a6e9-4c67-9d15-de283e8eac25' - 'Classic Storage Account Key Operator Service Role': '/providers/Microsoft.Authorization/roleDefinitions/985d6b00-f706-48f5-a6fe-d0ca12fb668d' - 'ClearDB MySQL DB Contributor': '/providers/Microsoft.Authorization/roleDefinitions/9106cda0-8a86-4e81-b686-29a22c54effe' - 'Classic Virtual Machine Contributor': '/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb' - 'Cognitive Services User': '/providers/Microsoft.Authorization/roleDefinitions/a97b65f3-24c7-4388-baec-2e87135dc908' - 'Cognitive Services Contributor': '/providers/Microsoft.Authorization/roleDefinitions/25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68' - 'CosmosBackupOperator': '/providers/Microsoft.Authorization/roleDefinitions/db7b14f2-5adf-42da-9f96-f2ee17bab5cb' - 'Contributor': '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' - 'Cosmos DB Account Reader Role': '/providers/Microsoft.Authorization/roleDefinitions/fbdf93bf-df7d-467e-a4d2-9458aa1360c8' - 'Cost Management Contributor': '/providers/Microsoft.Authorization/roleDefinitions/434105ed-43f6-45c7-a02f-909b2ba83430' - 'Cost Management Reader': '/providers/Microsoft.Authorization/roleDefinitions/72fafb9e-0641-4937-9268-a91bfd8191a3' - 'Data Box Contributor': '/providers/Microsoft.Authorization/roleDefinitions/add466c9-e687-43fc-8d98-dfcf8d720be5' - 'Data Box Reader': '/providers/Microsoft.Authorization/roleDefinitions/028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027' - 'Data Factory Contributor': '/providers/Microsoft.Authorization/roleDefinitions/673868aa-7521-48a0-acc6-0f60742d39f5' - 'Data Purger': '/providers/Microsoft.Authorization/roleDefinitions/150f5e0c-0603-4f03-8c7f-cf70034c4e90' - 'Data Lake Analytics Developer': '/providers/Microsoft.Authorization/roleDefinitions/47b7735b-770e-4598-a7da-8b91488b4c88' - 'DevTest Labs User': '/providers/Microsoft.Authorization/roleDefinitions/76283e04-6283-4c54-8f91-bcf1374a3c64' - 'DocumentDB Account Contributor': '/providers/Microsoft.Authorization/roleDefinitions/5bd9cd88-fe45-4216-938b-f97437e15450' - 'DNS Zone Contributor': '/providers/Microsoft.Authorization/roleDefinitions/befefa01-2a29-4197-83a8-272ff33ce314' - 'EventGrid EventSubscription Contributor': '/providers/Microsoft.Authorization/roleDefinitions/428e0ff0-5e57-4d9c-a221-2c70d0e0a443' - 'EventGrid EventSubscription Reader': '/providers/Microsoft.Authorization/roleDefinitions/2414bbcf-6497-4faf-8c65-045460748405' - 'Graph Owner': '/providers/Microsoft.Authorization/roleDefinitions/b60367af-1334-4454-b71e-769d9a4f83d9' - 'HDInsight Domain Services Contributor': '/providers/Microsoft.Authorization/roleDefinitions/8d8d5a11-05d3-4bda-a417-a08778121c7c' - 'Intelligent Systems Account Contributor': '/providers/Microsoft.Authorization/roleDefinitions/03a6d094-3444-4b3d-88af-7477090a9e5e' - 'Key Vault Contributor': '/providers/Microsoft.Authorization/roleDefinitions/f25e0fa2-a7c8-4377-a976-54943a77a395' - 'Knowledge Consumer': '/providers/Microsoft.Authorization/roleDefinitions/ee361c5d-f7b5-4119-b4b6-892157c8f64c' - 'Lab Creator': '/providers/Microsoft.Authorization/roleDefinitions/b97fb8bc-a8b2-4522-a38b-dd33c7e65ead' - 'Log Analytics Reader': '/providers/Microsoft.Authorization/roleDefinitions/73c42c96-874c-492b-b04d-ab87d138a893' - 'Log Analytics Contributor': '/providers/Microsoft.Authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' - 'Logic App Operator': '/providers/Microsoft.Authorization/roleDefinitions/515c2055-d9d4-4321-b1b9-bd0c9a0f79fe' - 'Logic App Contributor': '/providers/Microsoft.Authorization/roleDefinitions/87a39d53-fc1b-424a-814c-f7e04687dc9e' - 'Managed Application Operator Role': '/providers/Microsoft.Authorization/roleDefinitions/c7393b34-138c-406f-901b-d8cf2b17e6ae' - 'Managed Applications Reader': '/providers/Microsoft.Authorization/roleDefinitions/b9331d33-8a36-4f8c-b097-4f54124fdb44' - 'Managed Identity Operator': '/providers/Microsoft.Authorization/roleDefinitions/f1a07417-d97a-45cb-824c-7a7467783830' - 'Managed Identity Contributor': '/providers/Microsoft.Authorization/roleDefinitions/e40ec5ca-96e0-45a2-b4ff-59039f2c2b59' - 'Management Group Contributor': '/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c' - 'Management Group Reader': '/providers/Microsoft.Authorization/roleDefinitions/ac63b705-f282-497d-ac71-919bf39d939d' - 'Monitoring Metrics Publisher': '/providers/Microsoft.Authorization/roleDefinitions/3913510d-42f4-4e42-8a64-420c390055eb' - 'Monitoring Reader': '/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05' - 'Network Contributor': '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' - 'Monitoring Contributor': '/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' - 'New Relic APM Account Contributor': '/providers/Microsoft.Authorization/roleDefinitions/5d28c62d-5b37-4476-8438-e587778df237' - 'Owner': '/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635' - 'Reader': '/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7' - 'Redis Cache Contributor': '/providers/Microsoft.Authorization/roleDefinitions/e0f68234-74aa-48ed-b826-c38b57376e17' - 'Reader and Data Access': '/providers/Microsoft.Authorization/roleDefinitions/c12c1c16-33a1-487b-954d-41c89c60f349' - 'Resource Policy Contributor': '/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608' - 'Scheduler Job Collections Contributor': '/providers/Microsoft.Authorization/roleDefinitions/188a0f2f-5c9e-469b-ae67-2aa5ce574b94' - 'Search Service Contributor': '/providers/Microsoft.Authorization/roleDefinitions/7ca78c08-252a-4471-8644-bb5ff32d4ba0' - 'Security Admin': '/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd' - 'Security Reader': '/providers/Microsoft.Authorization/roleDefinitions/39bc4728-0917-49c7-9d2c-d95423bc2eb4' - 'Spatial Anchors Account Contributor': '/providers/Microsoft.Authorization/roleDefinitions/8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827' - 'Site Recovery Contributor': '/providers/Microsoft.Authorization/roleDefinitions/6670b86e-a3f7-4917-ac9b-5d6ab1be4567' - 'Site Recovery Operator': '/providers/Microsoft.Authorization/roleDefinitions/494ae006-db33-4328-bf46-533a6560a3ca' - 'Spatial Anchors Account Reader': '/providers/Microsoft.Authorization/roleDefinitions/5d51204f-eb77-4b1c-b86a-2ec626c49413' - 'Site Recovery Reader': '/providers/Microsoft.Authorization/roleDefinitions/dbaa88c4-0c30-4179-9fb3-46319faa6149' - 'Spatial Anchors Account Owner': '/providers/Microsoft.Authorization/roleDefinitions/70bbe301-9835-447d-afdd-19eb3167307c' - 'SQL Managed Instance Contributor': '/providers/Microsoft.Authorization/roleDefinitions/4939a1f6-9ae0-4e48-a1e0-f2cbe897382d' - 'SQL DB Contributor': '/providers/Microsoft.Authorization/roleDefinitions/9b7fa17d-e63e-47b0-bb0a-15c516ac86ec' - 'SQL Security Manager': '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' - 'Storage Account Contributor': '/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab' - 'SQL Server Contributor': '/providers/Microsoft.Authorization/roleDefinitions/6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437' - 'Storage Account Key Operator Service Role': '/providers/Microsoft.Authorization/roleDefinitions/81a9662b-bebf-436f-a333-f67b29880f12' - 'Storage Blob Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe' - 'Storage Blob Data Owner': '/providers/Microsoft.Authorization/roleDefinitions/b7e6dc6d-f1e8-4753-8033-0f276bb0955b' - 'Storage Blob Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1' - 'Storage Queue Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/974c5e8b-45b9-4653-ba55-5f855dd0fb88' - 'Storage Queue Data Message Processor': '/providers/Microsoft.Authorization/roleDefinitions/8a0f0c08-91a1-4084-bc3d-661d67233fed' - 'Storage Queue Data Message Sender': '/providers/Microsoft.Authorization/roleDefinitions/c6a89b2d-59bc-44d0-9896-0f6e12d7b80a' - 'Storage Queue Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/19e7f393-937e-4f77-808e-94535e297925' - 'Support Request Contributor': '/providers/Microsoft.Authorization/roleDefinitions/cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e' - 'Traffic Manager Contributor': '/providers/Microsoft.Authorization/roleDefinitions/a4b10055-b0c7-44c2-b00f-c7b5b3550cf7' - 'Virtual Machine Administrator Login': '/providers/Microsoft.Authorization/roleDefinitions/1c0163c0-47e6-4577-8991-ea5c82e286e4' - 'User Access Administrator': '/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9' - 'Virtual Machine User Login': '/providers/Microsoft.Authorization/roleDefinitions/fb879df8-f326-4884-b1cf-06f3ad86be52' - 'Virtual Machine Contributor': '/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c' - 'Web Plan Contributor': '/providers/Microsoft.Authorization/roleDefinitions/2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b' - 'Website Contributor': '/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772' - 'Azure Service Bus Data Owner': '/providers/Microsoft.Authorization/roleDefinitions/090c5cfd-751d-490a-894a-3ce6f1109419' - 'Azure Event Hubs Data Owner': '/providers/Microsoft.Authorization/roleDefinitions/f526a384-b230-433a-b45c-95f59c4a2dec' - 'Attestation Contributor': '/providers/Microsoft.Authorization/roleDefinitions/bbf86eb8-f7b4-4cce-96e4-18cddf81d86e' - 'HDInsight Cluster Operator': '/providers/Microsoft.Authorization/roleDefinitions/61ed4efc-fab3-44fd-b111-e24485cc132a' - 'Cosmos DB Operator': '/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa' - 'Hybrid Server Resource Administrator': '/providers/Microsoft.Authorization/roleDefinitions/48b40c6e-82e0-4eb3-90d5-19e40f49b624' - 'Hybrid Server Onboarding': '/providers/Microsoft.Authorization/roleDefinitions/5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb' - 'Azure Event Hubs Data Receiver': '/providers/Microsoft.Authorization/roleDefinitions/a638d3c7-ab3a-418d-83e6-5f17a39d4fde' - 'Azure Event Hubs Data Sender': '/providers/Microsoft.Authorization/roleDefinitions/2b629674-e913-4c01-ae53-ef4638d8f975' - 'Azure Service Bus Data Receiver': '/providers/Microsoft.Authorization/roleDefinitions/4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0' - 'Azure Service Bus Data Sender': '/providers/Microsoft.Authorization/roleDefinitions/69a216fc-b8fb-44d8-bc22-1f3c2cd27a39' - 'Storage File Data SMB Share Reader': '/providers/Microsoft.Authorization/roleDefinitions/aba4ae5f-2193-4029-9191-0cb91df5e314' - 'Storage File Data SMB Share Contributor': '/providers/Microsoft.Authorization/roleDefinitions/0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb' - 'Private DNS Zone Contributor': '/providers/Microsoft.Authorization/roleDefinitions/b12aa53e-6015-4669-85d0-8515ebb3ae7f' - 'Storage Blob Delegator': '/providers/Microsoft.Authorization/roleDefinitions/db58b8e5-c6ad-4a2a-8342-4190687cbf4a' - 'Desktop Virtualization User': '/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63' - 'Storage File Data SMB Share Elevated Contributor': '/providers/Microsoft.Authorization/roleDefinitions/a7264617-510b-434b-a828-9731dc254ea7' - 'Blueprint Contributor': '/providers/Microsoft.Authorization/roleDefinitions/41077137-e803-4205-871c-5a86e6a753b4' - 'Blueprint Operator': '/providers/Microsoft.Authorization/roleDefinitions/437d2ced-4a38-4302-8479-ed2bcb43d090' - 'Azure Sentinel Contributor': '/providers/Microsoft.Authorization/roleDefinitions/ab8e14d6-4a74-4a29-9ba8-549422addade' - 'Azure Sentinel Responder': '/providers/Microsoft.Authorization/roleDefinitions/3e150937-b8fe-4cfb-8069-0eaf05ecd056' - 'Azure Sentinel Reader': '/providers/Microsoft.Authorization/roleDefinitions/8d289c81-5878-46d4-8554-54e1e3d8b5cb' - 'Workbook Reader': '/providers/Microsoft.Authorization/roleDefinitions/b279062a-9be3-42a0-92ae-8b3cf002ec4d' - 'Workbook Contributor': '/providers/Microsoft.Authorization/roleDefinitions/e8ddcd69-c73f-4f9f-9844-4100522f16ad' - 'SignalR AccessKey Reader': '/providers/Microsoft.Authorization/roleDefinitions/04165923-9d83-45d5-8227-78b77b0a687e' - 'SignalR/Web PubSub Contributor': '/providers/Microsoft.Authorization/roleDefinitions/8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761' - 'Azure Connected Machine Onboarding': '/providers/Microsoft.Authorization/roleDefinitions/b64e21ea-ac4e-4cdf-9dc9-5b892992bee7' - 'Azure Connected Machine Resource Administrator': '/providers/Microsoft.Authorization/roleDefinitions/cd570a14-e51a-42ad-bac8-bafd67325302' - 'Managed Services Registration assignment Delete Role': '/providers/Microsoft.Authorization/roleDefinitions/91c1777a-f3dc-4fae-b103-61d183457e46' - 'App Configuration Data Owner': '/providers/Microsoft.Authorization/roleDefinitions/5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b' - 'App Configuration Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/516239f1-63e1-4d78-a4de-a74fb236a071' - 'Kubernetes Cluster - Azure Arc Onboarding': '/providers/Microsoft.Authorization/roleDefinitions/34e09817-6cbe-4d01-b1a2-e0eac5743d41' - 'Experimentation Contributor': '/providers/Microsoft.Authorization/roleDefinitions/7f646f1b-fa08-80eb-a22b-edd6ce5c915c' - 'Cognitive Services QnA Maker Reader': '/providers/Microsoft.Authorization/roleDefinitions/466ccd10-b268-4a11-b098-b4849f024126' - 'Cognitive Services QnA Maker Editor': '/providers/Microsoft.Authorization/roleDefinitions/f4cc2bf9-21be-47a1-bdf1-5c5804381025' - 'Experimentation Administrator': '/providers/Microsoft.Authorization/roleDefinitions/7f646f1b-fa08-80eb-a33b-edd6ce5c915c' - 'Remote Rendering Administrator': '/providers/Microsoft.Authorization/roleDefinitions/3df8b902-2a6f-47c7-8cc5-360e9b272a7e' - 'Remote Rendering Client': '/providers/Microsoft.Authorization/roleDefinitions/d39065c4-c120-43c9-ab0a-63eed9795f0a' - 'Managed Application Contributor Role': '/providers/Microsoft.Authorization/roleDefinitions/641177b8-a67a-45b9-a033-47bc880bb21e' - 'Security Assessment Contributor': '/providers/Microsoft.Authorization/roleDefinitions/612c2aa1-cb24-443b-ac28-3ab7272de6f5' - 'Tag Contributor': '/providers/Microsoft.Authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f' - 'Integration Service Environment Developer': '/providers/Microsoft.Authorization/roleDefinitions/c7aa55d3-1abb-444a-a5ca-5e51e485d6ec' - 'Integration Service Environment Contributor': '/providers/Microsoft.Authorization/roleDefinitions/a41e2c5b-bd99-4a07-88f4-9bf657a760b8' - 'Azure Kubernetes Service Contributor Role': '/providers/Microsoft.Authorization/roleDefinitions/ed7f3fbd-7b88-4dd4-9017-9adb7ce333f8' - 'Azure Digital Twins Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/d57506d4-4c8d-48b1-8587-93c323f6a5a3' - 'Azure Digital Twins Data Owner': '/providers/Microsoft.Authorization/roleDefinitions/bcd981a7-7f74-457b-83e1-cceb9e632ffe' - 'Hierarchy Settings Administrator': '/providers/Microsoft.Authorization/roleDefinitions/350f8d15-c687-4448-8ae1-157740a3936d' - 'FHIR Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/5a1fc7df-4bf1-4951-a576-89034ee01acd' - 'FHIR Data Exporter': '/providers/Microsoft.Authorization/roleDefinitions/3db33094-8700-4567-8da5-1501d4e7e843' - 'FHIR Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/4c8d0bbc-75d3-4935-991f-5f3c56d81508' - 'FHIR Data Writer': '/providers/Microsoft.Authorization/roleDefinitions/3f88fce4-5892-4214-ae73-ba5294559913' - 'Experimentation Reader': '/providers/Microsoft.Authorization/roleDefinitions/49632ef5-d9ac-41f4-b8e7-bbe587fa74a1' - 'Object Understanding Account Owner': '/providers/Microsoft.Authorization/roleDefinitions/4dd61c23-6743-42fe-a388-d8bdd41cb745' - 'Azure Maps Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/8f5e0ce6-4f7b-4dcf-bddf-e6f48634a204' - 'Cognitive Services Custom Vision Contributor': '/providers/Microsoft.Authorization/roleDefinitions/c1ff6cc2-c111-46fe-8896-e0ef812ad9f3' - 'Cognitive Services Custom Vision Deployment': '/providers/Microsoft.Authorization/roleDefinitions/5c4089e1-6d96-4d2f-b296-c1bc7137275f' - 'Cognitive Services Custom Vision Labeler': '/providers/Microsoft.Authorization/roleDefinitions/88424f51-ebe7-446f-bc41-7fa16989e96c' - 'Cognitive Services Custom Vision Reader': '/providers/Microsoft.Authorization/roleDefinitions/93586559-c37d-4a6b-ba08-b9f0940c2d73' - 'Cognitive Services Custom Vision Trainer': '/providers/Microsoft.Authorization/roleDefinitions/0a5ae4ab-0d65-4eeb-be61-29fc9b54394b' - 'Key Vault Administrator': '/providers/Microsoft.Authorization/roleDefinitions/00482a5a-887f-4fb3-b363-3b7fe8e74483' - 'Key Vault Crypto Officer': '/providers/Microsoft.Authorization/roleDefinitions/14b46e9e-c2b7-41b4-b07b-48a6ebf60603' - 'Key Vault Crypto User': '/providers/Microsoft.Authorization/roleDefinitions/12338af0-0e69-4776-bea7-57ae8d297424' - 'Key Vault Secrets Officer': '/providers/Microsoft.Authorization/roleDefinitions/b86a8fe4-44ce-4948-aee5-eccb2c155cd7' - 'Key Vault Secrets User': '/providers/Microsoft.Authorization/roleDefinitions/4633458b-17de-408a-b874-0445c86b69e6' - 'Key Vault Certificates Officer': '/providers/Microsoft.Authorization/roleDefinitions/a4417e6f-fecd-4de8-b567-7b0420556985' - 'Key Vault Reader': '/providers/Microsoft.Authorization/roleDefinitions/21090545-7ca7-4776-b22c-e363652d74d2' - 'Key Vault Crypto Service Encryption User': '/providers/Microsoft.Authorization/roleDefinitions/e147488a-f6f5-4113-8e2d-b22465e65bf6' - 'Azure Arc Kubernetes Viewer': '/providers/Microsoft.Authorization/roleDefinitions/63f0a09d-1495-4db4-a681-037d84835eb4' - 'Azure Arc Kubernetes Writer': '/providers/Microsoft.Authorization/roleDefinitions/5b999177-9696-4545-85c7-50de3797e5a1' - 'Azure Arc Kubernetes Cluster Admin': '/providers/Microsoft.Authorization/roleDefinitions/8393591c-06b9-48a2-a542-1bd6b377f6a2' - 'Azure Arc Kubernetes Admin': '/providers/Microsoft.Authorization/roleDefinitions/dffb1e0c-446f-4dde-a09f-99eb5cc68b96' - 'Azure Kubernetes Service RBAC Cluster Admin': '/providers/Microsoft.Authorization/roleDefinitions/b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b' - 'Azure Kubernetes Service RBAC Admin': '/providers/Microsoft.Authorization/roleDefinitions/3498e952-d568-435e-9b2c-8d77e338d7f7' - 'Azure Kubernetes Service RBAC Reader': '/providers/Microsoft.Authorization/roleDefinitions/7f6c6a51-bcf8-42ba-9220-52d62157d7db' - 'Azure Kubernetes Service RBAC Writer': '/providers/Microsoft.Authorization/roleDefinitions/a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb' - 'Services Hub Operator': '/providers/Microsoft.Authorization/roleDefinitions/82200a5b-e217-47a5-b665-6d8765ee745b' - 'Object Understanding Account Reader': '/providers/Microsoft.Authorization/roleDefinitions/d18777c0-1514-4662-8490-608db7d334b6' - 'Azure Arc Enabled Kubernetes Cluster User Role': '/providers/Microsoft.Authorization/roleDefinitions/00493d72-78f6-4148-b6c5-d3ce8e4799dd' - 'SignalR REST API Owner': '/providers/Microsoft.Authorization/roleDefinitions/fd53cd77-2268-407a-8f46-7e7863d0f521' - 'Collaborative Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/daa9e50b-21df-454c-94a6-a8050adab352' - 'Device Update Reader': '/providers/Microsoft.Authorization/roleDefinitions/e9dba6fb-3d52-4cf0-bce3-f06ce71b9e0f' - 'Device Update Administrator': '/providers/Microsoft.Authorization/roleDefinitions/02ca0879-e8e4-47a5-a61e-5c618b76e64a' - 'Device Update Content Administrator': '/providers/Microsoft.Authorization/roleDefinitions/0378884a-3af5-44ab-8323-f5b22f9f3c98' - 'Device Update Deployments Administrator': '/providers/Microsoft.Authorization/roleDefinitions/e4237640-0e3d-4a46-8fda-70bc94856432' - 'Device Update Deployments Reader': '/providers/Microsoft.Authorization/roleDefinitions/49e2f5d2-7741-4835-8efa-19e1fe35e47f' - 'Device Update Content Reader': '/providers/Microsoft.Authorization/roleDefinitions/d1ee9a80-8b14-47f0-bdc2-f4a351625a7b' - 'Cognitive Services Metrics Advisor Administrator': '/providers/Microsoft.Authorization/roleDefinitions/cb43c632-a144-4ec5-977c-e80c4affc34a' - 'Cognitive Services Metrics Advisor User': '/providers/Microsoft.Authorization/roleDefinitions/3b20f47b-3825-43cb-8114-4bd2201156a8' - 'AgFood Platform Service Reader': '/providers/Microsoft.Authorization/roleDefinitions/7ec7ccdc-f61e-41fe-9aaf-980df0a44eba' - 'AgFood Platform Service Contributor': '/providers/Microsoft.Authorization/roleDefinitions/8508508a-4469-4e45-963b-2518ee0bb728' - 'AgFood Platform Service Admin': '/providers/Microsoft.Authorization/roleDefinitions/f8da80de-1ff9-4747-ad80-a19b7f6079e3' - 'Managed HSM contributor': '/providers/Microsoft.Authorization/roleDefinitions/18500a29-7fe2-46b2-a342-b16a415e101d' - 'Security Detonation Chamber Submitter': '/providers/Microsoft.Authorization/roleDefinitions/0b555d9b-b4a7-4f43-b330-627f0e5be8f0' - 'SignalR REST API Reader': '/providers/Microsoft.Authorization/roleDefinitions/ddde6b66-c0df-4114-a159-3618637b3035' - 'SignalR Service Owner': '/providers/Microsoft.Authorization/roleDefinitions/7e4f1700-ea5a-4f59-8f37-079cfe29dce3' - 'Reservation Purchaser': '/providers/Microsoft.Authorization/roleDefinitions/f7b75c60-3036-4b75-91c3-6b41c27c1689' - 'Storage Account Backup Contributor Role': '/providers/Microsoft.Authorization/roleDefinitions/e5e2a7ff-d759-4cd2-bb51-3152d37e2eb1' - 'Experimentation Metric Contributor': '/providers/Microsoft.Authorization/roleDefinitions/6188b7c9-7d01-4f99-a59f-c88b630326c0' - 'Project Babylon Data Curator': '/providers/Microsoft.Authorization/roleDefinitions/9ef4ef9c-a049-46b0-82ab-dd8ac094c889' - 'Project Babylon Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/c8d896ba-346d-4f50-bc1d-7d1c84130446' - 'Project Babylon Data Source Administrator': '/providers/Microsoft.Authorization/roleDefinitions/05b7651b-dc44-475e-b74d-df3db49fae0f' - 'Application Group Contributor': '/providers/Microsoft.Authorization/roleDefinitions/ca6382a4-1721-4bcf-a114-ff0c70227b6b' - 'Desktop Virtualization Reader': '/providers/Microsoft.Authorization/roleDefinitions/49a72310-ab8d-41df-bbb0-79b649203868' - 'Desktop Virtualization Contributor': '/providers/Microsoft.Authorization/roleDefinitions/082f0a83-3be5-4ba1-904c-961cca79b387' - 'Desktop Virtualization Workspace Contributor': '/providers/Microsoft.Authorization/roleDefinitions/21efdde3-836f-432b-bf3d-3e8e734d4b2b' - 'Desktop Virtualization User Session Operator': '/providers/Microsoft.Authorization/roleDefinitions/ea4bfff8-7fb4-485a-aadd-d4129a0ffaa6' - 'Desktop Virtualization Session Host Operator': '/providers/Microsoft.Authorization/roleDefinitions/2ad6aaab-ead9-4eaa-8ac5-da422f562408' - 'Desktop Virtualization Host Pool Reader': '/providers/Microsoft.Authorization/roleDefinitions/ceadfde2-b300-400a-ab7b-6143895aa822' - 'Desktop Virtualization Host Pool Contributor': '/providers/Microsoft.Authorization/roleDefinitions/e307426c-f9b6-4e81-87de-d99efb3c32bc' - 'Desktop Virtualization Application Group Reader': '/providers/Microsoft.Authorization/roleDefinitions/aebf23d0-b568-4e86-b8f9-fe83a2c6ab55' - 'Desktop Virtualization Application Group Contributor': '/providers/Microsoft.Authorization/roleDefinitions/86240b0e-9422-4c43-887b-b61143f32ba8' - 'Desktop Virtualization Workspace Reader': '/providers/Microsoft.Authorization/roleDefinitions/0fa44ee9-7a7d-466b-9bb2-2bf446b1204d' - 'Disk Backup Reader': '/providers/Microsoft.Authorization/roleDefinitions/3e5e47e6-65f7-47ef-90b5-e5dd4d455f24' - 'Disk Restore Operator': '/providers/Microsoft.Authorization/roleDefinitions/b50d9833-a0cb-478e-945f-707fcc997c13' - 'Disk Snapshot Contributor': '/providers/Microsoft.Authorization/roleDefinitions/7efff54f-a5b4-42b5-a1c5-5411624893ce' - 'Microsoft.Kubernetes connected cluster role': '/providers/Microsoft.Authorization/roleDefinitions/5548b2cf-c94c-4228-90ba-30851930a12f' - 'Security Detonation Chamber Submission Manager': '/providers/Microsoft.Authorization/roleDefinitions/a37b566d-3efa-4beb-a2f2-698963fa42ce' - 'Security Detonation Chamber Publisher': '/providers/Microsoft.Authorization/roleDefinitions/352470b3-6a9c-4686-b503-35deb827e500' - 'Collaborative Runtime Operator': '/providers/Microsoft.Authorization/roleDefinitions/7a6f0e70-c033-4fb1-828c-08514e5f4102' - 'CosmosRestoreOperator': '/providers/Microsoft.Authorization/roleDefinitions/5432c526-bc82-444a-b7ba-57c5b0b5b34f' - 'FHIR Data Converter': '/providers/Microsoft.Authorization/roleDefinitions/a1705bd2-3a8f-45a5-8683-466fcfd5cc24' - 'Azure Sentinel Automation Contributor': '/providers/Microsoft.Authorization/roleDefinitions/f4c81013-99ee-4d62-a7ee-b3f1f648599a' - 'Quota Request Operator': '/providers/Microsoft.Authorization/roleDefinitions/0e5f05e5-9ab9-446b-b98d-1e2157c94125' - 'EventGrid Contributor': '/providers/Microsoft.Authorization/roleDefinitions/1e241071-0855-49ea-94dc-649edcd759de' - 'Security Detonation Chamber Reader': '/providers/Microsoft.Authorization/roleDefinitions/28241645-39f8-410b-ad48-87863e2951d5' - 'Object Anchors Account Reader': '/providers/Microsoft.Authorization/roleDefinitions/4a167cdf-cb95-4554-9203-2347fe489bd9' - 'Object Anchors Account Owner': '/providers/Microsoft.Authorization/roleDefinitions/ca0835dd-bacc-42dd-8ed2-ed5e7230d15b' - 'WorkloadBuilder Migration Agent Role': '/providers/Microsoft.Authorization/roleDefinitions/d17ce0a2-0697-43bc-aac5-9113337ab61c' - 'Azure Spring Cloud Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/b5537268-8956-4941-a8f0-646150406f0c' - 'Cognitive Services Speech User': '/providers/Microsoft.Authorization/roleDefinitions/f2dc8367-1007-4938-bd23-fe263f013447' - 'Cognitive Services Speech Contributor': '/providers/Microsoft.Authorization/roleDefinitions/0e75ca1e-0464-4b4d-8b93-68208a576181' - 'Cognitive Services Face Recognizer': '/providers/Microsoft.Authorization/roleDefinitions/9894cab4-e18a-44aa-828b-cb588cd6f2d7' - 'Media Services Account Administrator': '/providers/Microsoft.Authorization/roleDefinitions/054126f8-9a2b-4f1c-a9ad-eca461f08466' - 'Media Services Live Events Administrator': '/providers/Microsoft.Authorization/roleDefinitions/532bc159-b25e-42c0-969e-a1d439f60d77' - 'Media Services Media Operator': '/providers/Microsoft.Authorization/roleDefinitions/e4395492-1534-4db2-bedf-88c14621589c' - 'Media Services Policy Administrator': '/providers/Microsoft.Authorization/roleDefinitions/c4bba371-dacd-4a26-b320-7250bca963ae' - 'Media Services Streaming Endpoints Administrator': '/providers/Microsoft.Authorization/roleDefinitions/99dba123-b5fe-44d5-874c-ced7199a5804' - 'Stream Analytics Query Tester': '/providers/Microsoft.Authorization/roleDefinitions/1ec5b3c1-b17e-4e25-8312-2acb3c3c5abf' - 'AnyBuild Builder': '/providers/Microsoft.Authorization/roleDefinitions/a2138dac-4907-4679-a376-736901ed8ad8' - 'IoT Hub Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/b447c946-2db7-41ec-983d-d8bf3b1c77e3' - 'IoT Hub Twin Contributor': '/providers/Microsoft.Authorization/roleDefinitions/494bdba2-168f-4f31-a0a1-191d2f7c028c' - 'IoT Hub Registry Contributor': '/providers/Microsoft.Authorization/roleDefinitions/4ea46cd5-c1b2-4a8e-910b-273211f9ce47' - 'IoT Hub Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/4fc6c259-987e-4a07-842e-c321cc9d413f' - 'Test Base Reader': '/providers/Microsoft.Authorization/roleDefinitions/15e0f5a1-3450-4248-8e25-e2afe88a9e85' - 'Search Index Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/1407120a-92aa-4202-b7e9-c0e197c71c8f' - 'Search Index Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/8ebe5a00-799e-43f5-93ac-243d3dce84a7' - 'Storage Table Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/76199698-9eea-4c19-bc75-cec21354c6b6' - 'Storage Table Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/0a9a7e1f-b9d0-4cc4-a60d-0319b160aaa3' - 'DICOM Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/e89c7a3c-2f64-4fa1-a847-3e4c9ba4283a' - 'DICOM Data Owner': '/providers/Microsoft.Authorization/roleDefinitions/58a3b984-7adf-4c20-983a-32417c86fbc8' - 'EventGrid Data Sender': '/providers/Microsoft.Authorization/roleDefinitions/d5a91429-5739-47e2-a06b-3470a27159e7' - 'Disk Pool Operator': '/providers/Microsoft.Authorization/roleDefinitions/60fc6e62-5479-42d4-8bf4-67625fcc2840' - 'AzureML Data Scientist': '/providers/Microsoft.Authorization/roleDefinitions/f6c7c914-8db3-469d-8ca1-694a8f32e121' - 'Grafana Admin': '/providers/Microsoft.Authorization/roleDefinitions/22926164-76b3-42b3-bc55-97df8dab3e41' - 'Azure Connected SQL Server Onboarding': '/providers/Microsoft.Authorization/roleDefinitions/e8113dce-c529-4d33-91fa-e9b972617508' - 'Azure Relay Sender': '/providers/Microsoft.Authorization/roleDefinitions/26baccc8-eea7-41f1-98f4-1762cc7f685d' - 'Azure Relay Owner': '/providers/Microsoft.Authorization/roleDefinitions/2787bf04-f1f5-4bfe-8383-c8a24483ee38' - 'Azure Relay Listener': '/providers/Microsoft.Authorization/roleDefinitions/26e0b698-aa6d-4085-9386-aadae190014d' - 'Grafana Viewer': '/providers/Microsoft.Authorization/roleDefinitions/60921a7e-fef1-4a43-9b16-a26c52ad4769' - 'Grafana Editor': '/providers/Microsoft.Authorization/roleDefinitions/a79a5197-3a5c-4973-a920-486035ffd60f' - 'Automation Contributor': '/providers/Microsoft.Authorization/roleDefinitions/f353d9bd-d4a6-484e-a77a-8050b599b867' - 'Kubernetes Extension Contributor': '/providers/Microsoft.Authorization/roleDefinitions/85cb6faf-e071-4c9b-8136-154b5a04f717' - 'Device Provisioning Service Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/10745317-c249-44a1-a5ce-3a4353c0bbd8' - 'Device Provisioning Service Data Contributor': '/providers/Microsoft.Authorization/roleDefinitions/dfce44e4-17b7-4bd1-a6d1-04996ec95633' - 'CodeSigning Certificate Profile Signer': '/providers/Microsoft.Authorization/roleDefinitions/2837e146-70d7-4cfd-ad55-7efa6464f958' - 'Azure Spring Cloud Service Registry Reader': '/providers/Microsoft.Authorization/roleDefinitions/cff1b556-2399-4e7e-856d-a8f754be7b65' - 'Azure Spring Cloud Service Registry Contributor': '/providers/Microsoft.Authorization/roleDefinitions/f5880b48-c26d-48be-b172-7927bfa1c8f1' - 'Azure Spring Cloud Config Server Reader': '/providers/Microsoft.Authorization/roleDefinitions/d04c6db6-4947-4782-9e91-30a88feb7be7' - 'Azure Spring Cloud Config Server Contributor': '/providers/Microsoft.Authorization/roleDefinitions/a06f5c24-21a7-4e1a-aa2b-f19eb6684f5b' - 'Azure VM Managed identities restore Contributor': '/providers/Microsoft.Authorization/roleDefinitions/6ae96244-5829-4925-a7d3-5975537d91dd' - 'Azure Maps Search and Render Data Reader': '/providers/Microsoft.Authorization/roleDefinitions/6be48352-4f82-47c9-ad5e-0acacefdb005' - 'Azure Maps Contributor': '/providers/Microsoft.Authorization/roleDefinitions/dba33070-676a-4fb0-87fa-064dc56ff7fb' -} - -resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = [for principalId in principalIds: { - name: guid(last(split(resourceId, '/')), principalId, roleDefinitionIdOrName) - properties: { - description: description - roleDefinitionId: contains(builtInRoleNames, roleDefinitionIdOrName) ? builtInRoleNames[roleDefinitionIdOrName] : roleDefinitionIdOrName - principalId: principalId - principalType: !empty(principalType) ? any(principalType) : null - } -}] diff --git a/arm/Microsoft.Management/managementGroups/.parameters/parameters.json b/arm/Microsoft.Management/managementGroups/.parameters/parameters.json index 2ecb3b9476..21e2524a5f 100644 --- a/arm/Microsoft.Management/managementGroups/.parameters/parameters.json +++ b/arm/Microsoft.Management/managementGroups/.parameters/parameters.json @@ -10,16 +10,6 @@ }, "parentId": { "value": "<>" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] } } } diff --git a/arm/Microsoft.Management/managementGroups/deploy.bicep b/arm/Microsoft.Management/managementGroups/deploy.bicep index bef5e6561f..932752c182 100644 --- a/arm/Microsoft.Management/managementGroups/deploy.bicep +++ b/arm/Microsoft.Management/managementGroups/deploy.bicep @@ -9,9 +9,6 @@ param displayName string = '' @description('Optional. The management group parent ID. Defaults to current scope.') param parentId string = '' -@description('Optional. Array of role assignment objects to define RBAC on this resource.') -param roleAssignments array = [] - @sys.description('Optional. Location deployment metadata.') param location string = deployment().location @@ -44,18 +41,6 @@ resource managementGroup 'Microsoft.Management/managementGroups@2021-04-01' = { } } -module managementGroup_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { - name: '${uniqueString(deployment().name)}-ManagementGroup-Rbac-${index}' - params: { - description: contains(roleAssignment, 'description') ? roleAssignment.description : '' - principalIds: roleAssignment.principalIds - principalType: contains(roleAssignment, 'principalType') ? roleAssignment.principalType : '' - roleDefinitionIdOrName: roleAssignment.roleDefinitionIdOrName - resourceId: managementGroup.id - } - scope: managementGroup -}] - @description('The name of the management group.') output name string = managementGroup.name diff --git a/arm/Microsoft.Management/managementGroups/readme.md b/arm/Microsoft.Management/managementGroups/readme.md index 9eb3695326..daf4cff70b 100644 --- a/arm/Microsoft.Management/managementGroups/readme.md +++ b/arm/Microsoft.Management/managementGroups/readme.md @@ -19,7 +19,6 @@ This module has some known **limitations**: | Resource Type | API Version | | :-- | :-- | -| `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Management/managementGroups` | [2021-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Management/2021-04-01/managementGroups) | ## Parameters @@ -36,7 +35,6 @@ This module has some known **limitations**: | `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[deployment().location]` | Location deployment metadata. | | `parentId` | string | `''` | The management group parent ID. Defaults to current scope. | -| `roleAssignments` | array | `[]` | Array of role assignment objects to define RBAC on this resource. | ### Parameter Usage: `roleAssignments` @@ -144,16 +142,6 @@ New-AzRoleAssignment -ObjectId $PrincipalID -Scope "/providers/Microsoft.Managem }, "parentId": { "value": "<>" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] } } } @@ -173,14 +161,6 @@ module managementGroups './Microsoft.Management/managementGroups/deploy.bicep' = name: 'testMG' displayName: 'Test MG' parentId: '<>' - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - '<>' - ] - } - ] } ``` diff --git a/arm/Microsoft.NetApp/netAppAccounts/.bicep/nested_rbac.bicep b/arm/Microsoft.NetApp/netAppAccounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/.bicep/nested_rbac.bicep rename to arm/Microsoft.NetApp/netAppAccounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json b/arm/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json index 1e5a91b39d..8718b5fdab 100644 --- a/arm/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json +++ b/arm/Microsoft.NetApp/netAppAccounts/.parameters/nfs3.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-anf-nfs3-001" }, + "lock": { + "value": "CanNotDelete" + }, "capacityPools": { "value": [ { diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_rbac.bicep b/arm/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_rbac.bicep rename to arm/Microsoft.NetApp/netAppAccounts/capacityPools/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep b/arm/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep index 529388c313..0115c75289 100644 --- a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep +++ b/arm/Microsoft.NetApp/netAppAccounts/capacityPools/deploy.bicep @@ -41,7 +41,7 @@ param roleAssignments array = [] @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -87,11 +87,11 @@ module capacityPool_volumes 'volumes/deploy.bicep' = [for (volume, index) in vol subnetResourceId: volume.subnetResourceId exportPolicyRules: contains(volume, 'exportPolicyRules') ? volume.exportPolicyRules : [] roleAssignments: contains(volume, 'roleAssignments') ? volume.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -module capacityPool_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module capacityPool_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_rbac.bicep b/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_rbac.bicep rename to arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep b/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep index efc2a05185..8c4a6eae33 100644 --- a/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep +++ b/arm/Microsoft.NetApp/netAppAccounts/capacityPools/volumes/deploy.bicep @@ -76,7 +76,7 @@ resource volume 'Microsoft.NetApp/netAppAccounts/capacityPools/volumes@2021-06-0 } } -module volume_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module volume_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.NetApp/netAppAccounts/deploy.bicep b/arm/Microsoft.NetApp/netAppAccounts/deploy.bicep index 76f5353940..0a30cf3c68 100644 --- a/arm/Microsoft.NetApp/netAppAccounts/deploy.bicep +++ b/arm/Microsoft.NetApp/netAppAccounts/deploy.bicep @@ -30,12 +30,12 @@ param roleAssignments array = [] param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags for all resources.') param tags object = {} @@ -43,7 +43,7 @@ param tags object = {} @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false var activeDirectoryConnectionProperties = [ { @@ -77,16 +77,16 @@ resource netAppAccount 'Microsoft.NetApp/netAppAccounts@2021-04-01' = { } } -resource netAppAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource netAppAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${netAppAccount.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: netAppAccount } -module netAppAccount_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module netAppAccount_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ANFAccount-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -109,7 +109,7 @@ module netAppAccount_capacityPools 'capacityPools/deploy.bicep' = [for (capacity volumes: contains(capacityPool, 'volumes') ? capacityPool.volumes : [] coolAccess: contains(capacityPool, 'coolAccess') ? capacityPool.coolAccess : false roleAssignments: contains(capacityPool, 'roleAssignments') ? capacityPool.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.NetApp/netAppAccounts/readme.md b/arm/Microsoft.NetApp/netAppAccounts/readme.md index e6c0c88d03..7e92376887 100644 --- a/arm/Microsoft.NetApp/netAppAccounts/readme.md +++ b/arm/Microsoft.NetApp/netAppAccounts/readme.md @@ -37,7 +37,7 @@ This template deploys Azure NetApp Files. | `domainName` | string | `''` | | Fully Qualified Active Directory DNS Domain Name (e.g. 'contoso.com'). | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `smbServerNamePrefix` | string | `''` | | Required if domainName is specified. NetBIOS name of the SMB server. A computer account with this prefix will be registered in the AD and used to mount volumes. | | `tags` | object | `{object}` | | Tags for all resources. | @@ -204,6 +204,9 @@ module netAppAccounts './Microsoft.NetApp/netAppAccounts/deploy.bicep' = { "name": { "value": "<>-az-anf-nfs3-001" }, + "lock": { + "value": "CanNotDelete" + }, "capacityPools": { "value": [ { @@ -307,6 +310,7 @@ module netAppAccounts './Microsoft.NetApp/netAppAccounts/deploy.bicep' = { name: '${uniqueString(deployment().name)}-netAppAccounts' params: { name: '<>-az-anf-nfs3-001' + lock: 'CanNotDelete' capacityPools: [ { name: '<>-az-anfcp-x-001' diff --git a/arm/Microsoft.Network/applicationGateways/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/applicationGateways/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/applicationGateways/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/applicationGateways/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json b/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json index e0a8603a84..f0a3b3a148 100644 --- a/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json +++ b/arm/Microsoft.Network/applicationGateways/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-apgw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "userAssignedIdentities": { "value": { "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} @@ -330,7 +333,7 @@ { "name": "<>-az-apgw-x-001-ssl-certificate", "properties": { - "keyVaultSecretId": "https://adp-<>-az-kv-x-001.vault.azure.net/secrets/applicationGatewaySslCertificate02/40b9b1a7a69e48cfa1e36f24b97b8799" + "keyVaultSecretId": "https://adp-<>-az-kv-x-001.vault.azure.net/secrets/applicationGatewaySslCertificate" } } ] diff --git a/arm/Microsoft.Network/applicationGateways/deploy.bicep b/arm/Microsoft.Network/applicationGateways/deploy.bicep index f5bbb4e76c..feaa45454f 100644 --- a/arm/Microsoft.Network/applicationGateways/deploy.bicep +++ b/arm/Microsoft.Network/applicationGateways/deploy.bicep @@ -236,12 +236,12 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { }] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -320,10 +320,10 @@ resource applicationGateway 'Microsoft.Network/applicationGateways@2021-05-01' = zones: zones } -resource applicationGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource applicationGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${applicationGateway.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: applicationGateway @@ -342,7 +342,7 @@ resource applicationGateway_diagnosticSettingName 'Microsoft.Insights/diagnostic scope: applicationGateway } -module applicationGateway_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module applicationGateway_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AppGateway-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/applicationGateways/readme.md b/arm/Microsoft.Network/applicationGateways/readme.md index 4659236112..fd3b987439 100644 --- a/arm/Microsoft.Network/applicationGateways/readme.md +++ b/arm/Microsoft.Network/applicationGateways/readme.md @@ -55,7 +55,7 @@ This module deploys Network ApplicationGateways. | `httpListeners` | array | `[]` | | Http listeners of the application gateway resource. | | `loadDistributionPolicies` | array | `[]` | | Load distribution policies of the application gateway resource. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateLinkConfigurations` | array | `[]` | | PrivateLink configurations on application gateway. | | `probes` | array | `[]` | | Probes of the application gateway resource. | | `redirectConfigurations` | array | `[]` | | Redirect configurations of the application gateway resource. | @@ -236,6 +236,9 @@ userAssignedIdentities: { "name": { "value": "<>-az-apgw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "userAssignedIdentities": { "value": { "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} @@ -561,7 +564,7 @@ userAssignedIdentities: { { "name": "<>-az-apgw-x-001-ssl-certificate", "properties": { - "keyVaultSecretId": "https://adp-<>-az-kv-x-001.vault.azure.net/secrets/applicationGatewaySslCertificate02/40b9b1a7a69e48cfa1e36f24b97b8799" + "keyVaultSecretId": "https://adp-<>-az-kv-x-001.vault.azure.net/secrets/applicationGatewaySslCertificate" } } ] @@ -607,6 +610,7 @@ module applicationGateways './Microsoft.Network/applicationGateways/deploy.bicep name: '${uniqueString(deployment().name)}-applicationGateways' params: { name: '<>-az-apgw-x-001' + lock: 'CanNotDelete' userAssignedIdentities: { '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } @@ -905,7 +909,7 @@ module applicationGateways './Microsoft.Network/applicationGateways/deploy.bicep { name: '<>-az-apgw-x-001-ssl-certificate' properties: { - keyVaultSecretId: 'https://adp-<>-az-kv-x-001.vault.azure.net/secrets/applicationGatewaySslCertificate02/40b9b1a7a69e48cfa1e36f24b97b8799' + keyVaultSecretId: 'https://adp-<>-az-kv-x-001.vault.azure.net/secrets/applicationGatewaySslCertificate' } } ] diff --git a/arm/Microsoft.Network/applicationSecurityGroups/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/applicationSecurityGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/applicationSecurityGroups/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/applicationSecurityGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json b/arm/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json index f740e20b42..8bfef178fc 100644 --- a/arm/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json +++ b/arm/Microsoft.Network/applicationSecurityGroups/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-asg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Network/applicationSecurityGroups/deploy.bicep b/arm/Microsoft.Network/applicationSecurityGroups/deploy.bicep index 844e47bb2f..9c7a9f103a 100644 --- a/arm/Microsoft.Network/applicationSecurityGroups/deploy.bicep +++ b/arm/Microsoft.Network/applicationSecurityGroups/deploy.bicep @@ -5,12 +5,12 @@ param name string param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -40,16 +40,16 @@ resource applicationSecurityGroup 'Microsoft.Network/applicationSecurityGroups@2 properties: {} } -resource applicationSecurityGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource applicationSecurityGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${applicationSecurityGroup.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: applicationSecurityGroup } -module applicationSecurityGroup_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module applicationSecurityGroup_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AppSecurityGroup-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/applicationSecurityGroups/readme.md b/arm/Microsoft.Network/applicationSecurityGroups/readme.md index 607c3f0b12..fb0b37c7e4 100644 --- a/arm/Microsoft.Network/applicationSecurityGroups/readme.md +++ b/arm/Microsoft.Network/applicationSecurityGroups/readme.md @@ -29,7 +29,7 @@ This module deploys an application security group. | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -159,6 +159,9 @@ roleAssignments: [ "name": { "value": "<>-az-asg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -185,6 +188,7 @@ module applicationSecurityGroups './Microsoft.Network/applicationSecurityGroups/ name: '${uniqueString(deployment().name)}-applicationSecurityGroups' params: { name: '<>-az-asg-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Network/azureFirewalls/.bicep/nested_publicIPAddress.bicep b/arm/Microsoft.Network/azureFirewalls/.bicep/nested_publicIPAddress.bicep deleted file mode 100644 index ff4716af59..0000000000 --- a/arm/Microsoft.Network/azureFirewalls/.bicep/nested_publicIPAddress.bicep +++ /dev/null @@ -1,161 +0,0 @@ -@description('Required. The name of the Public IP Address') -param name string - -@description('Optional. Resource ID of the Public IP Prefix object. This is only needed if you want your Public IPs created in a PIP Prefix.') -param publicIPPrefixResourceId string = '' - -@description('Optional. The public IP address allocation method. - Static or Dynamic.') -param publicIPAllocationMethod string = 'Dynamic' - -@description('Optional. Zone numbers e.g. 1,2,3.') -param zones array = [ - '1' - '2' - '3' -] - -@description('Optional. Public IP Address sku Name') -param skuName string = 'Basic' - -@description('Optional. Public IP Address pricing tier') -param skuTier string = 'Regional' - -@description('Optional. Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely.') -@minValue(0) -@maxValue(365) -param diagnosticLogsRetentionInDays int = 365 - -@description('Optional. Resource ID of the diagnostic storage account.') -param diagnosticStorageAccountId string = '' - -@description('Optional. Resource identifier of log analytics.') -param diagnosticWorkspaceId string = '' - -@description('Optional. Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to.') -param diagnosticEventHubAuthorizationRuleId string = '' - -@description('Optional. Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category.') -param diagnosticEventHubName string = '' - -@allowed([ - 'CanNotDelete' - 'NotSpecified' - 'ReadOnly' -]) -@description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' - -@description('Optional. Location for all resources.') -param location string = resourceGroup().location - -@description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'') -param roleAssignments array = [] - -@description('Optional. Tags of the resource.') -param tags object = {} - -@description('Optional. The name of logs that will be streamed.') -@allowed([ - 'DDoSProtectionNotifications' - 'DDoSMitigationFlowLogs' - 'DDoSMitigationReports' -]) -param diagnosticLogCategoriesToEnable array = [ - 'DDoSProtectionNotifications' - 'DDoSMitigationFlowLogs' - 'DDoSMitigationReports' -] - -@description('Optional. The name of metrics that will be streamed.') -@allowed([ - 'AllMetrics' -]) -param diagnosticMetricsToEnable array = [ - 'AllMetrics' -] - -@description('Optional. The name of the diagnostic setting, if deployed.') -param diagnosticSettingsName string = '${name}-diagnosticSettings' - -var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { - category: category - enabled: true - retentionPolicy: { - enabled: true - days: diagnosticLogsRetentionInDays - } -}] - -var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { - category: metric - timeGrain: null - enabled: true - retentionPolicy: { - enabled: true - days: diagnosticLogsRetentionInDays - } -}] - -var publicIPPrefix = { - id: publicIPPrefixResourceId -} - -resource publicIpAddress 'Microsoft.Network/publicIPAddresses@2021-05-01' = { - name: name - location: location - tags: tags - sku: { - name: skuName - tier: skuTier - } - properties: { - publicIPAddressVersion: 'IPv4' - publicIPAllocationMethod: publicIPAllocationMethod - publicIPPrefix: !empty(publicIPPrefixResourceId) ? publicIPPrefix : null - idleTimeoutInMinutes: 4 - ipTags: [] - } - zones: length(zones) == 0 ? null : zones -} - -resource publicIpAddress_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { - name: '${publicIpAddress.name}-${lock}-lock' - properties: { - level: lock - notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' - } - scope: publicIpAddress -} - -resource publicIpAddress_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (!empty(diagnosticStorageAccountId) || !empty(diagnosticWorkspaceId) || !empty(diagnosticEventHubAuthorizationRuleId) || !empty(diagnosticEventHubName)) { - name: diagnosticSettingsName - properties: { - storageAccountId: !empty(diagnosticStorageAccountId) ? diagnosticStorageAccountId : null - workspaceId: !empty(diagnosticWorkspaceId) ? diagnosticWorkspaceId : null - eventHubAuthorizationRuleId: !empty(diagnosticEventHubAuthorizationRuleId) ? diagnosticEventHubAuthorizationRuleId : null - eventHubName: !empty(diagnosticEventHubName) ? diagnosticEventHubName : null - metrics: diagnosticsMetrics - logs: diagnosticsLogs - } - scope: publicIpAddress -} - -module publicIpAddress_rbac 'nested_publicIPAddress_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { - name: '${deployment().name}-rbac-${index}' - params: { - description: contains(roleAssignment, 'description') ? roleAssignment.description : '' - principalIds: roleAssignment.principalIds - principalType: contains(roleAssignment, 'principalType') ? roleAssignment.principalType : '' - roleDefinitionIdOrName: roleAssignment.roleDefinitionIdOrName - resourceId: publicIpAddress.id - } -}] - -@description('The resource group the public IP address was deployed into') -output resourceGroupName string = resourceGroup().name - -@description('The name of the public IP address') -output name string = publicIpAddress.name - -@description('The resource ID of the public IP address') -output resourceId string = publicIpAddress.id diff --git a/arm/Microsoft.Network/azureFirewalls/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/azureFirewalls/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/azureFirewalls/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/azureFirewalls/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/azureFirewalls/.parameters/parameters.json b/arm/Microsoft.Network/azureFirewalls/.parameters/parameters.json index 8987b8a8ef..6f0a85edea 100644 --- a/arm/Microsoft.Network/azureFirewalls/.parameters/parameters.json +++ b/arm/Microsoft.Network/azureFirewalls/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-fw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "zones": { "value": [ "1", diff --git a/arm/Microsoft.Network/azureFirewalls/deploy.bicep b/arm/Microsoft.Network/azureFirewalls/deploy.bicep index def11ea777..4f80e3e552 100644 --- a/arm/Microsoft.Network/azureFirewalls/deploy.bicep +++ b/arm/Microsoft.Network/azureFirewalls/deploy.bicep @@ -78,12 +78,12 @@ param diagnosticEventHubName string = '' param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -131,6 +131,7 @@ var additionalPublicIpConfigurations_var = [for ipConfiguration in additionalPub // 1. Use existing public ip // 2. Use new public ip created in this module // 3. Do not use a public ip if isCreateDefaultPublicIP is false + var subnet_var = { subnet: { id: '${vNetId}/subnets/AzureFirewallSubnet' // The subnet name must be AzureFirewallSubnet @@ -148,12 +149,12 @@ var newPip = { } var ipConfigurations = concat([ - { - name: 'IpConfAzureFirewallSubnet' - //Use existing public ip, new public ip created in this module, or none if isCreateDefaultPublicIP is false - properties: union(subnet_var, !empty(azureFirewallSubnetPublicIpId) ? existingPip : {}, (isCreateDefaultPublicIP ? newPip : {})) - } -], additionalPublicIpConfigurations_var) + { + name: 'IpConfAzureFirewallSubnet' + //Use existing public ip, new public ip created in this module, or none if isCreateDefaultPublicIP is false + properties: union(subnet_var, !empty(azureFirewallSubnetPublicIpId) ? existingPip : {}, (isCreateDefaultPublicIP ? newPip : {})) + } + ], additionalPublicIpConfigurations_var) // ---------------------------------------------------------------------------- @@ -189,7 +190,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } // create a public ip address if one is not provided and the flag is true -module publicIPAddress '.bicep/nested_publicIPAddress.bicep' = if (empty(azureFirewallSubnetPublicIpId) && isCreateDefaultPublicIP) { +module publicIPAddress '../../Microsoft.Network/publicIPAddresses/deploy.bicep' = if (empty(azureFirewallSubnetPublicIpId) && isCreateDefaultPublicIP) { name: '${uniqueString(deployment().name, location)}-Firewall-PIP' params: { name: contains(publicIPAddressObject, 'name') ? (!(empty(publicIPAddressObject.name)) ? publicIPAddressObject.name : '${name}-pip') : '${name}-pip' @@ -245,10 +246,10 @@ resource azureFirewall 'Microsoft.Network/azureFirewalls@2021-05-01' = { } } -resource azureFirewall_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource azureFirewall_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${azureFirewall.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: azureFirewall @@ -267,7 +268,7 @@ resource azureFirewall_diagnosticSettings 'Microsoft.Insights/diagnosticSettings scope: azureFirewall } -module azureFirewall_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module azureFirewall_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AzFW-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/azureFirewalls/readme.md b/arm/Microsoft.Network/azureFirewalls/readme.md index f7f7ce6449..c88446cc56 100644 --- a/arm/Microsoft.Network/azureFirewalls/readme.md +++ b/arm/Microsoft.Network/azureFirewalls/readme.md @@ -48,7 +48,7 @@ This module deploys a firewall. | `firewallPolicyId` | string | `''` | | Resource ID of the Firewall Policy that should be attached. | | `isCreateDefaultPublicIP` | bool | `True` | | Specifies if a public ip should be created by default if one is not provided. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `natRuleCollections` | array | `[]` | | Collection of NAT rule collections used by Azure Firewall. | | `networkRuleCollections` | array | `[]` | | Collection of network rule collections used by Azure Firewall. | | `publicIPAddressObject` | object | `{object}` | | Specifies the properties of the public IP to create and be used by Azure Firewall. If it's not provided and publicIPAddressId is empty, a '-pip' suffix will be appended to the Firewall's name. | @@ -495,6 +495,9 @@ module azureFirewalls './Microsoft.Network/azureFirewalls/deploy.bicep' = { "name": { "value": "<>-az-fw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "zones": { "value": [ "1", @@ -634,6 +637,7 @@ module azureFirewalls './Microsoft.Network/azureFirewalls/deploy.bicep' = { name: '${uniqueString(deployment().name)}-azureFirewalls' params: { name: '<>-az-fw-x-001' + lock: 'CanNotDelete' zones: [ '1' '2' diff --git a/arm/Microsoft.Network/bastionHosts/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/bastionHosts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/bastionHosts/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/bastionHosts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json b/arm/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json new file mode 100644 index 0000000000..7c82650737 --- /dev/null +++ b/arm/Microsoft.Network/bastionHosts/.parameters/addpip.parameters.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-bas-add-001" + }, + "vNetId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-add-bas" + }, + "additionalPublicIpConfigurations": { + "value": [ + { + "name": "ipConfig01", + "publicIPAddressResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-additional-bas" + } + ] + } + } +} diff --git a/arm/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json b/arm/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json new file mode 100644 index 0000000000..dbb195e70f --- /dev/null +++ b/arm/Microsoft.Network/bastionHosts/.parameters/custompip.parameters.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-bas-custompip-001" + }, + "vNetId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-custompip-bas" + }, + "publicIPAddressObject": { + "value": { + "name": "adp-<>-az-pip-custom-x-bas", + "publicIPPrefixResourceId": "", + "publicIPAllocationMethod": "Static", + "skuName": "Standard", + "skuTier": "Regional", + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ], + "diagnosticMetricsToEnable": [ + "AllMetrics" + ], + "diagnosticLogCategoriesToEnable": [ + "DDoSProtectionNotifications", + "DDoSMitigationFlowLogs", + "DDoSMitigationReports" + ] + } + } + } +} diff --git a/arm/Microsoft.Network/bastionHosts/.parameters/parameters.json b/arm/Microsoft.Network/bastionHosts/.parameters/parameters.json index 144dfd3e00..0f0cf18c07 100644 --- a/arm/Microsoft.Network/bastionHosts/.parameters/parameters.json +++ b/arm/Microsoft.Network/bastionHosts/.parameters/parameters.json @@ -5,10 +5,13 @@ "name": { "value": "<>-az-bas-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "vNetId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001" }, - "publicIPAddressResourceId": { + "azureBastionSubnetPublicIpId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-bas" }, "skuType": { diff --git a/arm/Microsoft.Network/bastionHosts/deploy.bicep b/arm/Microsoft.Network/bastionHosts/deploy.bicep index 542b69ba1b..be8b1ee09a 100644 --- a/arm/Microsoft.Network/bastionHosts/deploy.bicep +++ b/arm/Microsoft.Network/bastionHosts/deploy.bicep @@ -7,8 +7,14 @@ param location string = resourceGroup().location @description('Required. Shared services Virtual Network resource identifier.') param vNetId string -@description('Optional. Specifies the resource ID of the existing public IP to be leveraged by Azure Bastion.') -param publicIPAddressResourceId string = '' +@description('Optional. The public ip resource ID to associate to the azureBastionSubnet. If empty, then the public ip that is created as part of this module will be applied to the azureBastionSubnet.') +param azureBastionSubnetPublicIpId string = '' + +@description('Optional. This is to add any additional public ip configurations on top of the public ip with subnet ip configuration.') +param additionalPublicIpConfigurations array = [] + +@description('Optional. Specifies if a public ip should be created by default if one is not provided.') +param isCreateDefaultPublicIP bool = true @description('Optional. Specifies the properties of the public IP to create and be used by Azure Bastion. If it\'s not provided and publicIPAddressResourceId is empty, a \'-pip\' suffix will be appended to the Bastion\'s name.') param publicIPAddressObject object = {} @@ -31,12 +37,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @allowed([ 'Basic' @@ -79,6 +85,46 @@ var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { var scaleUnits_var = skuType == 'Basic' ? 2 : scaleUnits +var additionalPublicIpConfigurations_var = [for ipConfiguration in additionalPublicIpConfigurations: { + name: ipConfiguration.name + properties: { + publicIPAddress: contains(ipConfiguration, 'publicIPAddressResourceId') ? { + id: ipConfiguration.publicIPAddressResourceId + } : null + } +}] + +// ---------------------------------------------------------------------------- +// Prep ipConfigurations object AzureBastionSubnet for different uses cases: +// 1. Use existing public ip +// 2. Use new public ip created in this module +// 3. Do not use a public ip if isCreateDefaultPublicIP is false +var subnet_var = { + subnet: { + id: '${vNetId}/subnets/AzureBastionSubnet' // The subnet name must be AzureBastionSubnet + } +} +var existingPip = { + publicIPAddress: { + id: azureBastionSubnetPublicIpId + } +} +var newPip = { + publicIPAddress: (empty(azureBastionSubnetPublicIpId) && isCreateDefaultPublicIP) ? { + id: publicIPAddress.outputs.resourceId + } : null +} + +var ipConfigurations = concat([ + { + name: 'IpConfAzureBastionSubnet' + //Use existing public ip, new public ip created in this module, or none if isCreateDefaultPublicIP is false + properties: union(subnet_var, !empty(azureBastionSubnetPublicIpId) ? existingPip : {}, (isCreateDefaultPublicIP ? newPip : {})) + } +], additionalPublicIpConfigurations_var) + +// ---------------------------------------------------------------------------- + resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' properties: { @@ -91,12 +137,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource publicIPAddressExisting 'Microsoft.Network/publicIPAddresses@2021-05-01' existing = if (!empty(publicIPAddressResourceId)) { - name: last(split(publicIPAddressResourceId, '/')) - scope: resourceGroup(split(publicIPAddressResourceId, '/')[2], split(publicIPAddressResourceId, '/')[4]) -} - -module publicIPAddress '../publicIPAddresses/deploy.bicep' = if (empty(publicIPAddressResourceId)) { +module publicIPAddress '../publicIPAddresses/deploy.bicep' = if (empty(azureBastionSubnetPublicIpId) && isCreateDefaultPublicIP) { name: '${uniqueString(deployment().name, location)}-Bastion-PIP' params: { name: contains(publicIPAddressObject, 'name') ? publicIPAddressObject.name : '${name}-pip' @@ -136,26 +177,14 @@ resource azureBastion 'Microsoft.Network/bastionHosts@2021-05-01' = { } properties: { scaleUnits: scaleUnits_var - ipConfigurations: [ - { - name: 'IpConf' - properties: { - subnet: { - id: '${vNetId}/subnets/AzureBastionSubnet' - } - publicIPAddress: { - id: !empty(publicIPAddressResourceId) ? publicIPAddressResourceId : publicIPAddress.outputs.resourceId - } - } - } - ] + ipConfigurations: ipConfigurations } } -resource azureBastion_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource azureBastion_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${azureBastion.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: azureBastion @@ -173,7 +202,7 @@ resource azureBastion_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@ scope: azureBastion } -module azureBastion_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module azureBastion_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Bastion-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -195,3 +224,6 @@ output resourceId string = azureBastion.id @description('The location the resource was deployed into.') output location string = azureBastion.location + +@description('The public ipconfiguration object for the AzureBastionSubnet.') +output ipConfAzureBastionSubnet object = azureBastion.properties.ipConfigurations[0] diff --git a/arm/Microsoft.Network/bastionHosts/readme.md b/arm/Microsoft.Network/bastionHosts/readme.md index 06da945085..b948f83625 100644 --- a/arm/Microsoft.Network/bastionHosts/readme.md +++ b/arm/Microsoft.Network/bastionHosts/readme.md @@ -30,6 +30,8 @@ This module deploys a bastion host. **Optional parameters** | Parameter Name | Type | Default Value | Allowed Values | Description | | :-- | :-- | :-- | :-- | :-- | +| `additionalPublicIpConfigurations` | array | `[]` | | This is to add any additional public ip configurations on top of the public ip with subnet ip configuration. | +| `azureBastionSubnetPublicIpId` | string | `''` | | The public ip resource ID to associate to the azureBastionSubnet. If empty, then the public ip that is created as part of this module will be applied to the azureBastionSubnet. | | `diagnosticEventHubAuthorizationRuleId` | string | `''` | | Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to. | | `diagnosticEventHubName` | string | `''` | | Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category. | | `diagnosticLogCategoriesToEnable` | array | `[BastionAuditLogs]` | `[BastionAuditLogs]` | Optional. The name of bastion logs that will be streamed. | @@ -38,16 +40,137 @@ This module deploys a bastion host. | `diagnosticStorageAccountId` | string | `''` | | Resource ID of the diagnostic storage account. | | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `isCreateDefaultPublicIP` | bool | `True` | | Specifies if a public ip should be created by default if one is not provided. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `publicIPAddressObject` | object | `{object}` | | Specifies the properties of the public IP to create and be used by Azure Bastion. If it's not provided and publicIPAddressResourceId is empty, a '-pip' suffix will be appended to the Bastion's name. | -| `publicIPAddressResourceId` | string | `''` | | Specifies the resource ID of the existing public IP to be leveraged by Azure Bastion. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `scaleUnits` | int | `2` | | The scale units for the Bastion Host resource. | | `skuType` | string | `'Basic'` | `[Basic, Standard]` | The SKU of this Bastion Host. | | `tags` | object | `{object}` | | Tags of the resource. | +### Parameter Usage: `additionalPublicIpConfigurations` + +Create additional public ip configurations from existing public ips + +

    + +Parameter JSON format + +```json +"additionalPublicIpConfigurations": { + "value": [ + { + "name": "ipConfig01", + "publicIPAddressResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-fw-01" + }, + { + "name": "ipConfig02", + "publicIPAddressResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-fw-02" + } + ] +} +``` + +
    + +
    + +Bicep format + +```bicep +additionalPublicIpConfigurations: [ + { + name: 'ipConfig01' + publicIPAddressResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-fw-01' + } + { + name: 'ipConfig02' + publicIPAddressResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-fw-02' + } +] +``` + +
    + + +### Parameter Usage: `publicIPAddressObject` + +The Public IP Address object to create as part of the module. This will be created if `isCreateDefaultPublicIP` is true (which it is by default). If not provided, the name and other configurations will be set by default. + + +
    + +Parameter JSON format + +```json +"publicIPAddressObject": { + "value": { + "name": "adp-<>-az-pip-custom-x-fw", + "publicIPPrefixResourceId": "", + "publicIPAllocationMethod": "Static", + "skuName": "Standard", + "skuTier": "Regional", + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ], + "diagnosticMetricsToEnable": [ + "AllMetrics" + ], + "diagnosticLogCategoriesToEnable": [ + "DDoSProtectionNotifications", + "DDoSMitigationFlowLogs", + "DDoSMitigationReports" + ] + } +} +``` + +
    + + + +
    + +Bicep format + + +```bicep +publicIPAddressObject: { + name: 'mypip' + publicIPPrefixResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPPrefixes/myprefix' + publicIPAllocationMethod: 'Dynamic' + skuName: 'Basic' + skuTier: 'Regional' + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + '<>' + ] + } + ] + diagnosticMetricsToEnable: [ + 'AllMetrics' + ] + diagnosticLogCategoriesToEnable: [ + 'DDoSProtectionNotifications' + 'DDoSMitigationFlowLogs' + 'DDoSMitigationReports' + ] +} +``` + +
    + + + ### Parameter Usage: `tags` Tag names and tag values can be provided as needed. A tag can be left without a value. @@ -152,6 +275,7 @@ roleAssignments: [ | Output Name | Type | Description | | :-- | :-- | :-- | +| `ipConfAzureBastionSubnet` | object | The public ipconfiguration object for the AzureBastionSubnet. | | `location` | string | The location the resource was deployed into. | | `name` | string | The name the Azure Bastion. | | `resourceGroupName` | string | The resource group the Azure Bastion was deployed into. | @@ -165,6 +289,148 @@ roleAssignments: [ via JSON Parameter file +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-bas-add-001" + }, + "vNetId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-add-bas" + }, + "additionalPublicIpConfigurations": { + "value": [ + { + "name": "ipConfig01", + "publicIPAddressResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-additional-bas" + } + ] + } + } +} + +``` + + + +
    + +via Bicep module + +```bicep +module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-bastionHosts' + params: { + name: '<>-az-bas-add-001' + vNetId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-add-bas' + additionalPublicIpConfigurations: [ + { + name: 'ipConfig01' + publicIPAddressResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-additional-bas' + } + ] + } +``` + +
    +

    + +

    Example 2

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-bas-custompip-001" + }, + "vNetId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-custompip-bas" + }, + "publicIPAddressObject": { + "value": { + "name": "adp-<>-az-pip-custom-x-bas", + "publicIPPrefixResourceId": "", + "publicIPAllocationMethod": "Static", + "skuName": "Standard", + "skuTier": "Regional", + "roleAssignments": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ], + "diagnosticMetricsToEnable": [ + "AllMetrics" + ], + "diagnosticLogCategoriesToEnable": [ + "DDoSProtectionNotifications", + "DDoSMitigationFlowLogs", + "DDoSMitigationReports" + ] + } + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-bastionHosts' + params: { + name: '<>-az-bas-custompip-001' + vNetId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-custompip-bas' + publicIPAddressObject: { + name: 'adp-<>-az-pip-custom-x-bas' + publicIPPrefixResourceId: '' + publicIPAllocationMethod: 'Static' + skuName: 'Standard' + skuTier: 'Regional' + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + '<>' + ] + } + ] + diagnosticMetricsToEnable: [ + 'AllMetrics' + ] + diagnosticLogCategoriesToEnable: [ + 'DDoSProtectionNotifications' + 'DDoSMitigationFlowLogs' + 'DDoSMitigationReports' + ] + } + } +``` + +
    +

    + +

    Example 3

    + +
    + +via JSON Parameter file + ```json { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", @@ -199,7 +465,7 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = {

    -

    Example 2

    +

    Example 4

    @@ -213,10 +479,13 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { "name": { "value": "<>-az-bas-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "vNetId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001" }, - "publicIPAddressResourceId": { + "azureBastionSubnetPublicIpId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-bas" }, "skuType": { @@ -266,8 +535,9 @@ module bastionHosts './Microsoft.Network/bastionHosts/deploy.bicep' = { name: '${uniqueString(deployment().name)}-bastionHosts' params: { name: '<>-az-bas-x-001' + lock: 'CanNotDelete' vNetId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001' - publicIPAddressResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-bas' + azureBastionSubnetPublicIpId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/publicIPAddresses/adp-<>-az-pip-x-bas' skuType: 'Standard' scaleUnits: 4 roleAssignments: [ diff --git a/arm/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json b/arm/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json index b1734ef616..c58d1a4593 100644 --- a/arm/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json +++ b/arm/Microsoft.Network/connections/.parameters/vnet2vnet.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-vnetgwc-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "virtualNetworkGateway1": { "value": { "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworkGateways/<>-az-vnet-vpn-gw-p-001" diff --git a/arm/Microsoft.Network/connections/deploy.bicep b/arm/Microsoft.Network/connections/deploy.bicep index cece8af8ab..d5e2464990 100644 --- a/arm/Microsoft.Network/connections/deploy.bicep +++ b/arm/Microsoft.Network/connections/deploy.bicep @@ -38,12 +38,12 @@ param customIPSecPolicy object = { param routingWeight int = -1 @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -106,10 +106,10 @@ resource connection 'Microsoft.Network/connections@2021-05-01' = { } } -resource connection_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource connection_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${connection.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: connection diff --git a/arm/Microsoft.Network/connections/readme.md b/arm/Microsoft.Network/connections/readme.md index 12042da437..1aa105ca5c 100644 --- a/arm/Microsoft.Network/connections/readme.md +++ b/arm/Microsoft.Network/connections/readme.md @@ -32,7 +32,7 @@ This template deploys a virtual network gateway connection. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `localNetworkGateway2` | object | `{object}` | | The local network gateway. Used for connection type [IPsec]. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `peer` | object | `{object}` | | The remote peer. Used for connection type [ExpressRoute]. | | `routingWeight` | int | `-1` | | The weight added to routes learned from this BGP speaker. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -318,6 +318,9 @@ tags: { "name": { "value": "<>-az-vnetgwc-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "virtualNetworkGateway1": { "value": { "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworkGateways/<>-az-vnet-vpn-gw-p-001" @@ -366,6 +369,7 @@ module connections './Microsoft.Network/connections/deploy.bicep' = { name: '${uniqueString(deployment().name)}-connections' params: { name: '<>-az-vnetgwc-x-001' + lock: 'CanNotDelete' virtualNetworkGateway1: { id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworkGateways/<>-az-vnet-vpn-gw-p-001' } diff --git a/arm/Microsoft.Network/ddosProtectionPlans/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/ddosProtectionPlans/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/ddosProtectionPlans/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/ddosProtectionPlans/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json b/arm/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json index 3d697dee91..fe639affc6 100644 --- a/arm/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json +++ b/arm/Microsoft.Network/ddosProtectionPlans/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-ddos-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Network/ddosProtectionPlans/deploy.bicep b/arm/Microsoft.Network/ddosProtectionPlans/deploy.bicep index a1006d95f9..55550d003f 100644 --- a/arm/Microsoft.Network/ddosProtectionPlans/deploy.bicep +++ b/arm/Microsoft.Network/ddosProtectionPlans/deploy.bicep @@ -6,12 +6,12 @@ param name string = '' param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -41,16 +41,16 @@ resource ddosProtectionPlan 'Microsoft.Network/ddosProtectionPlans@2021-05-01' = properties: {} } -resource ddosProtectionPlan_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource ddosProtectionPlan_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${ddosProtectionPlan.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: ddosProtectionPlan } -module ddosProtectionPlan_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module ddosProtectionPlan_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-DDoSProtectionPlan-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/ddosProtectionPlans/readme.md b/arm/Microsoft.Network/ddosProtectionPlans/readme.md index ced1a5a985..6474521878 100644 --- a/arm/Microsoft.Network/ddosProtectionPlans/readme.md +++ b/arm/Microsoft.Network/ddosProtectionPlans/readme.md @@ -29,7 +29,7 @@ This template deploys a DDoS protection plan. | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -159,6 +159,9 @@ tags: { "name": { "value": "<>-az-ddos-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -185,6 +188,7 @@ module ddosProtectionPlans './Microsoft.Network/ddosProtectionPlans/deploy.bicep name: '${uniqueString(deployment().name)}-ddosProtectionPlans' params: { name: '<>-az-ddos-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Network/expressRouteCircuits/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/expressRouteCircuits/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/expressRouteCircuits/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/expressRouteCircuits/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json b/arm/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json index 8050f44069..fa4209859e 100644 --- a/arm/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json +++ b/arm/Microsoft.Network/expressRouteCircuits/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-erc-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "serviceProviderName": { "value": "Equinix" }, diff --git a/arm/Microsoft.Network/expressRouteCircuits/deploy.bicep b/arm/Microsoft.Network/expressRouteCircuits/deploy.bicep index 591a386f46..52d3866895 100644 --- a/arm/Microsoft.Network/expressRouteCircuits/deploy.bicep +++ b/arm/Microsoft.Network/expressRouteCircuits/deploy.bicep @@ -75,12 +75,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -174,10 +174,10 @@ resource expressRouteCircuits 'Microsoft.Network/expressRouteCircuits@2021-05-01 } } -resource expressRouteCircuits_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource expressRouteCircuits_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${expressRouteCircuits.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: expressRouteCircuits @@ -196,7 +196,7 @@ resource expressRouteCircuits_diagnosticSettings 'Microsoft.Insights/diagnosticS scope: expressRouteCircuits } -module expressRouteCircuits_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module expressRouteCircuits_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ExpRouteCircuits-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/expressRouteCircuits/readme.md b/arm/Microsoft.Network/expressRouteCircuits/readme.md index f724febd2e..3a0b17d5cd 100644 --- a/arm/Microsoft.Network/expressRouteCircuits/readme.md +++ b/arm/Microsoft.Network/expressRouteCircuits/readme.md @@ -43,7 +43,7 @@ This template deploys an express route circuit. | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `peerASN` | int | `0` | | The autonomous system number of the customer/connectivity provider. | | `peering` | bool | `False` | `[True, False]` | Enabled BGP peering type for the Circuit. | | `peeringType` | string | `'AzurePrivatePeering'` | `[AzurePrivatePeering, MicrosoftPeering]` | BGP peering type for the Circuit. Choose from AzurePrivatePeering, AzurePublicPeering or MicrosoftPeering. | @@ -181,6 +181,9 @@ tags: { "name": { "value": "<>-az-erc-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "serviceProviderName": { "value": "Equinix" }, @@ -237,6 +240,7 @@ module expressRouteCircuits './Microsoft.Network/expressRouteCircuits/deploy.bic name: '${uniqueString(deployment().name)}-expressRouteCircuits' params: { name: '<>-az-erc-x-001' + lock: 'CanNotDelete' serviceProviderName: 'Equinix' peeringLocation: 'Amsterdam' bandwidthInMbps: 50 diff --git a/arm/Microsoft.Network/firewallPolicies/deploy.bicep b/arm/Microsoft.Network/firewallPolicies/deploy.bicep index 3f8829cedd..1c86b92bfe 100644 --- a/arm/Microsoft.Network/firewallPolicies/deploy.bicep +++ b/arm/Microsoft.Network/firewallPolicies/deploy.bicep @@ -91,7 +91,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -167,7 +167,7 @@ module firewallPolicy_ruleCollectionGroups 'ruleCollectionGroups/deploy.bicep' = name: ruleCollectionGroup.name priority: ruleCollectionGroup.priority ruleCollections: ruleCollectionGroup.ruleCollections - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.Network/frontDoors/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/frontDoors/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/frontDoors/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/frontDoors/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/frontDoors/.parameters/parameters.json b/arm/Microsoft.Network/frontDoors/.parameters/parameters.json index 60be79daa6..e52cca17f9 100644 --- a/arm/Microsoft.Network/frontDoors/.parameters/parameters.json +++ b/arm/Microsoft.Network/frontDoors/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-fd-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "backendPools": { "value": [ { diff --git a/arm/Microsoft.Network/frontDoors/deploy.bicep b/arm/Microsoft.Network/frontDoors/deploy.bicep index 1fd96fbb1b..868746dc0e 100644 --- a/arm/Microsoft.Network/frontDoors/deploy.bicep +++ b/arm/Microsoft.Network/frontDoors/deploy.bicep @@ -7,12 +7,12 @@ param name string param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -135,10 +135,10 @@ resource frontDoor 'Microsoft.Network/frontDoors@2020-05-01' = { } } -resource frontDoor_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource frontDoor_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${frontDoor.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: frontDoor @@ -157,7 +157,7 @@ resource frontDoor_diagnosticSettingName 'Microsoft.Insights/diagnosticSettings@ scope: frontDoor } -module frontDoor_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module frontDoor_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AppGateway-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/frontDoors/readme.md b/arm/Microsoft.Network/frontDoors/readme.md index e70260512e..ff24dba8e8 100644 --- a/arm/Microsoft.Network/frontDoors/readme.md +++ b/arm/Microsoft.Network/frontDoors/readme.md @@ -44,7 +44,7 @@ This module deploys Front Doors. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `enforceCertificateNameCheck` | string | `'Disabled'` | | Enforce certificate name check of the frontdoor resource. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `logsToEnable` | array | `[FrontdoorAccessLog, FrontdoorWebApplicationFirewallLog]` | `[FrontdoorAccessLog, FrontdoorWebApplicationFirewallLog]` | The name of logs that will be streamed. | | `metricsToEnable` | array | `[AllMetrics]` | `[AllMetrics]` | The name of metrics that will be streamed. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -176,6 +176,9 @@ tags: { "name": { "value": "<>-az-fd-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "backendPools": { "value": [ { @@ -295,6 +298,7 @@ module frontDoors './Microsoft.Network/frontDoors/deploy.bicep' = { name: '${uniqueString(deployment().name)}-frontDoors' params: { name: '<>-az-fd-x-001' + lock: 'CanNotDelete' backendPools: [ { name: 'backendPool' diff --git a/arm/Microsoft.Network/ipGroups/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/ipGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/ipGroups/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/ipGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/ipGroups/.parameters/parameters.json b/arm/Microsoft.Network/ipGroups/.parameters/parameters.json index 88c2f5a13e..b30fd0db80 100644 --- a/arm/Microsoft.Network/ipGroups/.parameters/parameters.json +++ b/arm/Microsoft.Network/ipGroups/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "iacsGroup-servers" }, + "lock": { + "value": "CanNotDelete" + }, "ipAddresses": { "value": [ "10.0.0.1", diff --git a/arm/Microsoft.Network/ipGroups/deploy.bicep b/arm/Microsoft.Network/ipGroups/deploy.bicep index c9a4c54e45..5c8742665b 100644 --- a/arm/Microsoft.Network/ipGroups/deploy.bicep +++ b/arm/Microsoft.Network/ipGroups/deploy.bicep @@ -9,12 +9,12 @@ param location string = resourceGroup().location param ipAddresses array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -46,16 +46,16 @@ resource ipGroup 'Microsoft.Network/ipGroups@2021-05-01' = { } } -resource ipGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource ipGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${ipGroup.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: ipGroup } -module ipGroup_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module ipGroup_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-IPGroup-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/ipGroups/readme.md b/arm/Microsoft.Network/ipGroups/readme.md index 785984a6e9..894f7542b4 100644 --- a/arm/Microsoft.Network/ipGroups/readme.md +++ b/arm/Microsoft.Network/ipGroups/readme.md @@ -30,7 +30,7 @@ This module deploys an IP group. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `ipAddresses` | array | `[]` | | IpAddresses/IpAddressPrefixes in the IpGroups resource. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Resource tags. | @@ -160,6 +160,9 @@ tags: { "name": { "value": "iacsGroup-servers" }, + "lock": { + "value": "CanNotDelete" + }, "ipAddresses": { "value": [ "10.0.0.1", @@ -192,6 +195,7 @@ module ipGroups './Microsoft.Network/ipGroups/deploy.bicep' = { name: '${uniqueString(deployment().name)}-ipGroups' params: { name: 'iacsGroup-servers' + lock: 'CanNotDelete' ipAddresses: [ '10.0.0.1' '10.0.0.2' diff --git a/arm/Microsoft.Network/loadBalancers/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/loadBalancers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/loadBalancers/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/loadBalancers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/loadBalancers/.parameters/parameters.json b/arm/Microsoft.Network/loadBalancers/.parameters/parameters.json index 8ed7862388..df44d93edf 100644 --- a/arm/Microsoft.Network/loadBalancers/.parameters/parameters.json +++ b/arm/Microsoft.Network/loadBalancers/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-lb-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "frontendIPConfigurations": { "value": [ { diff --git a/arm/Microsoft.Network/loadBalancers/deploy.bicep b/arm/Microsoft.Network/loadBalancers/deploy.bicep index c1758136af..1ace647746 100644 --- a/arm/Microsoft.Network/loadBalancers/deploy.bicep +++ b/arm/Microsoft.Network/loadBalancers/deploy.bicep @@ -42,12 +42,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -152,7 +152,7 @@ param diagnosticMetricsToEnable array = [ @description('Optional. The name of the diagnostic setting, if deployed.') param diagnosticSettingsName string = '${name}-diagnosticSettings' -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { category: metric @@ -199,7 +199,7 @@ module loadBalancer_backendAddressPools 'backendAddressPools/deploy.bicep' = [fo name: backendAddressPool.name tunnelInterfaces: contains(backendAddressPool, 'tunnelInterfaces') && !empty(backendAddressPool.tunnelInterfaces) ? backendAddressPool.tunnelInterfaces : [] loadBalancerBackendAddresses: contains(backendAddressPool, 'loadBalancerBackendAddresses') && !empty(backendAddressPool.loadBalancerBackendAddresses) ? backendAddressPool.loadBalancerBackendAddresses : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -218,17 +218,17 @@ module loadBalancer_inboundNATRules 'inboundNatRules/deploy.bicep' = [for (inbou frontendPortRangeStart: contains(inboundNATRule, 'frontendPortRangeStart') ? inboundNATRule.frontendPortRangeStart : -1 idleTimeoutInMinutes: contains(inboundNATRule, 'idleTimeoutInMinutes') ? inboundNATRule.idleTimeoutInMinutes : 4 protocol: contains(inboundNATRule, 'protocol') ? inboundNATRule.protocol : 'Tcp' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ loadBalancer_backendAddressPools ] }] -resource loadBalancer_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource loadBalancer_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${loadBalancer.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: loadBalancer @@ -246,7 +246,7 @@ resource loadBalancer_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@ scope: loadBalancer } -module loadBalancer_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module loadBalancer_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-LoadBalancer-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/loadBalancers/readme.md b/arm/Microsoft.Network/loadBalancers/readme.md index 0567c9c88b..8b7e53b520 100644 --- a/arm/Microsoft.Network/loadBalancers/readme.md +++ b/arm/Microsoft.Network/loadBalancers/readme.md @@ -44,7 +44,7 @@ This module deploys a load balancer. | `loadBalancerSku` | string | `'Standard'` | `[Basic, Standard]` | Name of a load balancer SKU. | | `loadBalancingRules` | array | `[]` | | Array of objects containing all load balancing rules. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `outboundRules` | array | `[]` | | The outbound rules. | | `probes` | array | `[]` | | Array of objects containing all probes, these are references in the load balancing rules. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -719,6 +719,9 @@ module loadBalancers './Microsoft.Network/loadBalancers/deploy.bicep' = { "name": { "value": "<>-az-lb-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "frontendIPConfigurations": { "value": [ { @@ -852,6 +855,7 @@ module loadBalancers './Microsoft.Network/loadBalancers/deploy.bicep' = { name: '${uniqueString(deployment().name)}-loadBalancers' params: { name: '<>-az-lb-x-001' + lock: 'CanNotDelete' frontendIPConfigurations: [ { name: 'publicIPConfig1' diff --git a/arm/Microsoft.Network/localNetworkGateways/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/localNetworkGateways/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/localNetworkGateways/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/localNetworkGateways/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/localNetworkGateways/.parameters/parameters.json b/arm/Microsoft.Network/localNetworkGateways/.parameters/parameters.json index 878777fb13..f2d289d373 100644 --- a/arm/Microsoft.Network/localNetworkGateways/.parameters/parameters.json +++ b/arm/Microsoft.Network/localNetworkGateways/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-lng-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "localAddressPrefixes": { "value": [ "192.168.1.0/24" diff --git a/arm/Microsoft.Network/localNetworkGateways/deploy.bicep b/arm/Microsoft.Network/localNetworkGateways/deploy.bicep index 0957133b2a..12d5d30798 100644 --- a/arm/Microsoft.Network/localNetworkGateways/deploy.bicep +++ b/arm/Microsoft.Network/localNetworkGateways/deploy.bicep @@ -21,12 +21,12 @@ param localBgpPeeringAddress string = '' param localPeerWeight string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -72,16 +72,16 @@ resource localNetworkGateway 'Microsoft.Network/localNetworkGateways@2021-08-01' } } -resource localNetworkGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource localNetworkGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${localNetworkGateway.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: localNetworkGateway } -module localNetworkGateway_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module localNetworkGateway_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-LocalNetworkGateway-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/localNetworkGateways/readme.md b/arm/Microsoft.Network/localNetworkGateways/readme.md index 86d6fb57f8..8b4a48f561 100644 --- a/arm/Microsoft.Network/localNetworkGateways/readme.md +++ b/arm/Microsoft.Network/localNetworkGateways/readme.md @@ -35,7 +35,7 @@ This module deploys a local network gateway. | `localBgpPeeringAddress` | string | `''` | | The BGP peering address and BGP identifier of this BGP speaker. Not providing this value will automatically disable BGP on this Local Network Gateway resource. | | `localPeerWeight` | string | `''` | | The weight added to routes learned from this BGP speaker. This will only take effect if both the localAsn and the localBgpPeeringAddress values are provided. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -165,6 +165,9 @@ tags: { "name": { "value": "<>-az-lng-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "localAddressPrefixes": { "value": [ "192.168.1.0/24" @@ -205,6 +208,7 @@ module localNetworkGateways './Microsoft.Network/localNetworkGateways/deploy.bic name: '${uniqueString(deployment().name)}-localNetworkGateways' params: { name: '<>-az-lng-x-001' + lock: 'CanNotDelete' localAddressPrefixes: [ '192.168.1.0/24' ] diff --git a/arm/Microsoft.Network/natGateways/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/natGateways/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/natGateways/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/natGateways/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/natGateways/.parameters/parameters.json b/arm/Microsoft.Network/natGateways/.parameters/parameters.json index 6f5ac729cf..ec9c2014d9 100644 --- a/arm/Microsoft.Network/natGateways/.parameters/parameters.json +++ b/arm/Microsoft.Network/natGateways/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-ngw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "natGatewayPublicIpAddress": { "value": true }, diff --git a/arm/Microsoft.Network/natGateways/deploy.bicep b/arm/Microsoft.Network/natGateways/deploy.bicep index d026761804..a313811a1f 100644 --- a/arm/Microsoft.Network/natGateways/deploy.bicep +++ b/arm/Microsoft.Network/natGateways/deploy.bicep @@ -46,12 +46,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -149,10 +149,10 @@ resource publicIP 'Microsoft.Network/publicIPAddresses@2021-05-01' = if (natGate } } -resource publicIP_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource publicIP_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${publicIP.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: publicIP @@ -184,16 +184,16 @@ resource natGateway 'Microsoft.Network/natGateways@2021-05-01' = { zones: zones } -resource natGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource natGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${natGateway.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: natGateway } -module natGateway_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module natGateway_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-NatGateway-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/natGateways/readme.md b/arm/Microsoft.Network/natGateways/readme.md index 54813a742e..c74f24219b 100644 --- a/arm/Microsoft.Network/natGateways/readme.md +++ b/arm/Microsoft.Network/natGateways/readme.md @@ -40,7 +40,7 @@ This module deploys a NAT gateway. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `idleTimeoutInMinutes` | int | `5` | | The idle timeout of the nat gateway. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `natGatewayDomainNameLabel` | string | `''` | | DNS name of the Public IP resource. A region specific suffix will be appended to it, e.g.: your-DNS-name.westeurope.cloudapp.azure.com. | | `natGatewayPipName` | string | `''` | | Specifies the name of the Public IP used by the NAT Gateway. If it's not provided, a '-pip' suffix will be appended to the Bastion's name. | | `natGatewayPublicIpAddress` | bool | `False` | | Use to have a new Public IP Address created for the NAT Gateway. | @@ -177,6 +177,9 @@ tags: { "name": { "value": "<>-az-ngw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "natGatewayPublicIpAddress": { "value": true }, @@ -221,6 +224,7 @@ module natGateways './Microsoft.Network/natGateways/deploy.bicep' = { name: '${uniqueString(deployment().name)}-natGateways' params: { name: '<>-az-ngw-x-001' + lock: 'CanNotDelete' natGatewayPublicIpAddress: true roleAssignments: [ { diff --git a/arm/Microsoft.Network/networkInterfaces/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/networkInterfaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/networkInterfaces/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/networkInterfaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/networkInterfaces/.parameters/parameters.json b/arm/Microsoft.Network/networkInterfaces/.parameters/parameters.json index 7eb7ebc50f..b0cc8d9757 100644 --- a/arm/Microsoft.Network/networkInterfaces/.parameters/parameters.json +++ b/arm/Microsoft.Network/networkInterfaces/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-nic-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Network/networkInterfaces/deploy.bicep b/arm/Microsoft.Network/networkInterfaces/deploy.bicep index c3c5666abc..34fe2c04bf 100644 --- a/arm/Microsoft.Network/networkInterfaces/deploy.bicep +++ b/arm/Microsoft.Network/networkInterfaces/deploy.bicep @@ -26,12 +26,12 @@ param networkSecurityGroupResourceId string = '' param ipConfigurations array @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -135,16 +135,16 @@ resource networkInterface_diagnosticSettings 'Microsoft.Insights/diagnosticSetti scope: networkInterface } -resource networkInterface_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource networkInterface_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${networkInterface.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: networkInterface } -module networkInterface_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module networkInterface_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-NIC-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/networkInterfaces/readme.md b/arm/Microsoft.Network/networkInterfaces/readme.md index 58ed128aa1..990abb30e0 100644 --- a/arm/Microsoft.Network/networkInterfaces/readme.md +++ b/arm/Microsoft.Network/networkInterfaces/readme.md @@ -41,7 +41,7 @@ This module deploys Network Interfaces. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `enableIPForwarding` | bool | `False` | | Indicates whether IP forwarding is enabled on this network interface. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `networkSecurityGroupResourceId` | string | `''` | | The network security group (NSG) to attach to the network interface. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -243,6 +243,9 @@ module networkInterfaces './Microsoft.Network/networkInterfaces/deploy.bicep' = "name": { "value": "<>-az-nic-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -302,6 +305,7 @@ module networkInterfaces './Microsoft.Network/networkInterfaces/deploy.bicep' = name: '${uniqueString(deployment().name)}-networkInterfaces' params: { name: '<>-az-nic-x-001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Network/networkSecurityGroups/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/networkSecurityGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/networkSecurityGroups/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/networkSecurityGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json b/arm/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json index c8f75d3aaf..26cbb1eb56 100644 --- a/arm/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json +++ b/arm/Microsoft.Network/networkSecurityGroups/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-nsg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "securityRules": { "value": [ { diff --git a/arm/Microsoft.Network/networkSecurityGroups/deploy.bicep b/arm/Microsoft.Network/networkSecurityGroups/deploy.bicep index 4aa11c1808..3e51280910 100644 --- a/arm/Microsoft.Network/networkSecurityGroups/deploy.bicep +++ b/arm/Microsoft.Network/networkSecurityGroups/deploy.bicep @@ -25,12 +25,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -54,7 +54,7 @@ param diagnosticLogCategoriesToEnable array = [ @description('Optional. The name of the diagnostic setting, if deployed.') param diagnosticSettingsName string = '${name}-diagnosticSettings' -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { category: category @@ -125,14 +125,14 @@ module networkSecurityGroup_securityRules 'securityRules/deploy.bicep' = [for (s destinationAddressPrefixes: contains(securityRule.properties, 'destinationAddressPrefixes') ? securityRule.properties.destinationAddressPrefixes : [] sourceApplicationSecurityGroups: contains(securityRule.properties, 'sourceApplicationSecurityGroups') ? securityRule.properties.sourceApplicationSecurityGroups : [] destinationApplicationSecurityGroups: contains(securityRule.properties, 'destinationApplicationSecurityGroups') ? securityRule.properties.destinationApplicationSecurityGroups : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource networkSecurityGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource networkSecurityGroup_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${networkSecurityGroup.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: networkSecurityGroup @@ -150,7 +150,7 @@ resource networkSecurityGroup_diagnosticSettings 'Microsoft.Insights/diagnosticS scope: networkSecurityGroup } -module networkSecurityGroup_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module networkSecurityGroup_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-NSG-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/networkSecurityGroups/readme.md b/arm/Microsoft.Network/networkSecurityGroups/readme.md index dda7040269..4d0292d14e 100644 --- a/arm/Microsoft.Network/networkSecurityGroups/readme.md +++ b/arm/Microsoft.Network/networkSecurityGroups/readme.md @@ -38,7 +38,7 @@ This template deploys a network security group (NSG) with optional security rule | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `securityRules` | _[securityRules](securityRules/readme.md)_ array | `[]` | | Array of Security Rules to deploy to the Network Security Group. When not provided, an NSG including only the built-in roles will be deployed. | | `tags` | object | `{object}` | | Tags of the NSG resource. | @@ -205,6 +205,9 @@ module networkSecurityGroups './Microsoft.Network/networkSecurityGroups/deploy.b "name": { "value": "<>-az-nsg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "securityRules": { "value": [ { @@ -312,6 +315,7 @@ module networkSecurityGroups './Microsoft.Network/networkSecurityGroups/deploy.b name: '${uniqueString(deployment().name)}-networkSecurityGroups' params: { name: '<>-az-nsg-x-001' + lock: 'CanNotDelete' securityRules: [ { name: 'Specific' diff --git a/arm/Microsoft.Network/networkWatchers/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/networkWatchers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/networkWatchers/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/networkWatchers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/networkWatchers/deploy.bicep b/arm/Microsoft.Network/networkWatchers/deploy.bicep index 4b6d5bcb6c..ae61cc3fd3 100644 --- a/arm/Microsoft.Network/networkWatchers/deploy.bicep +++ b/arm/Microsoft.Network/networkWatchers/deploy.bicep @@ -12,12 +12,12 @@ param connectionMonitors array = [] param flowLogs array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -28,7 +28,7 @@ param tags object = {} @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -49,16 +49,16 @@ resource networkWatcher 'Microsoft.Network/networkWatchers@2021-05-01' = { properties: {} } -resource networkWatcher_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource networkWatcher_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${networkWatcher.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: networkWatcher } -module networkWatcher_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module networkWatcher_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-NW-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -78,7 +78,7 @@ module networkWatcher_connectionMonitors 'connectionMonitors/deploy.bicep' = [fo testConfigurations: contains(connectionMonitor, 'testConfigurations') ? connectionMonitor.testConfigurations : [] testGroups: contains(connectionMonitor, 'testGroups') ? connectionMonitor.testGroups : [] workspaceResourceId: contains(connectionMonitor, 'workspaceResourceId') ? connectionMonitor.workspaceResourceId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -95,7 +95,7 @@ module networkWatcher_flowLogs 'flowLogs/deploy.bicep' = [for (flowLog, index) i targetResourceId: flowLog.targetResourceId trafficAnalyticsInterval: contains(flowLog, 'trafficAnalyticsInterval') ? flowLog.trafficAnalyticsInterval : 60 workspaceResourceId: contains(flowLog, 'workspaceResourceId') ? flowLog.workspaceResourceId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.Network/networkWatchers/readme.md b/arm/Microsoft.Network/networkWatchers/readme.md index 8912f4a31d..195e1d50ec 100644 --- a/arm/Microsoft.Network/networkWatchers/readme.md +++ b/arm/Microsoft.Network/networkWatchers/readme.md @@ -33,7 +33,7 @@ This template deploys a network watcher. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `flowLogs` | _[flowLogs](flowLogs/readme.md)_ array | `[]` | | Array that contains the Flow Logs. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | diff --git a/arm/Microsoft.Network/privateDnsZones/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/.parameters/parameters.json b/arm/Microsoft.Network/privateDnsZones/.parameters/parameters.json index 88c41e929e..8b3662c1ee 100644 --- a/arm/Microsoft.Network/privateDnsZones/.parameters/parameters.json +++ b/arm/Microsoft.Network/privateDnsZones/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-privdns-x-002.com" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Network/privateDnsZones/A/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/A/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/A/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/A/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/A/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/A/deploy.bicep index 3c88b840e1..49e6309abf 100644 --- a/arm/Microsoft.Network/privateDnsZones/A/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/A/deploy.bicep @@ -45,7 +45,7 @@ resource A 'Microsoft.Network/privateDnsZones/A@2020-06-01' = { } } -module A_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module A_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-PDNSA-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/AAAA/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep index 29c7a66879..4d31d07420 100644 --- a/arm/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/AAAA/deploy.bicep @@ -45,7 +45,7 @@ resource AAAA 'Microsoft.Network/privateDnsZones/AAAA@2020-06-01' = { } } -module AAAA_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module AAAA_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-PDNSAAAA-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/CNAME/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep index de45e6d935..230320b6dc 100644 --- a/arm/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/CNAME/deploy.bicep @@ -45,7 +45,7 @@ resource CNAME 'Microsoft.Network/privateDnsZones/CNAME@2020-06-01' = { } } -module CNAME_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module CNAME_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-PDNSCNAME-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/MX/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/MX/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/MX/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/MX/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/MX/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/MX/deploy.bicep index 3e182064f0..7bd01356fb 100644 --- a/arm/Microsoft.Network/privateDnsZones/MX/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/MX/deploy.bicep @@ -45,7 +45,7 @@ resource MX 'Microsoft.Network/privateDnsZones/MX@2020-06-01' = { } } -module MX_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module MX_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-PDNSMX-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/PTR/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/PTR/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/PTR/deploy.bicep index cbc32f2f90..4d83d996ba 100644 --- a/arm/Microsoft.Network/privateDnsZones/PTR/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/PTR/deploy.bicep @@ -31,7 +31,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -module PTR_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module PTR_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-PDNSPTR-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/SOA/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/SOA/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/SOA/deploy.bicep index 3bbb21a150..256047114d 100644 --- a/arm/Microsoft.Network/privateDnsZones/SOA/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/SOA/deploy.bicep @@ -45,7 +45,7 @@ resource SOA 'Microsoft.Network/privateDnsZones/SOA@2020-06-01' = { } } -module SOA_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module SOA_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-PDNSSOA-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/SRV/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/SRV/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/SRV/deploy.bicep index d17d2468bf..d15b8b6a32 100644 --- a/arm/Microsoft.Network/privateDnsZones/SRV/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/SRV/deploy.bicep @@ -45,7 +45,7 @@ resource SRV 'Microsoft.Network/privateDnsZones/SRV@2020-06-01' = { } } -module SRV_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module SRV_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-PDNSSRV-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateDnsZones/TXT/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateDnsZones/TXT/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/TXT/deploy.bicep index f4b71e4bb0..e718bdbcdb 100644 --- a/arm/Microsoft.Network/privateDnsZones/TXT/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/TXT/deploy.bicep @@ -45,7 +45,7 @@ resource TXT 'Microsoft.Network/privateDnsZones/TXT@2020-06-01' = { } } -module TXT_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module TXT_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-PDNSTXT-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/deploy.bicep b/arm/Microsoft.Network/privateDnsZones/deploy.bicep index 8bd8c22e85..4215fe8ae3 100644 --- a/arm/Microsoft.Network/privateDnsZones/deploy.bicep +++ b/arm/Microsoft.Network/privateDnsZones/deploy.bicep @@ -38,17 +38,17 @@ param roleAssignments array = [] param tags object = {} @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -77,7 +77,7 @@ module privateDnsZone_A 'A/deploy.bicep' = [for (aRecord, index) in a: { metadata: contains(aRecord, 'metadata') ? aRecord.metadata : {} ttl: contains(aRecord, 'ttl') ? aRecord.ttl : 3600 roleAssignments: contains(aRecord, 'roleAssignments') ? aRecord.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -90,7 +90,7 @@ module privateDnsZone_AAAA 'AAAA/deploy.bicep' = [for (aaaaRecord, index) in aaa metadata: contains(aaaaRecord, 'metadata') ? aaaaRecord.metadata : {} ttl: contains(aaaaRecord, 'ttl') ? aaaaRecord.ttl : 3600 roleAssignments: contains(aaaaRecord, 'roleAssignments') ? aaaaRecord.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -103,7 +103,7 @@ module privateDnsZone_CNAME 'CNAME/deploy.bicep' = [for (cnameRecord, index) in metadata: contains(cnameRecord, 'metadata') ? cnameRecord.metadata : {} ttl: contains(cnameRecord, 'ttl') ? cnameRecord.ttl : 3600 roleAssignments: contains(cnameRecord, 'roleAssignments') ? cnameRecord.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -116,7 +116,7 @@ module privateDnsZone_MX 'MX/deploy.bicep' = [for (mxRecord, index) in mx: { mxRecords: contains(mxRecord, 'mxRecords') ? mxRecord.mxRecords : [] ttl: contains(mxRecord, 'ttl') ? mxRecord.ttl : 3600 roleAssignments: contains(mxRecord, 'roleAssignments') ? mxRecord.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -129,7 +129,7 @@ module privateDnsZone_PTR 'PTR/deploy.bicep' = [for (ptrRecord, index) in ptr: { ptrRecords: contains(ptrRecord, 'ptrRecords') ? ptrRecord.ptrRecords : [] ttl: contains(ptrRecord, 'ttl') ? ptrRecord.ttl : 3600 roleAssignments: contains(ptrRecord, 'roleAssignments') ? ptrRecord.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -142,7 +142,7 @@ module privateDnsZone_SOA 'SOA/deploy.bicep' = [for (soaRecord, index) in soa: { soaRecord: contains(soaRecord, 'soaRecord') ? soaRecord.soaRecord : {} ttl: contains(soaRecord, 'ttl') ? soaRecord.ttl : 3600 roleAssignments: contains(soaRecord, 'roleAssignments') ? soaRecord.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -155,7 +155,7 @@ module privateDnsZone_SRV 'SRV/deploy.bicep' = [for (srvRecord, index) in srv: { srvRecords: contains(srvRecord, 'srvRecords') ? srvRecord.srvRecords : [] ttl: contains(srvRecord, 'ttl') ? srvRecord.ttl : 3600 roleAssignments: contains(srvRecord, 'roleAssignments') ? srvRecord.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -168,7 +168,7 @@ module privateDnsZone_TXT 'TXT/deploy.bicep' = [for (txtRecord, index) in txt: { txtRecords: contains(txtRecord, 'txtRecords') ? txtRecord.txtRecords : [] ttl: contains(txtRecord, 'ttl') ? txtRecord.ttl : 3600 roleAssignments: contains(txtRecord, 'roleAssignments') ? txtRecord.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -181,20 +181,20 @@ module privateDnsZone_virtualNetworkLinks 'virtualNetworkLinks/deploy.bicep' = [ location: contains(virtualNetworkLink, 'location') ? virtualNetworkLink.location : 'global' registrationEnabled: contains(virtualNetworkLink, 'registrationEnabled') ? virtualNetworkLink.registrationEnabled : false tags: contains(virtualNetworkLink, 'tags') ? virtualNetworkLink.tags : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource privateDnsZone_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource privateDnsZone_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${privateDnsZone.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: privateDnsZone } -module privateDnsZone_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module privateDnsZone_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-PrivateDnsZone-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateDnsZones/readme.md b/arm/Microsoft.Network/privateDnsZones/readme.md index 4ee64796da..fd31651fbf 100644 --- a/arm/Microsoft.Network/privateDnsZones/readme.md +++ b/arm/Microsoft.Network/privateDnsZones/readme.md @@ -41,7 +41,7 @@ This template deploys a private DNS zone. | `cname` | _[cname](cname/readme.md)_ array | `[]` | | Array of CNAME records. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `'global'` | | The location of the PrivateDNSZone. Should be global. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `mx` | _[mx](mx/readme.md)_ array | `[]` | | Array of MX records. | | `ptr` | _[ptr](ptr/readme.md)_ array | `[]` | | Array of PTR records. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -213,6 +213,9 @@ module privateDnsZones './Microsoft.Network/privateDnsZones/deploy.bicep' = { "name": { "value": "<>-az-privdns-x-002.com" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -415,6 +418,7 @@ module privateDnsZones './Microsoft.Network/privateDnsZones/deploy.bicep' = { name: '${uniqueString(deployment().name)}-privateDnsZones' params: { name: '<>-az-privdns-x-002.com' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.Network/privateEndpoints/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/privateEndpoints/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/privateEndpoints/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/privateEndpoints/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/privateEndpoints/.parameters/parameters.json b/arm/Microsoft.Network/privateEndpoints/.parameters/parameters.json index eaa2b9a9a2..eff507a0b2 100644 --- a/arm/Microsoft.Network/privateEndpoints/.parameters/parameters.json +++ b/arm/Microsoft.Network/privateEndpoints/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-pe-kvlt-001" }, + "lock": { + "value": "CanNotDelete" + }, "subnetResourceId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" }, diff --git a/arm/Microsoft.Network/privateEndpoints/deploy.bicep b/arm/Microsoft.Network/privateEndpoints/deploy.bicep index 3bfde4e6db..3ffdeae2d6 100644 --- a/arm/Microsoft.Network/privateEndpoints/deploy.bicep +++ b/arm/Microsoft.Network/privateEndpoints/deploy.bicep @@ -17,12 +17,12 @@ param privateDnsZoneGroups array = [] param location string = resourceGroup().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -39,7 +39,7 @@ param manualPrivateLinkServiceConnections array = [] @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -80,20 +80,20 @@ module privateEndpoint_privateDnsZoneGroups 'privateDnsZoneGroups/deploy.bicep' params: { privateDNSResourceIds: privateDnsZoneGroup.privateDNSResourceIds privateEndpointName: privateEndpoint.name - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource privateEndpoint_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource privateEndpoint_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${privateEndpoint.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: privateEndpoint } -module privateEndpoint_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module privateEndpoint_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-PrivateEndpoint-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/privateEndpoints/readme.md b/arm/Microsoft.Network/privateEndpoints/readme.md index b2d77218be..0fcdd76087 100644 --- a/arm/Microsoft.Network/privateEndpoints/readme.md +++ b/arm/Microsoft.Network/privateEndpoints/readme.md @@ -44,7 +44,7 @@ The following resources are required to be able to deploy this resource: | `customDnsConfigs` | array | `[]` | | Custom DNS configurations. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `manualPrivateLinkServiceConnections` | array | `[]` | | Manual PrivateLink Service Connections. | | `privateDnsZoneGroups` | _[privateDnsZoneGroups](privateDnsZoneGroups/readme.md)_ array | `[]` | | Array of Private DNS zone groups configuration on the private endpoint. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -228,6 +228,9 @@ module privateEndpoints './Microsoft.Network/privateEndpoints/deploy.bicep' = { "name": { "value": "<>-az-pe-kvlt-001" }, + "lock": { + "value": "CanNotDelete" + }, "subnetResourceId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" }, @@ -274,6 +277,7 @@ module privateEndpoints './Microsoft.Network/privateEndpoints/deploy.bicep' = { name: '${uniqueString(deployment().name)}-privateEndpoints' params: { name: '<>-az-pe-kvlt-001' + lock: 'CanNotDelete' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' serviceResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-x-pe' groupIds: [ diff --git a/arm/Microsoft.Network/publicIPAddresses/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/publicIPAddresses/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/publicIPAddresses/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/publicIPAddresses/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/publicIPAddresses/.parameters/parameters.json b/arm/Microsoft.Network/publicIPAddresses/.parameters/parameters.json index 1e12e533b7..9a95bc279f 100644 --- a/arm/Microsoft.Network/publicIPAddresses/.parameters/parameters.json +++ b/arm/Microsoft.Network/publicIPAddresses/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-pip-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "skuName": { "value": "Standard" }, diff --git a/arm/Microsoft.Network/publicIPAddresses/deploy.bicep b/arm/Microsoft.Network/publicIPAddresses/deploy.bicep index 031eded83e..ed246c9e81 100644 --- a/arm/Microsoft.Network/publicIPAddresses/deploy.bicep +++ b/arm/Microsoft.Network/publicIPAddresses/deploy.bicep @@ -53,12 +53,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Location for all resources.') param location string = resourceGroup().location @@ -148,10 +148,10 @@ resource publicIpAddress 'Microsoft.Network/publicIPAddresses@2021-05-01' = { } } -resource publicIpAddress_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource publicIpAddress_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${publicIpAddress.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: publicIpAddress @@ -170,7 +170,7 @@ resource publicIpAddress_diagnosticSettings 'Microsoft.Insights/diagnosticSettin scope: publicIpAddress } -module publicIpAddress_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module publicIpAddress_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-PIPAddress-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/publicIPAddresses/readme.md b/arm/Microsoft.Network/publicIPAddresses/readme.md index 63cc43a661..4071550bad 100644 --- a/arm/Microsoft.Network/publicIPAddresses/readme.md +++ b/arm/Microsoft.Network/publicIPAddresses/readme.md @@ -36,7 +36,7 @@ | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `publicIPAddressVersion` | string | `'IPv4'` | `[IPv4, IPv6]` | IP address version. | | `publicIPAllocationMethod` | string | `'Dynamic'` | `[Dynamic, Static]` | The public IP address allocation method. | | `publicIPPrefixResourceId` | string | `''` | | Resource ID of the Public IP Prefix object. This is only needed if you want your Public IPs created in a PIP Prefix. | @@ -173,6 +173,9 @@ roleAssignments: [ "name": { "value": "<>-az-pip-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "skuName": { "value": "Standard" }, @@ -227,6 +230,7 @@ module publicIPAddresses './Microsoft.Network/publicIPAddresses/deploy.bicep' = name: '${uniqueString(deployment().name)}-publicIPAddresses' params: { name: '<>-az-pip-x-001' + lock: 'CanNotDelete' skuName: 'Standard' publicIPAllocationMethod: 'Static' zones: [ diff --git a/arm/Microsoft.Network/publicIPPrefixes/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/publicIPPrefixes/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/publicIPPrefixes/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/publicIPPrefixes/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json b/arm/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json index 5b4074820c..4367694850 100644 --- a/arm/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json +++ b/arm/Microsoft.Network/publicIPPrefixes/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-pippfx-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "prefixLength": { "value": 28 }, diff --git a/arm/Microsoft.Network/publicIPPrefixes/deploy.bicep b/arm/Microsoft.Network/publicIPPrefixes/deploy.bicep index 0af3d87a67..b9a7b6dfc0 100644 --- a/arm/Microsoft.Network/publicIPPrefixes/deploy.bicep +++ b/arm/Microsoft.Network/publicIPPrefixes/deploy.bicep @@ -11,12 +11,12 @@ param location string = resourceGroup().location param prefixLength int @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -52,16 +52,16 @@ resource publicIpPrefix 'Microsoft.Network/publicIPPrefixes@2021-05-01' = { } } -resource publicIpPrefix_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource publicIpPrefix_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${publicIpPrefix.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: publicIpPrefix } -module publicIpPrefix_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module publicIpPrefix_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-PIPPrefix-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/publicIPPrefixes/readme.md b/arm/Microsoft.Network/publicIPPrefixes/readme.md index 1499d6e476..04a5a2974f 100644 --- a/arm/Microsoft.Network/publicIPPrefixes/readme.md +++ b/arm/Microsoft.Network/publicIPPrefixes/readme.md @@ -30,7 +30,7 @@ This template deploys a public IP prefix. | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -160,6 +160,9 @@ tags: { "name": { "value": "<>-az-pippfx-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "prefixLength": { "value": 28 }, @@ -189,6 +192,7 @@ module publicIPPrefixes './Microsoft.Network/publicIPPrefixes/deploy.bicep' = { name: '${uniqueString(deployment().name)}-publicIPPrefixes' params: { name: '<>-az-pippfx-x-001' + lock: 'CanNotDelete' prefixLength: 28 roleAssignments: [ { diff --git a/arm/Microsoft.Network/routeTables/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/routeTables/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/routeTables/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/routeTables/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/routeTables/.parameters/parameters.json b/arm/Microsoft.Network/routeTables/.parameters/parameters.json index edd5dba921..65fa5d2d91 100644 --- a/arm/Microsoft.Network/routeTables/.parameters/parameters.json +++ b/arm/Microsoft.Network/routeTables/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-udr-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "routes": { "value": [ { diff --git a/arm/Microsoft.Network/routeTables/deploy.bicep b/arm/Microsoft.Network/routeTables/deploy.bicep index 3f493639de..feda9c9f10 100644 --- a/arm/Microsoft.Network/routeTables/deploy.bicep +++ b/arm/Microsoft.Network/routeTables/deploy.bicep @@ -11,12 +11,12 @@ param routes array = [] param disableBgpRoutePropagation bool = false @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -49,16 +49,16 @@ resource routeTable 'Microsoft.Network/routeTables@2021-05-01' = { } } -resource routeTable_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource routeTable_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${routeTable.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: routeTable } -module routeTable_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module routeTable_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-RouteTable-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/routeTables/readme.md b/arm/Microsoft.Network/routeTables/readme.md index d6434b21c2..e802ebfbff 100644 --- a/arm/Microsoft.Network/routeTables/readme.md +++ b/arm/Microsoft.Network/routeTables/readme.md @@ -30,7 +30,7 @@ This module deploys a user defined route table. | `disableBgpRoutePropagation` | bool | `False` | | Switch to disable BGP route propagation. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `routes` | array | `[]` | | An Array of Routes to be established within the hub route table. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -250,6 +250,9 @@ tags: { "name": { "value": "<>-az-udr-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "routes": { "value": [ { @@ -288,6 +291,7 @@ module routeTables './Microsoft.Network/routeTables/deploy.bicep' = { name: '${uniqueString(deployment().name)}-routeTables' params: { name: '<>-az-udr-x-001' + lock: 'CanNotDelete' routes: [ { name: 'default' diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/trafficmanagerprofiles/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json b/arm/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json index fd3469ed6d..220f646c39 100644 --- a/arm/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json +++ b/arm/Microsoft.Network/trafficmanagerprofiles/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "tm-000001" }, + "lock": { + "value": "CanNotDelete" + }, "relativeName": { "value": "tm-000001" }, diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/deploy.bicep b/arm/Microsoft.Network/trafficmanagerprofiles/deploy.bicep index da5b05b4bf..5edd17fc73 100644 --- a/arm/Microsoft.Network/trafficmanagerprofiles/deploy.bicep +++ b/arm/Microsoft.Network/trafficmanagerprofiles/deploy.bicep @@ -64,12 +64,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -148,10 +148,10 @@ resource trafficManagerProfile 'Microsoft.Network/trafficmanagerprofiles@2018-08 } } -resource trafficManagerProfile_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource trafficManagerProfile_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${trafficManagerProfile.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: trafficManagerProfile @@ -170,7 +170,7 @@ resource trafficManagerProfile_diagnosticSettings 'Microsoft.Insights/diagnostic scope: trafficManagerProfile } -module trafficManagerProfile_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module trafficManagerProfile_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name)}-TrafficManagerProfile-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/trafficmanagerprofiles/readme.md b/arm/Microsoft.Network/trafficmanagerprofiles/readme.md index 8d37a61e2f..01dd0ba93b 100644 --- a/arm/Microsoft.Network/trafficmanagerprofiles/readme.md +++ b/arm/Microsoft.Network/trafficmanagerprofiles/readme.md @@ -39,7 +39,7 @@ This module deploys a traffic manager profile. | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `endpoints` | array | `[]` | | The list of endpoints in the Traffic Manager profile. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `maxReturn` | int | `1` | | Maximum number of endpoints to be returned for MultiValue routing type. | | `monitorConfig` | object | `{object}` | | The endpoint monitoring settings of the Traffic Manager profile. | | `profileStatus` | string | `'Enabled'` | `[Enabled, Disabled]` | The status of the Traffic Manager profile. | @@ -264,6 +264,9 @@ tags: { "name": { "value": "tm-000001" }, + "lock": { + "value": "CanNotDelete" + }, "relativeName": { "value": "tm-000001" }, @@ -308,6 +311,7 @@ module trafficmanagerprofiles './Microsoft.Network/trafficmanagerprofiles/deploy name: '${uniqueString(deployment().name)}-trafficmanagerprofiles' params: { name: 'tm-000001' + lock: 'CanNotDelete' relativeName: 'tm-000001' roleAssignments: [ { diff --git a/arm/Microsoft.Network/virtualHubs/.parameters/parameters.json b/arm/Microsoft.Network/virtualHubs/.parameters/parameters.json index ed856582ad..2660f1be93 100644 --- a/arm/Microsoft.Network/virtualHubs/.parameters/parameters.json +++ b/arm/Microsoft.Network/virtualHubs/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-vhub-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "addressPrefix": { "value": "10.1.0.0/16" }, diff --git a/arm/Microsoft.Network/virtualHubs/deploy.bicep b/arm/Microsoft.Network/virtualHubs/deploy.bicep index ce0d814740..3db423a785 100644 --- a/arm/Microsoft.Network/virtualHubs/deploy.bicep +++ b/arm/Microsoft.Network/virtualHubs/deploy.bicep @@ -69,17 +69,17 @@ param hubRouteTables array = [] param hubVirtualNetworkConnections array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -130,10 +130,10 @@ resource virtualHub 'Microsoft.Network/virtualHubs@2021-05-01' = { } } -resource virtualHub_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource virtualHub_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${virtualHub.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: virtualHub @@ -146,7 +146,7 @@ module virtualHub_routeTables 'hubRouteTables/deploy.bicep' = [for (routeTable, name: routeTable.name labels: contains(routeTable, 'labels') ? routeTable.labels : [] routes: contains(routeTable, 'routes') ? routeTable.routes : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -158,7 +158,7 @@ module virtualHub_hubVirtualNetworkConnections 'hubVirtualNetworkConnections/dep enableInternetSecurity: contains(virtualNetworkConnection, 'enableInternetSecurity') ? virtualNetworkConnection.enableInternetSecurity : true remoteVirtualNetworkId: virtualNetworkConnection.remoteVirtualNetworkId routingConfiguration: contains(virtualNetworkConnection, 'routingConfiguration') ? virtualNetworkConnection.routingConfiguration : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ virtualHub_routeTables diff --git a/arm/Microsoft.Network/virtualHubs/readme.md b/arm/Microsoft.Network/virtualHubs/readme.md index 698c5fa9f7..f6469cec2b 100644 --- a/arm/Microsoft.Network/virtualHubs/readme.md +++ b/arm/Microsoft.Network/virtualHubs/readme.md @@ -37,7 +37,7 @@ This module deploys a Virtual Hub. | `hubRouteTables` | _[hubRouteTables](hubRouteTables/readme.md)_ array | `[]` | | Route tables to create for the virtual hub. | | `hubVirtualNetworkConnections` | _[hubVirtualNetworkConnections](hubVirtualNetworkConnections/readme.md)_ array | `[]` | | Virtual network connections to create for the virtual hub. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `p2SVpnGatewayId` | string | `''` | | Resource ID of the Point-to-Site VPN Gateway to link to. | | `preferredRoutingGateway` | string | `''` | `[ExpressRoute, None, VpnGateway, ]` | The preferred routing gateway types. | | `routeTableRoutes` | array | `[]` | | VirtualHub route tables. | @@ -161,6 +161,9 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep' = { "name": { "value": "<>-az-vhub-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "addressPrefix": { "value": "10.1.0.0/16" }, @@ -213,6 +216,7 @@ module virtualHubs './Microsoft.Network/virtualHubs/deploy.bicep' = { name: '${uniqueString(deployment().name)}-virtualHubs' params: { name: '<>-az-vhub-x-001' + lock: 'CanNotDelete' addressPrefix: '10.1.0.0/16' virtualWanId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualWans/adp-<>-az-vw-x-001' hubRouteTables: [ diff --git a/arm/Microsoft.Network/virtualNetworkGateways/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/virtualNetworkGateways/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworkGateways/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/virtualNetworkGateways/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json b/arm/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json index 8699d145eb..cf037dc7e9 100644 --- a/arm/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json +++ b/arm/Microsoft.Network/virtualNetworkGateways/.parameters/vpn.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-gw-vpn-001" }, + "lock": { + "value": "CanNotDelete" + }, "domainNameLabel": { "value": [ "<>-az-gw-vpn-dm-001" diff --git a/arm/Microsoft.Network/virtualNetworkGateways/deploy.bicep b/arm/Microsoft.Network/virtualNetworkGateways/deploy.bicep index ca9369f1a2..cf8b14368a 100644 --- a/arm/Microsoft.Network/virtualNetworkGateways/deploy.bicep +++ b/arm/Microsoft.Network/virtualNetworkGateways/deploy.bicep @@ -93,12 +93,12 @@ param diagnosticEventHubName string = '' param roleAssignments array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -312,10 +312,10 @@ resource virtualGatewayPublicIP 'Microsoft.Network/publicIPAddresses@2021-05-01' }] @batchSize(1) -resource virtualGatewayPublicIP_lock 'Microsoft.Authorization/locks@2017-04-01' = [for (virtualGatewayPublicIpName, index) in virtualGatewayPipName_var: if (lock != 'NotSpecified') { +resource virtualGatewayPublicIP_lock 'Microsoft.Authorization/locks@2017-04-01' = [for (virtualGatewayPublicIpName, index) in virtualGatewayPipName_var: if (!empty(lock)) { name: '${virtualGatewayPublicIpName}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: virtualGatewayPublicIP[index] @@ -359,10 +359,10 @@ resource virtualNetworkGateway 'Microsoft.Network/virtualNetworkGateways@2021-05 ] } -resource virtualNetworkGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource virtualNetworkGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${virtualNetworkGateway.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: virtualNetworkGateway @@ -381,7 +381,7 @@ resource virtualNetworkGateway_diagnosticSettings 'Microsoft.Insights/diagnostic scope: virtualNetworkGateway } -module virtualNetworkGateway_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module virtualNetworkGateway_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-VNetGateway-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/virtualNetworkGateways/readme.md b/arm/Microsoft.Network/virtualNetworkGateways/readme.md index 99d6946d8b..f29a1710d9 100644 --- a/arm/Microsoft.Network/virtualNetworkGateways/readme.md +++ b/arm/Microsoft.Network/virtualNetworkGateways/readme.md @@ -49,7 +49,7 @@ This module deploys a virtual network gateway. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `gatewayPipName` | string | `[format('{0}-pip1', parameters('name'))]` | | Specifies the name of the Public IP used by the Virtual Network Gateway. If it's not provided, a '-pip' suffix will be appended to the gateway's name. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `publicIpdiagnosticLogCategoriesToEnable` | array | `[DDoSProtectionNotifications, DDoSMitigationFlowLogs, DDoSMitigationReports]` | `[DDoSProtectionNotifications, DDoSMitigationFlowLogs, DDoSMitigationReports]` | The name of logs that will be streamed. | | `publicIpDiagnosticSettingsName` | string | `'diagnosticSettings'` | | The name of the diagnostic setting, if deployed. | | `publicIPPrefixResourceId` | string | `''` | | Resource ID of the Public IP Prefix object. This is only needed if you want your Public IPs created in a PIP Prefix. | @@ -370,6 +370,9 @@ module virtualNetworkGateways './Microsoft.Network/virtualNetworkGateways/deploy "name": { "value": "<>-az-gw-vpn-001" }, + "lock": { + "value": "CanNotDelete" + }, "domainNameLabel": { "value": [ "<>-az-gw-vpn-dm-001" @@ -436,6 +439,7 @@ module virtualNetworkGateways './Microsoft.Network/virtualNetworkGateways/deploy name: '${uniqueString(deployment().name)}-virtualNetworkGateways' params: { name: '<>-az-gw-vpn-001' + lock: 'CanNotDelete' domainNameLabel: [ '<>-az-gw-vpn-dm-001' ] diff --git a/arm/Microsoft.Network/virtualNetworks/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/virtualNetworks/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/virtualNetworks/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/virtualNetworks/.parameters/parameters.json b/arm/Microsoft.Network/virtualNetworks/.parameters/parameters.json index 9c66aa5de6..6cb5292ceb 100644 --- a/arm/Microsoft.Network/virtualNetworks/.parameters/parameters.json +++ b/arm/Microsoft.Network/virtualNetworks/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-vnet-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "addressPrefixes": { "value": [ "10.0.0.0/16" diff --git a/arm/Microsoft.Network/virtualNetworks/deploy.bicep b/arm/Microsoft.Network/virtualNetworks/deploy.bicep index f01654b201..94524b8b31 100644 --- a/arm/Microsoft.Network/virtualNetworks/deploy.bicep +++ b/arm/Microsoft.Network/virtualNetworks/deploy.bicep @@ -37,12 +37,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -99,7 +99,7 @@ var ddosProtectionPlan = { id: ddosProtectionPlanId } -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -176,7 +176,7 @@ module virtualNetwork_subnets 'subnets/deploy.bicep' = [for (subnet, index) in s routeTableId: contains(subnet, 'routeTableId') ? subnet.routeTableId : '' serviceEndpointPolicies: contains(subnet, 'serviceEndpointPolicies') ? subnet.serviceEndpointPolicies : [] serviceEndpoints: contains(subnet, 'serviceEndpoints') ? subnet.serviceEndpoints : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -192,7 +192,7 @@ module virtualNetwork_peering_local 'virtualNetworkPeerings/deploy.bicep' = [for allowVirtualNetworkAccess: contains(peering, 'allowVirtualNetworkAccess') ? peering.allowVirtualNetworkAccess : true doNotVerifyRemoteGateways: contains(peering, 'doNotVerifyRemoteGateways') ? peering.doNotVerifyRemoteGateways : true useRemoteGateways: contains(peering, 'useRemoteGateways') ? peering.useRemoteGateways : false - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -209,14 +209,14 @@ module virtualNetwork_peering_remote 'virtualNetworkPeerings/deploy.bicep' = [fo allowVirtualNetworkAccess: contains(peering, 'remotePeeringAllowVirtualNetworkAccess') ? peering.remotePeeringAllowVirtualNetworkAccess : true doNotVerifyRemoteGateways: contains(peering, 'remotePeeringDoNotVerifyRemoteGateways') ? peering.remotePeeringDoNotVerifyRemoteGateways : true useRemoteGateways: contains(peering, 'remotePeeringUseRemoteGateways') ? peering.remotePeeringUseRemoteGateways : false - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource virtualNetwork_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource virtualNetwork_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${virtualNetwork.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: virtualNetwork @@ -235,7 +235,7 @@ resource virtualNetwork_diagnosticSettings 'Microsoft.Insights/diagnosticSetting scope: virtualNetwork } -module virtualNetwork_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module virtualNetwork_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-VNet-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/virtualNetworks/readme.md b/arm/Microsoft.Network/virtualNetworks/readme.md index 9f6cd642ff..a0e79eb257 100644 --- a/arm/Microsoft.Network/virtualNetworks/readme.md +++ b/arm/Microsoft.Network/virtualNetworks/readme.md @@ -44,7 +44,7 @@ This template deploys a virtual network (vNet). | `dnsServers` | array | `[]` | | DNS Servers associated to the Virtual Network. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `subnets` | _[subnets](subnets/readme.md)_ array | `[]` | | An Array of subnets to deploy to the Virtual Network. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -406,6 +406,9 @@ module virtualNetworks './Microsoft.Network/virtualNetworks/deploy.bicep' = { "name": { "value": "<>-az-vnet-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "addressPrefixes": { "value": [ "10.0.0.0/16" @@ -506,6 +509,7 @@ module virtualNetworks './Microsoft.Network/virtualNetworks/deploy.bicep' = { name: '${uniqueString(deployment().name)}-virtualNetworks' params: { name: '<>-az-vnet-x-001' + lock: 'CanNotDelete' addressPrefixes: [ '10.0.0.0/16' ] diff --git a/arm/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/virtualNetworks/subnets/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/virtualNetworks/subnets/deploy.bicep b/arm/Microsoft.Network/virtualNetworks/subnets/deploy.bicep index d9ebbc90ba..c894752a1d 100644 --- a/arm/Microsoft.Network/virtualNetworks/subnets/deploy.bicep +++ b/arm/Microsoft.Network/virtualNetworks/subnets/deploy.bicep @@ -97,7 +97,7 @@ resource subnet 'Microsoft.Network/virtualNetworks/subnets@2021-05-01' = { } } -module subnet_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module subnet_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, subnet.id)}-Subnet-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/virtualWans/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/virtualWans/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/virtualWans/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/virtualWans/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/virtualWans/.parameters/parameters.json b/arm/Microsoft.Network/virtualWans/.parameters/parameters.json index 325af25252..15f8aa96f5 100644 --- a/arm/Microsoft.Network/virtualWans/.parameters/parameters.json +++ b/arm/Microsoft.Network/virtualWans/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-vw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "type": { "value": "Basic" }, diff --git a/arm/Microsoft.Network/virtualWans/deploy.bicep b/arm/Microsoft.Network/virtualWans/deploy.bicep index ee927daf3c..8543386fe3 100644 --- a/arm/Microsoft.Network/virtualWans/deploy.bicep +++ b/arm/Microsoft.Network/virtualWans/deploy.bicep @@ -30,12 +30,12 @@ param tags object = {} param enableDefaultTelemetry bool = true @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -61,16 +61,16 @@ resource virtualWan 'Microsoft.Network/virtualWans@2021-05-01' = { } } -resource virtualWan_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource virtualWan_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${virtualWan.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: virtualWan } -module virtualWan_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module virtualWan_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-VWan-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Network/virtualWans/readme.md b/arm/Microsoft.Network/virtualWans/readme.md index b784a244b9..5e43343b31 100644 --- a/arm/Microsoft.Network/virtualWans/readme.md +++ b/arm/Microsoft.Network/virtualWans/readme.md @@ -32,7 +32,7 @@ This template deploys a virtual WAN. | `disableVpnEncryption` | bool | `False` | | VPN encryption to be disabled or not. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location where all resources will be created. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | | `type` | string | `'Standard'` | `[Standard, Basic]` | The type of the Virtual WAN. | @@ -199,6 +199,9 @@ module virtualWans './Microsoft.Network/virtualWans/deploy.bicep' = { "name": { "value": "<>-az-vw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "type": { "value": "Basic" }, @@ -237,6 +240,7 @@ module virtualWans './Microsoft.Network/virtualWans/deploy.bicep' = { name: '${uniqueString(deployment().name)}-virtualWans' params: { name: '<>-az-vw-x-001' + lock: 'CanNotDelete' type: 'Basic' allowBranchToBranchTraffic: true allowVnetToVnetTraffic: true diff --git a/arm/Microsoft.Network/vpnGateways/.parameters/parameters.json b/arm/Microsoft.Network/vpnGateways/.parameters/parameters.json index af4f1eca8f..620e1c6ff7 100644 --- a/arm/Microsoft.Network/vpnGateways/.parameters/parameters.json +++ b/arm/Microsoft.Network/vpnGateways/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-vpngw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "virtualHubResourceId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vhub-x-001" }, diff --git a/arm/Microsoft.Network/vpnGateways/deploy.bicep b/arm/Microsoft.Network/vpnGateways/deploy.bicep index 9587e3d714..2efca6d541 100644 --- a/arm/Microsoft.Network/vpnGateways/deploy.bicep +++ b/arm/Microsoft.Network/vpnGateways/deploy.bicep @@ -29,17 +29,17 @@ param vpnGatewayScaleUnit int = 2 param tags object = {} @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -68,10 +68,10 @@ resource vpnGateway 'Microsoft.Network/vpnGateways@2021-05-01' = { } } -resource vpnGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource vpnGateway_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${vpnGateway.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: vpnGateway @@ -87,7 +87,7 @@ module vpnGateway_natRules 'natRules/deploy.bicep' = [for (natRule, index) in na ipConfigurationId: contains(natRule, 'ipConfigurationId') ? natRule.ipConfigurationId : '' mode: contains(natRule, 'mode') ? natRule.mode : '' type: contains(natRule, 'type') ? natRule.type : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -107,7 +107,7 @@ module vpnGateway_connections 'connections/deploy.bicep' = [for (connection, ind useLocalAzureIpAddress: contains(connection, 'useLocalAzureIpAddress') ? connection.useLocalAzureIpAddress : false usePolicyBasedTrafficSelectors: contains(connection, 'usePolicyBasedTrafficSelectors') ? connection.usePolicyBasedTrafficSelectors : false vpnConnectionProtocolType: contains(connection, 'vpnConnectionProtocolType') ? connection.vpnConnectionProtocolType : 'IKEv2' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.Network/vpnGateways/readme.md b/arm/Microsoft.Network/vpnGateways/readme.md index 2ad40aaf5d..5580194a3c 100644 --- a/arm/Microsoft.Network/vpnGateways/readme.md +++ b/arm/Microsoft.Network/vpnGateways/readme.md @@ -35,7 +35,7 @@ This module deploys VPN Gateways. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `isRoutingPreferenceInternet` | bool | `False` | | Enable routing preference property for the public IP interface of the VPN gateway. | | `location` | string | `[resourceGroup().location]` | | Location where all resources will be created. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `natRules` | _[natRules](natRules/readme.md)_ array | `[]` | | List of all the NAT Rules to associate with the gateway. | | `tags` | object | `{object}` | | Tags of the resource. | | `vpnGatewayScaleUnit` | int | `2` | | The scale unit for this VPN gateway. | @@ -224,6 +224,9 @@ module vpnGateways './Microsoft.Network/vpnGateways/deploy.bicep' = { "name": { "value": "<>-az-vpngw-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "virtualHubResourceId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vhub-x-001" }, @@ -296,6 +299,7 @@ module vpnGateways './Microsoft.Network/vpnGateways/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vpnGateways' params: { name: '<>-az-vpngw-x-001' + lock: 'CanNotDelete' virtualHubResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualHubs/<>-az-vhub-x-001' bgpSettings: { asn: 65515 diff --git a/arm/Microsoft.Network/vpnSites/.bicep/nested_rbac.bicep b/arm/Microsoft.Network/vpnSites/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Network/vpnSites/.bicep/nested_rbac.bicep rename to arm/Microsoft.Network/vpnSites/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Network/vpnSites/.parameters/parameters.json b/arm/Microsoft.Network/vpnSites/.parameters/parameters.json index 39ec5e30c9..94c534c5e4 100644 --- a/arm/Microsoft.Network/vpnSites/.parameters/parameters.json +++ b/arm/Microsoft.Network/vpnSites/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-vSite-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "tags": { "value": { "tagA": "valueA", diff --git a/arm/Microsoft.Network/vpnSites/deploy.bicep b/arm/Microsoft.Network/vpnSites/deploy.bicep index 333b81739f..0c62973913 100644 --- a/arm/Microsoft.Network/vpnSites/deploy.bicep +++ b/arm/Microsoft.Network/vpnSites/deploy.bicep @@ -35,12 +35,12 @@ param enableDefaultTelemetry bool = true param vpnSiteLinks array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -77,16 +77,16 @@ resource vpnSite 'Microsoft.Network/vpnSites@2021-05-01' = { } } -resource vpnSite_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource vpnSite_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${vpnSite.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: vpnSite } -module vpnSite_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module vpnSite_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-VWan-Rbac-${index}' params: { principalIds: roleAssignment.principalIds diff --git a/arm/Microsoft.Network/vpnSites/readme.md b/arm/Microsoft.Network/vpnSites/readme.md index 700bf42381..7005812d42 100644 --- a/arm/Microsoft.Network/vpnSites/readme.md +++ b/arm/Microsoft.Network/vpnSites/readme.md @@ -35,7 +35,7 @@ This module deploys a VPN Site. | `ipAddress` | string | `''` | | The IP-address for the VPN-site. Note: This is a deprecated property, please use the corresponding VpnSiteLinks property instead. | | `isSecuritySite` | bool | `False` | | IsSecuritySite flag. | | `location` | string | `[resourceGroup().location]` | | Location where all resources will be created. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `o365Policy` | object | `{object}` | | The Office365 breakout policy. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -384,6 +384,9 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { "name": { "value": "<>-az-vSite-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "tags": { "value": { "tagA": "valueA", @@ -465,6 +468,7 @@ module vpnSites './Microsoft.Network/vpnSites/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vpnSites' params: { name: '<>-az-vSite-x-001' + lock: 'CanNotDelete' tags: { tagA: 'valueA' tagB: 'valueB' diff --git a/arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_rbac.bicep b/arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_rbac.bicep rename to arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_solutions.bicep b/arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_solutions.bicep deleted file mode 100644 index 341438497c..0000000000 --- a/arm/Microsoft.OperationalInsights/workspaces/.bicep/nested_solutions.bicep +++ /dev/null @@ -1,32 +0,0 @@ -param gallerySolution string -param logAnalyticsWorkspaceName string -param location string -param product string = 'OMSGallery' -param publisher string = 'Microsoft' - -resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = { - name: logAnalyticsWorkspaceName -} - -resource solution 'Microsoft.OperationsManagement/solutions@2015-11-01-preview' = { - name: '${gallerySolution}(${logAnalyticsWorkspace.name})' - location: location - properties: { - workspaceResourceId: logAnalyticsWorkspace.id - } - plan: { - name: '${gallerySolution}(${logAnalyticsWorkspace.name})' - product: '${product}/${gallerySolution}' - promotionCode: '' - publisher: publisher - } -} - -@description('The resource ID of the deployed solution') -output resourceId string = solution.id - -@description('The resource group where the solution will be deployed') -output resourceGroupName string = resourceGroup().name - -@description('The name of the deployed solution') -output name string = solution.name diff --git a/arm/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json b/arm/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json index 0220489395..97fc2fafe4 100644 --- a/arm/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json +++ b/arm/Microsoft.OperationalInsights/workspaces/.parameters/min.parameters.json @@ -3,7 +3,7 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-la-min-001" + "value": "<>-az-law-min-001" } } } diff --git a/arm/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json b/arm/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json index 2f8d6d9b88..e69b24d3ff 100644 --- a/arm/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json +++ b/arm/Microsoft.OperationalInsights/workspaces/.parameters/parameters.json @@ -3,7 +3,10 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-la-x-001" + "value": "<>-az-law-x-001" + }, + "lock": { + "value": "CanNotDelete" }, "publicNetworkAccessForIngestion": { "value": "Disabled" @@ -31,7 +34,7 @@ "value": [ { "name": "Automation", - "resourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Automation/automationAccounts/adp-<>-wd-aut-x-001" + "resourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Automation/automationAccounts/adp-<>-az-aut-x-001" } ] }, diff --git a/arm/Microsoft.OperationalInsights/workspaces/deploy.bicep b/arm/Microsoft.OperationalInsights/workspaces/deploy.bicep index a4e5217b9c..ef5d91997d 100644 --- a/arm/Microsoft.OperationalInsights/workspaces/deploy.bicep +++ b/arm/Microsoft.OperationalInsights/workspaces/deploy.bicep @@ -25,7 +25,7 @@ param savedSearches array = [] @description('Optional. LAW data sources to configure.') param dataSources array = [] -@description('Optional. LAW gallerySolutions from the gallery.') +@description('Optional. List of gallerySolutions to be created in the log analytics workspace.') param gallerySolutions array = [] @description('Optional. Number of days data will be retained for.') @@ -72,12 +72,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -128,7 +128,7 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { var logAnalyticsSearchVersion = 1 -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -183,7 +183,7 @@ module logAnalyticsWorkspace_storageInsightConfigs 'storageInsightConfigs/deploy containers: contains(storageInsightsConfig, 'containers') ? storageInsightsConfig.containers : [] tables: contains(storageInsightsConfig, 'tables') ? storageInsightsConfig.tables : [] storageAccountId: storageInsightsConfig.storageAccountId - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -192,9 +192,9 @@ module logAnalyticsWorkspace_linkedServices 'linkedServices/deploy.bicep' = [for params: { logAnalyticsWorkspaceName: logAnalyticsWorkspace.name name: linkedService.name - resourceId: linkedService.resourceId + resourceId: contains(linkedService, 'resourceId') ? linkedService.resourceId : '' writeAccessResourceId: contains(linkedService, 'writeAccessResourceId') ? linkedService.writeAccessResourceId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -210,7 +210,7 @@ module logAnalyticsWorkspace_savedSearches 'savedSearches/deploy.bicep' = [for ( functionAlias: contains(savedSearch, 'functionAlias') ? savedSearch.functionAlias : '' functionParameters: contains(savedSearch, 'functionParameters') ? savedSearch.functionParameters : '' version: contains(savedSearch, 'version') ? savedSearch.version : 2 - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -231,31 +231,32 @@ module logAnalyticsWorkspace_dataSources 'dataSources/deploy.bicep' = [for (data syslogName: contains(dataSource, 'syslogName') ? dataSource.syslogName : '' syslogSeverities: contains(dataSource, 'syslogSeverities') ? dataSource.syslogSeverities : [] performanceCounters: contains(dataSource, 'performanceCounters') ? dataSource.performanceCounters : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -module logAnalyticsWorkspace_solutions '.bicep/nested_solutions.bicep' = [for (gallerySolution, index) in gallerySolutions: if (!empty(gallerySolutions)) { +module logAnalyticsWorkspace_solutions '../../Microsoft.OperationsManagement/solutions/deploy.bicep' = [for (gallerySolution, index) in gallerySolutions: if (!empty(gallerySolutions)) { name: '${uniqueString(deployment().name, location)}-LAW-Solution-${index}' params: { - gallerySolution: gallerySolution.name + name: gallerySolution.name location: location logAnalyticsWorkspaceName: logAnalyticsWorkspace.name - product: gallerySolution.product - publisher: gallerySolution.publisher + product: contains(gallerySolution, 'product') ? gallerySolution.product : 'OMSGallery' + publisher: contains(gallerySolution, 'publisher') ? gallerySolution.publisher : 'Microsoft' + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource logAnalyticsWorkspace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource logAnalyticsWorkspace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${logAnalyticsWorkspace.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: logAnalyticsWorkspace } -module logAnalyticsWorkspace_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module logAnalyticsWorkspace_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-LAW-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep b/arm/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep index bc67a4e5f5..73f552cbd0 100644 --- a/arm/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep +++ b/arm/Microsoft.OperationalInsights/workspaces/linkedServices/deploy.bicep @@ -42,11 +42,11 @@ resource linkedService 'Microsoft.OperationalInsights/workspaces/linkedServices@ } } +@description('The name of the deployed linked service.') +output name string = linkedService.name + @description('The resource ID of the deployed linked service.') output resourceId string = linkedService.id @description('The resource group where the linked service is deployed.') output resourceGroupName string = resourceGroup().name - -@description('The name of the deployed linked service.') -output name string = linkedService.name diff --git a/arm/Microsoft.OperationalInsights/workspaces/readme.md b/arm/Microsoft.OperationalInsights/workspaces/readme.md index 169beb411a..90c8ddfcb0 100644 --- a/arm/Microsoft.OperationalInsights/workspaces/readme.md +++ b/arm/Microsoft.OperationalInsights/workspaces/readme.md @@ -45,10 +45,10 @@ This template deploys a log analytics workspace. | `diagnosticStorageAccountId` | string | `''` | | Resource ID of the diagnostic storage account. | | `diagnosticWorkspaceId` | string | `''` | | Resource ID of a log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | -| `gallerySolutions` | array | `[]` | | LAW gallerySolutions from the gallery. | +| `gallerySolutions` | array | `[]` | | List of gallerySolutions to be created in the log analytics workspace. | | `linkedServices` | _[linkedServices](linkedServices/readme.md)_ array | `[]` | | List of services to be linked. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `publicNetworkAccessForIngestion` | string | `'Enabled'` | `[Enabled, Disabled]` | The network access type for accessing Log Analytics ingestion. | | `publicNetworkAccessForQuery` | string | `'Enabled'` | `[Enabled, Disabled]` | The network access type for accessing Log Analytics query. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -61,6 +61,8 @@ This template deploys a log analytics workspace. ### Parameter Usage: `gallerySolutions` +Ref cross-referenced _[solutions](../../Microsoft.OperationsManagement/solutions/readme.md)_ +
    Parameter JSON format @@ -70,122 +72,122 @@ This template deploys a log analytics workspace. "value": [ { "name": "AgentHealthAssessment", - "product": "OMSGallery/AgentHealthAssessment", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "AlertManagement", - "product": "OMSGallery/AlertManagement", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "AntiMalware", - "product": "OMSGallery/AntiMalware", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "AzureActivity", - "product": "OMSGallery/AzureActivity", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "AzureAutomation", - "product": "OMSGallery/AzureAutomation", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "AzureCdnCoreAnalytics", - "product": "OMSGallery/AzureCdnCoreAnalytics", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "AzureDataFactoryAnalytics", - "product": "OMSGallery/AzureDataFactoryAnalytics", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "AzureNSGAnalytics", - "product": "OMSGallery/AzureNSGAnalytics", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "AzureSQLAnalytics", - "product": "OMSGallery/AzureSQLAnalytics", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "ChangeTracking", - "product": "OMSGallery/ChangeTracking", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "Containers", - "product": "OMSGallery/Containers", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "InfrastructureInsights", - "product": "OMSGallery/InfrastructureInsights", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "KeyVaultAnalytics", - "product": "OMSGallery/KeyVaultAnalytics", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "LogicAppsManagement", - "product": "OMSGallery/LogicAppsManagement", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "NetworkMonitoring", - "product": "OMSGallery/NetworkMonitoring", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "Security", - "product": "OMSGallery/Security", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "SecurityCenterFree", - "product": "OMSGallery/SecurityCenterFree", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "ServiceFabric", - "product": "OMSGallery/ServiceFabric", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "ServiceMap", - "product": "OMSGallery/ServiceMap", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "SQLAssessment", - "product": "OMSGallery/SQLAssessment", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "Updates", - "product": "OMSGallery/Updates", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "VMInsights", - "product": "OMSGallery/VMInsights", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "WireData2", - "product": "OMSGallery/WireData2", + "product": "OMSGallery", "publisher": "Microsoft" }, { "name": "WaaSUpdateInsights", - "product": "OMSGallery/WaaSUpdateInsights", + "product": "OMSGallery", "publisher": "Microsoft" } ] @@ -202,122 +204,122 @@ This template deploys a log analytics workspace. gallerySolutions: [ { name: 'AgentHealthAssessment' - product: 'OMSGallery/AgentHealthAssessment' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'AlertManagement' - product: 'OMSGallery/AlertManagement' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'AntiMalware' - product: 'OMSGallery/AntiMalware' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'AzureActivity' - product: 'OMSGallery/AzureActivity' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'AzureAutomation' - product: 'OMSGallery/AzureAutomation' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'AzureCdnCoreAnalytics' - product: 'OMSGallery/AzureCdnCoreAnalytics' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'AzureDataFactoryAnalytics' - product: 'OMSGallery/AzureDataFactoryAnalytics' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'AzureNSGAnalytics' - product: 'OMSGallery/AzureNSGAnalytics' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'AzureSQLAnalytics' - product: 'OMSGallery/AzureSQLAnalytics' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'ChangeTracking' - product: 'OMSGallery/ChangeTracking' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'Containers' - product: 'OMSGallery/Containers' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'InfrastructureInsights' - product: 'OMSGallery/InfrastructureInsights' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'KeyVaultAnalytics' - product: 'OMSGallery/KeyVaultAnalytics' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'LogicAppsManagement' - product: 'OMSGallery/LogicAppsManagement' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'NetworkMonitoring' - product: 'OMSGallery/NetworkMonitoring' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'Security' - product: 'OMSGallery/Security' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'SecurityCenterFree' - product: 'OMSGallery/SecurityCenterFree' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'ServiceFabric' - product: 'OMSGallery/ServiceFabric' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'ServiceMap' - product: 'OMSGallery/ServiceMap' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'SQLAssessment' - product: 'OMSGallery/SQLAssessment' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'Updates' - product: 'OMSGallery/Updates' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'VMInsights' - product: 'OMSGallery/VMInsights' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'WireData2' - product: 'OMSGallery/WireData2' + product: 'OMSGallery' publisher: 'Microsoft' } { name: 'WaaSUpdateInsights' - product: 'OMSGallery/WaaSUpdateInsights' + product: 'OMSGallery' publisher: 'Microsoft' } ] @@ -450,7 +452,7 @@ tags: { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-la-min-001" + "value": "<>-az-law-min-001" } } } @@ -467,7 +469,7 @@ tags: { module workspaces './Microsoft.OperationalInsights/workspaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workspaces' params: { - name: '<>-az-la-min-001' + name: '<>-az-law-min-001' } ``` @@ -486,7 +488,10 @@ module workspaces './Microsoft.OperationalInsights/workspaces/deploy.bicep' = { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-la-x-001" + "value": "<>-az-law-x-001" + }, + "lock": { + "value": "CanNotDelete" }, "publicNetworkAccessForIngestion": { "value": "Disabled" @@ -514,7 +519,7 @@ module workspaces './Microsoft.OperationalInsights/workspaces/deploy.bicep' = { "value": [ { "name": "Automation", - "resourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Automation/automationAccounts/adp-<>-wd-aut-x-001" + "resourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Automation/automationAccounts/adp-<>-az-aut-x-001" } ] }, @@ -662,7 +667,8 @@ module workspaces './Microsoft.OperationalInsights/workspaces/deploy.bicep' = { module workspaces './Microsoft.OperationalInsights/workspaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-workspaces' params: { - name: '<>-az-la-x-001' + name: '<>-az-law-x-001' + lock: 'CanNotDelete' publicNetworkAccessForIngestion: 'Disabled' publicNetworkAccessForQuery: 'Disabled' dailyQuotaGb: 10 @@ -680,7 +686,7 @@ module workspaces './Microsoft.OperationalInsights/workspaces/deploy.bicep' = { linkedServices: [ { name: 'Automation' - resourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Automation/automationAccounts/adp-<>-wd-aut-x-001' + resourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Automation/automationAccounts/adp-<>-az-aut-x-001' } ] savedSearches: [ diff --git a/arm/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json b/arm/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json new file mode 100644 index 0000000000..6844bb4688 --- /dev/null +++ b/arm/Microsoft.OperationsManagement/solutions/.parameters/min.parameters.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "Updates" + }, + "logAnalyticsWorkspaceName": { + "value": "adp-<>-az-law-sol-001" + } + } +} diff --git a/arm/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json b/arm/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json new file mode 100644 index 0000000000..c7dcb66400 --- /dev/null +++ b/arm/Microsoft.OperationsManagement/solutions/.parameters/ms.parameters.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "AzureAutomation" + }, + "logAnalyticsWorkspaceName": { + "value": "adp-<>-az-law-sol-001" + }, + "product": { + "value": "OMSGallery" + }, + "publisher": { + "value": "Microsoft" + } + } +} diff --git a/arm/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json b/arm/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json new file mode 100644 index 0000000000..a040bf8d2f --- /dev/null +++ b/arm/Microsoft.OperationsManagement/solutions/.parameters/nonms.parameters.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "nonmsTestSolution" + }, + "logAnalyticsWorkspaceName": { + "value": "adp-<>-az-law-sol-001" + }, + "product": { + "value": "nonmsTestSolutionProduct" + }, + "publisher": { + "value": "nonmsTestSolutionPublisher" + } + } +} diff --git a/arm/Microsoft.OperationsManagement/solutions/deploy.bicep b/arm/Microsoft.OperationsManagement/solutions/deploy.bicep new file mode 100644 index 0000000000..3438041ddd --- /dev/null +++ b/arm/Microsoft.OperationsManagement/solutions/deploy.bicep @@ -0,0 +1,63 @@ +@description('Required. Name of the solution. For Microsoft published gallery solution the target solution resource name will be composed as `{name}({logAnalyticsWorkspaceName})`.') +param name string + +@description('Required. Name of the Log Analytics workspace where the solution will be deployed/enabled.') +param logAnalyticsWorkspaceName string + +@description('Optional. Location for all resources.') +param location string = resourceGroup().location + +@description('Optional. The product of the deployed solution. For Microsoft published gallery solution it should be `OMSGallery` and the target solution resource product will be composed as `OMSGallery/{name}`. For third party solution, it can be anything. This is case sensitive.') +param product string = 'OMSGallery' + +@description('Optional. The publisher name of the deployed solution. For Microsoft published gallery solution, it is `Microsoft`.') +param publisher string = 'Microsoft' + +@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') +param enableDefaultTelemetry bool = true + +resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { + name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + resources: [] + } + } +} + +resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = { + name: logAnalyticsWorkspaceName +} + +var solutionName = publisher == 'Microsoft' ? '${name}(${logAnalyticsWorkspace.name})' : name + +var solutionProduct = publisher == 'Microsoft' ? 'OMSGallery/${name}' : product + +resource solution 'Microsoft.OperationsManagement/solutions@2015-11-01-preview' = { + name: solutionName + location: location + properties: { + workspaceResourceId: logAnalyticsWorkspace.id + } + plan: { + name: solutionName + promotionCode: '' + product: solutionProduct + publisher: publisher + } +} + +@description('The name of the deployed solution.') +output name string = solution.name + +@description('The resource ID of the deployed solution.') +output resourceId string = solution.id + +@description('The resource group where the solution is deployed.') +output resourceGroupName string = resourceGroup().name + +@description('The location the resource was deployed into.') +output location string = solution.location diff --git a/arm/Microsoft.OperationsManagement/solutions/readme.md b/arm/Microsoft.OperationsManagement/solutions/readme.md new file mode 100644 index 0000000000..421b0fcfc8 --- /dev/null +++ b/arm/Microsoft.OperationsManagement/solutions/readme.md @@ -0,0 +1,180 @@ +# OperationsManagement Solutions `[Microsoft.OperationsManagement/solutions]` + +This module deploys OperationsManagement Solutions. + +## Navigation + +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Deployment examples](#Deployment-examples) + +## Resource Types + +| Resource Type | API Version | +| :-- | :-- | +| `Microsoft.OperationsManagement/solutions` | [2015-11-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.OperationsManagement/2015-11-01-preview/solutions) | + +## Parameters + +**Required parameters** +| Parameter Name | Type | Description | +| :-- | :-- | :-- | +| `logAnalyticsWorkspaceName` | string | Name of the Log Analytics workspace where the solution will be deployed/enabled. | +| `name` | string | Name of the solution. For Microsoft published gallery solution the target solution resource name will be composed as `{name}({logAnalyticsWorkspaceName})`. | + +**Optional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `enableDefaultTelemetry` | bool | `True` | Enable telemetry via the Customer Usage Attribution ID (GUID). | +| `location` | string | `[resourceGroup().location]` | Location for all resources. | +| `product` | string | `'OMSGallery'` | The product of the deployed solution. For Microsoft published gallery solution it should be `OMSGallery` and the target solution resource product will be composed as `OMSGallery/{name}`. For third party solution, it can be anything. This is case sensitive. | +| `publisher` | string | `'Microsoft'` | The publisher name of the deployed solution. For Microsoft published gallery solution, it is `Microsoft`. | + + +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `location` | string | The location the resource was deployed into. | +| `name` | string | The name of the deployed solution. | +| `resourceGroupName` | string | The resource group where the solution is deployed. | +| `resourceId` | string | The resource ID of the deployed solution. | + +## Deployment examples + +

    Example 1

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "Updates" + }, + "logAnalyticsWorkspaceName": { + "value": "adp-<>-az-law-sol-001" + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module solutions './Microsoft.OperationsManagement/solutions/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-solutions' + params: { + name: 'Updates' + logAnalyticsWorkspaceName: 'adp-<>-az-law-sol-001' + } +``` + +
    +

    + +

    Example 2

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "AzureAutomation" + }, + "logAnalyticsWorkspaceName": { + "value": "adp-<>-az-law-sol-001" + }, + "product": { + "value": "OMSGallery" + }, + "publisher": { + "value": "Microsoft" + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module solutions './Microsoft.OperationsManagement/solutions/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-solutions' + params: { + name: 'AzureAutomation' + logAnalyticsWorkspaceName: 'adp-<>-az-law-sol-001' + product: 'OMSGallery' + publisher: 'Microsoft' + } +``` + +
    +

    + +

    Example 3

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "nonmsTestSolution" + }, + "logAnalyticsWorkspaceName": { + "value": "adp-<>-az-law-sol-001" + }, + "product": { + "value": "nonmsTestSolutionProduct" + }, + "publisher": { + "value": "nonmsTestSolutionPublisher" + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module solutions './Microsoft.OperationsManagement/solutions/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-solutions' + params: { + name: 'nonmsTestSolution' + logAnalyticsWorkspaceName: 'adp-<>-az-law-sol-001' + product: 'nonmsTestSolutionProduct' + publisher: 'nonmsTestSolutionPublisher' + } +``` + +
    +

    diff --git a/arm/Microsoft.OperationsManagement/solutions/version.json b/arm/Microsoft.OperationsManagement/solutions/version.json new file mode 100644 index 0000000000..41f66cc990 --- /dev/null +++ b/arm/Microsoft.OperationsManagement/solutions/version.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "0.1" +} diff --git a/arm/Microsoft.RecoveryServices/vaults/.bicep/nested_rbac.bicep b/arm/Microsoft.RecoveryServices/vaults/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.RecoveryServices/vaults/.bicep/nested_rbac.bicep rename to arm/Microsoft.RecoveryServices/vaults/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index dead4aa14b..67f01a8bb6 100644 --- a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-rsv-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "backupConfig": { "value": { "enhancedSecurityState": "Disabled", diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index d139a63e4d..2c7c040855 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -49,12 +49,12 @@ param diagnosticEventHubName string = '' param roleAssignments array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enables system assigned managed identity on the resource.') param systemAssignedIdentity bool = false @@ -136,7 +136,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -169,7 +169,7 @@ module rsv_replicationFabrics 'replicationFabrics/deploy.bicep' = [for (replicat name: contains(replicationFabric, 'name') ? replicationFabric.name : replicationFabric.location location: replicationFabric.location replicationContainers: contains(replicationFabric, 'replicationContainers') ? replicationFabric.replicationContainers : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ rsv_replicationPolicies @@ -185,7 +185,7 @@ module rsv_replicationPolicies 'replicationPolicies/deploy.bicep' = [for (replic crashConsistentFrequencyInMinutes: contains(replicationPolicy, 'crashConsistentFrequencyInMinutes') ? replicationPolicy.crashConsistentFrequencyInMinutes : 5 multiVmSyncStatus: contains(replicationPolicy, 'multiVmSyncStatus') ? replicationPolicy.multiVmSyncStatus : 'Enable' recoveryPointHistory: contains(replicationPolicy, 'recoveryPointHistory') ? replicationPolicy.recoveryPointHistory : 1440 - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -195,7 +195,7 @@ module rsv_backupStorageConfiguration 'backupStorageConfig/deploy.bicep' = if (! recoveryVaultName: rsv.name storageModelType: backupStorageConfig.storageModelType crossRegionRestoreFlag: backupStorageConfig.crossRegionRestoreFlag - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -208,7 +208,7 @@ module rsv_protectionContainers 'protectionContainers/deploy.bicep' = [for (prot friendlyName: protectionContainer.friendlyName backupManagementType: protectionContainer.backupManagementType containerType: protectionContainer.containerType - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry protectedItems: contains(protectionContainer, 'protectedItems') ? protectionContainer.protectedItems : [] location: location } @@ -220,7 +220,7 @@ module rsv_backupPolicies 'backupPolicies/deploy.bicep' = [for (backupPolicy, in recoveryVaultName: rsv.name name: backupPolicy.name backupPolicyProperties: backupPolicy.properties - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -235,14 +235,14 @@ module rsv_backupConfig 'backupConfig/deploy.bicep' = if (!empty(backupConfig)) storageModelType: contains(backupConfig, 'storageModelType') ? backupConfig.storageModelType : 'GeoRedundant' storageType: contains(backupConfig, 'storageType') ? backupConfig.storageType : 'GeoRedundant' storageTypeState: contains(backupConfig, 'storageTypeState') ? backupConfig.storageTypeState : 'Locked' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } -resource rsv_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource rsv_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${rsv.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: rsv @@ -261,7 +261,7 @@ resource rsv_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-0 scope: rsv } -module rsv_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module rsv_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-RSV-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep index 21f4a6ab47..cb49b30499 100644 --- a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/protectionContainers/deploy.bicep @@ -28,7 +28,7 @@ param sourceResourceId string = '' @description('Optional. Friendly name of the Protection Container.') param friendlyName string = '' -@description('Optional. Protected items to register in the container') +@description('Optional. Protected items to register in the container.') param protectedItems array = [] @description('Optional. Type of the container.') diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep index bb0288ee02..bc2b5c610d 100644 --- a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/deploy.bicep @@ -22,13 +22,13 @@ param location string = resourceGroup().location 'Microsoft.Compute/virtualMachines' 'Microsoft.Sql/servers/databases' ]) -@description('Required. The backup item type') +@description('Required. The backup item type.') param protectedItemType string @description('Required. ID of the backup policy with which this item is backed up.') param policyId string -@description('Required. Resource ID of the resource to back up') +@description('Required. Resource ID of the resource to back up.') param sourceResourceId string @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md b/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md index d3020e1386..fb3a8f11bc 100644 --- a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/protectionContainers/protectedItems/readme.md @@ -21,8 +21,8 @@ This module deploys a Protection Container Protected Item for a Recovery Service | :-- | :-- | :-- | :-- | | `name` | string | | Name of the resource. | | `policyId` | string | | ID of the backup policy with which this item is backed up. | -| `protectedItemType` | string | `[AzureFileShareProtectedItem, AzureVmWorkloadSAPAseDatabase, AzureVmWorkloadSAPHanaDatabase, AzureVmWorkloadSQLDatabase, DPMProtectedItem, GenericProtectedItem, MabFileFolderProtectedItem, Microsoft.ClassicCompute/virtualMachines, Microsoft.Compute/virtualMachines, Microsoft.Sql/servers/databases]` | The backup item type | -| `sourceResourceId` | string | | Resource ID of the resource to back up | +| `protectedItemType` | string | `[AzureFileShareProtectedItem, AzureVmWorkloadSAPAseDatabase, AzureVmWorkloadSAPHanaDatabase, AzureVmWorkloadSQLDatabase, DPMProtectedItem, GenericProtectedItem, MabFileFolderProtectedItem, Microsoft.ClassicCompute/virtualMachines, Microsoft.Compute/virtualMachines, Microsoft.Sql/servers/databases]` | The backup item type. | +| `sourceResourceId` | string | | Resource ID of the resource to back up. | **Conditional parameters** | Parameter Name | Type | Description | diff --git a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md b/arm/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md index f3c520b4b5..5ca0d767ef 100644 --- a/arm/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/protectionContainers/readme.md @@ -35,7 +35,7 @@ This module deploys a Protection Container for a Recovery Services Vault | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `friendlyName` | string | `''` | | Friendly name of the Protection Container. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `protectedItems` | _[protectedItems](protectedItems/readme.md)_ array | `[]` | | Protected items to register in the container | +| `protectedItems` | _[protectedItems](protectedItems/readme.md)_ array | `[]` | | Protected items to register in the container. | | `sourceResourceId` | string | `''` | | Resource ID of the target resource for the Protection Container. | diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index 854102918c..a2d46f8587 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -50,7 +50,7 @@ This module deploys a recovery service vault. | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `protectionContainers` | _[protectionContainers](protectionContainers/readme.md)_ array | `[]` | | List of all protection containers. | | `replicationFabrics` | _[replicationFabrics](replicationFabrics/readme.md)_ array | `[]` | | List of all replication fabrics. | | `replicationPolicies` | _[replicationPolicies](replicationPolicies/readme.md)_ array | `[]` | | List of all replication policies. | @@ -1013,6 +1013,9 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { "name": { "value": "<>-az-rsv-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "backupConfig": { "value": { "enhancedSecurityState": "Disabled", @@ -1306,6 +1309,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { name: '${uniqueString(deployment().name)}-vaults' params: { name: '<>-az-rsv-x-001' + lock: 'CanNotDelete' backupConfig: { enhancedSecurityState: 'Disabled' softDeleteFeatureState: 'Disabled' diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep index 75d27cb4e3..554d390ddb 100644 --- a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/deploy.bicep @@ -13,7 +13,7 @@ param replicationContainers array = [] @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}-rsvPolicy' @@ -44,7 +44,7 @@ module fabric_replicationContainers 'replicationProtectionContainers/deploy.bice recoveryVaultName: recoveryVaultName replicationFabricName: name replicationContainerMappings: contains(container, 'replicationContainerMappings') ? container.replicationContainerMappings : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ replicationFabric diff --git a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep index cd531c8d17..0a6422076a 100644 --- a/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/deploy.bicep @@ -13,7 +13,7 @@ param replicationContainerMappings array = [] @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}-rsvPolicy' @@ -50,7 +50,7 @@ module fabric_container_containerMappings 'replicationProtectionContainerMapping targetProtectionContainerId: contains(mapping, 'targetProtectionContainerId') ? mapping.targetProtectionContainerId : '' targetContainerFabricName: contains(mapping, 'targetContainerFabricName') ? mapping.targetContainerFabricName : replicationFabricName targetContainerName: contains(mapping, 'targetContainerName') ? mapping.targetContainerName : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ replicationContainer diff --git a/arm/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json b/arm/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json index 9f780f49a5..accc14b0b0 100644 --- a/arm/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json +++ b/arm/Microsoft.Resources/deploymentScripts/.parameters/ps.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-ds-ps-001" }, + "lock": { + "value": "CanNotDelete" + }, "userAssignedIdentities": { "value": { "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} diff --git a/arm/Microsoft.Resources/deploymentScripts/deploy.bicep b/arm/Microsoft.Resources/deploymentScripts/deploy.bicep index a221e96143..823f3a28f4 100644 --- a/arm/Microsoft.Resources/deploymentScripts/deploy.bicep +++ b/arm/Microsoft.Resources/deploymentScripts/deploy.bicep @@ -59,12 +59,12 @@ param timeout string = 'PT1H' param baseTime string = utcNow('yyyy-MM-dd-HH-mm-ss') @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -117,11 +117,11 @@ resource deploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = { } } -resource deploymentScript_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource deploymentScript_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${deploymentScript.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: deploymentScript } diff --git a/arm/Microsoft.Resources/deploymentScripts/readme.md b/arm/Microsoft.Resources/deploymentScripts/readme.md index 4dc931953d..7d67cd731e 100644 --- a/arm/Microsoft.Resources/deploymentScripts/readme.md +++ b/arm/Microsoft.Resources/deploymentScripts/readme.md @@ -36,7 +36,7 @@ This module deploys a deployment script. | `environmentVariables` | array | `[]` | | The environment variables to pass over to the script. Must have a 'name' and a 'value' or a 'secretValue' property. | | `kind` | string | `'AzurePowerShell'` | `[AzurePowerShell, AzureCLI]` | Type of the script. AzurePowerShell, AzureCLI. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `primaryScriptUri` | string | `''` | | Uri for the external script. This is the entry point for the external script. To run an internal script, use the scriptContent instead. | | `retentionInterval` | string | `'P1D'` | | Interval for which the service retains the script resource after it reaches a terminal state. Resource will be deleted when this duration expires. Duration is based on ISO 8601 pattern (for example P7D means one week). | | `runOnce` | bool | `False` | | When set to false, script will run every time the template is deployed. When set to true, the script will only run once. | @@ -227,6 +227,9 @@ module deploymentScripts './Microsoft.Resources/deploymentScripts/deploy.bicep' "name": { "value": "<>-az-ds-ps-001" }, + "lock": { + "value": "CanNotDelete" + }, "userAssignedIdentities": { "value": { "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} @@ -269,6 +272,7 @@ module deploymentScripts './Microsoft.Resources/deploymentScripts/deploy.bicep' name: '${uniqueString(deployment().name)}-deploymentScripts' params: { name: '<>-az-ds-ps-001' + lock: 'CanNotDelete' userAssignedIdentities: { '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } diff --git a/arm/Microsoft.Resources/resourceGroups/.bicep/nested_lock.bicep b/arm/Microsoft.Resources/resourceGroups/.bicep/nested_lock.bicep deleted file mode 100644 index c3f8915657..0000000000 --- a/arm/Microsoft.Resources/resourceGroups/.bicep/nested_lock.bicep +++ /dev/null @@ -1,31 +0,0 @@ -@description('Optional. The name of the Lock') -param name string = '' - -@allowed([ - 'CanNotDelete' - 'NotSpecified' - 'ReadOnly' -]) -@description('Optional. Set lock level.') -param level string = 'NotSpecified' - -var lockNotes = { - CanNotDelete: 'Cannot delete resource or child resources.' - ReadOnly: 'Cannot modify the resource or child resources.' -} - -var lockName = empty(name) ? '${level}-lock' : name - -resource lock 'Microsoft.Authorization/locks@2017-04-01' = if (level != 'NotSpecified') { - name: lockName - properties: { - level: level - notes: lockNotes[level] - } -} - -@description('The resource ID of the lock') -output resourceId string = lock.id - -@description('The name of the lock') -output name string = lock.name diff --git a/arm/Microsoft.Resources/resourceGroups/.bicep/nested_rbac.bicep b/arm/Microsoft.Resources/resourceGroups/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Resources/resourceGroups/.bicep/nested_rbac.bicep rename to arm/Microsoft.Resources/resourceGroups/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Resources/resourceGroups/.parameters/parameters.json b/arm/Microsoft.Resources/resourceGroups/.parameters/parameters.json index 3be494132c..a132c26376 100644 --- a/arm/Microsoft.Resources/resourceGroups/.parameters/parameters.json +++ b/arm/Microsoft.Resources/resourceGroups/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-rg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "tags": { "value": { "Test": "Yes" diff --git a/arm/Microsoft.Resources/resourceGroups/deploy.bicep b/arm/Microsoft.Resources/resourceGroups/deploy.bicep index 81f31d26bc..e5f23ab7e8 100644 --- a/arm/Microsoft.Resources/resourceGroups/deploy.bicep +++ b/arm/Microsoft.Resources/resourceGroups/deploy.bicep @@ -7,12 +7,12 @@ param name string param location string = deployment().location @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -43,16 +43,16 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2019-05-01' = { properties: {} } -module resourceGroup_lock '.bicep/nested_lock.bicep' = if (lock != 'NotSpecified') { - scope: resourceGroup - name: '${uniqueString(deployment().name, location)}-RG-${lock}-Lock' +module resourceGroup_lock '../../Microsoft.Authorization/locks/resourceGroup/deploy.bicep' = if (!empty(lock)) { + name: '${uniqueString(deployment().name, location)}-${lock}-Lock' params: { + level: any(lock) name: '${resourceGroup.name}-${lock}-lock' - level: lock } + scope: resourceGroup } -module resourceGroup_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module resourceGroup_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-RG-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Resources/resourceGroups/readme.md b/arm/Microsoft.Resources/resourceGroups/readme.md index dc6cb908a1..46bc18871f 100644 --- a/arm/Microsoft.Resources/resourceGroups/readme.md +++ b/arm/Microsoft.Resources/resourceGroups/readme.md @@ -30,7 +30,7 @@ This module deploys a resource group. | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[deployment().location]` | | Location of the Resource Group. It uses the deployment's location when not provided. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the storage account resource. | @@ -163,6 +163,9 @@ This module requires a User Assigned Identity (MSI, managed service identity) to "name": { "value": "<>-az-rg-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "tags": { "value": { "Test": "Yes" @@ -194,6 +197,7 @@ module resourceGroups './Microsoft.Resources/resourceGroups/deploy.bicep' = { name: '${uniqueString(deployment().name)}-resourceGroups' params: { name: '<>-az-rg-x-001' + lock: 'CanNotDelete' tags: { Test: 'Yes' } diff --git a/arm/Microsoft.Resources/tags/deploy.bicep b/arm/Microsoft.Resources/tags/deploy.bicep index 6fb849e37c..146c2c57c1 100644 --- a/arm/Microsoft.Resources/tags/deploy.bicep +++ b/arm/Microsoft.Resources/tags/deploy.bicep @@ -18,7 +18,7 @@ param location string = deployment().location @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -39,7 +39,7 @@ module tags_sub 'subscriptions/deploy.bicep' = if (!empty(subscriptionId) && emp onlyUpdate: onlyUpdate tags: tags location: location - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -49,7 +49,7 @@ module tags_rg 'resourceGroups/deploy.bicep' = if (!empty(resourceGroupName) && params: { onlyUpdate: onlyUpdate tags: tags - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Security/azureSecurityCenter/deploy.bicep b/arm/Microsoft.Security/azureSecurityCenter/deploy.bicep index b72892858d..5987272f88 100644 --- a/arm/Microsoft.Security/azureSecurityCenter/deploy.bicep +++ b/arm/Microsoft.Security/azureSecurityCenter/deploy.bicep @@ -119,6 +119,61 @@ param securityContactProperties object = {} @description('Optional. Location deployment metadata.') param location string = deployment().location +var pricings = [ + { + name: 'VirtualMachines' + pricingTier: virtualMachinesPricingTier + } + { + name: 'SqlServers' + pricingTier: sqlServersPricingTier + } + { + name: 'AppServices' + pricingTier: appServicesPricingTier + } + { + name: 'StorageAccounts' + pricingTier: storageAccountsPricingTier + } + { + name: 'SqlServerVirtualMachines' + pricingTier: sqlServerVirtualMachinesPricingTier + } + { + name: 'KubernetesService' + pricingTier: kubernetesServicePricingTier + } + { + name: 'ContainerRegistry' + pricingTier: containerRegistryPricingTier + } + { + name: 'KeyVaults' + pricingTier: keyVaultsPricingTier + } + { + name: 'Dns' + pricingTier: dnsPricingTier + } + { + name: 'Arm' + pricingTier: armPricingTier + } + { + name: 'OpenSourceRelationalDatabases' + pricingTier: openSourceRelationalDatabasesTier + } + { + name: 'Containers' + pricingTier: containersTier + } + { + name: 'CosmosDbs' + pricingTier: cosmosDbsTier + } +] + resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' location: location @@ -132,6 +187,13 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } +resource pricingTiers 'Microsoft.Security/pricings@2018-06-01' = [for (pricing, index) in pricings: { + name: pricing.name + properties: { + pricingTier: pricing.pricingTier + } +}] + resource autoProvisioningSettings 'Microsoft.Security/autoProvisioningSettings@2017-08-01-preview' = { name: 'default' properties: { @@ -157,97 +219,6 @@ module iotSecuritySolutions '.bicep/nested_iotSecuritySolutions.bicep' = if (!em } } -resource VirtualMachinesPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'VirtualMachines' - properties: { - pricingTier: virtualMachinesPricingTier - } -} - -resource SqlServersPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'SqlServers' - properties: { - pricingTier: sqlServersPricingTier - } -} - -resource AppServicesPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'AppServices' - properties: { - pricingTier: appServicesPricingTier - } -} - -resource StorageAccountsPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'StorageAccounts' - properties: { - pricingTier: storageAccountsPricingTier - } -} - -resource SqlServerVirtualMachinesPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'SqlServerVirtualMachines' - properties: { - pricingTier: sqlServerVirtualMachinesPricingTier - } -} - -resource KubernetesServicePricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'KubernetesService' - properties: { - pricingTier: kubernetesServicePricingTier - } -} - -resource ContainerRegistryPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'ContainerRegistry' - properties: { - pricingTier: containerRegistryPricingTier - } -} - -resource KeyVaultsPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'KeyVaults' - properties: { - pricingTier: keyVaultsPricingTier - } -} - -resource DnsPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'Dns' - properties: { - pricingTier: dnsPricingTier - } -} - -resource ArmPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'Arm' - properties: { - pricingTier: armPricingTier - } -} - -resource OpenSourceRelationalDatabasesPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'OpenSourceRelationalDatabases' - properties: { - pricingTier: openSourceRelationalDatabasesTier - } -} - -resource ContainersPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'Containers' - properties: { - pricingTier: containersTier - } -} - -resource CosmosDbsPricingTier 'Microsoft.Security/pricings@2018-06-01' = { - name: 'CosmosDbs' - properties: { - pricingTier: cosmosDbsTier - } -} - resource securityContacts 'Microsoft.Security/securityContacts@2017-08-01-preview' = if (!empty(securityContactProperties)) { name: 'securityContacts' properties: { @@ -269,5 +240,8 @@ resource workspaceSettings 'Microsoft.Security/workspaceSettings@2017-08-01-prev ] } -@description('The resource IDs of the used log analytics workspace.') +@description('The resource ID of the used log analytics workspace.') output workspaceId string = workspaceId + +@description('The name of the security center.') +output name string = 'Security' diff --git a/arm/Microsoft.Security/azureSecurityCenter/readme.md b/arm/Microsoft.Security/azureSecurityCenter/readme.md index 5fc8168201..c459724911 100644 --- a/arm/Microsoft.Security/azureSecurityCenter/readme.md +++ b/arm/Microsoft.Security/azureSecurityCenter/readme.md @@ -91,7 +91,8 @@ securityContactProperties: { | Output Name | Type | Description | | :-- | :-- | :-- | -| `workspaceId` | string | The resource IDs of the used log analytics workspace. | +| `name` | string | The name of the security center. | +| `workspaceId` | string | The resource ID of the used log analytics workspace. | ## Deployment examples diff --git a/arm/Microsoft.ServiceBus/namespaces/.bicep/nested_rbac.bicep b/arm/Microsoft.ServiceBus/namespaces/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/.bicep/nested_rbac.bicep rename to arm/Microsoft.ServiceBus/namespaces/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/.parameters/parameters.json b/arm/Microsoft.ServiceBus/namespaces/.parameters/parameters.json index 99487b976b..33c0288e8c 100644 --- a/arm/Microsoft.ServiceBus/namespaces/.parameters/parameters.json +++ b/arm/Microsoft.ServiceBus/namespaces/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-sbn-x-002" }, + "lock": { + "value": "CanNotDelete" + }, "skuName": { "value": "Premium" }, diff --git a/arm/Microsoft.ServiceBus/namespaces/deploy.bicep b/arm/Microsoft.ServiceBus/namespaces/deploy.bicep index 3ce9d0e7e5..d84954cc60 100644 --- a/arm/Microsoft.ServiceBus/namespaces/deploy.bicep +++ b/arm/Microsoft.ServiceBus/namespaces/deploy.bicep @@ -58,12 +58,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enables system assigned managed identity on the resource.') param systemAssignedIdentity bool = false @@ -141,7 +141,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -175,7 +175,7 @@ module serviceBusNamespace_disasterRecoveryConfig 'disasterRecoveryConfigs/deplo name: contains(disasterRecoveryConfigs, 'name') ? disasterRecoveryConfigs.name : 'default' alternateName: contains(disasterRecoveryConfigs, 'alternateName') ? disasterRecoveryConfigs.alternateName : '' partnerNamespaceResourceID: contains(disasterRecoveryConfigs, 'partnerNamespace') ? disasterRecoveryConfigs.partnerNamespace : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -186,7 +186,7 @@ module serviceBusNamespace_migrationConfigurations 'migrationConfigurations/depl name: contains(migrationConfigurations, 'name') ? migrationConfigurations.name : '$default' postMigrationName: migrationConfigurations.postMigrationName targetNamespaceResourceId: migrationConfigurations.targetNamespace - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -196,7 +196,7 @@ module serviceBusNamespace_virtualNetworkRules 'virtualNetworkRules/deploy.bicep namespaceName: serviceBusNamespace.name name: last(split(virtualNetworkRule, '/')) virtualNetworkSubnetId: virtualNetworkRule - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -206,7 +206,7 @@ module serviceBusNamespace_authorizationRules 'authorizationRules/deploy.bicep' namespaceName: serviceBusNamespace.name name: authorizationRule.name rights: contains(authorizationRule, 'rights') ? authorizationRule.rights : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -218,7 +218,7 @@ module serviceBusNamespace_ipFilterRules 'ipFilterRules/deploy.bicep' = [for (ip action: ipFilterRule.action filterName: ipFilterRule.filterName ipMask: ipFilterRule.ipMask - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -243,7 +243,7 @@ module serviceBusNamespace_queues 'queues/deploy.bicep' = [for (queue, index) in enableBatchedOperations: contains(queue, 'enableBatchedOperations') ? queue.enableBatchedOperations : true enableExpress: contains(queue, 'enableExpress') ? queue.enableExpress : false enablePartitioning: contains(queue, 'enablePartitioning') ? queue.enablePartitioning : false - lock: contains(queue, 'lock') ? queue.lock : 'NotSpecified' + lock: contains(queue, 'lock') ? queue.lock : '' lockDuration: contains(queue, 'lockDuration') ? queue.lockDuration : 'PT1M' maxDeliveryCount: contains(queue, 'maxDeliveryCount') ? queue.maxDeliveryCount : 10 maxSizeInMegabytes: contains(queue, 'maxSizeInMegabytes') ? queue.maxSizeInMegabytes : 1024 @@ -251,7 +251,7 @@ module serviceBusNamespace_queues 'queues/deploy.bicep' = [for (queue, index) in requiresSession: contains(queue, 'requiresSession') ? queue.requiresSession : false roleAssignments: contains(queue, 'roleAssignments') ? queue.roleAssignments : [] status: contains(queue, 'status') ? queue.status : 'Active' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -276,21 +276,21 @@ module serviceBusNamespace_topics 'topics/deploy.bicep' = [for (topic, index) in enableBatchedOperations: contains(topic, 'enableBatchedOperations') ? topic.enableBatchedOperations : true enableExpress: contains(topic, 'enableExpress') ? topic.enableExpress : false enablePartitioning: contains(topic, 'enablePartitioning') ? topic.enablePartitioning : false - lock: contains(topic, 'lock') ? topic.lock : 'NotSpecified' + lock: contains(topic, 'lock') ? topic.lock : '' maxMessageSizeInKilobytes: contains(topic, 'maxMessageSizeInKilobytes') ? topic.maxMessageSizeInKilobytes : 1024 maxSizeInMegabytes: contains(topic, 'maxSizeInMegabytes') ? topic.maxSizeInMegabytes : 1024 requiresDuplicateDetection: contains(topic, 'requiresDuplicateDetection') ? topic.requiresDuplicateDetection : false roleAssignments: contains(topic, 'roleAssignments') ? topic.roleAssignments : [] status: contains(topic, 'status') ? topic.status : 'Active' supportOrdering: contains(topic, 'supportOrdering') ? topic.supportOrdering : false - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource serviceBusNamespace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource serviceBusNamespace_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${serviceBusNamespace.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: serviceBusNamespace @@ -318,9 +318,9 @@ module serviceBusNamespace_privateEndpoints '../../Microsoft.Network/privateEndp name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(serviceBusNamespace.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: serviceBusNamespace.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -329,7 +329,7 @@ module serviceBusNamespace_privateEndpoints '../../Microsoft.Network/privateEndp } }] -module serviceBusNamespace_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module serviceBusNamespace_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_rbac.bicep b/arm/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_rbac.bicep rename to arm/Microsoft.ServiceBus/namespaces/queues/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/deploy.bicep b/arm/Microsoft.ServiceBus/namespaces/queues/deploy.bicep index a6f9d94625..a43ed6795c 100644 --- a/arm/Microsoft.ServiceBus/namespaces/queues/deploy.bicep +++ b/arm/Microsoft.ServiceBus/namespaces/queues/deploy.bicep @@ -70,12 +70,12 @@ param authorizationRules array = [ ] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -83,7 +83,7 @@ param roleAssignments array = [] @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -127,20 +127,20 @@ module queue_authorizationRules 'authorizationRules/deploy.bicep' = [for (author queueName: queue.name name: authorizationRule.name rights: contains(authorizationRule, 'rights') ? authorizationRule.rights : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource queue_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource queue_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${queue.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: queue } -module queue_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module queue_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.ServiceBus/namespaces/queues/readme.md b/arm/Microsoft.ServiceBus/namespaces/queues/readme.md index c6a5aed92c..cc99507252 100644 --- a/arm/Microsoft.ServiceBus/namespaces/queues/readme.md +++ b/arm/Microsoft.ServiceBus/namespaces/queues/readme.md @@ -40,7 +40,7 @@ This module deploys a queue for a service bus namespace. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `enableExpress` | bool | `False` | | A value that indicates whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. | | `enablePartitioning` | bool | `False` | | A value that indicates whether the queue is to be partitioned across multiple message brokers. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `lockDuration` | string | `'PT1M'` | | ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute. | | `maxDeliveryCount` | int | `10` | | The maximum delivery count. A message is automatically deadlettered after this number of deliveries. default value is 10. | | `maxSizeInMegabytes` | int | `1024` | | The maximum size of the queue in megabytes, which is the size of memory allocated for the queue. Default is 1024. | diff --git a/arm/Microsoft.ServiceBus/namespaces/readme.md b/arm/Microsoft.ServiceBus/namespaces/readme.md index ebdb27c5d3..55a6e88415 100644 --- a/arm/Microsoft.ServiceBus/namespaces/readme.md +++ b/arm/Microsoft.ServiceBus/namespaces/readme.md @@ -52,7 +52,7 @@ This module deploys a service bus namespace resource. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `ipFilterRules` | _[ipFilterRules](ipFilterRules/readme.md)_ array | `[]` | | IP Filter Rules for the Service Bus namespace. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `migrationConfigurations` | _[migrationConfigurations](migrationConfigurations/readme.md)_ object | `{object}` | | The migration configuration. | | `name` | string | `''` | | Name of the Service Bus Namespace. If no name is provided, then unique name will be created. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. | @@ -318,6 +318,7 @@ userAssignedIdentities: { module namespaces './Microsoft.ServiceBus/namespaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-namespaces' params: { + } ``` @@ -338,6 +339,9 @@ module namespaces './Microsoft.ServiceBus/namespaces/deploy.bicep' = { "name": { "value": "<>-az-sbn-x-002" }, + "lock": { + "value": "CanNotDelete" + }, "skuName": { "value": "Premium" }, @@ -509,6 +513,7 @@ module namespaces './Microsoft.ServiceBus/namespaces/deploy.bicep' = { name: '${uniqueString(deployment().name)}-namespaces' params: { name: '<>-az-sbn-x-002' + lock: 'CanNotDelete' skuName: 'Premium' tags: {} roleAssignments: [ diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_rbac.bicep b/arm/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_rbac.bicep rename to arm/Microsoft.ServiceBus/namespaces/topics/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/deploy.bicep b/arm/Microsoft.ServiceBus/namespaces/topics/deploy.bicep index 97fc4780ba..e88f0c7830 100644 --- a/arm/Microsoft.ServiceBus/namespaces/topics/deploy.bicep +++ b/arm/Microsoft.ServiceBus/namespaces/topics/deploy.bicep @@ -67,12 +67,12 @@ param authorizationRules array = [ ] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -80,7 +80,7 @@ param roleAssignments array = [] @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -123,20 +123,20 @@ module topic_authorizationRules 'authorizationRules/deploy.bicep' = [for (author topicName: topic.name name: authorizationRule.name rights: contains(authorizationRule, 'rights') ? authorizationRule.rights : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] -resource topic_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource topic_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${topic.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: topic } -module topic_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module topic_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.ServiceBus/namespaces/topics/readme.md b/arm/Microsoft.ServiceBus/namespaces/topics/readme.md index c4b599db5e..f0d768ddde 100644 --- a/arm/Microsoft.ServiceBus/namespaces/topics/readme.md +++ b/arm/Microsoft.ServiceBus/namespaces/topics/readme.md @@ -40,7 +40,7 @@ This module deploys a topic for a service bus namespace. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `enableExpress` | bool | `False` | | A value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage. | | `enablePartitioning` | bool | `False` | | A value that indicates whether the topic is to be partitioned across multiple message brokers. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `maxMessageSizeInKilobytes` | int | `1024` | | Maximum size (in KB) of the message payload that can be accepted by the topic. This property is only used in Premium today and default is 1024. | | `maxSizeInMegabytes` | int | `1024` | | The maximum size of the topic in megabytes, which is the size of memory allocated for the topic. Default is 1024. | | `requiresDuplicateDetection` | bool | `False` | | A value indicating if this topic requires duplicate detection. | diff --git a/arm/Microsoft.ServiceFabric/clusters/.bicep/nested_rbac.bicep b/arm/Microsoft.ServiceFabric/clusters/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.ServiceFabric/clusters/.bicep/nested_rbac.bicep rename to arm/Microsoft.ServiceFabric/clusters/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json b/arm/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json index 6a7a61614e..46c19ee885 100644 --- a/arm/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json +++ b/arm/Microsoft.ServiceFabric/clusters/.parameters/full.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-sfc-full-001" }, + "lock": { + "value": "CanNotDelete" + }, "tags": { "value": { "resourceType": "Service Fabric", diff --git a/arm/Microsoft.ServiceFabric/clusters/deploy.bicep b/arm/Microsoft.ServiceFabric/clusters/deploy.bicep index f65b959456..535894f72c 100644 --- a/arm/Microsoft.ServiceFabric/clusters/deploy.bicep +++ b/arm/Microsoft.ServiceFabric/clusters/deploy.bicep @@ -8,12 +8,12 @@ param location string = resourceGroup().location param tags object = {} @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true @@ -135,7 +135,7 @@ param roleAssignments array = [] @description('Optional. Array of Service Fabric cluster application types.') param applicationTypes array = [] -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false var clientCertificateCommonNames_var = [for clientCertificateCommonName in clientCertificateCommonNames: { certificateCommonName: contains(clientCertificateCommonName, 'certificateCommonName') ? clientCertificateCommonName.certificateCommonName : null @@ -280,17 +280,17 @@ resource serviceFabricCluster 'Microsoft.ServiceFabric/clusters@2021-06-01' = { } // Service Fabric cluster resource lock -resource serviceFabricCluster_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource serviceFabricCluster_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${serviceFabricCluster.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: serviceFabricCluster } // Service Fabric cluster RBAC assignment -module serviceFabricCluster_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module serviceFabricCluster_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ServiceFabric-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -308,7 +308,7 @@ module serviceFabricCluster_applicationTypes 'applicationTypes/deploy.bicep' = [ name: applicationType.name serviceFabricClusterName: serviceFabricCluster.name tags: contains(applicationType, 'tags') ? applicationType.tags : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.ServiceFabric/clusters/readme.md b/arm/Microsoft.ServiceFabric/clusters/readme.md index 4457ae8a32..51e8917772 100644 --- a/arm/Microsoft.ServiceFabric/clusters/readme.md +++ b/arm/Microsoft.ServiceFabric/clusters/readme.md @@ -45,7 +45,7 @@ This module deploys a Service Fabric Cluster. | `fabricSettings` | array | `[]` | | The list of custom fabric settings to configure the cluster. | | `infrastructureServiceManager` | bool | `False` | | Indicates if infrastructure service manager is enabled. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `notifications` | array | `[]` | | Indicates a list of notification channels for cluster events. | | `reliabilityLevel` | string | | `[Bronze, Gold, None, Platinum, Silver]` | The reliability level sets the replica set size of system services. Learn about ReliabilityLevel (https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-capacity). - None - Run the System services with a target replica set count of 1. This should only be used for test clusters. - Bronze - Run the System services with a target replica set count of 3. This should only be used for test clusters. - Silver - Run the System services with a target replica set count of 5. - Gold - Run the System services with a target replica set count of 7. - Platinum - Run the System services with a target replica set count of 9. | | `reverseProxyCertificate` | object | `{object}` | | Describes the certificate details. | @@ -332,6 +332,9 @@ module clusters './Microsoft.ServiceFabric/clusters/deploy.bicep' = { "name": { "value": "<>-az-sfc-full-001" }, + "lock": { + "value": "CanNotDelete" + }, "tags": { "value": { "resourceType": "Service Fabric", @@ -544,6 +547,7 @@ module clusters './Microsoft.ServiceFabric/clusters/deploy.bicep' = { name: '${uniqueString(deployment().name)}-clusters' params: { name: '<>-az-sfc-full-001' + lock: 'CanNotDelete' tags: { resourceType: 'Service Fabric' clusterName: '<>-az-sfc-full-001' diff --git a/arm/Microsoft.Sql/managedInstances/.bicep/nested_rbac.bicep b/arm/Microsoft.Sql/managedInstances/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Sql/managedInstances/.bicep/nested_rbac.bicep rename to arm/Microsoft.Sql/managedInstances/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Sql/managedInstances/.parameters/parameters.json b/arm/Microsoft.Sql/managedInstances/.parameters/parameters.json index d6eef2990f..7435419747 100644 --- a/arm/Microsoft.Sql/managedInstances/.parameters/parameters.json +++ b/arm/Microsoft.Sql/managedInstances/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-sqlmi-x-002" }, + "lock": { + "value": "CanNotDelete" + }, "administratorLogin": { "reference": { "keyVault": { diff --git a/arm/Microsoft.Sql/managedInstances/databases/deploy.bicep b/arm/Microsoft.Sql/managedInstances/databases/deploy.bicep index 3926211258..32d9bbd5af 100644 --- a/arm/Microsoft.Sql/managedInstances/databases/deploy.bicep +++ b/arm/Microsoft.Sql/managedInstances/databases/deploy.bicep @@ -62,12 +62,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. The configuration for the backup short term retention policy definition.') param backupShortTermRetentionPoliciesObj object = {} @@ -107,7 +107,7 @@ var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { } }] -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -144,11 +144,11 @@ resource database 'Microsoft.Sql/managedInstances/databases@2021-05-01-preview' } } -resource database_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource database_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${last(split(database.name, '/'))}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: database } @@ -172,7 +172,7 @@ module database_backupShortTermRetentionPolicy 'backupShortTermRetentionPolicies databaseName: last(split(database.name, '/')) name: backupShortTermRetentionPoliciesObj.name retentionDays: contains(backupShortTermRetentionPoliciesObj, 'retentionDays') ? backupShortTermRetentionPoliciesObj.retentionDays : 35 - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -186,7 +186,7 @@ module database_backupLongTermRetentionPolicy 'backupLongTermRetentionPolicies/d weeklyRetention: contains(backupLongTermRetentionPoliciesObj, 'weeklyRetention') ? backupLongTermRetentionPoliciesObj.weeklyRetention : 'P1M' monthlyRetention: contains(backupLongTermRetentionPoliciesObj, 'monthlyRetention') ? backupLongTermRetentionPoliciesObj.monthlyRetention : 'P1Y' yearlyRetention: contains(backupLongTermRetentionPoliciesObj, 'yearlyRetention') ? backupLongTermRetentionPoliciesObj.yearlyRetention : 'P5Y' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Sql/managedInstances/databases/readme.md b/arm/Microsoft.Sql/managedInstances/databases/readme.md index 93c47c5572..ae3f798df1 100644 --- a/arm/Microsoft.Sql/managedInstances/databases/readme.md +++ b/arm/Microsoft.Sql/managedInstances/databases/readme.md @@ -57,7 +57,7 @@ The SQL Managed Instance Database is deployed on a SQL Managed Instance. | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `restorableDroppedDatabaseId` | string | `''` | | The restorable dropped database resource ID to restore when creating this database. | | `tags` | object | `{object}` | | Tags of the resource. | diff --git a/arm/Microsoft.Sql/managedInstances/deploy.bicep b/arm/Microsoft.Sql/managedInstances/deploy.bicep index 8e71c4c829..f8ecf40024 100644 --- a/arm/Microsoft.Sql/managedInstances/deploy.bicep +++ b/arm/Microsoft.Sql/managedInstances/deploy.bicep @@ -100,12 +100,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -199,7 +199,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -248,11 +248,11 @@ resource managedInstance 'Microsoft.Sql/managedInstances@2021-05-01-preview' = { } } -resource managedInstance_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource managedInstance_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${managedInstance.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: managedInstance } @@ -270,7 +270,7 @@ resource managedInstance_diagnosticSettings 'Microsoft.Insights/diagnosticsettin scope: managedInstance } -module managedInstance_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module managedInstance_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-SqlMi-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -294,7 +294,7 @@ module managedInstance_databases 'databases/deploy.bicep' = [for (database, inde diagnosticEventHubAuthorizationRuleId: contains(database, 'diagnosticEventHubAuthorizationRuleId') ? database.diagnosticEventHubAuthorizationRuleId : '' diagnosticEventHubName: contains(database, 'diagnosticEventHubName') ? database.diagnosticEventHubName : '' location: contains(database, 'location') ? database.location : managedInstance.location - lock: contains(database, 'lock') ? database.lock : lock + lock: contains(database, 'lock') ? database.lock : '' longTermRetentionBackupResourceId: contains(database, 'longTermRetentionBackupResourceId') ? database.longTermRetentionBackupResourceId : '' recoverableDatabaseId: contains(database, 'recoverableDatabaseId') ? database.recoverableDatabaseId : '' restorableDroppedDatabaseId: contains(database, 'restorableDroppedDatabaseId') ? database.restorableDroppedDatabaseId : '' @@ -306,7 +306,7 @@ module managedInstance_databases 'databases/deploy.bicep' = [for (database, inde diagnosticWorkspaceId: contains(database, 'diagnosticWorkspaceId') ? database.diagnosticWorkspaceId : '' backupShortTermRetentionPoliciesObj: contains(database, 'backupShortTermRetentionPolicies') ? database.backupShortTermRetentionPolicies : {} backupLongTermRetentionPoliciesObj: contains(database, 'backupLongTermRetentionPolicies') ? database.backupLongTermRetentionPolicies : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -317,7 +317,7 @@ module managedInstance_securityAlertPolicy 'securityAlertPolicies/deploy.bicep' name: securityAlertPoliciesObj.name emailAccountAdmins: contains(securityAlertPoliciesObj, 'emailAccountAdmins') ? securityAlertPoliciesObj.emailAccountAdmins : false state: contains(securityAlertPoliciesObj, 'state') ? securityAlertPoliciesObj.state : 'Disabled' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -330,7 +330,7 @@ module managedInstance_vulnerabilityAssessment 'vulnerabilityAssessments/deploy. recurringScansEmailSubscriptionAdmins: contains(vulnerabilityAssessmentsObj, 'recurringScansEmailSubscriptionAdmins') ? vulnerabilityAssessmentsObj.recurringScansEmailSubscriptionAdmins : false recurringScansIsEnabled: contains(vulnerabilityAssessmentsObj, 'recurringScansIsEnabled') ? vulnerabilityAssessmentsObj.recurringScansIsEnabled : false vulnerabilityAssessmentsStorageAccountId: contains(vulnerabilityAssessmentsObj, 'vulnerabilityAssessmentsStorageAccountId') ? vulnerabilityAssessmentsObj.vulnerabilityAssessmentsStorageAccountId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ managedInstance_securityAlertPolicy @@ -344,7 +344,7 @@ module managedInstance_key 'keys/deploy.bicep' = [for (key, index) in keys: { name: contains(key, 'name') ? key.name : '' serverKeyType: contains(key, 'serverKeyType') ? key.serverKeyType : 'ServiceManaged' uri: contains(key, 'uri') ? key.uri : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -356,7 +356,7 @@ module managedInstance_encryptionProtector 'encryptionProtector/deploy.bicep' = name: contains(encryptionProtectorObj, 'name') ? encryptionProtectorObj.serverKeyType : 'current' serverKeyType: contains(encryptionProtectorObj, 'serverKeyType') ? encryptionProtectorObj.serverKeyType : 'ServiceManaged' autoRotationEnabled: contains(encryptionProtectorObj, 'autoRotationEnabled') ? encryptionProtectorObj.autoRotationEnabled : true - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -367,7 +367,7 @@ module managedInstance_administrator 'administrators/deploy.bicep' = if (!empty( login: administratorsObj.name sid: administratorsObj.sid tenantId: contains(administratorsObj, 'tenantId') ? administratorsObj.tenantId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Sql/managedInstances/readme.md b/arm/Microsoft.Sql/managedInstances/readme.md index d0c5316e33..b420c4df0d 100644 --- a/arm/Microsoft.Sql/managedInstances/readme.md +++ b/arm/Microsoft.Sql/managedInstances/readme.md @@ -75,7 +75,7 @@ SQL MI allows for Azure AD Authentication via an [Azure AD Admin](https://docs.m | `keys` | _[keys](keys/readme.md)_ array | `[]` | | The keys to configure. | | `licenseType` | string | `'LicenseIncluded'` | `[LicenseIncluded, BasePrice]` | The license type. Possible values are 'LicenseIncluded' (regular price inclusive of a new SQL license) and 'BasePrice' (discounted AHB price for bringing your own SQL licenses). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `managedInstanceCreateMode` | string | `'Default'` | `[Default, PointInTimeRestore]` | Specifies the mode of database creation. Default: Regular instance creation. Restore: Creates an instance by restoring a set of backups to specific point in time. RestorePointInTime and SourceManagedInstanceId must be specified. | | `proxyOverride` | string | `'Proxy'` | `[Proxy, Redirect, Default]` | Connection type used for connecting to the instance. | | `publicDataEndpointEnabled` | bool | `False` | | Whether or not the public data endpoint is enabled. | @@ -288,6 +288,9 @@ userAssignedIdentities: { "name": { "value": "<>-az-sqlmi-x-002" }, + "lock": { + "value": "CanNotDelete" + }, "administratorLogin": { "reference": { "keyVault": { @@ -447,6 +450,7 @@ module managedInstances './Microsoft.Sql/managedInstances/deploy.bicep' = { name: '${uniqueString(deployment().name)}-managedInstances' params: { name: '<>-az-sqlmi-x-002' + lock: 'CanNotDelete' administratorLogin: kv1.getSecret('administratorLogin') administratorLoginPassword: kv1.getSecret('administratorLoginPassword') subnetId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-sqlmi/subnets/<>-az-subnet-x-sqlmi' diff --git a/arm/Microsoft.Sql/servers/.bicep/nested_rbac.bicep b/arm/Microsoft.Sql/servers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Sql/servers/.bicep/nested_rbac.bicep rename to arm/Microsoft.Sql/servers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Sql/servers/.parameters/parameters.json b/arm/Microsoft.Sql/servers/.parameters/parameters.json index dccaeaf027..091333e683 100644 --- a/arm/Microsoft.Sql/servers/.parameters/parameters.json +++ b/arm/Microsoft.Sql/servers/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-sqlsrv-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "administratorLogin": { "reference": { "keyVault": { diff --git a/arm/Microsoft.Sql/servers/deploy.bicep b/arm/Microsoft.Sql/servers/deploy.bicep index a9b2bc7bfc..a943bf9afd 100644 --- a/arm/Microsoft.Sql/servers/deploy.bicep +++ b/arm/Microsoft.Sql/servers/deploy.bicep @@ -18,12 +18,12 @@ param systemAssignedIdentity bool = false param userAssignedIdentities object = {} @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -56,7 +56,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false @description('Optional. The vulnerability assessment configuration.') param vulnerabilityAssessmentsObj object = {} @@ -93,16 +93,16 @@ resource server 'Microsoft.Sql/servers@2021-05-01-preview' = { } } -resource server_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource server_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${server.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: server } -module server_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module server_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Sql-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -144,7 +144,7 @@ module server_databases 'databases/deploy.bicep' = [for (database, index) in dat tags: contains(database, 'tags') ? database.tags : {} diagnosticWorkspaceId: contains(database, 'diagnosticWorkspaceId') ? database.diagnosticWorkspaceId : '' zoneRedundant: contains(database, 'zoneRedundant') ? database.zoneRedundant : false - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -157,9 +157,9 @@ module server_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy. name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(server.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: server.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -175,7 +175,7 @@ module server_firewallRules 'firewallRules/deploy.bicep' = [for (firewallRule, i serverName: server.name endIpAddress: contains(firewallRule, 'endIpAddress') ? firewallRule.endIpAddress : '0.0.0.0' startIpAddress: contains(firewallRule, 'startIpAddress') ? firewallRule.startIpAddress : '0.0.0.0' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -191,7 +191,7 @@ module server_securityAlertPolicies 'securityAlertPolicies/deploy.bicep' = [for state: contains(securityAlertPolicy, 'state') ? securityAlertPolicy.state : 'Disabled' storageAccountAccessKey: contains(securityAlertPolicy, 'storageAccountAccessKey') ? securityAlertPolicy.storageAccountAccessKey : '' storageEndpoint: contains(securityAlertPolicy, 'storageEndpoint') ? securityAlertPolicy.storageEndpoint : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] @@ -204,7 +204,7 @@ module server_vulnerabilityAssessment 'vulnerabilityAssessments/deploy.bicep' = recurringScansEmailSubscriptionAdmins: contains(vulnerabilityAssessmentsObj, 'recurringScansEmailSubscriptionAdmins') ? vulnerabilityAssessmentsObj.recurringScansEmailSubscriptionAdmins : false recurringScansIsEnabled: contains(vulnerabilityAssessmentsObj, 'recurringScansIsEnabled') ? vulnerabilityAssessmentsObj.recurringScansIsEnabled : false vulnerabilityAssessmentsStorageAccountId: contains(vulnerabilityAssessmentsObj, 'vulnerabilityAssessmentsStorageAccountId') ? vulnerabilityAssessmentsObj.vulnerabilityAssessmentsStorageAccountId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } dependsOn: [ server_securityAlertPolicies diff --git a/arm/Microsoft.Sql/servers/readme.md b/arm/Microsoft.Sql/servers/readme.md index cdc5f674f9..915a9eee9e 100644 --- a/arm/Microsoft.Sql/servers/readme.md +++ b/arm/Microsoft.Sql/servers/readme.md @@ -45,7 +45,7 @@ This module deploys a SQL server. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `firewallRules` | _[firewallRules](firewallRules/readme.md)_ array | `[]` | | The firewall rules to create in the server. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `securityAlertPolicies` | _[securityAlertPolicies](securityAlertPolicies/readme.md)_ array | `[]` | | The security alert policies to create in the server. | @@ -383,6 +383,9 @@ module servers './Microsoft.Sql/servers/deploy.bicep' = { "name": { "value": "<>-az-sqlsrv-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "administratorLogin": { "reference": { "keyVault": { @@ -498,6 +501,7 @@ module servers './Microsoft.Sql/servers/deploy.bicep' = { name: '${uniqueString(deployment().name)}-servers' params: { name: '<>-az-sqlsrv-x-001' + lock: 'CanNotDelete' administratorLogin: kv1.getSecret('administratorLogin') administratorLoginPassword: kv1.getSecret('administratorLoginPassword') location: 'westeurope' diff --git a/arm/Microsoft.Storage/storageAccounts/.bicep/nested_rbac.bicep b/arm/Microsoft.Storage/storageAccounts/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/.bicep/nested_rbac.bicep rename to arm/Microsoft.Storage/storageAccounts/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json b/arm/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json new file mode 100644 index 0000000000..cdc4f530c1 --- /dev/null +++ b/arm/Microsoft.Storage/storageAccounts/.parameters/encr.parameters.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>azsaencr001" + }, + "storageAccountSku": { + "value": "Standard_LRS" + }, + "allowBlobPublicAccess": { + "value": false + }, + "publicNetworkAccess": { + "value": "Disabled" + }, + "requireInfrastructureEncryption": { + "value": true + }, + "systemAssignedIdentity": { + "value": false + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } + }, + "cMKKeyVaultResourceId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-nopr-002" + }, + "cMKKeyName": { + "value": "keyEncryptionKey" + }, + "cMKUserAssignedIdentityResourceId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" + } + } +} diff --git a/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json b/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json index 95d58e294b..6783c5818a 100644 --- a/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json +++ b/arm/Microsoft.Storage/storageAccounts/.parameters/parameters.json @@ -17,6 +17,9 @@ "requireInfrastructureEncryption": { "value": true }, + "lock": { + "value": "CanNotDelete" + }, "privateEndpoints": { "value": [ { diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_rbac.bicep b/arm/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_rbac.bicep rename to arm/Microsoft.Storage/storageAccounts/blobServices/containers/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep b/arm/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep index d7574e5249..f4f6cb6c58 100644 --- a/arm/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep +++ b/arm/Microsoft.Storage/storageAccounts/blobServices/containers/deploy.bicep @@ -28,7 +28,7 @@ param roleAssignments array = [] @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -66,11 +66,11 @@ module immutabilityPolicy 'immutabilityPolicies/deploy.bicep' = if (!empty(immut containerName: container.name immutabilityPeriodSinceCreationInDays: contains(immutabilityPolicyProperties, 'immutabilityPeriodSinceCreationInDays') ? immutabilityPolicyProperties.immutabilityPeriodSinceCreationInDays : 365 allowProtectedAppendWrites: contains(immutabilityPolicyProperties, 'allowProtectedAppendWrites') ? immutabilityPolicyProperties.allowProtectedAppendWrites : true - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } -module container_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module container_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep b/arm/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep index 3e579d4cbc..333e1a429c 100644 --- a/arm/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep +++ b/arm/Microsoft.Storage/storageAccounts/blobServices/deploy.bicep @@ -79,7 +79,7 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { } }] -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -131,7 +131,7 @@ module blobServices_container 'containers/deploy.bicep' = [for (container, index publicAccess: contains(container, 'publicAccess') ? container.publicAccess : 'None' roleAssignments: contains(container, 'roleAssignments') ? container.roleAssignments : [] immutabilityPolicyProperties: contains(container, 'immutabilityPolicyProperties') ? container.immutabilityPolicyProperties : {} - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.Storage/storageAccounts/deploy.bicep b/arm/Microsoft.Storage/storageAccounts/deploy.bicep index 9f7b348c5b..8654467136 100644 --- a/arm/Microsoft.Storage/storageAccounts/deploy.bicep +++ b/arm/Microsoft.Storage/storageAccounts/deploy.bicep @@ -56,7 +56,7 @@ param managementPolicyRules array = [] @description('Optional. Networks ACLs, this value contains IPs to whitelist and/or Subnet information. For security reasons, it is recommended to set the DefaultAction Deny.') param networkAcls object = {} -@description('Optional. A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. For security reasons, it is recommended to set it to true.') +@description('Optional. A Boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. For security reasons, it is recommended to set it to true.') param requireInfrastructureEncryption bool = true @description('Optional. Blob service and containers to deploy.') @@ -103,12 +103,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -138,6 +138,18 @@ param diagnosticMetricsToEnable array = [ 'Transaction' ] +@description('Optional. The resource ID of a key vault to reference a customer managed key for encryption from.') +param cMKKeyVaultResourceId string = '' + +@description('Optional. The name of the customer managed key to use for encryption. Cannot be deployed together with the parameter \'systemAssignedIdentity\' enabled.') +param cMKKeyName string = '' + +@description('Conditional. User assigned identity to use when fetching the customer managed key. Required if \'cMKKeyName\' is not empty.') +param cMKUserAssignedIdentityResourceId string = '' + +@description('Optional. The version of the customer managed key to reference for encryption. If not provided, latest is used.') +param cMKKeyVersion string = '' + @description('Optional. The name of the diagnostic setting, if deployed.') param diagnosticSettingsName string = '${name}-diagnosticSettings' @@ -164,7 +176,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' @@ -178,6 +190,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } +resource keyVault 'Microsoft.KeyVault/vaults@2021-06-01-preview' existing = if (!empty(cMKKeyVaultResourceId)) { + name: last(split(cMKKeyVaultResourceId, '/')) + scope: resourceGroup(split(cMKKeyVaultResourceId, '/')[2], split(cMKKeyVaultResourceId, '/')[4]) +} + resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = { name: !empty(name) ? name : uniqueStorageName location: location @@ -189,7 +206,7 @@ resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = { tags: tags properties: { encryption: { - keySource: 'Microsoft.Storage' + keySource: !empty(cMKKeyName) ? 'Microsoft.Keyvault' : 'Microsoft.Storage' services: { blob: supportsBlobService ? { enabled: true @@ -197,8 +214,22 @@ resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = { file: supportsFileService ? { enabled: true } : null + table: { + enabled: true + } + queue: { + enabled: true + } } requireInfrastructureEncryption: storageAccountKind != 'Storage' ? requireInfrastructureEncryption : null + keyvaultproperties: !empty(cMKKeyName) ? { + keyname: cMKKeyName + keyvaulturi: keyVault.properties.vaultUri + keyversion: !empty(cMKKeyVersion) ? cMKKeyVersion : null + } : null + identity: !empty(cMKKeyName) ? { + userAssignedIdentity: cMKUserAssignedIdentityResourceId + } : null } accessTier: storageAccountKind != 'Storage' ? storageAccountAccessTier : null supportsHttpsTrafficOnly: supportsHttpsTrafficOnly @@ -228,16 +259,16 @@ resource storageAccount_diagnosticSettings 'Microsoft.Insights/diagnosticSetting scope: storageAccount } -resource storageAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource storageAccount_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${storageAccount.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: storageAccount } -module storageAccount_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module storageAccount_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Storage-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -257,9 +288,9 @@ module storageAccount_privateEndpoints '../../Microsoft.Network/privateEndpoints name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(storageAccount.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: storageAccount.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -274,7 +305,7 @@ module storageAccount_managementPolicies 'managementPolicies/deploy.bicep' = if params: { storageAccountName: storageAccount.name rules: managementPolicyRules - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -294,7 +325,7 @@ module storageAccount_blobServices 'blobServices/deploy.bicep' = if (!empty(blob diagnosticLogCategoriesToEnable: contains(blobServices, 'diagnosticLogCategoriesToEnable') ? blobServices.diagnosticLogCategoriesToEnable : [] diagnosticMetricsToEnable: contains(blobServices, 'diagnosticMetricsToEnable') ? blobServices.diagnosticMetricsToEnable : [] diagnosticWorkspaceId: contains(blobServices, 'diagnosticWorkspaceId') ? blobServices.diagnosticWorkspaceId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -316,7 +347,7 @@ module storageAccount_fileServices 'fileServices/deploy.bicep' = if (!empty(file } shares: contains(fileServices, 'shares') ? fileServices.shares : [] diagnosticWorkspaceId: contains(fileServices, 'diagnosticWorkspaceId') ? fileServices.diagnosticWorkspaceId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -333,7 +364,7 @@ module storageAccount_queueServices 'queueServices/deploy.bicep' = if (!empty(qu diagnosticMetricsToEnable: contains(queueServices, 'diagnosticMetricsToEnable') ? queueServices.diagnosticMetricsToEnable : [] queues: contains(queueServices, 'queues') ? queueServices.queues : [] diagnosticWorkspaceId: contains(queueServices, 'diagnosticWorkspaceId') ? queueServices.diagnosticWorkspaceId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -350,7 +381,7 @@ module storageAccount_tableServices 'tableServices/deploy.bicep' = if (!empty(ta diagnosticMetricsToEnable: contains(tableServices, 'diagnosticMetricsToEnable') ? tableServices.diagnosticMetricsToEnable : [] tables: contains(tableServices, 'tables') ? tableServices.tables : [] diagnosticWorkspaceId: contains(tableServices, 'diagnosticWorkspaceId') ? tableServices.diagnosticWorkspaceId : '' - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep b/arm/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep index cd9102f170..e3e81b1935 100644 --- a/arm/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep +++ b/arm/Microsoft.Storage/storageAccounts/fileServices/deploy.bicep @@ -79,7 +79,7 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { } }] -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -129,7 +129,7 @@ module fileServices_shares 'shares/deploy.bicep' = [for (share, index) in shares rootSquash: contains(share, 'rootSquash') ? share.rootSquash : 'NoRootSquash' sharedQuota: contains(share, 'sharedQuota') ? share.sharedQuota : 5120 roleAssignments: contains(share, 'roleAssignments') ? share.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_rbac.bicep b/arm/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_rbac.bicep rename to arm/Microsoft.Storage/storageAccounts/fileServices/shares/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep b/arm/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep index 10895d2c9e..c70d661c65 100644 --- a/arm/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep +++ b/arm/Microsoft.Storage/storageAccounts/fileServices/shares/deploy.bicep @@ -62,7 +62,7 @@ resource fileShare 'Microsoft.Storage/storageAccounts/fileServices/shares@2021-0 } } -module fileShare_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module fileShare_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep b/arm/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep index 1ad847e56c..1eead7817f 100644 --- a/arm/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep +++ b/arm/Microsoft.Storage/storageAccounts/queueServices/deploy.bicep @@ -70,7 +70,7 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { } }] -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -115,7 +115,7 @@ module queueServices_queues 'queues/deploy.bicep' = [for (queue, index) in queue name: queue.name metadata: contains(queue, 'metadata') ? queue.metadata : {} roleAssignments: contains(queue, 'roleAssignments') ? queue.roleAssignments : [] - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_rbac.bicep b/arm/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_rbac.bicep rename to arm/Microsoft.Storage/storageAccounts/queueServices/queues/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep b/arm/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep index 9a08797969..b812d142f1 100644 --- a/arm/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep +++ b/arm/Microsoft.Storage/storageAccounts/queueServices/queues/deploy.bicep @@ -45,7 +45,7 @@ resource queue 'Microsoft.Storage/storageAccounts/queueServices/queues@2019-06-0 } } -module queue_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module queue_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Storage/storageAccounts/readme.md b/arm/Microsoft.Storage/storageAccounts/readme.md index 91da356496..c98addb963 100644 --- a/arm/Microsoft.Storage/storageAccounts/readme.md +++ b/arm/Microsoft.Storage/storageAccounts/readme.md @@ -33,12 +33,20 @@ This module is used to deploy a storage account, with the ability to deploy 1 or ## Parameters +**Conditional parameters** +| Parameter Name | Type | Default Value | Description | +| :-- | :-- | :-- | :-- | +| `cMKUserAssignedIdentityResourceId` | string | `''` | User assigned identity to use when fetching the customer managed key. Required if 'cMKKeyName' is not empty. | + **Optional parameters** | Parameter Name | Type | Default Value | Allowed Values | Description | | :-- | :-- | :-- | :-- | :-- | | `allowBlobPublicAccess` | bool | `False` | | Indicates whether public access is enabled for all blobs or containers in the storage account. For security reasons, it is recommended to set it to false. | | `azureFilesIdentityBasedAuthentication` | object | `{object}` | | Provides the identity based authentication settings for Azure Files. | | `blobServices` | _[blobServices](blobServices/readme.md)_ object | `{object}` | | Blob service and containers to deploy. | +| `cMKKeyName` | string | `''` | | The name of the customer managed key to use for encryption. Cannot be deployed together with the parameter 'systemAssignedIdentity' enabled. | +| `cMKKeyVaultResourceId` | string | `''` | | The resource ID of a key vault to reference a customer managed key for encryption from. | +| `cMKKeyVersion` | string | `''` | | The version of the customer managed key to reference for encryption. If not provided, latest is used. | | `diagnosticEventHubAuthorizationRuleId` | string | `''` | | Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to. | | `diagnosticEventHubName` | string | `''` | | Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category. | | `diagnosticLogsRetentionInDays` | int | `365` | | Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely. | @@ -50,7 +58,7 @@ This module is used to deploy a storage account, with the ability to deploy 1 or | `enableHierarchicalNamespace` | bool | `False` | | If true, enables Hierarchical Namespace for the storage account. | | `fileServices` | _[fileServices](fileServices/readme.md)_ object | `{object}` | | File service and shares to deploy. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `managementPolicyRules` | array | `[]` | | The Storage Account ManagementPolicies Rules. | | `minimumTlsVersion` | string | `'TLS1_2'` | `[TLS1_0, TLS1_1, TLS1_2]` | Set the minimum TLS version on request to storage. | | `name` | string | `''` | | Name of the Storage Account. Autogenerated with a unique string if not provided. | @@ -58,7 +66,7 @@ This module is used to deploy a storage account, with the ability to deploy 1 or | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible. | | `publicNetworkAccess` | string | `'Enabled'` | `[Enabled, Disabled]` | Enable or disallow public network access to Storage Account.. | | `queueServices` | _[queueServices](queueServices/readme.md)_ object | `{object}` | | Queue service and queues to create. | -| `requireInfrastructureEncryption` | bool | `True` | | A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. For security reasons, it is recommended to set it to true. | +| `requireInfrastructureEncryption` | bool | `True` | | A Boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. For security reasons, it is recommended to set it to true. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `storageAccountAccessTier` | string | `'Hot'` | `[Hot, Cool]` | Storage Account Access Tier. | | `storageAccountKind` | string | `'StorageV2'` | `[Storage, StorageV2, BlobStorage, FileStorage, BlockBlobStorage]` | Type of Storage Account to create. | @@ -147,7 +155,7 @@ roleAssignments: [ "defaultAction": "Deny", "virtualNetworkRules": [ { - "subnetId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001" + "id": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001" } ], "ipRules": [ @@ -172,7 +180,7 @@ networkAcls: { defaultAction: 'Deny' virtualNetworkRules: [ { - subnetId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001' + id: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001' } ] ipRules: [ @@ -367,8 +375,37 @@ The hierarchical namespace of the storage account (see parameter `enableHierarch "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { + "name": { + "value": "<>azsaencr001" + }, + "storageAccountSku": { + "value": "Standard_LRS" + }, "allowBlobPublicAccess": { "value": false + }, + "publicNetworkAccess": { + "value": "Disabled" + }, + "requireInfrastructureEncryption": { + "value": true + }, + "systemAssignedIdentity": { + "value": false + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } + }, + "cMKKeyVaultResourceId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-nopr-002" + }, + "cMKKeyName": { + "value": "keyEncryptionKey" + }, + "cMKUserAssignedIdentityResourceId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001" } } } @@ -385,7 +422,18 @@ The hierarchical namespace of the storage account (see parameter `enableHierarch module storageAccounts './Microsoft.Storage/storageAccounts/deploy.bicep' = { name: '${uniqueString(deployment().name)}-storageAccounts' params: { + name: '<>azsaencr001' + storageAccountSku: 'Standard_LRS' allowBlobPublicAccess: false + publicNetworkAccess: 'Disabled' + requireInfrastructureEncryption: true + systemAssignedIdentity: false + userAssignedIdentities: { + '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + } + cMKKeyVaultResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.KeyVault/vaults/adp-<>-az-kv-nopr-002' + cMKKeyName: 'keyEncryptionKey' + cMKUserAssignedIdentityResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001' } ``` @@ -398,6 +446,42 @@ module storageAccounts './Microsoft.Storage/storageAccounts/deploy.bicep' = {

    via JSON Parameter file +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "allowBlobPublicAccess": { + "value": false + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module storageAccounts './Microsoft.Storage/storageAccounts/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-storageAccounts' + params: { + allowBlobPublicAccess: false + } +``` + +
    +

    + +

    Example 3

    + +
    + +via JSON Parameter file + ```json { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", @@ -512,7 +596,7 @@ module storageAccounts './Microsoft.Storage/storageAccounts/deploy.bicep' = {

    -

    Example 3

    +

    Example 4

    @@ -538,6 +622,9 @@ module storageAccounts './Microsoft.Storage/storageAccounts/deploy.bicep' = { "requireInfrastructureEncryption": { "value": true }, + "lock": { + "value": "CanNotDelete" + }, "privateEndpoints": { "value": [ { @@ -726,6 +813,7 @@ module storageAccounts './Microsoft.Storage/storageAccounts/deploy.bicep' = { allowBlobPublicAccess: false publicNetworkAccess: 'Disabled' requireInfrastructureEncryption: true + lock: 'CanNotDelete' privateEndpoints: [ { subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' @@ -872,7 +960,7 @@ module storageAccounts './Microsoft.Storage/storageAccounts/deploy.bicep' = {

    -

    Example 4

    +

    Example 5

    diff --git a/arm/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep b/arm/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep index 4fb7c8ec75..735855c143 100644 --- a/arm/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep +++ b/arm/Microsoft.Storage/storageAccounts/tableServices/deploy.bicep @@ -70,7 +70,7 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { } }] -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name)}' @@ -113,7 +113,7 @@ module tableServices_tables 'tables/deploy.bicep' = [for (tableName, index) in t storageAccountName: storageAccount.name tableServicesName: tableServices.name name: tableName - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } }] diff --git a/arm/Microsoft.Synapse/privateLinkHubs/.bicep/nested_rbac.bicep b/arm/Microsoft.Synapse/privateLinkHubs/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Synapse/privateLinkHubs/.bicep/nested_rbac.bicep rename to arm/Microsoft.Synapse/privateLinkHubs/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json b/arm/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json index fd7e2e3eb4..32f603e943 100644 --- a/arm/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json +++ b/arm/Microsoft.Synapse/privateLinkHubs/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "synplhstandard001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { diff --git a/arm/Microsoft.Synapse/privateLinkHubs/deploy.bicep b/arm/Microsoft.Synapse/privateLinkHubs/deploy.bicep index bd284655c7..72083d0a54 100644 --- a/arm/Microsoft.Synapse/privateLinkHubs/deploy.bicep +++ b/arm/Microsoft.Synapse/privateLinkHubs/deploy.bicep @@ -8,12 +8,12 @@ param location string = resourceGroup().location param tags object = {} @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true @@ -24,6 +24,8 @@ param roleAssignments array = [] @description('Optional. Configuration Details for private endpoints.') param privateEndpoints array = [] +var enableReferencedModulesTelemetry = false + resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' properties: { @@ -43,17 +45,17 @@ resource privateLinkHub 'Microsoft.Synapse/privateLinkHubs@2021-06-01' = { } // Resource Lock -resource privateLinkHub_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource privateLinkHub_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${privateLinkHub.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: privateLinkHub } // RBAC -module privateLinkHub_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module privateLinkHub_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -74,9 +76,9 @@ module privateLinkHub_privateEndpoints '../../Microsoft.Network/privateEndpoints name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(privateLinkHub.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: privateLinkHub.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} diff --git a/arm/Microsoft.Synapse/privateLinkHubs/readme.md b/arm/Microsoft.Synapse/privateLinkHubs/readme.md index 54e8ee621a..83d3ba5b1f 100644 --- a/arm/Microsoft.Synapse/privateLinkHubs/readme.md +++ b/arm/Microsoft.Synapse/privateLinkHubs/readme.md @@ -31,7 +31,7 @@ This module deploys Azure Synapse Analytics (private link hubs). | :-- | :-- | :-- | :-- | :-- | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | The geo-location where the resource lives. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Tags of the resource. | @@ -275,6 +275,9 @@ module privateLinkHubs './Microsoft.Synapse/privateLinkHubs/deploy.bicep' = { "name": { "value": "synplhstandard001" }, + "lock": { + "value": "CanNotDelete" + }, "roleAssignments": { "value": [ { @@ -315,6 +318,7 @@ module privateLinkHubs './Microsoft.Synapse/privateLinkHubs/deploy.bicep' = { name: '${uniqueString(deployment().name)}-privateLinkHubs' params: { name: 'synplhstandard001' + lock: 'CanNotDelete' roleAssignments: [ { roleDefinitionIdOrName: 'Reader' diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_rbac.bicep b/arm/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_rbac.bicep rename to arm/Microsoft.VirtualMachineImages/imageTemplates/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json b/arm/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json index 4b1b66c317..df382ff2e0 100644 --- a/arm/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json +++ b/arm/Microsoft.VirtualMachineImages/imageTemplates/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-imgt-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "userMsiName": { "value": "adp-<>-az-msi-x-001" }, diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep b/arm/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep index a8cd986798..d871b0c4f9 100644 --- a/arm/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep +++ b/arm/Microsoft.VirtualMachineImages/imageTemplates/deploy.bicep @@ -43,12 +43,12 @@ param sigImageDefinitionId string = '' param imageReplicationRegions array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -155,16 +155,16 @@ resource imageTemplate 'Microsoft.VirtualMachineImages/imageTemplates@2020-02-14 } } -resource imageTemplate_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource imageTemplate_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${imageTemplate.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: imageTemplate } -module imageTemplate_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module imageTemplate_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-ImageTemplate-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.VirtualMachineImages/imageTemplates/readme.md b/arm/Microsoft.VirtualMachineImages/imageTemplates/readme.md index a0c2a5bd73..52757187c5 100644 --- a/arm/Microsoft.VirtualMachineImages/imageTemplates/readme.md +++ b/arm/Microsoft.VirtualMachineImages/imageTemplates/readme.md @@ -34,7 +34,7 @@ This module deploys an image template that can be consumed by the Azure Image Bu | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `imageReplicationRegions` | array | `[]` | | List of the regions the image produced by this solution should be stored in the Shared Image Gallery. When left empty, the deployment's location will be taken as a default value. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `managedImageName` | string | `''` | | Name of the managed image that will be created in the AIB resourcegroup. | | `osDiskSizeGB` | int | `128` | | Specifies the size of OS disk. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -274,6 +274,9 @@ roleAssignments: [ "name": { "value": "<>-az-imgt-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "userMsiName": { "value": "adp-<>-az-msi-x-001" }, @@ -347,6 +350,7 @@ module imageTemplates './Microsoft.VirtualMachineImages/imageTemplates/deploy.bi name: '${uniqueString(deployment().name)}-imageTemplates' params: { name: '<>-az-imgt-x-001' + lock: 'CanNotDelete' userMsiName: 'adp-<>-az-msi-x-001' userMsiResourceGroup: 'validation-rg' buildTimeoutInMinutes: 0 diff --git a/arm/Microsoft.Web/connections/.bicep/nested_rbac.bicep b/arm/Microsoft.Web/connections/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/connections/.bicep/nested_rbac.bicep rename to arm/Microsoft.Web/connections/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/connections/.parameters/parameters.json b/arm/Microsoft.Web/connections/.parameters/parameters.json index 7efe249404..c2862592b5 100644 --- a/arm/Microsoft.Web/connections/.parameters/parameters.json +++ b/arm/Microsoft.Web/connections/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "azuremonitor" }, + "lock": { + "value": "CanNotDelete" + }, "displayName": { "value": "azuremonitorlogs" }, diff --git a/arm/Microsoft.Web/connections/deploy.bicep b/arm/Microsoft.Web/connections/deploy.bicep index d2635f4627..48c60e7d23 100644 --- a/arm/Microsoft.Web/connections/deploy.bicep +++ b/arm/Microsoft.Web/connections/deploy.bicep @@ -33,12 +33,12 @@ param roleAssignments array = [] param statuses array = [] @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Tags of the resource.') param tags object = {} @@ -73,16 +73,16 @@ resource connection 'Microsoft.Web/connections@2016-06-01' = { } } -resource connection_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource connection_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${connection.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: connection } -module connection_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module connection_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Connection-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Web/connections/readme.md b/arm/Microsoft.Web/connections/readme.md index a6d820508e..1712310f3b 100644 --- a/arm/Microsoft.Web/connections/readme.md +++ b/arm/Microsoft.Web/connections/readme.md @@ -33,7 +33,7 @@ This module deploys an Azure API connection. | `customParameterValues` | object | `{object}` | | Customized parameter values for specific connections. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location of the deployment. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `nonSecretParameterValues` | object | `{object}` | | Dictionary of nonsecret parameter values. | | `parameterValues` | secureObject | `{object}` | | Connection strings or access keys for connection. Example: 'accountName' and 'accessKey' when using blobs. It can change depending on the resource. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -167,6 +167,9 @@ tags: { "name": { "value": "azuremonitor" }, + "lock": { + "value": "CanNotDelete" + }, "displayName": { "value": "azuremonitorlogs" }, @@ -201,6 +204,7 @@ module connections './Microsoft.Web/connections/deploy.bicep' = { name: '${uniqueString(deployment().name)}-connections' params: { name: 'azuremonitor' + lock: 'CanNotDelete' displayName: 'azuremonitorlogs' connectionApi: { id: '/subscriptions/<>/providers/Microsoft.Web/locations/westeurope/managedApis/azuremonitorlogs' diff --git a/arm/Microsoft.Web/hostingEnvironments/.bicep/nested_rbac.bicep b/arm/Microsoft.Web/hostingEnvironments/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/hostingEnvironments/.bicep/nested_rbac.bicep rename to arm/Microsoft.Web/hostingEnvironments/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json b/arm/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json new file mode 100644 index 0000000000..c556495066 --- /dev/null +++ b/arm/Microsoft.Web/hostingEnvironments/.parameters/asev2.parameters.json @@ -0,0 +1,54 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-appse-asev2-001" + }, + "kind": { + "value": "ASEv2" + }, + "multiSize": { + "value": "Standard_D1_V2" + }, + "ipsslAddressCount": { + "value": 2 + }, + "clusterSettings": { + "value": [ + { + "name": "DisableTls1.0", + "value": "1" + } + ] + }, + "subnetResourceId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-008" + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + } + } +} diff --git a/arm/Microsoft.Web/hostingEnvironments/.parameters/parameters.json b/arm/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json similarity index 83% rename from arm/Microsoft.Web/hostingEnvironments/.parameters/parameters.json rename to arm/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json index cce2a36317..a304822546 100644 --- a/arm/Microsoft.Web/hostingEnvironments/.parameters/parameters.json +++ b/arm/Microsoft.Web/hostingEnvironments/.parameters/asev3.parameters.json @@ -3,7 +3,10 @@ "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-appse-x-001" + "value": "<>-az-appse-asev3-001" + }, + "lock": { + "value": "CanNotDelete" }, "subnetResourceId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006" @@ -21,6 +24,14 @@ "diagnosticLogsRetentionInDays": { "value": 7 }, + "clusterSettings": { + "value": [ + { + "name": "DisableTls1.0", + "value": "1" + } + ] + }, "diagnosticStorageAccountId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" }, diff --git a/arm/Microsoft.Web/hostingEnvironments/deploy.bicep b/arm/Microsoft.Web/hostingEnvironments/deploy.bicep index 534a8e0f45..98f2da741a 100644 --- a/arm/Microsoft.Web/hostingEnvironments/deploy.bicep +++ b/arm/Microsoft.Web/hostingEnvironments/deploy.bicep @@ -6,9 +6,9 @@ param name string param location string = resourceGroup().location @description('Optional. Kind of resource.') -param kind string = 'ASEV2' +param kind string = 'ASEv3' -@description('Required. ResourceId for the sub net.') +@description('Required. ResourceId for the subnet.') param subnetResourceId string @description('Optional. Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. - None, Web, Publishing, Web,Publishing.') @@ -19,8 +19,9 @@ param subnetResourceId string ]) param internalLoadBalancingMode string = 'None' -@description('Optional. Frontend VM size, e.g. Medium, Large.') +@description('Optional. Frontend VM size. Cannot be used with \'kind\' `ASEv3`.') @allowed([ + '' 'Medium' 'Large' 'ExtraLarge' @@ -32,10 +33,10 @@ param internalLoadBalancingMode string = 'None' 'Standard_D3_V2' 'Standard_D4_V2' ]) -param multiSize string = 'Standard_D1_V2' +param multiSize string = '' @description('Optional. Number of IP SSL addresses reserved for the App Service Environment.') -param ipsslAddressCount int = 2 +param ipsslAddressCount int = -1 @description('Optional. DNS suffix of the App Service Environment.') param dnsSuffix string = '' @@ -43,16 +44,18 @@ param dnsSuffix string = '' @description('Optional. Scale factor for frontends.') param frontEndScaleFactor int = 15 -@description('Optional. User added IP ranges to whitelist on ASE DB - string.') +@description('Optional. User added IP ranges to whitelist on ASE DB. Cannot be used with \'kind\' `ASEv3`.') param userWhitelistedIpRanges array = [] @description('Optional. Custom settings for changing the behavior of the App Service Environment.') -param clusterSettings array = [] - -@description('Optional. Set to true to deploy the App Service Environments with physical hardware isolation. If enabled, zone redundancy must be disabled.') -param physicalHardwareIsolation bool = false +param clusterSettings array = [ + { + name: 'DisableTls1.0' + value: '1' + } +] -@description('Optional. Switch to make the App Service Environment zone redundant. If enabled, the minimum App Service plan instance count will be three, otherwise 1. If enabled `physicalHardwareIsolation` must be disabled.') +@description('Optional. Switch to make the App Service Environment zone redundant. If enabled, the minimum App Service plan instance count will be three, otherwise 1. If enabled, the `dedicatedHostCount` must be set to `-1`.') param zoneRedundant bool = false @description('Optional. Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely.') @@ -73,12 +76,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -89,6 +92,9 @@ param tags object = {} @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') param enableDefaultTelemetry bool = true +@description('Optional. The Dedicated Host Count. Is not supported by ASEv2. If `zoneRedundant` is false, and you want physical hardware isolation enabled, set to 2. Otherwise 0.') +param dedicatedHostCount int = -1 + @description('Optional. The name of logs that will be streamed.') @allowed([ 'AppServiceEnvironmentPlatformLogs' @@ -109,8 +115,6 @@ var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { } }] -var vnetResourceId = split(subnetResourceId, '/') - resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (enableDefaultTelemetry) { name: 'pid-47ed15a6-730a-4827-bcb4-0fd963ffbd82-${uniqueString(deployment().name, location)}' properties: { @@ -131,24 +135,24 @@ resource appServiceEnvironment 'Microsoft.Web/hostingEnvironments@2021-03-01' = properties: { virtualNetwork: { id: subnetResourceId - subnet: last(vnetResourceId) + subnet: last(split(subnetResourceId, '/')) } internalLoadBalancingMode: internalLoadBalancingMode - multiSize: multiSize - ipsslAddressCount: ipsslAddressCount + multiSize: !empty(multiSize) ? any(multiSize) : null + ipsslAddressCount: ipsslAddressCount != -1 ? ipsslAddressCount : null dnsSuffix: dnsSuffix frontEndScaleFactor: frontEndScaleFactor clusterSettings: clusterSettings - userWhitelistedIpRanges: userWhitelistedIpRanges - dedicatedHostCount: !zoneRedundant && physicalHardwareIsolation ? 2 : 0 - zoneRedundant: !physicalHardwareIsolation && zoneRedundant ? zoneRedundant : false + userWhitelistedIpRanges: !empty(userWhitelistedIpRanges) ? userWhitelistedIpRanges : null + dedicatedHostCount: dedicatedHostCount != -1 ? dedicatedHostCount : null + zoneRedundant: zoneRedundant } } -resource appServiceEnvironment_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource appServiceEnvironment_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${appServiceEnvironment.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: appServiceEnvironment @@ -166,7 +170,7 @@ resource appServiceEnvironment_diagnosticSettings 'Microsoft.Insights/diagnostic scope: appServiceEnvironment } -module appServiceEnvironment_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module appServiceEnvironment_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AppServiceEnv-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Web/hostingEnvironments/readme.md b/arm/Microsoft.Web/hostingEnvironments/readme.md index c361f072bf..e4df12336e 100644 --- a/arm/Microsoft.Web/hostingEnvironments/readme.md +++ b/arm/Microsoft.Web/hostingEnvironments/readme.md @@ -24,12 +24,13 @@ This module deploys an app service environment. | Parameter Name | Type | Description | | :-- | :-- | :-- | | `name` | string | Name of the App Service Environment. | -| `subnetResourceId` | string | ResourceId for the sub net. | +| `subnetResourceId` | string | ResourceId for the subnet. | **Optional parameters** | Parameter Name | Type | Default Value | Allowed Values | Description | | :-- | :-- | :-- | :-- | :-- | -| `clusterSettings` | array | `[]` | | Custom settings for changing the behavior of the App Service Environment. | +| `clusterSettings` | array | `[System.Collections.Hashtable]` | | Custom settings for changing the behavior of the App Service Environment. | +| `dedicatedHostCount` | int | `-1` | | The Dedicated Host Count. Is not supported by ASEv2. If `zoneRedundant` is false, and you want physical hardware isolation enabled, set to 2. Otherwise 0. | | `diagnosticEventHubAuthorizationRuleId` | string | `''` | | Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to. | | `diagnosticEventHubName` | string | `''` | | Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category. | | `diagnosticLogCategoriesToEnable` | array | `[AppServiceEnvironmentPlatformLogs]` | `[AppServiceEnvironmentPlatformLogs]` | The name of logs that will be streamed. | @@ -41,18 +42,52 @@ This module deploys an app service environment. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `frontEndScaleFactor` | int | `15` | | Scale factor for frontends. | | `internalLoadBalancingMode` | string | `'None'` | `[None, Web, Publishing]` | Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. - None, Web, Publishing, Web,Publishing. | -| `ipsslAddressCount` | int | `2` | | Number of IP SSL addresses reserved for the App Service Environment. | -| `kind` | string | `'ASEV2'` | | Kind of resource. | +| `ipsslAddressCount` | int | `-1` | | Number of IP SSL addresses reserved for the App Service Environment. | +| `kind` | string | `'ASEv3'` | | Kind of resource. | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | -| `multiSize` | string | `'Standard_D1_V2'` | `[Medium, Large, ExtraLarge, Standard_D2, Standard_D3, Standard_D4, Standard_D1_V2, Standard_D2_V2, Standard_D3_V2, Standard_D4_V2]` | Frontend VM size, e.g. Medium, Large. | -| `physicalHardwareIsolation` | bool | `False` | | Set to true to deploy the App Service Environments with physical hardware isolation. If enabled, zone redundancy must be disabled. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | +| `multiSize` | string | `''` | `[, Medium, Large, ExtraLarge, Standard_D2, Standard_D3, Standard_D4, Standard_D1_V2, Standard_D2_V2, Standard_D3_V2, Standard_D4_V2]` | Frontend VM size. Cannot be used with 'kind' `ASEv3`. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `tags` | object | `{object}` | | Resource tags. | -| `userWhitelistedIpRanges` | array | `[]` | | User added IP ranges to whitelist on ASE DB - string. | -| `zoneRedundant` | bool | `False` | | Switch to make the App Service Environment zone redundant. If enabled, the minimum App Service plan instance count will be three, otherwise 1. If enabled `physicalHardwareIsolation` must be disabled. | +| `userWhitelistedIpRanges` | array | `[]` | | User added IP ranges to whitelist on ASE DB. Cannot be used with 'kind' `ASEv3`. | +| `zoneRedundant` | bool | `False` | | Switch to make the App Service Environment zone redundant. If enabled, the minimum App Service plan instance count will be three, otherwise 1. If enabled, the `dedicatedHostCount` must be set to `-1`. | +### Parameter Usage: `clusterSettings` + +
    + +Parameter JSON format + +```json +"clusterSettings": { + "value": [ + { + "name": "DisableTls1.0", + "value": "1" + } + ] +} +``` + +
    + + +
    + +Bicep format + +```bicep +clusterSettings: [ + { + name: 'DisableTls1.0' + value: '1' + } +] +``` + +
    + ### Parameter Usage: `roleAssignments` Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. @@ -176,7 +211,114 @@ tags: { "contentVersion": "1.0.0.0", "parameters": { "name": { - "value": "<>-az-appse-x-001" + "value": "<>-az-appse-asev2-001" + }, + "kind": { + "value": "ASEv2" + }, + "multiSize": { + "value": "Standard_D1_V2" + }, + "ipsslAddressCount": { + "value": 2 + }, + "clusterSettings": { + "value": [ + { + "name": "DisableTls1.0", + "value": "1" + } + ] + }, + "subnetResourceId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-008" + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": [ + "<>" + ] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + } + } +} + +``` + +
    + +
    + +via Bicep module + +```bicep +module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-hostingEnvironments' + params: { + name: '<>-az-appse-asev2-001' + kind: 'ASEv2' + multiSize: 'Standard_D1_V2' + ipsslAddressCount: 2 + clusterSettings: [ + { + name: 'DisableTls1.0' + value: '1' + } + ] + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-008' + roleAssignments: [ + { + roleDefinitionIdOrName: 'Reader' + principalIds: [ + '<>' + ] + } + ] + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' + diagnosticEventHubName: 'adp-<>-az-evh-x-001' + } +``` + +
    +

    + +

    Example 2

    + +
    + +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-appse-asev3-001" + }, + "lock": { + "value": "CanNotDelete" }, "subnetResourceId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006" @@ -194,6 +336,14 @@ tags: { "diagnosticLogsRetentionInDays": { "value": 7 }, + "clusterSettings": { + "value": [ + { + "name": "DisableTls1.0", + "value": "1" + } + ] + }, "diagnosticStorageAccountId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" }, @@ -221,7 +371,8 @@ tags: { module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = { name: '${uniqueString(deployment().name)}-hostingEnvironments' params: { - name: '<>-az-appse-x-001' + name: '<>-az-appse-asev3-001' + lock: 'CanNotDelete' subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006' roleAssignments: [ { @@ -232,6 +383,12 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = } ] diagnosticLogsRetentionInDays: 7 + clusterSettings: [ + { + name: 'DisableTls1.0' + value: '1' + } + ] diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diff --git a/arm/Microsoft.Web/serverfarms/.bicep/nested_rbac.bicep b/arm/Microsoft.Web/serverfarms/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/serverfarms/.bicep/nested_rbac.bicep rename to arm/Microsoft.Web/serverfarms/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/serverfarms/.parameters/parameters.json b/arm/Microsoft.Web/serverfarms/.parameters/parameters.json index 2a311c3ec0..63e6aa9044 100644 --- a/arm/Microsoft.Web/serverfarms/.parameters/parameters.json +++ b/arm/Microsoft.Web/serverfarms/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-asp-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "sku": { "value": { "name": "S1", diff --git a/arm/Microsoft.Web/serverfarms/deploy.bicep b/arm/Microsoft.Web/serverfarms/deploy.bicep index 7dff1b0ad0..278a369a95 100644 --- a/arm/Microsoft.Web/serverfarms/deploy.bicep +++ b/arm/Microsoft.Web/serverfarms/deploy.bicep @@ -43,12 +43,12 @@ param targetWorkerCount int = 0 param targetWorkerSize int = 0 @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -149,16 +149,16 @@ resource appServicePlan_diagnosticSettings 'Microsoft.Insights/diagnosticsetting scope: appServicePlan } -resource appServicePlan_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource appServicePlan_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${appServicePlan.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: appServicePlan } -module appServicePlan_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module appServicePlan_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-AppServicePlan-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' diff --git a/arm/Microsoft.Web/serverfarms/readme.md b/arm/Microsoft.Web/serverfarms/readme.md index 56f8bcda5e..37d95f9456 100644 --- a/arm/Microsoft.Web/serverfarms/readme.md +++ b/arm/Microsoft.Web/serverfarms/readme.md @@ -39,7 +39,7 @@ This module deploys an app service plan. | `diagnosticWorkspaceId` | string | `''` | | Resource ID of the diagnostic log analytics workspace. For security reasons, it is recommended to set diagnostic settings to send data to either storage account, log analytics workspace or event hub. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `maximumElasticWorkerCount` | int | `1` | | Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan. | | `perSiteScaling` | bool | `False` | | If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | @@ -212,6 +212,9 @@ tags: { "name": { "value": "<>-az-asp-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "sku": { "value": { "name": "S1", @@ -262,6 +265,7 @@ module serverf './Microsoft.Web/serverf/deploy.bicep' = { name: '${uniqueString(deployment().name)}-serverf' params: { name: '<>-az-asp-x-001' + lock: 'CanNotDelete' sku: { name: 'S1' tier: 'Standard' diff --git a/arm/Microsoft.Web/sites/.bicep/nested_rbac.bicep b/arm/Microsoft.Web/sites/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/sites/.bicep/nested_rbac.bicep rename to arm/Microsoft.Web/sites/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/sites/.parameters/fa.parameters.json b/arm/Microsoft.Web/sites/.parameters/fa.parameters.json index a3f52aa321..e67fc9f53e 100644 --- a/arm/Microsoft.Web/sites/.parameters/fa.parameters.json +++ b/arm/Microsoft.Web/sites/.parameters/fa.parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-fa-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "kind": { "value": "functionapp" }, diff --git a/arm/Microsoft.Web/sites/.parameters/wa.min.parameters.json b/arm/Microsoft.Web/sites/.parameters/wa.min.parameters.json index 73cc95e2f9..588beef102 100644 --- a/arm/Microsoft.Web/sites/.parameters/wa.min.parameters.json +++ b/arm/Microsoft.Web/sites/.parameters/wa.min.parameters.json @@ -10,6 +10,6 @@ }, "serverFarmResourceId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, + } } } diff --git a/arm/Microsoft.Web/sites/deploy.bicep b/arm/Microsoft.Web/sites/deploy.bicep index 765a0e21ee..55db6c425d 100644 --- a/arm/Microsoft.Web/sites/deploy.bicep +++ b/arm/Microsoft.Web/sites/deploy.bicep @@ -61,12 +61,12 @@ param authSettingV2Configuration object = {} // Lock @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' // Private Endpoints @description('Optional. Configuration details for private endpoints.') @@ -163,7 +163,7 @@ var identity = identityType != 'None' ? { userAssignedIdentities: !empty(userAssignedIdentities) ? userAssignedIdentities : null } : null -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false // =========== // // Deployments // @@ -208,7 +208,7 @@ module app_appsettings 'config-appsettings/deploy.bicep' = if (!empty(appSetting appInsightId: appInsightId setAzureWebJobsDashboard: setAzureWebJobsDashboard appSettingsKeyValuePairs: appSettingsKeyValuePairs - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } @@ -218,14 +218,14 @@ module app_authsettingsv2 'config-authsettingsv2/deploy.bicep' = if (!empty(auth appName: app.name kind: kind authSettingV2Configuration: authSettingV2Configuration - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry } } -resource app_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource app_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${app.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: app @@ -244,7 +244,7 @@ resource app_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-0 scope: app } -module app_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module app_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-Site-Rbac-${index}' params: { description: contains(roleAssignment, 'description') ? roleAssignment.description : '' @@ -264,9 +264,9 @@ module app_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bic name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(app.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: app.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} diff --git a/arm/Microsoft.Web/sites/readme.md b/arm/Microsoft.Web/sites/readme.md index c0e9895d5c..41ce95d629 100644 --- a/arm/Microsoft.Web/sites/readme.md +++ b/arm/Microsoft.Web/sites/readme.md @@ -48,7 +48,7 @@ This module deploys a web or function app. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `httpsOnly` | bool | `True` | | Configures a site to accept only HTTPS requests. Issues redirect for HTTP requests. | | `location` | string | `[resourceGroup().location]` | | Location for all Resources. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateEndpoints` | array | `[]` | | Configuration details for private endpoints. | | `roleAssignments` | array | `[]` | | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalId' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `serverFarmResourceId` | string | `''` | | The resource ID of the app service plan to use for the site. | @@ -458,6 +458,9 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "name": { "value": "<>-az-fa-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "kind": { "value": "functionapp" }, @@ -608,6 +611,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { name: '${uniqueString(deployment().name)}-sites' params: { name: '<>-az-fa-x-001' + lock: 'CanNotDelete' kind: 'functionapp' serverFarmResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001' siteConfig: { @@ -733,7 +737,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { }, "serverFarmResourceId": { "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, + } } } diff --git a/arm/Microsoft.Web/staticSites/.bicep/nested_rbac.bicep b/arm/Microsoft.Web/staticSites/.bicep/nested_roleAssignments.bicep similarity index 100% rename from arm/Microsoft.Web/staticSites/.bicep/nested_rbac.bicep rename to arm/Microsoft.Web/staticSites/.bicep/nested_roleAssignments.bicep diff --git a/arm/Microsoft.Web/staticSites/.parameters/parameters.json b/arm/Microsoft.Web/staticSites/.parameters/parameters.json index 46d43ca75f..68d8697715 100644 --- a/arm/Microsoft.Web/staticSites/.parameters/parameters.json +++ b/arm/Microsoft.Web/staticSites/.parameters/parameters.json @@ -5,6 +5,9 @@ "name": { "value": "<>-az-wss-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "sku": { "value": "Standard" }, diff --git a/arm/Microsoft.Web/staticSites/deploy.bicep b/arm/Microsoft.Web/staticSites/deploy.bicep index 2b80083a7c..382741ee17 100644 --- a/arm/Microsoft.Web/staticSites/deploy.bicep +++ b/arm/Microsoft.Web/staticSites/deploy.bicep @@ -58,12 +58,12 @@ param systemAssignedIdentity bool = false param userAssignedIdentities object = {} @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Configuration details for private endpoints.') param privateEndpoints array = [] @@ -77,6 +77,8 @@ param enableDefaultTelemetry bool = true @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] +var enableReferencedModulesTelemetry = false + var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned,UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None') var identity = identityType != 'None' ? { @@ -118,16 +120,16 @@ resource staticSite 'Microsoft.Web/staticSites@2021-03-01' = { } } -resource staticSite_lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource staticSite_lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${staticSite.name}-${lock}-lock' properties: { - level: lock + level: any(lock) notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: staticSite } -module staticSite_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module staticSite_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-StaticSite-Rbac-${index}' params: { principalIds: roleAssignment.principalIds @@ -145,9 +147,9 @@ module staticSite_privateEndpoints '../../Microsoft.Network/privateEndpoints/dep name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(staticSite.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: staticSite.id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} diff --git a/arm/Microsoft.Web/staticSites/readme.md b/arm/Microsoft.Web/staticSites/readme.md index 03e40547ac..50a91d2f83 100644 --- a/arm/Microsoft.Web/staticSites/readme.md +++ b/arm/Microsoft.Web/staticSites/readme.md @@ -35,7 +35,7 @@ This module deploys a Static Web Site. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `enterpriseGradeCdnStatus` | string | `'Disabled'` | `[Disabled, Disabling, Enabled, Enabling]` | State indicating the status of the enterprise grade CDN serving traffic to the static web app. | | `location` | string | `[resourceGroup().location]` | | Location to deploy static site. The following locations are supported: CentralUS, EastUS2, EastAsia, WestEurope, WestUS2. | -| `lock` | string | `'NotSpecified'` | `[CanNotDelete, NotSpecified, ReadOnly]` | Specify the type of lock. | +| `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | | `privateEndpoints` | array | `[]` | | Configuration details for private endpoints. | | `provider` | string | `'None'` | | The provider that submitted the last deployment to the primary environment of the static site. | | `repositoryToken` | secureString | `''` | | The Personal Access Token for accessing the GitHub repo. | @@ -321,6 +321,9 @@ module staticSites './Microsoft.Web/staticSites/deploy.bicep' = { "name": { "value": "<>-az-wss-x-001" }, + "lock": { + "value": "CanNotDelete" + }, "sku": { "value": "Standard" }, @@ -375,6 +378,7 @@ module staticSites './Microsoft.Web/staticSites/deploy.bicep' = { name: '${uniqueString(deployment().name)}-staticSites' params: { name: '<>-az-wss-x-001' + lock: 'CanNotDelete' sku: 'Standard' stagingEnvironmentPolicy: 'Enabled' allowConfigFileUpdates: true diff --git a/arm/README.md b/arm/README.md index fd8a96cd63..cf3cb3aa21 100644 --- a/arm/README.md +++ b/arm/README.md @@ -8,7 +8,8 @@ In this section you can find useful information regarding the Modules that are c | [Analysis Services Servers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AnalysisServices/servers) | `MS.AnalysisServices` | [servers](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AnalysisServices/servers) | | [API Management Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ApiManagement/service) | `MS.ApiManagement` | [service](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ApiManagement/service) | | [App Configuration](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AppConfiguration/configurationStores) | `MS.AppConfiguration` | [configurationStores](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.AppConfiguration/configurationStores) | -| [Policy Assignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyAssignments) | `MS.Authorization` | [policyAssignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyAssignments) | +| [Authorization Locks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/locks) | `MS.Authorization` | [locks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/locks) | +| [Policy Assignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyAssignments) | | [policyAssignments](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyAssignments) | | [Policy Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyDefinitions) | | [policyDefinitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyDefinitions) | | [Policy Exemptions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyExemptions) | | [policyExemptions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policyExemptions) | | [Policy Set Definitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policySetDefinitions) | | [policySetDefinitions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Authorization/policySetDefinitions) | @@ -31,6 +32,7 @@ In this section you can find useful information regarding the Modules that are c | [Azure Kubernetes Services](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerService/managedClusters) | `MS.ContainerService` | [managedClusters](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.ContainerService/managedClusters) | | [Azure Databricks](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Databricks/workspaces) | `MS.Databricks` | [workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Databricks/workspaces) | | [Data Factories](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataFactory/factories) | `MS.DataFactory` | [factories](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataFactory/factories) | +| [DataProtection BackupVaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataProtection/backupVaults) | `MS.DataProtection` | [backupVaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DataProtection/backupVaults) | | [AVD Application Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/applicationgroups) | `MS.DesktopVirtualization` | [applicationgroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/applicationgroups) | | [AVD Host Pools](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/hostpools) | | [hostpools](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/hostpools) | | [AVD Scaling Plans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/scalingplans) | | [scalingplans](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.DesktopVirtualization/scalingplans) | @@ -85,6 +87,7 @@ In this section you can find useful information regarding the Modules that are c | [VPN Gateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnGateways) | | [vpnGateways](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnGateways) | | [VPN Sites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnSites) | | [vpnSites](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Network/vpnSites) | | [Log Analytics Workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationalInsights/workspaces) | `MS.OperationalInsights` | [workspaces](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationalInsights/workspaces) | +| [OperationsManagement Solutions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationsManagement/solutions) | `MS.OperationsManagement` | [solutions](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.OperationsManagement/solutions) | | [Recovery Services Vaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.RecoveryServices/vaults) | `MS.RecoveryServices` | [vaults](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.RecoveryServices/vaults) | | [Deployment Scripts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/deploymentScripts) | `MS.Resources` | [deploymentScripts](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/deploymentScripts) | | [Resource Groups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/resourceGroups) | | [resourceGroups](https://github.com/Azure/ResourceModules/tree/main/arm/Microsoft.Resources/resourceGroups) | diff --git a/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/nested_rbac.bicep b/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/nested_roleAssignments.bicep similarity index 100% rename from constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/nested_rbac.bicep rename to constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/.bicep/nested_roleAssignments.bicep diff --git a/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/deploy.bicep b/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/deploy.bicep index 420aeee2f2..0fbe0c0688 100644 --- a/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/deploy.bicep +++ b/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/deploy.bicep @@ -30,7 +30,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -module nested_rbac_mg '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: if (!empty(managementGroupId) && empty(subscriptionId) && empty(resourceGroupName)) { +module nested_role_assignments_mg '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: if (!empty(managementGroupId) && empty(subscriptionId) && empty(resourceGroupName)) { name: 'roleAssignment-mg-${guid(roleAssignment.roleDefinitionIdOrName)}-${index}' params: { principalIds: roleAssignment.principalIds @@ -40,7 +40,7 @@ module nested_rbac_mg '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) } }] -module nested_rbac_sub '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: if (empty(managementGroupId) && !empty(subscriptionId) && empty(resourceGroupName)) { +module nested_role_assignments_sub '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: if (empty(managementGroupId) && !empty(subscriptionId) && empty(resourceGroupName)) { name: 'roleAssignment-sub-${guid(roleAssignment.roleDefinitionIdOrName)}-${index}' params: { principalIds: roleAssignment.principalIds @@ -50,7 +50,7 @@ module nested_rbac_sub '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) } }] -module nested_rbac_rg '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: if (empty(managementGroupId) && !empty(resourceGroupName) && !empty(subscriptionId)) { +module nested_role_assignments_rg '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: if (empty(managementGroupId) && !empty(resourceGroupName) && !empty(subscriptionId)) { name: 'roleAssignment-rg-${guid(roleAssignment.roleDefinitionIdOrName)}-${index}' params: { principalIds: roleAssignment.principalIds @@ -62,7 +62,7 @@ module nested_rbac_rg '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) }] @description('The scope of the deployed role assignments.') -output roleAssignmentScope string = !empty(managementGroupId) ? nested_rbac_mg[0].outputs.roleAssignmentScope : (!empty(resourceGroupName) ? nested_rbac_rg[0].outputs.roleAssignmentScope : nested_rbac_sub[0].outputs.roleAssignmentScope) +output roleAssignmentScope string = !empty(managementGroupId) ? nested_role_assignments_mg[0].outputs.roleAssignmentScope : (!empty(resourceGroupName) ? nested_role_assignments_rg[0].outputs.roleAssignmentScope : nested_role_assignments_sub[0].outputs.roleAssignmentScope) @description('The names of the deployed role assignments.') output roleAssignments array = roleAssignments diff --git a/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/readme.md b/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/readme.md index 9d53d19b2f..33de0faaef 100644 --- a/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/readme.md +++ b/constructs/Microsoft.Authorization/roleAssignments-multiRolesMultiPrincipals/readme.md @@ -27,6 +27,7 @@ This module deploys Role Assignments. | `roleAssignments` | array | `[]` | Array of role assignment objects that contain the 'roleDefinitionIdOrName' and 'principalIds' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'. | | `subscriptionId` | string | `''` | Subscription ID of the subscription to assign the RBAC role to. If no Resource Group name is provided, the module deploys at subscription level, therefore assigns the provided RBAC role to the subscription. | + ### Parameter Usage: `roleAssignments` Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. diff --git a/constructs/Microsoft.Compute/virtualMachinesMultiple/deploy.bicep b/constructs/Microsoft.Compute/virtualMachinesMultiple/deploy.bicep index 5d87b099e5..f35a53e0c0 100644 --- a/constructs/Microsoft.Compute/virtualMachinesMultiple/deploy.bicep +++ b/constructs/Microsoft.Compute/virtualMachinesMultiple/deploy.bicep @@ -247,12 +247,12 @@ param diagnosticEventHubAuthorizationRuleId string = '' param diagnosticEventHubName string = '' @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] @@ -260,9 +260,6 @@ param roleAssignments array = [] @description('Optional. Tags of the resource.') param tags object = {} -@description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') -param enableDefaultTelemetry bool = true - @description('Generated. Do not provide a value! This date value is used to generate a registration token.') param baseTime string = utcNow('u') @@ -295,13 +292,13 @@ param additionalUnattendContent array = [] param winRM object = {} @description('Optional. Any VM configuration profile assignments.') -param configurationProfileAssignments array = [] +param configurationProfileAssignments string = '' var vmGeneratedNames = [for instance in range(0, vmNumberOfInstances): '${vmNamePrefix}${padLeft((instance + vmInitialNumber), 3, '0')}'] var vmNamesToApply = !empty(vmNames) ? vmNames : vmGeneratedNames -var enableChildTelemetry = false +var enableReferencedModulesTelemetry = false module virtualMachine '../../../arm/Microsoft.Compute/virtualMachines/deploy.bicep' = [for (vmName, index) in vmNamesToApply: { name: '${deployment().name}-vm-${index}' @@ -324,7 +321,7 @@ module virtualMachine '../../../arm/Microsoft.Compute/virtualMachines/deploy.bic bootDiagnosticStorageAccountName: bootDiagnosticStorageAccountName bootDiagnosticStorageAccountUri: bootDiagnosticStorageAccountUri certificatesToBeInstalled: certificatesToBeInstalled - configurationProfileAssignments: configurationProfileAssignments + configurationProfile: configurationProfileAssignments customData: customData dataDisks: dataDisks dedicatedHostId: dedicatedHostId @@ -335,7 +332,7 @@ module virtualMachine '../../../arm/Microsoft.Compute/virtualMachines/deploy.bic diagnosticWorkspaceId: diagnosticWorkspaceId disablePasswordAuthentication: disablePasswordAuthentication enableAutomaticUpdates: enableAutomaticUpdates - enableDefaultTelemetry: enableChildTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry enableEvictionPolicy: enableEvictionPolicy enableServerSideEncryption: enableServerSideEncryption encryptionAtHost: encryptionAtHost diff --git a/docs/wiki/Contribution guide - Contribution flow.md b/docs/wiki/Contribution guide - Contribution flow.md index ecda859a53..e0deb1b3fa 100644 --- a/docs/wiki/Contribution guide - Contribution flow.md +++ b/docs/wiki/Contribution guide - Contribution flow.md @@ -1,80 +1,77 @@ This section outlines the contribution flow to the CARML repository. -Depending on the contribution, the number and execution of the required below steps may vary. +Depending on the nature of your contribution, the number and implementation of the required steps (detailed below) may vary. --- ### _Navigation_ -- [Create or pick up an issue](#Create-or-pick-up-an-issue) -- [Environment setup](#Environment-setup) -- [Implement the contribution](#Implement-the-contribution) -- [Validate the contribution](#Validate-the-contribution) -- [Open a PR](#Open-a-PR) +- [Create or pick up an issue](#create-or-pick-up-an-issue) +- [Environment setup](#environment-setup) +- [Implement the contribution](#implement-the-contribution) +- [Validate the contribution](#validate-the-contribution) +- [Open a PR](#open-a-pr) --- # Create or pick up an issue -We kindly ask to have an issue mapped to the contribution you'd like to make. -How you proceed from here depends on the scenario: +We kindly ask you to have an issue mapped to the contribution you'd like to make. +How you proceed from here, depends on the scenario: -- If you just want to contribute to this project, but don't know yet where and how, feel free to navigate the the 'Projects' tab on the repository, check what items are currently still in the 'to-do' swim lane and pick one that speaks to you. In this case you should assign the item to yourself / or reach out to discuss its content & priority. +- If you just want to contribute to this project, but don't know yet where and how you should start, navigate to the '[Projects](https://github.com/Azure/ResourceModules/projects)' tab on the repository, check what items are currently still in the 'to-do' swim lane and pick one that speaks to you. In this case you should assign the item to yourself / or reach out to discuss its content & priority. - Projects Tab + Projects Tab - > Note: For starters we suggest to search for issues labelled with `good first issue`. + > Note: For starters, we suggest to search for issues labelled with `good first issue`. -- If you find a bug or have an idea that you'd also like to work on, feel free to create an issue in the corresponding GitHub section, assign it to yourself and the project and get started. +- If you find a bug or have an idea that you'd also like to work on, create an issue in the corresponding GitHub section, assign it to yourself and to the project, and get started. - > Note: If you don't feel like working on that alone, you can label the issue with `help wanted` to let the community know. + > Note: If you don't prefer working on an issue alone, you can label the issue with `help wanted` to let the community know. # Environment setup -The preferred method of contribution requires you to create your own fork and create pull requests into the source repository from there. To set the fork up, please follow the process described [here](./Getting%20started%20-%20Scenario%201%20Onboard%20module%20library%20and%20CI%20environment). +The preferred method of contribution requires you to create your own fork and create pull requests into the source repository from there. To set the fork up, please follow the process described [here](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment). -How you proceed from here depends on the scenario: +The approach you should take, depends on your scenario: - In case you want to contribute to the documentation, you can limit the setup to forking the repository and cloning your fork locally. -- In case your contribution involves changes to the library (the modules) and/or to the CI environment (the pipelines), you need to setup the full environment, such as service principals and secrets. This will allow you to test your changes against your environment before requesting to merge them to the main repo. +- In case your contribution involves changes to the library (the modules) and/or to the CI environment (the pipelines), you need to setup the full environment, such as service principals and secrets. This will allow you to test your changes in your environment before requesting to merge them to the main repo. # Implement the contribution -How you proceed from here depends on the scenario: +How you proceed from here, depends on your scenario: -- In case you want to contribute to the CARML Wiki, your updates need to happen through the main repo under the [docs/wiki](https://github.com/Azure/ResourceModules/tree/main/docs/wiki) folder. A dedicated pipeline included in the repository will perform a sync to the CARML Wiki once the docs contribution is merged. +- In case you want to contribute to the CARML wiki, your updates need to happen through the main repo under the [docs/wiki](https://github.com/Azure/ResourceModules/tree/main/docs/wiki) folder. A dedicated pipeline included in the repository will perform a sync to the CARML wiki, once your contribution is merged. -- In case your contribution involves changes to the library (the modules) and/or to the CI environment (the pipelines), we kindly ask you to -first review respectively the [Module design](./The%20library%20-%20Module%20design) and/or the [Pipeline design](./The%20CI%20environment%20-%20Pipeline%20design) sections to make sure your contribution complies with the repository design and principles. +- In case your contribution involves changes to the library (the modules) and/or to the CI environment (the pipelines), we kindly ask you to first review the [Module design](./The%20library%20-%20Module%20design) and/or the [Pipeline design](./The%20CI%20environment%20-%20Pipeline%20design) sections respectively, to make sure your contribution complies with the repository's design and principles. -- In particular, if your contribution involves the creation of a new module or an update to an existing module: - - Make sure you also reflect your changes in the module `readme.md` file. Refer to the [Generate module Readme](./Contribution%20guide%20-%20Generate%20module%20Readme) section for details on how to leverage the Readme generator utility to support you with this task. +- If your contribution involves the creation of a new module or an update to an existing module: + - Make sure you also reflect your changes in the module's `readme.md` file. Refer to the [Generate module Readme](./Contribution%20guide%20-%20Generate%20module%20Readme) section for details on how to leverage the Readme generator utility to support you with this task. - If you are adding or updating role assignments to resources deployable by the module, refer to the [Get formatted RBAC roles](./Contribution%20guide%20-%20Get%20formatted%20RBAC%20roles) section for details on how to leverage the RBAC roles formatting utility to support you with this task. - If applicable, make sure you set or update the major and minor versions in the corresponding module `version.json` file. # Validate the contribution -Once the contribution is implemented and the changes are pushed to your forked repository, how you proceed depends on the scenario: +Once the contribution is implemented and the changes are pushed to your forked repository, how you proceed, depends on your scenario: - In case you want to contribute to the documentation, you can skip this step. -- In case your contribution involves changes to the library (the modules) and/or to the CI environment (the pipelines), we kindly ask you to validate your updates against your environment before requesting to merge them to the main repo. Test your code leveraging the CARML CI environment, as detailed in the [Pipeline usage](./The%20CI%20environment%20-%20Pipeline%20usage) section. +- In case your contribution involves changes to the library (the modules) and/or to the CI environment (the pipelines), we kindly ask you to validate your updates in your own cloud environment before requesting to merge them to the main repo. Test your code leveraging the CARML CI environment, as detailed in the [Pipeline usage](./The%20CI%20environment%20-%20Pipeline%20usage) section. > **Note**: In case your contribution involves changes to a module, you can also optionally leverage the [Validate module locally](./Contribution%20guide%20-%20Validate%20module%20locally) utility to validate the updated module from your local host before validating it through its pipeline. # Open a PR -Finally, once your contribution is implemented and validated, open a PR for CARML maintainers to review. Make sure you: +Finally, once your contribution is implemented and validated, open a PR for the CARML maintainers to review. Make sure you: - Follow instructions you find in the PR template. - Set your Github handle as assignee. -- Reference the issue number as per the [Create or pick up an issue](#Create-or-pick-up-an-issue) step. -- If applicable, please reference the badge status of your pipeline run. This badge will show the reviewer that the code changes were successfully validated & tested in your environment. To create a badge, first select the three dots (`...`) to the top right of the pipeline, and further the `Create status badge` option. +- Reference the issue number as per the [Create or pick up an issue](#create-or-pick-up-an-issue) step. +- If applicable, please reference the badge status of your pipeline run. This badge will show the reviewer that the code changes were successfully validated & tested in your environment. To create a badge, first select the three dots (`...`) at the top right of the pipeline, and then chose the `Create status badge` option. - Badge dropdown - - In the opening pop up, you first need to select your branch and then click on the `Copy status badge Markdown` - - Status badge + Badge dropdown + In the opening pop-up, you first need to select your branch and then click on the `Copy status badge Markdown` + Status badge diff --git a/docs/wiki/Contribution guide - Generate module readme.md b/docs/wiki/Contribution guide - Generate module readme.md index c63b58bdb8..1ce324a953 100644 --- a/docs/wiki/Contribution guide - Generate module readme.md +++ b/docs/wiki/Contribution guide - Generate module readme.md @@ -1,31 +1,31 @@ -As per CARML module design structure, every module in the CARML library requires a ReadMe markdown file documenting the set of deployable resource types, input and output parameters and a set of relevant template references from the official Azure Resource Reference documentation. +As per the module design structure, every module in the CARML library requires a ReadMe markdown file documenting the set of deployable resource types, input and output parameters and a set of relevant template references from the official Azure Resource Reference documentation. -The ReadMe generator utility aims to simplify contributing to the CARML library, as it supports creating from scratch or updating the module ReadMe markdown file. +The ReadMe generator utility aims to simplify contributing to the CARML library, as it supports creating the module ReadMe markdown file from scratch or updating it. --- ### _Navigation_ - [Location](#location) -- [How it works](#what-it-does) +- [How it works](#how-it-works) - [Special case: 'Parameter Usage' section](#special-case-parameter-usage-section) - [How to use it](#how-to-use-it) --- # Location -You can find the script under `/utilities/tools/Set-ModuleReadMe.ps1` +You can find the script under [`/utilities/tools/Set-ModuleReadMe.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/tools//Set-ModuleReadMe.ps1) # How it works -1. Using the provided template path, the script first makes sure to convert it to ARM/JSON if necessary (i.e. if a path to a Bicep file was provided) -1. If the intended readMe file does not yet exist in the expected path, it is generated with a skeleton (with e.g. a generated header name) -1. It then goes through all sections defined as `SectionsToRefresh` (by default all) and refreshes the section content (for example for the `Parameters`) based on the values in the ARM/JSON Template. It detects sections by their header and regenerates always the full section. -1. Once all are refreshed, the current ReadMe file is overwritten. **Note:** The script can be invoked with a `WhatIf` in combination with `Verbose` to just receive an console-output of the updated content. +1. Using the provided template path, the script first converts it to ARM/JSON if necessary (i.e., if a path to a Bicep file was provided) +1. If the intended readMe file does not yet exist in the expected path, it is generated with a skeleton (with e.g., a generated header name) +1. The script then goes through all sections defined as `SectionsToRefresh` (by default all) and refreshes the sections' content (for example, for the `Parameters`) based on the values in the ARM/JSON Template. It detects sections by their header and always regenerates the full section. +1. Once all are refreshed, the current ReadMe file is overwritten. **Note:** The script can be invoked combining the `WhatIf` and `Verbose` switches to just receive an console-output of the updated content. ## Special case: 'Parameter Usage' section -The `Parameter Usage` examples are located just beneath the `Parameters` table. They are intended to show how to use complex objects/arrays that can be provided as parameters, excluding child-resources as they have their own readMe. +The `Parameter Usage` examples are located just beneath the `Parameters` table. They are intended to show how to use complex objects/arrays that can be leveraged as parameters, excluding the child resources' parameters, since they have their own readMe files. **For the most part, this section is to be populated manually**. However, for a specific set of common parameters, we automatically add their example to the readMe if the parameter exists in the template. At the time of this writing these are: - Private Endpoints @@ -33,9 +33,9 @@ The `Parameter Usage` examples are located just beneath the `Parameters` table. - Tags - User Assigned Identities -To be able to change this list with minimum effort, the script reads the content from markdown files in the folder: `utilities/tools/moduleReadMeSource` and matches their title against the parameters of the template file. If a match is found, it's content is added to the readme alongside the generated header. This means, if you want to add another case, you just need to add a new file to the `moduleReadMeSource` folder and follow the naming pattern `resourceUsage-.md`. +To change this list with minimum effort, the script reads the content from markdown files in the folder of `utilities/tools/moduleReadMeSource`, and matches their title to the parameters of the template file. If a match is found, it's content is added to the readme alongside the generated header. This means, if you want to add another case, you just need to add a new file to the `moduleReadMeSource` folder and follow the naming pattern `resourceUsage-.md`. -For example, the content of file `resourceUsage-roleAssignments.md` in folder `moduleReadMeSource` is added to a template's readMe if it contains a parameter `roleAssignments`. The combined result is: +For example, the content of the `resourceUsage-roleAssignments.md` file in the `moduleReadMeSource` folder is added to a template's readMe if it contains a `roleAssignments` parameter. The combined result is: ```markdown ### Parameter Usage: `roleAssignments` @@ -45,5 +45,5 @@ For example, the content of file `resourceUsage-roleAssignments.md` in folder `m # How to use it -For details on how to use the function please refer to the script's local documentation. -> **Note:** The script must be loaded before the function can be invoked +For details on how to use the function, please refer to the script's local documentation. +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. diff --git a/docs/wiki/Contribution guide - Get formatted RBAC roles.md b/docs/wiki/Contribution guide - Get formatted RBAC roles.md index 26df71f911..e4a2ed58d7 100644 --- a/docs/wiki/Contribution guide - Get formatted RBAC roles.md +++ b/docs/wiki/Contribution guide - Get formatted RBAC roles.md @@ -1,28 +1,29 @@ -Use this script to format a given raw 'Roles' table from Azure to the format required by either Bicep or ARM/JSON Templates in any RBAC deployment. +Use this script to format a given raw 'Roles' table from the Azure portal to the format required by either Bicep or ARM/JSON Templates in any RBAC deployment. --- ### _Navigation_ - [Location](#location) -- [How it works](#what-it-does) +- [How it works](#how-it-works) - [How to use it](#how-to-use-it) --- # Location -You can find the script under `/utilities/tools/Get-FormattedRBACRoles.ps1` +You can find the script under [`/utilities/tools/Get-FormattedRBACRoles.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/tools/Get-FormattedRBACRoleList.ps1) # How it works -1. From the provided raw and plain roles list, create a list of only the contained role names -1. Fetch all available roles from Azure -1. Go through all provided role names, match them with those from Azure to get the matching RoleDefinitionId and format a string like `'': subscriptionResourceId('Microsoft.Authorization/roleDefinitions','')` for each match -1. Print the result to the terminal +This script +1. Leverages a list of role names that the Azure portal provides for a given resource type +1. Fetches all available roles from Azure +1. Goes through all provided role names, matches them with those from the Azure portal to get the matching RoleDefinitionId and provides an output string, formatted like `'': subscriptionResourceId('Microsoft.Authorization/roleDefinitions','')` for each match +1. Prints the result to the terminal # How to use it -The script does not accept any custom parameter per se, but expects you to replace the placeholder in the `rawRoles` variable inside the script +The script does not accept any custom parameters, but expects you to replace the placeholder in the `rawRoles` 'here-string' variable inside the script with the value fetched from the Azure portal, as detailed below. ```PowerShell $rawRoles = @' @@ -31,15 +32,15 @@ $rawRoles = @' ``` To get the list of roles in the expected format: -1. Navigate to Azure +1. Navigate to the Azure portal 1. Deploy one instance of the service you want to fetch the roles for 1. Navigate to the `Access Control (IAM)` blade in the resource 1. Open the `Roles` tab 1. Set the `Type` in the dropdown to `BuiltInRole` - Complete deployment flow filtered + Complete deployment flow filtered -1. Select and copy the entire table as is to the PowerShell variable. +1. Select and copy the entire table as is to the `$rawRoles` 'here-string' PowerShell variable. The result should look similar to @@ -62,7 +63,7 @@ To get the list of roles in the expected format: View '@ ``` -1. Execute the script. The output for the above example would be +1. Run the script. The output for the above example would be ```yml VERBOSE: Bicep @@ -77,7 +78,7 @@ To get the list of roles in the expected format: "Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions','b24988ac-6180-42a0-ab88-20f7382dd24c')]", "Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions','acdd72a7-3385-48ef-bd42-f606fba81ae7')]", ``` -1. Copy the output into the RBAC file into the `buildInRoleNames` variable. Again, for the same example using bicep this would be: +1. Copy the output into the RBAC file into the `builtInRoleNames` variable. For the same example, using Bicep this would be: ```bicep var builtInRoleNames = { @@ -87,5 +88,5 @@ To get the list of roles in the expected format: } ``` -For further details on how to use the function please refer to the script's local documentation. -> **Note:** The script must be loaded before the function can be invoked +For further details on how to use the function, please refer to the script's local documentation. +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. diff --git a/docs/wiki/Contribution guide - Validate module locally.md b/docs/wiki/Contribution guide - Validate module locally.md index 973f005803..ec11fff779 100644 --- a/docs/wiki/Contribution guide - Validate module locally.md +++ b/docs/wiki/Contribution guide - Validate module locally.md @@ -1,22 +1,22 @@ -Use this script to test a module locally. You can use it to run only the static validation (pester tests), a deployment validation (dryRun) or an actual deployment to Azure. In the latter cases the script also takes care to replace placeholder tokens in the used parameter file for you. +Use this script to test a module from your PC locally, without a CI environment. You can use it to run only the static validation (Pester tests), a deployment validation (dryRun) or an actual deployment to Azure. In the latter cases the script also takes care to replace placeholder tokens in the used parameter file for you. --- ### _Navigation_ - [Location](#location) -- [How it works](#what-it-does) +- [How it works](#how-it-works) - [How to use it](#how-to-use-it) --- # Location -You can find the script under `/utilities/tools/Test-ModuleLocally.ps1` +You can find the script under [`/utilities/tools/Test-ModuleLocally.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/tools//Test-ModuleLocally.ps1) # How it works -If the switch for pester tests (`-PesterTest`) is provided the script will -1. Invoke the global module test for the provided template file path and run all tests for it +If the switch for Pester tests (`-PesterTest`) is provided the script will +1. Invoke the global module test for the provided template file path and run all tests for it. If the switch for either the validation test (`-ValidationTest`) or deployment test (`-DeploymentTest`) is provided alongside a HashTable for the token replacement (`-ValidateOrDeployParameters`), the script will 1. Either fetch all parameter files of the module's parameter folder (default) or you can specify a single parameter file by leveraging the `parameterFilePath` parameter instead. @@ -24,11 +24,11 @@ If the switch for either the validation test (`-ValidationTest`) or deployment t - of the subscriptionID & managementGroupID of the provided `ValidateOrDeployParameters` object, - add all key-value pairs of the `-AdditionalTokens` object to it, - and optionally also add all key-value pairs specified in the `settings.json`'s `parameterFileTokens` object -1. If the `-ValidationTest` parameter was set, it runs a deployment validation using the `Test-TemplateDeployment` script +1. If the `-ValidationTest` parameter was set, it runs a deployment validation using the `Test-TemplateDeployment` script. 1. If the `-DeploymentTest` parameter was set, it runs a deployment using the `New-TemplateDeployment` script (with no retries). -1. As a final step it rolls the parameter files back to their original state if either the `-ValidationTest` or `-DeploymentTest` parameters were provided. +1. As a final step, it rolls the parameter files back to their original state if either the `-ValidationTest` or `-DeploymentTest` parameters were provided. # How to use it -For details on how to use the function please refer to the script's local documentation. -> **Note:** The script must be loaded before the function can be invoked +For details on how to use the function, please refer to the script's local documentation. +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. diff --git a/docs/wiki/Contribution guide.md b/docs/wiki/Contribution guide.md index c610e0ed3d..6103b823a0 100644 --- a/docs/wiki/Contribution guide.md +++ b/docs/wiki/Contribution guide.md @@ -1,4 +1,4 @@ -This section provides the step-by-step process we suggest to follow for contributions to our repository. It also provides details on specific utilities developed to support you with this task. +This section provides the step-by-step process we suggest to follow for contributions to the CARML repository. It also provides details on specific utilities developed to support you with this task. --- diff --git a/docs/wiki/Getting started - Check NamePrefix availability.md b/docs/wiki/Getting started - Check NamePrefix availability.md index 489b4285e2..d35017e058 100644 --- a/docs/wiki/Getting started - Check NamePrefix availability.md +++ b/docs/wiki/Getting started - Check NamePrefix availability.md @@ -1,17 +1,17 @@ -The `'Test-NamePrefixAvailability'` function provides you with the capability to test if the [`namePrefix`](./The%20CI%20environment%20-%20Token%20replacement#optional-local-custom-tokens), specified in the [`settings.json`](https://github.com/Azure/ResourceModules/blob/main/settings.json) file, conflicts with any existing resource. +The `'Test-NamePrefixAvailability'` function provides you with the capability to test if the [`namePrefix`](./The%20CI%20environment%20-%20Token%20replacement.md#optional-local-custom-tokens), specified in the [`settings.json`](https://github.com/Azure/ResourceModules/blob/main/settings.json) file, conflicts with any existing resource. --- ### _Navigation_ - [Location](#location) -- [How it works](#what-it-does) +- [How it works](#how-it-works) - [How to use it](#how-to-use-it) --- # Location -You can find the script under `utilities/tools/Test-NamePrefixAvailability.ps1` +You can find the script under [`utilities/tools/Test-NamePrefixAvailability.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/tools/Test-NamePrefixAvailability.ps1). # How it works @@ -21,14 +21,14 @@ When invoked, the script - `'Microsoft.Storage/storageAccounts'` - `'Microsoft.ContainerRegistry/registries'` - `'Microsoft.KeyVault/vaults'` -1. Replace any tokens contained in the parameter files with the key-value pairs provided in the `Tokens` input parameter -1. Search for each resource resource type if the final name would be taken -1. Return the result for each resource alongside a final recommendation to use / not use the chosen `'namePrefix'` +1. Replace any tokens contained in the parameter files with the key-value pairs provided in the `Tokens` input parameter. +1. Search for each resource resource type if the final name would be taken. +1. Return the result for each resource alongside a final recommendation to use / not use the chosen `'namePrefix'`. # How to use it > **Note:** You'll need to have an active Azure login. If not connected, you can do so via the `Connect-AzAccount` cmdlet (from the `Az.Resources` PowerShell module). -> **Note:** The script must be loaded before the function can be invoked +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. -For details on how to use the function please refer to the script's local documentation. +For details on how to use the function, please refer to the script's local documentation. diff --git a/docs/wiki/Getting started - Get module cross-references.md b/docs/wiki/Getting started - Get module cross-references.md index 01a521d98b..abe10e5097 100644 --- a/docs/wiki/Getting started - Get module cross-references.md +++ b/docs/wiki/Getting started - Get module cross-references.md @@ -1,32 +1,33 @@ -The `'Get-LinkedLocalModuleList'` function provides you with the capability to check for any local module references in a given path. This can be useful to determine which modules folder you'd need if you don't want to keep the entire library. +The `'Get-LinkedLocalModuleList'` function helps you with discovering cross-modules dependencies. It checks for any local module references in a given path. This can be useful to determine which modules' folder you'd need to keep in case you'd only want to cherry-pick certain modules from the library. --- ### _Navigation_ - [Location](#location) -- [How it works](#what-it-does) +- [How it works](#how-it-works) - [How to use it](#how-to-use-it) + - [Example output](#example-output) - [Related function: _Get-LinkedModuleList_](#related-function-get-linkedmodulelist) --- # Location -You can find the script under `'utilities/tools/Get-LinkedLocalModuleList.ps1'` +You can find the script under `'utilities/tools/Get-LinkedLocalModuleList.ps1'`. # How it works When invoking the script: -1. The function leverages the utility [Get-LinkedModuleList](#related-function-get-linkedmodulelist) to fetch all references implemented in the modules in a given path -1. The function filters these references down to only local references (i.e. cross-module references) and formats them to show a consistent '\/\' format. +1. The function leverages the utility [Get-LinkedModuleList](#related-function-get-linkedmodulelist) to fetch all references implemented in the modules in a given path. +1. The function filters these references down to only local references (i.e., cross-module references) and formats them to show a consistent '\/\' format. 1. Finally, it prints the references to the invoking terminal, group by ResourceType. # How to use it -> **Note:** The script must be loaded before the function can be invoked +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. -For details on how to use the function please refer to the script's local documentation. +For details on how to use the function, please refer to the script's local documentation. ## Example output @@ -97,6 +98,6 @@ The function `'Get-LinkedModuleList'` (also in path `'utilities/tools'`) is leve - Cross-Module references - Remove-Module references (e.g., Bicep Registry) -> **Note:** The script must be loaded before the function can be invoked +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. -For details on how to use the function please refer to the script's local documentation. +For details on how to use the function, please refer to the script's local documentation. diff --git a/docs/wiki/Getting started - Scenario 2 Consume library.md b/docs/wiki/Getting started - Scenario 1 Consume library.md similarity index 56% rename from docs/wiki/Getting started - Scenario 2 Consume library.md rename to docs/wiki/Getting started - Scenario 1 Consume library.md index 820cf495db..3b098fa866 100644 --- a/docs/wiki/Getting started - Scenario 2 Consume library.md +++ b/docs/wiki/Getting started - Scenario 1 Consume library.md @@ -1,24 +1,24 @@ In case you want to simply consume the modules of the library to build a solution, you only have to perform a few simple steps: -1. [Download the library](#1-download-the-library) -1. [(Optional) Convert library to ARM](#2-optional-convert-library-to-arm) -1. [Build a solution](#3-build-a-solution) +- [1. Download the library](#1-download-the-library) +- [2. (Optional) Convert library to ARM](#2-optional-convert-library-to-arm) +- [3. Build a solution](#3-build-a-solution) # 1. Download the library -To gather a local copy of the library, you essentially have a few options to choose from: +To gather a local copy of the library, you have a few options to choose from:
    Download a release To download a specific release version of the repository: 1. Navigate to the [releases](https://github.com/Azure/ResourceModules/releases) page. -1. Scroll to the `'Assets'` section at the bottom end of the release you'd like to download -1. Here you will find a packaged version of the repository (as it was when the release was created) and can download it with a simple click on the `'Source code'` package (e.g. `Source code (zip)`) itself. This will start the download and drop the file in your default download folder. +1. Scroll to the `'Assets'` section at the bottom end of the release you'd like to download. +1. Here, you will find a packaged version of the repository (as it was when the release was created) and can download it with a simple click on the `'Source code'` package (e.g., `Source code (zip)`) itself. This will download the file in your default download folder. Download zip -1. Finally, you only need to unpack the downloaded file to a location of your choice +1. Finally, you need to unpack the downloaded file to a location of your choice.
    @@ -26,12 +26,12 @@ To download a specific release version of the repository: Download latest To download the latest version of the repository -1. Navigate to the main page of [CARML](https://aka.ms/CARML) -1. On the overview page, select the `<> Code` button to the top right, and select the `Download ZIP` button in the opening pop up to trigger the repository to be downloaded as a compressed file into your default download folder. +1. Navigate to the main page of [CARML](https://aka.ms/CARML). +1. On the overview page, select the `<> Code` button to the top right, and select the `Download ZIP` button in the opening pop-up to trigger the repository to be downloaded as a compressed file into your default download folder. Download zip -1. Finally, you only need to unpack the downloaded file to a location of your choice +1. Finally, you need to unpack the downloaded file to a location of your choice.
    @@ -39,9 +39,9 @@ To download the latest version of the repository Clone latest To clone the latest version of the repository -1. On your local machine, open a PowerShell session -1. Navigate to the location you want to clone the repository into -1. Execute +1. On your local machine, open a PowerShell session. +1. Navigate to the location you want to clone the repository into. +1. Run ```PowerShell git clone 'https://github.com/Azure/ResourceModules.git' @@ -53,8 +53,8 @@ To clone the latest version of the repository # 2. (Optional) Convert library to ARM -Note that in case you don't want to use Bicep, you always have the option to use the utility `ConvertTo-ARMTemplate`, we provide in path `utilities/tools`, to convert the repository to an ARM-only repository. For further information on how to use the tool, please refer to the tool-specific [documentation](./Interoperability%20-%20Bicep%20to%20ARM%20conversion). +Note that in case you don't want to use Bicep, you always have the option to use the utility `ConvertTo-ARMTemplate` we provide in path `utilities/tools`, to convert the repository to an ARM-only repository. For further information on how to use the tool, please refer to the tool-specific [documentation](./Interoperability%20-%20Bicep%20to%20ARM%20conversion). # 3. Build a solution -With the codebase ready you can now start to build a solution. For examples on how to do so, please refer to the corresponding [solution creation](./Solution%20creation) section. +With the codebase ready, you can now start to build a solution. For examples on how to do so, please refer to the corresponding [solution creation](./Solution%20creation) section. diff --git a/docs/wiki/Getting started - Scenario 1 Onboard module library and CI environment.md b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md similarity index 67% rename from docs/wiki/Getting started - Scenario 1 Onboard module library and CI environment.md rename to docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md index ddc0c77038..15c4437991 100644 --- a/docs/wiki/Getting started - Scenario 1 Onboard module library and CI environment.md +++ b/docs/wiki/Getting started - Scenario 2 Onboard module library and CI environment.md @@ -1,4 +1,4 @@ -The repository is built so that you can create your own 1:1 instance and be able to reuse the same concepts and features in your own environment such as GitHub. +The repository is built so that you can create your own 1:1 instance and thus reuse the same concepts and features in your own environment, such as GitHub. This requires several steps: @@ -9,13 +9,13 @@ This requires several steps: 1. [Update module parameter files](#5-update-module-parameter-files) 1. [(Optional) Convert library to ARM](#6-optional-convert-library-to-arm) -Depending on the DevOps environment you choose (GitHub or Azure DevOps) make sure you also account for the specific requirements outlined below. +Depending on the DevOps environment you choose (GitHub or Azure DevOps), make sure you also account for the specific requirements outlined below. # 1. Configure your Azure environment CARML tests the deployments and stores the module artifacts in an Azure subscription. To do so, it requires a service principal with access to it. -In this first step make sure you +In this first step, make sure you - Have/create an Azure Active Directory Service Principal with at least `Contributor` & `User Access Administrator` permissions on the Management-Group/Subscription you want to test the modules in - Note down the following pieces of information - Application (Client) ID @@ -27,17 +27,17 @@ In this first step make sure you # 2. Fork/clone the repository into your DevOps environment -Next you'll want to create your own copy of the code. Depending on the repository environment you want to use (GitHub or Azure DevOps), the set up will be slightly different. +Next, you'll want to create your own copy of the code. Depending on the repository environment you want to use (GitHub or Azure DevOps), the setup will be slightly different. -> **Note:** Whether you chose GitHub or Azure DevOps as your repository's environment does not affect your options when registering the pipelines. +> **Note:** Whether you chose GitHub or Azure DevOps as your repository's environment, it does not affect your options when registering the pipelines. -> **Note:** If you don't want to use all modules, you can remove those that should not be part of your library. However, when doing so, make sure you use the utility [`Get-LinkedLocalModuleList`](./Getting%20started%20-%20Get%20module%20cross-references) to check for any cross-module references. For example, you may find that when you'd remove the 'Microsoft.Network/privateEndpoints', that it is still referenced by some of the modules you may want to use (for example 'Microsoft.KeyVault/vaults'). In those cases, make sure to not accidently delete required references. +> **Note:** If you don't want to use all modules, you can remove those that should not be part of your library. However, when doing so, make sure you use the utility [`Get-LinkedLocalModuleList`](./Getting%20started%20-%20Get%20module%20cross-references) to check for any cross-module references. For example, you may find that when you'd remove the 'Microsoft.Network/privateEndpoints', that it is still referenced by some of the modules you may want to use (for example, 'Microsoft.KeyVault/vaults'). In those cases, make sure to not accidentally delete required references.
    GitHub Repository For GitHub, you have two choices depending on your planned repository visibility: -- If the repository may be **public**, we recommend to create a simple fork into the target organization. As the CARML source repository is public, a fork must be public too. +- In case of a **public** repository, we recommend to create a simple fork into the target organization. As the CARML source repository is public, a fork must be public too. - If you need a **private** version instead, we recommend you create your target repository, download/clone the CARML repository (ref. 'how to' below) and upload the content to the created target repository > **Note:** This disables the feature to 'fetch' from the upstream (CARML) repository. As a result, you have to port upstream updates manually. @@ -46,7 +46,7 @@ For GitHub, you have two choices depending on your planned repository visibility
    Azure DevOps Repository -For a **private** Azure DevOps git, we recommend you create your target repository, download/clone the CARML repository (ref. 'how to' below) and upload the content to the created target repository +For a **private** Azure DevOps git, we recommend you create your target repository, download/clone the CARML repository (ref. 'how to' below) and upload the content to the created target repository. > **Note:** This disables the feature to 'fetch' from the upstream (CARML) repository. As a result, you have to port upstream updates manually.
    @@ -55,20 +55,20 @@ For a **private** Azure DevOps git, we recommend you create your target reposito
    How to: Clone/download the repository -To save a local copy of the repository you can either clone the repository or download it as a `.zip` file. -A clone is a direct reference to the source repository which enables you to pull updates as they happen in the source repository. To achieve this you have to have `Git` installed and run the command +To save a local copy of the repository, you can either clone the repository or download it as a `.zip` file. +A clone is a direct reference to the source repository which enables you to pull updates as they happen in the source repository. To achieve this, you have to have `Git` installed and run the following command: ```PowerShell git clone 'https://github.com/Azure/ResourceModules.git' ``` -from a command-line of your choice (e.g. PowerShell). +from a command-line of your choice (e.g., PowerShell). -If you instead just want to have a copy of the repository's content you can instead download it in the `.zip` format. You can do this by navigating to the repository folder of your choice (for example root), then select the `<> Code` button on the top left and click on `Download ZIP` on the opening blade. +If you just want to have a copy of the repository's content, you can instead download it in `.zip` format. You can do this by navigating to the repository folder of your choice (for example, root), then select the `<> Code` button on the top left and click on `Download ZIP` on the opening blade. - How to download repository + How to download repository -Alternatively, you can also do the same with a specific release by navigating to the [releases](https://github.com/Azure/ResourceModules/releases) page, scroll to the `'Assets'` section at the bottom end of the release you'd like to get and download the packaged release (as it was when the release was created) with a simple click on the `'Source code'` package (e.g. `Source code (zip)`) itself. +Alternatively, you can also do the same with a specific release by navigating to the [releases](https://github.com/Azure/ResourceModules/releases) page, scroll to the `'Assets'` section at the bottom end of the release you'd like to get and download the packaged release (as it was when the release was created) with a simple click on the `'Source code'` package (e.g., `Source code (zip)`) itself. Download zip @@ -78,9 +78,9 @@ Alternatively, you can also do the same with a specific release by navigating to # 3. Configure the CI environment -To configure the CI environment you have to perform several tasks: +To configure the CI environment you have to perform several steps: - [3.1 Update default `namePrefix`](#31-update-default-nameprefix) -- [3.2 Setup CI-environment-specific configuration](#32-setup-ci-environment-specific-configuration) +- [3.2 Set up CI-environment-specific configuration](#32-set-up-ci-environment-specific-configuration) > **Note:** While you can use the browser, we recommend that you clone all files to your local machine and update them using, for example, Visual Studio Code. @@ -88,7 +88,9 @@ To configure the CI environment you have to perform several tasks: To lower the barrier to entry and allow users to easily define their own naming conventions, we introduced a default `'name prefix'` for all deployed resources. -Each pipeline in CARML deploying resources uses a logic that automatically replaces "tokens" (i.e. placeholders) in any parameter file. Tokens are stored in only a few central locations to facilitate maintenance (e.g. local `settings.json`, repository secrets or variables group). +> **Note:** This prefix is only used by the CI environment you validate your modules in, and doesn't affect the naming of any resources you deploy as part of any multi-module solutions (applications/workloads) based on the modules. + +Each pipeline in CARML deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any parameter file. Tokens are stored in only a few central locations to facilitate maintenance (e.g., local `settings.json`, repository secrets or variable groups). To update the `namePrefix`, perform the following steps: @@ -104,34 +106,35 @@ To update the `namePrefix`, perform the following steps: ``` > **Note:** The value should be a 3-5 character long string like `cntso`. Longer strings are not recommended as they may conflict with Azure resource name length restrictions. - > **Note:** We highly encourage you to use the [Check namePrefix availability](./Getting%20started%20-%20Check%20NamePrefix%20availability) script to test if a given name prefix could conflict with any existing resource. + > **Note:** We highly encourage you to use the 'Check namePrefix availability' script ([see the documentation here](./Getting%20started%20-%20Check%20NamePrefix%20availability)) to check if the intended resource name will be available, based on the provided prefix. For further information on the token replacement logic, please refer to the corresponding [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) section. -## 3.2 Setup CI-environment-specific configuration +## 3.2 Set up CI-environment-specific configuration -While the concepts are the same, the configuration of the CI environment can differ drastically depending on the DevOps environment in which you want to register and run your pipelines. Following you can find instructions on how to perform the remaining configuration in the corresponding DevOps environment: +While the concepts are the same, the configuration of the CI environment can differ drastically depending on the DevOps environment in which you want to register and run your pipelines. Following, you can find instructions on how to perform the remaining configuration in the corresponding DevOps environment:
    GitHub For _GitHub_, you have to perform the following environment-specific steps: -- [3.2.1 Setup secrets](#321-setup-secrets) -- [3.2.2 Setup variables file](#322-setup-variables-file) +- [3.2.1 Set up secrets](#321-set-up-secrets) +- [3.2.2 Set up variables file](#322-set-up-variables-file) - [3.2.3 Enable actions](#323-enable-actions) +- [3.2.4 Set R/W Workflow permissions](#324-set-rw-workflow-permissions) -### 3.2.1 Setup secrets +### 3.2.1 Set up secrets -To use the environment's pipelines you should use the information you gathered during the [Azure setup](#1-configure-your-azure-environment) to set the following repository secrets up: +To use the environment's pipelines you should use the information you gathered during the [Azure setup](#1-configure-your-azure-environment) to set up the following repository secrets: | Secret Name | Example | Description | | - | - | - | | `ARM_MGMTGROUP_ID` | `de33a0e7-64d9-4a94-8fe9-b018cedf1e05` | The group ID of the management group to test-deploy modules in. | | `ARM_SUBSCRIPTION_ID` | `d0312b25-9160-4550-914f-8738d9b5caf5` | The ID of the subscription to test-deploy modules in. | -| `ARM_TENANT_ID` | `9734cec9-4384-445b-bbb6-767e7be6e5ec` | The tenant ID of the tenant to test-deploy modules in. | -| `DEPLOYMENT_SP_ID` | `de33a0e7-64d9-4a94-8fe9-b018cedf1e05` | The service principal ID (Object ID) of the principal used as the Azure service connection. Also used for test Role Assignments when modules are being deployed into Azure | -| `AZURE_CREDENTIALS` | `{"clientId": "4ce8ce4c-cac0-48eb-b815-65e5763e2929", "clientSecret": "", "subscriptionId": "d0312b25-9160-4550-914f-8738d9b5caf5", "tenantId": "9734cec9-4384-445b-bbb6-767e7be6e5ec" }` | The login credentials of the deployment principal to use to log into the target Azure environment to test in. The format is described [here](https://github.com/Azure/login#configure-deployment-credentials). | -| `PLATFORM_REPO_UPDATE_PAT` | `` | A PAT with enough permissions assigned to it to push into the main branch. This PAT is leveraged by pipelines that automatically generate ReadMe files to keep them up to date | +| `ARM_TENANT_ID` | `9734cec9-4384-445b-bbb6-767e7be6e5ec` | The tenant ID of the Azure Active Directory tenant to test-deploy modules in. | +| `DEPLOYMENT_SP_ID` | `de33a0e7-64d9-4a94-8fe9-b018cedf1e05` | The service principal ID (Object ID) of the principal used as the Azure service connection. Also used for test Role Assignments when modules are being deployed into Azure. | +| `AZURE_CREDENTIALS` | `{"clientId": "4ce8ce4c-cac0-48eb-b815-65e5763e2929", "clientSecret": "", "subscriptionId": "d0312b25-9160-4550-914f-8738d9b5caf5", "tenantId": "9734cec9-4384-445b-bbb6-767e7be6e5ec" }` | The login credentials of the deployment principal used to log into the target Azure environment to test in. The format is described [here](https://github.com/Azure/login#configure-deployment-credentials). | +| `PLATFORM_REPO_UPDATE_PAT` | `` | A private access token (PAT) with enough permissions assigned to it to push into the main branch. This PAT is leveraged by pipelines that automatically generate ReadMe files to keep them up to date. |

    @@ -155,7 +158,7 @@ To use the environment's pipelines you should use the information you gathered d

    > Special case: `AZURE_CREDENTIALS`, -> This secret represents our service connection to Azure and its value is a compressed JSON object that must match the following format: +> This secret represent the service connection to Azure, and its value is a compressed JSON object that must match the following format: > > ```JSON > {"clientId": "", "clientSecret": "", "subscriptionId": "", "tenantId": "" } @@ -163,17 +166,17 @@ To use the environment's pipelines you should use the information you gathered d > > **Make sure you create this object as one continuous string as shown above** - using the information you collected during [Step 1](#1-configure-your-azure-environment). Failing to format the secret as above, causes GitHub to consider each line of the json object as a separate secret string. If you're interested, you can find more information about this object [here](https://github.com/Azure/login#configure-deployment-credentials). -### 3.2.2 Setup variables file +### 3.2.2 Set up variables file -The primary pipeline variable file `global.variables.yml` hosts the fundamental pipeline configuration. In the file you will find and can configure settings such as: +The primary pipeline variable file ([`global.variables.yml`](https://github.com/Azure/ResourceModules/blob/main/global.variables.yml)) hosts the fundamental pipeline configuration. In the file you will find and can configure settings such as:

    General | Variable Name | Example Value | Description | | - | - | - | -| `location` | `"WestEurope"` | The default location to deploy resources to and store deployment metadata at. If no location is specified in the deploying parameter file, this location is used | -| `resourceGroupName` | `"validation-rg"` | The resource group to deploy all resources for validation to | +| `location` | `"WestEurope"` | The default location to deploy resources to and store deployment metadata at. If no location is specified in the deploying parameter file, this location is used. | +| `resourceGroupName` | `"validation-rg"` | The resource group to deploy all resources for validation to. |
    @@ -182,10 +185,10 @@ The primary pipeline variable file `global.variables.yml` hosts the fundamental | Variable Name | Example Value | Description | | - | - | - | -| `templateSpecsRGName` | `"artifacts-rg"` | The resource group to host the created template-specs | -| `templateSpecsRGLocation` | `"WestEurope"` | The location of the resource group to host the template-specs. Is used to create a new resource group if not yet existing | -| `templateSpecsDescription` | `"This is a module from the [Common Azure Resource Modules Library]"` | A description to add to the published template specs | -| `templateSpecsDoPublish` | `"true"` | A central switch to enable/disable publishing to template-specs | +| `templateSpecsRGName` | `"artifacts-rg"` | The resource group to host the created template-specs. | +| `templateSpecsRGLocation` | `"WestEurope"` | The location of the resource group to host the template-specs. Is used to create a new resource group if not yet existing. | +| `templateSpecsDescription` | `"This is a module from the [Common Azure Resource Modules Library]"` | A description to add to the published template specs. | +| `templateSpecsDoPublish` | `"true"` | A central switch to enable/disable publishing to template-specs. |
    @@ -194,20 +197,20 @@ The primary pipeline variable file `global.variables.yml` hosts the fundamental | Variable Name | Example Value | Description | | - | - | - | -| `bicepRegistryName` | `"adpsxxazacrx001"` | The container registry to publish Bicep templates to.

    **NOTE:** Must be globally unique | -| `bicepRegistryRGName` | `"artifacts-rg"` | The resource group of the container registry to publish Bicep templates into. It is used to create a new container registry if not yet existing | -| `bicepRegistryRgLocation` | `'West Europe'` | The location of the resource group of the container registry to publish Bicep templates into. Is used to create a new resource group if not yet existing | -| `bicepRegistryDoPublish` | `"true"` | A central switch to enable/disable publishing to the private Bicep registry | +| `bicepRegistryName` | `"adpsxxazacrx001"` | The container registry to publish Bicep templates to.

    **NOTE:** Must be globally unique. | +| `bicepRegistryRGName` | `"artifacts-rg"` | The resource group of the container registry to publish Bicep templates into. It is used to create a new container registry if not yet existing. | +| `bicepRegistryRgLocation` | `'West Europe'` | The location of the resource group of the container registry to publish Bicep templates into. Is used to create a new resource group if not yet existing. | +| `bicepRegistryDoPublish` | `"true"` | A central switch to enable/disable publishing to the private Bicep registry. |

    -> **NOTE:** If you plan to use the private container registry for Bicep, make sure to update its value `bicepRegistryName` as it must be globally unique +> **NOTE:** If you plan to use the private container registry for Bicep, make sure to update its value in `bicepRegistryName`, as it must be globally unique. ### 3.2.3 Enable actions -Finally, 'GitHub Actions' are disabled by default and must be enabled for execution. +Finally, 'GitHub Actions' are disabled by default and hence, must be enabled first. To do so, perform the following steps: @@ -217,6 +220,18 @@ To do so, perform the following steps: Enable Actions +### 3.2.4 Set R/W Workflow permissions + +To let the worflow engine publish their results into your repository, you have to enable the read / write access for the github actions. + +1. Navigate to the `Settings` tab on the top of your repository page. + +1. Within the section `Code and automation` click on `Actions` and `General` + +1. Make sure to enable `Read and write permissions` + + Workflow Permissions +

    @@ -225,21 +240,21 @@ To do so, perform the following steps:

    Azure DevOps For _Azure DevOps_, you have to perform the following environment-specific steps: -- [3.2.1 Setup service connection](#321-setup-service-connection) -- [3.2.2 Setup secrets in variable group](#322-setup-secrets-in-variable-group) -- [3.2.3 Setup variables file](#323-setup-variables-file) +- [3.2.1 Set up service connection](#321-set-up-service-connection) +- [3.2.2 Set up secrets in variable group](#322-set-up-secrets-in-variable-group) +- [3.2.3 Set up variables file](#323-set-up-variables-file) - [3.2.4 Register pipelines](#324-register-pipelines) - [3.2.5 Azure Artifacts Universal Packages](#325-azure-artifacts-universal-packages) -### 3.2.1 Setup service connection +### 3.2.1 Set up service connection The service connection must be set up in the project's settings under _Pipelines: Service connections_ (a step by step guide can be found [here](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml)). -It's name must match the one configured as `serviceConnection` in the [variable file](#323-setup-variables-file)'s 'General' section. +It's name must match the one configured as `serviceConnection` in the [variable file](#323-set-up-variables-file)'s 'General' section. -### 3.2.2 Setup secrets in variable group +### 3.2.2 Set up secrets in variable group -The a variable group `PLATFORM_VARIABLES` must set up in Azure DevOps as described [here](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=classic#create-a-variable-group). +The variable group `PLATFORM_VARIABLES` must be set up in Azure DevOps as described [here](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=classic#create-a-variable-group). Based on the information you gathered in the [Azure setup](#1-configure-your-azure-environment), you must configure the following secrets in the variable group: @@ -247,8 +262,8 @@ Based on the information you gathered in the [Azure setup](#1-configure-your-azu | - | - | - | | `ARM_MGMTGROUP_ID` | `de33a0e7-64d9-4a94-8fe9-b018cedf1e05` | The group ID of the management group to test-deploy modules in. | | `ARM_SUBSCRIPTION_ID` | `d0312b25-9160-4550-914f-8738d9b5caf5` | The ID of the subscription to test-deploy modules in. | -| `ARM_TENANT_ID` | `9734cec9-4384-445b-bbb6-767e7be6e5ec` | The tenant ID of the tenant to test-deploy modules in. | -| `DEPLOYMENT_SP_ID` | `de33a0e7-64d9-4a94-8fe9-b018cedf1e05` | The service principal ID (Object ID) of the principal used as the Azure service connection. Also used for test Role Assignments when modules are being deployed into Azure | +| `ARM_TENANT_ID` | `9734cec9-4384-445b-bbb6-767e7be6e5ec` | The tenant ID of the Azure Active Directory tenant to test-deploy modules in. | +| `DEPLOYMENT_SP_ID` | `de33a0e7-64d9-4a94-8fe9-b018cedf1e05` | The service principal ID (Object ID) of the principal used as the Azure service connection. Also used for test Role Assignments when modules are being deployed into Azure. | Make sure its name matches the `group` reference used in the module pipelines. For example @@ -257,20 +272,20 @@ variables: - group: 'PLATFORM_VARIABLES' ``` -> **Note:** If you need to use different name than `PLATFORM_VARIABLES` make sure to search & replace all references with the new name. +> **Note:** If you need to use different name than `PLATFORM_VARIABLES`, make sure to search & replace all references with the new name. -### 3.2.3 Setup variables file +### 3.2.3 Set up variables file -The primary pipeline variable file `global.variables.yml` hosts the fundamental pipeline configuration. In the file you will find and can configure information such as: +The primary pipeline variable file ([`global.variables.yml`](https://github.com/Azure/ResourceModules/blob/main/global.variables.yml)) hosts the fundamental pipeline configuration. In the file, you will find and can configure information such as:
    General | Variable Name | Example Value | Description | | - | - | - | -| `location` | `'WestEurope'` | The default location to deploy resources to. If no location is specified in the deploying parameter file, this location is used | -| `resourceGroupName` | `'validation-rg'` | The resource group to deploy all resources for validation into | -| `serviceConnection` | `'Contoso-Connection'` | The service connection that points to the subscription to test in and publish to | +| `location` | `'WestEurope'` | The default location to deploy resources to. If no location is specified in the deploying parameter file, this location is used. | +| `resourceGroupName` | `'validation-rg'` | The resource group to deploy all resources for validation into. | +| `serviceConnection` | `'Contoso-Connection'` | The service connection that points to the subscription to test in and publish to. |
    @@ -279,10 +294,10 @@ The primary pipeline variable file `global.variables.yml` hosts the fundamental | Variable Name | Example Value | Description | | - | - | - | -| `templateSpecsRGName` | `'artifacts-rg'` | The resource group to host the created template-specs | -| `templateSpecsRGLocation` | `'WestEurope'` | The location of the resource group to host the template-specs. Is used to create a new resource group if not yet existing | -| `templateSpecsDescription` | `'This is a module from the [Common Azure Resource Modules Library]'` | A description to add to the published template specs | -| `templateSpecsDoPublish` | `'true'` | A central switch to enable/disable publishing to template-specs | +| `templateSpecsRGName` | `'artifacts-rg'` | The resource group to host the created template-specs. | +| `templateSpecsRGLocation` | `'WestEurope'` | The location of the resource group to host the template-specs. Is used to create a new resource group if not yet existing. | +| `templateSpecsDescription` | `'This is a module from the [Common Azure Resource Modules Library]'` | A description to add to the published template specs. | +| `templateSpecsDoPublish` | `'true'` | A central switch to enable/disable publishing to template-specs. |
    @@ -291,10 +306,10 @@ The primary pipeline variable file `global.variables.yml` hosts the fundamental | Variable Name | Example Value | Description | | - | - | - | -| `bicepRegistryName` | `'adpsxxazacrx001'` | The container registry to publish Bicep templates to.

    **NOTE:** Must be globally unique | -| `bicepRegistryRGName` | `'artifacts-rg'` | The resource group of the container registry to publish Bicep templates to. Is used to create a new container registry if not yet existing | -| `bicepRegistryRgLocation` | `'West Europe'` | The location of the resource group of the container registry to publish Bicep templates to. Is used to create a new resource group if not yet existing | -| `bicepRegistryDoPublish` | `'true'` | A central switch to enable/disable publishing to the private Bicep registry | +| `bicepRegistryName` | `'adpsxxazacrx001'` | The container registry to publish Bicep templates to.

    **NOTE:** Must be globally unique. | +| `bicepRegistryRGName` | `'artifacts-rg'` | The resource group of the container registry to publish Bicep templates to. Is used to create a new container registry if not yet existing. | +| `bicepRegistryRgLocation` | `'West Europe'` | The location of the resource group of the container registry to publish Bicep templates to. Is used to create a new resource group if not yet existing. | +| `bicepRegistryDoPublish` | `'true'` | A central switch to enable/disable publishing to the private Bicep registry. | @@ -303,36 +318,34 @@ The primary pipeline variable file `global.variables.yml` hosts the fundamental | Variable Name | Example Value | Description | | - | - | - | -| `vstsFeedName` | `'ResourceModules'` | The name of the Azure DevOps universal packages feed to publish to | +| `vstsFeedName` | `'ResourceModules'` | The name of the Azure DevOps universal packages feed to publish to. | | `vstsFeedProject` | `'$(System.TeamProject)'` | The project that hosts the feed. The feed must be created in Azure DevOps ahead of time. | -| `vstsFeedToken` | `'$(System.AccessToken)'` | The token used to publish universal packages into the feed above | -| `artifactsFeedDoPublish` | `'true'` | A central switch to enable/disable publishing to Universal packages | +| `vstsFeedToken` | `'$(System.AccessToken)'` | The token used to publish universal packages into the feed above. | +| `artifactsFeedDoPublish` | `'true'` | A central switch to enable/disable publishing to Universal packages. |

    -> **NOTE:** If you plan to use the private container registry for Bicep, make sure to update its value `bicepRegistryName` as it must be globally unique +> **NOTE:** If you plan to use the private container registry for Bicep, make sure to update its value in `bicepRegistryName` as it must be globally unique. ### 3.2.4 Register pipelines -To use the pipelines that come with the environment in Azure DevOps, you need to register them first. You can either do this manually, or, execute the utility `Register-AzureDevOpsPipeline` we provide in path `utilities/tools/AzureDevOps`. For further information, please refer to the corresponding [documentation](./Interoperability%20-%20Register%20Azure%20DevOps%20Pipelines). - +To use the pipelines that come with the environment in Azure DevOps, you need to register them first. You can either do this manually, or, run the utility `Register-AzureDevOpsPipeline` we provide in `utilities/tools/AzureDevOps`. For further information, please refer to the corresponding [documentation](./Interoperability%20-%20Register%20Azure%20DevOps%20Pipelines). ### 3.2.5 Azure Artifacts Universal Packages This section will explain what is required to publish the modules to [Azure Artifacts Universal Packages](https://docs.microsoft.com/en-us/azure/devops/artifacts/quickstarts/universal-packages?view=azure-devops). It will also assume you are publishing from Azure DevOps Pipelines. #### The dependent components are -1. An Azure DevOps organization +1. An Azure DevOps organization and project 1. An Azure DevOps artifacts feed - > Note: The default feed name is `ResourceModules` as configured in the `./global.variables.yaml` file's variable `vstsFeedName`. Update the value here if you want to use a different name, but make sure it matches the name of the artifact feed created in Azure DevOps. + > Note: The default feed name is `ResourceModules` as configured in the [`global.variables.yml`](https://github.com/Azure/ResourceModules/blob/main/global.variables.yml) file's variable `vstsFeedName`. Update the value here if you want to use a different name, but make sure it matches the name of the artifact feed created in Azure DevOps. 1. An Azure DevOps project to host the artifact feed > Note: There are a couple options to consider when setting up an Azure Artifact feed. For example, organization-scoped feeds vs project-scoped feeds. Please see what option suits your needs by reviewing the [feeds](https://docs.microsoft.com/en-us/azure/devops/artifacts/concepts/feeds?view=azure-devops) document first. 1. If you chose the feed to be project-scoped, you will need the Project Build Service account to have `Contributor` access to publish to the Azure Artifacts feed. To set this, follow the [Pipeline permission](https://docs.microsoft.com/en-us/azure/devops/artifacts/feeds/feed-permissions?view=azure-devops#pipelines-permissions) steps. #### Implementation Guidance -Each `./azuredevops/modulePipelines` yaml pipeline already calls `/.azuredevops/pipelineTemplates/jobs.publishModule.yml`. This YAML template contains a method to `Publish module to artifacts feed` via `utilities\pipelines\resourcePublish\Publish-ModuleToUniversalArtifactFeed.ps1`. - +Each `./azuredevops/modulePipelines` yaml pipeline already calls [`/.azuredevops/pipelineTemplates/jobs.publishModule.yml`](https://github.com/Azure/ResourceModules/blob/main/.azuredevops/pipelineTemplates/jobs.publishModule.yml). This YAML template contains a method to `Publish module to artifacts feed` via [`utilities\pipelines\resourcePublish\Publish-ModuleToUniversalArtifactFeed.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities\pipelines\resourcePublish\Publish-ModuleToUniversalArtifactFeed.ps1). @@ -342,26 +355,25 @@ Each `./azuredevops/modulePipelines` yaml pipeline already calls `/.azuredevops/ In order to successfully deploy and test all modules in your desired environment, some modules require resources to be deployed beforehand. -The repository comes with a platform pipeline, the dependencies pipeline, that deploys a set of Azure services such as Virtual Networks and Key Vaults (along with dummy secrets) to be used by the module pipeline tests. +The repository comes with a platform pipeline, i.e., the '*dependencies pipeline*', that deploys a set of Azure services such as Virtual Networks and Key Vaults (along with dummy secrets) to be used by the module pipeline tests. -Run the dependencies pipeline by following instructions provided in the specific [Dependencies pipeline usage](./The%20CI%20environment%20-%20Pipeline%20usage#operate-the-dependencies-pipeline) section. +Run the dependencies pipeline by following instructions provided in the specific [Dependencies pipeline usage](./The%20CI%20environment%20-%20Pipeline%20usage.md#operate-the-dependencies-pipeline) section. -> **Note**: For details about the dependencies pipeline design please refer to the dedicated [Dependencies pipeline design](./The%20CI%20environment%20-%20Pipeline%20design.md#dependencies-pipeline) section. +> **Note**: For details about the dependencies pipeline design, please refer to the dedicated [Dependencies pipeline design](./The%20CI%20environment%20-%20Pipeline%20design.md#dependencies-pipeline) section. ## 4.1 Manual Dependencies -In special cases, manual actions may be required to provision certain resources that are not covered by our dependency pipeline. In the following you can find an overview of these resources, for which modules you'd need them and what you'd need to do: +In special cases, manual actions may be required to provision certain resources that are not covered by the dependencies pipeline. In the following, you can find an overview of these resources, for which modules you need them and what you need to do: ### Microsoft.Web/sites -To successfully deploy the sites module using the parameter file `fa.parameters.json` you need to create an Azure Active Directory App with its API endpoint enabled (e.g. `api://`) and add a secret. The secret value needs then to be stored in a Key Vault secret. - +To successfully deploy the sites module using the `fa.parameters.json` parameter file, you need to create an Azure Active Directory App with its API endpoint enabled (e.g., `api://`) and add a secret. The secret value needs then to be stored in a Key Vault secret. # 5. Update module parameter files Once the required dependencies are deployed, there is one more step left to get as many module pipelines running as possible. -Several module parameters reference resources with unique values. For example, if a module references a Key Vault key, its version identifier will only be available once the dependencies pipeline executed once. +Several module parameters reference resources with unique values. For example, if a module references a Key Vault key, its version identifier will only be available once the dependencies pipeline ran once. For this reason, make sure to update the references in the following modules once the dependencies pipeline concluded: diff --git a/docs/wiki/Getting started - Scenario 3 Contribute.md b/docs/wiki/Getting started - Scenario 3 Contribute.md index fec7f3df72..a920064754 100644 --- a/docs/wiki/Getting started - Scenario 3 Contribute.md +++ b/docs/wiki/Getting started - Scenario 3 Contribute.md @@ -1,4 +1,4 @@ -Depending on the contribution you would like to make, the number and execution of the required steps may vary. +Depending on the contribution you would like to make, the number and implementation of the required steps may vary. We identify 3 kinds of contributions: @@ -6,8 +6,8 @@ We identify 3 kinds of contributions: - Contributing to the module library - Contributing to the CI environment -In case your contribution involves changes to the library (the modules) and/or to the CI environment (the pipelines) the required steps to setup your environment are the same listed in the [**Scenario 1:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%201%20Onboard%20module%20library%20and%20CI%20environment) section. +In case your contribution involves changes to the library (the modules) and/or to the CI environment (the pipelines) the required steps to setup your environment are the same listed in the [**Scenario 2:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment) section. -Also, we suggest to review the corresponding documentation, to ensure your contribution will comply with the CARML design principles. For the library please refer to [The library overview](./The%20context%20-%20CARML%20library) page and [The library](./The%20library) section. For the CI environment contributions please review [The CI environment overview](./The%20context%20-%20CARML%20CI%20environment) page and [The CI environment](./The%20CI%20environment) section. +Also, we suggest to review the corresponding documentation, to ensure your contribution will comply with the CARML design principles. For the library, please refer to [The library overview](./The%20context%20-%20CARML%20library) page and [The library](./The%20library) section. For contributions to the CI environment, please review [The CI environment overview](./The%20context%20-%20CARML%20CI%20environment) page and [The CI environment](./The%20CI%20environment) section. The step-by-step guideline to follow when contributing to any section of this repository is provided in the [Contribution guide](./Contribution%20guide) dedicated section. diff --git a/docs/wiki/Getting started.md b/docs/wiki/Getting started.md index fdcdaddef6..4fded016f3 100644 --- a/docs/wiki/Getting started.md +++ b/docs/wiki/Getting started.md @@ -3,7 +3,7 @@ This section provides an overview on how to get started using this repository. D --- ## _Navigation_ -- [**Scenario 1:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%201%20Onboard%20module%20library%20and%20CI%20environment) +- [**Scenario 1:** Consume module library only](./Getting%20started%20-%20Scenario%201%20Consume%20library) +- [**Scenario 2:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment) - [Check namePrefix availability](./Getting%20started%20-%20Check%20NamePrefix%20availability) -- [**Scenario 2:** Consume module library only](./Getting%20started%20-%20Scenario%202%20Consume%20library) - [**Scenario 3:** Contribute](./Getting%20started%20-%20Scenario%203%20Contribute) diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index 95dae0c5e4..59619cdd94 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -1,10 +1,10 @@ # Common Azure Resource Modules Library -The objective of this repository is to provide a template library that can be reused in Infrastructure as Code scenarios, such as landing zone, workloads or individual service deployments. +The objective of this repository is to provide a template library that can accelerate deployments in Infrastructure as Code scenarios, such as Azure landing zones, landing zone accelerators and aspiring landing zone accelerators (workloads/applications/multi-module solutions) or individual service deployments. -This wiki describes the content of this repository, the modules, pipelines, possible options on how to use them and how to contribute to this project. +This wiki describes the content of this repository, its modules, pipelines, and possible options on how to use them and how to contribute to this project. -If you're unfamiliar with Infrastructure as Code, or wonder how you can use the contents of this repository in your deployments please check out [The context](./The%20context) section of this wiki. +If you're unfamiliar with Infrastructure as Code, or wonder how you can use the content of this repository in your deployments, check out [The context](./The%20context) section of this wiki. ### _Navigation_ @@ -13,9 +13,9 @@ If you're unfamiliar with Infrastructure as Code, or wonder how you can use the - [The library](./The%20context%20-%20CARML%20library) - [The CI environment](./The%20context%20-%20CARML%20CI%20environment) - [Getting started](./Getting%20started) - - [**Scenario 1:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%201%20Onboard%20module%20library%20and%20CI%20environment) + - [**Scenario 1:** Consume module library only](./Getting%20started%20-%20Scenario%201%20Consume%20library) + - [**Scenario 2:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment) - [Check namePrefix availability](./Getting%20started%20-%20Check%20NamePrefix%20availability) - - [**Scenario 2:** Consume module library only](./Getting%20started%20-%20Scenario%202%20Consume%20library) - [**Scenario 3:** Contribute](./Getting%20started%20-%20Scenario%203%20Contribute) - [The library](./The%20library) - [Module design](./The%20library%20-%20Module%20design) @@ -37,7 +37,7 @@ If you're unfamiliar with Infrastructure as Code, or wonder how you can use the - [Get formatted RBAC roles](./Contribution%20guide%20-%20Get%20formatted%20RBAC%20roles) - [Validate module locally](./Contribution%20guide%20-%20Validate%20module%20locally) - [Solution creation](./Solution%20creation) -- Upgrade guidelines +- Upgrade guideline.mds - [Upgrade from 0.3.1 to 0.4.0](./Upgrade%20from%200.3.1%20to%200.4.0) - [Known issues](./Known%20issues) @@ -45,30 +45,33 @@ If you're unfamiliar with Infrastructure as Code, or wonder how you can use the # Scope -Following you can find an abstract overview of everything in- and out-of-scope of this repository. +Following, you can find an abstract overview of everything in- and out-of-scope of this repository. ## In Scope -- **Module library:** A collection of comprehensive, reusable, Bicep-based building blocks to deploy Azure resources, that can be combined to create & orchestrate more complex Azure solutions. + +- **Module library:** A collection of comprehensive, reusable, Bicep-based building blocks to deploy Azure resources, that can be combined to create & orchestrate more complex, multi-module Azure solutions. - **CI environment:** Pipelines to validate modules & publish the successfully validated ones to a target location, using semantic versioning. Available with both GitHub Workflows and Azure DevOps pipelines. -- **Documentation:** Including design principles and usage of [The library](./The%20library) and [The CI environment](./The%20CI%20environment) as well as step-by-step guidelines on how to start leveraging those in the [Getting started](./Getting%20started). +- **Documentation:** Including design principles and usage of [The library](./The%20library) and [The CI environment](./The%20CI%20environment) as well as step-by-step guidelines on how to start leveraging them - see in the [Getting started](./Getting%20started) section. ## Out of Scope -- **Orchestration:** Orchestrated solutions such as workloads or entire environments intended for production environments -- **Real-time Updates:** Modules are updated on a best effort basis by a group of dedicated contributors -- **Languages:** Other design languages like _Terraform_ + +- **Orchestration:** Orchestrated, multi-module solutions such as workloads or applications intended for production environments. +- **Real-time Updates:** Modules are updated on a best effort basis by a group of committed contributors. +- **Languages:** Other domain-specific languages (DSL), like _Terraform_. # Reporting Issues ## Bugs -If you find any bugs, please file an issue in the [GitHub Issues][GitHubIssues] page. Please fill out the provided template with the appropriate information. +If you find any bugs, please file an issue on the [GitHub Issues][GitHubIssues] page by filling out the provided template with the appropriate information. + > Please search the existing issues before filing new issues to avoid duplicates. If you are taking the time to mention a problem, even a seemingly minor one, it is greatly appreciated, and a totally valid contribution to this project. **Thank you!** ## Feature requests -If there is a feature you would like to see in here, please file an issue or feature request in the [GitHub Issues][GitHubIssues] page to provide direct feedback. +If there is a feature you would like to see in here, please file an issue or feature request on the [GitHub Issues][GitHubIssues] page to provide direct feedback. --- diff --git a/docs/wiki/Interoperability - Bicep to ARM conversion.md b/docs/wiki/Interoperability - Bicep to ARM conversion.md index fe2be99806..d0931acf53 100644 --- a/docs/wiki/Interoperability - Bicep to ARM conversion.md +++ b/docs/wiki/Interoperability - Bicep to ARM conversion.md @@ -1,4 +1,4 @@ -Bicep is a relatively new Domain-specific language (DSL) and, at the time of writing, not yet in version 1.0.0. For this reason, some people may want to wait for Bicep's _General Availability_ and prefer to use ARM/JSON for the time being. +Bicep is a relatively new Domain-specific language (DSL) and - at the time of writing - not yet in the state of General Availability (GA). For this reason, some people may want to wait for Bicep's _General Availability_ and prefer to use ARM/JSON for the time being. For these scenarios, the CARML library provides a script that uses the Bicep Toolkit translator/compiler to support the conversion of CARML Bicep modules to ARM/JSON Templates. This page documents the conversion utility and how to use it. @@ -8,24 +8,24 @@ This page documents the conversion utility and how to use it. ### _Navigation_ - [Location](#location) -- [How it works](#what-it-does) +- [How it works](#how-it-works) - [How to use it](#how-to-use-it) --- # Location -You can find the script under `/utilities/tools/ConvertTo-ARMTemplate.ps1` +You can find the script under [`/utilities/tools/ConvertTo-ARMTemplate.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities//tools/ConvertTo-ARMTemplate.ps1) # How it works The script finds all `deploy.bicep` files and converts them to json-based ARM templates by using the following steps: 1. Remove existing deploy.json files from folders where deploy.bicep files are also present. 1. Convert .bicep files to .json -1. Remove bicep metadata from the coverted .json files +1. Remove Bicep metadata from the converted .json files 1. Remove .bicep files and folders 1. Update pipeline files - Replace .bicep with .json in pipeline files # How to use it -For details on how to use the function please refer to the script's local documentation. -> **Note:** The script must be loaded before the function can be invoked +For details on how to use the function, please refer to the script's local documentation. +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. diff --git a/docs/wiki/Interoperability - Register Azure DevOps Pipelines.md b/docs/wiki/Interoperability - Register Azure DevOps Pipelines.md index 5b4a9f9152..29b355bcc6 100644 --- a/docs/wiki/Interoperability - Register Azure DevOps Pipelines.md +++ b/docs/wiki/Interoperability - Register Azure DevOps Pipelines.md @@ -1,40 +1,40 @@ Not all customers may be using GitHub repos and/or GitHub Actions. CARML can be hosted in a GitHub repo and deployed using Azure DevOps Pipelines or run entirely through Azure DevOps. -Use this script to automatically register all specified Azure DevOps pipelines in a target Azure DevOps project. This is especially useful to register the initial module pipelines as there is one for each module in the repository. +Use the script described in this article to automatically register all specified Azure DevOps pipelines in a target Azure DevOps project. This is especially useful to register the initial module pipelines as there is one for each module in the repository. --- ### _Navigation_ - [Location](#location) -- [How it works](#what-it-does) +- [How it works](#how-it-works) - [How to use it](#how-to-use-it) --- # Location -You can find the script under `/utilities/tools/AzureDevOps/Register-AzureDevOpsPipeline.ps1` +You can find the script under [`/utilities/tools/AzureDevOps/Register-AzureDevOpsPipeline.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/tools//AzureDevOps/Register-AzureDevOpsPipeline.ps1) # How it works -1. Get all pipelines in a given target folder (for example `.azuredevops/modulePipelines`) +1. Get all pipelines in a given target folder (for example, `.azuredevops/modulePipelines`) 1. Fetch all currently registered pipelines in the target Azure DevOps project -1. Compare the local defined and remote-registered pipelines to detect which need to be created and which skipped -1. Create all pipelines that are missing -1. Optionally register the pipelines also for build validation (i.e. they registered to be required for Pull Requests) +1. Compare the local defined and remote-registered pipelines to detect which ones need to be created and which ones skipped +1. Create all pipelines that are missing from the target environment +1. Optionally register the pipelines also for build validation (i.e., they registered to be required for Pull Requests) # How to use it > **Note:** You'll need the 'azure-devops' extension to run this function: `az extension add --upgrade -n azure-devops` -The steps you'd want to follow are -1. (if pipelines are in GitHub) Create a service connection to the target GitHub repository using e.g. oAuth +Perform the following steps: +1. (If pipelines are in GitHub) Create a service connection to the target GitHub repository using e.g., oAuth 1. Create a PAT token for the Azure DevOps environment in which you want to register the pipelines in 1. Run this script with the corresponding input parameters -1. Create any required element required to execute the pipelines. For example: +1. Create any required element required to run the pipelines. For example: - Library group(s) used in the pipeline(s) - Service connection(s) used in the pipeline(s) - Agent pool(s) used in the pipeline(s) if not using the default available agents -For further details on how to use the function please refer to the script's local documentation. -> **Note:** The script must be loaded before the function can be invoked +For further details on how to use the function, please refer to the script's local documentation. +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. diff --git a/docs/wiki/Interoperability.md b/docs/wiki/Interoperability.md index dbe0dd2ffb..e0718df833 100644 --- a/docs/wiki/Interoperability.md +++ b/docs/wiki/Interoperability.md @@ -1,4 +1,4 @@ -This section explores how CARML can work with both Bicep & ARM JSON templates as well as GitHub Actions & Azure DevOps Pipelines to meet different customer scenarios. +This section explores how CARML can work with both Bicep & ARM JSON templates, as well as GitHub Actions & Azure DevOps Pipelines to meet different customer scenarios. This is how you will run different scripts and set up a module in either ARM JSON Template or Bicep syntax and configure a CI/CD pipeline using Azure DevOps or GitHub. diff --git a/docs/wiki/Known issues.md b/docs/wiki/Known issues.md index 652fd5515f..2bd7b4a51c 100644 --- a/docs/wiki/Known issues.md +++ b/docs/wiki/Known issues.md @@ -1,5 +1,3 @@ -# Known issues - This section provides an overview of the most impactful limitations and known issues. We are actively working on tracking them as GitHub issues and resolving them. --- @@ -7,28 +5,36 @@ This section provides an overview of the most impactful limitations and known is ### _Navigation_ - [Module specific](#module-specific) + - [Microsoft.AAD/DomainServices](#microsoftaaddomainservices) + - [Microsoft.KubernetesConfiguration/extensions](#microsoftkubernetesconfigurationextensions) + - [Microsoft.KubernetesConfiguration/fluxConfigurations](#microsoftkubernetesconfigurationfluxconfigurations) + - [Microsoft.Management/managementGroups](#microsoftmanagementmanagementgroups) + - [Microsoft.Network/vpnGateways](#microsoftnetworkvpngateways) + - [Microsoft.Network/virtualHubs](#microsoftnetworkvirtualhubs) + - [Microsoft.Network/vpnSites](#microsoftnetworkvpnsites) + - [Microsoft.Network/connections](#microsoftnetworkconnections) - [CI environment specific](#ci-environment-specific) - - [Static validation](#static-validation) - - [Deployment validation](#deployment-validation) - - [Limited parameter file set](#limited-parameter-file-set) - - [Publishing](#publishing) + - [Static validation](#static-validation) + - [Deployment validation](#deployment-validation) + - [Limited parameter file set](#limited-parameter-file-set) + - [Publishing](#publishing) --- # Module specific -This section outlines known issues that currently affect our modules. +This section outlines known issues that currently affect the modules. ## Microsoft.AAD/DomainServices -The Domain Services module pipeline is expected to fail in our environment for a few reasons: +The Domain Services module pipeline is expected to fail in our development/validation environment for a few reasons: -- The leveraged service principal has not the required permissions to actually deploy the service in the used tenant -- The referenced (optional) `pfxCertificate` (and password) are not actually existing in the specified key vault - unless uploaded manually +- The leveraged service principal doesn't have the required permissions to actually deploy the service in the used tenant. +- The referenced (optional) `pfxCertificate` and password don't actually exist in the specified Key Vault - unless uploaded manually. -To this end, the module was successfully tested manually in a dedicated environment. +Therefore, the module was manually tested in a dedicated environment. -If you're interested what the general pre-requisites are, please refer to the [official docs](https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-create-instance#prerequisites). +For the general prerequisites, please refer to the [official docs](https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-create-instance#prerequisites). ## Microsoft.KubernetesConfiguration/extensions @@ -43,6 +49,16 @@ The module has a dependency on which we don't have deployed using the dependencies pipeline for cost reasons. +## Microsoft.Management/managementGroups + +The Management Group module does not currently include the role assignments extension resource. + +Including RBAC capabilities has been tested setting the scope to the previously created management group and resulted in failing already in the validation step with the error: '`ManagementGroupNotFound - The management group 'EXAMPLEMG' cannot be found`'. + +A related issue has been opened to the Bicep board [#6832](https://github.com/Azure/bicep/issues/6832). + +Further details are also provided in issue [#1342](https://github.com/Azure/ResourceModules/issues/1342). + ## Microsoft.Network/vpnGateways The module has a dependency on a pre-existing Virtual Hub which we don't have deployed using the dependencies pipeline for cost reasons. @@ -63,11 +79,11 @@ The module has a dependency on pre-existing Virtual Network Gateways which we do # CI environment specific -This section outlines known issues that currently affect our CI environment, i.e. our validation and publishing pipelines. +This section outlines known issues that currently affect the CI environment, i.e., the validation and publishing pipelines. ## Static validation -This section outlines known issues that currently affect the CI environment static validation step, i.e. Pester tests. +This section outlines known issues that currently affect the CI environment static validation step, i.e., Pester tests. ## Deployment validation @@ -77,7 +93,7 @@ This section outlines known issues that currently affect the CI environment depl The deployment validation step aims to validate multiple configurations for each module. This is done by providing multiple parameter files to be leveraged by the same resource module, each covering a specific scenario. -The first planned step is to provide for each module a 'minimum-set' parameter file, limited to the top-level resource required parameters, vs. a 'maximum-set' parameter file, including all possible properties, child resources and extension resources. Some of our modules are still tested through one parameter file only. This is tracked by issue #1063. +The first planned step for each module is to provide a 'minimum-set' parameter file, limited to the top-level resource required parameters, vs. a 'maximum-set' parameter file, including all possible properties, child resources and extension resources. Some of the modules are still tested through one parameter file only. This is tracked by issue [#401](https://github.com/Azure/ResourceModules/issues/401). ## Publishing diff --git a/docs/wiki/Solution creation.md b/docs/wiki/Solution creation.md index a2de168827..ae06102a93 100644 --- a/docs/wiki/Solution creation.md +++ b/docs/wiki/Solution creation.md @@ -1,8 +1,6 @@ -# Solution creation - This section shows you how you can orchestrate a deployment using multiple resource modules. -> **Note:** For the sake of any of the below examples we assume you leverage Bicep as your primary DSL. +> **Note:** In the below examples, we assume you leverage Bicep as your primary DSL (domain specific language). --- @@ -10,16 +8,20 @@ This section shows you how you can orchestrate a deployment using multiple resou - [Upstream workloads](#upstream-workloads) - [Orchestration overview](#orchestration-overview) -- [Template orchestration](#template-orchestration) +- [Template-orchestration](#template-orchestration) - [How to start](#how-to-start) - [Examples](#examples) -- [Pipeline orchestration](#pipeline-orchestration) +- [Pipeline-orchestration](#pipeline-orchestration) + - [Summary](#summary) + - [Repo structure](#repo-structure) + - [YAML pipeline](#yaml-pipeline) + - [Notes](#notes) --- # Upstream workloads -There are several open-source repositories that leverage the CARML library today. Alongside the examples we provide you with below, the referenced repositories are a good reference on how you can leverage CARML for larger solutions. +There are several open-source repositories that leverage the CARML library today. Alongside the examples, we provide you with below, the referenced repositories are a good reference on how you can leverage CARML for larger solutions. | Repository | Description | | - | - | @@ -29,33 +31,34 @@ There are several open-source repositories that leverage the CARML library today # Orchestration overview -When it comes to environment deployment leveraging modules, we can differentiate two different orchestrations: +When it comes to deploying multi-module solutions (applications/workloads/environments/landing zone accelerators/etc.), we can differentiate two types of orchestration methods: + +- **_Template-orchestration_**: These types of deployments reference individual modules from a 'main' Bicep or ARM/JSON template and use the capabilities of this template to pass parameters & orchestrate the deployments. By default, deployments are run in parallel by the Azure Resource Manager, while accounting for all dependencies defined. With this approach, the deploying pipeline only needs one deployment job that triggers the template's deployment. - - **_Template-orchestration_**: These types of deployments reference individual modules from a 'main/environment' Bicep or ARM/JSON template and use its capabilities to pass parameters & orchestrate the deployments. By default, deployments are run in parallel by the Azure Resource Manager while accounting for all dependencies defined. Furthermore, the deploying pipeline only needs one deployment job that triggers the template's deployment. + Template orchestration - Template orchestration +- **_Pipeline-orchestration_**: This approach uses the platform specific pipeline capabilities (for example, pipeline jobs) to trigger the deployment of individual modules, where each job deploys one module. By defining dependencies in between jobs you can make sure your resources are deployed in order. Parallelization is achieved by using a pool of pipeline agents that run the jobs, while accounting for all dependencies defined. - - **_Pipeline-orchestration_**: This approach uses the platform specific pipeline capabilities (for example pipeline jobs) to trigger the deployment of individual modules, where each job deploys one module. By defining dependencies in between jobs you can make sure your resources are deployed in order. Parallelization is achieved by using a pool of pipeline agents that execute the jobs, while accounting for all dependencies defined. -Both the _template-orchestration_ as well as _pipeline-orchestration_ may run a validation and subsequent deployment on the bottom-right _Azure_ subscription. This subscription, in turn, should be the subscription where you want to host your environment. However, you can extend the concept and for example deploy the environment first to an integration and then a production subscription. +Both the _template-orchestration_, as well as _pipeline-orchestration_ may run a validation and subsequent deployment in the same _Azure_ subscription. This subscription should be the subscription where you want to host your production solution. However, you can extend the concept and for example, deploy the solution first to an integration and then a production subscription. - Pipeline orchestration + Pipeline orchestration # Template-orchestration -The _template-orchestrated_ approach means using a _main_ or so-called _master template_ for deploying resources in Azure. This template will only contain nested deployments, where the modules - instead of embedding their content into the _master template_ - will be referenced by the _master template_. +The _template-orchestrated_ approach means using a _main_ or so-called _master template_ for deploying resources in Azure. This template will only contain nested deployments, where the modules - instead of directly embedding their content into the _master template_ - will be referenced by the _master template_. -With this approach, modules need to be stored in an available location, where the Azure Resource Manager (ARM) can access them. This can be achieved by storing the modules templates in an accessible location like _local_, _Template Specs_ or the _Bicep Registry_. +With this approach, modules need to be stored in an available location, where the Azure Resource Manager (ARM) can access them. This can be achieved by storing the module templates in an accessible location like _local_, _Template Specs_ or the _Bicep Registry_. -In an enterprise environment, the recommended approach is to store these templates in a private environment, only accessible by enterprise resources. Thus, only trusted authorities can have access to these files. +In an enterprise environment, the recommended approach is to store these _master templates_ in a private environment, only accessible by enterprise resources. Thus, only trusted authorities can have access to these files. ## How to start -Once you start building a solution using this library you may wonder how best to start. Following you can find some points that can accelerate your experience: +Once you start building a solution using this library, you may wonder how best to start. Following, you can find some points that can accelerate your experience: -- Use the [VS-Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep) for Bicep to enable DSL-native features such as auto-complete. Metadata implemented in our modules are automatically loaded through the extension. +- Use the [VS-Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep) for Bicep to enable DSL-native features such as auto-complete. Metadata implemented in the modules are automatically loaded through the extension. - Use the readme - - If you don't know how to use an object/array parameter you can check if the module's ReadMe file specifies any 'Parameter Usage' block for set parameter ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#parameter-usage-tags)) - or - check the module's `Deployment Examples` ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). - - In general, take note of the `Deployment Examples` specified in each module's ReadMe file as they provide you with rich & tested examples of how set module can be deployed ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). An easy way to get started is to copy one of the examples and then adjust to it your needs. + - If you don't know how to use an object/array parameter, you can check if the module's ReadMe file specifies any 'Parameter Usage' block for the given parameter ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#parameter-usage-tags)) - or - check the module's `Deployment Examples` ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). + - In general, take note of the `Deployment Examples` specified in each module's ReadMe file, as they provide you with rich & tested examples of how a given module can be deployed ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). An easy way to get started is to copy one of the examples and then adjust it to your needs. - Note the outputs that are returned by each module. - If an output you need isn't available, you have 2 choices: 1. Add the missing output to the module @@ -66,7 +69,7 @@ Once you start building a solution using this library you may wonder how best to

    Referencing local files -The following example shows how you could orchestrate a deployment of multiple resources using local module references. In this example we will deploy a resource group with a contained NSG and use the same in a subsequent VNET deployment. +The following example shows how you could orchestrate a deployment of multiple resources using local module references. In this example, we will deploy a resource group with a Network Security Group (NSG), and use them in a subsequent VNET deployment. ```bicep targetScope = 'subscription' @@ -84,11 +87,11 @@ param location string = deployment().location // NSG parameters @description('Optional. The name of the vnet to deploy') -param networkSecurityGroupName string = 'BicepRegistryDemoNsg' +param networkSecurityGroupName string = 'LocalFilesDemoNsg' // VNET parameters @description('Optional. The name of the vnet to deploy') -param vnetName string = 'BicepRegistryDemoVnet' +param vnetName string = 'LocalFilesDemoVnet' @description('Optional. An Array of 1 or more IP Address Prefixes for the Virtual Network.') param vNetAddressPrefixes array = [ @@ -155,9 +158,9 @@ module vnet '../arm/Microsoft.Network/virtualNetworks/deploy.bicep' = {
    Referencing a Private Bicep Registry -The following example shows how you could orchestrate a deployment of multiple resources using modules from a private Bicep Registry. In this example we will deploy a resource group with a contained NSG and use the same in a subsequent VNET deployment. +The following example shows how you could orchestrate a deployment of multiple resources using modules from a private Bicep Registry. In this example, we will deploy a resource group with a Network Security Group (NSG), and use them in a subsequent VNET deployment. -> **Note**: the preferred method to publish modules to the Bicep registry is to leverage our [CI environment](./The%20CI%20environment). However, this option may not be applicable to all scenarios (ref e.g. the [Consume library](./Getting%20started%20-%20Scenario%202%20Consume%20library) section). As an alternative, the same [Publish-ModuleToPrivateBicepRegistry.ps1](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourcePublish/Publish-ModuleToPrivateBicepRegistry.ps1) script leveraged by the publishing step of the CI environment pipeline can also be executed locally. +> **Note**: the preferred method to publish modules to the Bicep registry is to leverage the [CI environment](./The%20CI%20environment) provided in this repository. However, this option may not be applicable to all scenarios (ref e.g., the [Consume library](./Getting%20started%20-%20Scenario%201%20Consume%20library) section). As an alternative, the same [`Publish-ModuleToPrivateBicepRegistry.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourcePublish/Publish-ModuleToPrivateBicepRegistry.ps1) script leveraged by the publishing step of the CI environment pipeline can also be run locally. ```bicep targetScope = 'subscription' @@ -261,9 +264,9 @@ The example assumes you are using a [`bicepconfig.json`](https://docs.microsoft.
    Referencing Template-Specs -The following example shows how you could orchestrate a deployment of multiple resources using template specs. In this example we will deploy a NSG and use the same in a subsequent VNET deployment. +The following example shows how you could orchestrate a deployment of multiple resources using template specs. In this example, we will deploy a resource group with a Network Security Group (NSG), and use them in a subsequent VNET deployment. -> **Note**: the preferred method to publish modules to template-specs is to leverage our [CI environment](./The%20CI%20environment). However, this option may not be applicable to all scenarios (ref e.g. the [Consume library](./Getting%20started%20-%20Scenario%202%20Consume%20library) section). As an alternative, the same [Publish-ModuleToTemplateSpec.ps1](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourcePublish/Publish-ModuleToTemplateSpec.ps1) script leveraged by the publishing step of the CI environment pipeline can also be executed locally. +> **Note**: the preferred method to publish modules to template-specs is to leverage the [CI environment](./The%20CI%20environment) provided in this repository. However, this option may not be applicable to all scenarios (ref e.g., the [Consume library](./Getting%20started%20-%20Scenario%201%20Consume%20library) section). As an alternative, the same [Publish-ModuleToTemplateSpec.ps1](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourcePublish/Publish-ModuleToTemplateSpec.ps1) script leveraged by the publishing step of the CI environment pipeline can also be run locally. ```bicep targetScope = 'subscription' @@ -367,15 +370,15 @@ The example assumes you are using a [`bicepconfig.json`](https://docs.microsoft. # Pipeline-orchestration -The modules provided by this repo can be orchestrated to create more complex infrastructures and as such reusable solutions or products. This approach leverages the main 'ResourceModules' repository alongside its contained modules & pipeline templates to deploy resources. Each pipeline job deploys one instance of a resources and their order is controlled by specifying dependencies in the pipeline itself. +The modules provided in this repo can be orchestrated to create more complex infrastructures, and as such, reusable solutions or products. To deploy resources, the pipeline-orchestration approach leverages the modules & pipeline templates of the 'ResourceModules' repository. Each pipeline job deploys one instance of a resource and the order of resources deployed in a multi-module solution is controlled by specifying dependencies in the pipeline itself.
    -[GitHub] Sample solution for multi-repository approach +GitHub Sample solution for multi-repository approach ### Summary -1. Below you can find an example which uses makes use of multiple repositories to orchestrate the deployment (also known as a _multi-repository_ approach) in GitHub -1. It fetches the _public_ **Azure/ResourceModules** repo for consuming bicep modules and uses the parameter files present in the _private_ **Contoso/MultiRepoTest** repo for deploying infrastructure +1. Below, you can find an example which makes use of multiple repositories to orchestrate the deployment (also known as a _multi-repository_ approach) in GitHub. +1. It fetches the _public_ **Azure/ResourceModules** repo for consuming bicep modules and uses the parameter files present in the _private_ **Contoso/MultiRepoTest** repo for deploying infrastructure. 1. This example is creating a Resource group, an NSG and a VNet - 1. Job: **Deploy multi-repo solution** 1. Checkout 'Azure/ResourceModules' repo at root of the agent @@ -466,7 +469,7 @@ jobs: ### Notes -> 1. 'Azure/ResourceModules' repo has been checked out at the root location intentionally because GitHub Actions expect the underlying utility scripts and variables at a specific location -> 1. 'contoso/MultiRepoTest' repo has been checked out in a nested folder called as "MultiRepoTestParentFolder" to distinguish it from the folders from the other repo in the agent but can be downloaded at the root location too if desired +> 1. 'Azure/ResourceModules' repo has been checked out at the root location intentionally because GitHub Actions expect the underlying utility scripts and variables at a specific location. +> 1. 'contoso/MultiRepoTest' repo has been checked out in a nested folder, called "MultiRepoTestParentFolder", to distinguish it from the folders of the other repo in the agent, but can also be downloaded at the root location if desired.
    diff --git a/docs/wiki/The CI environment - Bicep configuration file.md b/docs/wiki/The CI environment - Bicep configuration file.md index ca3366ef9c..78bbf4bf84 100644 --- a/docs/wiki/The CI environment - Bicep configuration file.md +++ b/docs/wiki/The CI environment - Bicep configuration file.md @@ -5,14 +5,15 @@ This section provides details on the Bicep configuration file (`bicepconfig.json ### _Navigation_ - [Description](#description) +- [Applied rules](#applied-rules) --- # Description -Using this file you can customize your Bicep development experience. This includes -- Linter Rules (e.g. [max parameters](https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter-rule-max-parameters)) -- Source locations (e.g. [aliases](https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/bicep-config-modules)) +Using this file, you can customize your Bicep development experience. This includes +- Linter Rules (e.g., [max parameters](https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/linter-rule-max-parameters)) +- Source locations (e.g., [aliases](https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/bicep-config-modules)) For a full list of available rules, please refer to the [official documentation](https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/bicep-config). @@ -20,4 +21,4 @@ For a full list of available rules, please refer to the [official documentation] # Applied rules -The configuration applied in our CI environment can be found in the `bicepconfig.json` file in the root folder. Next to the corresponding settings you will also find the rational for its application. +The configuration applied in the CI environment can be found in the `bicepconfig.json` file in the root folder. Next to the corresponding settings you will also find the rational for its application. diff --git a/docs/wiki/The CI environment - Deployment validation.md b/docs/wiki/The CI environment - Deployment validation.md index 454989fa60..4e23e3c833 100644 --- a/docs/wiki/The CI environment - Deployment validation.md +++ b/docs/wiki/The CI environment - Deployment validation.md @@ -1,12 +1,12 @@ This section provides an overview of the principles the deployment validation is built upon, how it is set up, and how you can interact with it. - [Deployment validation steps](#deployment-validation-steps) - - [Template validation](#template-validation) - - [Azure deployment validation](#azure-deployment-validation) - - [Output example](#output-example) - - [Resource removal](#removal) - - [How it works](#how-it-works) - - [Create a specialized removal procedure](#create-a-specialized-removal-procedure) +- [Template validation](#template-validation) +- [Azure deployment validation](#azure-deployment-validation) + - [Output example](#output-example) + - [Resource removal](#resource-removal) + - [How it works](#how-it-works) + - [Create a specialized removal procedure](#create-a-specialized-removal-procedure) - [Verify the deployment validation of your module locally](#verify-the-deployment-validation-of-your-module-locally) Deployment Validation Step @@ -21,17 +21,19 @@ The deployment validation phase can be divided into three steps, running in sequ # Template validation -The template validation step executes a dry-run with each parameter file in the module's `'.parameters'` folder +The template validation step performs a dry-run with each parameter file in the module's `'.parameters'` folder -In particular, the step executes a `Test-AzDeployment` cmdlet (_the command may vary based on the template schema_) for each provided module parameter file to verify if the template would be able to be deployed using them. +In particular, the step runs a `Test-AzDeployment` cmdlet (_the command may vary based on the template schema_) for each provided module parameter file to verify if the template could be deployed using them. The intention of this test is to **fail fast**, before getting to the later deployment step. The template validation could fail either because the template is invalid, or because any of the parameter files is configured incorrectly. # Azure deployment validation -This step performs the actual Azure deployments using each available & configured module parameter file. The purpose of this step is to prove the module can be deployed in different configurations based on the different parameters provided. Deployments for the different variants happen in parallel. +This step performs the actual Azure deployments using each available & configured module parameter file. The purpose of this step is to prove the module can be deployed in different configurations based on the different parameters provided. Deployments for the different variants happen in parallel. -The parameter files used in this stage should ideally cover as many configurations as possible to validate the template flexibility, i.e. to verify that the module can cover multiple scenarios in which the same Azure resource may be used. Using the example of a CosmosDB module we may want to have one parameter file for the minimum amount of required parameters, one parameter file for each CosmosDB type to test individual configurations and at least one parameter file testing the supported extension resources such as RBAC & diagnostic settings. +If any of these parallel deployments require multiple/different/specific resource instances already present, these resources are deployed by the [dependencies pipeline](./The%20CI%20environment%20-%20Pipeline%20design.md#dependencies-pipeline). E.g., for the Azure Firewall to be tested with multiple configurations, the dependencies pipeline deploys multiple VNET instances, with a dedicated "AzureFirewallSubnet" in each. + +The parameter files used in this stage should ideally cover as many configurations as possible to validate the template flexibility, i.e., to verify that the module can cover multiple scenarios in which the given Azure resource may be used. Using the example of the CosmosDB module, we may want to have one parameter file for the minimum amount of required parameters, one parameter file for each CosmosDB type to test individual configurations, and at least one parameter file testing the supported extension resources such as RBAC & diagnostic settings. > **Note**: Since every customer environment might be different due to applied Azure Policies or security policies, modules might behave differently and naming conventions need to be verified beforehand. @@ -43,66 +45,65 @@ The parameter files used in this stage should ideally cover as many configuratio This paragraph describes how the removal of resources deployed by a module is performed and how to modify the default behavior if a specific module or resource type needs it. -The removal step is triggered after the deployment completes. It removes all resources deployed in the previous deployment step. The reason is twofold: +The removal step is triggered after the deployment completes. It removes all resources deployed in the previous step. The reason is twofold: - Make sure to keep the validation subscription cost as low as possible. -- Allow test deployments from scratch at every run. +- Run test deployments from scratch at every run. -However, the removal step can be skipped in case further investigation on the deployed resource is needed. This can be controlled when running the module pipeline leveraging [Module pipeline inputs](./The%20CI%20environment%20-%20Pipeline%20design#module#module-pipeline-inputs). +However, the removal step can be skipped in case further investigation on the deployed resource is needed. This can be controlled when running the module pipeline leveraging [Module pipeline inputs](./The%20CI%20environment%20-%20Pipeline%20design.md#module-pipeline-inputs). ### How it works -The removal process will remove all resources created by the deployment. The list of resources is identified by: +The removal process will delete all resources created by the deployment. The list of resources is identified by: -1. Recursively fetching the list of resource IDs created in the deployment (identified via the used deployment name). -1. Ordering the list based on resource IDs segment count (ensures child resources are removed first. E.g. `storageAccount/blobServices` comes before `storageAccount` as it has one more segments delimited by `/`). -1. Filtering out resources used as dependencies for different modules from the list (e.g. the commonly used Log Analytics workspace). -1. Moving specific resource types to the top of the list (if a certain order is required). For example `vWAN` requires its `Virtual Hubs` to be removed first, even though they are no child-resources. +1. Recursively fetching the list of resource IDs created in the deployment (identified via the deployment name used). +1. Ordering the list based on resource IDs segment count (ensures child resources are removed first. E.g., `storageAccount/blobServices` comes before `storageAccount` as it has one more segments delimited by `/`). +1. Filtering out resources used as dependencies for different modules from the list (e.g., the commonly used Log Analytics workspace). +1. Moving specific resource types to the top of the list (if a certain order is required). For example, `diagnosticSettings` need to be removed before the resource to which they are applied, even though they are no child-resources. -After a resource is removed (this happens after each resource in the list), the script will execute, if defined, a **post removal operation**. This can be used for those resource types that requires a post-processing, like purging a soft-deleted key vault. +After a resource is removed (this happens after each resource in the list), if defined, the script will perform a **post removal operation**. This can be used for those resource types that require post-processing, like purging a soft-deleted Key Vault. -The procedure is initiated post-deployment by the script `/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1` in the pipeline templates: -- (Azure DevOps) `/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml` -- (GitHub) `/.github/actions/templates/validateModuleDeployment/action.yml` +The procedure is initiated post-deployment by the script [`/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1) in the pipeline templates: +- (Azure DevOps) [`/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml`](https://github.com/Azure/ResourceModules/blob/main/.azuredevops/pipelineTemplates/jobs.validateModuleDeployment.yml) +- (GitHub) [`/.github/actions/templates/validateModuleDeployment/action.yml`](https://github.com/Azure/ResourceModules/blob/main/.github/actions/templates/validateModuleDeployment/action.yml) -It uses several helper scripts that can be found in its `helper` sub-folder +It uses several helper scripts that can be found in its `helper` subfolder ### Create a specialized removal procedure This paragraph is intended for CARML contributors who want to add a new module to the library. It contains instructions on how to customize the removal scripts if needed for any specific resource. -The default removal procedure works for most of the modules. As such it is unlikely you'll have to change anything to enable your new module for removal post-deployment. +The default removal procedure works for most of the modules. As such, it is unlikely you'll have to change anything to enable your new module for post-deployment removal. However, if you need to, you can define a custom removal procedure by: -1. influencing the **order** in which resources are removed by prioritizing specific resource types - > **Example** Removing a _Virtual WAN_ resource requires related resources to be deleted in a specific order -1. defining a **custom removal action** to remove a resource of a _specific resource type_ - > **Example** A _Recovery Services Vault_ resource requires some protected items to be identified and removed before the vault itself can be removed -1. defining a custom **post-removal action** to be run after removing a resource of a _specific resource type_ - > **Example** A _Key Vault_ resource needs to be purged when soft deletion is enforced +1. Influencing the **order** in which resources are removed by prioritizing specific resource types. + > **Example** _Diagnostic settings_ need to be removed before the resource to which they are applied. +1. Defining a **custom removal** action to remove a resource of a _specific resource type_. + > **Example** A _Recovery Services Vault_ resource requires some protected items to be identified and removed before the vault itself can be removed. +1. Defining a **custom post-removal** action to be run after removing a resource of a _specific resource type_. + > **Example** A _Key Vault_ resource needs to be purged when soft deletion is enforced. Those methods can be combined independently. To modify the resource types removal **order**: -1. Open the `/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1` file. +1. Open the [`/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1) file. 1. Look for the following comment: `### CODE LOCATION: Add custom removal sequence here` 1. Add a case value that matches your resource type 1. In the case block, update the `$removalSequence` variable value to accommodate your module requirements 1. Remember to add the `break` statement. To define a **custom removal** action: -1. Open the `/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1` file. +1. Open the [`/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1) file. 1. Look for the following comment: `### CODE LOCATION: Add custom removal action here` 1. Add a case value that matches the resource type you want to customize the removal action for 1. In the case block, define the resource-type-specific removal action -To add a **post-removal** step: -1. Open the `/utilities/pipelines/resourceRemoval/helper/Invoke-ResourcePostRemoval.ps1` file. +To add a **custom post-removal** step: +1. Open the [`/utilities/pipelines/resourceRemoval/helper/Invoke-ResourcePostRemoval.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourceRemoval/helper/Invoke-ResourcePostRemoval.ps1) file. 1. Look for the following comment: `### CODE LOCATION: Add custom post-removal operation here` 1. Add a case value that matches the resource type you want to add a post-removal operation for 1. In the case block, define the resource-type-specific post-removal action - # Verify the deployment validation of your module locally This paragraph is intended for CARML contributors or more generally for those leveraging the CARML CI environment and want to update or add a new module to the library. diff --git a/docs/wiki/The CI environment - GitHub ReadMe module table update.md b/docs/wiki/The CI environment - GitHub ReadMe module table update.md index 72c0a5917f..e7540f6ae3 100644 --- a/docs/wiki/The CI environment - GitHub ReadMe module table update.md +++ b/docs/wiki/The CI environment - GitHub ReadMe module table update.md @@ -1,28 +1,28 @@ Use this script to update a given ReadMe's module table in its 'Available Resource Modules' section. -In the platform's pipeline `platform.updateReadMe.yml`, this script is invoked each time anything in the `arm` path changes to keep the table in sync. It updates both the root ReadMe (`/readme.md`) and `arm` folder ReadMe (`/arm/readme.md`) with a different set of required columns +In the platform's pipeline `platform.updateReadMe.yml`, this script is invoked each time anything in the `arm` path changes to keep the table in sync. It updates both the root ReadMe ([`/readme.md`](https://github.com/Azure/ResourceModules/blob/main/README)) and `arm` folder ReadMe ([`/arm/readme.md`](https://github.com/Azure/ResourceModules/blob/main/arm/readme)) with a different set of required columns --- ### _Navigation_ - [Location](#location) -- [How it works](#what-it-does) +- [How it works](#how-it-works) - [How to use it](#how-to-use-it) --- # Location -You can find the script under `/utilities/tools/Set-ReadMeModuleTable.ps1` +You can find the script under [`/utilities/tools/Set-ReadMeModuleTable.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/tools/Set-ReadMeModuleTable.ps1) # How it works 1. The script loads the current content of the given readMe file (the one provided via the parameter `FilePath`) -1. It then generates a new table based on an either specified or default set of intended columns (for example a `name` column, and or `status` column) +1. It then generates a new table based on an either specified or default set of intended columns (for example, a `name` column, and or `status` column) 1. It replaces the original content in section `Available Resource Modules` with the new table 1. If not invoked with a `-WhatIf` the script will eventually overwrite the original file with the new content # How to use it -For details on how to use the function please refer to the script's local documentation. +For details on how to use the function, please refer to the script's local documentation. -> **Note:** The script must be loaded before the function can be invoked +> **Note:** The script must be loaded ('*dot-sourced*') before the function can be invoked. diff --git a/docs/wiki/The CI environment - Pipeline design.md b/docs/wiki/The CI environment - Pipeline design.md index 6d2a436098..3101460e81 100644 --- a/docs/wiki/The CI environment - Pipeline design.md +++ b/docs/wiki/The CI environment - Pipeline design.md @@ -12,6 +12,11 @@ This section provides an overview of the design principles applied to the CARML - [Dependencies pipeline](#dependencies-pipeline) - [Dependencies pipeline inputs](#dependencies-pipeline-inputs) - [Resources deployed by the dependencies pipeline](#resources-deployed-by-the-dependencies-pipeline) + - [**1st level resources**](#1st-level-resources) + - [**2nd level resources**](#2nd-level-resources) + - [**3rd level resources**](#3rd-level-resources) + - [**4th level resources**](#4th-level-resources) + - [**5th level resources**](#5th-level-resources) - [Required secrets and keys](#required-secrets-and-keys) - [ReadMe pipeline](#readme-pipeline) - [Wiki pipeline](#wiki-pipeline) @@ -27,7 +32,7 @@ The purpose of each module pipeline is twofold: 1. **Validation**: To ensure the modules hosted by the CARML library are valid and can perform the intended deployments. 1. **Publishing**: To publish _versioned_ and already validated modules to one or multiple target locations, from where they can be referenced by solutions consuming them. -As such each pipeline can be mapped to `Phases 1 and 2` described in the [Deployment flow](./The%20context%20-%20CARML%20CI%20environment#deployment-flow) section. +As such, each pipeline can be mapped to `Phases 1 and 2` described in the [Deployment flow](./The%20context%20-%20CARML%20CI%20environment.md#deployment-flow) section. Pipeline phases @@ -38,11 +43,11 @@ The following paragraphs provide an overview of the different phases and shared ## Pipeline phases -This paragraph provides an overview of the three phases executed by each module pipeline. Further details about the implementation and design of each phase are provided in the dedicated pages linked below. +This paragraph provides an overview of the three phases performed by each module pipeline. Further details about the implementation and design of each phase are provided on the dedicated pages linked below. -1. **Static Validation**: Executes a set of static Pester tests against the module and its templates to ensure they comply with our design principles. Further details for this phase are provided by the corresponding Wiki section [Static validation](./The%20CI%20environment%20-%20Static%20validation). -1. **Deployment Validation**: An actual Azure deployment is run against a sandbox subscription leveraging a predefined set of parameter files, each validating a different configuration of the same Azure resource in parallel. The test suite is cleaned up by default, removing all test resources post-deployment. Further details for this phase are provided by the corresponding Wiki section [Deployment validation](./The%20CI%20environment%20-%20Deployment%20validation). -1. **Publishing**: Runs only if the previous steps are successful. A new module version is published to all configured target locations such as template specs, private Bicep registry and Azure DevOps Universal Packages. Published module versions can then be referenced by solutions using them. Further details for this phase are provided by the corresponding Wiki section [Publishing](./The%20CI%20environment%20-%20Publishing). +1. **Static Validation**: Runs a set of static Pester tests on the module and its templates to ensure they comply with the design principles of CARML. Further details for this phase are provided on the corresponding wiki page - see the [Static validation](./The%20CI%20environment%20-%20Static%20validation) section. +1. **Deployment Validation**: An actual Azure deployment is run in a sandbox subscription leveraging a predefined set of parameter files, each validating a different configuration of the same Azure resource in parallel. The test suite is cleaned up by default, removing all test resources post-deployment. Further details for this phase are provided on the corresponding wiki page - see the [Deployment validation](./The%20CI%20environment%20-%20Deployment%20validation) section. +1. **Publishing**: Runs only if the previous steps are successful. A new module version is published to all configured target locations such as template specs, private Bicep registry and Azure DevOps Universal Packages. Published module versions can then be referenced by solutions using them. Further details for this phase are provided on the corresponding wiki page - see the [Publishing](./The%20CI%20environment%20-%20Publishing) page. Pipeline phases @@ -66,8 +71,8 @@ In addition, workflows leverage the following composite actions: | Composite Action | Description | | - | - | -| **getWorkflowInput** | This action allows fetching workflow input values from the module's workflow file, even if the pipeline was not triggered via a `workflow_dispatch` action. Without it we would not be able to process the contained information and would need to duplicate the configuration as workflow variables. Such input values are for example the removal switch `removeDeployment`. | -| **setEnvironmentVariables** | This action parses the variables file `global.variables.yml` and sets the key-value pairs in the `variables` list as environment variables. | +| **getWorkflowInput** | This action allows fetching workflow input values from the module's workflow file, even if the pipeline was not triggered via a `workflow_dispatch` action. Without it, we would not be able to process the contained information and would need to duplicate the configuration as workflow variables. Such input values are for example, the removal switch `removeDeployment`. | +| **setEnvironmentVariables** | This action parses the variables file ([`global.variables.yml`](https://github.com/Azure/ResourceModules/blob/main/global.variables.yml)) and sets the key-value pairs in the `variables` list as environment variables. | Technical documentation for each composite action, such as required input and output variables, is included in each `action.yml` file located in path `.github/actions/templates`. @@ -97,7 +102,7 @@ Each module pipeline comes with the following runtime parameters: - `'Branch' dropdown`: A dropdown to select the branch to run the pipeline from. - `'Remove deployed module' switch`: Can be enabled or disabled and controls whether the test-deployed resources are removed after testing. It is enabled by default. -- `'Publish prerelease module' switch`: Can be enabled or disabled and allows publishing a prerelease version for the corresponding module when running the pipeline from a branch different than [main|master]. It is disabled by default. For further information of how the input is processed refer to the [Publishing](./The%20CI%20environment%20-%20Publishing) dedicated page. +- `'Publish prerelease module' switch`: Can be enabled or disabled and allows publishing a prerelease version for the corresponding module when running the pipeline from a branch different than `main|master`. It is disabled by default. For further information of how the input is processed refer to the [Publishing](./The%20CI%20environment%20-%20Publishing) dedicated page. Module Pipeline Input @@ -115,42 +120,38 @@ In addition to module pipelines, the repository includes several platform pipeli In order to successfully run module pipelines to validate and publish CARML modules to the target environment, certain Azure resources need to be deployed beforehand. -For example any instance of the [Virtual Machine] module needs an existing virtual network to be connected to and a key vault hosting its required local admin credentials to be referenced. +For example, any instance of the \[Virtual Machine] module needs an existing virtual network to be connected to and a Key Vault hosting its required local admin credentials to be referenced. -The dependencies pipeline covers this requirement and is intended to be run before executing module pipelines successfully. +The dependencies pipeline covers this requirement and is intended to be run before using the module pipelines. -The pipeline leverages resource parameters from the `utilities\dependencies` subfolder and either one of the following pipelines: -- GitHub workflow: `.github\workflows\platform.dependencies.yml` -- Azure DevOps pipeline: `.azuredevops\platformPipelines\platform.dependencies.yml` +The pipeline leverages resource parameters from the `utilities\pipelines\dependencies` subfolder and either one of the following pipelines: +- GitHub workflow: [`.github\workflows\platform.dependencies.yml`](https://github.com/Azure/ResourceModules/blob/main/.github\workflows\platform.dependencies.yml) +- Azure DevOps pipeline: [`.azuredevops\platformPipelines\platform.dependencies.yml`](https://github.com/Azure/ResourceModules/blob/main/.azuredevops\platformPipelines\platform.dependencies.yml) ### Dependencies pipeline inputs The dependencies pipeline comes with the following runtime parameters: - `'Branch' dropdown`: A dropdown to select the branch to run the pipeline from. -- `'Enable SqlMI dependency deployment' switch`: Can be enabled or disabled and controls whether the dependencies for the [SQL managed instance] module are deployed during execution. It is disabled by default. -- `'Enable deployment of a vhd stored in a blob container' switch`: Can be enabled or disabled and controls whether including the baking of a VHD and subsequent backup to a target storage blob container during the execution. This is a dependency for the [Compute Images] and [Compute Disks] modules. This task requires up to two hours completion and is disabled by default. +- `'Enable SqlMI dependency deployment' switch`: Can be enabled or disabled and controls whether the dependencies for the \[SQL managed instance] module are configured during deployment. It is disabled by default. +- `'Enable deployment of a vhd stored in a blob container' switch`: Can be enabled or disabled and controls whether including the baking of a VHD and subsequent backup to a target storage blob container during the deployment. This is a dependency for the \[Compute Images] and \[Compute Disks] modules. This task requires up to two hours completion and is disabled by default. - Dependency Pipeline Input + Dependencies Pipeline Input ### Resources deployed by the dependencies pipeline The resources deployed by the dependencies pipeline need to be in place before testing all the modules. -> Note: Some dependency resources (e.g. [storage account], [key vault] and [event hub namespace]) require a globally unique resource name. By default, the parameter files make use of the placeholder token `'<>'` to make all resource names specific to an environment. Refer to [Parameter File Tokens Design](./The%20CI%20environment%20-%20Token%20replacement) for more details. +> Note: Some dependency resources (e.g., \[storage account], \[Key Vault] and \[event hub namespace]) require a globally unique resource name. By default, the parameter files make use of the placeholder token `'<>'` to make all resource names specific to an environment. Refer to [Parameter File Tokens Design](./The%20CI%20environment%20-%20Token%20replacement) for more details. Since also dependency resources are in turn subject to dependencies with each other, resources are deployed in the following grouped order. -
    -1st level resources +#### **1st level resources** - 1. Resource Groups: Leveraged by all modules. Multiple instances are deployed: + 1. Resource Group: leveraged by all modules. - 'validation-rg': The resource group to which resources are deployed by default during the test deployment phase. This same resource group is also the one hosting the dependencies. -
    - -
    -2nd level resources +#### **2nd level resources** This group of resources has a dependency only on the resource group which will host them. Resources in this group can be deployed in parallel. @@ -160,109 +161,94 @@ This group of resources has a dependency only on the resource group which will h >**Note**: This resource has a global scope name. 1. Log analytics workspaces: These resources are leveraged by all resources supporting diagnostic settings on LAW. Multiple instances are deployed: - '_adp-\<>-az-law-x-001_': Default LAW. - - '_adp-\<>-az-law-aut-001_': Dedicated LAW to be leveraged by the [automation account] resource. - - '_adp-\<>-az-law-appi-001_': Dedicated LAW to be leveraged by the [application insights] resource. - 1. User assigned identity: This resource is leveraged by the [role assignment], [key vault] and [recovery services vault] dependency resources. - > **Note**: The object ID of the [user assigned identity] is needed by several dependency parameter files. However, before running the dependencies pipeline for the first time, the [user assigned identity] resource does not exist yet, thus its object ID is unknown. For this reason, instead of the object ID value, some dependency parameter files contain the `"<>"` token, for which the correct value is retrieved and replaced by the pipeline at runtime. - 1. Shared image gallery and definition: These resources are leveraged by the [image template] resource. - 1. Route table: This resource is leveraged by the virtual network subnet dedicated to test [SQL managed instance]. + - '_adp-\<>-az-law-aut-001_': Dedicated LAW to be leveraged by the \[automation account] resource. + - '_adp-\<>-az-law-appi-001_': Dedicated LAW to be leveraged by the \[application insights] resource. + 1. User assigned identity: This resource is leveraged by the \[role assignment], \[Key Vault] and \[recovery services vault] dependency resources. + > **Note**: The object ID of the \[user assigned identity] is needed by several dependency parameter files. However, before running the dependencies pipeline for the first time, the \[user assigned identity] resource does not exist yet, thus its object ID is unknown. For this reason, instead of the object ID value, some dependency parameter files contain the `"<>"` token, for which the correct value is retrieved and replaced by the pipeline at runtime. + 1. Shared image gallery and definition: These resources are leveraged by the \[image template] resource. + 1. Route table: This resource is leveraged by the virtual network subnet dedicated to test \[SQL managed instance]. >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. - 1. Route table: This resource is leveraged by a test subnet deployment of the [Virtual Network] module. - 1. Action group: This resource is leveraged by [activity log alert] and [metric alert] resources. - 1. Application security group: This resource is leveraged by the [network security group] resource. - 1. Policy assignment: This resource is leveraged by the [policy exemption] resource. - 1. Proximity placement group: This resource is leveraged by a test deployment of the [Availability set] module. + 1. Route table: This resource is leveraged by a test subnet deployment of the \[Virtual Network] module. + 1. Action group: This resource is leveraged by \[activity log alert] and \[metric alert] resources. + 1. Application security group: This resource is leveraged by the \[network security group] resource. + 1. Policy assignment: This resource is leveraged by the \[policy exemption] resource. + 1. Proximity placement group: This resource is leveraged by a test deployment of the \[Availability set] module. -
    - -
    -3rd level resources +#### **3rd level resources** This group of resources has a dependency on one or more resources in the group above. Resources in this group can be deployed in parallel. 1. Storage Account Upload: An upload job to populate the storage account configured in `parameters.json` with a test script that can be referenced - 1. AVD host pool: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [AVD application group] resource. - 1. Network Security Groups: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by different virtual network subnets. Multiple instances are deployed: - - '_adp-\<>-az-nsg-x-apgw_': NSG with required network security rules to be leveraged by the [application gateway] subnet. - - '_adp-\<>-az-nsg-x-ase_': NSG with required network security rules to be leveraged by the [app service environment] subnet. - - '_adp-\<>-az-nsg-x-bastion_': NSG with required network security rules to be leveraged by the [bastion host] subnet. - - '_adp-\<>-az-nsg-x-sqlmi_': NSG with required network security rules to be leveraged by the [sql managed instance] subnet. + 1. AVD host pool: This resource supports monitoring, hence it has a dependency on the \[storage account], \[log analytics workspace] and \[event hub] deployed in the group above. This resource is leveraged by the \[AVD application group] resource. + 1. Network Security Groups: This resource supports monitoring, hence it has a dependency on the \[storage account], \[log analytics workspace] and \[event hub] deployed in the group above. This resource is leveraged by different virtual network subnets. Multiple instances are deployed: + - '_adp-\<>-az-nsg-x-apgw_': NSG with required network security rules to be leveraged by the \[application gateway] subnet. + - '_adp-\<>-az-nsg-x-ase_': NSG with required network security rules to be leveraged by the \[app service environment] subnet. + - '_adp-\<>-az-nsg-x-bastion_': NSG with required network security rules to be leveraged by the \[bastion host] subnet. + - '_adp-\<>-az-nsg-x-sqlmi_': NSG with required network security rules to be leveraged by the \[sql managed instance] subnet. >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. - '_adp-\<>-az-nsg-x-001_': default NSG leveraged by all other subnets. - 1. Application insight: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [machine learning service] resource. - 1. Automation account: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [log analytics workspace] resource. - 1. Public IP addresses: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. Multiple instances are deployed: - - '_adp-\<>-az-pip-x-apgw_': Leveraged by the [application gateway] resource. - - '_adp-\<>-az-pip-x-bas_': Leveraged by the [bastion host] resource. - - '_adp-\<>-az-pip-x-lb_': Leveraged by the [load balancer] resource. - - '_adp-\<>-az-pip-min-lb_': Leveraged by the [load balancer] resource. - - '_adp-\<>-az-pip-x-fw_': Leveraged by the [Azure firewall] resource. - 1. Role assignment: This resource assigns the '_Contributor_' role on the subscription to the [user assigned identity] deployed as part of the group above. This is needed by the [image template] deployment. - 1. Key vault: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. Multiple instances are deployed: - - '_adp-\<>-az-kv-x-001_': KV with required secrets, keys, certificates and access policies to be leveraged by all resources requiring access to a key vault key, secret and/or certificate, i.e. [application gateway], [azure NetApp file], [azure SQL server], [disk encryption set], [machine learning service], [virtual machine], [virtual machine scale set], [virtual network gateway connection]. - - '_adp-\<>-az-kv-x-pe_': KV to be leveraged by the [private endpoint] resource. - - '_adp-\<>-az-kv-x-sqlmi_': KV with required secrets, keys and access policies to be leveraged by the [SQL managed instance] resource. + 1. Application insight: This resource supports monitoring, hence it has a dependency on the \[storage account], \[log analytics workspace] and \[event hub] deployed in the group above. This resource is leveraged by the \[machine learning service] resource. + 1. Automation account: This resource supports monitoring, hence it has a dependency on the \[storage account], \[log analytics workspace] and \[event hub] deployed in the group above. This resource is leveraged by the \[log analytics workspace] resource. + 1. Public IP addresses: This resource supports monitoring, hence it has a dependency on the \[storage account], \[log analytics workspace] and \[event hub] deployed in the group above. Multiple instances are deployed: + - '_adp-\<>-az-pip-x-apgw_': Leveraged by the \[application gateway] resource. + - '_adp-\<>-az-pip-x-bas_': Leveraged by the \[bastion host] resource. + - '_adp-\<>-az-pip-x-lb_': Leveraged by the \[load balancer] resource. + - '_adp-\<>-az-pip-min-lb_': Leveraged by the \[load balancer] resource. + - '_adp-\<>-az-pip-x-fw_': Leveraged by the \[Azure firewall] resource. + 1. Role assignment: This resource assigns the '_Contributor_' role on the subscription to the \[user assigned identity] deployed as part of the group above. This is needed by the \[image template] deployment. + 1. Key Vault: This resource supports monitoring, hence it has a dependency on the \[storage account], \[log analytics workspace] and \[event hub] deployed in the group above. Multiple instances are deployed: + - '_adp-\<>-az-kv-x-001_': KV with required secrets, keys, certificates and access policies to be leveraged by all resources requiring access to a Key Vault key, secret and/or certificate, i.e., \[application gateway], \[azure NetApp file], \[azure SQL server], \[disk encryption set], \[machine learning service], \[virtual machine], \[virtual machine scale set], \[virtual network gateway connection]. + - '_adp-\<>-az-kv-x-pe_': KV to be leveraged by the \[private endpoint] resource. + - '_adp-\<>-az-kv-x-sqlmi_': KV with required secrets, keys and access policies to be leveraged by the \[SQL managed instance] resource. >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. >**Note**: This resource has a global scope name. - 1. Recovery services vault: This resource supports monitoring, hence it has a dependency on the [storage account], [log analytics workspace] and [event hub] deployed in the group above. This resource is leveraged by the [virtual machine] resource when backup is enabled. - -
    + 1. Recovery services vault: This resource supports monitoring, hence it has a dependency on the \[storage account], \[log analytics workspace] and \[event hub] deployed in the group above. This resource is leveraged by the \[virtual machine] resource when backup is enabled. - -
    -4th level resources +#### **4th level resources** This group of resources has a dependency on one or more resources in the groups above. Resources in this group can be deployed in parallel. - 1. AVD application group: This resource is leveraged by the [AVD workspace] resource. + 1. AVD application group: This resource is leveraged by the \[AVD workspace] resource. 1. Virtual Networks: This resource is depending on the route table and network security groups deployed above. Multiple instances are deployed: - - '_adp-\<>-az-vnet-x-peer01_': Leveraged by the [virtual network peering] resource. - - '_adp-\<>-az-vnet-x-peer02_': Leveraged by the [virtual network peering] resource. - - '_adp-\<>-az-vnet-x-azfw_': Leveraged by the [azure firewall] resource. - - '_adp-\<>-az-vnet-x-aks_': Leveraged by the [azure kubernetes service] resource. - - '_adp-\<>-az-vnet-x-sqlmi_': Leveraged by the [sql managed instance] resource. + - '_adp-\<>-az-vnet-x-peer01_': Leveraged by the \[virtual network peering] resource. + - '_adp-\<>-az-vnet-x-peer02_': Leveraged by the \[virtual network peering] resource. + - '_adp-\<>-az-vnet-x-azfw_': Leveraged by the \[azure firewall] resource. + - '_adp-\<>-az-vnet-x-aks_': Leveraged by the \[azure kubernetes service] resource. + - '_adp-\<>-az-vnet-x-sqlmi_': Leveraged by the \[sql managed instance] resource. >**Note**: This resource is deployed and configured only if sqlmi dependency resources are enabled. - - '_adp-\<>-az-vnet-x-001_': Hosting multiple subnets to be leveraged by [virtual machine], [virtual machine scale set], [service bus], [azure NetApp files], [azure bastion], [private endpoints], [app service environment] and [application gateway] resources. - 1. Azure Image Builder template: This resource triggers the build and distribution of a VHD in a storage account. The VHD file is copied to a known storage account blob container and leveraged by [compute disks] and [compute images] resources. + - '_adp-\<>-az-vnet-x-001_': Hosting multiple subnets to be leveraged by \[virtual machine], \[virtual machine scale set], \[service bus], \[azure NetApp files], \[azure bastion], \[private endpoints], \[app service environment] and \[application gateway] resources. + 1. Azure Image Builder template: This resource triggers the build and distribution of a VHD in a storage account. The VHD file is copied to a known storage account blob container and leveraged by \[compute disks] and \[compute images] resources. >**Note**: This resource is deployed and configured only if the 'Enable deployment of a vhd stored in a blob container' option is selected. -
    - - -
    -5th level resources +#### **5th level resources** This group of resources has a dependency on one or more resources in the groups above. - 1. Virtual Machine: This resource is depending on the [virtual networks] and [key vault] deployed above. This resource is leveraged by the [network watcher] resource. - 1. Private DNS zone: This resource is depending on the [virtual networks] deployed above. This resource is leveraged by the [private endpoint] resource. - -
    - -

    + 1. Virtual Machine: This resource is depending on the \[virtual networks] and \[Key Vault] deployed above. This resource is leveraged by the \[network watcher] resource. + 1. Private DNS zone: This resource is depending on the \[virtual networks] deployed above. This resource is leveraged by the \[private endpoint] resource. ### Required secrets and keys -In addition to the above resources, the following secrets, keys and certificates are created in the key vaults deployed by the dependencies pipeline. - -- Shared key vault '_adp-\<>-az-kv-x-001_' - 1. Key vault secrets: - - _administratorLogin_: For [azure SQL server] . - - _administratorLoginPassword_: For [azure SQL server]. - - _vpnSharedKey_: For [virtual network gateway connection]. - - _adminUserName_: For [virtual machine]. - - _adminPassword_: For [virtual machine]. - 1. Key vault keys: - - _keyEncryptionKey_: For [disk encryption set]. - 1. Key vault certificate: - - _applicationGatewaySslCertificate_: For [application gateway]. - -- SQL Mi key vault '_adp-\<>-az-kv-x-sqlmi_' - 1. Key vault secrets: - - _administratorLogin_: For [SQL managed instance]. - - _administratorLoginPassword_: For [SQL managed instance]. - 1. Key vault keys: - - _keyEncryptionKeySqlMi_: For [SQL managed instance]. +In addition to the above resources, the following secrets, keys and certificates are created in the Key Vaults deployed by the dependencies pipeline. + +- Shared Key Vault '_adp-\<>-az-kv-x-001_' + 1. Key Vault secrets: + - _administratorLogin_: For \[azure SQL server] . + - _administratorLoginPassword_: For \[azure SQL server]. + - _vpnSharedKey_: For \[virtual network gateway connection]. + - _adminUserName_: For \[virtual machine]. + - _adminPassword_: For \[virtual machine]. + 1. Key Vault keys: + - _keyEncryptionKey_: For \[disk encryption set]. + 1. Key Vault certificate: + - _applicationGatewaySslCertificate_: For \[application gateway]. + +- SQL Mi Key Vault '_adp-\<>-az-kv-x-sqlmi_' + 1. Key Vault secrets: + - _administratorLogin_: For \[SQL managed instance]. + - _administratorLoginPassword_: For \[SQL managed instance]. + 1. Key Vault keys: + - _keyEncryptionKeySqlMi_: For \[SQL managed instance]. ## ReadMe pipeline @@ -270,12 +256,12 @@ The repository includes two major ReadMe files that should stay in sync with the The first can be found in the repository root (`README.md`) and the second in the modules folder (`arm/README.md`). -The ReadMe pipeline is triggered each time changes are pushed to the `main` branch and only if a template in the `arm` folder is being altered. The pipeline leverages the script documented in the [GitHub ReadMe module table update](./The%20CI%20environment%20-%20GitHub%20ReadMe%20module%20table%20update) page. +The ReadMe pipeline is triggered each time changes are pushed to the `main` branch and only if a template in the `arm` folder is being altered. The pipeline leverages the script documented on the [GitHub ReadMe module table update](./The%20CI%20environment%20-%20GitHub%20ReadMe%20module%20table%20update) page. Once triggered, the pipeline crawls through the library and updates the tables in each corresponding ReadMe file, creating links to the corresponding pipeline runs and updating the list of entries. ## Wiki pipeline -The purpose of the Wiki pipeline is to sync any files from the `docs/wiki` folder to the wiki repository. It is triggered each time changes are pushed to the `main` branch and only if files in the `docs/wiki` folder are altered. +The purpose of the wiki pipeline is to sync any files from the `docs/wiki` folder to the wiki repository. It is triggered each time changes are pushed to the `main` branch and only if files in the `docs/wiki` folder are altered. -> **Note:** Any changes performed directly on the Wiki via the UI will be overwritten by this pipeline. +> **Note:** Any changes performed directly on the wiki via the UI will be overwritten by this pipeline. diff --git a/docs/wiki/The CI environment - Pipeline usage.md b/docs/wiki/The CI environment - Pipeline usage.md index d417a922ec..016d9420fc 100644 --- a/docs/wiki/The CI environment - Pipeline usage.md +++ b/docs/wiki/The CI environment - Pipeline usage.md @@ -8,9 +8,13 @@ This section provides a guideline on how to use the CARML CI environment pipelin - [Add a new module pipeline](#add-a-new-module-pipeline) - [Operate the dependencies pipeline](#operate-the-dependencies-pipeline) - [Add a new dependency](#add-a-new-dependency) -- [DevOps-Tool-specific](#devops-tool-specific-guidance) +- [DevOps-Tool-specific guidance](#devops-tool-specific-guidance) - [GitHub workflows](#github-workflows) + - [Trigger a workflow](#trigger-a-workflow) + - [Register a workflow](#register-a-workflow) - [Azure DevOps pipelines](#azure-devops-pipelines) + - [Trigger a pipeline](#trigger-a-pipeline) + - [Register a pipeline](#register-a-pipeline) --- @@ -19,12 +23,12 @@ This section provides a guideline on how to use the CARML CI environment pipelin To validate updates to a module template, you can perform the following steps: 1. (Optionally) Update the module's parameter files to reflect your changes. -1. Push the local changes to the repository (using a branch that is not [main\|master]). +1. Push the local changes to the repository (using a branch that is not `main|master`). 1. On the DevOps platform, navigate to your pipelines and select the pipeline that was registered for the module you updated. 1. Select the branch with your updated template. 1. (Optionally) disable the `Remove deployed module` input parameter in case you don't want to apply the default behavior and want to skip the deletion of the test-deployed resources to check them post-deployment. 1. (Optionally) adjust the `Publish prerelease module` flag in case you want to publish a prerelease version of your updated module from your development branch. - > **Note:** The module version is assigned a prerelease suffix + > **Note:** The module version is assigned a prerelease suffix. 1. Trigger the pipeline. Once the pipeline concludes, it will either be in a green (success) or red (failed) state, depending on how the module performed. @@ -33,31 +37,31 @@ Pipeline logs are available for troubleshooting and provide detailed information ## Add a new module pipeline -To add a new module pipeline we recommend to create a copy of a currently existing module pipeline and adjust all module-specific properties, e.g. triggers and module paths. The registration of the pipeline depends on the [DevOps platform](#devops-tool-specific-guidance) you're using. +To add a new module pipeline, we recommend to create a copy of a currently existing module pipeline and adjust all module-specific properties, e.g., triggers and module paths. The registration of the pipeline depends on the [DevOps platform](#devops-tool-specific-guidance) you're using. # Operate the dependencies pipeline -The dependencies pipeline must be triggered manually and deploys a set of resources we reference as part of our module tests (e.g. Virtual Networks, Log Analytics Workspace, Key Vaults). +The dependencies pipeline must be triggered manually. This deploys a set of resources we reference as part of the module tests (e.g., Virtual Networks, Log Analytics Workspace, Key Vaults). To run the dependencies pipeline you can perform the following steps: -1. Before executing the pipeline for the first time make sure to update the following values: +1. Before running the pipeline for the first time make sure to update the following values: | File | Parameter | Description | | - | - | - | - | `utilities\pipelines\dependencies\Microsoft.KeyVault\vaults\parameters\parameters.json` | `accessPolicies.value[0].objectId` | The 'Backup Management Service' needs access to back up the keys and secrets, along with the associated VMs. The Enterprise Application's object ID is unique per tenant. | -1. (Optionally) Verify if you are good with the dependency resource names by checking dependency parameter files stored in path `utilities\pipelines\dependencies`. If not, make the necessary updates to you local branch and push the local changes to the repository. + | `utilities\pipelines\.. ..dependencies\Microsoft.KeyVault\.. ..vaults\parameters\parameters.json` | `accessPolicies.value[0].objectId` | The 'Backup Management Service' needs access to back up the keys and secrets, along with the associated VMs. The Enterprise Application's object ID is unique per tenant. | +1. (Optionally) Verify if you are satisfied with the dependency resource names by checking dependency parameter files stored in path `utilities\pipelines\dependencies`. If not, make the necessary updates to you local branch and push the local changes to the repository. > **Note:** If you want to rename any dependency resources, make sure to update any references to their name in the module parameter files too. 1. On the DevOps platform, navigate to the dependencies pipeline. 1. Select the branch you intend to run. -1. (Optionally) Enable the `'Enable SqlMI dependency deployment' switch` to include the deployment of the dependencies for the [SQL managed instance] module. -1. (Optionally) Enable the `'Enable deployment of a vhd stored in a blob container' switch` to include the deployment of the dependencies for the [Compute Images] and [Compute Disks] modules. - > Note: This option requires up to two hours completion. +1. (Optionally) Enable the `'Enable SqlMI dependency deployment'` switch to include the deployment of the dependencies for the \[SQL managed instance] module. +1. (Optionally) Enable the `'Enable deployment of a vhd stored in a blob container'` switch to include the deployment of the dependencies for the \[Compute Images] and \[Compute Disks] modules. + > **Note**: This option requires up to two hours to complete. 1. Trigger the pipeline. -By default, i.e. by keeping the optional flags disables, the dependencies pipeline may take up to 30 minutes to execute. +By default, i.e., by keeping the optional flags disables, the dependencies pipeline may take up to 30 minutes to run. -> **Note:** For details about the dependencies pipeline design please refer to the dedicated [Dependencies pipeline design](./The%20CI%20environment%20-%20Pipeline%20design.md#dependencies-pipeline) section. +> **Note:** For details about the dependencies pipeline design, please refer to the dedicated [Dependencies pipeline design](./The%20CI%20environment%20-%20Pipeline%20design.md#dependencies-pipeline) section. ## Add a new dependency @@ -67,7 +71,7 @@ Depending on what you want to test in your module pipeline, you may want to incl # DevOps-Tool-specific guidance -This section provides a step-by-step guideline on how to operate the pipelines based on the specific chosen DevOps platform, GitHub or Azure DevOps. +This section provides a step-by-step guideline on how to operate the pipelines based on the chosen DevOps platform, GitHub or Azure DevOps. ## GitHub workflows @@ -82,18 +86,18 @@ This section focuses on _GitHub_ Actions & Workflows. 1. Navigate to the 'Actions' tab in your repository. - Actions tab + Actions tab - 1. Select the pipeline of your choice from the list on the left, followed by 'Run workflow' to the right. You can then select the branch of your choice and confirm the execution by clicking on the green 'Run workflow' button. + 1. Select the pipeline of your choice from the list on the left, followed by 'Run workflow' to the right. You can then select the branch of your choice and trigger the pipeline by clicking on the green 'Run workflow' button. - Run workflow + Run workflow - >**Note**: Depending on the pipeline you selected you may have additional input parameters you can provide aside from the branch. An outline can be found in the [Module pipeline inputs](./The%20CI%20environment%20-%20Pipeline%20design#module#module-pipeline-inputs) section. + >**Note**: Depending on the pipeline you selected you may have additional input parameters you can provide aside from the branch. An outline can be found in the [Module pipeline inputs](./The%20CI%20environment%20-%20Pipeline%20design.md#module-pipeline-inputs) section. ### Register a workflow - To register a workflow in _GitHub_ you have to create the workflow file (`.yml`) and store it inside the folder `.github/workflows`. - > ***Note:*** Once merged to [main\|master], GitHub will automatically list the new workflow in the 'Actions' tab. Workflows are not registered from a branch unless you specify a temporal push trigger targeting your branch. + To register a workflow in _GitHub_ you have to create the workflow file (`.yml`) and store it inside the `.github/workflows` folder. + > ***Note:*** Once merged to `main|master`, GitHub will automatically list the new workflow in the 'Actions' tab. Workflows are not registered from a branch unless you specify a temporal push trigger targeting your branch.

    @@ -110,49 +114,49 @@ This section focuses on _Azure DevOps_ pipelines. 1. Navigate to the 'Pipelines' section (blue rocket) and select the pipeline you want to trigger. - Pipeline start step 1 + Pipeline start step 1 1. Once selected, click on the 'Run pipeline' button on the top right. - Pipeline start step 2 + Pipeline start step 2 1. Now you can trigger the pipeline by selecting the 'Run' button on the bottom right. - Pipeline start step 3 + Pipeline start step 3 - >**Note**: Depending on the pipeline you selected you may have additional input parameters you can provide aside from the branch. An outline can be found in the [Module pipeline inputs](./The%20CI%20environment%20-%20Pipeline%20design#module#module-pipeline-inputs) section. + >**Note**: Depending on the pipeline you selected you may have additional input parameters you can provide aside from the branch. An outline can be found in the [Module pipeline inputs](./The%20CI%20environment%20-%20Pipeline%20design.md#module-pipeline-inputs) section. ### Register a pipeline To register a pipeline in _Azure DevOps_: - 1. Create a workflow file (.yml) and upload it to a repository of your choice (e.g. in _Azure DevOps_ or _GitHub_). + 1. Create a workflow file (.yml) and upload it to a repository of your choice (e.g., in _Azure DevOps_ or _GitHub_). 1. Navigate to the 'Pipelines' section (blue rocket) and select the 'New pipeline' button on the top right. - Register new pipeline step 1 + Register new pipeline step 1 1. Next, select the repository-type you stored your template in. _Azure DevOps_ will then try to fetch all repositories you have access to. - Register new pipeline step 2 + Register new pipeline step 2 - 1. Now we have to select the particular repository to get the pipeline file from. + 1. Now, we have to select the particular repository to get the pipeline file from. - Register new pipeline step 3 + Register new pipeline step 3 1. Following, choose 'Existing Azure Pipelines YAML file' on the bottom of the list. - Register new pipeline step 4 + Register new pipeline step 4 - 1. The previous action will open a new blade that asks you for the branch you stored the pipeline file in (e.g. `master`) and then asks for the relative path (from root of the repository) of the pipeline file. + 1. The previous action will open a new blade that asks you for the branch you stored the pipeline file in (e.g., `master`) and then asks for the relative path (from root of the repository) of the pipeline file. - Register new pipeline step 5 + Register new pipeline step 5 1. Finally, _Azure DevOps_ should show you the pipeline file you created. The last thing you have to do is to either select 'Run' on the top right (which will save & run the pipeline), or click the little arrow next to it and just save the pipeline. 1. Once saved you can also re-name / move the pipeline in the same view. However, this only works once you saved the pipeline at least once. - Register new pipeline step 6 + Register new pipeline step 6
    diff --git a/docs/wiki/The CI environment - Publishing.md b/docs/wiki/The CI environment - Publishing.md index 0c5ebbddfb..0000085bfd 100644 --- a/docs/wiki/The CI environment - Publishing.md +++ b/docs/wiki/The CI environment - Publishing.md @@ -2,37 +2,35 @@ This section provides an overview of the principles the publishing is built upon - [Publishing overview](#publishing-overview) - [How it works](#how-it-works) - - [Example scenario](#example-scenario) - - [Output example](#output-example) - + - [Example scenario](#example-scenario) + - [Output example](#output-example) Publishing Step # Publishing overview -The publishing phase concludes each module's pipeline. If all previous tests succeed (i.e. no phase failed) and the pipeline is executed in the `main` or `master` branch, a new module version is published to all configured target locations. Currently we support the following target locations: +The publishing phase concludes each module's pipeline. If all previous tests succeed (i.e., no phase failed) and the pipeline is run in the `main` or `master` branch, a new module version is published to all configured target locations. Currently, we support the following target locations: - _[Template specs](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-specs?tabs=azure-powershell)_ - _[Private Bicep registry](https://docs.microsoft.com/en-gb/azure/azure-resource-manager/bicep/private-module-registry)_ - _[Azure DevOps universal packages](https://docs.microsoft.com/en-us/azure/devops/artifacts/concepts/feeds?view=azure-devops)_. > Note: this is only available if using Azure DevOps pipelines. -Besides the execution of a the publishing phase, there is also the possibility to set the switch `Publish prerelease module`. This switch makes it possible to publish a pre-release version in every workflow run that is not based on main or master. This can be controlled when running the module pipeline leveraging [Module pipeline inputs](./The%20CI%20environment%20-%20Pipeline%20design#module#module-pipeline-inputs). +Besides the publishing phase's runtime, there is also the possibility to set the switch `Publish prerelease module`. This switch makes it possible to publish a prerelease version in every workflow run that is not based on `main` or `master`. This can be controlled when running the module pipeline leveraging [Module pipeline inputs](./The%20CI%20environment%20-%20Pipeline%20design.md#module-pipeline-inputs). > **Note**
    > The `version` used for publishing any artifact is the same for all three target locations, which reduces the maintenance effort. - # How it works The publishing works as follows: -1. The script `utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1` gets all changed module files including child modules and handles the logic of propagating the appropriate module version to be used: - 1. The major (`x.0`) and minor (`0.x`) version are set based on the file `version.json` in the module folder. +1. The script [`utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1`](https://github.com/Azure/ResourceModules/blob/main/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1) gets all changed module files, including child modules, and handles the logic of propagating the appropriate module version to be used: + 1. The major (`x.0`) and minor (`0.x`) version are set based on the `version.json` file in the module folder. 1. The patch (`0.0.x`) version is calculated based on the number of commits on the `HEAD` ref (aka. git height). This will cause the patch version to never reset to 0 with major and/or minor increment, as specified for [semver](https://semver.org/). 1. The module is published with a `major.minor.patch` version (`x.y.z`). For Template Specs and Bicep Registry only, a `major` version (`x`) and a `major.minor` version (`x.y`) are also updated, allowing a consumer to: - - Reference the latest version of a major, i.e. the latest minor and patch of a major version. + - Reference the latest version of a major, i.e., the latest minor and patch of a major version. > Example: Using Template Specs, the reference to a `major` could look like: `ts/modules:microsoft.resources.resourcegroups:1` which means that the template will always consume whatever the potentially overwritten/updated version `1` contains. - - Reference the latest version of a minor, i.e. the latest patch of a minor version. + - Reference the latest version of a minor, i.e., the latest patch of a minor version. > Example: Using the Bicep registry, the reference to a `major.minor` could look like: `br/modules:microsoft.resources.resourcegroups:0.4` which means that the template will always consume whatever the potentially overwritten/updated version `0.4` contains. 1. For a changed child module, the direct parent hierarchy is also registered for an update, following the same procedure as above. 1. The list of module files paths and their versions are passed on as a array list. @@ -40,7 +38,7 @@ The publishing works as follows: ## Example scenario -Lets look at an example run where we would do a patch change on the `fileShares` module: +Let's look at an example run where we would do a patch change on the `fileShares` module: 1. A new branch is created for further development of the `fileShare` module. Let's assume the new branch started from commit `500` on the default branch and the `version.json` of the `fileShare` module contains major and minor `0.3`. 1. Bug-fixes, documentation, and security updates are added to the `fileShare` module by the author. The `version.json` file is not changed in either the child or parent module folders. 1. The author runs a manual workflow based on their development branch, with the 'Publish prerelease module' option enabled. @@ -49,7 +47,7 @@ Lets look at an example run where we would do a patch change on the `fileShares` - The patch is calculated based on the total number of commits in history on the branch (independent on the module). The new branch started from commit `500` on the default branch and 1 commit has been pushed, so the total number of commits on the new branch is `501`. - As the pipeline is not running based on the 'default branch', a prerelease segment (`-prerelease`) is added to the version. - The version results in being `0.3.501-prerelease`. The child and parent modules may have different major and minor versions, but the patch version will be the same in this case. Other unmodified child modules of `storageAccount` will not be republished and remain with the existing version. -1. Sequential commits on the branch and runs of the module pipeline, with the 'publish pre-release' option enabled results in the following versions being published: +1. Sequential commits on the branch and runs of the module pipeline, with the 'publish prerelease' option enabled results in the following versions being published: - `0.3.502-prerelease` - `0.3.503-prerelease` - ... diff --git a/docs/wiki/The CI environment - Static validation.md b/docs/wiki/The CI environment - Static validation.md index f5890346ed..0396ce7f4c 100644 --- a/docs/wiki/The CI environment - Static validation.md +++ b/docs/wiki/The CI environment - Static validation.md @@ -1,6 +1,8 @@ This section provides an overview of the principles the static validation is built upon, how it is set up, and how you can interact with it. - [Static code validation](#static-code-validation) + - [Output example](#output-example) + - [Additional resources](#additional-resources) - [API version validation](#api-version-validation) - [Verify the static validation of your module locally](#verify-the-static-validation-of-your-module-locally) @@ -10,27 +12,27 @@ This section provides an overview of the principles the static validation is bui # Static code validation -All module Unit tests are performed with the help of [Pester](https://github.com/pester/Pester) and ensure that our modules are configured correctly, documentation is up to date, and modules don't turn stale. +All module Unit tests are performed with the help of [Pester](https://github.com/pester/Pester) to ensure that the modules are configured correctly, documentation is up to date, and modules don't turn stale. -The following activities are run executing the `arm/.global/global.module.tests.ps1` script. +The following activities are performed by the [`arm/.global/global.module.tests.ps1`](https://github.com/Azure/ResourceModules/blob/main/arm/.global/global.module.tests.ps1) script. -- **File & folder tests** validate that the module folder structure is set up in the intended way. e.g.: +- **File & folder tests** validate that the module folder structure is set up in the intended way, e.g.: - readme.md file exists - template file (either deploy.json or deploy.bicep) exists - compliance with file naming convention -- **Deployment template tests** check the template's structure and elements for errors as well as consistency matters. e.g. +- **Deployment template tests** check the template's structure and elements for errors as well as consistency matters, e.g.: - template file (or the built bicep template) converts from JSON and has all expected properties - variable names are camelCase - - the minimum set of outputs is returned (see [module design](./The%20library%20-%20Module%20design#Outputs)) -- **Module (readme.md) documentation** contains all required sections. e.g.: + - the minimum set of outputs is returned (see [module design](./The%20library%20-%20Module%20design.md#outputs)) +- **Module (readme) documentation** contains all required sections, e.g.: - is not empty - contains all the mandatory sections - describes all the parameters -- **Parameter Files**. e.g.: +- **Parameter Files**, e.g.: - at least one `*parameters.json` exists - files should be valid JSON - contains all required parameters - - (if tokens are used) Tests that no token values (e.g. `11111111-1111-1111-1111-11111111111`) from the specified token list (i.e. `deploymentSpId`, `subscriptionId`, `managementGroupId`, `tenantId`) are used in the parameter files. Instead, the token itself should be referenced. + - (if tokens are used) Tests that no token values (e.g., `11111111-1111-1111-1111-11111111111`) from the specified token list (i.e., `deploymentSpId`, `subscriptionId`, `managementGroupId`, `tenantId`) are used in the parameter files. Instead, the token itself should be referenced. ## Output example @@ -38,7 +40,7 @@ The following activities are run executing the `arm/.global/global.module.tests. ## Additional resources -- [Pester Wiki](https://github.com/pester/Pester/wiki) +- [Pester wiki](https://github.com/pester/Pester/wiki) - [Pester on GitHub](https://github.com/pester/Pester) - [Pester Installation and Update](https://pester.dev/docs/introduction/installation) @@ -46,13 +48,12 @@ The following activities are run executing the `arm/.global/global.module.tests. In this phase, Pester analyzes the API version of each resource type deployed by the module. -In particular, each resource's API version is compared with those currently available on Azure. Accepted are both the latest 5 versions (including preview versions) as well as the latest 5 non-preview versions. +In particular, each resource's API version is compared with those currently available on Azure. This test has a certain level of tolerance (does not enforce the latest version): the API version in use should be one of the 5 latest versions available (including preview versions) or one of the the 5 latest non-preview versions. -This test also leverages the `arm/.global/global.module.tests.ps1` script. +This test also leverages the [`arm/.global/global.module.tests.ps1`](https://github.com/Azure/ResourceModules/blob/main/arm/.global/global.module.tests.ps1) script. # Verify the static validation of your module locally - This paragraph is intended for CARML contributors or more generally for those leveraging the CARML CI environment and having the need to update or add a new module to the library. Refer to the below snippet to leverage the 'Test-ModuleLocally.ps1' script and verify if your module will comply to the static validation before pushing to source control. diff --git a/docs/wiki/The CI environment - Token replacement.md b/docs/wiki/The CI environment - Token replacement.md index 2b94ea0f18..bb2abf053c 100644 --- a/docs/wiki/The CI environment - Token replacement.md +++ b/docs/wiki/The CI environment - Token replacement.md @@ -6,18 +6,18 @@ This section provides details on the tokens replacement functionality that enabl - [Description](#description) - [Token Types](#token-types) - - [Default tokens](#default-tokens) - - [Optional local custom tokens](#optional-local-custom-tokens) + - [Default Tokens](#default-tokens) + - [(Optional) Local Custom Tokens](#optional-local-custom-tokens) - [How it works](#how-it-works) - - [How Tokens are replaced in a Parameter File](#how-tokens-are-replaced-in-a-parameter-file) + - [How tokens are replaced in a parameter file](#how-tokens-are-replaced-in-a-parameter-file) --- # Description -Tokens allow you to test deploying modules in your own environment (i.e. using tokens for your naming conventions), or apply other customizations to your resources (i.e. injecting a subscription ID inside a Resource ID string). +Tokens allow you to test deploying modules in your own environment (i.e., using tokens for your naming conventions), or apply other customizations to your resources (i.e., injecting a subscription ID inside a Resource ID string). -The [module pipelines](./The%20CI%20environment%20-%20Pipeline%20design#module-pipelines) leverage a token replacement function that enables parameter files to contain tokens (i.e. `<>`, `<>`) instead of using static values. This helps with the following: +The [module pipelines](./The%20CI%20environment%20-%20Pipeline%20design.md#module-pipelines) leverage a token replacement function that enables parameter files to contain tokens (i.e., `<>`, `<>`) instead of using static values. This helps with the following: - Allows the repository to be portable without having static values from where it was cloned. - Enables dynamic updates of the tokens from single locations without having to modify all files. @@ -29,7 +29,7 @@ There are 2 types of tokens that can be applied on a parameter file: ## Default Tokens -These are tokens constructed from environment variables, which are defined in the workflow (Pipeline). Review [Getting Started - GitHub specific prerequisites](./GettingStarted) for more information on these environment variables. +These are tokens constructed from environment variables, which are defined in the workflow (Pipeline). Review [Getting Started - GitHub specific prerequisites](./Getting%20Started) for more information on these environment variables. - `<>`: Will point to the Azure subscription. - `<>`: Will point to the Azure an Azure Management Group. @@ -55,7 +55,7 @@ These are tokens defined in the Git Repository inside a [Settings.json](https:// } ``` -Let us say you'd want to use this token inside a Key Vault parameter file, to deploy the key vault with a name that contains this token: +Let's say you'd want to use this token inside a Key Vault parameter file, to deploy the Key Vault with a name that contains this token: ```json "parameters": { @@ -69,7 +69,7 @@ Once the Key Vault is deployed, you'll notice that the Key Vault name in Azure w The token prefix `'<<'` and suffix `'>>'` in the above example are also configurable in the [Settings.json](https://github.com/Azure/ResourceModules/blob/main/settings.json) file. -The solution comes with one predefined local token `namePrefix`. When validating modules through the CI environment, you must update it to a custom value as described in the [Update default nameprefix](./Getting%20started%20-%20Scenario%201%20Onboard%20module%20library%20and%20CI%20environment#31-update-default-nameprefix) paragraph. This is done to avoid conflicts with resources requiring a globally unique name, such as storage accounts or key vaults. +The solution comes with one predefined local token `namePrefix`. When validating modules through the CI environment, you must update it to a custom value as described in the [Update default nameprefix](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment.md#31-update-default-nameprefix) paragraph. This is done to avoid conflicts with resources requiring a globally unique name, such as storage accounts or Key Vaults. > **Note**: Do not store sensitive information in this location as they will be present in your Git History. Follow best [practices and guidelines](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/best-practices#security-recommendations-for-parameters) on how to handle secrets in template deployments. @@ -77,13 +77,13 @@ The solution comes with one predefined local token `namePrefix`. When validating The below image compares the different token types that can be used for parameter file tokens: -tokenTypes +tokenTypes ## How tokens are replaced in a parameter file -The below diagram illustrates the Token Replacement Functionality via the [Validate](https://github.com/Azure/ResourceModules/blob/main/.github/actions/templates/validateModuleDeploy/action.yml) and [Deploy](https://github.com/Azure/ResourceModules/blob/main/.github/actions/templates/deployModule/action.yml) Actions/Templates. +The below diagram illustrates the Token Replacement Functionality via the [validate module deployment](https://github.com/Azure/ResourceModules/blob/main/.github/actions/templates/validateModuleDeployment/action.yml) Action/Template. -tokenReplacement +tokenReplacement - **1A.** The user creates default tokens as [GitHub Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) or [Azure DevOps Pipeline Variables](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/?view=azure-devops), that are injected as environment variables. - **1B.** The user can also create local custom Parameter File Tokens in the [Settings.json](https://github.com/Azure/ResourceModules/blob/main/settings.json) under the `localTokens` - `tokens` property. @@ -100,7 +100,7 @@ The below diagram illustrates the Token Replacement Functionality via the [Valid } ``` - **3A.** The Replace Tokens function gets the default tokens from the environment variables. - > Default Tokens are harder to scale as they are explicitly defined in deploy/validate task, workflows and pipelines, and requires updating these components as you create more tokens. + > Default Tokens are harder to scale as they are explicitly defined in deploy/validate task, workflows and pipelines, and these components must be updated as you create more tokens. - **3B.** The Replace Tokens function gets local custom tokens from the [Settings.json](https://github.com/Azure/ResourceModules/blob/main/settings.json). > Local Tokens are easier to scale as you just need to define them in this file without adding new environment variables or modifying workflows or tasks. diff --git a/docs/wiki/The CI environment.md b/docs/wiki/The CI environment.md index 70f4f003b6..6d0b9b787a 100644 --- a/docs/wiki/The CI environment.md +++ b/docs/wiki/The CI environment.md @@ -13,6 +13,6 @@ This section provides an overview of the design and principles the CARML Continu - [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) - [GitHub ReadMe module table update](./The%20CI%20environment%20-%20GitHub%20ReadMe%20module%20table%20update) - [Pipeline usage](./The%20CI%20environment%20-%20Pipeline%20usage) -- [Bicep configuration file](./The%20CI%20environment%20-%20Bicep%20configuration%20file.md) +- [Bicep configuration file](./The%20CI%20environment%20-%20Bicep%20configuration%20file) --- diff --git a/docs/wiki/The context - CARML CI environment.md b/docs/wiki/The context - CARML CI environment.md index 07132c8ec9..af7ef511f1 100644 --- a/docs/wiki/The context - CARML CI environment.md +++ b/docs/wiki/The context - CARML CI environment.md @@ -1,4 +1,4 @@ -This page provides an overview of the CARML CI environment. For further details refer to the dedicated Wiki section [The CI environment](./The%20CI%20environment) +This page provides an overview of the CARML CI environment. For further details, refer to the dedicated wiki section, "[The CI environment](./The%20CI%20environment)". --- @@ -6,31 +6,35 @@ This page provides an overview of the CARML CI environment. For further details - [Deployment flow](#deployment-flow) - [Module versioning](#module-versioning) -- [Where does the CARML CI environment fit in?](#where-does-this-platform-fit-in) +- [Where does the CARML CI environment fit in?](#where-does-the-carml-ci-environment-fit-in) --- +The Continuous Integration environment (CI environment) is a set of automation components that are used for continuously validating and publishing module artifacts (Bicep registry repositories, template specs, universal packages). Technically, the CI environment consists of a DevOps platform (GitHub or Azure DevOps) hosting related pipelines and scripts, as well as an Azure environment (Azure AD tenant with management group(s) and subscription(s)) in which the modules are validated by the automation pipelines and scripts. + +In the following chapters, we're going to explain where the CI environment fits and how it is used. + # Deployment flow -This paragraph provides an overview of the usual deployment flow that goes from source modules to target solutions. +This paragraph provides an overview of the standard development-to-deployment flow that goes from source modules to target solutions. Deployment flow -When it comes to Infrastructure as Code (IaC) deployments, the flow generally covers 3 phases: +This flow generally covers 3 phases: -1. In the **Develop modules** phase modules are first implemented/updated and then validated using one or multiple test-parameter files, testing their successful deployment against a sandbox subscription to prove their correctness. +1. In the **Develop modules** phase modules are first implemented/updated and then validated using one or multiple test-parameter files, testing their successful deployment to a sandbox subscription to prove their correctness. -1. The next phase, **Publish modules**, publishes the tested and approved modules to a target location for them to be consumed later. The target location should support versioning to allow referencing a specific module version and to avoid breaking changes when referencing them. +1. The next phase, **Publish modules**, packages and publishes the tested and approved modules to a target location for later consumption. The target location (also known as package store or artifact store) should support versioning to allow referencing a specific module version and to avoid breaking changes when referencing them. -1. In the final **Consume modules** phase published modules are referenced and combined to deploy more complex architectures such as services or workloads. +1. In the final **Consume modules** phase, published modules are referenced and combined to deploy more complex architectures (multi-module solutions) such as workloads/applications or individual services. ## Module versioning -Deploying resources by referencing their corresponding modules from source control has one major drawback: If your deployments rely on what you have in your source repository then they will by default use the latest code. +Deploying resources by referencing their corresponding modules from source control has one major drawback: If your deployments directly rely on your source repository, then they will by default use the latest code. -Applying software development lifecycle concepts like _publishing build artifacts and versioning_ enables you to have a point in time version of a module. By introducing versions to your modules, the consuming orchestration can and should specify a module version it wants to use and deploy the Azure environment using them. +Applying software development lifecycle concepts like _publishing build artifacts and versioning_ enables you to have a point in time version of a module. By introducing versions to your modules, the consuming orchestration can and should specify a module version needed, and deploy the Azure solution leveraging it. -In case a breaking change is introduced and an updated version is published, no deployments are affected because they still reference the previously published version. Instead, they must make the deliberate decision to upgrade the module to reference newer versions. +In case a breaking change is introduced to a module and an updated version is published, no deployments are affected as they still reference the previously published version. Instead, a deliberate decision must be made to upgrade the solution to reference newer module versions. Also, if you reference a module version that was tested in and has passed through the CI environment, you can trust that it complies the qualitative and functional standards. @@ -39,21 +43,23 @@ Also, if you reference a module version that was tested in and has passed throug To ensure the modules hosted by the CARML library are valid and can perform the intended deployments, the repository comes with a continuous integration (CI) environment for each module. If the validation is successful, the CI environment is also publishing versioned modules to one or multiple target locations, from where they can be referenced by solutions consuming them. -As such, the CARML CI environment covers `Phase #1`, i.e. the validation, & `Phase #2`, i.e. the publishing of the [deployment flow](#deployment-flow) section. On the other hand, a CARML consumer is usually interested in `Phase #2` and `Phase #3`, i.e. the consumption of the same deployment flow, where already tested and versioned modules can be referenced and combined to build more complex architectures. +The CARML CI environment covers `Phase #1`, (the validation) & `Phase #2` (the publishing) of the [deployment flow](#deployment-flow) section - these include the steps typically performed by the *CARML module developer* persona. + +The *CARML solution developer* and *solution consumer* personas are usually working in `Phase #2` and `Phase #3`, i.e., building/leveraging complex, multi-module solutions by consuming the already tested and versioned modules previously placed in an artifact store. Deployment flow -The below diagram provides a drill down of how the different phases are interconnected: +The below diagram shows the details of how the different phases are interconnected: Complete deployment flow -The top row represents your orchestration environment, for example _GitHub_ or _Azure DevOps_. The bottom row represents the _Azure_ environment. +The top row represents your orchestration environment, for example, _GitHub_ or _Azure DevOps_. The bottom row represents your _Azure_ cloud environment. -From left to right there are the three phases introduced before, _Develop modules_, _Publish modules_ & _Consume modules_. The diagram shows how each phase interacts with the Azure environment. +From left to right, there are the three phases introduced before, _Develop modules_, _Publish modules_ & _Consume modules_. The diagram shows how each phase interacts with the Azure environment. -1. Starting with **Develop modules**, the top left box shows the test pipelines we have for each module, executing the following: - - _Static validation_: Pester tests are run against each module to ensure a baseline code quality across the library. - - _Deployment validation_: An actual Azure deployment is run against a validation/sandbox subscription, shown in the bottom left corner. The subscription is intended to be without any link to production. Resources deployed here should be considered temporary and be removed after testing. +1. Starting with **Develop modules**, the top left box shows the test pipelines that exist for each module, performing the following steps: + - _Static validation_: Pester tests are run on each module to ensure a baseline code quality across the library. + - _Deployment validation_: An actual Azure deployment is performed in a validation/sandbox subscription, shown in the bottom left corner. The subscription is intended to be without any link to production. Resources deployed here should be considered temporary and be removed after testing. - _Publishing_: Runs only if the previous steps are successful and initiates the second phase as described below. 1. The **Publish modules** phase is shown in the center box of the diagram. If all tests for a module succeed, the module is published to a given target location. Currently, the target locations supported by the CARML CI environment are: @@ -62,4 +68,4 @@ From left to right there are the three phases introduced before, _Develop module - _[Azure DevOps Universal Packages](https://docs.microsoft.com/en-us/azure/devops/artifacts/concepts/feeds?view=azure-devops)_. > Note: this is only available if using Azure DevOps pipelines. -1. The third phase **Consume modules** is represented on the right. The top right corner provides examples of orchestrations deploying the target solutions by referencing the published modules. The deployments performed in this third phase are supposed to target an integration/production environment. This phase references the validated and published modules coming out of the CARML CI environment and leverages them with the correctly configured parameters to orchestrate their deployment in the intended order. +1. The third phase, **Consume modules** is represented on the right. The top right corner provides examples of orchestrations deploying the target solutions by referencing the published modules. The deployments performed in this third phase are supposed to target an integration/production environment. This phase references the validated and published modules coming out of the CARML CI environment, and leverages them with the correctly configured parameters to orchestrate their deployment in the intended order. diff --git a/docs/wiki/The context - CARML library.md b/docs/wiki/The context - CARML library.md index 8e234ff503..c54da733eb 100644 --- a/docs/wiki/The context - CARML library.md +++ b/docs/wiki/The context - CARML library.md @@ -1,13 +1,14 @@ -This page provides an overview of the CARML library. For an in-depth look, please refer to the dedicated Wiki section [The library](./The%20library) +This page provides an overview of the CARML library. For an in-depth look, please refer to the dedicated wiki section, "[The library](./The%20library)". --- ### _Navigation_ - [Infrastructure as Code](#infrastructure-as-code) -- [A module in CARML](#a-module-in-CARML) - - [CARML module features](#CARML-module-features) - - [Example: Multiple Storage Account variants](#example-multiple-storage-account-variants) +- [A module in CARML](#a-module-in-carml) + - [CARML module features](#carml-module-features) + - [Opinionated, but not opinionated](#opinionated-but-not-opinionated) + - [Example: Multiple Storage Account variants](#example-multiple-storage-account-variants) --- # Infrastructure as Code @@ -17,36 +18,40 @@ Using configuration & template files that represent the deployed infrastructure - Local representation: Your deployed infrastructure is mapped to a local representation as code in your repository. - Version control: The applied configuration is version controlled and hence enables roll-backs & analysis. - Repeatability: You can deploy your infrastructure in a repeatable fashion, hence minimizing the chance of manual errors. -- Reusability: You can reuse your automation to deploy the same infrastructure to different environments. For example leveraging a multi-stage deployment from a sandbox environment, via integration to production using the same code. +- Reusability: You can reuse your automation to deploy the same infrastructure to different environments. For example, leveraging a multi-stage deployment from a sandbox environment, via integration to production using the same code. -In the context of Bicep or ARM/JSON templates we usually leverage a combination of flexible templates that are deployed using multiple parameter files mapped to different scenarios. +In the context of Bicep or ARM/JSON templates, we usually leverage a combination of flexible templates that are deployed using multiple parameter files mapped to different scenarios. # A module in CARML -In the context of _CARML_ we define a module as a reusable, template-based **building block** for Infrastructure as Code deployments of Azure resources. +In the context of _CARML_, we define a module as a reusable, template-based **building block** for Infrastructure as Code deployments of Azure resources. -Each module is generalized for maximum flexibility. Each template should be able to cover as many resource-specific scenarios as possible and not restrict the user by making assumptions on the users' behalf. Eventually, the injected parameters should decide what the template deploys. +Each module is generalized for maximum flexibility. Each template should be able to cover as many resource-specific scenarios as possible and not restrict the user by making assumptions on the user's behalf. Eventually, the injected parameters should decide what the template deploys. -Furthermore, each module comes with default values for its optional parameters, a detailed documentation for its usage and one or multiple parameter files to proof its correctness. +Furthermore, each module comes with default values for its optional parameters, a detailed documentation for its usage and one or multiple parameter files to prove its correctness. ## CARML module features A CARML module should comply with the following characteristics: - **Atomic unit**: Each module is tied to a specific resource type or strongly correlated services. - > For example a virtual machine module also deploys related OS disks and network interfaces. -- **Reusable**: Several modules can be combined together to create & orchestrate more complex architectures like single services or workloads. - > For example resource group, network security group and virtual network modules can be combined to create a resource group hosting a virtual network and multiple subnets in it associated to specific NSGs. -- **Multi-purpose**: Each module aims to cover most of the main resource's capabilities, without the need to maintain multiple module instances for different use cases. Instead, the consumption of a generalized module happens through parameter files​. - > For example the same virtual machine module can deploy a Windows OS VM or a Linux-based VM depending on input parameters. -- **Integrates child resources**: Each module can deploy **_one_** instance of a resource and optionally **_n_** instances of its child-resources. - > For example, the key vault module can deploy **_one_** key vault and optionally **_n_** key vault access policies. -- **Integrates extension resources**: Extension resources are integrated with resource modules supporting them. Intended extension resources are diagnostic settings, role assignments, private endpoints, locks and managed identities. - > For example an automation account can optionally deploy private endpoints and/or diagnostic settings to support monitoring. + > For example, a virtual machine module also deploys related OS disks and network interfaces. +- **Reusable**: Several modules can be combined together to create & orchestrate more complex architectures (i.e., multi-module solutions) like workloads/applications or single services. + > For example, the resource group, the network security group and the virtual network modules can be combined to create a resource group hosting a virtual network with multiple subnets associated to specific NSGs. +- **Multi-purpose**: Each module aims to cover most of the main resource's capabilities, without the need to maintain multiple module instances for different use cases. Instead, a generalized module can be consumed through parameter files​. + > For example, the same virtual machine module can deploy a Windows OS VM or a Linux-based VM depending on input parameters. +- **Integrates child resources**: Each module can deploy **_one_** instance of a resource and optionally **_n_** instances of its child resources. + > For example, the Key Vault module can deploy **_one_** Key Vault and optionally **_n_** Key Vault access policies. +- **Integrates extension resources**: Extension resources are integrated with resource modules to support additional capabilities, such as diagnostic settings, role assignments, private endpoints, locks and managed identities. + > For example, an automation account can optionally deploy private endpoints and/or diagnostic settings to support monitoring. + +### Opinionated, but not opinionated + +CARML can be considered "*opinionated*" as its code strictly follows a set of design principles, but at the same time it's "*not opinionated*" as it's not limiting the user of the modules (i.e., Solution Developers) to a given configuration, naming or other conventions. All modules come with a set of secure default parameters, but these can be overridden at deployment time, as opposed to hard coded variables. ## Example: Multiple Storage Account variants -The following aims to illustrate the previously described module features applied to the storage account module example. +This section illustrates the previously described module features applied to the storage account module. Leveraging five different parameter files, the same storage account module is able to deploy five different storage account configurations. @@ -57,3 +62,4 @@ Leveraging five different parameter files, the same storage account module is ab > - **Variant 3**: A storage account hosting two file shares and one blob container. > - **Variant 4**: A storage account with a specific lock applied. > - **Variant 5**: A storage account hosting a file share with a specific role assignment applied on the file share level. + diff --git a/docs/wiki/The context - CARML overview.md b/docs/wiki/The context - CARML overview.md index 0890d0ee44..92bf5e15ea 100644 --- a/docs/wiki/The context - CARML overview.md +++ b/docs/wiki/The context - CARML overview.md @@ -1,10 +1,10 @@ This section provides an overview of the Common Azure Resource Modules Library (CARML) repository. -CARML overview +CARML overview -The contents of this repository are twofold: a library of comprehensive Azure resource modules that conform to the Azure Resource Reference, as well as a continuous integration (CI) environment that enables testing and versioning. +The content of this repository is twofold: it's a library of comprehensive Azure resource modules that conform to the Azure Resource Reference, as well as a continuous integration (CI) environment that enables testing and versioning. -- The library hosts a collection of comprehensive, reusable, Bicep-based building blocks to deploy Azure resources. In addition, it provides optional features across modules, such as child resources, role assignments, locks and diagnostic settings. An overview of the CARML library is first introduced in this section page [The context - CARML library](./The%20context%20-%20CARML%20library), while further details are provided by the corresponding Wiki section [The library](./The%20library). -- The continuous integration (CI) environment ensures the modules are valid and can perform the intended deployments. As such, the repository includes built-in lifecycle capabilities for each module, supporting continuous validation and versioned publishing across multiple target location options. An overview of the CARML CI environment is first introduced in this section page [The context - CARML CI environment](./The%20context%20-%20CARML%20CI%20environment), while further details are provided by the corresponding Wiki section [The CI environment](./The%20CI%20environment). +- The library hosts a collection of comprehensive, reusable, Bicep-based building blocks to deploy Azure resources. In addition, it provides optional features across modules, such as child resources, role assignments, locks and diagnostic settings. An overview of the CARML library is first introduced in this section, on the [The context - CARML library](./The%20context%20-%20CARML%20library) page, while further details are provided on the corresponding wiki page - see the [The library](./The%20library) section. +- The continuous integration (CI) environment ensures the modules are valid and can perform the intended deployments. As such, the repository includes built-in lifecycle capabilities for each module, supporting continuous validation and versioned publishing across multiple target location options. An overview of the CARML CI environment is first introduced in this section, on the [The context - CARML CI environment](./The%20context%20-%20CARML%20CI%20environment) page, while further details are provided on the corresponding wiki page - see the [The CI environment](./The%20CI%20environment) section. -The repository supports Bicep as primary domain specific language (DSL) and GitHub workflows as primary orchestration for the CI environment. However, considering both Bicep and GitHub workflows are relatively new compared to, respectively, ARM/JSON templates and Azure DevOps pipelines, the repository also provides support for the latter in any combination. Further details on this matter are provided by the corresponding Wiki section [Interoperability](./Interoperability). +The repository supports Bicep as primary domain specific language (DSL) and GitHub workflows as primary orchestration for the CI environment. However, considering both Bicep and GitHub workflows are relatively new compared to, respectively, ARM/JSON templates and Azure DevOps pipelines, the repository also provides support for the latter options in any combination. Further details on this matter are provided on the corresponding wiki page - see the [Interoperability](./Interoperability) section. diff --git a/docs/wiki/The library - Module design.md b/docs/wiki/The library - Module design.md index 9c825706db..bc63baa5f3 100644 --- a/docs/wiki/The library - Module design.md +++ b/docs/wiki/The library - Module design.md @@ -6,14 +6,23 @@ This section details the design principles followed by the CARML Bicep modules. - [General guidelines](#general-guidelines) - [File & folder structure](#file--folder-structure) - - [Naming](#naming) - [Structure](#structure) + - [**Child resources**](#child-resources) + - [Naming](#naming) - [Patterns](#patterns) + - [Locks](#locks) + - [Role Assignments (RBAC)](#role-assignments-rbac) + - [1st Element in main resource](#1st-element-in-main-resource) + - [2nd Element as nested `.bicep/nested_roleAssignments.bicep` file](#2nd-element-as-nested-bicepnested_roleassignmentsbicep-file) + - [Diagnostic Settings](#diagnostic-settings) + - [Private Endpoints](#private-endpoints) + - [1st element in main resource](#1st-element-in-main-resource-1) - [Bicep template guidelines](#bicep-template-guidelines) - [Parameters](#parameters) - [Variables](#variables) - - [Resource](#resources) + - [Resources](#resources) - [Modules](#modules) + - [Deployment names](#deployment-names) - [Outputs](#outputs) - [ReadMe](#readme) - [Parameter files](#parameter-files) @@ -21,21 +30,21 @@ This section details the design principles followed by the CARML Bicep modules. --- -Modules are written in a quite flexible way, therefore you don't need to modify them from project to project, as the aim is to cover most of the functionality that a given resource type can provide, in a way that you can interact with any module just by sending the required parameters to it - i.e. you don't have to know how the template of the particular module works inside, just take a look at the `readme.md` file of the given module to consume it. +Modules are written in a flexible way; therefore, you don't need to modify them from project to project, use case to use case, as they aim to cover most of the functionality that a given resource type can provide, in a way that you can interact with any module just by sending the required parameters to it - i.e., you don't have to know how the template of the particular module works inside, just take a look at the `readme.md` file of the given module to consume it. -The modules are multi-purpose, therefore contain a lot of dynamic expressions (functions, variables, etc.), so there's no need to maintain multiple instances for different use cases. +The modules are multi-purpose; therefore, contain a lot of dynamic expressions (functions, variables, etc.), so there's no need to maintain multiple instances for different use cases. They can be deployed in different configurations just by changing the input parameters. They are perceived by the **user** as black boxes, where they don't have to worry about the internal complexity of the code, as they only interact with them by their parameters. # General guidelines -- All resource modules in the 'arm' folder should not allow deployment loops on the top level resource but may optionally allow deployment loops on their child-resources. +- All resource modules in the 'arm' folder should not allow deployment loops on the top-level resource but may optionally allow deployment loops on their child resources. > **Example:** The storage account module allows the deployment of a single storage account with, optionally, multiple blob containers, multiple file shares, multiple queues and/or multiple tables. -- The 'constructs' folder contains examples of deployment logic built on top of resource modules contained in the 'arm' folder, allowing for example deployment loops on top level resources. - > **Example:** The VirtualNetworkPeering construct leverages the VirtualNetworkPeering module to deploy multiple virtual network peerings at once +- The 'constructs' folder contains examples of deployment logic built on top of resource modules included in the 'arm' folder, allowing for example, deployment loops on top-level resources. + > **Example:** The VirtualNetworkPeering construct leverages the VirtualNetworkPeering module to deploy multiple virtual network peering connections at once. - Where the resource type in question supports it, the module should have support for: - 1. **Diagnostic logs** and **metrics** (you can have them sent to any combination of storage account, log analytics and event hub) - 2. Resource and child-resource level **RBAC** (for example providing data contributor access on a storage account; granting file share/blob container level access in a storage account) + 1. **Diagnostic logs** and **metrics** (you can have them sent to one ore more of the following destination types: storage account, log analytics and event hub). + 2. Resource and child resource level **RBAC** (for example, providing data contributor access on a storage account; granting file share/blob container level access in a storage account) 3. **Tags** (as objects) 4. **Locks** 5. **Private Endpoints** (if supported) @@ -51,24 +60,25 @@ They can be deployed in different configurations just by changing the input para A **CARML module** consists of - The Bicep template deployment file (`deploy.bicep`). -- One or multiple template parameters files (`*parameters.json`) that will be used for testing, located in the `.parameters` sub-folder. +- One or multiple template parameters files (`*parameters.json`) that will be used for testing, located in the `.parameters` subfolder. - A `readme.md` file which describes the module itself. 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. Modules are located in the `arm` folder. Also, each module should be implemented with all capabilities it and its children support. This includes - `Locks` -- `RBAC` +- `Role assignments (RBAC)` - `Diagnostic Settings` -- and ideally also `Private Endpoints`. +- `Managed identities` +- `Private Endpoints`. ## Structure -Modules in the repository are structured via the module's main resource provider (for example `Microsoft.Web`) and resource type (for example `serverfarms`) where each section of the path corresponds to its place in the hierarchy. However, for cases that do not fit into this schema we provide the following guidance: +Modules in the repository are structured based on their main resource provider (for example, `Microsoft.Web`) and resource type (for example, `serverfarms`) where each section of the path corresponds to its place in the hierarchy. However, for cases that do not fit into this schema, we provide the following guidance: -### **Child-Resources** +### **Child resources** -Resources like `Microsoft.Sql/servers` may have dedicated templates for child-resources such as `Microsoft.Sql/servers/databases`. In these cases we recommend to create a sub-folder called after the child-resource name, so that the path to the child-resource folder is consistent with its resource type. In the given example we would have a sub-folder `databases` in the parent-folder `servers`. +Resources like `Microsoft.Sql/servers` may have dedicated templates for child resources such as `Microsoft.Sql/servers/databases`. In these cases, we recommend to create a subfolder named after the child resource, so that the path to the child resource folder is consistent with its resource type. In the given example, we would have a `databases` subfolder in the `servers` parent folder. ``` Microsoft.Sql @@ -76,9 +86,9 @@ Microsoft.Sql └─ databases [child-module/resource] ``` -In this folder we recommend to place the child-resource-template alongside a ReadMe (that can be generated via the [Set-ModuleReadMe](./Contribution%20guide%20-%20Generate%20module%20Readme) script) and optionally further nest additional folders for it's child-resources. +In this folder, we recommend to place the child resource-template alongside a ReadMe (that can be generated via the [Set-ModuleReadMe](./Contribution%20guide%20-%20Generate%20module%20Readme) script) and optionally further nest additional folders for it's child resources. -The parent template should reference all it's direct child-templates to allow for an end-to-end deployment experience while allowing any user to also reference 'just' the child-resource itself. In the case of the SQL-server example the server template would reference the database module and encapsulate it it in a loop to allow for the deployment of n-amount of databases. For example +The parent template should reference all it's direct child-templates to allow for an end-to-end deployment experience while allowing any user to also reference 'just' the child resource itself. In case of the SQL server example, the server template would reference the database module and encapsulate it in a loop to allow for the deployment of multiple databases. For example ```Bicep @description('Optional. The databases to create in the server') @@ -91,30 +101,26 @@ module server_databases 'databases/deploy.bicep' = [for (database, index) in dat Use the following naming standard for module files and folders: -- Module folders are in camelCase and their name reflects the main resource type of the Bicep module they are hosting (e.g. `storageAccounts`, `virtualMachines`). -- Cross-referenced and extension resource modules are placed in the `.bicep` subfolder and named `nested_.bicep` +- Module folders are in camelCase and their name reflects the main resource type of the Bicep module they are hosting (e.g., `storageAccounts`, `virtualMachines`). +- Extension resource modules are placed in the `.bicep` subfolder and named `nested_.bicep` ``` txt Microsoft. └─ ├─ .bicep - | ├─ nested_crossReferencedResource1.bicep - | └─ nested_crossReferencedResource2.bicep + | ├─ nested_extensionResource1.bicep ├─ .parameters | └─ parameters.json ├─ deploy.bicep └─ readme.md ``` - >**Example**: `nested_serverfarms.bicep` in the `Microsoft.Web\sites\.bicep` folder contains the cross-referenced `serverfarm` module leveraged by the top level `site` resource. + >**Example**: `nested_roleAssignments.bicep` in the `Microsoft.Web\sites\.bicep` folder contains the `site` resource RBAC implementation. >``` txt >Microsoft.Web >└─ sites > ├─ .bicep - > | ├─ nested_components.bicep - > | ├─ nested_privateEndpoint.bicep - > | ├─ nested_rbac.bicep - > | └─ nested_serverfarms.bicep + > | └─ nested_roleAssignments.bicep > ├─ .parameters > | └─ parameters.json > ├─ deploy.bicep @@ -125,43 +131,61 @@ Use the following naming standard for module files and folders: This section details patterns among extension resources that are usually very similar in their structure among all modules supporting them: -
    -Locks +### Locks The locks extension can be added as a `resource` to the resource template directly. +
    +Details + ```bicep @allowed([ + '' 'CanNotDelete' - 'NotSpecified' 'ReadOnly' ]) @description('Optional. Specify the type of lock.') -param lock string = 'NotSpecified' +param lock string = '' -resource _lock 'Microsoft.Authorization/locks@2017-04-01' = if (lock != 'NotSpecified') { +resource _lock 'Microsoft.Authorization/locks@2017-04-01' = if (!empty(lock)) { name: '${.name}-${lock}-lock' properties: { - level: lock - notes: (lock == 'CanNotDelete') ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' + level: any(lock) + notes: lock == 'CanNotDelete' ? 'Cannot delete resource or child resources.' : 'Cannot modify the resource or child resources.' } scope: } ``` +> **Note:** How locks are passed to other resource templates depends on the type of module relationship: +> - Child and extension resources +> - Locks are not automatically passed down, as they are inherited by default in Azure +> - The reference of the child/extension template should look similar to: `lock: contains(, 'lock') ? .lock : ''` +> - Using this implementation, a lock is only deployed to the child/extension resource if explicitly specified in the module's parameter file +> - For example, the lock of a Storage Account module is not automatically passed to a Storage Container child-deployment. Instead, the Storage Container resource is automatically locked by Azure together with a locked Storage Account +> - Cross-referenced resources +> - All cross-referenced resources share the lock with the main resource to prevent depending resources to be changed or deleted +> - The reference of the cross-referenced resource template should look similar to: `lock: contains(, 'lock') ? .lock : lock` +> - Using this implementation, a lock of the main resource is implicitly passed to the referenced module template +> - For example, the lock of a Key Vault module is automatically passed to an also deployed Private Endpoint module deployment +
    -
    -RBAC +

    + +### Role Assignments (RBAC) + +The RBAC deployment has 2 elements. A module that contains the implementation, and a module reference in the parent resource - each with it's own loop to enable you to deploy n-amount of role assignments to n-amount of principals. -The RBAC deployment has 2 elements to it. A module that contains the implementation, and a module reference in the parent resource - each with it's own loop to enable you to deploy n-amount of role assignments to n-amount of principals. +

    +Details #### 1st Element in main resource ```bicep @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') param roleAssignments array = [] -module _rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { +module _rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${deployment().name}-rbac-${index}' params: { principalIds: roleAssignment.principalIds @@ -171,14 +195,14 @@ module _rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, in }] ``` -#### 2nd Element as nested `.bicep/nested_rbac.bicep` file +#### 2nd Element as nested `.bicep/nested_roleAssignments.bicep` file -Here you specify the platform roles available for the main resource. +Here, you specify the platform roles available for the main resource. -The `builtInRoleNames` variable contains the list of applicable roles for the specific resource which the `nested_rbac.bicep` template applies. +The `builtInRoleNames` variable contains the list of applicable roles for the specific resource which the `nested_roleAssignments.bicep` template applies. >**Note**: You use the helper script [Get-FormattedRBACRoles.ps1](./Contribution%20guide%20-%20Get%20formatted%20RBAC%20roles) to extract a formatted list of RBAC roles used in the CARML modules based on the RBAC lists in Azure. -The element requires you to provide both the `principalIds` & `roleDefinitionOrIdName` to assign to the principal IDs. Also, the `resourceId` is target resource's resource ID that allows us to reference it as an `existing` resource. Note, the implementation of the `split` in the resource reference becomes longer the deeper you go in the child-resource hierarchy. +The element requires you to provide both the `principalIds` & `roleDefinitionOrIdName` to assign to the principal IDs. Also, the `resourceId` is target resource's resource ID that allows us to reference it as an `existing` resource. Note, the implementation of the `split` in the resource reference becomes longer the deeper you go in the child resource hierarchy. ```bicep param principalIds array @@ -216,11 +240,14 @@ resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-10-01-prev
    -
    -Diagnostic Settings +

    +### Diagnostic Settings -The diagnostic settings may differ slightly depending from resource to resource. Most notably, the `` as well as `` may be different and have to be added by you. However, it may just as well be the case they no metrics or no logs are existing. You can then remove the parameter and property from the resource itself. +The diagnostic settings may differ slightly, from resource to resource. Most notably, the `` as well as `` may be different and have to be added by you. However, it may also happen that a given resource type simply doesn't support any metrics and/or logs. In this case, you can then remove the parameter and property from the module you develop. + +

    +Details ```bicep @description('Optional. Specifies the number of days that logs will be kept for; a value of 0 will retain data indefinitely.') @@ -291,14 +318,15 @@ resource _diagnosticSettings 'Microsoft.Insights/diagnosticsetting scope: } ``` -
    -
    -Private Endpoints +

    +### Private Endpoints +The Private Endpoint deployment has 2 elements. A module that contains the implementation, and a module reference in the parent resource. The first one loops through the endpoints we want to create, the second one processes them. -The Private Endpoint deployment has 2 elements to it. A module that contains the implementation, and a module reference in the parent resource. The first loops through the endpoints we want to create, the second processes them. +

    +Details #### 1st element in main resource @@ -306,7 +334,7 @@ The Private Endpoint deployment has 2 elements to it. A module that contains the @description('Optional. Configuration Details for private endpoints.') param privateEndpoints array = [] -module _privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { +module _privateEndpoints 'https://github.com/Azure/ResourceModules/blob/main/Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { name: '${uniqueString(deployment().name, location)}--PrivateEndpoint-${index}' params: { groupIds: [ @@ -315,9 +343,9 @@ module _privateEndpoints '../../Microsoft.Network/privateEndpoints name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(.id, '/'))}-${privateEndpoint.service}-${index}' serviceResourceId: .id subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableDefaultTelemetry + enableDefaultTelemetry: enableReferencedModulesTelemetry location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : 'NotSpecified' + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} @@ -344,26 +372,25 @@ Within a bicep file, use the following conventions: ## Parameters -- Parameter names are in camelCase, e.g. `allowBlobPublicAccess`. +- Parameter names are in camelCase, e.g., `allowBlobPublicAccess`. - Descriptions contain type of requirement: - `Required` - The parameter value must be provided. The parameter does not have a default value and hence the module expects input. - `Conditional` - The parameter value can be optional or required based on a condition, mostly based on the value provided to other parameters. - `Optional` - The parameter value is not mandatory. The module provides a default value for the parameter. - `Generated` - The parameter value is generated within the module and should not be specified as input. - ## Variables -- Variable names are in camelCase, e.g. `builtInRoleNames`. +- Variable names are in camelCase, e.g., `builtInRoleNames`. ## Resources -- Resource names are in camelCase, e.g. `resourceGroup`. -- The name used as a reference is the singular name of the resource that it deploys, i.e: +- Resource names are in camelCase, e.g., `resourceGroup`. +- The name used as a reference is the singular name of the resource that it deploys, i.e.: - `resource storageAccount 'Microsoft.Storage/storageAccounts@2019-06-01'` - `resource virtualMachine 'Microsoft.Compute/virtualMachines@2020-06-01'` - Parent reference - - If working on a child-resource, refrain from string concatenation and instead use the parent reference via the `existing` keyword. + - If working on a child resource, refrain from string concatenation and instead, use the parent reference via the `existing` keyword. - The way this is implemented differs slightly the lower you go in the hierarchy. Note the following examples: - 1st level child resource (example _storageAccount/blobService_) ```bicep @@ -415,11 +442,10 @@ Within a bicep file, use the following conventions: ``` ## Modules - - Module symbolic names are in camel_Snake_Case, following the schema `_` e.g. `storageAccount_fileServices`, `virtualMachine_nic`, `resourceGroup_rbac`. - - Modules enable you to reuse code from a Bicep file in other Bicep files. As such they're normally leveraged for deploying child resources (e.g. file services in a storage account), cross referenced resources (e.g. network interface in a virtual machine) or extension resources (e.g. role assignment in a resource group). - - When a module requires to deploy a resource whose resource type is outside of the main module's provider namespace, the module of this additional resource is referenced locally. For example, when extending the Key Vault module with Private Endpoints, instead of including in the Key Vault module an ad hoc implementation of a Private Endpoint, the Key Vault directly references the Private Endpoint module (i.e., `module privateEndpoint '../../Microsoft.Network/privateEndpoints/deploy.bicep'`). Major benefits of this implementation are less code duplication, more consistency throughout the module library and allowing the consumer to leverage the full interface provided by the referenced module. - > **Note**: Cross-referencing modules from the local repository creates a dependency for the modules applying this technique on the referenced modules being part of the local repository. Reusing the example from above, the Key Vault module has a dependency on the referenced Private Endpoint module, meaning that the repository from which the Key Vault module is deployed also requires the Private Endpoint module to be present. For this reason, we provide a utility to check for any local module references in a given path. This can be useful to determine which module folders you'd need if you don't want to keep the entire library. For further information on how to use the tool, please refer to the tool-specific [documentation](./Getting started%20-%20Get%20module%20cross-references). - + - Module symbolic names are in camel_Snake_Case, following the schema `_` e.g., `storageAccount_fileServices`, `virtualMachine_nic`, `resourceGroup_rbac`. + - Modules enable you to reuse code from a Bicep file in other Bicep files. As such, they're normally leveraged for deploying child resources (e.g., file services in a storage account), cross referenced resources (e.g., network interface in a virtual machine) or extension resources (e.g., role assignment in a resource group). + - When a module requires to deploy a resource whose resource type is outside of the main module's provider namespace, the module of this additional resource is referenced locally. For example, when extending the Key Vault module with Private Endpoints, instead of including in the Key Vault module an ad hoc implementation of a Private Endpoint, the Key Vault directly references the Private Endpoint module (i.e., `module privateEndpoint 'https://github.com/Azure/ResourceModules/blob/main/Microsoft.Network/privateEndpoints/deploy.bicep'`). Major benefits of this implementation are less code duplication, more consistency throughout the module library and allowing the consumer to leverage the full interface provided by the referenced module. + > **Note**: Cross-referencing modules from the local repository creates a dependency for the modules applying this technique on the referenced modules being part of the local repository. Reusing the example from above, the Key Vault module has a dependency on the referenced Private Endpoint module, meaning that the repository from which the Key Vault module is deployed also requires the Private Endpoint module to be present. For this reason, we provide a utility to check for any local module references in a given path. This can be useful to determine which module folders you'd need if you don't want to keep the entire library. For further information on how to use the tool, please refer to the tool-specific [documentation](./Getting%20started%20-%20Get%20module%20cross-references). ### Deployment names @@ -428,14 +454,14 @@ When using modules from parent resources you will need to specify a name that, w There are some constraints that needs to be considered when naming the deployment: - Deployment name length can't exceed 64 chars. -- Two deployments with the same name created in different Azure locations (e.g. WestEurope & EastUS) in the same scope (e.g. resource group deployments) will fail. +- Two deployments with the same name created in different Azure locations (e.g., WestEurope & EastUS) in the same scope (e.g., resource group deployments) will fail. - Using the same deployment name more than once, will surface only the most recent deployed one in the Azure Portal. - If more than one deployment with the same name runs at the same time to the same scope, race condition might happen. - Human-readable names are preferable, even if not necessary. While exceptions might be needed, the following guidance should be followed as much as possible: -- When deploying more than one resource of the same referenced module is needed, we leverage loops using integer index and items in an array as per [Bicep loop syntax](https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/loops#loop-syntax). In this case we also use `-${index}` as a suffix of the deployment name to avoid race condition: +- When deploying more than one resource of the same referenced module is needed, we leverage loops using integer index and items in an array as per [Bicep loop syntax](https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/loops#loop-syntax). In this case, we also use `-${index}` as a suffix of the deployment name to avoid race condition: ``` module symbolic_name 'path/to/referenced/module/deploy.bicep' = [for (, ) in : { @@ -443,9 +469,9 @@ While exceptions might be needed, the following guidance should be followed as m ... }] ``` - > **Example**: for the `roleAssignment` deployment in the key vault `secrets` template + > **Example**: for the `roleAssignment` deployment in the Key Vault `secrets` template > ``` - > module secret_rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, index) in roleAssignments: { + > module secret_rbac '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { > name: '${deployment().name}-Rbac-${index}' > ``` @@ -471,12 +497,12 @@ While exceptions might be needed, the following guidance should be followed as m ## Outputs -- Output names are in camelCase, i.e `resourceId` +- Output names are in camelCase, i.e., `resourceId` - At a minimum, reference the following: - `name` - `resourceId` - `resourceGroupName` for modules that are deployed at resource group scope - - `systemAssignedPrincipalId` for all modules that support a managed identities + - `systemAssignedPrincipalId` for all modules that support managed identities - `location` for all modules where the primary resource has a location property - Add a `@description('...')` annotation with meaningful description to each output. @@ -486,37 +512,37 @@ While exceptions might be needed, the following guidance should be followed as m Each module must come with a ReadMe Markdown file that outlines what the module contains and 'how' it can be used. Its primary components are in order: -- A title with a reference to the primary resource in Start Case followed by the primary resource namespace e.g. Key Vaults `[Microsoft.KeyVault/vaults]`. +- A title with a reference to the primary resource in Start Case followed by the primary resource namespace e.g., Key Vaults `[Microsoft.KeyVault/vaults]`. - A short description - A **Resource types** section with a table that outlines all resources that can be deployed as part of the module. - A **Parameters** section with a table containing all parameters, their type, default and allowed values if any, and their description. -- Optionally, a **Parameter Usage** section that shows how to use complex structures such as parameter objects or array of objects, e.g. roleAssignments, tags, privateEndpoints. +- Optionally, a **Parameter Usage** section that shows how to use complex structures such as parameter objects or array of objects, e.g., roleAssignments, tags, privateEndpoints. - An **Outputs** section with a table that describes all outputs the module template returns. - A **Template references** section listing relevant resources [Azure resource reference](https://docs.microsoft.com/en-us/azure/templates). Note the following recommendations: - Refer to [Generate module Readme](./Contribution%20guide%20-%20Generate%20module%20Readme) for creating from scratch or updating the module ReadMe Markdown file. -- It is not recommended to describe how to use child resources in the parent readme file (for example 'How to define a [container] entry for the [storage account]'). Instead it is recommended to reference the child resource's ReadMe instead (for example 'container/readme.md'). +- It is not recommended to describe how to use child resources in the parent readme file (for example, 'How to define a \[container] entry for the \[storage account]'). Instead, it is recommended to reference the child resource's ReadMe (for example, 'container/readme.md'). # Parameter files -Parameter files in CARML leverage the common `deploymentParameters.json` schema for ARM deployments. As parameters are usually specific to their corresponding template, we have only very few general recommendations: -- Parameter filenames should ideally relate to the content they deploy. For example, a parameter file `min.parameters.json` should be chosen for a parameter file that contains only the minimum set of parameter to deploy the module. +Parameter files in CARML leverage the common `deploymentParameters.json` schema for ARM deployments. As parameters are usually specific to their corresponding template, we only have a few general recommendations: +- Parameter filenames should ideally relate to the content they deploy. For example, a parameter file `min.parameters.json` should be chosen for a parameter file that contains only the minimum set of parameters to deploy the module. - Likewise, the `name` parameter we have in most modules should give some indication of the file it was deployed with. For example, a `min.parameters.json` parameter file for the virtual network module may have a `name` property with the value `sxx-az-vnet-min-001` where `min` relates to the prefix of the parameter file itself. - A module should have as many parameter files as it needs to evaluate all parts of the module's functionality. -- Sensitive data should not be stored inside the parameter file but rather be injected by the use of tokens, as described in the [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) section, or via a [key vault reference](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/key-vault-parameter?tabs=azure-cli#reference-secrets-with-static-id). +- Sensitive data should not be stored inside the parameter file but rather be injected by the use of tokens, as described in the [Token replacement](./The%20CI%20environment%20-%20Token%20replacement) section, or via a [Key Vault reference](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/key-vault-parameter?tabs=azure-cli#reference-secrets-with-static-id). # Telemetry Each module in CARML contains a `defaultTelemetry` deployment `'pid--${uniqueString(deployment().name)}'`, resulting in deployments such as `'pid--nx2c3rnlt2wru'`. -> **Note:** Though implemented at each level in a module hierarchy (e.g. storage account & blobServices), the deployment will only happen for the top-level module in a deployment, but not for its children. To illustrate this better, see the following examples: +> **Note:** Though implemented at each level in a module hierarchy (e.g., storage account & blobServices), the deployment will only happen for the top-level module in a deployment, but not for its children. To illustrate this better, see the following examples: > - Deployment of the KeyVault module and 2 Secrets: Results in 1 `PID` deployment for the KeyVault (and none for the secrets) > - Deployment of the Secret module: Results in 1 `PID` deployment for the Secret -This resource enables the team responsible for CARML to query the number of deployments of a given template from Azure - and as such get insights into its adoption. +This resource enables the CARML product team to query the number of deployments of a given template from Azure - and as such, get insights into its adoption. -When using CARML's CI environment you can enable/disable this deployment by switching the `enableDefaultTelemetry` setting in the `settings.json` file in the repository's root. This value is automatically injected into each individual deployment that is executed as part of the environment's pipeline. +When using CARML's CI environment you can enable/disable this deployment by switching the `enableDefaultTelemetry` setting in the `settings.json` file in the repository's root. This value is automatically injected into each individual deployment that is performed as part of the environment's pipeline. When consuming the modules outside of CARML's pipelines you can either - Set the parameter to a default value of `'false'` @@ -524,4 +550,4 @@ When consuming the modules outside of CARML's pipelines you can either > **Note:** _The deployment and its GUID can NOT be used to track [Azure Consumed Revenue (ACR)](https://docs.microsoft.com/en-us/azure/marketplace/azure-partner-customer-usage-attribution)._ > -> _If you want to track consumption, we recommend to implement it on the consuming template's level (i.e. the workload/solution) and apply the required naming format `'pid-'` (without the suffix)._ +> _If you want to track consumption, we recommend to implement it on the consuming template's level (i.e., the multi-module solution, such as workload/application) and apply the required naming format `'pid-'` (without the suffix)._ diff --git a/docs/wiki/The library - Module usage.md b/docs/wiki/The library - Module usage.md index e78cfef2f9..d6e6c423d8 100644 --- a/docs/wiki/The library - Module usage.md +++ b/docs/wiki/The library - Module usage.md @@ -8,7 +8,6 @@ This section provides a guideline on how to use the CARML Bicep modules. - [PowerShell](#powershell) - [Azure CLI](#azure-cli) - [Orchestrate deployment](#orchestrate-deployment) - - [Template-orchestration](#template-orchestration) --- # Deploy template @@ -41,7 +40,7 @@ $inputObject = @{ New-AzResourceGroupDeployment @inputObject ``` -For more information please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azresourcegroupdeployment). +For more information, please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azresourcegroupdeployment).
    @@ -65,7 +64,7 @@ $inputObject = @{ New-AzDeployment @inputObject ``` -For more information please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azdeployment). +For more information, please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azdeployment).
    @@ -90,7 +89,7 @@ $inputObject = @{ New-AzManagementGroupDeployment @inputObject ``` -For more information please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azmanagementgroupdeployment). +For more information, please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azmanagementgroupdeployment).
    @@ -114,7 +113,7 @@ $inputObject = @{ New-AzTenantDeployment @inputObject ``` -For more information please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-aztenantdeployment). +For more information, please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-aztenantdeployment).
    @@ -141,7 +140,7 @@ $inputObject = @( az deployment group create @inputObject ``` -For more information please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/cli/azure/deployment/group?view=azure-cli-latest#az-deployment-group-create). +For more information, please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/cli/azure/deployment/group?view=azure-cli-latest#az-deployment-group-create).
    @@ -165,7 +164,7 @@ $inputObject = @( az deployment sub create @inputObject ``` -For more information please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/cli/azure/deployment/sub?view=azure-cli-latest#az-deployment-sub-create). +For more information, please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/cli/azure/deployment/sub?view=azure-cli-latest#az-deployment-sub-create).
    @@ -190,7 +189,7 @@ $inputObject = @( az deployment mg create @inputObject ``` -For more information please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/cli/azure/deployment/mg?view=azure-cli-latest#az-deployment-mg-create). +For more information, please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/cli/azure/deployment/mg?view=azure-cli-latest#az-deployment-mg-create). @@ -214,7 +213,7 @@ $inputObject = @( az deployment tenant create @inputObject ``` -For more information please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/cli/azure/deployment/tenant?view=azure-cli-latest#az-deployment-tenant-create). +For more information, please refer to the official [Microsoft docs](https://docs.microsoft.com/en-us/cli/azure/deployment/tenant?view=azure-cli-latest#az-deployment-tenant-create). diff --git a/docs/wiki/Upgrade from 0.3.1 to 0.4.0.md b/docs/wiki/Upgrade from 0.3.1 to 0.4.0.md index dd99d01175..a84db6589c 100644 --- a/docs/wiki/Upgrade from 0.3.1 to 0.4.0.md +++ b/docs/wiki/Upgrade from 0.3.1 to 0.4.0.md @@ -1,26 +1,26 @@ -In this area, we provide instructions to migrate from CARML version 0.3.1 to version 0.4.0. The content is divided into two main parts: The updates to the modules & the CI environment. +In this area, we provide instructions to migrate from CARML version 0.3.1 to version 0.4.0. The content is divided into two main parts: The updates to the modules & to the CI environment. # Modules ## General import of new modules New modules can usually be migrated by adding the content of the release's `arm` folder into your own `arm` folder. -> **Note:** You should only do this from a branch and carefully compare any changes the platform displays. +> **Note:** You should only do this in a new branch dedicated for the update process, and carefully compare any changes the platform displays. > > This is especially important if you have implemented any changes yourself that would otherwise be overwritten. In these cases, make sure to merge your changes with the ones suggested by CARML. > > Also, take special note of any new, required parameter or changed parameter name if you also modified any module's parameter files. -You will notice other changes, such as modified `parameter.json` files and `version.json` files", whose upgrade is explained in more detail in the corresponding section. +You will notice other changes, such as modified `parameter.json` files and `version.json` files", for which, the upgrade process is explained in more details in the corresponding section. ## Migrate AutoMange module -The original **standalone** AutoManage module was merged into the virtual machine module (as an extension to follow latest best practices) and subsequently removed. +The original **standalone** AutoManage module was merged into the virtual machine module (as an extension to follow the latest best practices) and subsequently removed. -Feel free to keep the separate module but note that you can now deploy AutoManage directly with a virtual machine. If you're not using the dedicated module, we recommend removing it altogether. +You can decide to keep the separate module, but note that you can now deploy AutoManage directly with a virtual machine. If you're not using the dedicated module, we recommend removing it altogether. ## Updated outputs -A big breaking change is the alignment of module outputs. +A more extensive, breaking change is the alignment of module outputs. -We removed any reference to the module type from the output names. For example: +We removed all references to the module type from the output names. For example: ```bicep output name string @@ -36,7 +36,7 @@ The rational is to align all modules and shorten the outputs, as it is intuitive Migrating to this change (by overwriting the original module templates/outputs) won't affect the CI pipelines and you can use the environment as is. However, if you built solutions using relative paths to the modules, make sure you update any output reference of the same. ## Parameter file name prefix -When migrating, you may notice that many of the resource names in the module parameter files have a placeholder `<>`. This placeholder is automatically replaced when executing any of the CI pipelines and as such requires changes to the [CI environment](#nameprefix-in-settingsjson) too. +When migrating, you may notice that many of the resource names in the module parameter files have a placeholder `<>`. This placeholder is automatically replaced when running any of the CI pipelines and as such, requires changes to the [CI environment](#nameprefix-in-settingsjson) too. You can remove these placeholders as you see fit, or migrate them together with the changes explained in the [`General pipeline updates`](#general-pipeline-updates) & [` NamePrefix in settings.json`](#nameprefix-in-settingsjson) sections of this guide. @@ -50,16 +50,16 @@ For the modules you copy over, a `version.json` file will already be available. # CI environment ## General pipeline updates -General updates can be migrated by essentially copying/replacing any code outside of the `arm` folder (i.e. `.github`/`.azuredevops`/`utilities`/`docs`). If you modified the CI environment in the meantime, make sure to carefully merge any conflicting code. Noteworthy changes include: +General updates can be migrated by copying/replacing any code outside of the `arm` folder (i.e., `.github`, `.azuredevops`, `utilities`, `docs`). If you modified the CI environment in the meantime, make sure to carefully merge any conflicting code. Noteworthy changes include: - renamed composite actions / templates, - extended placeholder handling, -- extended pipeline functionality (e.g., managementgroup-level removal), +- extended pipeline functionality (e.g., management group level removal), - publishing of child modules and - overall extended publishing using `version.json` files - additional deployments in the dependencies pipeline ## NamePrefix in settings.json -A change that affects all modules is the introduction of the `namePrefix` property in the local `settings.json` file. +A change that affects all modules, is the introduction of the `namePrefix` property in the local `settings.json` file. This prefix is used to simplify the introduction of a "personalized" resource name prefix, avoiding the chance of name conflict with other users. When migrating, this change should be introduced before or together with the update of the [individual modules](#parameter-file-name-prefix), as their parameter files make have use of this placeholder. diff --git a/docs/wiki/_Sidebar.md b/docs/wiki/_Sidebar.md index 14728ec7aa..0674238a0e 100644 --- a/docs/wiki/_Sidebar.md +++ b/docs/wiki/_Sidebar.md @@ -6,8 +6,8 @@ - [The library](./The%20context%20-%20CARML%20library) - [The CI environment](./The%20context%20-%20CARML%20CI%20environment) - [Getting started](./Getting%20started) - - [**Scenario 1:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%201%20Onboard%20module%20library%20and%20CI%20environment) - - [**Scenario 2:** Consume module library only](./Getting%20started%20-%20Scenario%202%20Consume%20library) + - [**Scenario 1:** Consume module library only](./Getting%20started%20-%20Scenario%201%20Consume%20library) + - [**Scenario 2:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment) - [**Scenario 3:** Contribute](./Getting%20started%20-%20Scenario%203%20Contribute) - [The library](./The%20library) - [Module design](./The%20library%20-%20Module%20design) diff --git a/docs/wiki/media/gHtriggerPipeline.png b/docs/wiki/media/CIEnvironment/gHtriggerPipeline.png similarity index 100% rename from docs/wiki/media/gHtriggerPipeline.png rename to docs/wiki/media/CIEnvironment/gHtriggerPipeline.png diff --git a/docs/wiki/media/ghActionsTab.png b/docs/wiki/media/CIEnvironment/ghActionsTab.png similarity index 100% rename from docs/wiki/media/ghActionsTab.png rename to docs/wiki/media/CIEnvironment/ghActionsTab.png diff --git a/docs/wiki/media/pipelineNew.png b/docs/wiki/media/CIEnvironment/pipelineNew.png similarity index 100% rename from docs/wiki/media/pipelineNew.png rename to docs/wiki/media/CIEnvironment/pipelineNew.png diff --git a/docs/wiki/media/pipelineNew2.png b/docs/wiki/media/CIEnvironment/pipelineNew2.png similarity index 100% rename from docs/wiki/media/pipelineNew2.png rename to docs/wiki/media/CIEnvironment/pipelineNew2.png diff --git a/docs/wiki/media/pipelineNew3.png b/docs/wiki/media/CIEnvironment/pipelineNew3.png similarity index 100% rename from docs/wiki/media/pipelineNew3.png rename to docs/wiki/media/CIEnvironment/pipelineNew3.png diff --git a/docs/wiki/media/pipelineNew4.png b/docs/wiki/media/CIEnvironment/pipelineNew4.png similarity index 100% rename from docs/wiki/media/pipelineNew4.png rename to docs/wiki/media/CIEnvironment/pipelineNew4.png diff --git a/docs/wiki/media/pipelineNew5.png b/docs/wiki/media/CIEnvironment/pipelineNew5.png similarity index 100% rename from docs/wiki/media/pipelineNew5.png rename to docs/wiki/media/CIEnvironment/pipelineNew5.png diff --git a/docs/wiki/media/pipelineNew6.png b/docs/wiki/media/CIEnvironment/pipelineNew6.png similarity index 100% rename from docs/wiki/media/pipelineNew6.png rename to docs/wiki/media/CIEnvironment/pipelineNew6.png diff --git a/docs/wiki/media/pipelineStart.png b/docs/wiki/media/CIEnvironment/pipelineStart.png similarity index 100% rename from docs/wiki/media/pipelineStart.png rename to docs/wiki/media/CIEnvironment/pipelineStart.png diff --git a/docs/wiki/media/pipelineStart2.png b/docs/wiki/media/CIEnvironment/pipelineStart2.png similarity index 100% rename from docs/wiki/media/pipelineStart2.png rename to docs/wiki/media/CIEnvironment/pipelineStart2.png diff --git a/docs/wiki/media/pipelineStart3.png b/docs/wiki/media/CIEnvironment/pipelineStart3.png similarity index 100% rename from docs/wiki/media/pipelineStart3.png rename to docs/wiki/media/CIEnvironment/pipelineStart3.png diff --git a/docs/wiki/media/tokenReplacement.png b/docs/wiki/media/CIEnvironment/tokenReplacement.png similarity index 100% rename from docs/wiki/media/tokenReplacement.png rename to docs/wiki/media/CIEnvironment/tokenReplacement.png diff --git a/docs/wiki/media/tokenTypes.png b/docs/wiki/media/CIEnvironment/tokenTypes.png similarity index 100% rename from docs/wiki/media/tokenTypes.png rename to docs/wiki/media/CIEnvironment/tokenTypes.png diff --git a/docs/wiki/media/Context/CARLM_overview.png b/docs/wiki/media/Context/CARML_overview.png similarity index 100% rename from docs/wiki/media/Context/CARLM_overview.png rename to docs/wiki/media/Context/CARML_overview.png diff --git a/docs/wiki/media/badgeDropdown.png b/docs/wiki/media/ContributionGuide/badgeDropdown.png similarity index 100% rename from docs/wiki/media/badgeDropdown.png rename to docs/wiki/media/ContributionGuide/badgeDropdown.png diff --git a/docs/wiki/media/carmlStatusBadge.png b/docs/wiki/media/ContributionGuide/carmlStatusBadge.png similarity index 100% rename from docs/wiki/media/carmlStatusBadge.png rename to docs/wiki/media/ContributionGuide/carmlStatusBadge.png diff --git a/docs/wiki/media/projectsTab.jpg b/docs/wiki/media/ContributionGuide/projectsTab.jpg similarity index 100% rename from docs/wiki/media/projectsTab.jpg rename to docs/wiki/media/ContributionGuide/projectsTab.jpg diff --git a/docs/wiki/media/rbacRoles.png b/docs/wiki/media/ContributionGuide/rbacRoles.png similarity index 100% rename from docs/wiki/media/rbacRoles.png rename to docs/wiki/media/ContributionGuide/rbacRoles.png diff --git a/docs/wiki/media/cloneDownloadRepo.JPG b/docs/wiki/media/GettingStarted/cloneDownloadRepo.JPG similarity index 100% rename from docs/wiki/media/cloneDownloadRepo.JPG rename to docs/wiki/media/GettingStarted/cloneDownloadRepo.JPG diff --git a/docs/wiki/media/SetupEnvironment/workflow_permissions.png b/docs/wiki/media/SetupEnvironment/workflow_permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..b5a21c72d1903b05057b2c3082967e0ad90f2e98 GIT binary patch literal 32604 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 literal 0 HcmV?d00001 diff --git a/docs/wiki/media/pipelineOrchestration.png b/docs/wiki/media/SolutionCreation/pipelineOrchestration.png similarity index 100% rename from docs/wiki/media/pipelineOrchestration.png rename to docs/wiki/media/SolutionCreation/pipelineOrchestration.png diff --git a/docs/wiki/media/templateOrchestration.png b/docs/wiki/media/SolutionCreation/templateOrchestration.png similarity index 100% rename from docs/wiki/media/templateOrchestration.png rename to docs/wiki/media/SolutionCreation/templateOrchestration.png diff --git a/docs/wiki/media/completeFlow.png b/docs/wiki/media/completeFlow.png deleted file mode 100644 index a7a5e22260f18f0621e2a3eaae29000d45ebb3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777456 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

    &p?wPe4~$)m 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

    }cm{3f{&3;6_gww4vfG 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 z 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¥0<# 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�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

  • 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

    d^H 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 diff --git a/docs/wiki/media/completeFlowTransp.png b/docs/wiki/media/completeFlowTransp.png deleted file mode 100644 index 0c3b62370629db2db0a7f002ee895c0594961972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634429 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 z 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

    E5y;>(?q{AnCk#40pu83an8x>&)^eh2{5xO(M6x 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�TlGSlA*Gnd%7+t~6BY(L}d0~jlB4)&` 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ⅅ(LPCbkZ?Ia6p)3xB<%-4ir3LHj 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

    yj>Y7M) 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%0D* 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 OkA|v_O8!mT|NKAx;Efaj diff --git a/docs/wiki/media/dependencyPipeline.png b/docs/wiki/media/dependencyPipeline.png deleted file mode 100644 index 335ae8412895b0c3d28064a00790d78bc623fa61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41793 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 diff --git a/docs/wiki/media/deploymentFlow.png b/docs/wiki/media/deploymentFlow.png deleted file mode 100644 index 6ece08548e56b2a33398010103f31a9ce8cd2eb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114976 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π 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 diff --git a/docs/wiki/media/paramFileTokenGet.jpg b/docs/wiki/media/paramFileTokenGet.jpg deleted file mode 100644 index 78814d4f5ee6125cce8abc2c10cc50d02e99212b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1441124 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
      9qSh1GCuy%K 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
      cJ3YYWBanbnZKg>4;{{!S7; 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%0D)U*I?!;?^y81E)M;(tF~_D=C^L^cRROB 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�uRQ+`3@PIT(dC>Uri9|C-P}t1= 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�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 z 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ν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

      Z;;t^tS=^YjwLjVmzGFjFoi1ET#Uq@?8sQ}6 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 z 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" + "value": "adp-<>-az-aut-x-001" } } } diff --git a/utilities/pipelines/dependencies/Microsoft.DesktopVirtualization/hostpools/parameters/parameters.json b/utilities/pipelines/dependencies/Microsoft.DesktopVirtualization/hostpools/parameters/parameters.json index 20b492a84e..16c9fa58a6 100644 --- a/utilities/pipelines/dependencies/Microsoft.DesktopVirtualization/hostpools/parameters/parameters.json +++ b/utilities/pipelines/dependencies/Microsoft.DesktopVirtualization/hostpools/parameters/parameters.json @@ -48,7 +48,7 @@ } } }, - "validationEnviroment": { + "validationEnvironment": { "value": false } } diff --git a/utilities/pipelines/dependencies/Microsoft.Network/networkSecurityGroups/parameters/ase.parameters.json b/utilities/pipelines/dependencies/Microsoft.Network/networkSecurityGroups/parameters/ase.parameters.json index 6321666534..c0ce81f215 100644 --- a/utilities/pipelines/dependencies/Microsoft.Network/networkSecurityGroups/parameters/ase.parameters.json +++ b/utilities/pipelines/dependencies/Microsoft.Network/networkSecurityGroups/parameters/ase.parameters.json @@ -19,6 +19,19 @@ "priority": 1010, "direction": "Inbound" } + }, + { + "name": "AllowPortsForASE2", + "properties": { + "protocol": "*", + "sourcePortRange": "*", + "sourceAddressPrefix": "AppServiceManagement", + "destinationPortRange": "454-455", + "destinationAddressPrefix": "10.0.9.0/24", + "access": "Allow", + "priority": 1020, + "direction": "Inbound" + } } ] } diff --git a/utilities/pipelines/dependencies/Microsoft.Network/publicIPAddresses/parameters/bas.additional.parameters.json b/utilities/pipelines/dependencies/Microsoft.Network/publicIPAddresses/parameters/bas.additional.parameters.json new file mode 100644 index 0000000000..1ed721df14 --- /dev/null +++ b/utilities/pipelines/dependencies/Microsoft.Network/publicIPAddresses/parameters/bas.additional.parameters.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "adp-<>-az-pip-additional-bas" + }, + "skuName": { + "value": "Standard" + }, + "publicIPAllocationMethod": { + "value": "Static" + } + } +} diff --git a/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/12.bastion.parameters.json b/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/12.bastion.parameters.json new file mode 100644 index 0000000000..9440f7372b --- /dev/null +++ b/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/12.bastion.parameters.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "adp-<>-az-vnet-add-bas" + }, + "addressPrefixes": { + "value": [ + "10.1.0.0/16" + ] + }, + "subnets": { + "value": [ + { + "name": "AzureBastionSubnet", // Bastion subnet + "addressPrefix": "10.1.5.0/24", + "networkSecurityGroupId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-bastion" + } + ] + } + } +} diff --git a/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/13.bastion.parameters.json b/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/13.bastion.parameters.json new file mode 100644 index 0000000000..f5b3af775a --- /dev/null +++ b/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/13.bastion.parameters.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "adp-<>-az-vnet-custompip-bas" + }, + "addressPrefixes": { + "value": [ + "10.1.0.0/16" + ] + }, + "subnets": { + "value": [ + { + "name": "AzureBastionSubnet", // Bastion subnet + "addressPrefix": "10.1.5.0/24", + "networkSecurityGroupId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-bastion" + } + ] + } + } +} diff --git a/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/parameters.json b/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/parameters.json index 3d5662f556..d455744dc2 100644 --- a/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/parameters.json +++ b/utilities/pipelines/dependencies/Microsoft.Network/virtualNetworks/parameters/parameters.json @@ -91,12 +91,33 @@ { "name": "<>-az-subnet-x-006", // ASE subnet "addressPrefix": "10.0.7.0/24", - "networkSecurityGroupId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-ase" + "networkSecurityGroupId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-ase", + "delegations": [ + { + "name": "ase", + "properties": { + "serviceName": "Microsoft.Web/hostingEnvironments" + } + } + ] }, { "name": "<>-az-subnet-x-007", // APGW subnet "addressPrefix": "10.0.8.0/24", "networkSecurityGroupId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-apgw" + }, + { + "name": "<>-az-subnet-x-008", // ASE subnet 2 + "addressPrefix": "10.0.9.0/24", + "networkSecurityGroupId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/networkSecurityGroups/adp-<>-az-nsg-x-ase", + "delegations": [ + { + "name": "ase", + "properties": { + "serviceName": "Microsoft.Web/hostingEnvironments" + } + } + ] } ] } diff --git a/utilities/pipelines/dependencies/Microsoft.OperationalInsights/workspaces/parameters/sol.parameters.json b/utilities/pipelines/dependencies/Microsoft.OperationalInsights/workspaces/parameters/sol.parameters.json new file mode 100644 index 0000000000..d8e7e24346 --- /dev/null +++ b/utilities/pipelines/dependencies/Microsoft.OperationalInsights/workspaces/parameters/sol.parameters.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "adp-<>-az-law-sol-001" + } + } +} diff --git a/utilities/pipelines/dependencies/Microsoft.RecoveryServices/vaults/parameters/parameters.json b/utilities/pipelines/dependencies/Microsoft.RecoveryServices/vaults/parameters/parameters.json index 6a6c15ed6e..2fc18da584 100644 --- a/utilities/pipelines/dependencies/Microsoft.RecoveryServices/vaults/parameters/parameters.json +++ b/utilities/pipelines/dependencies/Microsoft.RecoveryServices/vaults/parameters/parameters.json @@ -255,7 +255,8 @@ "roleDefinitionIdOrName": "Reader", "principalIds": [ "<>" // The object ID of the deployed MSI. Replaced by the pipeline - ] + ], + "principalType": "ServicePrincipal" } ] } diff --git a/utilities/pipelines/dependencies/Microsoft.Resources/resourceGroups/parameters/locks.parameters.json b/utilities/pipelines/dependencies/Microsoft.Resources/resourceGroups/parameters/locks.parameters.json new file mode 100644 index 0000000000..6d067839b3 --- /dev/null +++ b/utilities/pipelines/dependencies/Microsoft.Resources/resourceGroups/parameters/locks.parameters.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "adp-<>-az-locks-rg-001" + } + } +} diff --git a/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1 b/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1 index 689a9534b7..57c18ff75e 100644 --- a/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1 +++ b/utilities/pipelines/resourcePublish/Get-ModulesToPublish.ps1 @@ -79,7 +79,7 @@ This function will search the current directory and all parent directories for a Mandatory. Path to the folder/file that should be searched .EXAMPLE -Find-TemplateFile -Path "C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables\.bicep\nested_rbac.bicep" +Find-TemplateFile -Path "C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables\.bicep\nested_roleAssignments.bicep" Directory: C:\Repos\Azure\ResourceModules\arm\Microsoft.Storage\storageAccounts\tableServices\tables diff --git a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 index 4ac7bbd16c..c826ed26d9 100644 --- a/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 +++ b/utilities/pipelines/resourceRemoval/Initialize-DeploymentRemoval.ps1 @@ -60,6 +60,7 @@ function Initialize-DeploymentRemoval { # The initial sequence is a general order-recommendation $removalSequence = @( + 'Microsoft.Authorization/locks', 'Microsoft.Insights/diagnosticSettings', 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups', 'Microsoft.Network/privateEndpoints', @@ -73,17 +74,19 @@ function Initialize-DeploymentRemoval { foreach ($deploymentName in $deploymentNames) { Write-Verbose ('Handling resource removal with deployment name [{0}]' -f $deploymentName) -Verbose - switch ($moduleName) { - 'virtualWans' { - $removalSequence += @( - 'Microsoft.Network/vpnGateways', - 'Microsoft.Network/virtualHubs', - 'Microsoft.Network/vpnSites' - ) - break - } - ### CODE LOCATION: Add custom removal sequence here - } + + ### CODE LOCATION: Add custom removal sequence here + ## Add custom module-specific removal sequence following the example below + # switch ($moduleName) { + # '' { # For example: 'virtualWans', 'automationAccounts' + # $removalSequence += @( + # '', # For example: 'Microsoft.Network/vpnSites', 'Microsoft.OperationalInsights/workspaces/linkedServices' + # '', + # '' + # ) + # break + # } + # } # Invoke removal $inputObject = @{ diff --git a/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1 b/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1 index 1a37997bac..7735f913a2 100644 --- a/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1 +++ b/utilities/pipelines/resourceRemoval/helper/Invoke-ResourceRemoval.ps1 @@ -39,6 +39,15 @@ function Invoke-ResourceRemoval { } break } + 'Microsoft.Authorization/locks' { + $lockName = ($resourceId -split '/')[-1] + $lockScope = ($resourceId -split '/providers/Microsoft.Authorization/locks')[0] + + $null = Remove-AzResourceLock -LockName $lockName -Scope $lockScope -Force + Write-Verbose "Removed lock [$resourceName]. Waiting 10 seconds for propagation." -Verbose + Start-Sleep 10 + break + } 'Microsoft.KeyVault/vaults/accessPolicies' { Write-Verbose ('Skip resource removal for type [{0}]. Reason: handled by different logic.' -f $type) -Verbose break diff --git a/utilities/pipelines/resourceRemoval/helper/Remove-Deployment.ps1 b/utilities/pipelines/resourceRemoval/helper/Remove-Deployment.ps1 index f3ed6d5bf2..a5a371e803 100644 --- a/utilities/pipelines/resourceRemoval/helper/Remove-Deployment.ps1 +++ b/utilities/pipelines/resourceRemoval/helper/Remove-Deployment.ps1 @@ -109,6 +109,10 @@ function Remove-Deployment { [array] $resourcesToRemove = Get-ResourceIdsAsFormattedObjectList -ResourceIds $rawTargetResourceIdsToRemove Write-Verbose ('Total number of deployment target resources after formatting items [{0}]' -f $resourcesToRemove.Count) -Verbose + if ($resourcesToRemove.Count -eq 0) { + return + } + # Filter all dependency resources # =============================== $dependencyResourceNames = Get-DependencyResourceNameList diff --git a/utilities/pipelines/sharedScripts/Set-EnvironmentOnAgent.ps1 b/utilities/pipelines/sharedScripts/Set-EnvironmentOnAgent.ps1 index 2b5fe9cbf3..8ddcc82d1a 100644 --- a/utilities/pipelines/sharedScripts/Set-EnvironmentOnAgent.ps1 +++ b/utilities/pipelines/sharedScripts/Set-EnvironmentOnAgent.ps1 @@ -2,38 +2,44 @@ #region Helper Functions <# - .SYNOPSIS - Installes given PowerShell modules +.SYNOPSIS +Installes given PowerShell modules - .DESCRIPTION - Installes given PowerShell modules +.DESCRIPTION +Installes given PowerShell modules - .PARAMETER Module - Modules to be installed, must be Object - @{ - Name = 'Name' - Version = '1.0.0' # Optional - } +.PARAMETER Module +Required. Modules to be installed, must be Object +@{ + Name = 'Name' + Version = '1.0.0' # Optional +} - .EXAMPLE - Install-CustomModule @{ Name = 'Pester' } C:\Modules +.PARAMETER InstalledModule +Optional. Modules that are already installed on the machine. Can be fetched via 'Get-Module -ListAvailable' - Installes pester and saves it to C:\Modules +.EXAMPLE +Install-CustomModule @{ Name = 'Pester' } C:\Modules + +Installes pester and saves it to C:\Modules #> function Install-CustomModule { [CmdletBinding(SupportsShouldProcess)] Param ( [Parameter(Mandatory = $true)] - [Hashtable] $Module + [Hashtable] $Module, + + [Parameter(Mandatory = $false)] + [object[]] $InstalledModule = @() ) # Remove exsisting module in session - if (Get-Module $Module -ErrorAction SilentlyContinue) { + if (Get-Module $Module -ErrorAction 'SilentlyContinue') { try { Remove-Module $Module -Force } catch { - Write-Error ("Unable to remove module $($Module.Name) : $($_.Exception) found, $($_.ScriptStackTrace)") + Write-Error ('Unable to remove module [{0}] because of exception [{1}]. Stack Trace: [{2}]' -f $Module.Name, $_.Exception, $_.ScriptStackTrace) } } @@ -42,18 +48,29 @@ function Install-CustomModule { name = $Module.Name Repository = 'PSGallery' } - if ($module.Version) { - $moduleImportInputObject['RequiredVersion'] = $module.Version + if ($Module.Version) { + $moduleImportInputObject['RequiredVersion'] = $Module.Version } + + # Get all modules that match a certain name. In case of e.g. 'Az' it returns several. $foundModules = Find-Module @moduleImportInputObject + foreach ($foundModule in $foundModules) { - $localModuleVersions = Get-Module $foundModule.Name -ListAvailable - if ($localModuleVersions -and $localModuleVersions.Version -contains $foundModule.Version ) { - Write-Verbose ('Module [{0}] already installed with version [{1}]' -f $foundModule.Name, $foundModule.Version) -Verbose + # Check if already installed as required + if ($alreadyInstalled = $InstalledModule | Where-Object { $_.Name -eq $Module.Name }) { + if ($Module.Version) { + $alreadyInstalled = $alreadyInstalled | Where-Object { $_.Version -eq $Module.Version } + } else { + # Get latest in case of multiple + $alreadyInstalled = ($alreadyInstalled | Sort-Object -Property Version -Descending)[0] + } + Write-Verbose ('Module [{0}] already installed with version [{1}]' -f $alreadyInstalled.Name, $alreadyInstalled.Version) -Verbose continue } - if ($module.ExcludeModules -and $module.excludeModules.contains($foundModule.Name)) { + + # Check if not to be excluded + if ($Module.ExcludeModules -and $Module.excludeModules.contains($foundModule.Name)) { Write-Verbose ('Module {0} is configured to be ignored.' -f $foundModule.Name) -Verbose continue } @@ -179,6 +196,38 @@ function Set-EnvironmentOnAgent { $count++ } + # MS-hosted agents have pre-installed modules in a specific path. Let's make them discoverable if available. + if ((Test-Path '/usr/share/') -and ((Get-ChildItem -Path '/usr/share/az_*' -Directory).Count -gt 0)) { + $preInstalledModulePaths = Get-ChildItem -Path '/usr/share/az_*' -Directory + $maximumVersionPath = '/usr/share/az_{0}' -f (($preInstalledModulePaths | ForEach-Object { ($_ -split 'az_')[1] }) | ForEach-Object { [version]$_ } | Measure-Object -Maximum ).Maximum + Write-Verbose "Found pre-installed modules in path [$maximumVersionPath]. Adding it PSModulePath environment variable." -Verbose + + if ($IsWindows) { + # Set step module path (process) + $env:PSModulePath += ('{0};{1}' -f $env:PSModulePath, $maximumVersionPath) + # Set job module path (machine) + [Environment]::SetEnvironmentVariable('PSModulePath', ('{0};{1}' -f ([Environment]::GetEnvironmentVariable('PSModulePath', 'Machine')), $maximumVersionPath), 'Machine') + # Set PS-Profile (for non-ps tasks) + if (-not (Test-Path $profile)) { + $null = New-Item -Path $profile -Force + } + Add-Content -Path $profile -Value "`$env:PSModulePath = ('{0};{1}' -f `"`$env:PSModulePath`", '$maximumVersionPath')" + } else { + # Set step module path (process) + $env:PSModulePath += ('{0}:{1}' -f $env:PSModulePath, $maximumVersionPath) + # Set job module path (machine) + [Environment]::SetEnvironmentVariable('PSModulePath', ('{0}:{1}' -f ([Environment]::GetEnvironmentVariable('PSModulePath', 'Machine')), $maximumVersionPath), 'Machine') + # Set PS-Profile (for non-ps tasks) + if (-not (Test-Path $profile)) { + $null = New-Item -Path $profile -Force + } + Add-Content -Path $profile -Value "`$env:PSModulePath = ('{0}:{1}' -f `"`$env:PSModulePath`", '$maximumVersionPath')" + } + } + + # Load already installed modules + $installedModules = Get-Module -ListAvailable + Write-Verbose ('Install-CustomModule start') -Verbose $count = 1 Foreach ($Module in $Modules) { @@ -186,8 +235,9 @@ function Set-EnvironmentOnAgent { Write-Verbose ('HANDLING MODULE [{0}/{1}] [{2}] ' -f $count, $Modules.Count, $Module.Name) -Verbose Write-Verbose ('=====================') -Verbose # Installing New Modules and Removing Old - $null = Install-CustomModule -Module $Module + $null = Install-CustomModule -Module $Module -InstalledModule $installedModules $count++ } + Write-Verbose ('Install-CustomModule end') -Verbose } diff --git a/utilities/tools/AzureDevOps/Register-AzureDevOpsPipeline.ps1 b/utilities/tools/AzureDevOps/Register-AzureDevOpsPipeline.ps1 index 4c953d0ecb..363107c4ed 100644 --- a/utilities/tools/AzureDevOps/Register-AzureDevOpsPipeline.ps1 +++ b/utilities/tools/AzureDevOps/Register-AzureDevOpsPipeline.ps1 @@ -155,7 +155,8 @@ function Register-AzureDevOpsPipeline { $pipelinesArray = @() foreach ($localPipelinePath in $localPipelinePaths) { - $pipelineName = (Get-Content -Path $localPipelinePath)[0].Split('name:')[1].Replace("'", '').Trim() + $line = (Get-Content -Path $localPipelinePath)[0] + $pipelineName = ($line -split 'name:')[1].Replace("'", '').Trim() $pipelinesArray += @{ ProjectName = $ProjectName SourceRepository = $SourceRepository diff --git a/utilities/tools/Get-LinkedModuleList.ps1 b/utilities/tools/Get-LinkedModuleList.ps1 index ebc4ea81f2..2d6a8608e1 100644 --- a/utilities/tools/Get-LinkedModuleList.ps1 +++ b/utilities/tools/Get-LinkedModuleList.ps1 @@ -17,7 +17,7 @@ Get-LinkedModuleList Invoke the function with the default path. Returns an object such as: { "Microsoft.Compute/availabilitySets": { - "localPathReferences": ".bicep/nested_rbac.bicep", + "localPathReferences": ".bicep/nested_roleAssignments.bicep", "remoteReferences": null, "resourceReferences": [ "Microsoft.Resources/deployments@2021-04-01", diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index df90c119b0..7131a577f5 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -301,10 +301,10 @@ function Set-OutputsSection { <# .SYNOPSIS -Generate 'Usage Examples' for the ReadMe out of the parameter files currently used to test the template +Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template .DESCRIPTION -Generate 'Usage Examples' for the ReadMe out of the parameter files currently used to test the template +Generate 'Deployment examples' for the ReadMe out of the parameter files currently used to test the template .PARAMETER TemplateFileContent Mandatory. The template file content object to crawl data from @@ -607,7 +607,7 @@ function Set-ModuleReadMe { 'Outputs', 'Template references', 'Navigation', - 'Usage examples' + 'Deployment examples' )] [string[]] $SectionsToRefresh = @( 'Resource Types', @@ -615,7 +615,7 @@ function Set-ModuleReadMe { 'Outputs', 'Template references', 'Navigation', - 'Usage examples' + 'Deployment examples' ) ) @@ -628,7 +628,7 @@ function Set-ModuleReadMe { if (-not $TemplateFileContent) { if ((Split-Path -Path $TemplateFilePath -Extension) -eq '.bicep') { - $templateFileContent = az bicep build --file $TemplateFilePath --stdout | ConvertFrom-Json -AsHashtable + $templateFileContent = az bicep build --file $TemplateFilePath --stdout --no-restore | ConvertFrom-Json -AsHashtable } else { $templateFileContent = ConvertFrom-Json (Get-Content $TemplateFilePath -Encoding 'utf8' -Raw) -ErrorAction Stop -AsHashtable } @@ -717,8 +717,8 @@ function Set-ModuleReadMe { $readMeFileContent = Set-OutputsSection @inputObject } - if ($SectionsToRefresh -contains 'Usage examples') { - # Handle [Usage examples] section + if ($SectionsToRefresh -contains 'Deployment examples') { + # Handle [Deployment examples] section # =================================== $inputObject = @{ ReadMeFileContent = $readMeFileContent diff --git a/utilities/tools/Set-ReadMeModuleTable.ps1 b/utilities/tools/Set-ReadMeModuleTable.ps1 index 0af24e414d..9ebb1235ea 100644 --- a/utilities/tools/Set-ReadMeModuleTable.ps1 +++ b/utilities/tools/Set-ReadMeModuleTable.ps1 @@ -67,6 +67,9 @@ function Set-ReadMeModuleTable { # Logic $contentArray = Get-Content -Path $FilePath + # Handle space in the projectname + $urlEncodedProjectName = [uri]::EscapeDataString($ProjectName) + $tableStringInputObject = @{ Path = $ModulesPath RepositoryName = $RepositoryName @@ -74,7 +77,7 @@ function Set-ReadMeModuleTable { ColumnsInOrder = $ColumnsInOrder SortByColumn = $SortByColumn Environment = $Environment - ProjectName = $ProjectName + ProjectName = $urlEncodedProjectName } Write-Verbose ($tableStringInputObject | ConvertTo-Json | Out-String) -Verbose $tableString = Get-ModulesAsMarkdownTable @tableStringInputObject -Verbose From 267ce2df6f785d09e3fb7900133c14c74640dd8d Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Mon, 20 Jun 2022 18:16:04 -0700 Subject: [PATCH 05/20] update TOC --- docs/wiki/Home.md | 5 +++-- ...sonas.md => The context - Logical Layers and Personas.md} | 0 docs/wiki/The context.md | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) rename docs/wiki/{Logical Layers and Personas.md => The context - Logical Layers and Personas.md} (100%) diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index 59619cdd94..f0c1ca9c10 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -4,7 +4,7 @@ The objective of this repository is to provide a template library that can accel This wiki describes the content of this repository, its modules, pipelines, and possible options on how to use them and how to contribute to this project. -If you're unfamiliar with Infrastructure as Code, or wonder how you can use the content of this repository in your deployments, check out [The context](./The%20context) section of this wiki. +If you're unfamiliar with Infrastructure as Code or wonder how you can use the content of this repository in your deployments, check out [The context](./The%20context) section of this wiki. ### _Navigation_ @@ -12,6 +12,7 @@ If you're unfamiliar with Infrastructure as Code, or wonder how you can use the - [CARML overview](./The%20context%20-%20CARML%20overview) - [The library](./The%20context%20-%20CARML%20library) - [The CI environment](./The%20context%20-%20CARML%20CI%20environment) + - [Logical Layers and Personas](./The%20context%20-%20Logical%20Layers%20and%20Personas) - [Getting started](./Getting%20started) - [**Scenario 1:** Consume module library only](./Getting%20started%20-%20Scenario%201%20Consume%20library) - [**Scenario 2:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment) @@ -37,7 +38,7 @@ If you're unfamiliar with Infrastructure as Code, or wonder how you can use the - [Get formatted RBAC roles](./Contribution%20guide%20-%20Get%20formatted%20RBAC%20roles) - [Validate module locally](./Contribution%20guide%20-%20Validate%20module%20locally) - [Solution creation](./Solution%20creation) -- Upgrade guideline.mds +- Upgrade guideline - [Upgrade from 0.3.1 to 0.4.0](./Upgrade%20from%200.3.1%20to%200.4.0) - [Known issues](./Known%20issues) diff --git a/docs/wiki/Logical Layers and Personas.md b/docs/wiki/The context - Logical Layers and Personas.md similarity index 100% rename from docs/wiki/Logical Layers and Personas.md rename to docs/wiki/The context - Logical Layers and Personas.md diff --git a/docs/wiki/The context.md b/docs/wiki/The context.md index aa81163b3a..e657b446b0 100644 --- a/docs/wiki/The context.md +++ b/docs/wiki/The context.md @@ -6,3 +6,4 @@ This section explains the context of the Common Azure Resource Modules Library ( - [CARML overview](./The%20context%20-%20CARML%20overview) - [The library](./The%20context%20-%20CARML%20library) - [The CI environment](./The%20context%20-%20CARML%20CI%20environment) +- [Logical Layers and Personas](./The%20context%20-%20Logical%20Layers%20and%20Personas) \ No newline at end of file From dfe9f38a9066ba2b3a293f9326d818dfbe4459dd Mon Sep 17 00:00:00 2001 From: Alex Lee Date: Tue, 21 Jun 2022 10:40:47 -0400 Subject: [PATCH 06/20] moved example solutions using carml --- ...e context - Logical Layers and Personas.md | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/docs/wiki/The context - Logical Layers and Personas.md b/docs/wiki/The context - Logical Layers and Personas.md index a11b615273..13c6ac3fd5 100644 --- a/docs/wiki/The context - Logical Layers and Personas.md +++ b/docs/wiki/The context - Logical Layers and Personas.md @@ -20,31 +20,34 @@ This chapter explains how the different layers of the technology stack (see belo ![Layers](media/Personas/layers.png) In bottom-up order, the layers are: + - **Azure Resource Manager**: At the bottom, you can see the engine, powering Azure. This layer takes API level interactions and makes changes to or reads data from Azure's management plane. To directly interact with the ARM, one would need to learn and directly leverage its REST API. - **Bicep**: Microsoft's new proprietary DSL (domain specific language). To build solutions based on Bicep, one would need to know all the relevant details of the DSL itself as well as all Azure resource types involved in the solution(s) to be developed. - **CARML**: This module library offers a consistent code base of tested, reliable and ready-to-deploy Bicep modules. To build complex, multi-module solutions based on CARML, one would need to get familiar with the library, have a good understanding of Bicep, but wouldn't need to know all details of all Azure resources, or how to author feature-rich templates for deploying the resources required by the solution. - **Solutions**: this layer represents a complex solution in Azure, that provides a meaningful functionality for its users. A solution can be something like an Azure Kubernetes Services (AKS) environment, that can host containers to run applications. In this model, to build a custom solution, one would need to be familiar with the modules provided by the CARML library. -- **Applications**: an application/workload run in a cloud environment, such as an AKS platform, etc. In case of application/workload, we can typically differentiate *administrators* and *end users*. +- **Applications**: an application/workload run in a cloud environment, such as an AKS platform, etc. In case of application/workload, we can typically differentiate **administrators** and **end users**. # Personas In the context of CARML, we differentiate three personas: + - Solution Consumer - Solution Developer - Module Developer ## Solution Consumer -![SolutionConsumers](./media/Personas/SolutionConsumers.png) +![SolutionConsumers](./media/Personas/SolutionConsumers.png) -A ***Solution Consumer*** is an indirect persona. This person is rather a cloud administrator and not necessarily a developer. The focus of this persona is on **implementing and managing an end-to-end solution** (application/workload), rather than building one. A Solution Consumer can benefit from CARML's modules via a complex, multi-module solution that leverages a Bicep registry, a package, etc.; perhaps even a wizard or a click-to-deploy button. +A **Solution Consumer** is an indirect persona. This person is rather a cloud administrator and not necessarily a developer. The focus of this persona is on **implementing and managing an end-to-end solution** (application/workload), rather than building one. A Solution Consumer can benefit from CARML's modules via a complex, multi-module solution that leverages a Bicep registry, a package, etc.; perhaps even a wizard or a click-to-deploy button. This persona will need to understand the required and optional configuration data (parameters) and will need to understand the architecture and "opinion" behind the solution. -- This persona isn’t consuming CARML directly, but is consuming CARML via a solution that relies on it: -- Ex., AKS Landing Zone Accelerator -- Ex., internally developed custom L3 patterns (i.e., Contoso's own solutions) +This persona isn’t consuming CARML directly, but is consuming CARML via a solution that relies on it: + +- Example: AKS Landing Zone Accelerator +- Example: An internally developed multi-module solution for internal application or workload pattern -> **Note**: Solution Consumers are not to be confused with end users. A solutions consumers are cloud administrators, deploying a complex solution and administering an application installed into such a cloud environment. An end user (also known as information worker) is someone who'll simply use an application hosted in the cloud for his/her work. +> **Note**: Solution Consumers are not to be confused with end users. Solution Consumers are cloud administrators, deploying a complex solution and administering an application installed into such a cloud environment. An end user is someone who will use the application or workload hosted in the cloud for his/her work (ex., information worker or application developer). ### Typical Activities of a Solution Consumer @@ -61,46 +64,44 @@ This persona will need to understand the required and optional configuration dat ## Solution Developer -![SolutionDevelopers](./media/Personas/SolutionDevelopers.png) +![SolutionDevelopers](./media/Personas/SolutionDevelopers.png) -A ***Solution Developer*** is not a user. Their focus is on using CARML to **build end-to-end solutions** that are opinionated. These solutions will be published (publicly and/or privately) for consumption by others and will be used many times by many organizations/teams, in many environments/subscriptions/landing zones). +A **Solution Developer** is not a user. Their focus is on using CARML to **build end-to-end solutions** that are opinionated. These solutions will be published (publicly and/or privately) for consumption by others and will be used many times by many organizations/teams, in many environments/subscriptions/landing zones). A Solution Developer uses the CARML library (its public or organization/customer specific implementation), with a chosen preference for using its modules via Bicep registry (public, private), or template specs, or direct reference or using Git submodules, etc. Solution Developers might benefit the most from overcoming the learning curve – because the standardization and scale they can achieve with CARML. - Modules: Use an existing code base to develop and test multi-module solutions (ex., a Landing Zone Accelerator, or an internal platform/workload team). This might also lead to creating/updating modules. -- CI: Use the provided CI environment to improve multi-module development and testing. This might also lead to improving CI. -- Sample 1: A contrived multi-module solution (L3 patterns) using modules that make sense together and deploy quickly but not necessarily a reference architecture -- Sample 2: The simplest reference architecture on [Azure Architecture Center](https://docs.microsoft.com/en-us/azure/architecture/). -- Existing CARML solutions (These links provide examples of real world solutions using CARML. Vs the previous sample which illustrate how within the project.): - - [AKS Landing Zone Accelerator](https://github.com/Azure/AKS-Landing-Zone-Accelerator) - - [AVD Landing Zone Accelerator](https://github.com/Azure/avdaccelerator) - +- Continuous Integration: Use the provided CI environment to improve multi-module development and testing. This might also lead to improving CI. ### Typical Activities of a Solution Developer - Create (develop, run integration tests for and publish) multi-module solutions for specific reference patterns (workloads, applications, environments). - If necessary, can modify (develop, run unit tests for and publish) existing modules to implement organization-specific standards - however, applying significant modifications or creating new modules, also qualifies this persona as [Module Developer](#module-developer). +> **Note**: Existing CARML solutions (These links provide examples of real world solutions using CARML: +> - [AKS Landing Zone Accelerator](https://github.com/Azure/AKS-Landing-Zone-Accelerator) +> - [AVD Landing Zone Accelerator](https://github.com/Azure/avdaccelerator) + ### How does a Solution Developer benefit from CARML? - Codify reference patterns (guidance, decisions, governance). - Focus on the requirements of the reference patterns. -- Can adopt the toolkit’s infra-as-code guidance. +- Can adopt the toolkit’s infra-as-code guidance. - Simplify downstream usage for application/workload teams. ## Module Developer -![ModuleDevelopers](./media/Personas/ModuleDevelopers.png) +![ModuleDevelopers](./media/Personas/ModuleDevelopers.png) -A ***Module Developer*** is not a user. Their focus is on CARML itself. A Module Developer is tasked with improving the library – for their organization/customer or the whole world (open source community). They might want to add organization/company specifics to the library (either via conventions, parameters, extensions, or CI-specific changes). They might also implement/improve generic things, in a way that could be contributed back upstream, into the CARML open source repository for the greater public. A Module Developer is tasked with helping the CARML Solution Developer (see next). +A **Module Developer** is not a user. Their focus is on CARML itself. A Module Developer is tasked with improving the library – for their organization/customer or the whole world (open source community). They might want to add organization/company specifics to the library (either via conventions, parameters, extensions, or CI-specific changes). They might also implement/improve generic things, in a way that could be contributed back upstream, into the CARML open source repository for the greater public. A Module Developer is tasked with helping the CARML Solution Developer (see previous). -- Modules: Create new. Update existing. -- CI: Improve CI. -- Sample 1: A simple resource, with CARML extensions, deploys fast. +- Modules: Create new. Update existing. +- Continuous Integration: Improve the unit testing in the CI. +- Sample 1: A simple resource, with CARML extensions, deploys fast. - Sample 2: A complex resource, with CARML extensions, child resources, “smart defaults”, PowerShell style “scenario” documentation. ### Typical Activities of a Module Developer -- Create, update modules for Azure resources. +- Create, update modules for Azure resources. - Incorporate new resource providers or new capabilities, and extensions to existing resource providers. - Improve the CARML repository's documentation. - Improve continuous integration for testing/publishing CARML modules. From f18a91fb966e921d765c8b397de00f56e621c7c1 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Tue, 21 Jun 2022 09:25:00 -0700 Subject: [PATCH 07/20] udate formatting, move links --- .../The context - Logical Layers and Personas.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/wiki/The context - Logical Layers and Personas.md b/docs/wiki/The context - Logical Layers and Personas.md index 13c6ac3fd5..678e8ece93 100644 --- a/docs/wiki/The context - Logical Layers and Personas.md +++ b/docs/wiki/The context - Logical Layers and Personas.md @@ -17,6 +17,7 @@ CARML can be represented as a key layer of a logical technology stack. This arti # Logical layers This chapter explains how the different layers of the technology stack (see below) and the solutions developed based on it rely on each other. + ![Layers](media/Personas/layers.png) In bottom-up order, the layers are: @@ -44,8 +45,11 @@ This persona will need to understand the required and optional configuration dat This persona isn’t consuming CARML directly, but is consuming CARML via a solution that relies on it: -- Example: AKS Landing Zone Accelerator -- Example: An internally developed multi-module solution for internal application or workload pattern +- Examples: + - Existing CARML solutions (These links provide examples of real world solutions using CARML): + - [AKS Landing Zone Accelerator](https://github.com/Azure/AKS-Landing-Zone-Accelerator) + - [AVD Landing Zone Accelerator](https://github.com/Azure/avdaccelerator) + - An internally developed multi-module solution for internal application or workload pattern > **Note**: Solution Consumers are not to be confused with end users. Solution Consumers are cloud administrators, deploying a complex solution and administering an application installed into such a cloud environment. An end user is someone who will use the application or workload hosted in the cloud for his/her work (ex., information worker or application developer). @@ -77,10 +81,6 @@ A Solution Developer uses the CARML library (its public or organization/customer - Create (develop, run integration tests for and publish) multi-module solutions for specific reference patterns (workloads, applications, environments). - If necessary, can modify (develop, run unit tests for and publish) existing modules to implement organization-specific standards - however, applying significant modifications or creating new modules, also qualifies this persona as [Module Developer](#module-developer). -> **Note**: Existing CARML solutions (These links provide examples of real world solutions using CARML: -> - [AKS Landing Zone Accelerator](https://github.com/Azure/AKS-Landing-Zone-Accelerator) -> - [AVD Landing Zone Accelerator](https://github.com/Azure/avdaccelerator) - ### How does a Solution Developer benefit from CARML? - Codify reference patterns (guidance, decisions, governance). From 69614fb3b60e663f2c854fed34e5b6ea752ac451 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Tue, 21 Jun 2022 09:38:28 -0700 Subject: [PATCH 08/20] resolve conflicts --- arm/Microsoft.Authorization/locks/readme.md | 10 +- .../solutions/readme.md | 10 +- .../hostingEnvironments/readme.md | 98 +------------------ 3 files changed, 9 insertions(+), 109 deletions(-) diff --git a/arm/Microsoft.Authorization/locks/readme.md b/arm/Microsoft.Authorization/locks/readme.md index cb293555ea..7dbd624cd8 100644 --- a/arm/Microsoft.Authorization/locks/readme.md +++ b/arm/Microsoft.Authorization/locks/readme.md @@ -4,12 +4,10 @@ This module deploys Authorization Locks. ## Navigation -- [Authorization Locks `[Microsoft.Authorization/locks]`](#authorization-locks-microsoftauthorizationlocks) - - [Navigation](#navigation) - - [Resource Types](#resource-types) - - [Parameters](#parameters) - - [Outputs](#outputs) - - [Deployment examples](#deployment-examples) +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Deployment examples](#Deployment-examples) ## Resource Types diff --git a/arm/Microsoft.OperationsManagement/solutions/readme.md b/arm/Microsoft.OperationsManagement/solutions/readme.md index 5eaa0cae76..a9b72c7102 100644 --- a/arm/Microsoft.OperationsManagement/solutions/readme.md +++ b/arm/Microsoft.OperationsManagement/solutions/readme.md @@ -4,12 +4,10 @@ This module deploys OperationsManagement Solutions. ## Navigation -- [OperationsManagement Solutions `[Microsoft.OperationsManagement/solutions]`](#operationsmanagement-solutions-microsoftoperationsmanagementsolutions) - - [Navigation](#navigation) - - [Resource Types](#resource-types) - - [Parameters](#parameters) - - [Outputs](#outputs) - - [Deployment examples](#deployment-examples) +- [Resource Types](#Resource-Types) +- [Parameters](#Parameters) +- [Outputs](#Outputs) +- [Deployment examples](#Deployment-examples) ## Resource Types diff --git a/arm/Microsoft.Web/hostingEnvironments/readme.md b/arm/Microsoft.Web/hostingEnvironments/readme.md index 6d6ee2ab88..8598819e76 100644 --- a/arm/Microsoft.Web/hostingEnvironments/readme.md +++ b/arm/Microsoft.Web/hostingEnvironments/readme.md @@ -399,100 +399,4 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = ``` -

      - -

      Example 2

      - -
      - -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-appse-asev3-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "subnetResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006" - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "clusterSettings": { - "value": [ - { - "name": "DisableTls1.0", - "value": "1" - } - ] - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - } - } -} - -``` - -
      - -
      - -via Bicep module - -```bicep -module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-hostingEnvironments' - params: { - name: '<>-az-appse-asev3-001' - lock: 'CanNotDelete' - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-006' - roleAssignments: [ - { - roleDefinitionIdOrName: 'Reader' - principalIds: [ - '<>' - ] - } - ] - diagnosticLogsRetentionInDays: 7 - clusterSettings: [ - { - name: 'DisableTls1.0' - value: '1' - } - ] - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' - } -``` - -
      -

      +

      \ No newline at end of file From 6416b6067853a669a4774ae3a8873e0e4dcfdee7 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Tue, 21 Jun 2022 09:45:27 -0700 Subject: [PATCH 09/20] merge conflicts --- arm/Microsoft.Web/hostingEnvironments/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arm/Microsoft.Web/hostingEnvironments/readme.md b/arm/Microsoft.Web/hostingEnvironments/readme.md index 8598819e76..38c5f9df98 100644 --- a/arm/Microsoft.Web/hostingEnvironments/readme.md +++ b/arm/Microsoft.Web/hostingEnvironments/readme.md @@ -399,4 +399,4 @@ module hostingEnvironments './Microsoft.Web/hostingEnvironments/deploy.bicep' = ``` -

      \ No newline at end of file +

      From 5c97f5a1820642478574acde1445296c3c3a74e9 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Tue, 21 Jun 2022 09:49:10 -0700 Subject: [PATCH 10/20] rename file --- ... Personas.md => The context - Logical Layers and Personas2.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/wiki/{The context - Logical Layers and Personas.md => The context - Logical Layers and Personas2.md} (100%) diff --git a/docs/wiki/The context - Logical Layers and Personas.md b/docs/wiki/The context - Logical Layers and Personas2.md similarity index 100% rename from docs/wiki/The context - Logical Layers and Personas.md rename to docs/wiki/The context - Logical Layers and Personas2.md From 9a8bc8ded7f2d2399c98211031ee54f2b2c27600 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Tue, 21 Jun 2022 09:50:18 -0700 Subject: [PATCH 11/20] rename file --- docs/wiki/Home.md | 2 +- ...ersonas2.md => The context - Logical layers and personas.md} | 0 docs/wiki/The context.md | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename docs/wiki/{The context - Logical Layers and Personas2.md => The context - Logical layers and personas.md} (100%) diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index f0c1ca9c10..32841bf1b2 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -12,7 +12,7 @@ If you're unfamiliar with Infrastructure as Code or wonder how you can use the c - [CARML overview](./The%20context%20-%20CARML%20overview) - [The library](./The%20context%20-%20CARML%20library) - [The CI environment](./The%20context%20-%20CARML%20CI%20environment) - - [Logical Layers and Personas](./The%20context%20-%20Logical%20Layers%20and%20Personas) + - [Logical layers and personas](./The%20context%20-%20Logical%20layers%20and%20personas) - [Getting started](./Getting%20started) - [**Scenario 1:** Consume module library only](./Getting%20started%20-%20Scenario%201%20Consume%20library) - [**Scenario 2:** Onboard module library and CI environment](./Getting%20started%20-%20Scenario%202%20Onboard%20module%20library%20and%20CI%20environment) diff --git a/docs/wiki/The context - Logical Layers and Personas2.md b/docs/wiki/The context - Logical layers and personas.md similarity index 100% rename from docs/wiki/The context - Logical Layers and Personas2.md rename to docs/wiki/The context - Logical layers and personas.md diff --git a/docs/wiki/The context.md b/docs/wiki/The context.md index e657b446b0..07b1ecf3ea 100644 --- a/docs/wiki/The context.md +++ b/docs/wiki/The context.md @@ -6,4 +6,4 @@ This section explains the context of the Common Azure Resource Modules Library ( - [CARML overview](./The%20context%20-%20CARML%20overview) - [The library](./The%20context%20-%20CARML%20library) - [The CI environment](./The%20context%20-%20CARML%20CI%20environment) -- [Logical Layers and Personas](./The%20context%20-%20Logical%20Layers%20and%20Personas) \ No newline at end of file +- [Logical layers and personas](./The%20context%20-%20Logical%20layers%20and%20personas) \ No newline at end of file From 3c86a7ba28034f5187ddf25f9e81ded0321a2d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Barab=C3=A1s?= Date: Tue, 21 Jun 2022 11:31:52 -0700 Subject: [PATCH 12/20] Update docs/wiki/The context - Logical layers and personas.md Co-authored-by: Erika Gressi <56914614+eriqua@users.noreply.github.com> --- docs/wiki/The context - Logical layers and personas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index 678e8ece93..9271bacb2e 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -99,7 +99,7 @@ A **Module Developer** is not a user. Their focus is on CARML itself. A Module D - Sample 1: A simple resource, with CARML extensions, deploys fast. - Sample 2: A complex resource, with CARML extensions, child resources, “smart defaults”, PowerShell style “scenario” documentation. -### Typical Activities of a Module Developer +### Typical activities of a Module Developer - Create, update modules for Azure resources. - Incorporate new resource providers or new capabilities, and extensions to existing resource providers. From 85f1ebde5e6c1780b905e1c132da2b9e1b8df676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Barab=C3=A1s?= Date: Tue, 21 Jun 2022 11:32:22 -0700 Subject: [PATCH 13/20] Update docs/wiki/The context - Logical layers and personas.md Co-authored-by: Erika Gressi <56914614+eriqua@users.noreply.github.com> --- docs/wiki/The context - Logical layers and personas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index 9271bacb2e..184dadd729 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -71,7 +71,7 @@ This persona isn’t consuming CARML directly, but is consuming CARML via a solu ![SolutionDevelopers](./media/Personas/SolutionDevelopers.png) A **Solution Developer** is not a user. Their focus is on using CARML to **build end-to-end solutions** that are opinionated. These solutions will be published (publicly and/or privately) for consumption by others and will be used many times by many organizations/teams, in many environments/subscriptions/landing zones). -A Solution Developer uses the CARML library (its public or organization/customer specific implementation), with a chosen preference for using its modules via Bicep registry (public, private), or template specs, or direct reference or using Git submodules, etc. Solution Developers might benefit the most from overcoming the learning curve – because the standardization and scale they can achieve with CARML. +A Solution Developer uses the CARML library (its public or organization/customer specific implementation), with a chosen preference for using its modules via Bicep registry (public, private), or template specs, or direct reference, or using Git submodules, etc. Solution Developers might benefit the most from overcoming the learning curve – because of the standardization and scale they can achieve with CARML. - Modules: Use an existing code base to develop and test multi-module solutions (ex., a Landing Zone Accelerator, or an internal platform/workload team). This might also lead to creating/updating modules. - Continuous Integration: Use the provided CI environment to improve multi-module development and testing. This might also lead to improving CI. From 8f0a0a37d26d6eae40757c23bfd70726df116f01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Barab=C3=A1s?= Date: Tue, 21 Jun 2022 11:32:30 -0700 Subject: [PATCH 14/20] Update docs/wiki/The context - Logical layers and personas.md Co-authored-by: Erika Gressi <56914614+eriqua@users.noreply.github.com> --- docs/wiki/The context - Logical layers and personas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index 184dadd729..04f90e2d7e 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -5,13 +5,13 @@ CARML can be represented as a key layer of a logical technology stack. This arti - [Logical layers](#logical-layers) - [Personas](#personas) - [Solution Consumer](#solution-consumer) - - [Typical Activities of a Solution Consumer](#typical-activities-of-a-solution-consumer) + - [Typical activities of a Solution Consumer](#typical-activities-of-a-solution-consumer) - [How does a Solution Consumer benefit from CARML?](#how-does-a-solution-consumer-benefit-from-carml) - [Solution Developer](#solution-developer) - [Typical Activities of a Solution Developer](#typical-activities-of-a-solution-developer) - [How does a Solution Developer benefit from CARML?](#how-does-a-solution-developer-benefit-from-carml) - [Module Developer](#module-developer) - - [Typical Activities of a Module Developer](#typical-activities-of-a-module-developer) + - [Typical activities of a Module Developer](#typical-activities-of-a-module-developer) - [How does a Module Developer benefit from CARML?](#how-does-a-module-developer-benefit-from-carml) # Logical layers From dfffc5caf65a25a1ce35143c1108ee627546f235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Barab=C3=A1s?= Date: Tue, 21 Jun 2022 11:32:41 -0700 Subject: [PATCH 15/20] Update docs/wiki/The context - Logical layers and personas.md Co-authored-by: Erika Gressi <56914614+eriqua@users.noreply.github.com> --- docs/wiki/The context - Logical layers and personas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index 04f90e2d7e..781b67520d 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -53,7 +53,7 @@ This persona isn’t consuming CARML directly, but is consuming CARML via a solu > **Note**: Solution Consumers are not to be confused with end users. Solution Consumers are cloud administrators, deploying a complex solution and administering an application installed into such a cloud environment. An end user is someone who will use the application or workload hosted in the cloud for his/her work (ex., information worker or application developer). -### Typical Activities of a Solution Consumer +### Typical activities of a Solution Consumer - Clone or reference a multi-module solution (ex., AKS Landing Zone Accelerator). - Understand the reference architecture, key decisions. From c2e16a0897c8facd82e9733dfc50fef7d539497a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Barab=C3=A1s?= Date: Tue, 21 Jun 2022 11:32:47 -0700 Subject: [PATCH 16/20] Update docs/wiki/The context - Logical layers and personas.md Co-authored-by: Erika Gressi <56914614+eriqua@users.noreply.github.com> --- docs/wiki/The context - Logical layers and personas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index 781b67520d..e46fa5c814 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -76,7 +76,7 @@ A Solution Developer uses the CARML library (its public or organization/customer - Modules: Use an existing code base to develop and test multi-module solutions (ex., a Landing Zone Accelerator, or an internal platform/workload team). This might also lead to creating/updating modules. - Continuous Integration: Use the provided CI environment to improve multi-module development and testing. This might also lead to improving CI. -### Typical Activities of a Solution Developer +### Typical activities of a Solution Developer - Create (develop, run integration tests for and publish) multi-module solutions for specific reference patterns (workloads, applications, environments). - If necessary, can modify (develop, run unit tests for and publish) existing modules to implement organization-specific standards - however, applying significant modifications or creating new modules, also qualifies this persona as [Module Developer](#module-developer). From 8000abc9d747f2a77d4c8456de4f76af298f41cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Barab=C3=A1s?= Date: Tue, 21 Jun 2022 11:33:08 -0700 Subject: [PATCH 17/20] Update docs/wiki/The context - Logical layers and personas.md Co-authored-by: Erika Gressi <56914614+eriqua@users.noreply.github.com> --- docs/wiki/The context - Logical layers and personas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index e46fa5c814..95d0f15cad 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -109,4 +109,4 @@ A **Module Developer** is not a user. Their focus is on CARML itself. A Module D ### How does a Module Developer benefit from CARML? -- Contributes to building and maintaining a common code base. Particularly beneficial to customer that have an Enterprise or Distributed Operating model. +- Contributes to building and maintaining a common code base. Particularly beneficial to customers that have an Enterprise or Distributed Operating model. From e90d6fb0b7b5851181f62673c6899455f7291d68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Barab=C3=A1s?= Date: Tue, 21 Jun 2022 11:33:28 -0700 Subject: [PATCH 18/20] Update docs/wiki/The context - Logical layers and personas.md Co-authored-by: Erika Gressi <56914614+eriqua@users.noreply.github.com> --- docs/wiki/The context - Logical layers and personas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index 95d0f15cad..cde9433904 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -51,7 +51,7 @@ This persona isn’t consuming CARML directly, but is consuming CARML via a solu - [AVD Landing Zone Accelerator](https://github.com/Azure/avdaccelerator) - An internally developed multi-module solution for internal application or workload pattern -> **Note**: Solution Consumers are not to be confused with end users. Solution Consumers are cloud administrators, deploying a complex solution and administering an application installed into such a cloud environment. An end user is someone who will use the application or workload hosted in the cloud for his/her work (ex., information worker or application developer). +> **Note**: Solution Consumers are not to be confused with end users. Solution Consumers are cloud administrators, deploying a complex solution and administering an application installed into such a cloud environment. An end user is someone who will use the application or workload hosted in the cloud for his/her work (ex., information worker or application developer). ### Typical activities of a Solution Consumer From 08d437836bfeb3242f501d9e24619ea45e261bc4 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Tue, 21 Jun 2022 12:33:05 -0700 Subject: [PATCH 19/20] update example --- docs/wiki/The context - Logical layers and personas.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index cde9433904..320b0a9bbf 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -18,7 +18,7 @@ CARML can be represented as a key layer of a logical technology stack. This arti This chapter explains how the different layers of the technology stack (see below) and the solutions developed based on it rely on each other. -![Layers](media/Personas/layers.png) +![Layers](media/Personas/layers.png) In bottom-up order, the layers are: @@ -96,8 +96,8 @@ A **Module Developer** is not a user. Their focus is on CARML itself. A Module D - Modules: Create new. Update existing. - Continuous Integration: Improve the unit testing in the CI. -- Sample 1: A simple resource, with CARML extensions, deploys fast. -- Sample 2: A complex resource, with CARML extensions, child resources, “smart defaults”, PowerShell style “scenario” documentation. +- Sample 1: A simple resource, with supported extension resources, deploys fast. +- Sample 2: A complex resource, with supported extension resources and child resources. ### Typical activities of a Module Developer From d9d0180b4e346a1c6f2f0b7731212bd83dbe5b30 Mon Sep 17 00:00:00 2001 From: Erika Gressi Date: Wed, 22 Jun 2022 10:47:40 +0200 Subject: [PATCH 20/20] small fix activities --- docs/wiki/The context - Logical layers and personas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/wiki/The context - Logical layers and personas.md b/docs/wiki/The context - Logical layers and personas.md index 320b0a9bbf..c5a31da9df 100644 --- a/docs/wiki/The context - Logical layers and personas.md +++ b/docs/wiki/The context - Logical layers and personas.md @@ -1,4 +1,4 @@ -CARML can be represented as a key layer of a logical technology stack. This article provides an overview of the different personas using/interacting with the CARML repository and various layers if its technology stack. +CARML can be represented as a key layer of a logical technology stack. This article provides an overview of the different personas using/interacting with the CARML repository and various layers if its technology stack. ### _Navigation_ @@ -8,7 +8,7 @@ CARML can be represented as a key layer of a logical technology stack. This arti - [Typical activities of a Solution Consumer](#typical-activities-of-a-solution-consumer) - [How does a Solution Consumer benefit from CARML?](#how-does-a-solution-consumer-benefit-from-carml) - [Solution Developer](#solution-developer) - - [Typical Activities of a Solution Developer](#typical-activities-of-a-solution-developer) + - [Typical activities of a Solution Developer](#typical-activities-of-a-solution-developer) - [How does a Solution Developer benefit from CARML?](#how-does-a-solution-developer-benefit-from-carml) - [Module Developer](#module-developer) - [Typical activities of a Module Developer](#typical-activities-of-a-module-developer)

    4!18RfAUjEXB7Zh(8?bChp7CkB6&B} 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≠VV%8B12|Ayye*{s*X7|-SLA-W8zP^l&yKW&-T zR(d-^GR-j@g*)f?VJyo*Y(0Xj�aDNH0%!OCFXt>S62T($RR>9n@SVT_wW<*Go^Xy8 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