From fe4cd10c5c6f4f53482fd1787b8a23ef4d4b51c5 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 8 May 2022 13:41:21 +0200 Subject: [PATCH 1/6] Update to latest --- docs/wiki/Solution creation.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/wiki/Solution creation.md b/docs/wiki/Solution creation.md index d4262a41b5..a5e55dfad0 100644 --- a/docs/wiki/Solution creation.md +++ b/docs/wiki/Solution creation.md @@ -2,10 +2,13 @@ This section shows you how you can orchestrate a deployment using multiple resource modules. +> **Note:** For the sake of any of the below examples we assume you leverage Bicep as your primary DSL. + --- ### _Navigation_ +- [Workloads leveraging the library](#workloads-leveraging-the-library) - [Orchestration overview](#orchestration-overview) - [Template orchestration](#template-orchestration) - [Example with local file references](#example-with-local-file-references) @@ -20,7 +23,17 @@ This section shows you how you can orchestrate a deployment using multiple resou --- -> **Note:** For the sake of the below examples we assume you leverage Bicep as your primary DSL. +# Workloads leveraging the library + +There are several open-source repositories that leverage the CARML library today. Alongside the examples we provide you with below, the referenced repositories are a good reference on how you can leverage CARML for larger solutions. + +| Repository | Link | Description | +| - | - | - | +| AVD Accelerator | [link](https://github.com/Azure/avdaccelerator) | AVD Accelerator deployment automation to simplify the setup of AVD (Azure Virtual Desktop) | +| AKS Baseline Automation | [link](https://github.com/Azure/aks-baseline-automation) | Repository for the AKS Landing Zone Accelerator program's Automation reference implementation | +| DevOps Self-Hosted Image Builder | [link](https://github.com/Azure/DevOps-Self-Hosted/tree/main/constructs/azureImageBuilder) | Create & maintain images with a pipeline using the Azure Image Builder service | +| DevOps Self-Hosted Scale Set | [link](https://github.com/Azure/DevOps-Self-Hosted/tree/main/constructs/azureDevOpsScaleSet) | Deploy & maintain Azure DevOps Self-Hosted agent pools with a pipeline using Virtual Machine Scale Sets | + # Orchestration overview From 89cb9dc717c8829c96bb10088d88fdb32fd1fed9 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 8 May 2022 14:45:00 +0200 Subject: [PATCH 2/6] Update to latest --- docs/wiki/Solution creation.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/wiki/Solution creation.md b/docs/wiki/Solution creation.md index a5e55dfad0..99257ce4ba 100644 --- a/docs/wiki/Solution creation.md +++ b/docs/wiki/Solution creation.md @@ -31,9 +31,7 @@ There are several open-source repositories that leverage the CARML library today | - | - | - | | AVD Accelerator | [link](https://github.com/Azure/avdaccelerator) | AVD Accelerator deployment automation to simplify the setup of AVD (Azure Virtual Desktop) | | AKS Baseline Automation | [link](https://github.com/Azure/aks-baseline-automation) | Repository for the AKS Landing Zone Accelerator program's Automation reference implementation | -| DevOps Self-Hosted Image Builder | [link](https://github.com/Azure/DevOps-Self-Hosted/tree/main/constructs/azureImageBuilder) | Create & maintain images with a pipeline using the Azure Image Builder service | -| DevOps Self-Hosted Scale Set | [link](https://github.com/Azure/DevOps-Self-Hosted/tree/main/constructs/azureDevOpsScaleSet) | Deploy & maintain Azure DevOps Self-Hosted agent pools with a pipeline using Virtual Machine Scale Sets | - +| DevOps Self-Hosted | [link](https://github.com/Azure/DevOps-Self-Hosted) | - Create & maintain images with a pipeline using the Azure Image Builder service

