From cb72e2021875c105d7ab9e2a20a23faf88a2af64 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Thu, 23 Dec 2021 19:57:09 +0100 Subject: [PATCH] Added further utilities readme files to Wiki (#840) * Update to latest * Update to latest * Update to latest * Update to latest * Update to latest * Update to latest --- README.md | 2 +- docs/wiki/Home.md | 5 +- docs/wiki/ModulesDesign.md | 7 +- docs/wiki/Utilities.md | 5 +- docs/wiki/UtilitiesConversionScript.md | 52 ---------- docs/wiki/UtilitiesConvertToARMTemplate.md | 34 +++++++ .../wiki/UtilitiesGetFormattedRBACRoleList.md | 94 ++++++++++++++++++ .../UtilitiesRegisterAzureDevOpsPipeline.md | 43 ++++++++ docs/wiki/UtilitiesSetModuleReadMe.md | 52 ++++++++++ docs/wiki/media/rbacRoles.png | Bin 0 -> 106325 bytes ...oles.ps1 => Get-FormattedRBACRoleList.ps1} | 0 .../tools/Register-AzureDevOpsPipeline.ps1 | 30 +++++- .../tools/Set-GitHubReadMeModuleTable.ps1 | 3 - utilities/tools/Set-ModuleReadMe.ps1 | 16 +++ utilities/tools/Test-ModuleLocally.ps1 | 2 +- 15 files changed, 280 insertions(+), 65 deletions(-) delete mode 100644 docs/wiki/UtilitiesConversionScript.md create mode 100644 docs/wiki/UtilitiesConvertToARMTemplate.md create mode 100644 docs/wiki/UtilitiesGetFormattedRBACRoleList.md create mode 100644 docs/wiki/UtilitiesRegisterAzureDevOpsPipeline.md create mode 100644 docs/wiki/UtilitiesSetModuleReadMe.md create mode 100644 docs/wiki/media/rbacRoles.png rename utilities/tools/{Get-FormattedRBACRoles.ps1 => Get-FormattedRBACRoleList.ps1} (100%) diff --git a/README.md b/README.md index 6b48f465e0..84e67ea1a7 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ This repository includes a collection of advanced and curated Modules consisting | Name | Status | Docs | | - | - | - | -| [ConvertTo-ARMTemplate](https://github.com/Azure/ResourceModules/blob/main/utilities/tools/ConvertTo-ARMTemplate.ps1) | [![.Platform: Test - ConvertTo-ARMTemplate.ps1](https://github.com/Azure/ResourceModules/actions/workflows/platform.convertToArmTemplate.tests.yml/badge.svg?branch=main)](https://github.com/Azure/ResourceModules/actions/workflows/platform.convertToArmTemplate.tests.yml) | [link](https://github.com/Azure/ResourceModules/wiki/UtilitiesConversionScript) | +| [ConvertTo-ARMTemplate](https://github.com/Azure/ResourceModules/blob/main/utilities/tools/ConvertTo-ARMTemplate.ps1) | [![.Platform: Test - ConvertTo-ARMTemplate.ps1](https://github.com/Azure/ResourceModules/actions/workflows/platform.convertToArmTemplate.tests.yml/badge.svg?branch=main)](https://github.com/Azure/ResourceModules/actions/workflows/platform.convertToArmTemplate.tests.yml) | [link](https://github.com/Azure/ResourceModules/wiki/UtilitiesConvertToARMTemplate) | ## Contributing diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index 8735158c99..ee2190bf8d 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -21,7 +21,10 @@ If you're unfamiliar with Infrastructure as Code, or wonder how you can use the - [Design](./TestingDesign) - [Usage](./TestingUsage) - [Utilities](./Utilities) - - [Bicep to ARM conversion script](./UtilitiesConversionScript) + - [Bicep to ARM conversion script](./UtilitiesConvertToARMTemplate) + - [Register Azure DevOps pipelines script](./UtilitiesRegisterAzureDevOpsPipeline) + - [Set Module ReadMe script](./UtilitiesSetModuleReadMe) + - [Get formatted RBAC roles script](./UtilitiesGetFormattedRBACRoleList) - [Pipelines](./Pipelines) - [Design](./PipelinesDesign) - [Parameter File Tokens](./ParameterFileTokens) diff --git a/docs/wiki/ModulesDesign.md b/docs/wiki/ModulesDesign.md index 865c006da3..5b9875b05e 100644 --- a/docs/wiki/ModulesDesign.md +++ b/docs/wiki/ModulesDesign.md @@ -76,7 +76,7 @@ Microsoft.Sql └─ databases [child-module/resource] ``` -In this folder we recommend to place the child-resource-template alongside a ReadMe (that can be generated via the `.github\workflows\scripts\Set-ModuleReadMe.ps1` script) and optionally further nest additional folders for it's child-resources. +In this folder we recommend to place the child-resource-template alongside a ReadMe (that can be generated via the [Set-ModuleReadMe](./UtilitiesSetModuleReadMe) script) and optionally further nest additional folders for it's child-resources. The parent template should reference all it's direct child-templates to allow for an end-to-end deployment experience while allowing any user to also reference 'just' the child-resource itself. In the case of the SQL-server example the server template would reference the database module and encapsulate it it in a loop to allow for the deployment of n-amount of databases. For example @@ -180,7 +180,7 @@ module _rbac '.bicep/nested_rbac.bicep' = [for (roleAssignment, in Here you specify the platform roles available for the main resource. The `builtInRoleNames` variable contains the list of applicable roles for the specific resource to which the nested_rbac.bicep module applies. ->**Note**: You can find a helper script `Get-FormattedRBACRoles.ps1` in the `utilities\tools` folder of the repository. You can use this script to extract a formatted list of RBAC roles used in the CARML modules based on the RBAC lists in Azure. +>**Note**: You use the helper script [Get-FormattedRBACRoles.ps1](./UtilitiesGetFormattedRBACRoleList) to extract a formatted list of RBAC roles used in the CARML modules based on the RBAC lists in Azure. The element requires you to provide both the `principalIds` & `roleDefinitionOrIdName` to assign to the principal IDs. Also, the `resourceId` is target resource's resource ID that allows us to reference it as an `existing` resource. Note, the implementation of the `split` in the resource reference becomes longer the deeper you go in the child-resource hierarchy. @@ -194,7 +194,6 @@ var builtInRoleNames = { 'Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c') 'Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7') // - // You can find a helper script `Get-FormattedRBACRoles.ps1` in the `tools` folder of the repository to fetch the roles. } @@ -524,7 +523,7 @@ Its primary components are in order: - A **Template references** section listing relevant resources [ARM template reference](https://docs.microsoft.com/en-us/azure/templates). Note the following recommendations -- Use our module generation script `Set-ModuleReadMe` that will do most of the work for you. Currently you can find it at 'utilities\tools\Set-ModuleReadMe.ps1'. Just load the file and invoke the function like this `Set-ModuleReadMe -TemplateFilePath '/deploy.bicep'` +- Use our module ReadMe generation script [Set-ModuleReadMe](./UtilitiesSetModuleReadMe) that will do most of the work for you. - It is not recommended to describe how to use child resources in the parent readme file (for example 'How to define a [container] entry for the [storage account]'). Instead it is recommended to reference the child resource's ReadMe instead (for example 'container/readme.md'). # Parameter files diff --git a/docs/wiki/Utilities.md b/docs/wiki/Utilities.md index 7e18eaa35a..004e6c4d75 100644 --- a/docs/wiki/Utilities.md +++ b/docs/wiki/Utilities.md @@ -6,6 +6,9 @@ This section and its sub-sections describe tools and utilities provided in this ### _Navigation_ -- [Bicep to ARM conversion script](./UtilitiesConversionScript) +- [Bicep to ARM conversion script](./UtilitiesConvertToARMTemplate) +- [Register Azure DevOps pipelines script](./UtilitiesRegisterAzureDevOpsPipeline) +- [Set Module ReadMe script](./UtilitiesSetModuleReadMe) +- [Get formatted RBAC roles script](./UtilitiesGetFormattedRBACRoleList) --- diff --git a/docs/wiki/UtilitiesConversionScript.md b/docs/wiki/UtilitiesConversionScript.md deleted file mode 100644 index 215b1bb191..0000000000 --- a/docs/wiki/UtilitiesConversionScript.md +++ /dev/null @@ -1,52 +0,0 @@ -# Bicep to ARM conversion script - -At the time of writing bicep is still in a beta phase. For this reason, some people may want to wait for bicep's _General Availability_ and prefer to use ARM Templates for the time being. -For these scenarios, the CARML library provides a script that uses the Bicep Toolkit translator/compiler to support the conversion of CARML Bicep modules to ARM templates. -This page documents the conversion utility and how to use it. - ---- - -### _Navigation_ - -- [Location](#location) -- [What it does](#what-it-does) -- [How to use it](#how-to-use-it) - - [Examples](#examples) - ---- -# Location - -`You can find the script under /utilities/tools/ConvertTo-ARMTemplate.ps1` - -# What it does - -The script finds all 'deploy.bicep' files and tries to convert them to json-based ARM templates -by using the following steps. -1. Remove existing deploy.json files -1. Convert bicep files to json -1. Remove bicep metadata from json -1. Remove bicep files and folders -1. Update pipeline files - Replace .bicep with .json in pipeline files -# How to use it - -The script can be called with the following parameters: - -| name | description | -|-|-| -| -Path | The path to the root of the repo. | -| -ConvertChildren | Convert child resource modules to bicep. | -| -SkipMetadataCleanup | Skip Cleanup of bicep metadata from json files | -| -SkipBicepCleanUp | Skip removal of bicep files and folders | -| -SkipPipelineUpdate | Skip replacing .bicep with .json in pipeline files | - -## Examples - -Converts top level bicep modules to json based ARM template, cleaning up all bicep files and folders and updating the workflow files to use the json files. -```powershell -. .\utilities\tools\ConvertTo-ARMTemplate.ps1 -``` - -Only converts top level bicep modules to json based ARM template, keeping metadata in json, keeping all bicep files and folders, and not updating workflows. -```powershell -. .\utilities\tools\ConvertTo-ARMTemplate.ps1 -ConvertChildren -SkipMetadataCleanup -SkipBicepCleanUp -SkipWorkflowUpdate -``` diff --git a/docs/wiki/UtilitiesConvertToARMTemplate.md b/docs/wiki/UtilitiesConvertToARMTemplate.md new file mode 100644 index 0000000000..211f67286d --- /dev/null +++ b/docs/wiki/UtilitiesConvertToARMTemplate.md @@ -0,0 +1,34 @@ +# Bicep to ARM conversion script + +At the time of writing bicep is still in a beta phase. For this reason, some people may want to wait for bicep's _General Availability_ and prefer to use ARM Templates for the time being. +For these scenarios, the CARML library provides a script that uses the Bicep Toolkit translator/compiler to support the conversion of CARML Bicep modules to ARM templates. +This page documents the conversion utility and how to use it. + +--- + +### _Navigation_ + +- [Location](#location) +- [How it works](#what-it-does) +- [How to use it](#how-to-use-it) + - [Examples](#examples) + +--- +# Location + +You can find the script under `/utilities/tools/ConvertTo-ARMTemplate.ps1` + +# How it works + +The script finds all 'deploy.bicep' files and tries to convert them to json-based ARM templates +by using the following steps. +1. Remove existing deploy.json files +1. Convert bicep files to json +1. Remove bicep metadata from json +1. Remove bicep files and folders +1. Update pipeline files - Replace .bicep with .json in pipeline files + +# How to use it + +For details on how to use the function please refer to the script's local documentation. +> **Note:** The script must be loaded before the function can be invoked diff --git a/docs/wiki/UtilitiesGetFormattedRBACRoleList.md b/docs/wiki/UtilitiesGetFormattedRBACRoleList.md new file mode 100644 index 0000000000..d1875117d0 --- /dev/null +++ b/docs/wiki/UtilitiesGetFormattedRBACRoleList.md @@ -0,0 +1,94 @@ +# Get formatted RBAC roles Script + +Use this script to format a given raw 'Roles' table from Azure to the format required by either bicep or ARM in any RBAC deployment. + +--- + +### _Navigation_ + +- [Location](#location) +- [How it works](#what-it-does) +- [How to use it](#how-to-use-it) + - [Examples](#examples) + +--- +# Location + +You can find the script under `/utilities/tools/Get-FormattedRBACRoles.ps1` + +# How it works + +1. From the provided raw and plain roles list, create a list of only the contained role names +1. Fetch all available roles from Azure +1. Go through all provided role names, match them with those from Azure to get the matching RoleDefinitionId and format a string like `'': subscriptionResourceId('Microsoft.Authorization/roleDefinitions','')` for each match +1. Print the result to the terminal + +# How to use it + +The script does not accept any custom parameter per se, but expects you to replace the placeholder in the `rawRoles` variable inside the script + +```PowerShell +$rawRoles = @' + +'@ +``` + +To get the list of roles in the expected format: +1. Navigate to Azure +1. Deploy one instance of the service you want to fetch the roles for +1. Navigate to the `Access Control (IAM)` blade in the resource +1. Open the `Roles` tab +1. Set the `Type` in the dropdown to `BuiltInRole` + + Complete deployment flow filtered + +1. Select and copy the entire table as is to the PowerShell variable. + + The result should look similar to + + ```PowerShell + $rawRoles = @' + Owner + Grants full access to manage all resources, including the ability to assign roles in Azure RBAC. + builtInRole + General + View + Contributor + Grants full access to manage all resources, but does not allow you to assign roles in Azure RBAC, manage assignments in Azure Blueprints, or share image galleries. + BuiltInRole + General + View + Reader + View all resources, but does not allow you to make any changes. + BuiltInRole + General + View + '@ + ``` +1. Execute the script. The output for the above example would be + + ```yml + VERBOSE: Bicep + VERBOSE: ----- + 'Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions','8e3af657-a8ff-443c-a75c-2fe8c4bcb635') + 'Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions','b24988ac-6180-42a0-ab88-20f7382dd24c') + 'Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions','acdd72a7-3385-48ef-bd42-f606fba81ae7') + VERBOSE: + VERBOSE: ARM + VERBOSE: --- + "Owner": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions','8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]", + "Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions','b24988ac-6180-42a0-ab88-20f7382dd24c')]", + "Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions','acdd72a7-3385-48ef-bd42-f606fba81ae7')]", + ``` +1. Copy the output into the RBAC file into the `buildInRoleNames` variable. Again, for the same example using bicep this would be: + + ```bicep + var builtInRoleNames = { + 'Owner': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635') + 'Contributor': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c') + 'Reader': subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7') + } + ``` + +For further details on how to use the function please refer to the script's local documentation. +> **Note:** The script must be loaded before the function can be invoked diff --git a/docs/wiki/UtilitiesRegisterAzureDevOpsPipeline.md b/docs/wiki/UtilitiesRegisterAzureDevOpsPipeline.md new file mode 100644 index 0000000000..56b3be9820 --- /dev/null +++ b/docs/wiki/UtilitiesRegisterAzureDevOpsPipeline.md @@ -0,0 +1,43 @@ +# Register Azure DevOps Pipelines + +Use this script to automatically register all specified Azure DevOps pipelines in a target Azure DevOps project. This is especially useful to register the initial module pipelines as there is one for each module in the repository. + +--- + +### _Navigation_ + +- [Location](#location) +- [How it works](#what-it-does) +- [How to use it](#how-to-use-it) + - [Examples](#examples) + +--- +# Location + +You can find the script under `/utilities/tools/Register-AzureDevOpsPipeline.ps1` + +# How it works + +1. Get all pipelines in a given target folder (for example `.azuredevops/modulePipelines`) +1. Fetch all currently registered pipelines in the target Azure DevOps project +1. Compare the local defined and remote-registered pipelines to detect which need to be created and which skipped +1. Create all pipelines that are missing +1. Optionally register the pipelines also for build validation (i.e. they registered to be required for Pull Requests) + +# How to use it + +> **Note:** You'll need the 'azure-devops' extension to run this function: `az extension add --upgrade -n azure-devops` + +The steps you'd want to follow are +1. (if pipelines are in GitHub) Create a service connection to the target GitHub repository using e.g. oAuth +1. Create a PAT token for the Azure DevOps environment in which you want to register the pipelines in +1. Run this script with the corresponding input parameters +1. Create any required element required to execute the pipelines. For example: + - Library group(s) used in the pipeline(s) + - Service connection(s) used in the pipeline(s) + - Agent pool(s) used in the pipeline(s) if not using the default available agents + +For further details on how to use the function please refer to the script's local documentation. +> **Note:** The script must be loaded before the function can be invoked + + diff --git a/docs/wiki/UtilitiesSetModuleReadMe.md b/docs/wiki/UtilitiesSetModuleReadMe.md new file mode 100644 index 0000000000..b0fba849fd --- /dev/null +++ b/docs/wiki/UtilitiesSetModuleReadMe.md @@ -0,0 +1,52 @@ +# Module ReadMe Generation Script + +Use this script to generate most parts of a templates ReadMe file. It will take care of all aspects but the description & module-specific parameter usage examples. However, the latter are added for default cases such as `tags` or `roleAssignments` if the corresponding parameter exists in the provided template. + +For further information about the parameter usage blocks, please refer to the [section](#special-case-parameter-usage-section) below. + +--- + +### _Navigation_ + +- [Location](#location) +- [How it works](#what-it-does) + - [Special case: 'Parameter Usage' section](#special-case-parameter-usage-section) +- [How to use it](#how-to-use-it) + - [Examples](#examples) + +--- +# Location + +You can find the script under `/utilities/tools/Set-ModuleReadMe.ps1` + +# How it works + +1. Using the provided template path, the script first makes sure to convert it to ARM if necessary (i.e. if a path to a bicep file was provided) +1. If the intended readMe file does not yet exist in the expected path, it is generated with a skeleton (with e.g. a generated header name, etc.) +1. It then goes through all sections defined as `SectionsToRefresh` (by default all) and refreshes the section content (for example for the `Parameters`) based on the values in the ARM template. It detects sections by their header and regenerates always the full section. +1. Once all are refreshed, the current ReadMe file is overwritten. **Note:** The script can be invoked with a `WhatIf` in combination with `Verbose` to just receive an console-output of the updated content. + +## Special case: 'Parameter Usage' section + +The 'Parameter Usage' examples are located just beneath the 'Parameters' table. They are intended to show how to use complex objects/arrays that can be provided as parameters (excluding child-resources as they have their own readMe). + +For the most part, this section is to be populated manually. However, for a specific set of common parameters, we automatically add their example to the readMe if the parameter exists in the template. At the time of this writing these are: +- Private Endpoints +- Role Assignments +- Tags +- User Assigned Identities + +To be able to change this list with minimum effort, the script reads the content from markdown files in the folder: `utilities/tools/moduleReadMeSource` and matches their title against the parameters of the template file. If a match is found, it's content is added to the readme alongside the generated header. This means, if you want to add another case, you just need to add a new file to the `moduleReadMeSource` folder and follow the naming pattern `resourceUsage-.md`. + +For example, the content of file `resourceUsage-roleAssignments.md` in folder `moduleReadMeSource` is added to a template's readMe if it contains a parameter `roleAssignments`. The combined result is: + +```markdown +### Parameter Usage: `roleAssignments` + +<[resourceUsage-roleAssignments.md] file content> +``` + +# How to use it + +For details on how to use the function please refer to the script's local documentation. +> **Note:** The script must be loaded before the function can be invoked diff --git a/docs/wiki/media/rbacRoles.png b/docs/wiki/media/rbacRoles.png new file mode 100644 index 0000000000000000000000000000000000000000..4b0606a6b59b6214892f3ea2963ef694b4c4c010 GIT binary patch literal 106325 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

-&2(2Z6ZQk<8qs-ug&s?(OU>Z&! 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 _ohX{8_hG* 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 Vdz!(p|J<$og_4G1$uqML{|85F+B5(F literal 0 HcmV?d00001 diff --git a/utilities/tools/Get-FormattedRBACRoles.ps1 b/utilities/tools/Get-FormattedRBACRoleList.ps1 similarity index 100% rename from utilities/tools/Get-FormattedRBACRoles.ps1 rename to utilities/tools/Get-FormattedRBACRoleList.ps1 diff --git a/utilities/tools/Register-AzureDevOpsPipeline.ps1 b/utilities/tools/Register-AzureDevOpsPipeline.ps1 index f98bcfd3ab..4c953d0ecb 100644 --- a/utilities/tools/Register-AzureDevOpsPipeline.ps1 +++ b/utilities/tools/Register-AzureDevOpsPipeline.ps1 @@ -30,13 +30,16 @@ Defaults to 'Azure/ResourceModules' Optional. The type of source repository. Either 'GitHub' or 'tfsgit' (for Azure DevOps). Defaults to 'GitHub'. +.PARAMETER GitHubPAT +Optional. A personal access token for the GitHub repository with the source code. + .PARAMETER GitHubServiceConnectionName Optional. The pre-created service connection to the GitHub source repository if the pipeline files are in GitHub. It is recommended to create the service connection using oAuth. .PARAMETER AzureDevOpsPAT -Required. The access token whith appropirate permissions to create Azure Pipelines. -Usually the System.AccessToken from an Azure Pipeline instance run has sufficent permissions as well. +Required. The access token with appropriate permissions to create Azure Pipelines. +Usually the System.AccessToken from an Azure Pipeline instance run has sufficient permissions as well. Reference: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/access-tokens?view=azure-devops&tabs=yaml#how-do-i-determine-the-job-authorization-scope-of-my-yaml-pipeline Needs at least the permissions: - Release: Read, write, execute & manage @@ -68,6 +71,29 @@ Register-AzureDevOpsPipeline @inputObject Registers all pipelines in the default path in the DevOps project [Contoso/CICD] by leveraging the given AzureDevOpsPAT and creating a service connection to GitHub using the provided GitHubPAT +.EXAMPLE +$inputObject = @{ + OrganizationName = 'Contoso' + ProjectName = 'CICD' + SourceRepository = 'Azure/ResourceModules' + AzureDevOpsPAT = '' +} +Register-AzureDevOpsPipeline @inputObject + +Registers all pipelines in the default path in the DevOps project [Contoso/CICD] by leveraging the given AzureDevOpsPAT and using a pre-created service connection to GitHub + +.EXAMPLE +$inputObject = @{ + OrganizationName = 'Contoso' + ProjectName = 'CICD' + SourceRepositoryType = 'tfsgit' + SourceRepository = 'Azure/ResourceModules' + AzureDevOpsPAT = '' +} +Register-AzureDevOpsPipeline @inputObject + +Register all pipelines in a DevOps repository with default values in a the target project + .NOTES You'll need the 'azure-devops' extension to run this function: `az extension add --upgrade -n azure-devops` diff --git a/utilities/tools/Set-GitHubReadMeModuleTable.ps1 b/utilities/tools/Set-GitHubReadMeModuleTable.ps1 index 34991be810..451f4b52be 100644 --- a/utilities/tools/Set-GitHubReadMeModuleTable.ps1 +++ b/utilities/tools/Set-GitHubReadMeModuleTable.ps1 @@ -7,9 +7,6 @@ Update the given ReadMe file with the latest module table .DESCRIPTION Update the given ReadMe file with the latest module table. You can specify the columns to be generated. -Note that the ReadMe file should have the following lines right before & after the table to enable the replacement of the correct area: -- '' -- '' .PARAMETER FilePath Mandatory. The path to the ReadMe file to update diff --git a/utilities/tools/Set-ModuleReadMe.ps1 b/utilities/tools/Set-ModuleReadMe.ps1 index 5fe4e41b37..6e4fd03ef3 100644 --- a/utilities/tools/Set-ModuleReadMe.ps1 +++ b/utilities/tools/Set-ModuleReadMe.ps1 @@ -387,6 +387,22 @@ Set-ModuleReadMe -TemplateFilePath 'C:\deploy.bicep' Update the readme in path 'C:\readme.md' based on the bicep template in path 'C:\deploy.bicep' +.EXAMPLE +Set-ModuleReadMe -TemplateFilePath 'C:/Microsoft.Network/loadBalancers/deploy.bicep' -SectionsToRefresh @('Parameters', 'Outputs') + +Generate the Module ReadMe only for specific sections. Updates only the sections `Parameters` & `Outputs`. Other sections remain untouched. + +.EXAMPLE +Set-ModuleReadMe -TemplateFilePath 'C:/Microsoft.Network/loadBalancers/deploy.bicep' -ReadMeFilePath 'C:/differentFolder' + +Generate the Module ReadMe files into a specific folder path + +.EXAMPLE +$templatePaths = (Get-ChildItem 'C:/Microsoft.Network' -Filter 'deploy.bicep' -Recurse).FullName +$templatePaths | ForEach-Object { Set-ModuleReadMe -TemplateFilePath $_ } + +Generate the Module ReadMe for any template in a folder path + .NOTES The script autopopulates the Parameter Usage section of the ReadMe with the matching content in path './moduleReadMeSource'. The content is added in case the given template has a parameter that matches the suffix of one of the files in that path. diff --git a/utilities/tools/Test-ModuleLocally.ps1 b/utilities/tools/Test-ModuleLocally.ps1 index f8cf303809..58482d651f 100644 --- a/utilities/tools/Test-ModuleLocally.ps1 +++ b/utilities/tools/Test-ModuleLocally.ps1 @@ -34,7 +34,7 @@ Optional. A Hashtable Parameter that contains custom tokens to be replaced in th .EXAMPLE $TestModuleLocallyInput = @{ - templateFilePath = 'Microsoft.Network\applicationSecurityGroups' + templateFilePath = 'Microsoft.Network\applicationSecurityGroups' PesterTest = $true DeploymentTest = $true ValidationTest = $false