From cc09db194225c1d53d33e86d9afb2363a887e8ce Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Fri, 29 Sep 2023 10:42:46 +0200 Subject: [PATCH 01/50] Started with CI-setup guide --- docs/content/contributing/bicep/_index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index 47e2d8f0f..a5f8762ba 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -295,3 +295,15 @@ When the AVM Modules are published to the Bicep Public Registry they **MUST** fo This will require the alias on the MCR to be different than the directory path, which is the default for BRM today. ***Guidance will be provided below on how to do this, when available.*** + +## Setting up the CI environment in a fork + +To contribute to the AVM Bicep modules, requires several steps: + +1. [Configure your Azure environment](#1-configure-your-azure-environment) +1. [Fork the Public Bicep Registry repository](#2-fork-the-public-bicep-registry-repository) +1. [Configure the CI environment](#3-configure-the-ci-environment) + +### 1. Configure your Azure environment +### 2. Fork the Public Bicep Registry repository +### 3. Configure the CI environment From fb637f037f5cb21ab5cc48b2e72eacca24494600 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Fri, 29 Sep 2023 10:45:01 +0200 Subject: [PATCH 02/50] Populated Azure Setup section --- docs/content/contributing/bicep/_index.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index a5f8762ba..0aaa34a57 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -305,5 +305,24 @@ To contribute to the AVM Bicep modules, requires several steps: 1. [Configure the CI environment](#3-configure-the-ci-environment) ### 1. Configure your Azure environment + +AVM tests the deployments in an Azure subscription. To do so, it requires a service principal with access to it. + +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. You might find the following links useful: + - [Create a service principal (Azure Portal)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal) + - [Create a service principal (PowerShell)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-authenticate-service-principal-powershell) + - [Find Service Principal object ID](https://cloudsight.zendesk.com/hc/en-us/articles/360016785598-Azure-finding-your-service-principal-object-ID) + - [Find managed Identity Service Principal](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-view-managed-identity-service-principal-portal) +- Note down the following pieces of information + - Application (Client) ID + - Service Principal Object ID (**not** the object ID of the application) + - Service Principal Secret (password) + - Tenant ID + - Subscription ID + - Parent Management Group ID + +> **Note:** The Service Principal must be able to query its own details in the Azure Active Directory (AAD). To that end, ensure it has at least the (default) role 'Cloud application administrator'. + ### 2. Fork the Public Bicep Registry repository ### 3. Configure the CI environment From 692bc1696990202ca738e2ba3ffb42acde5a9e5f Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Fri, 29 Sep 2023 10:53:50 +0200 Subject: [PATCH 03/50] Populated fork section --- docs/content/contributing/bicep/_index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index 0aaa34a57..92f78320a 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -325,4 +325,8 @@ In this first step, make sure you > **Note:** The Service Principal must be able to query its own details in the Azure Active Directory (AAD). To that end, ensure it has at least the (default) role 'Cloud application administrator'. ### 2. Fork the Public Bicep Registry repository + +Next, you'll want to create your own fork of respository. To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. + + ### 3. Configure the CI environment From e8423d7cb6de0401abaf495dfe668f189da2e4df Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Fri, 29 Sep 2023 11:22:23 +0200 Subject: [PATCH 04/50] Added further content draft (with todo's for image ref) --- docs/content/contributing/bicep/_index.md | 81 ++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index 92f78320a..b8d5fdf65 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -326,7 +326,86 @@ In this first step, make sure you ### 2. Fork the Public Bicep Registry repository -Next, you'll want to create your own fork of respository. To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. +Next, you'll want to create your own fork of repository. To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. ### 3. Configure the CI environment + +To configure the CI environment you have to perform several steps: +- [3.1 Set up secrets](#31-set-up-secrets) +- [3.2 Enable actions](#32-enable-actions) +- [3.3 Set R/W Workflow permissions](#33-set-rw-workflow-permissions) + +### 3.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 up the following repository secrets: + +| Secret Name | Example | Description | +| - | - | - | +| `ARM_MGMTGROUP_ID` | `11111111-1111-1111-1111-111111111111` | The group ID of the management group to test-deploy modules in. | +| `ARM_SUBSCRIPTION_ID` | `22222222-2222-2222-2222-222222222222` | The ID of the subscription to test-deploy modules in. | +| `ARM_TENANT_ID` | `33333333-3333-3333-3333-333333333333` | The tenant ID of the Azure Active Directory tenant to test-deploy modules in. | +| `AZURE_CREDENTIALS` | `{"clientId": "44444444-4444-4444-4444-444444444444", "clientSecret": "", "subscriptionId": "22222222-2222-2222-2222-222222222222", "tenantId": "33333333-3333-3333-3333-333333333333" }` | 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). For more information, see the `[Special case: AZURE_CREDENTIALS]` note below. | +| `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. | +| `TOKEN_NAMEPREFIX` | `cntso` | Optional. A short (3-5 character length), unique string that should be included in any deployment to Azure. For more information, see the `[Special case: TOKEN_NAMEPREFIX]` note below. | + +

+ +

+How to: Add a repository secret to GitHub + +1. Navigate to the repository's `Settings`. + + Navigate to settings + +1. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right. + + Navigate to secrets + +1. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button. + + Add secret + +
+ +

+ +> Special case: `AZURE_CREDENTIALS`,
+> 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": "" } +> ``` +> +> **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). + +> Special case: `TOKEN_NAMEPREFIX`,
+> 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. +> +>> **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 AVM deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any module test file. These tokens are, for example, included in the resources names (e.g. `'name: kvlt-${namePrefix}'`). Tokens are stored as repository secrets to facilitate maintenance. + +### 3.2 Enable actions + +Finally, 'GitHub Actions' are disabled by default and hence, must be enabled first. + +To do so, perform the following steps: + +1. Navigate to the `Actions` tab on the top of the repository page. + +1. Next, select '`I understand my workflows, go ahead and enable them`'. + + Enable Actions + +### 3.3 Set R/W Workflow permissions + +To let the workflow 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 From e58ac5e4c6db2a197a8fb1d9cb66b19c5ef3442f Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Fri, 29 Sep 2023 11:31:01 +0200 Subject: [PATCH 05/50] Create deleteme.txt --- docs/static/img/bicep-ci/deleteme.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/static/img/bicep-ci/deleteme.txt diff --git a/docs/static/img/bicep-ci/deleteme.txt b/docs/static/img/bicep-ci/deleteme.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/docs/static/img/bicep-ci/deleteme.txt @@ -0,0 +1 @@ + From bb3b83e081c8d777c7c07005d46c215cbaf55248 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Fri, 29 Sep 2023 11:31:27 +0200 Subject: [PATCH 06/50] Add files via upload --- docs/static/img/bicep-ci/actionsEnable.png | Bin 0 -> 70754 bytes docs/static/img/bicep-ci/forkSettings.png | Bin 0 -> 13740 bytes .../img/bicep-ci/forkSettingsSecretAdd.png | Bin 0 -> 76078 bytes .../img/bicep-ci/forkSettingsSecrets.png | Bin 0 -> 146917 bytes .../img/bicep-ci/workflow_permissions.png | Bin 0 -> 32604 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/static/img/bicep-ci/actionsEnable.png create mode 100644 docs/static/img/bicep-ci/forkSettings.png create mode 100644 docs/static/img/bicep-ci/forkSettingsSecretAdd.png create mode 100644 docs/static/img/bicep-ci/forkSettingsSecrets.png create mode 100644 docs/static/img/bicep-ci/workflow_permissions.png diff --git a/docs/static/img/bicep-ci/actionsEnable.png b/docs/static/img/bicep-ci/actionsEnable.png new file mode 100644 index 0000000000000000000000000000000000000000..e5af9940a9c6eb53225f0aa2398a51d90c316eb5 GIT binary patch literal 70754 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

