Skip to content

Commit

Permalink
Merge pull request #5 from mofaizal/tf-hub-and-spoke
Browse files Browse the repository at this point in the history
host.tf and avd.tf file conflict resolved
  • Loading branch information
mofaizal committed Sep 17, 2022
2 parents 1dc8f67 + fd4962a commit 4082e01
Show file tree
Hide file tree
Showing 16 changed files with 1,514 additions and 341 deletions.
746 changes: 523 additions & 223 deletions workload/arm/deploy-baseline.json

Large diffs are not rendered by default.

192 changes: 96 additions & 96 deletions workload/arm/deploy-custom-image.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions workload/bicep/avd-modules/avd-session-hosts-batch.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -188,5 +188,6 @@ module avdSessionHosts './avd-session-hosts.bicep' = [for i in range(1, avdSessi
avdTags: avdTags
}
dependsOn: [
avdAvailabilitySet
]
}]
27 changes: 25 additions & 2 deletions workload/bicep/avd-modules/avd-storage-azurefiles.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ module fslogixStorage '../../../carml/1.2.0/Microsoft.Storage/storageAccounts/de
shares: [
{
name: avdFslogixProfileContainerFileShareName
shareQuota: avdFslogixFileShareQuotaSize * 100 //Portal UI steps scale
sharedQuota: avdFslogixFileShareQuotaSize * 100 //Portal UI steps scale
}
]
protocolSettings: avdFslogixFileShareMultichannel ? {
Expand Down Expand Up @@ -241,6 +241,29 @@ module managementVM '../../../carml/1.2.0/Microsoft.Compute/virtualMachines/depl
]
}

// Introduce delay for management VM to be ready.
module managementVmDelay '../../../carml/1.0.0/Microsoft.Resources/deploymentScripts/deploy.bicep' = {
scope: resourceGroup('${avdWorkloadSubsId}', '${avdServiceObjectsRgName}')
name: 'AVD-Management-VM-Delay-${time}'
params: {
name: 'AVD-userManagedIdentityDelay-${time}'
location: avdSessionHostLocation
azPowerShellVersion: '6.2'
cleanupPreference: 'Always'
timeout: 'PT10M'
scriptContent: '''
Write-Host "Start"
Get-Date
Start-Sleep -Seconds 120
Write-Host "Stop"
Get-Date
'''
}
dependsOn: [
managementVM
]
}

// Custom Extension call in on the DSC script to join Azure storage account to domain.
module addFslogixShareToDomainSript '../../vm-custom-extensions/add-azure-files-to-domain-script.bicep' = { //if(avdIdentityServiceProvider == 'ADDS') {
scope: resourceGroup('${avdWorkloadSubsId}', '${avdServiceObjectsRgName}')
Expand All @@ -254,7 +277,7 @@ module addFslogixShareToDomainSript '../../vm-custom-extensions/add-azure-files-
}
dependsOn: [
fslogixStorage
managementVM
managementVmDelay
]
}

Expand Down
79 changes: 79 additions & 0 deletions workload/bicep/avd-modules/avd-validation.bicep
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
targetScope = 'resourceGroup'

// ========== //
// Parameters //
// ========== //

param Availability string
param DiskEncryption bool
param DiskSku string
param DomainName string
param DomainServices string
param EphemeralOsDisk bool
param ImageSku string
param KerberosEncryption string
param Location string
param ManagedIdentityResourceId string
param NamingStandard string
param PooledHostPool bool
param RecoveryServices bool
param SasToken string
param ScriptsUri string
param SecurityPrincipalIds array
param SecurityPrincipalNames array
param SessionHostCount int
param SessionHostIndex int
param StartVmOnConnect bool
param StorageCount int
param StorageSolution string
param Tags object
param Timestamp string
param VirtualNetwork string
param VirtualNetworkResourceGroup string
param VmSize string

// =========== //
// Variable declaration //
// =========== //

var SecurityPrincipalIdsCount = length(SecurityPrincipalIds)
var SecurityPrincipalNamesCount = length(SecurityPrincipalNames)

// =========== //
// Deployments //
// =========== //

