Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion avm/1.0.0/res/desktop-virtualization/host-pool/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,13 @@ param ssoClientSecretKeyVaultPath string = ''
#disable-next-line secure-secrets-in-params
param ssoSecretType string = ''

@sys.description('Optional. Specifies the type of management for the host pool. Use "Unmanaged" for manual session host management or "AutomaticSessionHostConfiguration" to enable automated session host provisioning (Preview).')
@allowed([
'Unmanaged'
'AutomaticSessionHostConfiguration'
])
param managedBy string = 'Unmanaged'

@sys.description('Optional. Tags of the resource.')
param tags object?

Expand Down Expand Up @@ -176,14 +183,15 @@ resource avmTelemetry 'Microsoft.Resources/deployments@2025-04-01' =
}
}

resource hostPool 'Microsoft.DesktopVirtualization/hostPools@2025-03-01-preview' = {
resource hostPool 'Microsoft.DesktopVirtualization/hostPools@2025-04-01-preview' = {
name: name
location: location
tags: tags
properties: {
friendlyName: friendlyName
description: description
hostPoolType: hostPoolType
managedBy: managedBy
publicNetworkAccess: publicNetworkAccess
customRdpProperty: customRdpProperty
personalDesktopAssignmentType: any(personalDesktopAssignmentType)
Expand Down
8 changes: 8 additions & 0 deletions workload/bicep/deploy-baseline.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,13 @@ param avdHostPoolLoadBalancerType string = 'BreadthFirst'
@sys.description('AVD host pool maximum number of user sessions per session host. (Default: 8)')
param hostPoolMaxSessions int = 8

@allowed([
'Unmanaged'
'AutomaticSessionHostConfiguration'
])
@sys.description('AVD host pool management type. Use "Unmanaged" for manual session host management or "AutomaticSessionHostConfiguration" to enable automated session host provisioning (Preview). (Default: Unmanaged)')
param avdHostPoolManagedBy string = 'Unmanaged'

@sys.description('AVD host pool start VM on Connect. (Default: true)')
param avdStartVmOnConnect bool = true

Expand Down Expand Up @@ -1182,6 +1189,7 @@ module managementPLane './modules/avdManagementPlane/deploy.bicep' = {
hostPoolRdpProperties: avdHostPoolRdpProperties
hostPoolLoadBalancerType: avdHostPoolLoadBalancerType
hostPoolType: avdHostPoolType
hostPoolManagedBy: avdHostPoolManagedBy
preferredAppGroupType: (hostPoolPreferredAppGroupType == 'RemoteApp') ? 'RailApplications' : 'Desktop'
deployScalingPlan: !empty(avdServicePrincipalObjectId) ? varDeployScalingPlan : false
scalingPlanExclusionTag: varScalingPlanExclusionTag
Expand Down
8 changes: 8 additions & 0 deletions workload/bicep/modules/avdManagementPlane/deploy.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,13 @@ param workspacePublicNetworkAccess string = 'Enabled'
@sys.description('Optional. AVD host pool type.')
param personalAssignType string

@allowed([
'Unmanaged'
'AutomaticSessionHostConfiguration'
])
@sys.description('Optional. Specifies the type of management for the host pool. Use "Unmanaged" for manual session host management or "AutomaticSessionHostConfiguration" to enable automated session host provisioning (Preview).')
param hostPoolManagedBy string = 'Unmanaged'

@allowed([
'BreadthFirst'
'DepthFirst'
Expand Down Expand Up @@ -239,6 +246,7 @@ module hostPool '../../../../avm/1.0.0/res/desktop-virtualization/host-pool/main
friendlyName: hostPoolFriendlyName
location: managementPlaneLocation
hostPoolType: hostPoolType
managedBy: hostPoolManagedBy
startVMOnConnect: startVmOnConnect
customRdpProperty: varHostPoolRdpPropertiesDomainServiceCheck
loadBalancerType: hostPoolLoadBalancerType
Expand Down
35 changes: 35 additions & 0 deletions workload/portal-ui/portal-ui-baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,40 @@
"uri": "https://docs.microsoft.com/azure/virtual-desktop/environment-setup"
}
},
{
"name": "hostPoolManagementType",
"type": "Microsoft.Common.DropDown",
"visible": true,
"label": "Host pool management type",
"defaultValue": "Without Session Host Configuration (Default)",
"multiLine": true,
"toolTip": "Select whether to enable automated session host provisioning. 'With Session Host Configuration' enables automated provisioning (Preview). 'Without Session Host Configuration' requires manual session host registration using a registration key.",
"constraints": {
"required": true,
"allowedValues": [
{
"label": "Without Session Host Configuration (Default)",
"description": "Manually add session hosts using a registration key",
"value": "Unmanaged"
},
{
"label": "With Session Host Configuration (Preview)",
"description": "Enables automated session host provisioning",
"value": "AutomaticSessionHostConfiguration"
}
]
}
},
{
"name": "hostPoolManagementTypeInfo",
"type": "Microsoft.Common.InfoBox",
"visible": "[equals(steps('managementPlane').managementPlaneHostPoolSettings.hostPoolManagementType, 'AutomaticSessionHostConfiguration')]",
"options": {
"style": "Info",
"text": "Session Host Configuration is currently in Preview. This feature enables automated provisioning and management of session hosts. Learn more about this preview feature.",
"uri": "https://learn.microsoft.com/en-us/azure/virtual-desktop/host-pool-management-approaches"
}
},
{
"name": "loadBalancerType",
"type": "Microsoft.Common.DropDown",
Expand Down Expand Up @@ -2768,6 +2802,7 @@
"avdHostPoolLoadBalancerType": "[steps('managementPlane').managementPlaneHostPoolSettings.loadBalancerType]",
"hostPoolMaxSessions": "[if(equals(steps('managementPlane').managementPlaneHostPoolSettings.hostPoolType, 'Pooled'), steps('managementPlane').managementPlaneHostPoolSettings.maxSessions, 1)]",
"avdPersonalAssignType": "[if(equals(steps('managementPlane').managementPlaneHostPoolSettings.hostPoolType, 'Personal'), steps('managementPlane').managementPlaneHostPoolSettings.assignmentType, 'Automatic')]",
"avdHostPoolManagedBy": "[steps('managementPlane').managementPlaneHostPoolSettings.hostPoolManagementType]",
"avdIdentityServiceProvider": "[steps('identity').identityDomainInformation.identityServiceProvider]",
"createIntuneEnrollment": "[if(contains(steps('identity').identityDomainInformation.identityServiceProvider, 'EntraID'), steps('identity').identityDomainInformation.identityServiceProviderIntuneEnrollment, false)]",
"identityDomainName": "[if(equals(steps('identity').identityDomainInformation.identityServiceProvider, 'EntraID'), '', steps('identity').identityDomainInformation.identityDomainName)]",
Expand Down