Ni?#EPoO6)Ym&>hpXv_qBN@d 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 za

  • 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/bicep-ci/forkSettingsSecretAdd.png b/docs/static/img/bicep-ci/forkSettingsSecretAdd.png new file mode 100644 index 0000000000000000000000000000000000000000..9951cc6677227642a0f9a98927c40a842fe1c571 GIT binary patch literal 76078 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/bicep-ci/forkSettingsSecrets.png b/docs/static/img/bicep-ci/forkSettingsSecrets.png new file mode 100644 index 0000000000000000000000000000000000000000..7d774f27014a0e65f5bdf2c663af481dd2240c54 GIT binary patch literal 146917 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/bicep-ci/workflow_permissions.png b/docs/static/img/bicep-ci/workflow_permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..b5a21c72d1903b05057b2c3082967e0ad90f2e98 GIT binary patch literal 32604 zcmb??WmH^Elx-4{;2NZHO>k+P#@#I>xD(u=ad&SZxVw9BcM0z9?gVQb9{IkRdGl-5 zTW`&eUVU%fuIjE+)#vPe&aMyzIdNnJJcKuI-XKd#hRdPu}>2s2yf+o*7=j=*1WZP?<#!t{t74WL*pSTDjEt; zCLF(ga;U7eYp`mIjX=Y$5TYH*Px2@wVYxdMlK79?Uo=0^zz1(5got67*qMdQ6|_5z zlrFd#oh`fw-BPZNT^|1!OHN`tbDc|OJ8Pb8Hd@2PciPhtgd_Dw6M`d6uGoM1=fWRN zUx3o*Z<9aTrnlU?e;@a}O?&@OlTa`W2>w4l2n)vekKQQz6#w=RA{dt>`S&qr17DiI z+Rl7q0Ycu^m7|1yG;aYxisMO)JycKWH%M$v*IXZ0E*m zBx3n3*olUufUQ3)fW*KQLx73oj|Y4Dn2CLDG>Bz<5sU=X$5-I8WYE@D_Qgp!nQ@bd ztZW5D@-bm-8JCL0$Q{BvGA4TibNY36i>LnU2Y317pLC4o5MI1!=ki>6lkVH6JT{L9_Q|pQJ6$x4xeo7PNl-5t z;zChXN8`uTTO%dhQ@CGk)DO*gHVs0QTDJEcQ_^0a|Fyb^$Zfz7mILR+haPu( zI6Lsq&haV<**EHtgsl#0t`2^RqBYgr&x0@dmbaqlD+o}3UNAwS_##s_+#8y?+ z#&BO4)gxtR)Y-3#RzumszL3fiXQyUlN6g7axyMM zKtfz91?IwEfcv7ZqoF<0rO(T>mS5p#EmjZW9F}&ko%Oy3u9m>(iJ!f*X*4=;wWvM( zaVf=ip|z$tTu+LZnp%u8xyekIsnE3r2(f zsj!81t>YJ0&ic0r)mY`h=L;cc=7MZ++GGXass}HR% z${3M`!&>m##|Zey9Hm3{u@G?cOd+r3J&dZnJ~2TK{NnZ2@dylS8uMpzjFR+vmwmd0 z898qWWV2}*_oB_}@#TS^I|8pUzDZj)$3^N*I!{X_6pM!o^Z`g;TgVPs^D#&xqBbXu z53Vu=Avnz6dE$@LVkM!#IFe096va~HN)qvXA**E^zxJf>k}q5ijh)OeaQ$MVU(n=< zg~I+eWGy*(Pp7KfIvd>hqmPQhbHaN?eRhhYfW)njR+XI%#QTNs-d;wIFDO~6C{lQ2 zKXeSuxCl@kN4M4%?Dtc@cg_QT`Uks`+d4MsRAj-I)ie-oQmOv*` zQ8u{VVEs~>XvgsqT2KsJ{r&!>)o=C8cD2W#~Y#o~AyuoUQ ziVH8{`2+K7uPPr@8NT=l2c1|WBve?x;j=qpV~#^|{>~Fe3k&*NcL&ULEiTmVSij0E zYD`mDQr9n}DghZa&u`6D2qsLi2@4rkAY!&IlYzWeUo2nzs?ZkOP`YhG`HF=Na|WVP zHwg3Cv8|ohGCiy1;3RP%RvMuOu0tZJHOOW)JRg4_xQK=34S5@ImndAeY4QVm#}*LE z`t$v03GWh*6hxA9xT_ZHa_nOkP&Q*8g(1hRIZ9fE)=ezA1=Yxw>fTe9#p(J$-Dwen zy5HGlY=yK`kO_((sKJ7BRrTRXWR&8Su1aaKj6?^GhfYiunuXo%T!-JT)Vvl|jkg+Q zhn$*5#v>>lFfTq0Q@})1`iuN)LUl4bj21b8c2XnFR?q8$gB*?U6`J=2P#EBHX;f~O zn#3u+*eeGVY9r>K z6md3##=7&hG^+Az6b>hL6&j)!`xDblA9RD7tE-=cC(@^X2sJfYPTZ5e`?fe~8q3HB z99ri44hhww8Kyz3riJQFEi%gxXJ7!DME-&lJ3q9fn01^WolGyc^*7JXZ8 zVn`y{7NXetp8{V>USMs|)9ClMX{sc!3wnquygnBeT1S~5IRLf-Noo^N%9ycT`$^dB zOI5FPm`ElX8OT|2Ca^X;82U%q30OAoR`}nVGx{D@?QzxRqkZ~9-?7MxynpqB#7P;K z{d?>!cAb-Q7I;vE=X>3UYh&+i^q4=#P4vzV%7wV0Lz1w?(nQ@kN;o+eQPX;M*a+CA z{rTTV9sUJV90=$jcqr#%krCB|c*JNW=@T{uR-{hmEbVQ;d@7T^>^;d2e{&>Y@9KM) za>}_E*!e3(jYV4E&co8WWJ;)LSXvhC#6;len0I3H6igQwiKi%7iG`d#qHsb|RmGeW z#*9#GbRX=j4#`}M@*qSBCgWKf7TWDD+N5L4c^;AQLL2t_D3Ie7TVA$+lw$fKb1>-_ zMx1nh>65W;&R7m8tDUbj!OQ32e4DqFG7-mwFco%eEpR9>RhQ>%b@*N;Q3Z03xT%UY z+VBu@LBVz459+rL7)7{hLxKf8STF-`WnD&LDOPcr|UYCW3$8pUurmQkSJ zUj(=hAn5?N_=M_ zuT^%A>!P!k8I+K@HKJQwUE6s2Zn|YD9|Ci3P%9@mSi`OF$BS*+81tB#hQyP?FTy$( zZqR%f9(%8aygA!L;_=vGZj;MRbPjFsj0WE@*X9d>9a8R~Wb#5SIq9IIIlX%H3(PP+ zhz$#V0sE%+q|>5bAFWl|58eA5VG8*SNOl)FGxz)A?m$9uS1c2oODmUlEbWj&qjY{{({8gua*YSEU^RDHUVd0%7k zo*c`Uub5@k{ija4!XAF}J-8Cm#~mS0ZRi&ESxy*}QwHOAf@O0qaPqKCUlGplk1Cui zUd(o+wpZ!%q0bJg`D-ZtPll=`s}0lEWbxn2#Sh*oB~;_Y>Mb;t&41G;u4GE1C z^jylCk2M_?YN?STkfvUmSWA+dt#mQ3bf}g+-L#WYk=qn^n8%xz6Z z2~tSca$cb+R*DuE!sitmOi+meYb^l(n~duk-FB$O9cpB+cS?$_jW95s20>FrxAhtx z2cln~McgNJ2I%Pl2NOB&_ehxZl^;k~9bLM$&dJ9e5icEkd9e9iU`o-7u5lFT&O0k5 z+!+J{+EWx-TOUX{66DAsY#xx?nyP#m)IHKCbK-2*10fz2J&+pZsx?|;jJusNWmcId zp>}H3{Mm?{CxJ#t($}$>Gp8l8mx2}<2%0cELH%GF2^aU z2c+!;?DjeI?8I{~J{BaHuV@#`R1a2F|3cz&y-e;m(P)EW(g&`VcSD_efmfQ41J_F_ z8?{s5OdFv`boKLhw|RAta$AI`Y2KRctoRynn?V}q4*R8xL;PyZ1}A@JBzSDeXNb#Z z4|{Va^MOwD$FxgIf73x%(_X0ugJn+8;_&r-cra46=kj7dn|y~Z1?8vpE+6YB1>}+6rz`kvnnW?4&fDM65dbNdw3@UNDIn7apjg$mOpYy({j^% zhPoY`Y!41JRKF>#yeHkNMvs8MX##+_6=JQqKN519TRI}dxpe_3#HjG?` znsairMT_T+*n}E2=ATV?ug4EB`5--P5H1f7$-@c4g^OyU8Wge*7!{wQT55AYzR`pQ zF(Qea)-KCyR+sk3OzaI~xn4^90m!R|*|#ldRf43C_Hs^A$}d6JUir|dYGU3=*b0TG zb%Rm!F;}E+bq-JXv!rxmC&lzFmpCQR+<4jzu5A+h8Ab59I%~EXk-KM_KWkT#ia-Z` zKx&($z)?`bZ=2Vc;XN0f9ykN~Ekd-PFtXqNzV57}3b86!dS*${0M8T+w)2ijVN@O- zg$(gSIk~M_?r$(1nHOAt_MORlIpjtk2~o{6lp2mhS)nGs`Oq24V;Ho}N-TKQwDp+F4K55KR)Ng3SO61XcZUaMOK0_&i#B-J6`6P zSz)lOGyAN2qQLav$Lvv2bObxN5vz5hSABdF_H-+8lcJ&Qg=wpHUG>}#5GmPGxG5Pe z`8I@g+fsQb4kq69th1R-DnshKgSstDr=2A`rY&6KiJq|O*m3om^E(e|- zThhUmaNHSvvXi=ua?Kv(-an3Ab3s=6==S`4z3IEgt4ny~MQFStHXo1VTN7Y4omaxw z`cR9c+}3mq*#jrljs@C2DO`w)11Rix3*&vd3-mBKJ6D{${V)QF(Z&R5ZeuO`d;B9i& zRXJ5Eb}J-qU}I5|K+-35f~gIDw^LQi>Bx_o##xq>qVIFD5vt}xT^wi$f5nbSuyiqe z%OUdZ79;x131F=eTnuvx)$m~7v>5>NBdNu>>wP{{hmU!*5=*gA$F^=Ayj!hgyo9&k7v2YsK~*1zfvIp2+=6@V4oMws*zu9ts-D*Hmg*O@lt65JsY z3CTmAky>qvven(SPNR#aXV~|GrF>FOv<#g^k`Y0BLMi*xX)DIbZ`+wla&5m;b@XMT z2$}hmrM^XFVyk@$1quWEuUD@OMANRM4*&);JNsZ$ohpgyE`|P;uv|p(s;NVJhCD)v zm)J0sVf#G(gV+`!JOr3rVfCzwP#&2twH=2U)2$>o*Z5o$F)0E?Mup0R2F{EYJ$>4qg57Vs$BG6SgQ;y zm2o@g9@!aJRdwt-!JRN71<}KB5`>A>@P<@?w`W|WOA1bZycnb#mm&xafV(JegkX~I z;5}Mte@jWY1#GfHX%2h^y=AXSCyl-MQ)?C{XImFJMjI$^HEP&>yd(+viG8^7%6v|!rdVEuiLvI^hC2p+pNV}CHh!2dO z=J17ea#E}suLFHe_bOm8r*K6f*oYhLW{wJn4K$lqCfcPctdN5_k8{YIu79R^FI~@M z=+SEg7>KA{X}7Qboqxj}UbcGP2P0eM)+^O+m*ih&4bzVD4RRi^-*`Y0u8GoBGv*Eb za#yB+8afanlYl-he53m2&_@@yC4tFK-?2ft-_l|H*#VcjjtxGi1Wg6gX!^(wO~?zv z2G0J&#`X=GKi1w)h)EEIplVk z;@^agmOjf|%Tpe<>^1SOb$^oe!u8L*#+2w`1}$p;u;iYvo;&PswbWr6bpixRN>sHC zT@I=clfs!Nm>wG{KAez30xjwUy_rhW^TRjkmgs~U*fHrhZwnWU+&r^y$Z|aMJY=e8 zI@5DJZ>+(V)Fv9inG9N%0=BAlu$)H*P7}Uxhm*qw^ErItB3xGeP!U(u0Lt)~N|*u- z#tBXbLgebbBR(M$;?GLtCs<6vw(dDPyL3VJm4V=hdd80oLiWs%Fx|v^DEx+NKO|DD{qWL+WCRnK#D)^E@n@be+6pPkpX^ws>+s$x zoL~`tLNbXkd8m7>%hA3t6exBJ$B7HVpc5R!|=Gfji z{q7TD&PGP1?1>t2Gv!%tDnj_uDL2Ed#FU|stO33bLw)*+0*VhqeG@Jr#8;z9G+2%y z8Gqc|y?B%(F$b-w?e(e9DJ9f&>lC6)D^xE(2T^tqxi@!ql}I2BIVD2G_Vc=f&qthM zLJT<9-Dh|v#YefKO1<$p5^hD#5yHJo(6uR2Y!}0t`~)Tp3%Pmw8MT1IKtvz4u4aEw-UZs6~5kR86Y)+7gnRpW}bPf$7ZKawc~(i z?=yB|9(nqEKBDf#1N!lxAKBtw3E~^QCnk^@9ZV2V>6paL=l3l_HDyD8h0>QD6N~gh z38kxn-C6jN!B&@gvu<4{q0^#68rQv=m-2YjNgkbVSwbF&b>~E~HTcJj!nUO84MdT; zsPdgP%oOU&JGbWm=h_aMQo!&|n-mjfnIcN~WlMU`@i>`QPl1>l50u)~;9kN@r4WTh zlb{U8D^hhO>b^vGzvF`7!&aPX>$RAZVveNtg2-N<#`j^HO92^L4}%)(l1!SQhX!I%*kq zL(pM6`Sf|-az(_Zsu%~1A=IZcV+n!f8;zwVDA^&InK?Q=h*edOhRh&p@1eFkZvY^; zgmQk&Mo7PhM_RphUM75gja-~|RI%~ui9QI9G4CqxlKv*LG7p~=Hz)VE7M@rDG2H$3 zP^P&*&xi)jLBT;xmZX|mAFJPL9g-K+&>Z zlYba1wg5cnJm`jbbHT$8aK6W42NWjO+ z!5nP22H^um0hG{3KOQj5API8TBJe96s@A#o49r@J%D4@7N@<_1a1YE(Go~0)2`g3F z7{Rv<-QZEd-rgj{Aiv1al8IcX%#myU+fA)UKwLT_*1^7oWv}WV!{NI3(l^2*?*NFE zbZR+nQ$wdLj;$q*`+S>Qgk>`q?`P}z@5P|AFPc5IVk|Le^Pa+W@&iZKh z-i{cx42);IM%SWm`|;ahbtBDNk>2kM)pvTMA#0>WL36Mhv?jw-fKnz9G}ob$BhoAG zt+?{xg*R?moZUoS;UK)H@Mj{-DYy&g2tGlAZ}uF!Hqk+A(PRb#yX8I(>vTkmpg zZP-y7V^vQ#ThdPCy+Trc`nB}K#+k=&37M_`ouz?eMO(C8&x7huMFT@F7 z4Cd36P<;{#25uI1OEdn?qL?F|+p120`f{s$XAE$5kSAJ{cHX zUolkRC;PFlU=5pjeau~-V!0p0Ht^8fo}I8t@tVgf{{qGc_FEBk0ZgsvoG!J!`6Q-u zphKt~l9VH^zl+d{OaI)rneg%Y@=lUd6@+0>ey3yK+5{`$cZnRDSM{!bHap@1RG2QonkHJ7wV7>84fBI82Xrd6sUo4e{ZX7TimZ z{CR5~9FQT?_E24TO} zI|VS`6X2BcQl(yhqVvMa*JrHALQJs|K3ddL*;s@`>kQbb-Ntoli}5$U6L!=*g^%z` zdWv+g=9rkvA}3zJan|CdRoqCEjWUnG5AHjuTll3W{K^$kN_HB$DfOe-7e8m@eCG_N z!@NE4aLpe)LasSF8R}<@Zp;4Qa?hfFD3iue$dpI&;3~@tY1wY2HU`!_J&~QX*!-Vdj$$>Q7Dp9PUMtDumXLW{ZkLI2BChf%}rz;n_zTEy$i@(&* zaE$^?w4zrtCgHHN>L`;GSZl?)m(P*A6FFHs#U*hY3_B$yv<%SS_Jk|+Q z+v%$Px9~_5g5_M~$P;dxVv~`s^omXU@ zN4!2y6eqvkWM|GjHB{S4ypHr(VMkXm4;c~wXsgsU-F;>cOMtg$=S#&7JS2yRc5jsTS}5$lHg)Sk}# zr%zK$x9jz;_+#sSFdbUmuT_DmgkR@H=d!ma+_z{>9R?Y=x0QoO1gh@0)@}BDPa{hv zFMVmZO{*x|?;y|WxR+fI%{EYZfd?P2*}eAA$QS3gwoZqA*@k60H^q(g?sanIFA>%o zaw#&zrxSP7r*3bYJaW*HSM9aqo+27(X)zL)f8xd`*uPUDC9-zdQ5}H^~rzF27SbY55 zw8YGw(6_kT-}g_3jo5vJKWN;{?R)5QE|u@>ATcx(X*P5YvrnN2bWm({q>9Z#F=u_o z0JG`-MAy;5EAq=!Fl-qAGP$teGgZcCELF=jCHNX8-bYtUApPjZt>xxW#87O84{9za z6S@|*fjp*EQ$X*(-6&af2pNBJoByfaKR&_BDnsHN@B)A^sz(tntdDy)ZL>EeXo?|Q&7%&{Hf?~ydQyN`jqlq z2u8THOb3fLn6X(dg5h=*r`P@05enRumxZPl@?$d0$Wm;0W#N`HMy;+5@3nq=C{56y z)OjEaatd*t#QRwfb5e8F+E*_nYAK*ZGEXw<34-SxKfymYF~d@3_a}Frmq?Sh{O04{ z>rQT@r5_PK3@ILRT3fh1-jer5eObV7+j?rb3O^tjZu^A1dgav@bl+0qLt0W|>-F}< zR^97*@2cPAWol{Ok}>5TkR|aKOJMUJQ|u>d_q)CWrWzXtpvW^J6_D6&c>?;Rt=&@F zw~0@&{GZ7SXnsg~AxD~a+zDkMoEPJ9Ire(RDn+m#Rw%9qyQP1J_`X$k4r2yQJY8c< zkj+77LMHv5@#t23*rO01v6aJ4OK;D{2ddZ$Iyh47;uJU32D(x+!+xXzPS{9M8_if( znW*Bb()=}Roo7peq^D*MO*chEx2OQ5MlfmSYGCe5$S?eUs#n{P7rJqqrZPij$aI{( z@h%7>79=bgosgMvY%mGmrrrz~0A@A3B0my3VpZk~9Q7l$Ui5?G10w`-eL^|AElThHG0s+2Eo$*Bk@|Czn+O<| zSZVqOXnd9c{c(Lo2ovGgNDd0AC|B{b`6$THX|@W%&EmT2QmK~z$rpmQUxzKsM@?)7 z1+$pWnuJ6rH4B93_V=p<*^qdCNd{oXiE=TRBgAfzoUm=T~lEreG*UValj!~S! zUITlqit`WH5A^ch{ykh0$kFn_mb~Bf%NMZb$mc|GiqDEh6bYM_mgfB83{&^r zTKuF__@3(D`3_vm^vHERHhM)~U9}6!$|6IE`5_PpN>5*({&=R~!02e-M2=U_PnBm$ zV%dL-wT;>#RLc@va31$PdIytvoZx-5pFe*xS;XzTF6lcrnw+D|tHPba1Dr znXwk!F}gc86Hs{+*v4V(`_UTN5R>T4&C_ateg>>(F)r=NKP+?BOKtSfvU9??mq_9{ zU$Mt{a`@L43~7~ezUr@jAsjQ3@1E+k?ZIlRIpB3l2o9+rK8(>c)mMq&wh}XP2`cyv zkXoWWJz|Bn<8%`qz~cH&d)dmW|8oIJ+Z=tv%yJ9gf_AvLcw|pbFE>~Se0%ioPSXVG zrM<6}P%9GzaN6j4`{`y)&UpSET%89vID8^voU%Ha9;Cu?#@Ze2c+!)pY>|A1h_u54sX=zO6s(vmu^_t_7 zC8(FMR)??v66wzev#SRsxWh~^uroqxS}o~fzV^+n5o-CygI>hxTN}2!xwFRJeOXpS zMZ<0|3!97D)4OQb!l?tb{O;4h;i(h#-us2F!$E=iJ92A)OkhV*C3@ zJnV`RIF|v&MiRDCn$Q^Ml6i-S?wQe0dFBHKfA$tSS0JZvS0(aT2j}+d+o=IB&Mq@| z#>HA%Og^J5Grv!29jSh|5ZqnR)RQAMBlbWMO)vJ`Pv+7vh)M+jGyYK{KWxp}qz0sZ z4fArgq4rclujdvyTk#W>{-P~%Qa*dK3*z`O7)g_Is=nBTqs-Ca=Lyc-zM3qt z@J?j6Lj|omOzZkLAxSO+@lVY-ypSYAd_{YS6OEv5917ruHc~g$w$Yc64hL0k;qY$W zO{!rXZ!O}Yk`D&3+U|CE+U4_M_rl+u@2)|@fv@KS$QzJhl^M{~DBAaKvL(M_C`~{2 zpZl=_FH(vXSiL?M-vs9{8SozRv&h-yT`0gb^-vK<(c-@<`L1`#3;AaaxA)NRroQ&5 zfxZVJT-s#eT34uty5hvuwdw>JopWJk)X!!;w@&S+GNX5IHrrSjkZOCDps*e7W`Dhi zl*Gr?ZxyFRp`-1&2&MT(M~|7K&V0g)wvf|37Z8#XP9}UURO%@Wh7R!y$O#TpK2#R| zATOSy7l;6?ZpxBPaIyo^IG<*}4yS4b`hj|1bIY5yk0)?d`w<|u;-wDOZ&ZZK90(t@ zgA}(*QiFD^PecO-au*e3*22Aechd?=D%}J3?b_x35eGI3!W~f*t_i*_iKU52hd6Pg z#xjl8ziX0JrBBg^N!Qz1r<%LV4|zv;8Xcb-Xt@=wRou-BZSf^AlwEZ%K_C3|(!tYG z14XtdTMe;n4h0T#+hssR9L%I)Xhz-(BJH*BSCsdV8?Vx;R#zb`QM9Lt4yxYlDb=Wo z>FyJNKqShD@ zi}cqs3bhI%mBH(pnEd?FF?4c2w=>vhaICI!?S2U9(`MM5vV8B-uqjE!E@zNg{?S6^ zs#s0XRfNJNbSoXCA|GMts`JJ{wN4)qk2@xcrJW$4gJYXo7wf|4dK?Fg0+__>eN5*a_qc5j0?o79MxkR3Tfy0gT7 zbKDes^HKcJ0`%YTq_If@FE^r{!FpVWj6LL*7d$-F7aydZ zDht$>Strg`a3SMl)iNWTgulZD_O$6TfPw_`A5=Bgi~=)w)3Ti~{zk`Tz-t_yW~445 zmU@_o^z@hKyLm7O zOSdp5JoT(OM>A;r09|}1nv{VBUT}Xo+?7p}cU_N;HYs!&wqP?L?h~+M8Q*`Z@U@KR zu8$qKvJ!6KCKpz%7?zJ%1>n&q(NBhCgY+3c+&+el?VOcK5CP$1_AtpF>K#muLj@Q8 z0tOC@8O(^HSdhIq7(~H%;S@XyUju*Vh-c|`e%;0={Z{L&RSbN!qv#JaD?cX2u;yb|KgeGrv^H#2` z$NsZMk75H(W3`ls)8|CKU#N@x2w3kN@nBKAm<~(FN^-ET5~ z%a}+(w|nC5L2z4Otnjm70`r_&yM5x1X)}EyP5X=1G|4qLY;vkiOvAcQR!#k~2KK!$ z3gn>Tfrh$Qt;9u~kZwgh>VIKyRQkr?%jPezVWNTdKQKK?->SZdq;c(BM0>gq(Lu3f^-O6F=B$pKB=EFL!No`F;j0g|jT4j}|l6 zgvVV%_M^ESo^WS9*T3Z@S#6(ietFC0`d(#+cXx|*5+uuI%(rlI z;QIukG(VSnBw3H>_>}~LV!vshxQEv^3V3RwJeRX<;q-5E$Cg@)e2dlOPSbv@oU%N2 z)hoAEqUOV-^?r#5=q*Lh`qAhVx?9XIB_{3RhM!O6 z3GeYP#KZhRvZW7t>;#t&wjqaDJwbAi=PL}-Z;ER69z>UO#J#Vyn>|ieImhOL0G!*C zC)8b!Foz@(xF=6RIgGaJ`LJ=v%Hn$W1`i%*Di!4pILC{xOI8kV)mEEe9R2KR*lda1b@*qxNax5^p4g`3PiL2@~y=(r#?YMpu4RNx~yfJXzZI*Q|10x@5K(++@VAl>R zATcK>E;fTMPVT=D&sKAZ2K>ew4vlX!;+iR55N}6^srQ%uxTW6qIh|{bQD1_j`YLX^ zIQU*#NtK|&Yke8!UXd>Vt`BQZg_=WO_9RxH0nDCf$}L)t7^_i_F~q-tmuLGOA^e5r z#bd`&aqOZR$0eJYi6aJ9@8Gj&I6w)#;#m2q1&;8t5XVRt@+kI5Gc=W`)< z>z+hI9Eo!wUM8WM;#x0st8C?#@owwW7Rz+k6WQUh)HmzA(v&(QeUY#?T?@iKJ4Y6e zt$aG$cZ+~+GZ)_kwVAz7`w#79_m2o|91d`<9^i2`2t*Z$V2#*I`63t{$W960YSlht zf}bYbZy;nrUM#}@YjpuNTj9SNr2kXHoEGKY#hyR7G&gXzcHWZ> zW2KRA(g+p%k zS7X>5?#SyushE3Hk%0CT@LO_vezC3|IqcXE_P~~plS)z?c^+Zq3Qi4M09+m zXSZf~)e&&5zg<%To32;WW`M^KG#K$ANSt}vk8$t=WKd9HG(5H9;&wzb&5DJAx!)*j z#R#p0+SQ@-W{b^8I4l2;<=%jJ03#qv2)@~2(XN7A7hr>)Mc_~1ZnmR!Krdi(4-LS| zLxbFtQ%=aoMu7{M%TXlVLU7U&QBq_-D`s|axr1)iIIwr|vap~$WVRyYy=C-TQV$3| z>g!L{o81EnA5&gZ`pVH>eR1=M;bcVs^Utm62n%~CBkC?(JAxAH)vw~&8Fb{(Fd~dk zo8!;6fPybHzSAp)+CZX@U4aODRWTs#+H}%H`Ii*0o)ZCR>M=^XI<8$g?3c7BV z8O*7AxCacW{Li5HBF=pY?e_U)gdeh1yorJO;XkY)w@HxU69d@p8mV4qYkYs-=<~Pa zzJvR&Bfw1@qHe%Vyb}E?dmA9Jub1^l&zyb%yYDc1{kdY>*RPRyk;nx3N@5*%%33If zJtjvhiGo!+;;kONBfmJ1Jcl}CT&r+M0D)U^0YGir*fzfgWV3B9Po_SKn&fJBGL_{4 zYJH2lMd|IriO1&w$o_R?U9_{Cn*z(5Cwqow^sU)=-&)3*FZVl3i!N*KKW_MOvp(gm zZjz5?t-V_8J?~09@}|X3!yFOs{YRjqLPzu4$AbK!P;jd=2svm*l_U*WR2T>x6g(DB;eIT z1qxQcsDZ`>*$XN8n@|TCr%^!o&#_D>hoUlRVCi~<;M|^@fz{0^n?av3Hc6u})M;_E z;bf1H9|A+@VgfJY_`6e#p!<)PCjj2lBhH%6a9XRo!?pDwYT5ZZt-YA~ zH)Ap$N*^@i8btYL>wK3h$L@YZzP&`)qXf2_lE;_0xaJvW;xR${ z_Htrvt0!s8YRPH;3I&ScugbNBML*r*o=e2=e;@6JG z+<0*Zz^$zjB{rJV2j%tncQQbawyWTLH5yU(v*v>?bY(rLQ=p+j@#7@C*o zb7@Wdui>|Czkl2kw#{@$@3?knq1$pHs_I4M&;M!dETiJ=wk`c7SP}??1lM4}A%#1^ zA-KD{yIX?0yA|&4?(R~!1$Qk9m#*YH=bqc$XLOJ5d-)A})Y!bW-o4f{=iKo~MXYrb z<$)hK>^i(H?Y_T&2`|eKsLdb$^iqBJ zzeHyIpSz9!j|`6grUn0_|3bn$mqZ$RWQqBB)?3!F77~g{pWU>h51Q==4fsU3pYx~h zh3*I=D(BlfSKeOko2xzqLXRJFb4opYG7Z#;iAA9)XO7rT1k#DSvN~UE4?5 z#%Q|_ZZ{Eq?Vb`tePd$$(L8WD?&RrfzK4BeWVh1v6u zPRtWkwi8;3nkfW+ijYUs^ZpJ_uq9`q&G55QbpID^_=9J*r{6+nWgkeGeQj>fb<;N^ zmMS9T2SoVQpD+}x5+=&w9r{oNy)N`5<{qphHlx!f5dax3z2r%hccE*Yb0_n@zMt5W z8I|yGI{KXB}y`e|69ij|6b40Y7T~3tx z`0z6noaK&hYlt<;aIY6;XD#i zChLl~97#R2`UlLB%#1Oy9YRo;cJ0PO08nQNW}|j? zy?^+SNN?Fa*-#E{89Q3+aR_sQ91*!(V)6>{r6hD5F%^dr42(?IAG?6PED^aPCH(OS zGNlDSt3PGTh>nf_*aHd2c@dw8>@+oD1aI}@IIcjZkZFL*fuo6t(K(k@2ffSij!)g6 z1g~#=a|g`R&*;1Sh<7M7)bRgIKPbA#NmZ<&kDEEbp7aX)D@x7YU_m2ZETjG;L<>EE zl7z1813kL5AXS9UNp_RVUBlS9hdEV9$XL?Rs{@3ras4~I!ifpH|WKkw&rCH{aL z(JTB=U6lOI1*)c9x|(ssXRl(cerg$}j$yo?*2UfS*#+8GuNn4&b8cx-mYir4YWoTw zzZty48L_8^51nzfI?`)xHKI?^69h_+^*PL15y#Pjm(x`^O><4Rk7{)n#n>v%090${ z0;8*T;{p6gCK~kfg+igzLw^uY{U?cQ(GiCt$3FwDY$yN_)V~$klIb;;5`6Btbp8Bx z481Rj!5u%YE#)c4Ry5pHARNmO_ZpPdY(cqZ_39%dIEwbcncfYLafBs%H)^Q?Ignmd zue%K^Kz49U!Uu53Ef7}oF9hSCWk~-#P|dM*pY*@skjo^jAyX1dVTJ#MLj;99F(=(W zSBt1$Qj@sge4kg$%GU!JLB%t;n*c877#?kKA3LZ*{Rj3$#r#_gd=oe6?P!ZU_(@8` zGVc!Bkk-_T>*Bn^dE{?1=I*wo)bKC?JVsaz87~}yX_YJ>>oq+B9pghmB+RWE!)5+a z8r8rjRo%$p5nok8k#i*IkI~IPsXSjSDb;~gRg2DiTgrVparwE zUwL2$^n{71)|(?(OeqVx-q7rcL&rXq+O|cTLiiHq+vwqX$5&MN^YOKZ{whxiwO!iJ zuckdv!9zSW9~VpV+RYWNG6sAFw-$cE#&WwP)3rtXd10bKfiZ;h%^`C^bms5(k3gW5{goggVNajyMm*(_(3Wg<5z zIezdVC;?s}<*g4^miLslz!YVF^K(ipO$5AN6ieOk!*w3{%p)eeM+iphPp4Bx!~8WL z^_|LESTaFIsawClu35Lz9z%l_ALevtQ`DGNxnQLeN(bf|=C&3Q6o$G#@mPl~qNdsEvUXolIt&IzHTY-6Jgd=ijexkALVcv5)o@3aqWD%>1`pqGMzdK#WdRF;k|Ttl3MjCyTl=!^CA>S> z-z~;r{_0HFD?*;iKgXOZivDcbG3Lze?K4E6noKACr_ycrlR){g7lq^#GCyhI7U%+X zrWsC%w}@YS^cxx)t>5LR2Nbt6#RICHm1Dykx@kXx#B+7?+RNkK~Z_$aj?y(1@2FD#yyP5V1{ z>KGA;?rnDe!3fcH)TpSR2icJau|Ly~{`Eli1#@I=jzP6#lJPS$*o; zSq){)Zf6umnrTW}Qwb9)F`FU|km`C=KA(>9AM8LeQEDH^V3jGu^xPF!Az=7smf}cI0(is5z*(=OTzeMJRrhfs-U4;&Tx)xrD*7l<=YEjK@|XrWIgp`m25d{Pn(&COKG+q_qGWcthZS5SnWd znosnExY*FRfJ&fOwXyD$xl^N}FKg=6%tovWMi#=?;=@GHiPgLmhTh(Y-;EO+$GrTu$CC>2g1PKqcVU~mzwtf6#=BZt-U!ka7S3sc;UmCGP=JQSZ zU>7yPIU$$*_n!Z!Ag|%pQ@u zdFfP*9+j6_Lws%8HpRxj@|%YAlVR(UqdR=~Q>8`UWZQilgbZy1%bEC1xi&wSK4bU% zS%_cMB>UYzg=QXi8~=h!{~xJ|)l&TH9;2>b2*uoHboQAZLG-lXU~L_#HBC2ahL}qX zSZo0*S{(vYW%EVlu}-S1jQmo}JoK-C{B?QY;=09s_CAiaq5l5Fi&FLU|4lO5TW zxrpXObEG@+Z2fP>6nzwX1R;QSu;$7CVn{6d^o%*Y9}<5Ewv{2x^xir#5%82W(4*Q) zRBxGIs9k_nlx787W2i@oO6lnYAlPl#M39c=N5{1?bBcl6;G^|y+qfsY#G--IE%UyM z_rlVH&SiUOHu%i} zcKIVcT?y(ySkLWZ1#r?0+B-!)y6Tl9Q?CVDuEFd_On5-N=3EoJW%%pK}s>@KzJ=e z|D%k&Mugjt!0o;kC;*2S@J?)s&Kv z+O}_4oonYe>$H`!7gsJfD?T}9e0LWGI%yS9?v0YSaBEg-?-|gp1rx%yqVg@`F|dyq zAI#EB*w%)6JSjje3w>z=KYp_vnFKtGZCiMKn#I<8xl81J)EwlMOQ#Mk9d7u!I^t=! zYM{PuhwwR+`aq6MV!Or>>3wBcru6mIF-|cH9$3FiM_e8<-C;a36{2 zWKaaY%}BJ(n3aSjo0&n6 z+?Tr>Hk(ZrkG*H>%mWlXP$c!Y(P)UvP3hf_@7(Qph9wPpXJ<|u(!R!9Q|;cpKl_nM z-xK(5+<5pw@~A7t>-7=52oGE^5!`qKjN6y}=D*Kpw(qbZGr63nKOeF!o<<>rr#TOh zx166!9&P~MgqL^)yr?#bUv~UB8%^_Rf8Q|>Z0&)$4oPFE$T4_yqxaYXuj4Wp@?Kd! zHeKJ`Mn=n@uSO2nS=dEvpF|RE-B|T4_t9^>AL6}>#$$YmKu){$ZO*@cMAaS{5;2?U z$Z0Mk{9@n%=N>LY4OX*kdB!J)9}-YymlB`H-DB$A%hAcC1mb(AtDubU;Eo>k@-hjP z=ahS6oZ-x~jBwkSu~;SCo5-So{x^JNpCEZ?H2G*ZM-$Gz7a zG{ryxyTg_+z}T2b=ty?wB1dH9$`ML~VuPgP!UPC=BK5uZX8T$KCbnYo4UyF6nZbMXd?~G> zZ0UL7K~C>DM8rE84Q)Q#_8P$ps_DQ;$C;P0JbJ*g8l;2J>?HjrQKH(QqOc9KW6B2gDj zXKV777dP(o!%vJ0?vYqeHzL;A(-q^;y5qM8o&AZHiJL@<=xKijyxLuYIa7nP=k6}( zms!`EgOimr~ieE9<89bsP*7~!bQW$2WEa#|H4Jim>z~T^WpoV z<@PT~N6qz*{@}XhG!nOyb`C33%Z3x)Q0dk3)s+x%HsZjhVgnN=(cw~eT}JoL5&z^p zvhRaymgB*D%_dGTRzU zpUhURMV|2C;Gw_M;S}Ma(&&6cD8~1g{ zNoeD>(%z^P%1oR4y6{5#aGn>vNRwNwB)kZFm~HW=y7#rvp=fYM$uH9V=rTUv56*H( zHt9;<+oYSMC-wD=YpDIw(f+TODa!vdByw30)iV7DB>Eco2NH4o4T)d^vgrEVmp`M0 zg`r@@%UQd)j^WUTe)vO)!WXc$kwy_#m;$Q|B48sTFPX#hw;W#-Wx9oa#? z3Ilk!j1<>LNcd-=mQGnf>)S~s*4;t_r^xnvhN#_QhR4#&Tmkq7Cf_JW{EW;yEvM!p zaea7F^1>~g+O_Ug>wuZ7e0_uYbdxhp@H0-Dv3<9|N6+<1eB$P_uvc&eH18a(Iy}^Q zL9B#}Ptqx?VrUL$YtG~r+J+VDR*54#B|0q=-L+z$W{n{O0xaZAl=KKs78AiiGSvep z!ccD1{u2Y;2lGM#3wosMi`S0LWP3m-jU@Ex02S6DaGd13f92vtA6sKW=PlJ!19tkQ z0kFt`d?(h~rTj>$UAQP^6F22z3oY|u&grT@wviXtU7+>y2 zIN`M%yJ?&DOJkRrQG#^ucKn*(k{26)> zDHj(}2hZf7_MB0iVR`JCw?qDlo=dd`szq_A7f`RZ`K{k4&dcUQdD8XZnWlephZh(8 zLX}&^!+u>(Sk?o)G3R9g%nRy^Cl?dnlFKmMF*lO-GQ;)qlA7R+W+qKPAng|kj)2ub?u;HK$wT<}CT6$`FPoTd^ ztkdHI4cVD_#q)U7JT&KOd7LG0m=_-9Jx7Fhd?>;p)GsMYs&UtV8%+;4m%aak^(4wX z#k_tkE@#iP1iOi6%9^zqevLF2-nP{`02;eEO`DyXQi6JR`GS;sI3{l!?pp?N%2J4?XGuzJO|L4^7|0ZJdPt}_r z+rL}zSN=jH=Sy)%i=BHn{y%cjiMB_^3(9~{1NYyDaUxa>q<{7_|8|l8QaJp-`&9o; z3)=j{VWcV63`P!{!1wiAww|Z#GJU#|w)yI_VUmhd0{J#n39s> z@ZBaRHrCcykNA17;#sxeZ#czY&e|P-TZHW=iU;e@K^KFK5F6}rQ0BSNWK5`)j$SfD z19i#ep3%@V)&CAhZ={NgU}T}^eX9>}zr$T_qlLii?~M2Wi=Z#25w zem6=Q#u{zRZ{c#HPE7^WsiQbNaAF)U6-C(pItqz?DI;}AFA{?6(iX0?!a!)#8=2c9 zT}M~N_GdUTGF(QQl7lc=lysMi%|~2By+{#RTe7L7L5bvP`iq`k9qO$4e!dbLxltsLo)HpxNeAx9@|DE(-<)W9e20%I{C^k(jupgWzh`(Oa784LDh zGJ*!bb!9^q4E$kEmVzZqc8S#eyU|*GEMuR_i>V<)M+LDEX7JtJob8a&Ea-%i2<#x+@NYl`)~#_-Y}PA(wf1HqZMR`Yspb_ zB5z2Clhr<;rxJZ!vy`+yTyES#@F+${(T|g=0JmOK|LYJmnH#=Qd^k>eCbs!+R z!YzHyFK0Si*Hib-oS7Syzj2_c-ivz}k9TS~E!f`G;V#iPo3?bziv}1JYQTl%iqyOOMM>n+;OA% zErv}f*(4?9<$h-hurygwM8GTVuEO|yvHS@jafTvEV<+w%agY-`2|2}pqAQiKU-suK ztf&+8l!A6b_)-pHUN<|*@aA0~f_PtFN%76e#D9GY(>u3+pNZTun;*UnB4satAxEA& zjC-@t@mdI6qEotL0%bhlz0JhbFmCuFxc0#EyD4O$TGBmTyG>LJis;Ms`2ZKnvl^kU z_sNfefuGw;UO`d~^)<`(N#S9t^IgMTuBdy(LkoiCLBaRK@h-MQ!a+D2iwXgIS|tJn zc+;+h8pAaoO0H82TrRe=uJ-%~Pu)>P)~EOCU8C-809q-!?8YHKU4C`ZDVQa559tG3 zGZ>x&bjG`jM8Ro2r)2gQD>1Zev@w0jO*4*8kvlt`tk`gOW~`_N(8^?0AOrci(?CB6OUP2S?}5xEKa@*;s$k!wkM zmax%xlp{+5!%fHEp3LRSfu)^%WhJ`7mW2sVhiPKTSlMYyeq=l0kOGiDxe|of3 z99pnuB{hRy<`hPqN>Q8tCzKdU81#5&kb-*Bp_#TQ?(`T8H-gvJkdn2U3Oxmnas+VQzlHV}6x8XppLC z$7*n0tgzl_ZM^X9rg-0{oeW;6<1AOodl@Nmzp;=_{FKCYdX`6;@sO3SKeXiehk5|A zttBSk+j!o5y{S@J(dX>(g`3S3HHS5-rj|8jz6j|39Ckf+=xKgv+tfWf{4i!nTQ$g> z>(($I19W@h00p|>putMbL<)V zNO_e4^)v{HZ>s$sO zM?IVy-V&lNV_Irn$)l%o=qYQvfuh17fJCLZwx}29{e`99lO(##nKLHfQ9d0`^vd_;(O{zg+Ct}IFavppCiCtndSRA~yBEgqIAATnvNt*alx z=1}~u81r^KyxNgoS7fksa+Qw;nUzV4|-hu?poX1pF z?Vjy$ZHy#JVo(bko#?$yX2BexzRq@w$2vE3hj{%#j|?*=)l16rRpCkUO8)oUN9QYZ zB>N#lohbQ(R_xBhkMV^GZsn@1m@QJGYG*Dz7k}WM+RB9bk<81QsRK^)VRu!yzg}(X zo&uHXjIds{YoYHdl)sNMOciZwYu5h*f3hH`T^9dsxDpx?*7ufJN6OJO+VjE;4)A4o zPk&^GVQI}GZEpxQq)l_xYo$RFwOJjbK=WE6>1>syGFM9eA$k6Klj5)3Q3S6|+SG0J z5O>ik1R&~1=bMO}ldnw?)`w>};V_>9n!VS(wDHOWDPv_56zU7_5K;uKCPHR{|LB5T;k;OB4F6!?? z40eg!hedPy_8&|X(aoqZ^mi-zf|;blgQD(^^pV=x0`DCWzi!<@_)e+qXF9$9E}GP5 zq)73B?bXEY(3@Ov*Yk4vOuqSrnv0P0(Gs3MiV|2Dg-rgO*^5s;*iDLqhnS>WmN*O0=<-PCIxH9#l(~QCyLP)>~499()=sB&N zX`ESeObfj4*$Qri`uvSjQ9Y4?CB~0q4VxH@T|=NMQRVT@A7aA$KJUnrN=s3Zdd~~S zs^1@_l6v#@28R=M7yCr5Dz|kN!_bOIr@nn>o4^qtq4%KkBbgYAGR-lv!Py6**dX1- z5L%OC3I6d%I}15o4BikMFEWd#R7##|8|myv&Y4X7FPI#C6w}&(Q!M~{-?>z3u_HOK zfT6b(%_@P~K&lUMWL{q$B1Hl!?o?J$wu=d0iTc}?CX0F6%lj3DzRVLwJ^V2gP};Dz zv6CIQTFh9$o}7?*nq!n!$kc!?3G^>sciA3whcgFdyEkQ^`)u|q1$H-0#AR4_mDLkF zq$f7duiF+2m-M%TSKWflY9~QMbC8@-Ht;^OLz-_i`RM{BRtLR0!YFDRAN<)mV(8v)!fd; z3&N%P(RQgJZC3rJ027V|=4>JCha7SuTG_CCOG}prUnBiq$6?k!K~s*`srWnkHSb1V zeH=j7Z$<^V`eWI_DL0y;63O`z2dLp!ZjODkY2F zMee(a51OEdF&&C!vb&aD(U&SEW?;16tGmOr{X%wd(POxfUNc#Z&JgHc_gB~t#DC*$ z!yej%yg6JSlC3Sw{(>whD75;VwM`tbQxz_}pY#MCk^FSQKg47}?yNH(0(TqO6qzG8 zM(U^I92<=rVd=07S$SkoND91#p18$B$cdj4;4M^W?k3bie9gWP@u$#HfLY&C)?+v6 zzU|T$OXE80$f3~2%eJHyqK5<8WZd6e{rvd;_0YfrvT#g!xH77yGIb zY*VWGb|oxDuAr3)?PN?zQ5%|54e@t&J-tpsF6w(x^tN#P)ihg0!K3he$ir1{`zpij zD~fcyVix5WxJBs~rhU&3V^z>0eEXw@E;$im)4_$FKGWv9_;Jn=S)q$EK@wf4IgDy# zLu7DYMq1!B8Cd2k2TH8CQub$BVWbw%h0Khn0+#G&5&%PhF;Ugd8zf~y|E({cEecDr(4Aay(&M@(`uRoP&jBZ2{Y=)h-B*&#|;puWxIG1hEWaD z&g?fX3fWRoFyrZdh2RG%KOVn|Dk^l+Dnonr}{Xzs@yk$P!g?Xbq4-(dnrw9#*P{VV zdq~|FN((v&#n>D|y)aqSj__8gl)^16sCsDR(y&&t-Q<)IaBIOb2ljo=S7wZ`s*^l> zm};_ol|hBE^$=#qa2fS-F1T%Q{YnkT=A3p!<-(Zz*;1LY+08hpivjgOduAxwW*^;R zfehtJ%Z$(D?Uw?)u2&87VHpcQaij?{G)eo7E`^v*w1dgSVMcW6-eGcIdoshF&xH%Se-DGAj?f|ZV?M9m7h-Y0FL6wPfizDN&upa07(5vbGWXWe0dePZ zMt@h=IOqcoeUCx~-{r6W+=>A;MEWad{&7!3Ep&#^xJu|)1UfeQuZ{j}z-4V*p;tE} z6O*R52cxgUhOxIEb2U2G<{kih2M?21fm{2aKy}g`+D^vxj-a-{iNm-f7_u9A80n2~ z`hikSOm4&-83{w;P$hxtIjq-y+5Fk2Ih2FGZIami)X|ya`LgdOsqCtt71_J_t?^!I z0M3;0bj5$gIOHqOnr4EH9~DB=>xCoE!)Eg5!fUSU5-3~Eb13Qe1csNd&t?gcYf5Y2 z-dxFWX)zG6;&Rk_ci8G`ix1Xy#ixt0DMSF#dFg>WE(L8+1~0e111=G`|I0b0WVoBa zeo-c3?2`bb-!aH7h&MKpw9Qpjh9f2V2TqO^q@enJ!%^tm%b_bx$#lZtEXWwD5Lj~h zc%r%$T@=f|NnVnJ*Sqc3!Ar-gy!qUcl2+7Py=ez3Ih)s2b(MC;Wd2qCSCc2i2&Ko3 zXnX0$hVb@B?2rNQ&vlgmAAdH#qly@9%&^=p-$}1rJQ1jC75+pGdMfgZ%GAiy)=#08v!sE`PmXT1^@lDvAcC)(r$I?!KL>4$)(2CcyP+z2eXgROC}-dttD3iX zWUT!Pnw5qXQLpxyRT(%Q?&bshGSkdJqOCy~Q0nz<7B!?qd~lkOj%s;R0#;(DIv z?R-fGfraIrX_-Fi=W~^_CmbyGcpnj$gJ zQkGnD;q`@AmS;ePFlTKP%dbvAUm{<4$b1huM_GOyrM5w~l$1o;I2|#H-@7mSd{7b=(Z<{6k#(zr z6s(zl=lr2e_|tA-M92DN&)j?}BVH%%3=0d@XXI!upwtq`1z}m#03*w40b89k#WiQ^ zH=bcv*C{n&kEG!o!+$)l+X4%lz42W}%ji4>NlThByXQi`J2$O6tQ)Sr9J(!*vA6;c zLer~JuDwQtq@e1a^0H*VMjC?=0X6@URwcw0-Z}3^WscD3i)pcgC=Ba8Jpu08uxQIY zfbbr|0ja~ixtHm>H5|ZNPm#zi?gAe$RL1sy=6N z#@;_*WZ~C0XXN$8FkF6Tt_2SXKk{K2IklRQBTW7Y;UU7_oRQCf89=C3G?17&FtW$$ z0{h#^{*V{GT@skSbd#?^Jpjrf@~tRi3#a&$$LsFSKxg@h#^(9^hj1nW<%f=#yiLV(ivq7gCGb@1F1dQt z?j?+L&$o1lB2f9vOG!WA1T1taIFvh_e20y!=MostobC43t|Oh@_qq|56lY+Nk)d64 z*tMgaeyHFito9`fOTUDbyO?+ID74?3FNwqzKUeh^T?o^h;&NO+GPAh0EgUMcdwjT~F_sMPygO71zii4|4$jA4I!lFWCl1B&@g(SF z^{h+8-Zo061r*dB_lvenRou>J#Sq1?;FgAMoLz|Czapb=y(#F{X5~8s#I$Oj*Ufye zRKYf=KPq-_R~MWP&|Kmd#kTacJ$ILb*tc`dehxe0#@NnTqlq4Q1Q8W5hesObJ|RjBW)Ol=W6++n;-S`Q3i3gxTAJNMC-|!v1%C~!^R-=N*iOTw z*j`zoFnMox>9E$q2;-3OMItR;+Txx#>0q@#OHI`UFvOgoe6#<)>M&fclM29aEsh?f z3_$vcq6ztSHHPCV+aI5jFzoT+8G*LW;F3(%y0WS+XEfE4aG-=%AN z2>O!_Du;4~7vrU_PWNr;^%vYVg0_=R?byNX26T1rwTaCphrZ4|?2>RkvmuL2eW{o= z4sqvH@C;hRXXd;2X4a=zk2EN3uW1R5Up-46JR}=@%14-sIfcbRA^aFfqLl{EJUI;y zjxI8;P@qU_CcpK8(Af3*dhvvfBDw9O=MfiI!VW%<&t2 zc=$C9}7b}(FHz}n+O|`fGOUE?%OaP zEpO)@%{3XzVoq4|KqJCUab;Z-7DI#+>7JXH;kSxeM%SttgKumn{K^tP>=pm4yY0e? zoit;^9Nq}RWrr(LQYrEWu;tvlD_WtqJKU`e3l1iRR~){~zdeLkp2^%zsHzBN}Hv>yY;|nqcmpg)`d&-6tAG|Dsr`K8R-h%{IniWbH;) zblHOGF=K(=tWV8(L>Lah^;1J)5Z`0nIIBiad73=F^y|7=m`QyG> zVQcd`hby7YUh&UX1Jb}iM>`piz;-SuuY5wD{3+n`^0Li?en+SD`_wabdnH1Mmf+j6>9>5ha_7}gb(qb$bPjdG= z7trB;UZ#Y;jGk#dp5b?CAYo@CKRTe*;vY&9#suOdkFqv^97nMc(5+&83ydFM-;B(; zHYxRH8Cy}nWXWBXgXNPr(9>IGL)odqx}x}KHLPyNq50d<$JotyC)xJaq%q>FxP~4G zzM5yY4^ItvzzC!nl*YlM8A%GCD}XV7L%KZHv86d`-G=N6dgB zpo2X8S+R`!K3*yat%=@?xc~0G#%I=M!42IcC1~y<=x^OH`xAb z$wC=&$TPL<7j>?Y*MN)4Z>8a34S0L@mo|G$FV;Jk8H}b;KP$vJy`@UsNac^_fYwm3 zyX0^QJUPhcI4XdP$Pd;oJplT5Z-|sLMz9m0F>do8|8y@=I)%x;G1{FE(=e?=i(mK$ t-@ob!|GR-9LjG4T^Iy5R&*HBaUThG?(6TlG<6qDpF(E0za(*43{{b=pd#eBd literal 0 HcmV?d00001 From cd6186bc53efa20b961bae8f6d90aeb47326a1bc Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Fri, 29 Sep 2023 11:32:02 +0200 Subject: [PATCH 07/50] Deleted temp file --- docs/static/img/bicep-ci/deleteme.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/static/img/bicep-ci/deleteme.txt diff --git a/docs/static/img/bicep-ci/deleteme.txt b/docs/static/img/bicep-ci/deleteme.txt deleted file mode 100644 index 8b1378917..000000000 --- a/docs/static/img/bicep-ci/deleteme.txt +++ /dev/null @@ -1 +0,0 @@ - From f05d48611a603ece2f816bdb5f4b6d6e0e8a085a Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Fri, 29 Sep 2023 11:38:13 +0200 Subject: [PATCH 08/50] Updated image links to uploaded images --- docs/content/contributing/bicep/_index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index b8d5fdf65..e554988aa 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -356,15 +356,15 @@ To use the environment's pipelines you should use the information you gathered d 1. Navigate to the repository's `Settings`. - Navigate to settings + Navigate to settings 1. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right. - Navigate to secrets + Navigate to secrets 1. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button. - Add secret + Add secret @@ -396,7 +396,7 @@ To do so, perform the following steps: 1. Next, select '`I understand my workflows, go ahead and enable them`'. - Enable Actions + Enable Actions ### 3.3 Set R/W Workflow permissions @@ -408,4 +408,4 @@ To let the workflow engine publish their results into your repository, you have 1. Make sure to enable `Read and write permissions` - Workflow Permissions + Workflow Permissions From 8e9e4cee8066f89dff4967d3423c433cd652100f Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Fri, 29 Sep 2023 21:38:29 +0200 Subject: [PATCH 09/50] Fixed image ref --- docs/content/contributing/bicep/_index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index e554988aa..90e9ba976 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -356,15 +356,15 @@ To use the environment's pipelines you should use the information you gathered d 1. Navigate to the repository's `Settings`. - Navigate to settings + Navigate to settings 1. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right. - Navigate to secrets + Navigate to secrets 1. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button. - Add secret + Add secret @@ -396,7 +396,7 @@ To do so, perform the following steps: 1. Next, select '`I understand my workflows, go ahead and enable them`'. - Enable Actions + Enable Actions ### 3.3 Set R/W Workflow permissions @@ -408,4 +408,4 @@ To let the workflow engine publish their results into your repository, you have 1. Make sure to enable `Read and write permissions` - Workflow Permissions + Workflow Permissions From 01c98aa8488672a7968fc2050e873a00fcf11781 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Fri, 29 Sep 2023 21:41:42 +0200 Subject: [PATCH 10/50] Moved section --- docs/content/contributing/bicep/_index.md | 227 +++++++++++----------- 1 file changed, 113 insertions(+), 114 deletions(-) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index 90e9ba976..b7bcfe8ef 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -141,6 +141,119 @@ Each Bicep AVM module that lives within the [`Azure/bicep-registry-modules`](htt
    +## Setting up the CI environment in a fork + +To contribute to the AVM Bicep modules, requires several steps: + +1. [Configure your Azure environment](#1-configure-your-azure-environment) +1. [Fork the Public Bicep Registry repository](#2-fork-the-public-bicep-registry-repository) +1. [Configure the CI environment](#3-configure-the-ci-environment) + +### 1. Configure your Azure environment + +AVM tests the deployments in an Azure subscription. To do so, it requires a service principal with access to it. + +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. You might find the following links useful: + - [Create a service principal (Azure Portal)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal) + - [Create a service principal (PowerShell)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-authenticate-service-principal-powershell) + - [Find Service Principal object ID](https://cloudsight.zendesk.com/hc/en-us/articles/360016785598-Azure-finding-your-service-principal-object-ID) + - [Find managed Identity Service Principal](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-view-managed-identity-service-principal-portal) +- Note down the following pieces of information + - Application (Client) ID + - Service Principal Object ID (**not** the object ID of the application) + - Service Principal Secret (password) + - Tenant ID + - Subscription ID + - Parent Management Group ID + +> **Note:** The Service Principal must be able to query its own details in the Azure Active Directory (AAD). To that end, ensure it has at least the (default) role 'Cloud application administrator'. + +### 2. Fork the Public Bicep Registry repository + +Next, you'll want to create your own fork of repository. To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. + +### 3. Configure the CI environment + +To configure the CI environment you have to perform several steps: +- [3.1 Set up secrets](#31-set-up-secrets) +- [3.2 Enable actions](#32-enable-actions) +- [3.3 Set R/W Workflow permissions](#33-set-rw-workflow-permissions) + +### 3.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 up the following repository secrets: + +| Secret Name | Example | Description | +| - | - | - | +| `ARM_MGMTGROUP_ID` | `11111111-1111-1111-1111-111111111111` | The group ID of the management group to test-deploy modules in. | +| `ARM_SUBSCRIPTION_ID` | `22222222-2222-2222-2222-222222222222` | The ID of the subscription to test-deploy modules in. | +| `ARM_TENANT_ID` | `33333333-3333-3333-3333-333333333333` | The tenant ID of the Azure Active Directory tenant to test-deploy modules in. | +| `AZURE_CREDENTIALS` | `{"clientId": "44444444-4444-4444-4444-444444444444", "clientSecret": "", "subscriptionId": "22222222-2222-2222-2222-222222222222", "tenantId": "33333333-3333-3333-3333-333333333333" }` | 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). For more information, see the `[Special case: AZURE_CREDENTIALS]` note below. | +| `TOKEN_NAMEPREFIX` | `cntso` | Optional. A short (3-5 character length), unique string that should be included in any deployment to Azure. For more information, see the `[Special case: TOKEN_NAMEPREFIX]` note below. | + +

    + +

    +How to: Add a repository secret to GitHub + +1. Navigate to the repository's `Settings`. + + Navigate to settings + +1. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right. + + Navigate to secrets + +1. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button. + + Add secret + +
    + +

    + +> Special case: `AZURE_CREDENTIALS`,
    +> 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": "" } +> ``` +> +> **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). + +> Special case: `TOKEN_NAMEPREFIX`,
    +> 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. +> +>> **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 AVM deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any module test file. These tokens are, for example, included in the resources names (e.g. `'name: kvlt-${namePrefix}'`). Tokens are stored as repository secrets to facilitate maintenance. + +### 3.2 Enable actions + +Finally, 'GitHub Actions' are disabled by default and hence, must be enabled first. + +To do so, perform the following steps: + +1. Navigate to the `Actions` tab on the top of the repository page. + +1. Next, select '`I understand my workflows, go ahead and enable them`'. + + Enable Actions + +### 3.3 Set R/W Workflow permissions + +To let the workflow 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 + + ## Composition {{< hint type=important >}} @@ -295,117 +408,3 @@ When the AVM Modules are published to the Bicep Public Registry they **MUST** fo This will require the alias on the MCR to be different than the directory path, which is the default for BRM today. ***Guidance will be provided below on how to do this, when available.*** - -## Setting up the CI environment in a fork - -To contribute to the AVM Bicep modules, requires several steps: - -1. [Configure your Azure environment](#1-configure-your-azure-environment) -1. [Fork the Public Bicep Registry repository](#2-fork-the-public-bicep-registry-repository) -1. [Configure the CI environment](#3-configure-the-ci-environment) - -### 1. Configure your Azure environment - -AVM tests the deployments in an Azure subscription. To do so, it requires a service principal with access to it. - -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. You might find the following links useful: - - [Create a service principal (Azure Portal)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal) - - [Create a service principal (PowerShell)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-authenticate-service-principal-powershell) - - [Find Service Principal object ID](https://cloudsight.zendesk.com/hc/en-us/articles/360016785598-Azure-finding-your-service-principal-object-ID) - - [Find managed Identity Service Principal](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-view-managed-identity-service-principal-portal) -- Note down the following pieces of information - - Application (Client) ID - - Service Principal Object ID (**not** the object ID of the application) - - Service Principal Secret (password) - - Tenant ID - - Subscription ID - - Parent Management Group ID - -> **Note:** The Service Principal must be able to query its own details in the Azure Active Directory (AAD). To that end, ensure it has at least the (default) role 'Cloud application administrator'. - -### 2. Fork the Public Bicep Registry repository - -Next, you'll want to create your own fork of repository. To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. - - -### 3. Configure the CI environment - -To configure the CI environment you have to perform several steps: -- [3.1 Set up secrets](#31-set-up-secrets) -- [3.2 Enable actions](#32-enable-actions) -- [3.3 Set R/W Workflow permissions](#33-set-rw-workflow-permissions) - -### 3.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 up the following repository secrets: - -| Secret Name | Example | Description | -| - | - | - | -| `ARM_MGMTGROUP_ID` | `11111111-1111-1111-1111-111111111111` | The group ID of the management group to test-deploy modules in. | -| `ARM_SUBSCRIPTION_ID` | `22222222-2222-2222-2222-222222222222` | The ID of the subscription to test-deploy modules in. | -| `ARM_TENANT_ID` | `33333333-3333-3333-3333-333333333333` | The tenant ID of the Azure Active Directory tenant to test-deploy modules in. | -| `AZURE_CREDENTIALS` | `{"clientId": "44444444-4444-4444-4444-444444444444", "clientSecret": "", "subscriptionId": "22222222-2222-2222-2222-222222222222", "tenantId": "33333333-3333-3333-3333-333333333333" }` | 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). For more information, see the `[Special case: AZURE_CREDENTIALS]` note below. | -| `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. | -| `TOKEN_NAMEPREFIX` | `cntso` | Optional. A short (3-5 character length), unique string that should be included in any deployment to Azure. For more information, see the `[Special case: TOKEN_NAMEPREFIX]` note below. | - -

    - -

    -How to: Add a repository secret to GitHub - -1. Navigate to the repository's `Settings`. - - Navigate to settings - -1. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right. - - Navigate to secrets - -1. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button. - - Add secret - -
    - -

    - -> Special case: `AZURE_CREDENTIALS`,
    -> 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": "" } -> ``` -> -> **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). - -> Special case: `TOKEN_NAMEPREFIX`,
    -> 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. -> ->> **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 AVM deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any module test file. These tokens are, for example, included in the resources names (e.g. `'name: kvlt-${namePrefix}'`). Tokens are stored as repository secrets to facilitate maintenance. - -### 3.2 Enable actions - -Finally, 'GitHub Actions' are disabled by default and hence, must be enabled first. - -To do so, perform the following steps: - -1. Navigate to the `Actions` tab on the top of the repository page. - -1. Next, select '`I understand my workflows, go ahead and enable them`'. - - Enable Actions - -### 3.3 Set R/W Workflow permissions - -To let the workflow 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 From 95e18afb898bedbfecd739fe10463e62225bc770 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Fri, 29 Sep 2023 21:42:25 +0200 Subject: [PATCH 11/50] Update to latest --- docs/content/contributing/bicep/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index b7bcfe8ef..2e848c197 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -141,7 +141,7 @@ Each Bicep AVM module that lives within the [`Azure/bicep-registry-modules`](htt
    -## Setting up the CI environment in a fork +## Setting up the CI environment To contribute to the AVM Bicep modules, requires several steps: From e64688d01d677f4e89a80170c1be1187c9cbe391 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Fri, 29 Sep 2023 21:43:54 +0200 Subject: [PATCH 12/50] Update to latest --- docs/content/contributing/bicep/_index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index 2e848c197..cbb60ab5d 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -141,9 +141,9 @@ Each Bicep AVM module that lives within the [`Azure/bicep-registry-modules`](htt
    -## Setting up the CI environment +## Setting up your CI environment -To contribute to the AVM Bicep modules, requires several steps: +Contributing to the AVM Bicep modules requires several steps: 1. [Configure your Azure environment](#1-configure-your-azure-environment) 1. [Fork the Public Bicep Registry repository](#2-fork-the-public-bicep-registry-repository) From 7bdcb156bf4025531ddb95067b302271c0b41dfb Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Fri, 29 Sep 2023 23:08:45 +0200 Subject: [PATCH 13/50] Restructured raw content --- docs/content/contributing/bicep/_index.md | 389 +----------------- .../bicep/bicep-contribution-flow/_index.md | 170 ++++++++ .../contributing/bicep/composition/_index.md | 178 ++++++++ .../bicep/prerequisites/_index.md | 65 +++ docs/data/menu/main.yaml | 7 + 5 files changed, 424 insertions(+), 385 deletions(-) create mode 100644 docs/content/contributing/bicep/bicep-contribution-flow/_index.md create mode 100644 docs/content/contributing/bicep/composition/_index.md create mode 100644 docs/content/contributing/bicep/prerequisites/_index.md diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index cbb60ab5d..61f277694 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -22,389 +22,8 @@ Therefore, this contribution guide **MUST** be used in conjunction with the [Sha
    -## Recommended Learning +This section lists AVM's Bicep-specific contribution guidance. -Before you start contributing to the AVM, it is **highly recommended** that you complete the following Microsoft Learn paths, modules & courses: - -### Bicep - -- [Deploy and manage resources in Azure by using Bicep](https://learn.microsoft.com/learn/paths/bicep-deploy/) -- [Structure your Bicep code for collaboration](https://learn.microsoft.com/learn/modules/structure-bicep-code-collaboration/) -- [Manage changes to your Bicep code by using Git](https://learn.microsoft.com/learn/modules/manage-changes-bicep-code-git/) - -### Git - -- [Introduction to version control with Git](https://learn.microsoft.com/learn/paths/intro-to-vc-git/) - -
    - -## Tooling - -### Required Tooling - -To contribute to this project the following tooling is required: - -- [Git](https://git-scm.com/downloads) - - If just installed, don't forget to set both your git username & password - - ```PowerShell - git config --global user.name "John Doe" - git config --global user.email "johndoe@example.com" - ``` - -- [Bicep](https://learn.microsoft.com/azure/azure-resource-manager/bicep/install#install-manually) - - {{< hint type=note >}} - - Must be manually kept up-to-date. - - {{< /hint >}} - -- [Visual Studio Code](https://code.visualstudio.com/download) - - [Bicep extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep) - -### Recommended Tooling - -The following tooling/extensions are recommended to assist you developing for the project: - -- [CodeTour extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=vsls-contrib.codetour) -- [ARM Tools extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=msazurermtools.azurerm-vscode-tools) -- [ARM Template Viewer extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=bencoleman.armview) -- [PSRule extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=bewhite.psrule-vscode) -- [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) -- For visibility of Bracket Pairs: - - Inside Visual Studio Code, add `editor.bracketPairColorization.enabled`: true to your `settings.json`, to enable bracket pair colorization. - -
    - -## Lay of the land - -### Repositories - -Bicep AVM Modules (both Resource and Pattern modules) will be homed in the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and live within an `avm` directory that will be located at the root of the repository, as per [SNFR19](/Azure-Verified-Modules/specs/shared/#id-snfr19---category-publishing---registries-targeted). - -Module owners are expected to fork the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and work on a branch from within their fork, before then creating a Pull Request (PR) back into the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository's `main` branch. - -### Directory and File Structure - -Each Bicep AVM module that lives within the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository in the `avm` directory will have the following directories and files: - -- `tests/` - (for unit tests and additional E2E/integration if required - e.g. Pester etc.) - - `e2e/` - (all examples must deploy successfully - these will be used to automatically generate the examples in the README.md for the module) -- `modules/` - (for sub-modules only if used and NOT children of the primary resource. e.g. RBAC role assignments) -- `/...` - (Module files that live in the root of module directory) - - `main.bicep` (AVM Module main `.bicep` file and entry point/orchestration module) - - `main.json` (auto generated and what is published to the MCR via BRM) - - `version.json` (BRM requirement) - - `README.md` (auto generated AVM Module documentation) - -#### Example Directory and File Structure within `Azure/bicep-registry-modules` Repository - -```txt -/ Root of Azure/bicep-registry-modules -β”‚ -β”œβ”€β”€β”€avm -β”‚ β”œβ”€β”€β”€ptn -β”‚ β”‚ └───apptiervmss -β”‚ β”‚ β”‚ main.bicep -β”‚ β”‚ β”‚ main.json -β”‚ β”‚ β”‚ README.md -β”‚ β”‚ β”‚ version.json -β”‚ β”‚ β”‚ -β”‚ β”‚ β”œβ”€β”€β”€modules -β”‚ β”‚ └───tests -β”‚ β”‚ β”œβ”€β”€β”€unit (optional) -β”‚ β”‚ └───e2e -β”‚ β”‚ β”œβ”€β”€β”€defaults -β”‚ β”‚ β”œβ”€β”€β”€waf-aligned -β”‚ β”‚ └───max -β”‚ β”‚ -β”‚ └───res -β”‚ └───compute -β”‚ └───virtual-machine -β”‚ β”‚ main.bicep -β”‚ β”‚ main.json -β”‚ β”‚ README.md -β”‚ β”‚ version.json -β”‚ β”‚ -β”‚ β”œβ”€β”€β”€modules -β”‚ └───tests -β”‚ β”œβ”€β”€β”€unit (optional) -β”‚ └───e2e -β”‚ β”œβ”€β”€β”€defaults -β”‚ β”œβ”€β”€β”€waf-aligned -β”‚ └───max -β”œβ”€β”€β”€other repo dirs... -└───other repo files... -``` - -
    - -## Setting up your CI environment - -Contributing to the AVM Bicep modules requires several steps: - -1. [Configure your Azure environment](#1-configure-your-azure-environment) -1. [Fork the Public Bicep Registry repository](#2-fork-the-public-bicep-registry-repository) -1. [Configure the CI environment](#3-configure-the-ci-environment) - -### 1. Configure your Azure environment - -AVM tests the deployments in an Azure subscription. To do so, it requires a service principal with access to it. - -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. You might find the following links useful: - - [Create a service principal (Azure Portal)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal) - - [Create a service principal (PowerShell)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-authenticate-service-principal-powershell) - - [Find Service Principal object ID](https://cloudsight.zendesk.com/hc/en-us/articles/360016785598-Azure-finding-your-service-principal-object-ID) - - [Find managed Identity Service Principal](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-view-managed-identity-service-principal-portal) -- Note down the following pieces of information - - Application (Client) ID - - Service Principal Object ID (**not** the object ID of the application) - - Service Principal Secret (password) - - Tenant ID - - Subscription ID - - Parent Management Group ID - -> **Note:** The Service Principal must be able to query its own details in the Azure Active Directory (AAD). To that end, ensure it has at least the (default) role 'Cloud application administrator'. - -### 2. Fork the Public Bicep Registry repository - -Next, you'll want to create your own fork of repository. To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. - -### 3. Configure the CI environment - -To configure the CI environment you have to perform several steps: -- [3.1 Set up secrets](#31-set-up-secrets) -- [3.2 Enable actions](#32-enable-actions) -- [3.3 Set R/W Workflow permissions](#33-set-rw-workflow-permissions) - -### 3.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 up the following repository secrets: - -| Secret Name | Example | Description | -| - | - | - | -| `ARM_MGMTGROUP_ID` | `11111111-1111-1111-1111-111111111111` | The group ID of the management group to test-deploy modules in. | -| `ARM_SUBSCRIPTION_ID` | `22222222-2222-2222-2222-222222222222` | The ID of the subscription to test-deploy modules in. | -| `ARM_TENANT_ID` | `33333333-3333-3333-3333-333333333333` | The tenant ID of the Azure Active Directory tenant to test-deploy modules in. | -| `AZURE_CREDENTIALS` | `{"clientId": "44444444-4444-4444-4444-444444444444", "clientSecret": "", "subscriptionId": "22222222-2222-2222-2222-222222222222", "tenantId": "33333333-3333-3333-3333-333333333333" }` | 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). For more information, see the `[Special case: AZURE_CREDENTIALS]` note below. | -| `TOKEN_NAMEPREFIX` | `cntso` | Optional. A short (3-5 character length), unique string that should be included in any deployment to Azure. For more information, see the `[Special case: TOKEN_NAMEPREFIX]` note below. | - -

    - -

    -How to: Add a repository secret to GitHub - -1. Navigate to the repository's `Settings`. - - Navigate to settings - -1. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right. - - Navigate to secrets - -1. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button. - - Add secret - -
    - -

    - -> Special case: `AZURE_CREDENTIALS`,
    -> 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": "" } -> ``` -> -> **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). - -> Special case: `TOKEN_NAMEPREFIX`,
    -> 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. -> ->> **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 AVM deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any module test file. These tokens are, for example, included in the resources names (e.g. `'name: kvlt-${namePrefix}'`). Tokens are stored as repository secrets to facilitate maintenance. - -### 3.2 Enable actions - -Finally, 'GitHub Actions' are disabled by default and hence, must be enabled first. - -To do so, perform the following steps: - -1. Navigate to the `Actions` tab on the top of the repository page. - -1. Next, select '`I understand my workflows, go ahead and enable them`'. - - Enable Actions - -### 3.3 Set R/W Workflow permissions - -To let the workflow 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 - - -## Composition - -{{< hint type=important >}} - -Before jumping on implementing your contribution, please review the AVM Module specifications, in particular the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages, to make sure your contribution complies with the AVM module's design and principles. - -{{< /hint >}} - -
    - -### Code Styling - -This section points to conventions to be followed when developing a Bicep template. - -
    - -### Casing - -Use `camelCasing` as per [BCPNFR8](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr8---category-composition---code-styling---lower-camelcasing). - ---- - -#### Input Parameters and Variables - -Make sure to review all specifications of `Category: Inputs` within both the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages. - -{{< hint type=tip >}} -See examples in specifications [SNFR14](/Azure-Verified-Modules/specs/shared/#id-snfr14---category-inputs---data-types) and [BCPNFR1](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr1---category-inputs---data-types). -{{< /hint >}} - ---- - -#### Resources - -Resources are primarily leveraged by resource modules to declare the primary resource of the main resource type deployed by the AVM module. - -Make sure to review all specifications covering resource properties and usage. - -{{< hint type=tip >}} -See examples in specifications [SFR1](/Azure-Verified-Modules/specs/shared/#id-sfr1---category-composition---preview-services) and [RMFR1](/Azure-Verified-Modules/specs/shared/#id-rmfr1---category-composition---single-resource-only). -{{< /hint >}} - ---- - -#### Modules - -Modules enable you to reuse code from a Bicep file in other Bicep files. As such, for resource modules 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 assignments in a key vault). Pattern modules, normally reuse resource modules combined together. - -Make sure to review all specifications covering module properties and usage. - -{{< hint type=tip >}} -See examples in specifications [BCPFR1](/Azure-Verified-Modules/specs/bicep/#id-bcpfr1---category-composition---cross-referencing-modules) for resource modules and [PMNFR2](//Azure-Verified-Modules/specs/shared/#id-pmnfr2---category-composition---use-resource-modules-to-build-a-pattern-module) for pattern modules. -{{< /hint >}} - ---- - -#### Outputs - -Make sure to review all specifications of `Category: Outputs` within both the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages. - -{{< hint type=tip >}} -See examples in specification [RMFR7](/Azure-Verified-Modules/specs/shared/#id-rmfr7---category-outputs---minimum-required-outputs). -{{< /hint >}} - ---- - -
    - -### Interfaces - -{{< hint type=note >}} - -This section is only relevant for contributions to resource modules. - -{{< /hint >}} - -To meet [RMFR4](/Azure-Verified-Modules/specs/shared/#id-rmfr4---category-composition---avm-consistent-feature--extension-resources-value-add) and [RMFR5](/Azure-Verified-Modules/specs/shared/#id-rmfr5---category-composition---avm-consistent-feature--extension-resources-value-add-interfacesschemas) AVM resource modules must leverage consistent interfaces for all the optional features/extension resources supported by the AVM module primary resource. - -Please refer to the [Shared Interfaces](/Azure-Verified-Modules/specs/shared/interfaces/) page. -If the primary resource of the AVM resource module you are developing supports any of the listed features/extension resources, please follow the corresponding provided Bicep schema to develop them. - -The next paragraph provides an example for the Role assignments extension. - -#### Example: RBAC Role Definition Name Mapping - -To meet [BCPFR2](/Azure-Verified-Modules/specs/bicep/#id-bcpfr2---category-composition---role-assignments-role-definition-mapping), [BCPNFR5](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr5---category-composition---role-assignments-role-definition-mapping-limits) and [BCPNFR6](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr6---category-composition---role-assignments-role-definition-mapping-compulsory-roles) you can use the below code sample in your AVM Modules to achieve this. - -{{< include file="/static/includes/sample.rbacMapping.bicep" language="bicep" options="linenos=false" >}} - -
    - -### Telemetry Enablement - -To meet [SFR3](/Azure-Verified-Modules/specs/shared/#id-sfr3---category-telemetry---deploymentusage-telemetry) & [SFR4](/Azure-Verified-Modules/specs/shared/#id-sfr4---category-telemetry---telemetry-enablement-flexibility) you can use the below code sample in your AVM Modules to achieve this. - -{{< include file="/static/includes/sample.telem.bicep" language="bicep" options="linenos=false" >}} - -
    - -### Versioning - -To meet [SNFR16](/Azure-Verified-Modules/specs/shared/#id-snfr16---category-documentation---examples) and depending on the changes you make, you may need to bump the version in the `version.json` file. - -{{< include file="/static/includes/sample.bicep.version.json" language="json" options="linenos=false" >}} - -The `version` value is in the form of `MAJOR.MINOR`. The PATCH version will be incremented by the CI automatically when publishing the module to the Public Bicep Registry once the corresponding pull request is merged. Therefore, contributions that would only require an update of the patch version, can keep the `version.json` file intact. - -For example, the `version` value should be: -- `0.1` for new modules, so that they can be released as `v0.1.0`. -- `1.0` once the module owner signs off the module is stable enough for it’s first Major release of `v1.0.0`. -- `0.x` for all feature updates between the first release `v0.1.0` and the first Major release of `v1.0.0`. - -
    - -## Testing - -{{< hint type=note >}} - -The AVM core team is working to provide a CI environment used for testing the AVM Bicep modules in the Public Bicep Registry. Until the automation is ready, we kindly ask contributors to proceed with local and manual testing from their fork. - -{{< /hint >}} - -Before opening a Pull Request to the Bicep Public Registry, ensure your module is ready for publishing, by validating that it meets all the Testing Specifications as per [SNFR1](/Azure-Verified-Modules/specs/shared/#id-snfr1---category-testing---prescribed-tests), [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), [SNFR3](/Azure-Verified-Modules/specs/shared/#id-snfr3---category-testing---avm-unit-tests), [SNFR4](/Azure-Verified-Modules/specs/shared/#id-snfr4---category-testing---additional-unit-tests), [SNFR5](/Azure-Verified-Modules/specs/shared/#id-snfr5---category-testing---upgrade-tests), [SNFR6](/Azure-Verified-Modules/specs/shared/#id-snfr6---category-testing---static-analysislinting-tests), [SNFR7](/Azure-Verified-Modules/specs/shared/#id-snfr7---category-testing---idempotency-tests). - -For example, to meet [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), ensure the updated module is deployable against a testing Azure subscription and compliant with the intended configuration. - -### Testing Diagnostic Settings - -To test the numerous diagnostic settings targets (Log Analytics Workspace, Storage Account, Event Hub, etc.) the AVM core team have provided a dependencies `.bicep` file to help create all these pre-requisite targets that will be needed during test runs. - -{{< expand "Diagnostic Settings Dependencies - Bicep File" "expand/collapse" >}} - -{{< include file="/static/includes/diagnostic.dependencies.bicep" language="bicep" options="linenos=false" >}} - -{{< /expand >}} - -{{< hint type=note >}} - -Also note there are a number of additional scripts and utilities available [here](https://github.com/Azure/bicep-registry-modules/blob/main/avm/utilities/e2e-template-assets/templates/diagnostic.dependencies.bicep) that may be of use to module owners/contributors. - -{{< /hint >}} - -
    - -## Publishing to the Registry - -When the AVM Modules are published to the Bicep Public Registry they **MUST** follow the below requirements: - -- Resource Module: `avm-res--` as per [RMNFR1](/Azure-Verified-Modules/specs/shared/#id-rmnfr1---category-naming---module-naming) -- Pattern Module: `avm-ptn-` as per [PMNFR1](/Azure-Verified-Modules/specs/shared/#id-pmnfr1---category-naming---module-naming) - -This will require the alias on the MCR to be different than the directory path, which is the default for BRM today. - -***Guidance will be provided below on how to do this, when available.*** +- [Prerequisites](/Azure-Verified-Modules/contributing/bicep/prerequisites/) +- [Module composition](/Azure-Verified-Modules/contributing/composition/) +- [Bicep contribution flow](/Azure-Verified-Modules/contributing/bicep-contribution-flow/) diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md new file mode 100644 index 000000000..9e882e58b --- /dev/null +++ b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md @@ -0,0 +1,170 @@ +--- +title: Bicep Contribution Flow +geekdocNav: true +geekdocAlign: left +geekdocAnchor: true +--- + +{{< toc >}} + + +## Repositories + +Bicep AVM Modules (both Resource and Pattern modules) will be homed in the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and live within an `avm` directory that will be located at the root of the repository, as per [SNFR19](/Azure-Verified-Modules/specs/shared/#id-snfr19---category-publishing---registries-targeted). + +Module owners are expected to fork the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and work on a branch from within their fork, before then creating a Pull Request (PR) back into the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository's `main` branch. + + +## Setting up your CI environment + +Contributing to the AVM Bicep modules requires several steps: + +1. [Configure your Azure environment](#1-configure-your-azure-environment) +1. [Fork the Public Bicep Registry repository](#2-fork-the-public-bicep-registry-repository) +1. [Configure the CI environment](#3-configure-the-ci-environment) + +### 1. Configure your Azure environment + +AVM tests the deployments in an Azure subscription. To do so, it requires a service principal with access to it. + +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. You might find the following links useful: + - [Create a service principal (Azure Portal)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal) + - [Create a service principal (PowerShell)](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-authenticate-service-principal-powershell) + - [Find Service Principal object ID](https://cloudsight.zendesk.com/hc/en-us/articles/360016785598-Azure-finding-your-service-principal-object-ID) + - [Find managed Identity Service Principal](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-view-managed-identity-service-principal-portal) +- Note down the following pieces of information + - Application (Client) ID + - Service Principal Object ID (**not** the object ID of the application) + - Service Principal Secret (password) + - Tenant ID + - Subscription ID + - Parent Management Group ID + +> **Note:** The Service Principal must be able to query its own details in the Azure Active Directory (AAD). To that end, ensure it has at least the (default) role 'Cloud application administrator'. + +### 2. Fork the Public Bicep Registry repository + +Next, you'll want to create your own fork of repository. To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. + +### 3. Configure the CI environment + +To configure the CI environment you have to perform several steps: +- [3.1 Set up secrets](#31-set-up-secrets) +- [3.2 Enable actions](#32-enable-actions) +- [3.3 Set R/W Workflow permissions](#33-set-rw-workflow-permissions) + +### 3.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 up the following repository secrets: + +| Secret Name | Example | Description | +| - | - | - | +| `ARM_MGMTGROUP_ID` | `11111111-1111-1111-1111-111111111111` | The group ID of the management group to test-deploy modules in. | +| `ARM_SUBSCRIPTION_ID` | `22222222-2222-2222-2222-222222222222` | The ID of the subscription to test-deploy modules in. | +| `ARM_TENANT_ID` | `33333333-3333-3333-3333-333333333333` | The tenant ID of the Azure Active Directory tenant to test-deploy modules in. | +| `AZURE_CREDENTIALS` | `{"clientId": "44444444-4444-4444-4444-444444444444", "clientSecret": "", "subscriptionId": "22222222-2222-2222-2222-222222222222", "tenantId": "33333333-3333-3333-3333-333333333333" }` | 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). For more information, see the `[Special case: AZURE_CREDENTIALS]` note below. | +| `TOKEN_NAMEPREFIX` | `cntso` | Optional. A short (3-5 character length), unique string that should be included in any deployment to Azure. For more information, see the `[Special case: TOKEN_NAMEPREFIX]` note below. | + +

    + +

    +How to: Add a repository secret to GitHub + +1. Navigate to the repository's `Settings`. + + Navigate to settings + +1. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right. + + Navigate to secrets + +1. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button. + + Add secret + +
    + +

    + +> Special case: `AZURE_CREDENTIALS`,
    +> 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": "" } +> ``` +> +> **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). + +> Special case: `TOKEN_NAMEPREFIX`,
    +> 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. +> +>> **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 AVM deploying resources uses a logic that automatically replaces "tokens" (i.e., placeholders) in any module test file. These tokens are, for example, included in the resources names (e.g. `'name: kvlt-${namePrefix}'`). Tokens are stored as repository secrets to facilitate maintenance. + +### 3.2 Enable actions + +Finally, 'GitHub Actions' are disabled by default and hence, must be enabled first. + +To do so, perform the following steps: + +1. Navigate to the `Actions` tab on the top of the repository page. + +1. Next, select '`I understand my workflows, go ahead and enable them`'. + + Enable Actions + +### 3.3 Set R/W Workflow permissions + +To let the workflow 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 + + +## Testing + +{{< hint type=note >}} + +The AVM core team is working to provide a CI environment used for testing the AVM Bicep modules in the Public Bicep Registry. Until the automation is ready, we kindly ask contributors to proceed with local and manual testing from their fork. + +{{< /hint >}} + +Before opening a Pull Request to the Bicep Public Registry, ensure your module is ready for publishing, by validating that it meets all the Testing Specifications as per [SNFR1](/Azure-Verified-Modules/specs/shared/#id-snfr1---category-testing---prescribed-tests), [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), [SNFR3](/Azure-Verified-Modules/specs/shared/#id-snfr3---category-testing---avm-unit-tests), [SNFR4](/Azure-Verified-Modules/specs/shared/#id-snfr4---category-testing---additional-unit-tests), [SNFR5](/Azure-Verified-Modules/specs/shared/#id-snfr5---category-testing---upgrade-tests), [SNFR6](/Azure-Verified-Modules/specs/shared/#id-snfr6---category-testing---static-analysislinting-tests), [SNFR7](/Azure-Verified-Modules/specs/shared/#id-snfr7---category-testing---idempotency-tests). + +For example, to meet [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), ensure the updated module is deployable against a testing Azure subscription and compliant with the intended configuration. + +### Testing Diagnostic Settings + +To test the numerous diagnostic settings targets (Log Analytics Workspace, Storage Account, Event Hub, etc.) the AVM core team have provided a dependencies `.bicep` file to help create all these pre-requisite targets that will be needed during test runs. + +{{< expand "Diagnostic Settings Dependencies - Bicep File" "expand/collapse" >}} + +{{< include file="/static/includes/diagnostic.dependencies.bicep" language="bicep" options="linenos=false" >}} + +{{< /expand >}} + +{{< hint type=note >}} + +Also note there are a number of additional scripts and utilities available [here](https://github.com/Azure/bicep-registry-modules/blob/main/avm/utilities/e2e-template-assets/templates/diagnostic.dependencies.bicep) that may be of use to module owners/contributors. + +{{< /hint >}} + +
    + +## Publishing to the Registry + +When the AVM Modules are published to the Bicep Public Registry they **MUST** follow the below requirements: + +- Resource Module: `avm-res--` as per [RMNFR1](/Azure-Verified-Modules/specs/shared/#id-rmnfr1---category-naming---module-naming) +- Pattern Module: `avm-ptn-` as per [PMNFR1](/Azure-Verified-Modules/specs/shared/#id-pmnfr1---category-naming---module-naming) + +This will require the alias on the MCR to be different than the directory path, which is the default for BRM today. + +***Guidance will be provided below on how to do this, when available.*** diff --git a/docs/content/contributing/bicep/composition/_index.md b/docs/content/contributing/bicep/composition/_index.md new file mode 100644 index 000000000..8fccb2a59 --- /dev/null +++ b/docs/content/contributing/bicep/composition/_index.md @@ -0,0 +1,178 @@ +--- +title: Composition +geekdocNav: true +geekdocAlign: left +geekdocAnchor: true +--- + +{{< toc >}} + + +## Composition + +{{< hint type=important >}} + +Before jumping on implementing your contribution, please review the AVM Module specifications, in particular the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages, to make sure your contribution complies with the AVM module's design and principles. + +{{< /hint >}} + +
    + +### Directory and File Structure + +Each Bicep AVM module that lives within the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository in the `avm` directory will have the following directories and files: + +- `tests/` - (for unit tests and additional E2E/integration if required - e.g. Pester etc.) + - `e2e/` - (all examples must deploy successfully - these will be used to automatically generate the examples in the README.md for the module) +- `modules/` - (for sub-modules only if used and NOT children of the primary resource. e.g. RBAC role assignments) +- `/...` - (Module files that live in the root of module directory) + - `main.bicep` (AVM Module main `.bicep` file and entry point/orchestration module) + - `main.json` (auto generated and what is published to the MCR via BRM) + - `version.json` (BRM requirement) + - `README.md` (auto generated AVM Module documentation) + +#### Example Directory and File Structure within `Azure/bicep-registry-modules` Repository + +```txt +/ Root of Azure/bicep-registry-modules +β”‚ +β”œβ”€β”€β”€avm +β”‚ β”œβ”€β”€β”€ptn +β”‚ β”‚ └───apptiervmss +β”‚ β”‚ β”‚ main.bicep +β”‚ β”‚ β”‚ main.json +β”‚ β”‚ β”‚ README.md +β”‚ β”‚ β”‚ version.json +β”‚ β”‚ β”‚ +β”‚ β”‚ β”œβ”€β”€β”€modules +β”‚ β”‚ └───tests +β”‚ β”‚ β”œβ”€β”€β”€unit (optional) +β”‚ β”‚ └───e2e +β”‚ β”‚ β”œβ”€β”€β”€defaults +β”‚ β”‚ β”œβ”€β”€β”€waf-aligned +β”‚ β”‚ └───max +β”‚ β”‚ +β”‚ └───res +β”‚ └───compute +β”‚ └───virtual-machine +β”‚ β”‚ main.bicep +β”‚ β”‚ main.json +β”‚ β”‚ README.md +β”‚ β”‚ version.json +β”‚ β”‚ +β”‚ β”œβ”€β”€β”€modules +β”‚ └───tests +β”‚ β”œβ”€β”€β”€unit (optional) +β”‚ └───e2e +β”‚ β”œβ”€β”€β”€defaults +β”‚ β”œβ”€β”€β”€waf-aligned +β”‚ └───max +β”œβ”€β”€β”€other repo dirs... +└───other repo files... +``` + +
    + +### Code Styling + +This section points to conventions to be followed when developing a Bicep template. + +
    + +#### Casing + +Use `camelCasing` as per [BCPNFR8](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr8---category-composition---code-styling---lower-camelcasing). + +--- + +#### Input Parameters and Variables + +Make sure to review all specifications of `Category: Inputs` within both the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages. + +{{< hint type=tip >}} +See examples in specifications [SNFR14](/Azure-Verified-Modules/specs/shared/#id-snfr14---category-inputs---data-types) and [BCPNFR1](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr1---category-inputs---data-types). +{{< /hint >}} + +--- + +#### Resources + +Resources are primarily leveraged by resource modules to declare the primary resource of the main resource type deployed by the AVM module. + +Make sure to review all specifications covering resource properties and usage. + +{{< hint type=tip >}} +See examples in specifications [SFR1](/Azure-Verified-Modules/specs/shared/#id-sfr1---category-composition---preview-services) and [RMFR1](/Azure-Verified-Modules/specs/shared/#id-rmfr1---category-composition---single-resource-only). +{{< /hint >}} + +--- + +#### Modules + +Modules enable you to reuse code from a Bicep file in other Bicep files. As such, for resource modules 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 assignments in a key vault). Pattern modules, normally reuse resource modules combined together. + +Make sure to review all specifications covering module properties and usage. + +{{< hint type=tip >}} +See examples in specifications [BCPFR1](/Azure-Verified-Modules/specs/bicep/#id-bcpfr1---category-composition---cross-referencing-modules) for resource modules and [PMNFR2](//Azure-Verified-Modules/specs/shared/#id-pmnfr2---category-composition---use-resource-modules-to-build-a-pattern-module) for pattern modules. +{{< /hint >}} + +--- + +#### Outputs + +Make sure to review all specifications of `Category: Outputs` within both the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages. + +{{< hint type=tip >}} +See examples in specification [RMFR7](/Azure-Verified-Modules/specs/shared/#id-rmfr7---category-outputs---minimum-required-outputs). +{{< /hint >}} + +--- + +
    + +### Interfaces + +{{< hint type=note >}} + +This section is only relevant for contributions to resource modules. + +{{< /hint >}} + +To meet [RMFR4](/Azure-Verified-Modules/specs/shared/#id-rmfr4---category-composition---avm-consistent-feature--extension-resources-value-add) and [RMFR5](/Azure-Verified-Modules/specs/shared/#id-rmfr5---category-composition---avm-consistent-feature--extension-resources-value-add-interfacesschemas) AVM resource modules must leverage consistent interfaces for all the optional features/extension resources supported by the AVM module primary resource. + +Please refer to the [Shared Interfaces](/Azure-Verified-Modules/specs/shared/interfaces/) page. +If the primary resource of the AVM resource module you are developing supports any of the listed features/extension resources, please follow the corresponding provided Bicep schema to develop them. + +The next paragraph provides an example for the Role assignments extension. + +#### Example: RBAC Role Definition Name Mapping + +To meet [BCPFR2](/Azure-Verified-Modules/specs/bicep/#id-bcpfr2---category-composition---role-assignments-role-definition-mapping), [BCPNFR5](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr5---category-composition---role-assignments-role-definition-mapping-limits) and [BCPNFR6](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr6---category-composition---role-assignments-role-definition-mapping-compulsory-roles) you can use the below code sample in your AVM Modules to achieve this. + +{{< include file="/static/includes/sample.rbacMapping.bicep" language="bicep" options="linenos=false" >}} + +
    + +### Telemetry Enablement + +To meet [SFR3](/Azure-Verified-Modules/specs/shared/#id-sfr3---category-telemetry---deploymentusage-telemetry) & [SFR4](/Azure-Verified-Modules/specs/shared/#id-sfr4---category-telemetry---telemetry-enablement-flexibility) you can use the below code sample in your AVM Modules to achieve this. + +{{< include file="/static/includes/sample.telem.bicep" language="bicep" options="linenos=false" >}} + +
    + +### Versioning + +To meet [SNFR16](/Azure-Verified-Modules/specs/shared/#id-snfr16---category-documentation---examples) and depending on the changes you make, you may need to bump the version in the `version.json` file. + +{{< include file="/static/includes/sample.bicep.version.json" language="json" options="linenos=false" >}} + +The `version` value is in the form of `MAJOR.MINOR`. The PATCH version will be incremented by the CI automatically when publishing the module to the Public Bicep Registry once the corresponding pull request is merged. Therefore, contributions that would only require an update of the patch version, can keep the `version.json` file intact. + +For example, the `version` value should be: +- `0.1` for new modules, so that they can be released as `v0.1.0`. +- `1.0` once the module owner signs off the module is stable enough for it’s first Major release of `v1.0.0`. +- `0.x` for all feature updates between the first release `v0.1.0` and the first Major release of `v1.0.0`. + +
    diff --git a/docs/content/contributing/bicep/prerequisites/_index.md b/docs/content/contributing/bicep/prerequisites/_index.md new file mode 100644 index 000000000..a5ef4ee78 --- /dev/null +++ b/docs/content/contributing/bicep/prerequisites/_index.md @@ -0,0 +1,65 @@ +--- +title: Prerequisites +geekdocNav: true +geekdocAlign: left +geekdocAnchor: true +--- + +{{< toc >}} + + +## Recommended Learning + +Before you start contributing to the AVM, it is **highly recommended** that you complete the following Microsoft Learn paths, modules & courses: + +### Bicep + +- [Deploy and manage resources in Azure by using Bicep](https://learn.microsoft.com/learn/paths/bicep-deploy/) +- [Structure your Bicep code for collaboration](https://learn.microsoft.com/learn/modules/structure-bicep-code-collaboration/) +- [Manage changes to your Bicep code by using Git](https://learn.microsoft.com/learn/modules/manage-changes-bicep-code-git/) + +### Git + +- [Introduction to version control with Git](https://learn.microsoft.com/learn/paths/intro-to-vc-git/) + +
    + +## Tooling + +### Required Tooling + +To contribute to this project the following tooling is required: + +- [Git](https://git-scm.com/downloads) + + If just installed, don't forget to set both your git username & password + + ```PowerShell + git config --global user.name "John Doe" + git config --global user.email "johndoe@example.com" + ``` + +- [Bicep](https://learn.microsoft.com/azure/azure-resource-manager/bicep/install#install-manually) + + {{< hint type=note >}} + + Must be manually kept up-to-date. + + {{< /hint >}} + +- [Visual Studio Code](https://code.visualstudio.com/download) + - [Bicep extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep) + +### Recommended Tooling + +The following tooling/extensions are recommended to assist you developing for the project: + +- [CodeTour extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=vsls-contrib.codetour) +- [ARM Tools extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=msazurermtools.azurerm-vscode-tools) +- [ARM Template Viewer extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=bencoleman.armview) +- [PSRule extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=bewhite.psrule-vscode) +- [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) +- For visibility of Bracket Pairs: + - Inside Visual Studio Code, add `editor.bracketPairColorization.enabled`: true to your `settings.json`, to enable bracket pair colorization. + +
    diff --git a/docs/data/menu/main.yaml b/docs/data/menu/main.yaml index ef8aba79b..202de9443 100644 --- a/docs/data/menu/main.yaml +++ b/docs/data/menu/main.yaml @@ -77,6 +77,13 @@ main: ref: '/contributing/process' - name: 'Bicep Modules' ref: '/contributing/bicep' + sub: + - name: 'Prerequisites' + ref: '/contributing/bicep/prerequisites' + - name: 'Composition' + ref: '/contributing/bicep/composition' + - name: 'Bicep contribution flow' + ref: '/contributing/bicep/bicep-contribution-flow' - name: 'Terraform Modules' ref: '/contributing/terraform' - name: 'Contribution Q&A' From 8e44318f3085c8b652bcf3f9a602b160fd01faee Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Fri, 29 Sep 2023 23:09:09 +0200 Subject: [PATCH 14/50] Update to latest --- docs/content/contributing/bicep/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index 61f277694..e8919de2d 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -25,5 +25,5 @@ Therefore, this contribution guide **MUST** be used in conjunction with the [Sha This section lists AVM's Bicep-specific contribution guidance. - [Prerequisites](/Azure-Verified-Modules/contributing/bicep/prerequisites/) -- [Module composition](/Azure-Verified-Modules/contributing/composition/) +- [Composition](/Azure-Verified-Modules/contributing/composition/) - [Bicep contribution flow](/Azure-Verified-Modules/contributing/bicep-contribution-flow/) From c7e47807454be92225dc0592d2d0c40fd00e3864 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Fri, 29 Sep 2023 23:12:09 +0200 Subject: [PATCH 15/50] Added comments --- .../bicep/bicep-contribution-flow/_index.md | 14 ++++++++++++++ .../contributing/bicep/composition/_index.md | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md index 9e882e58b..c7d5df379 100644 --- a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md +++ b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md @@ -7,6 +7,20 @@ geekdocAnchor: true {{< toc >}} + ## Repositories diff --git a/docs/content/contributing/bicep/composition/_index.md b/docs/content/contributing/bicep/composition/_index.md index 8fccb2a59..cf3665001 100644 --- a/docs/content/contributing/bicep/composition/_index.md +++ b/docs/content/contributing/bicep/composition/_index.md @@ -7,6 +7,11 @@ geekdocAnchor: true {{< toc >}} + ## Composition From 943142628e6db10d58fd828e44b35a056a7bfc02 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Fri, 29 Sep 2023 23:36:55 +0200 Subject: [PATCH 16/50] Adjusted image paths --- .../bicep/bicep-contribution-flow/_index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md index c7d5df379..1928f791d 100644 --- a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md +++ b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md @@ -87,15 +87,15 @@ To use the environment's pipelines you should use the information you gathered d 1. Navigate to the repository's `Settings`. - Navigate to settings + Navigate to settings 1. In the list of settings, expand `Secrets` and select `Actions`. You can create a new repository secret by selecting `New repository secret` on the top right. - Navigate to secrets + Navigate to secrets 1. In the opening view, you can create a secret by providing a secret `Name`, a secret `Value`, followed by a click on the `Add secret` button. - Add secret + Add secret @@ -127,7 +127,7 @@ To do so, perform the following steps: 1. Next, select '`I understand my workflows, go ahead and enable them`'. - Enable Actions + Enable Actions ### 3.3 Set R/W Workflow permissions @@ -139,7 +139,7 @@ To let the workflow engine publish their results into your repository, you have 1. Make sure to enable `Read and write permissions` - Workflow Permissions + Workflow Permissions ## Testing From 701f330220cd3ef2c42dd661089da92e5860fae6 Mon Sep 17 00:00:00 2001 From: Mate Barabas Date: Fri, 29 Sep 2023 20:02:52 -0700 Subject: [PATCH 17/50] doc and menu restructuring, readability updates --- docs/content/contributing/bicep/_index.md | 8 +- .../_index.md => bicep-contribution-flow.md} | 20 +- .../content/contributing/bicep/composition.md | 103 ++++++++++ .../contributing/bicep/composition/_index.md | 183 ------------------ .../_index.md => prerequisites.md} | 0 docs/content/contributing/process.md | 2 +- docs/content/specs/bicep/_index.md | 90 ++++++++- docs/content/specs/shared/_index.md | 6 +- docs/content/specs/shared/interfaces.md | 4 +- 9 files changed, 210 insertions(+), 206 deletions(-) rename docs/content/contributing/bicep/{bicep-contribution-flow/_index.md => bicep-contribution-flow.md} (93%) create mode 100644 docs/content/contributing/bicep/composition.md delete mode 100644 docs/content/contributing/bicep/composition/_index.md rename docs/content/contributing/bicep/{prerequisites/_index.md => prerequisites.md} (100%) diff --git a/docs/content/contributing/bicep/_index.md b/docs/content/contributing/bicep/_index.md index e8919de2d..59bf011a1 100644 --- a/docs/content/contributing/bicep/_index.md +++ b/docs/content/contributing/bicep/_index.md @@ -15,15 +15,13 @@ Before submitting a new [module proposal](https://aka.ms/avm/moduleproposal) for {{< /hint >}} {{< hint type=important >}} -While this page describes and summarizes important aspects of contributing to AVM, it only references *some* of the shared and language specific requirements. +While this page describes and summarizes important aspects of contributing to AVM, it may not reference *All* of the shared and language specific requirements. Therefore, this contribution guide **MUST** be used in conjunction with the [Shared Specification](/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](/Azure-Verified-Modules/specs/bicep/) specifications. **ALL AVM modules** (Resource and Pattern modules) **MUST meet the respective requirements described in these specifications**! {{< /hint >}} -
    - This section lists AVM's Bicep-specific contribution guidance. - [Prerequisites](/Azure-Verified-Modules/contributing/bicep/prerequisites/) -- [Composition](/Azure-Verified-Modules/contributing/composition/) -- [Bicep contribution flow](/Azure-Verified-Modules/contributing/bicep-contribution-flow/) +- [Composition](/Azure-Verified-Modules/contributing/bicep/composition/) +- [Bicep contribution flow](/Azure-Verified-Modules/contributing/bicep/bicep-contribution-flow/) diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md b/docs/content/contributing/bicep/bicep-contribution-flow.md similarity index 93% rename from docs/content/contributing/bicep/bicep-contribution-flow/_index.md rename to docs/content/contributing/bicep/bicep-contribution-flow.md index 1928f791d..910b5ddbb 100644 --- a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md +++ b/docs/content/contributing/bicep/bicep-contribution-flow.md @@ -7,7 +7,7 @@ geekdocAnchor: true {{< toc >}} - + +{{< hint type=important >}} +While this page describes and summarizes important aspects of the composition of AVM modules, it may not reference *All* of the shared and language specific requirements. + +Therefore, this guide **MUST** be used in conjunction with the [Shared Specification](/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](/Azure-Verified-Modules/specs/bicep/) specifications. **ALL AVM modules** (Resource and Pattern modules) **MUST meet the respective requirements described in these specifications**! +{{< /hint >}} + +## Composition + +{{< hint type=important >}} + +Before jumping on implementing your contribution, please review the AVM Module specifications, in particular the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages, to make sure your contribution complies with the AVM module's design and principles. + +{{< /hint >}} + +
    + +### Code Styling + +This section points to conventions to be followed when developing a Bicep template. + +
    + +#### Casing + +Use `camelCasing` as per [BCPNFR8](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr8---category-composition---code-styling---lower-camelcasing). + +--- + +#### Input Parameters and Variables + +Make sure to review all specifications of `Category: Inputs` within both the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages. + +{{< hint type=tip >}} +See examples in specifications [SNFR14](/Azure-Verified-Modules/specs/shared/#id-snfr14---category-inputs---data-types) and [BCPNFR1](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr1---category-inputs---data-types). +{{< /hint >}} + +--- + +#### Resources + +Resources are primarily leveraged by resource modules to declare the primary resource of the main resource type deployed by the AVM module. + +Make sure to review all specifications covering resource properties and usage. + +{{< hint type=tip >}} +See examples in specifications [SFR1](/Azure-Verified-Modules/specs/shared/#id-sfr1---category-composition---preview-services) and [RMFR1](/Azure-Verified-Modules/specs/shared/#id-rmfr1---category-composition---single-resource-only). +{{< /hint >}} + +--- + +#### Modules + +Modules enable you to reuse code from a Bicep file in other Bicep files. As such, for resource modules 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 assignments in a key vault). Pattern modules, normally reuse resource modules combined together. + +Make sure to review all specifications covering module properties and usage. + +{{< hint type=tip >}} +See examples in specifications [BCPFR1](/Azure-Verified-Modules/specs/bicep/#id-bcpfr1---category-composition---cross-referencing-modules) for resource modules and [PMNFR2](//Azure-Verified-Modules/specs/shared/#id-pmnfr2---category-composition---use-resource-modules-to-build-a-pattern-module) for pattern modules. +{{< /hint >}} + +--- + +#### Outputs + +Make sure to review all specifications of `Category: Outputs` within both the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages. + +{{< hint type=tip >}} +See examples in specification [RMFR7](/Azure-Verified-Modules/specs/shared/#id-rmfr7---category-outputs---minimum-required-outputs). +{{< /hint >}} + +--- + +
    + +### Interfaces + +{{< hint type=note >}} + +This section is only relevant for contributions to resource modules. + +{{< /hint >}} + +To meet [RMFR4](/Azure-Verified-Modules/specs/shared/#id-rmfr4---category-composition---avm-consistent-feature--extension-resources-value-add) and [RMFR5](/Azure-Verified-Modules/specs/shared/#id-rmfr5---category-composition---avm-consistent-feature--extension-resources-value-add-interfacesschemas) AVM resource modules must leverage consistent interfaces for all the optional features/extension resources supported by the AVM module primary resource. + +Please refer to the [Shared Interfaces](/Azure-Verified-Modules/specs/shared/interfaces/) page. +If the primary resource of the AVM resource module you are developing supports any of the listed features/extension resources, please follow the corresponding provided Bicep schema to develop them. + +
    diff --git a/docs/content/contributing/bicep/composition/_index.md b/docs/content/contributing/bicep/composition/_index.md deleted file mode 100644 index cf3665001..000000000 --- a/docs/content/contributing/bicep/composition/_index.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: Composition -geekdocNav: true -geekdocAlign: left -geekdocAnchor: true ---- - -{{< toc >}} - - - -## Composition - -{{< hint type=important >}} - -Before jumping on implementing your contribution, please review the AVM Module specifications, in particular the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages, to make sure your contribution complies with the AVM module's design and principles. - -{{< /hint >}} - -
    - -### Directory and File Structure - -Each Bicep AVM module that lives within the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository in the `avm` directory will have the following directories and files: - -- `tests/` - (for unit tests and additional E2E/integration if required - e.g. Pester etc.) - - `e2e/` - (all examples must deploy successfully - these will be used to automatically generate the examples in the README.md for the module) -- `modules/` - (for sub-modules only if used and NOT children of the primary resource. e.g. RBAC role assignments) -- `/...` - (Module files that live in the root of module directory) - - `main.bicep` (AVM Module main `.bicep` file and entry point/orchestration module) - - `main.json` (auto generated and what is published to the MCR via BRM) - - `version.json` (BRM requirement) - - `README.md` (auto generated AVM Module documentation) - -#### Example Directory and File Structure within `Azure/bicep-registry-modules` Repository - -```txt -/ Root of Azure/bicep-registry-modules -β”‚ -β”œβ”€β”€β”€avm -β”‚ β”œβ”€β”€β”€ptn -β”‚ β”‚ └───apptiervmss -β”‚ β”‚ β”‚ main.bicep -β”‚ β”‚ β”‚ main.json -β”‚ β”‚ β”‚ README.md -β”‚ β”‚ β”‚ version.json -β”‚ β”‚ β”‚ -β”‚ β”‚ β”œβ”€β”€β”€modules -β”‚ β”‚ └───tests -β”‚ β”‚ β”œβ”€β”€β”€unit (optional) -β”‚ β”‚ └───e2e -β”‚ β”‚ β”œβ”€β”€β”€defaults -β”‚ β”‚ β”œβ”€β”€β”€waf-aligned -β”‚ β”‚ └───max -β”‚ β”‚ -β”‚ └───res -β”‚ └───compute -β”‚ └───virtual-machine -β”‚ β”‚ main.bicep -β”‚ β”‚ main.json -β”‚ β”‚ README.md -β”‚ β”‚ version.json -β”‚ β”‚ -β”‚ β”œβ”€β”€β”€modules -β”‚ └───tests -β”‚ β”œβ”€β”€β”€unit (optional) -β”‚ └───e2e -β”‚ β”œβ”€β”€β”€defaults -β”‚ β”œβ”€β”€β”€waf-aligned -β”‚ └───max -β”œβ”€β”€β”€other repo dirs... -└───other repo files... -``` - -
    - -### Code Styling - -This section points to conventions to be followed when developing a Bicep template. - -
    - -#### Casing - -Use `camelCasing` as per [BCPNFR8](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr8---category-composition---code-styling---lower-camelcasing). - ---- - -#### Input Parameters and Variables - -Make sure to review all specifications of `Category: Inputs` within both the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages. - -{{< hint type=tip >}} -See examples in specifications [SNFR14](/Azure-Verified-Modules/specs/shared/#id-snfr14---category-inputs---data-types) and [BCPNFR1](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr1---category-inputs---data-types). -{{< /hint >}} - ---- - -#### Resources - -Resources are primarily leveraged by resource modules to declare the primary resource of the main resource type deployed by the AVM module. - -Make sure to review all specifications covering resource properties and usage. - -{{< hint type=tip >}} -See examples in specifications [SFR1](/Azure-Verified-Modules/specs/shared/#id-sfr1---category-composition---preview-services) and [RMFR1](/Azure-Verified-Modules/specs/shared/#id-rmfr1---category-composition---single-resource-only). -{{< /hint >}} - ---- - -#### Modules - -Modules enable you to reuse code from a Bicep file in other Bicep files. As such, for resource modules 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 assignments in a key vault). Pattern modules, normally reuse resource modules combined together. - -Make sure to review all specifications covering module properties and usage. - -{{< hint type=tip >}} -See examples in specifications [BCPFR1](/Azure-Verified-Modules/specs/bicep/#id-bcpfr1---category-composition---cross-referencing-modules) for resource modules and [PMNFR2](//Azure-Verified-Modules/specs/shared/#id-pmnfr2---category-composition---use-resource-modules-to-build-a-pattern-module) for pattern modules. -{{< /hint >}} - ---- - -#### Outputs - -Make sure to review all specifications of `Category: Outputs` within both the [Shared](https://azure.github.io/Azure-Verified-Modules/specs/shared/) and the [Bicep specific](https://azure.github.io/Azure-Verified-Modules/specs/bicep/) pages. - -{{< hint type=tip >}} -See examples in specification [RMFR7](/Azure-Verified-Modules/specs/shared/#id-rmfr7---category-outputs---minimum-required-outputs). -{{< /hint >}} - ---- - -
    - -### Interfaces - -{{< hint type=note >}} - -This section is only relevant for contributions to resource modules. - -{{< /hint >}} - -To meet [RMFR4](/Azure-Verified-Modules/specs/shared/#id-rmfr4---category-composition---avm-consistent-feature--extension-resources-value-add) and [RMFR5](/Azure-Verified-Modules/specs/shared/#id-rmfr5---category-composition---avm-consistent-feature--extension-resources-value-add-interfacesschemas) AVM resource modules must leverage consistent interfaces for all the optional features/extension resources supported by the AVM module primary resource. - -Please refer to the [Shared Interfaces](/Azure-Verified-Modules/specs/shared/interfaces/) page. -If the primary resource of the AVM resource module you are developing supports any of the listed features/extension resources, please follow the corresponding provided Bicep schema to develop them. - -The next paragraph provides an example for the Role assignments extension. - -#### Example: RBAC Role Definition Name Mapping - -To meet [BCPFR2](/Azure-Verified-Modules/specs/bicep/#id-bcpfr2---category-composition---role-assignments-role-definition-mapping), [BCPNFR5](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr5---category-composition---role-assignments-role-definition-mapping-limits) and [BCPNFR6](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr6---category-composition---role-assignments-role-definition-mapping-compulsory-roles) you can use the below code sample in your AVM Modules to achieve this. - -{{< include file="/static/includes/sample.rbacMapping.bicep" language="bicep" options="linenos=false" >}} - -
    - -### Telemetry Enablement - -To meet [SFR3](/Azure-Verified-Modules/specs/shared/#id-sfr3---category-telemetry---deploymentusage-telemetry) & [SFR4](/Azure-Verified-Modules/specs/shared/#id-sfr4---category-telemetry---telemetry-enablement-flexibility) you can use the below code sample in your AVM Modules to achieve this. - -{{< include file="/static/includes/sample.telem.bicep" language="bicep" options="linenos=false" >}} - -
    - -### Versioning - -To meet [SNFR16](/Azure-Verified-Modules/specs/shared/#id-snfr16---category-documentation---examples) and depending on the changes you make, you may need to bump the version in the `version.json` file. - -{{< include file="/static/includes/sample.bicep.version.json" language="json" options="linenos=false" >}} - -The `version` value is in the form of `MAJOR.MINOR`. The PATCH version will be incremented by the CI automatically when publishing the module to the Public Bicep Registry once the corresponding pull request is merged. Therefore, contributions that would only require an update of the patch version, can keep the `version.json` file intact. - -For example, the `version` value should be: -- `0.1` for new modules, so that they can be released as `v0.1.0`. -- `1.0` once the module owner signs off the module is stable enough for it’s first Major release of `v1.0.0`. -- `0.x` for all feature updates between the first release `v0.1.0` and the first Major release of `v1.0.0`. - -
    diff --git a/docs/content/contributing/bicep/prerequisites/_index.md b/docs/content/contributing/bicep/prerequisites.md similarity index 100% rename from docs/content/contributing/bicep/prerequisites/_index.md rename to docs/content/contributing/bicep/prerequisites.md diff --git a/docs/content/contributing/process.md b/docs/content/contributing/process.md index 3f9d21dc6..007e13360 100644 --- a/docs/content/contributing/process.md +++ b/docs/content/contributing/process.md @@ -58,7 +58,7 @@ During the AVM Core Team Triage step, the following will be checked, completed a - Check they are a Microsoft FTE - Clarify they understand and accept what "module ownership" means by replying in a comment to the requestor/proposed owner: -{{< expand "Standard AVM Core Team Reply to Proposed Module Owners" "expand/collapse" >}} +{{< expand "βž• Standard AVM Core Team Reply to Proposed Module Owners" "expand/collapse" >}} ```text Hi @{requestor/proposed owner's GitHub alias}, diff --git a/docs/content/specs/bicep/_index.md b/docs/content/specs/bicep/_index.md index 150db7d2f..8efc74943 100644 --- a/docs/content/specs/bicep/_index.md +++ b/docs/content/specs/bicep/_index.md @@ -51,6 +51,64 @@ This section includes **Bicep specific, functional requirements (BCPFR)** for AV
    +#### ID: BCPFR3 - Category: Composition - Directory and File Structure + +Each Bicep AVM module **MUST** live within the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository in the `avm` directory and **MUST** have the following directories and files: + +- `tests/` - (for unit tests and additional E2E/integration if required - e.g. Pester etc.) + - `e2e/` - (all examples must deploy successfully - these will be used to automatically generate the examples in the README.md for the module) +- `modules/` - (for sub-modules only if used and NOT children of the primary resource. e.g. RBAC role assignments) +- `/...` - (Module files that live in the root of module directory) + - `main.bicep` (AVM Module main `.bicep` file and entry point/orchestration module) + - `main.json` (auto generated and what is published to the MCR via BRM) + - `version.json` (BRM requirement) + - `README.md` (auto generated AVM Module documentation) + +##### Example Directory and File Structure within `Azure/bicep-registry-modules` Repository + +```txt +/ Root of Azure/bicep-registry-modules +β”‚ +β”œβ”€β”€β”€avm +β”‚ β”œβ”€β”€β”€ptn +β”‚ β”‚ └───apptiervmss +β”‚ β”‚ β”‚ main.bicep +β”‚ β”‚ β”‚ main.json +β”‚ β”‚ β”‚ README.md +β”‚ β”‚ β”‚ version.json +β”‚ β”‚ β”‚ +β”‚ β”‚ β”œβ”€β”€β”€modules +β”‚ β”‚ └───tests +β”‚ β”‚ β”œβ”€β”€β”€unit (optional) +β”‚ β”‚ └───e2e +β”‚ β”‚ β”œβ”€β”€β”€defaults +β”‚ β”‚ β”œβ”€β”€β”€waf-aligned +β”‚ β”‚ └───max +β”‚ β”‚ +β”‚ └───res +β”‚ └───compute +β”‚ └───virtual-machine +β”‚ β”‚ main.bicep +β”‚ β”‚ main.json +β”‚ β”‚ README.md +β”‚ β”‚ version.json +β”‚ β”‚ +β”‚ β”œβ”€β”€β”€modules +β”‚ └───tests +β”‚ β”œβ”€β”€β”€unit (optional) +β”‚ └───e2e +β”‚ β”œβ”€β”€β”€defaults +β”‚ β”œβ”€β”€β”€waf-aligned +β”‚ └───max +β”œβ”€β”€β”€other repo dirs... +└───other repo files... +``` + +
    + +--- + +
    #### ID: BCPFR1 - Category: Composition - Cross-Referencing Modules @@ -72,16 +130,21 @@ Module owners **MAY** define common RBAC Role Definition names and IDs within a However, the **MUST** use only the official RBAC Role Definition name within the variable and nothing else. -See also: +To meet the requirements of [BCPFR2](/Azure-Verified-Modules/specs/bicep/#id-bcpfr2---category-composition---role-assignments-role-definition-mapping), [BCPNFR5](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr5---category-composition---role-assignments-role-definition-mapping-limits) and [BCPNFR6](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr6---category-composition---role-assignments-role-definition-mapping-compulsory-roles) you **MUST** use the below code sample in your AVM Modules to achieve this. -- [BCPNFR5](#id-bcpnfr5---category-composition---role-assignments-role-definition-mapping-limits) -- [BCPNFR6](#id-bcpnfr6---category-composition---role-assignments-role-definition-mapping-compulsory-roles) +{{< include file="/static/includes/sample.rbacMapping.bicep" language="bicep" options="linenos=false" >}} -{{< hint type=tip >}} +
    -Review the [Bicep Contribution Guide's 'RBAC Role Definition Name Mapping' section](/Azure-Verified-Modules/contributing/bicep/#rbac-role-definition-name-mapping) for a code sample to achieve this requirement. +--- -{{< /hint >}} +
    + +#### ID: BCPFR4 - Category: Composition - Telemetry Enablement + +To meet the requirements of [SFR3](/Azure-Verified-Modules/specs/shared/#id-sfr3---category-telemetry---deploymentusage-telemetry) & [SFR4](/Azure-Verified-Modules/specs/shared/#id-sfr4---category-telemetry---telemetry-enablement-flexibility) you **MUST** use the below code sample in your AVM Modules to achieve this. + +{{< include file="/static/includes/sample.telem.bicep" language="bicep" options="linenos=false" >}}
    @@ -306,6 +369,21 @@ For example: `camelCasingExample` (lowercase first word (entirely), with capital
    +#### ID: BCPNFR14 - Category: Composition - Versioning + +To meet [SNFR17](/Azure-Verified-Modules/specs/shared/#id-snfr17---category-release---semantic-versioning) and depending on the changes you make, you may need to bump the version in the `version.json` file. + +{{< include file="/static/includes/sample.bicep.version.json" language="json" options="linenos=false" >}} + +The `version` value is in the form of `MAJOR.MINOR`. The PATCH version will be incremented by the CI automatically when publishing the module to the Public Bicep Registry once the corresponding pull request is merged. Therefore, contributions that would only require an update of the patch version, can keep the `version.json` file intact. + +For example, the `version` value should be: +- `0.1` for new modules, so that they can be released as `v0.1.0`. +- `1.0` once the module owner signs off the module is stable enough for it’s first Major release of `v1.0.0`. +- `0.x` for all feature updates between the first release `v0.1.0` and the first Major release of `v1.0.0`. + +
    + #### ID: BCPNFR9 - Category: Testing - Expected Test Directories Module owners **MUST** create the `defaults`, `waf-aligned` folders within their `/tests/e2e/` directory in their module source code and `SHOULD` create a `max` folder also. Each folder will be used as described for various test cases. diff --git a/docs/content/specs/shared/_index.md b/docs/content/specs/shared/_index.md index c9f2f403d..b18f3f546 100644 --- a/docs/content/specs/shared/_index.md +++ b/docs/content/specs/shared/_index.md @@ -286,7 +286,7 @@ Module owners **MUST**: - They **MUST** use simple/native resource declarations/definitions in their respective IaC language - They **MUST NOT** use other modules to deploy these required resources -{{< expand "Terraform & Bicep Log Analytics Workspace examples using simple/native declarations for use in E2E tests" "expand/collapse">}} +{{< expand "βž• Terraform & Bicep Log Analytics Workspace examples using simple/native declarations for use in E2E tests" "expand/collapse">}} ###### Terraform @@ -513,7 +513,7 @@ This avoids AVM Module owners from having to maintain multiple major release ver GitHub repositories where modules are held **MUST** use the below labels and **SHOULD** not use any additional labels: -{{< expand "AVM Standard GitHub Labels" "expand/collapse" >}} +{{< expand "βž• AVM Standard GitHub Labels" "expand/collapse" >}} These labels are available in a CSV file from [here](/Azure-Verified-Modules/governance/avm-standard-github-labels.csv) @@ -523,7 +523,7 @@ These labels are available in a CSV file from [here](/Azure-Verified-Modules/gov To help apply these to a module GitHub repository you can use the below PowerShell script: -{{< expand "Set-AvmGitHubLabels.ps1" "expand/collapse" >}} +{{< expand "βž• Set-AvmGitHubLabels.ps1" "expand/collapse" >}} For most scenario this is the command you'll need to call the below PowerShell script with, replacing the value for `RepositoryName`: diff --git a/docs/content/specs/shared/interfaces.md b/docs/content/specs/shared/interfaces.md index 47e0ca2b4..12f57c28f 100644 --- a/docs/content/specs/shared/interfaces.md +++ b/docs/content/specs/shared/interfaces.md @@ -154,10 +154,10 @@ In Terraform, locks become part of the resource graph and suitable `depends_on` {{< hint type=note >}} Please note that you will need to ensure that the User-Defined Types for [Role Assignments](#role-assignments) & [Locks](#resource-locks) also are present in your module file for this interface to work correctly. {{< /hint >}} - {{< expand "Variant 1: A default service (`groupId`) can be assumed - e.g., for services that only have one private endpoint type)" "expand/collapse" >}} + {{< expand "βž• Variant 1: A default service (`groupId`) can be assumed - e.g., for services that only have one private endpoint type)" "expand/collapse" >}} {{< include file="/static/includes/interfaces/int.pe.udt.schema1.bicep" language="bicep" options="linenos=false" >}} {{< /expand >}} - {{< expand "Variant 2: A default service (`groupId`) cannot be assumed - e.g., for services that have more than one private endpoint type, like a Storage Account (blob, file, etc.)" "expand/collapse" >}} + {{< expand "βž• Variant 2: A default service (`groupId`) cannot be assumed - e.g., for services that have more than one private endpoint type, like a Storage Account (blob, file, etc.)" "expand/collapse" >}} {{< include file="/static/includes/interfaces/int.pe.udt.schema2.bicep" language="bicep" options="linenos=false" >}} {{< /expand >}} {{< /tab >}} From 4a725ec4b694c098105a9f8b8f07321593d8fbe8 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Sat, 30 Sep 2023 12:24:56 +0200 Subject: [PATCH 18/50] Fundametnal restructure of contr. flow --- .../bicep/bicep-contribution-flow.md | 54 +++++++++++-------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/docs/content/contributing/bicep/bicep-contribution-flow.md b/docs/content/contributing/bicep/bicep-contribution-flow.md index 910b5ddbb..9509e1f0d 100644 --- a/docs/content/contributing/bicep/bicep-contribution-flow.md +++ b/docs/content/contributing/bicep/bicep-contribution-flow.md @@ -13,6 +13,7 @@ TODO: Should contain Flow: External contributor - Navigating to repo - Fork +- Setup Azure environment - Setting up CI environment - Create IP (Module/Pattern) - Testing @@ -22,29 +23,29 @@ Flow: Module Owner ? --> -## Repositories +## General flow -Bicep AVM Modules (both Resource and Pattern modules) will be homed in the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and live within an `avm` directory that will be located at the root of the repository, as per [SNFR19](/Azure-Verified-Modules/specs/shared/#id-snfr19---category-publishing---registries-targeted). +To implement your contribution, you can use the following flow. Note that some steps can be ignored if you have done them before (e.g., fork the repository): -Module owners are expected to fork the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and work on a branch from within their fork, before then creating a Pull Request (PR) back into the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository's `main` branch. +{{< mermaid class="text-center" >}} +flowchart TD + startOwner["Start: Module Owner"] + startNonOwner["Start: General Contributor"] -## Setting up your CI environment + setupAzure["Setup your Azure test environment"] + fork["Fork the module source repository"] + setupCI["Configure the CI environment"] + implement["Implement your contribution"] + test["(Update &) Run test suite"] + pr["Create pull request to upstream"] -Contributing to the AVM Bicep modules requires several steps: + startOwner --> setupAzure + startNonOwner --> setupAzure + setupAzure --> fork --> setupCI --> implement --> test --> pr +{{< /mermaid >}} -- [Repositories](#repositories) -- [Setting up your CI environment](#setting-up-your-ci-environment) - - [1. Configure your Azure environment](#1-configure-your-azure-environment) - - [2. Fork the Public Bicep Registry repository](#2-fork-the-public-bicep-registry-repository) - - [3. Configure the CI environment](#3-configure-the-ci-environment) - - [3.1 Set up secrets](#31-set-up-secrets) - - [3.2 Enable actions](#32-enable-actions) - - [3.3 Set R/W Workflow permissions](#33-set-rw-workflow-permissions) -- [Testing](#testing) - - [Testing Diagnostic Settings](#testing-diagnostic-settings) -- [Publishing to the Registry](#publishing-to-the-registry) -### 1. Configure your Azure environment +## 1. Setup your Azure test environment AVM tests the deployments in an Azure subscription. To do so, it requires a service principal with access to it. @@ -63,12 +64,16 @@ In this first step, make sure you - Parent Management Group ID > **Note:** The Service Principal must be able to query its own details in the Azure Active Directory (AAD). To that end, ensure it has at least the (default) role 'Cloud application administrator'. +## 2. Fork the module source repository + +Bicep AVM Modules (both Resource and Pattern modules) will be homed in the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and live within an `avm` directory that will be located at the root of the repository, as per [SNFR19](/Azure-Verified-Modules/specs/shared/#id-snfr19---category-publishing---registries-targeted). + +Module owners are expected to fork the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and work on a branch from within their fork, before then creating a Pull Request (PR) back into the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository's `main` branch. -### 2. Fork the Public Bicep Registry repository +To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. -Next, you'll want to create your own fork of repository. To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. -### 3. Configure the CI environment +## 3. Configure the CI environment To configure the CI environment you have to perform several steps: - [3.1 Set up secrets](#31-set-up-secrets) @@ -150,7 +155,9 @@ To let the workflow engine publish their results into your repository, you have
    -## Testing +## 4. Implement your contribution + +## 5. (Update &) Run test suite {{< hint type=note >}} @@ -180,6 +187,10 @@ Also note there are a number of additional scripts and utilities available [here
    + +## 6 Create a Pull Request to the Public Bicep Registry + + \ No newline at end of file From bfe100b29099b5c9a7f38abe1e814bbfaff7491a Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Sat, 30 Sep 2023 13:21:38 +0200 Subject: [PATCH 19/50] Added references to helper scripts --- .../_index.md} | 39 +++++++++--------- .../generate-bicep-module-files.md | 40 +++++++++++++++++++ .../validate-bicep-module-locally.md | 34 ++++++++++++++++ docs/data/menu/main.yaml | 3 ++ 4 files changed, 97 insertions(+), 19 deletions(-) rename docs/content/contributing/bicep/{bicep-contribution-flow.md => bicep-contribution-flow/_index.md} (87%) create mode 100644 docs/content/contributing/bicep/bicep-contribution-flow/generate-bicep-module-files.md create mode 100644 docs/content/contributing/bicep/bicep-contribution-flow/validate-bicep-module-locally.md diff --git a/docs/content/contributing/bicep/bicep-contribution-flow.md b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md similarity index 87% rename from docs/content/contributing/bicep/bicep-contribution-flow.md rename to docs/content/contributing/bicep/bicep-contribution-flow/_index.md index 9509e1f0d..4506c8ded 100644 --- a/docs/content/contributing/bicep/bicep-contribution-flow.md +++ b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md @@ -7,22 +7,6 @@ geekdocAnchor: true {{< toc >}} - - ## General flow To implement your contribution, you can use the following flow. Note that some steps can be ignored if you have done them before (e.g., fork the repository): @@ -157,18 +141,33 @@ To let the workflow engine publish their results into your repository, you have ## 4. Implement your contribution -## 5. (Update &) Run test suite +TODO: Fill +TODO: Point out the `Set-AVM-Module` utility to be used for new modules as well as updates of existing ones -{{< hint type=note >}} +{{< hint type=tip >}} -The AVM core team is working to provide a CI environment used for testing the AVM Bicep modules in the Public Bicep Registry. Until the automation is ready, we kindly ask contributors to proceed with local and manual testing from their fork. +After any change to a module and before running tests, we highly recommend running the [Set-AVMModule](/Azure-Verified-Modules/contributing/bicep/bicep-contribution-flow/generate-bicep-module-files) utility to update all module files that are auto-generated (e.g., the `main.json` & `readme.md` files). {{< /hint >}} +## 5. (Update &) Run test suite + Before opening a Pull Request to the Bicep Public Registry, ensure your module is ready for publishing, by validating that it meets all the Testing Specifications as per [SNFR1](/Azure-Verified-Modules/specs/shared/#id-snfr1---category-testing---prescribed-tests), [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), [SNFR3](/Azure-Verified-Modules/specs/shared/#id-snfr3---category-testing---avm-unit-tests), [SNFR4](/Azure-Verified-Modules/specs/shared/#id-snfr4---category-testing---additional-unit-tests), [SNFR5](/Azure-Verified-Modules/specs/shared/#id-snfr5---category-testing---upgrade-tests), [SNFR6](/Azure-Verified-Modules/specs/shared/#id-snfr6---category-testing---static-analysislinting-tests), [SNFR7](/Azure-Verified-Modules/specs/shared/#id-snfr7---category-testing---idempotency-tests). For example, to meet [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), ensure the updated module is deployable against a testing Azure subscription and compliant with the intended configuration. +Depending on the type of contribution you implemented (for example, a new module feature) we would kindly ask you to also update the `e2e` test run by the pipeline. For a new parameter this could mean to either to either add its usage to an existing test file, or to add an entirely new test as per [BCPNFR9](/Azure-Verified-Modules/specs/bicep/#id-bcpnfr9---category-testing---expected-test-directories). + +Once the contribution is implemented and the changes are pushed to your forked repository, 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 forked AVM CI environment you configured before + +{{< hint type=tip >}} + +In case your contribution involves changes to a module, you can also optionally leverage the [Validate module locally](/Azure-Verified-Modules/contributing/bicep/bicep-contribution-flow/validate-bicep-module-locally) utility to validate the updated module from your local host before validating it through its pipeline. + +{{< /hint >}} + +TODO: Reference local test script + ### Testing Diagnostic Settings To test the numerous diagnostic settings targets (Log Analytics Workspace, Storage Account, Event Hub, etc.) the AVM core team have provided a dependencies `.bicep` file to help create all these pre-requisite targets that will be needed during test runs. @@ -190,6 +189,8 @@ Also note there are a number of additional scripts and utilities available [here ## 6 Create a Pull Request to the Public Bicep Registry +TODO: Add reference to add pipeline badge to prove correctness + setupAzure From 57196e29cbe02494285a6d5d008c4ba8e99e0978 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Sat, 30 Sep 2023 19:28:35 +0200 Subject: [PATCH 29/50] Updated flow --- .../bicep/bicep-contribution-flow/_index.md | 23 +++++++++++++++--- .../static/img/contribution/badgeDropdown.png | Bin 0 -> 18532 bytes .../static/img/contribution/pipelineBadge.png | Bin 0 -> 36617 bytes 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 docs/static/img/contribution/badgeDropdown.png create mode 100644 docs/static/img/contribution/pipelineBadge.png diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md index 9e7135f26..8b6bfc8f6 100644 --- a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md +++ b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md @@ -147,7 +147,10 @@ To let the workflow engine publish their results into your repository, you have ## 4. Implement your contribution -TODO: Fill +To implement your contribution, we kindly ask you to first review the [Module Specifications](/Azure-Verified-Modules/specs/) in general, and the [shared](/Azure-Verified-Modules/specs/shared/), [Bicep-specific](/Azure-Verified-Modules/specs/bicep/) specification and [composition guidelines](/Azure-Verified-Modules/contributing/bicep/composition/) in particular to make sure your contribution complies with the repository's design and principles. + +TODO: Add guidelines +TODO: Reference that a contributor may need to create the workflow? {{< hint type=tip >}} @@ -231,10 +234,24 @@ To test the numerous diagnostic settings targets (Log Analytics Workspace, Stora
    - ## 6 Create a Pull Request to the Public Bicep Registry -TODO: Add reference to add pipeline badge to prove correctness +Finally, once you are satisfied with your contribution and validated it, open a PR for the module owners or core team to review. Make sure you: + +- Provide a meaningful title in the following format: `[] `. For `[]` use one of the following, depending on which one is the primary improvement your PR intends to make: + - `[Modules]`: For improvements to the CARML library. + - `[Utilities]`: For improvements to the tools in the utilities. + - `[Fixes]`: For bug fixes when not specifically related to any of the above categories. +- Provide a meaningful description. +- Follow instructions you find in the PR template. +- If applicable (i.e., a module is created/updated), 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 + fork --> setupCI --> implement --> test --> pr {{< /mermaid >}} +
    ## 1. Setup your Azure test environment @@ -47,6 +48,8 @@ In this first step, make sure you - Subscription ID - Parent Management Group ID +
    + ## 2. Fork the module source repository Bicep AVM Modules (both Resource and Pattern modules) will be homed in the [`Azure/bicep-registry-modules`](https://github.com/Azure/bicep-registry-modules) repository and live within an `avm` directory that will be located at the root of the repository, as per [SNFR19](/Azure-Verified-Modules/specs/shared/#id-snfr19---category-publishing---registries-targeted). @@ -55,10 +58,11 @@ Module owners are expected to fork the [`Azure/bicep-registry-modules`](https:// To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azure/bicep-registry-modules) repository, select the `'Fork'` button to the top right of the UI, select where the fork should be created (i.e., the owning organization) and finally click 'Create fork'. +
    ## 3. Configure the CI environment -To configure the CI environment you have to perform several steps: +To configure the CI environment in your fork you have to perform several steps: - [3.1 Set up secrets](#31-set-up-secrets) - [3.2 Enable actions](#32-enable-actions) - [3.3 Set Read/Write Workflow permissions](#33-set-readwrite-workflow-permissions) @@ -161,6 +165,8 @@ After any change to a module and before running tests, we highly recommend runni {{< /hint >}} +
    + ## 5. Create/Update and run tests Before opening a Pull Request to the Bicep Public Registry, ensure your module is ready for publishing, by validating that it meets all the Testing Specifications as per [SNFR1](/Azure-Verified-Modules/specs/shared/#id-snfr1---category-testing---prescribed-tests), [SNFR2](/Azure-Verified-Modules/specs/shared/#id-snfr2---category-testing---e2e-testing), [SNFR3](/Azure-Verified-Modules/specs/shared/#id-snfr3---category-testing---avm-unit-tests), [SNFR4](/Azure-Verified-Modules/specs/shared/#id-snfr4---category-testing---additional-unit-tests), [SNFR5](/Azure-Verified-Modules/specs/shared/#id-snfr5---category-testing---upgrade-tests), [SNFR6](/Azure-Verified-Modules/specs/shared/#id-snfr6---category-testing---static-analysislinting-tests), [SNFR7](/Azure-Verified-Modules/specs/shared/#id-snfr7---category-testing---idempotency-tests). @@ -219,6 +225,7 @@ Dependency file (`dependencies.bicep`) guidelines: {{< /hint >}} +
    ### Reusable assets From 86c8d8deeccb10b65c223fe42f4360004b400a88 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Sun, 1 Oct 2023 13:00:45 +0200 Subject: [PATCH 37/50] Update to latest --- .../contributing/bicep/bicep-contribution-flow/_index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md index 38da2f055..5021f864d 100644 --- a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md +++ b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md @@ -13,9 +13,9 @@ To implement your contribution, you can use the following flow. Note that some s {{< mermaid class="text-center" >}} flowchart TD + startOwner["Start: Module Owner"] startNonOwner["Start: General Contributor"] - setupAzure["Setup your Azure test environment"] fork["Fork the module source repository"] setupCI["Configure the CI environment"] @@ -25,6 +25,7 @@ flowchart TD startOwner --> setupAzure startNonOwner --> setupAzure + setupAzure --> fork --> setupCI --> implement --> test --> pr {{< /mermaid >}} @@ -62,7 +63,7 @@ To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azur ## 3. Configure the CI environment -To configure the CI environment in your fork you have to perform several steps: +To configure the forked CI environment you have to perform several steps: - [3.1 Set up secrets](#31-set-up-secrets) - [3.2 Enable actions](#32-enable-actions) - [3.3 Set Read/Write Workflow permissions](#33-set-readwrite-workflow-permissions) From 660709542ae9e6e01db5b8bc1b0b73dc5ae6bf81 Mon Sep 17 00:00:00 2001 From: AlexanderSehr Date: Thu, 5 Oct 2023 23:31:50 +0200 Subject: [PATCH 38/50] Minor tweeks --- .../bicep/bicep-contribution-flow/_index.md | 62 ++++++------------- docs/data/menu/main.yaml | 4 +- 2 files changed, 22 insertions(+), 44 deletions(-) diff --git a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md index 5021f864d..4dd84564f 100644 --- a/docs/content/contributing/bicep/bicep-contribution-flow/_index.md +++ b/docs/content/contributing/bicep/bicep-contribution-flow/_index.md @@ -7,30 +7,6 @@ geekdocAnchor: true {{< toc >}} -## General flow - -To implement your contribution, you can use the following flow. Note that some steps can be ignored if you have done them before (e.g., fork the repository): - -{{< mermaid class="text-center" >}} -flowchart TD - - startOwner["Start: Module Owner"] - startNonOwner["Start: General Contributor"] - setupAzure["Setup your Azure test environment"] - fork["Fork the module source repository"] - setupCI["Configure the CI environment"] - implement["Implement your contribution"] - test["Create/Update & run test suite"] - pr["Create pull request to upstream"] - - startOwner --> setupAzure - startNonOwner --> setupAzure - - setupAzure --> fork --> setupCI --> implement --> test --> pr -{{< /mermaid >}} - -
    - ## 1. Setup your Azure test environment AVM tests the deployments in an Azure subscription. To do so, it requires a service principal with access to it. @@ -61,14 +37,14 @@ To do so, simply navigate to the [Public Bicep Registry](https://github.com/Azur
    -## 3. Configure the CI environment +## 3. Configure your CI environment To configure the forked CI environment you have to perform several steps: - [3.1 Set up secrets](#31-set-up-secrets) - [3.2 Enable actions](#32-enable-actions) - [3.3 Set Read/Write Workflow permissions](#33-set-readwrite-workflow-permissions) -### 3.1 Set up secrets +### 3.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 up the following repository secrets: @@ -82,8 +58,7 @@ To use the environment's pipelines you should use the information you gathered d

    -

    -How to: Add a repository secret to GitHub +{{< expand "βž• How to: Add a repository secret to GitHub" "expand/collapse" >}} 1. Navigate to the repository's `Settings`. @@ -97,7 +72,7 @@ To use the environment's pipelines you should use the information you gathered d Add secret -
    +{{< /expand >}}

    @@ -123,7 +98,7 @@ Each pipeline in AVM deploying resources uses a logic that automatically replace {{< /hint >}} -### 3.2 Enable actions +### 3.2. Enable actions Finally, 'GitHub Actions' are disabled by default and hence, must be enabled first. @@ -135,7 +110,7 @@ To do so, perform the following steps: Enable Actions -### 3.3 Set Read/Write Workflow permissions +### 3.3. Set Read/Write Workflow permissions To let the workflow engine publish their results into your repository, you have to enable the read / write access for the GitHub actions. @@ -151,7 +126,7 @@ To let the workflow engine publish their results into your repository, you have ## 4. Implement your contribution -To implement your contribution, we kindly ask you to first review the [Module Specifications](/Azure-Verified-Modules/specs/) in general, and the [shared](/Azure-Verified-Modules/specs/shared/), [Bicep-specific](/Azure-Verified-Modules/specs/bicep/) specifications and [composition guidelines](/Azure-Verified-Modules/contributing/bicep/composition/) in particular to make sure your contribution complies with the repository's design and principles. +To implement your contribution, we kindly ask you to first review the [shared](/Azure-Verified-Modules/specs/shared/) & [Bicep-specific](/Azure-Verified-Modules/specs/bicep/) specifications and [composition guidelines](/Azure-Verified-Modules/contributing/bicep/composition/) in particular to make sure your contribution complies with the repository's design and principles. If you're working on a new module, we'd also ask you to create its corresponding workflow file. Each module has its own file, but only differs in very few details, such as its triggers and pipeline variables. As a result, you can either copy & update any other module workflow file (starting with `'avm.[res|ptn].'`) or leverage the following template: @@ -160,6 +135,7 @@ If you're working on a new module, we'd also ask you to create its corresponding {{< include file="/static/includes/avm.[res-res].template.pattern.yml" language="yaml" options="linenos=false" >}} {{< /expand >}} + {{< hint type=tip >}} After any change to a module and before running tests, we highly recommend running the [Set-AVMModule](/Azure-Verified-Modules/contributing/bicep/bicep-contribution-flow/generate-bicep-module-files) utility to update all module files that are auto-generated (e.g., the `main.json` & `readme.md` files). @@ -248,23 +224,23 @@ To test the numerous diagnostic settings targets (Log Analytics Workspace, Stora
    -## 6 Create a Pull Request to the Public Bicep Registry +## 6. Create a Pull Request to the Public Bicep Registry Finally, once you are satisfied with your contribution and validated it, open a PR for the module owners or core team to review. Make sure you: -- Provide a meaningful title in the following format: `[] `. For `[]` use one of the following, depending on which one is the primary improvement your PR intends to make: - - `[Modules]`: For improvements to the CARML library. - - `[Utilities]`: For improvements to the tools in the utilities. - - `[Fixes]`: For bug fixes when not specifically related to any of the above categories. -- Provide a meaningful description. -- Follow instructions you find in the PR template. -- If applicable (i.e., a module is created/updated), 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. +1. Provide a meaningful title in the following format: `[] `. For `[]` use one of the following, depending on which one is the primary improvement your PR intends to make: + - `[Modules]`: For improvements to the CARML library. + - `[Utilities]`: For improvements to the tools in the utilities. + - `[Fixes]`: For bug fixes when not specifically related to any of the above categories. +1. Provide a meaningful description. +1. Follow instructions you find in the PR template. +1. If applicable (i.e., a module is created/updated), 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 + Badge dropdown - In the opening pop-up, you first need to select your branch and then click on the `Copy status badge Markdown` + In the opening pop-up, you first need to select your branch and then click on the `Copy status badge Markdown` - Status Badge + Status Badge