From 581c9997f1b9f4e9b9008c27ab34ae651b74906f Mon Sep 17 00:00:00 2001 From: Dany Contreras Date: Thu, 17 Apr 2025 08:52:22 -0500 Subject: [PATCH 1/8] updates --- workload/arm/deploy-baseline.json | 6 ++++-- workload/bicep/deploy-baseline.bicep | 4 +++- workload/portal-ui/portal-ui-baseline.json | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/workload/arm/deploy-baseline.json b/workload/arm/deploy-baseline.json index ef0b2a3fd..1ebbef987 100644 --- a/workload/arm/deploy-baseline.json +++ b/workload/arm/deploy-baseline.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.34.44.8038", - "templateHash": "2844762627669354029" + "templateHash": "17810112161035520353" }, "name": "AVD Accelerator - Baseline Deployment", "description": "AVD Accelerator - Deployment Baseline", @@ -445,7 +445,7 @@ "type": "int", "defaultValue": 1, "minValue": 1, - "maxValue": 100, + "maxValue": 1999, "metadata": { "description": "Quantity of session hosts to deploy. (Default: 1)" } @@ -453,6 +453,8 @@ "avdSessionHostCountIndex": { "type": "int", "defaultValue": 1, + "minValue": 1, + "maxValue": 9998, "metadata": { "description": "The session host number to begin with for the deployment. This is important when adding virtual machines to ensure the names do not conflict. (Default: 1)" } diff --git a/workload/bicep/deploy-baseline.bicep b/workload/bicep/deploy-baseline.bicep index 6e903d31c..00cfa44a7 100644 --- a/workload/bicep/deploy-baseline.bicep +++ b/workload/bicep/deploy-baseline.bicep @@ -220,10 +220,12 @@ param avdAlaWorkspaceDataRetention int = 90 param alaExistingWorkspaceResourceId string = '' @minValue(1) -@maxValue(100) +@maxValue(1999) @sys.description('Quantity of session hosts to deploy. (Default: 1)') param avdDeploySessionHostsCount int = 1 +@minValue(1) +@maxValue(9998) @sys.description('The session host number to begin with for the deployment. This is important when adding virtual machines to ensure the names do not conflict. (Default: 1)') param avdSessionHostCountIndex int = 1 diff --git a/workload/portal-ui/portal-ui-baseline.json b/workload/portal-ui/portal-ui-baseline.json index df008a163..aa654aec8 100644 --- a/workload/portal-ui/portal-ui-baseline.json +++ b/workload/portal-ui/portal-ui-baseline.json @@ -842,7 +842,7 @@ "defaultValue": 1, "toolTip": "Select the start number of the virtual machine suffix.", "min": 1, - "max": 4998, + "max": 9998, "showStepMarkers": true, "constraints": { "required": true @@ -855,7 +855,7 @@ "defaultValue": 1, "toolTip": "Select the number of virtual machines to deploy in your AVD host pool.", "min": 1, - "max": 4999, + "max": 1999, "showStepMarkers": true, "constraints": { "required": true From 31c73108abacd1cacf5188a4222e13c1ebfe0ce6 Mon Sep 17 00:00:00 2001 From: Dany Contreras Date: Thu, 17 Apr 2025 09:12:34 -0500 Subject: [PATCH 2/8] updates --- workload/bicep/deploy-baseline.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workload/bicep/deploy-baseline.bicep b/workload/bicep/deploy-baseline.bicep index 00cfa44a7..84f66a9bc 100644 --- a/workload/bicep/deploy-baseline.bicep +++ b/workload/bicep/deploy-baseline.bicep @@ -226,7 +226,7 @@ param avdDeploySessionHostsCount int = 1 @minValue(1) @maxValue(9998) -@sys.description('The session host number to begin with for the deployment. This is important when adding virtual machines to ensure the names do not conflict. (Default: 1)') +@sys.description('The session host number to begin with for the deployment. This is important when adding virtual machines to host pool ensure the names do not conflict. (Default: 1)') param avdSessionHostCountIndex int = 1 @sys.description('When true VMs are distributed across availability zones, when set to false, VMs will be deployed at regional level.') From 0e03a0978edbaaf8022d4620fc9728fae0845bb2 Mon Sep 17 00:00:00 2001 From: Dany Contreras Date: Thu, 17 Apr 2025 09:14:18 -0500 Subject: [PATCH 3/8] updates --- .github/workflows/devskim.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/devskim.yml b/.github/workflows/devskim.yml index e8fbe369a..53ad6e5fd 100644 --- a/.github/workflows/devskim.yml +++ b/.github/workflows/devskim.yml @@ -16,7 +16,7 @@ on: jobs: lint: name: DevSkim - runs-on: ubuntu-20.04 + runs-on: Ubuntu 24.04 permissions: actions: read contents: read From fcb98ee70a0af499ae1d26b4e390f1d838ed2b22 Mon Sep 17 00:00:00 2001 From: Dany Contreras Date: Thu, 17 Apr 2025 09:56:31 -0500 Subject: [PATCH 4/8] updates --- .github/workflows/devskim.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/devskim.yml b/.github/workflows/devskim.yml index 53ad6e5fd..5ec843eb2 100644 --- a/.github/workflows/devskim.yml +++ b/.github/workflows/devskim.yml @@ -16,7 +16,7 @@ on: jobs: lint: name: DevSkim - runs-on: Ubuntu 24.04 + runs-on: Ubuntu 22.04 permissions: actions: read contents: read From bced488f5c07bd804d91e6c1e033e9dc3d7be2b1 Mon Sep 17 00:00:00 2001 From: Dany Contreras Date: Tue, 22 Apr 2025 10:07:35 -0500 Subject: [PATCH 5/8] updates --- workload/bicep/deploy-baseline.bicep | 2 +- workload/bicep/readme.md | 106 ++++++++++++++------------- 2 files changed, 57 insertions(+), 51 deletions(-) diff --git a/workload/bicep/deploy-baseline.bicep b/workload/bicep/deploy-baseline.bicep index 84f66a9bc..6c2985acf 100644 --- a/workload/bicep/deploy-baseline.bicep +++ b/workload/bicep/deploy-baseline.bicep @@ -33,7 +33,7 @@ param avdSessionHostLocation string param avdManagementPlaneLocation string @sys.description('AVD workload subscription ID, multiple subscriptions scenario. (Default: "")') -param avdWorkloadSubsId string = '' +param avdWorkloadSubsId string @sys.description('Azure Virtual Desktop Enterprise Application object ID (Enterprise app name: Azure Virtual Desktop) . (Default: "")') param avdServicePrincipalObjectId string = '' diff --git a/workload/bicep/readme.md b/workload/bicep/readme.md index b9af06577..53ca428fc 100644 --- a/workload/bicep/readme.md +++ b/workload/bicep/readme.md @@ -8,68 +8,63 @@ A full list of parameter details can be found for the relevant deployment type h - [Deploy AVD Baseline](../docs/autoGenerated/deploy-baseline.bicep.md) - [Deploy AVD Custom Image Baseline](../docs/autoGenerated/deploy-custom-image.bicep.md) -### Azure CLI - -```bash -az deployment create \ - --template-file workload/bicep/deploy-baseline.bicep \ - --parameters avdWorkloadSubsId= \ - --parameters deploymentPrefix= \ - --parameters avdVmLocalUserName= \ - --parameters avdVmLocalUserPassword= \ - --parameters avdIdentityServiceProvider="" \ - --parameters avdIdentityDomainName= \ - --parameters avdDomainJoinUserName= \ - --parameters avdDomainJoinUserPassword= \ - --parameters customDnsIps= \ - --parameters avdServicePrincipalObjectId= \ - --parameters avdVnetPrivateDnsZone=true \ - --parameters avdVnetPrivateDnsZoneFilesId="" \ - --parameters avdVnetPrivateDnsZoneKeyvaultId="" \ - --avdDeployMonitoring=true \ - --deployAlaWorkspace=true \ - --location "eastus" -``` - ### PowerShell ```powershell +Connect-AzAccount +# +$SubID = "" $avdVmLocalUserPassword = Read-Host -Prompt "Local user password" -AsSecureString -$avdDomainJoinUserPassword = Read-Host -Prompt "Domain join password" -AsSecureString +# +Select-AzSubscription -SubscriptionId $SubID New-AzSubscriptionDeployment ` - -TemplateFile workload/bicep/deploy-baseline.bicep ` - -avdWorkloadSubsId "" ` - -deploymentPrefix "" ` - -avdVmLocalUserName "" ` + -Name "AVDAcceleratorDeployment" ` + -Location "" ` + -TemplateFile "./workload/bicep/deploy-baseline.bicep" ` + -avdWorkloadSubsId $SubID ` + -avdSessionHostLocation "" ` + -avdManagementPlaneLocation "" ` + -avdVmLocalUserName "" ` -avdVmLocalUserPassword $avdVmLocalUserPassword ` - -avdIdentityServiceProvider "" ` - -avdIdentityDomainName "" ` - -avdDomainJoinUserName "" ` - -avdDomainJoinUserPassword $avdDomainJoinUserPassword ` - -existingHubVnetResourceId "" ` - -customDnsIps "" ` - -avdServicePrincipalObjectId "" ` - -avdVnetPrivateDnsZone $true ` - -avdVnetPrivateDnsZoneFilesId "" ` - -avdVnetPrivateDnsZoneKeyvaultId "" ` - -avdDeployMonitoring $true ` - -deployAlaWorkspace $true ` - -Location "eastus" + -avdIdentityServiceProvider "EntraIDKerberos" ` + -identityDomainName "" ` + -avdServicePrincipalObjectId "" ` + -avdSecurityGroups @(@{objectId="00000000-0000-0000-0000-000000000000"; displayName="Example-Security-Group"}) ` + -avdVnetworkAddressPrefixes "10.10.0.0/16" ` + -vNetworkAvdSubnetAddressPrefix "10.10.1.0/24" ` + -vNetworkPrivateEndpointSubnetAddressPrefix "10.10.2.0/27" ``` - -## Optional: Custom Image Build deployment +> Note: above PowerShell deployment sample, deploys AVD with most of the default options in the AVD LZA using Entra ID Kerberos as identity provider and deploying new virtual network. ### Azure CLI ```bash -az deployment create \ - --template-file workload/bicep/deploy-custom-image.bicep \ - --parameters sharedServicesSubId="" \ - --deploymentLocation="eastus" \ - --imageVersionPrimaryLocation="eastus" \ - --Location "eastus" +az login +# +subId="" +az account set --subscription "$subId" +# +az deployment sub create \ +--name "AVDAcceleratorDeployment" \ +--location "" \ +--template-file "./workload/bicep/deploy-baseline.bicep" \ +--parameters \ + avdWorkloadSubsId="$subId" \ + avdSessionHostLocation="" \ + avdManagementPlaneLocation="" \ + avdVmLocalUserName="" \ + avdVmLocalUserPassword="" \ + avdIdentityServiceProvider="EntraIDKerberos" \ + identityDomainName="" \ + avdServicePrincipalObjectId="" \ + avdSecurityGroups="[{\"objectId\": \"00000000-0000-0000-0000-000000000000\", \"displayName\": \"Example-Security-Group\"}]" \ + avdVnetworkAddressPrefixes="10.10.0.0/16" \ + vNetworkAvdSubnetAddressPrefix="10.10.1.0/24" \ + vNetworkPrivateEndpointSubnetAddressPrefix="10.10.2.0/27" ``` +> Note: above AZ CLI deployment sample, deploys AVD with most of the default options in the AVD LZA using Entra ID Kerberos as identity provider and deploying new virtual network. + +## Optional: Custom Image Build deployment ### PowerShell @@ -82,6 +77,17 @@ New-AzSubscriptionDeployment ` -Location "eastus" ``` +### Azure CLI + +```bash +az deployment create \ + --template-file workload/bicep/deploy-custom-image.bicep \ + --parameters sharedServicesSubId="" \ + --deploymentLocation="eastus" \ + --imageVersionPrimaryLocation="eastus" \ + --Location "eastus" +``` + ## Contributing This project welcomes contributions and suggestions. Most contributions require you to agree to a From 584b9a8a459d48db013c772174747eec049dc61f Mon Sep 17 00:00:00 2001 From: Dany Contreras Date: Tue, 22 Apr 2025 10:33:01 -0500 Subject: [PATCH 6/8] updates --- workload/bicep/readme.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/workload/bicep/readme.md b/workload/bicep/readme.md index 53ca428fc..575e848ae 100644 --- a/workload/bicep/readme.md +++ b/workload/bicep/readme.md @@ -41,19 +41,20 @@ New-AzSubscriptionDeployment ` ```bash az login # -subId="" -az account set --subscription "$subId" +SubID="" +read -s -p "Local user password: " avdVmLocalUserPassword # +az account set --subscription "$SubID" az deployment sub create \ --name "AVDAcceleratorDeployment" \ --location "" \ --template-file "./workload/bicep/deploy-baseline.bicep" \ --parameters \ - avdWorkloadSubsId="$subId" \ + avdWorkloadSubsId="$SubID" \ avdSessionHostLocation="" \ avdManagementPlaneLocation="" \ avdVmLocalUserName="" \ - avdVmLocalUserPassword="" \ + avdVmLocalUserPassword="$avdVmLocalUserPassword" \ avdIdentityServiceProvider="EntraIDKerberos" \ identityDomainName="" \ avdServicePrincipalObjectId="" \ From 46f6fc615c933ee2c5502d4ea6d69b106e684b02 Mon Sep 17 00:00:00 2001 From: Dany Contreras Date: Tue, 22 Apr 2025 10:42:20 -0500 Subject: [PATCH 7/8] updates --- workload/bicep/readme.md | 55 +++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/workload/bicep/readme.md b/workload/bicep/readme.md index 575e848ae..5d47db0aa 100644 --- a/workload/bicep/readme.md +++ b/workload/bicep/readme.md @@ -70,23 +70,54 @@ az deployment sub create \ ### PowerShell ```powershell -New-AzSubscriptionDeployment ` - -TemplateFile workload/bicep/deploy-custom-image.bicep ` - -sharedServicesSubId "" ` - -deploymentLocation "eastus" ` - -imageVersionPrimaryLocation "eastus" ` - -Location "eastus" +Connect-AzAccount +# +$SubID = "" +# +Select-AzSubscription -SubscriptionId $SubID +New-AzDeployment ` + -Location "" ` + -TemplateFile "./workload/bicep/deploy-custom-image.bicep" ` + -Name "CustomImageDeployment" ` + -SubscriptionId $SubID ` + -sharedServicesSubId "" ` + -deploymentLocation "" ` + -imageVersionPrimaryLocation "" ` + -mpImagePublisher "" ` + -mpImageOffer "" ` + -mpImageSku "" ` + -mpImageVersion "latest" ` + -userAssignedManagedIdentityCustomName "" ` + -enableMonitoringAlerts $false ` + -enableResourceTags $false ` + -enableTelemetry $true ``` ### Azure CLI ```bash -az deployment create \ - --template-file workload/bicep/deploy-custom-image.bicep \ - --parameters sharedServicesSubId="" \ - --deploymentLocation="eastus" \ - --imageVersionPrimaryLocation="eastus" \ - --Location "eastus" +az login +# +SubID="" +# +az account set --subscription "$SubID" +az deployment sub create \ + --name "CustomImageDeployment" \ + --location "" \ + --template-file "./workload/bicep/deploy-custom-image.bicep" \ + --parameters \ + subscriptionId="$SubID" \ + sharedServicesSubId="" \ + deploymentLocation="" \ + imageVersionPrimaryLocation="" \ + mpImagePublisher="" \ + mpImageOffer="" \ + mpImageSku="" \ + mpImageVersion="latest" \ + userAssignedManagedIdentityCustomName="" \ + enableMonitoringAlerts=false \ + enableResourceTags=false \ + enableTelemetry=true ``` ## Contributing From 5658ae8db675bfe9cd528a737b7999357e3749ef Mon Sep 17 00:00:00 2001 From: Dany Contreras Date: Tue, 22 Apr 2025 10:43:24 -0500 Subject: [PATCH 8/8] updates --- workload/arm/deploy-baseline.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/workload/arm/deploy-baseline.json b/workload/arm/deploy-baseline.json index 1ebbef987..5a7ce6721 100644 --- a/workload/arm/deploy-baseline.json +++ b/workload/arm/deploy-baseline.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.34.44.8038", - "templateHash": "17810112161035520353" + "templateHash": "14053498666684800097" }, "name": "AVD Accelerator - Baseline Deployment", "description": "AVD Accelerator - Deployment Baseline", @@ -56,7 +56,6 @@ }, "avdWorkloadSubsId": { "type": "string", - "defaultValue": "", "metadata": { "description": "AVD workload subscription ID, multiple subscriptions scenario. (Default: \"\")" } @@ -456,7 +455,7 @@ "minValue": 1, "maxValue": 9998, "metadata": { - "description": "The session host number to begin with for the deployment. This is important when adding virtual machines to ensure the names do not conflict. (Default: 1)" + "description": "The session host number to begin with for the deployment. This is important when adding virtual machines to host pool ensure the names do not conflict. (Default: 1)" } }, "availability": {