- Deploy & maintain Azure DevOps Self-Hosted agent pools with a pipeline using Virtual Machine Scale Set| # Orchestration overview From 9916769816a41a4a9e892cffe78ab25c37d2165f Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 8 May 2022 14:47:31 +0200 Subject: [PATCH 3/6] Update to latest --- docs/wiki/Solution creation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/wiki/Solution creation.md b/docs/wiki/Solution creation.md index 99257ce4ba..db6380a244 100644 --- a/docs/wiki/Solution creation.md +++ b/docs/wiki/Solution creation.md @@ -8,7 +8,7 @@ This section shows you how you can orchestrate a deployment using multiple resou ### _Navigation_ -- [Workloads leveraging the library](#workloads-leveraging-the-library) +- [Upstream workloads](#upstream-workloads) - [Orchestration overview](#orchestration-overview) - [Template orchestration](#template-orchestration) - [Example with local file references](#example-with-local-file-references) @@ -23,7 +23,7 @@ This section shows you how you can orchestrate a deployment using multiple resou --- -# Workloads leveraging the library +# Upstream workloads There are several open-source repositories that leverage the CARML library today. Alongside the examples we provide you with below, the referenced repositories are a good reference on how you can leverage CARML for larger solutions. From 92edaef8a9362484f9d0adfe1d063d52a7f610f0 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 8 May 2022 15:31:38 +0200 Subject: [PATCH 4/6] Refactored solution page --- docs/wiki/Solution creation.md | 37 ++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/docs/wiki/Solution creation.md b/docs/wiki/Solution creation.md index db6380a244..dd53dbba65 100644 --- a/docs/wiki/Solution creation.md +++ b/docs/wiki/Solution creation.md @@ -11,15 +11,9 @@ This section shows you how you can orchestrate a deployment using multiple resou - [Upstream workloads](#upstream-workloads) - [Orchestration overview](#orchestration-overview) - [Template orchestration](#template-orchestration) - - [Example with local file references](#example-with-local-file-references) - - [Example with a Private Bicep Registry](#example-with-a-Private-Bicep-Registry) - - [Example with template-specs](#example-with-template-specs) + - [How to start](#how-to-start) + - [Examples](#examples) - [Pipeline orchestration](#pipeline-orchestration) - - [\[GitHub\] Sample solution for multi-repository approach](#github-sample-solution-for-multi-repository-approach) - - [Summary](#summary) - - [Repo structure](#repo-structure) - - [YAML pipeline](#yaml-pipeline) - - [Notes](#notes) --- @@ -54,7 +48,12 @@ With this approach, modules need to be stored in an available location, where th In an enterprise environment, the recommended approach is to store these templates in a private environment, only accessible by enterprise resources. Thus, only trusted authorities can have access to these files. -## ***Example with local file references*** +## How to start + +## Examples + +