// Validation
resource deploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = {
name: 'ds-${NamingStandard}-validation'
location: Location
tags: Tags
kind: 'AzurePowerShell'
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${ManagedIdentityResourceId}': {}
}
}
properties: {
forceUpdateTag: Timestamp
azPowerShellVersion: '5.4'
arguments: '-Availability ${Availability} -DiskEncryption ${DiskEncryption} -DiskSku ${DiskSku} -DomainName ${DomainName} -DomainServices ${DomainServices} -EphemeralOsDisk ${EphemeralOsDisk} -ImageSku ${ImageSku} -KerberosEncryption ${KerberosEncryption} -Location ${Location} -PooledHostPool ${PooledHostPool} -RecoveryServices ${RecoveryServices} -SecurityPrincipalIdsCount ${SecurityPrincipalIdsCount} -SecurityPrincipalNamesCount ${SecurityPrincipalNamesCount} -SessionHostCount ${SessionHostCount} -SessionHostIndex ${SessionHostIndex} -StartVmOnConnect ${StartVmOnConnect} -StorageCount ${StorageCount} -StorageSolution ${StorageSolution} -VmSize ${VmSize} -VnetName ${VirtualNetwork} -VnetResourceGroupName ${VirtualNetworkResourceGroup}'
primaryScriptUri: '${ScriptsUri}Get-Validation.ps1${SasToken}'
timeout: 'PT2H'
cleanupPreference: 'OnSuccess'
retentionInterval: 'P1D'
}
}

// =========== //
// Outputs //
// =========== //

output acceleratedNetworking string = deploymentScript.properties.outputs.acceleratedNetworking
output anfActiveDirectory string = deploymentScript.properties.outputs.anfActiveDirectory
output anfDnsServers string = deploymentScript.properties.outputs.anfDnsServers
output anfSubnetId string = deploymentScript.properties.outputs.anfSubnetId
output dnsForwarders array = deploymentScript.properties.outputs.dnsForwarders
output dnsServerSize string = deploymentScript.properties.outputs.dnsServerSize
output ephemeralOsDisk string = deploymentScript.properties.outputs.ephemeralOsDisk
43 changes: 43 additions & 0 deletions workload/bicep/deploy-baseline.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -701,6 +701,49 @@ module avdBaselineStorageResourceGroup '../../carml/1.2.0/Microsoft.Resources/re
}
//

/*
// Validation Deployment Script
// This module validates the selected parameter values and collects required data
module validation 'avd-modules/avd-validation.bicep' = {
name: 'AVD-Deployment-Validation-${time}'
scope: resourceGroup(avdServiceObjectsRgName)
params: {
Availability: Availability
DiskEncryption: DiskEncryption
DiskSku: DiskSku
DomainName: DomainName
DomainServices: DomainServices
EphemeralOsDisk: EphemeralOsDisk
ImageSku: ImageSku
KerberosEncryption: KerberosEncryption
Location: Location
ManagedIdentityResourceId: managedIdentity.outputs.resourceIdentifier
NamingStandard: NamingStandard
PooledHostPool: PooledHostPool
RecoveryServices: RecoveryServices
SasToken: SasToken
ScriptsUri: ScriptsUri
SecurityPrincipalIds: SecurityPrincipalObjectIds
SecurityPrincipalNames: SecurityPrincipalNames
SessionHostCount: SessionHostCount
SessionHostIndex: SessionHostIndex
StartVmOnConnect: StartVmOnConnect
//StorageCount: StorageCount
StorageSolution: StorageSolution
Tags: createResourceTags ? commonResourceTags : {}
Timestamp: time
VirtualNetwork: VirtualNetwork
VirtualNetworkResourceGroup: VirtualNetworkResourceGroup
VmSize: avdSessionHostsSize
}
dependsOn: [
resourceGroups
managedIdentity
]
}
*/


// Networking.
module avdNetworking 'avd-modules/avd-networking.bicep' = if (createAvdVnet) {
name: 'Deploy-AVD-Networking-${time}'
Expand Down
Loading

0 comments on commit 4082e01

Please sign in to comment.