+Referencing local files The following example shows how you could orchestrate a deployment of multiple resources using local module references. In this example we will deploy a resource group with a contained NSG and use the same in a subsequent VNET deployment. @@ -140,7 +139,10 @@ module vnet '../arm/Microsoft.Network/virtualNetworks/deploy.bicep' = { } ``` -## ***Example with a Private Bicep Registry*** +
+ +
+Referencing a Private Bicep Registry The following example shows how you could orchestrate a deployment of multiple resources using modules from a private Bicep Registry. In this example we will deploy a resource group with a contained NSG and use the same in a subsequent VNET deployment. @@ -243,7 +245,10 @@ The example assumes you are using a [`bicepconfig.json`](https://docs.microsoft. } ``` -## ***Example with template-specs*** +
+ +
+Referencing Template-Specs The following example shows how you could orchestrate a deployment of multiple resources using template specs. In this example we will deploy a NSG and use the same in a subsequent VNET deployment. @@ -346,11 +351,15 @@ The example assumes you are using a [`bicepconfig.json`](https://docs.microsoft. } ``` +
+

+ # Pipeline-orchestration The modules provided by this repo can be orchestrated to create more complex infrastructures and as such reusable solutions or products. This approach leverages the main 'ResourceModules' repository alongside its contained modules & pipeline templates to deploy resources. Each pipeline job deploys one instance of a resources and their order is controlled by specifying dependencies in the pipeline itself. -## ***[GitHub] Sample solution for multi-repository approach*** +

+[GitHub] Sample solution for multi-repository approach ### Summary @@ -371,7 +380,7 @@ The modules provided by this repo can be orchestrated to create more complex inf ### YAML pipeline -``` YAML +```YAML name: 'Multi-Repo solution deployment' on: @@ -448,3 +457,5 @@ jobs: > 1. 'Azure/ResourceModules' repo has been checked out at the root location intentionally because GitHub Actions expect the underlying utility scripts and variables at a specific location > 1. 'contoso/MultiRepoTest' repo has been checked out in a nested folder called as "MultiRepoTestParentFolder" to distinguish it from the folders from the other repo in the agent but can be downloaded at the root location too if desired + +
From 926257f9e32c1cc02456fe49a25faeeb60e4fcaa Mon Sep 17 00:00:00 2001 From: MrMCake Date: Sun, 8 May 2022 16:43:17 +0200 Subject: [PATCH 5/6] Update to latest --- docs/wiki/Solution creation.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/wiki/Solution creation.md b/docs/wiki/Solution creation.md index dd53dbba65..365ca8c9d2 100644 --- a/docs/wiki/Solution creation.md +++ b/docs/wiki/Solution creation.md @@ -50,6 +50,17 @@ In an enterprise environment, the recommended approach is to store these templat ## How to start +Once you start building a solution using this library you may wonder how best to start. Following you can find some points that can accelerate your experience: + +- Use the [VS-Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep) for Bicep to enable DSL-native features such as auto-complete. Metadata implemented in our modules are automatically loaded through the extension. +- Use the readme + - If you don't know how to use an object/array parameter you can check if the module's ReadMe file specifies any 'Parameter Usage' block for set parameter ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#parameter-usage-tags)) - or - check the module's `Deployment Examples` ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). + - In general, take note of the `Deployment Examples` specified in each module's ReadMe file as they provide you with rich & tested examples of how set module can be deployed ([example](https://github.com/Azure/ResourceModules/blob/main/arm/Microsoft.AnalysisServices/servers/readme.md#deployment-examples)). An easy way to get started is to copy one of the examples and then adjust to it your needs. +- Note the outputs that are returned by each module. + - If an output you need isn't available, you have 2 choices: + 1. Add the missing output to the module + 1. Reference the deployed resource using the `existing` keyword (Note: You cannot reference the same resource as both a new deployment & `existing`. To make this work, you have to move the `existing` reference into it's own `.bicep` file). + ## Examples
From 8b811348d101f4f880878bf3fe2c268765df0813 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Sun, 29 May 2022 23:32:54 +0200 Subject: [PATCH 6/6] Update docs/wiki/Solution creation.md Co-authored-by: Marius Storhaug --- docs/wiki/Solution creation.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/wiki/Solution creation.md b/docs/wiki/Solution creation.md index 365ca8c9d2..9c6e24e385 100644 --- a/docs/wiki/Solution creation.md +++ b/docs/wiki/Solution creation.md @@ -21,11 +21,11 @@ This section shows you how you can orchestrate a deployment using multiple resou There are several open-source repositories that leverage the CARML library today. Alongside the examples we provide you with below, the referenced repositories are a good reference on how you can leverage CARML for larger solutions. -| Repository | Link | Description | -| - | - | - | -| AVD Accelerator | [link](https://github.com/Azure/avdaccelerator) | AVD Accelerator deployment automation to simplify the setup of AVD (Azure Virtual Desktop) | -| AKS Baseline Automation | [link](https://github.com/Azure/aks-baseline-automation) | Repository for the AKS Landing Zone Accelerator program's Automation reference implementation | -| DevOps Self-Hosted | [link](https://github.com/Azure/DevOps-Self-Hosted) | - Create & maintain images with a pipeline using the Azure Image Builder service

- Deploy & maintain Azure DevOps Self-Hosted agent pools with a pipeline using Virtual Machine Scale Set| +| Repository | Description | +| - | - | +| [AVD Accelerator](https://github.com/Azure/avdaccelerator) | AVD Accelerator deployment automation to simplify the setup of AVD (Azure Virtual Desktop) | +| [AKS Baseline Automation](https://github.com/Azure/aks-baseline-automation) | Repository for the AKS Landing Zone Accelerator program's Automation reference implementation | +| [DevOps Self-Hosted](https://github.com/Azure/DevOps-Self-Hosted) | - Create & maintain images with a pipeline using the Azure Image Builder service

- Deploy & maintain Azure DevOps Self-Hosted agent pools with a pipeline using Virtual Machine Scale Set| # Orchestration overview