@@ -676,4 +676,132 @@ function Test-LinuxOSConfig {
676676 finally {
677677 Remove-AzResourceGroup - Name $resourceGroupName - Force
678678 }
679+ }
680+
681+ function Test-MaxSurge {
682+ # Setup
683+ $resourceGroupName = Get-RandomResourceGroupName
684+ $kubeClusterName = Get-RandomClusterName
685+ $location = ' eastus'
686+ $nodeVmSize = " Standard_D2_v2"
687+
688+ try {
689+ New-AzResourceGroup - Name $resourceGroupName - Location $location
690+
691+ # create aks cluster with default nodepool
692+ New-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName - NodeVmSize $nodeVmSize - NodeCount 1 - NodeMaxSurge 1
693+ $cluster = Get-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName
694+ Assert-AreEqual 1 $cluster.AgentPoolProfiles.Count
695+ Assert-AreEqual 1 $cluster.AgentPoolProfiles [0 ].UpgradeSettings.MaxSurge
696+ $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
697+ Assert-AreEqual 1 $pools.Count
698+ Assert-AreEqual 1 $pools [0 ].UpgradeSettings.MaxSurge
699+
700+ # create a 2nd nodepool
701+ New-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName - Name pool2 - VmSize $nodeVmSize - Count 1 - MaxSurge " 50%"
702+ $cluster = Get-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName
703+ Assert-AreEqual 2 $cluster.AgentPoolProfiles.Count
704+ Assert-AreEqual 1 ($cluster.AgentPoolProfiles | where {$_.Name -eq " default" }).UpgradeSettings.MaxSurge
705+ Assert-AreEqual " 50%" ($cluster.AgentPoolProfiles | where {$_.Name -eq " pool2" }).UpgradeSettings.MaxSurge
706+ $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
707+ Assert-AreEqual 2 $pools.Count
708+ Assert-AreEqual 1 ($pools | where {$_.Name -eq " default" }).UpgradeSettings.MaxSurge
709+ Assert-AreEqual " 50%" ($pools | where {$_.Name -eq " pool2" }).UpgradeSettings.MaxSurge
710+
711+ # update the 2nd nodepool
712+ Update-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName - Name pool2 - MaxSurge " 100%"
713+ $cluster = Get-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName
714+ Assert-AreEqual 2 $cluster.AgentPoolProfiles.Count
715+ Assert-AreEqual 1 ($cluster.AgentPoolProfiles | where {$_.Name -eq " default" }).UpgradeSettings.MaxSurge
716+ Assert-AreEqual " 100%" ($cluster.AgentPoolProfiles | where {$_.Name -eq " pool2" }).UpgradeSettings.MaxSurge
717+ $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
718+ Assert-AreEqual 2 $pools.Count
719+ Assert-AreEqual 1 ($pools | where {$_.Name -eq " default" }).UpgradeSettings.MaxSurge
720+ Assert-AreEqual " 100%" ($pools | where {$_.Name -eq " pool2" }).UpgradeSettings.MaxSurge
721+
722+ $cluster | Remove-AzAksCluster - Force
723+ }
724+ finally {
725+ Remove-AzResourceGroup - Name $resourceGroupName - Force
726+ }
727+ }
728+
729+ function Test-PPG {
730+ # Setup
731+ $resourceGroupName = Get-RandomResourceGroupName
732+ $kubeClusterName = Get-RandomClusterName
733+ $location = ' eastus'
734+ $nodeVmSize = " Standard_D2_v2"
735+
736+ try {
737+ New-AzResourceGroup - Name $resourceGroupName - Location $location
738+
739+ # $ppg = New-AzProximityPlacementGroup -Location $location -Name "test_ppg" -ResourceGroupName $resourceGroupName -ProximityPlacementGroupType Standard
740+ # $ppgId = $ppg.Id
741+ $ppgId = " /subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/rgps5787/providers/Microsoft.Compute/proximityPlacementGroups/test_ppg"
742+
743+ # create aks cluster with default nodepool
744+ New-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName - NodeVmSize $nodeVmSize - NodeCount 1 - PPG $ppgId
745+ $cluster = Get-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName
746+ Assert-AreEqual 1 $cluster.AgentPoolProfiles.Count
747+ Assert-AreEqual $ppgId $cluster.AgentPoolProfiles [0 ].ProximityPlacementGroupID
748+ $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
749+ Assert-AreEqual 1 $pools.Count
750+ Assert-AreEqual $ppgId $pools [0 ].ProximityPlacementGroupID
751+
752+ # create a 2nd nodepool
753+ New-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName - Name pool2 - VmSize $nodeVmSize - Count 1 - PPG $ppgId
754+ $cluster = Get-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName
755+ Assert-AreEqual 2 $cluster.AgentPoolProfiles.Count
756+ Assert-AreEqual $ppgId $cluster.AgentPoolProfiles [0 ].ProximityPlacementGroupID
757+ Assert-AreEqual $ppgId $cluster.AgentPoolProfiles [1 ].ProximityPlacementGroupID
758+ $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
759+ Assert-AreEqual 2 $pools.Count
760+ Assert-AreEqual $ppgId $pools [0 ].ProximityPlacementGroupID
761+ Assert-AreEqual $ppgId $pools [1 ].ProximityPlacementGroupID
762+
763+ $cluster | Remove-AzAksCluster - Force
764+ }
765+ finally {
766+ Remove-AzResourceGroup - Name $resourceGroupName - Force
767+ }
768+ }
769+
770+ function Test-Spot {
771+ # Setup
772+ $resourceGroupName = Get-RandomResourceGroupName
773+ $kubeClusterName = Get-RandomClusterName
774+ $location = ' eastus'
775+ $nodeVmSize = " Standard_D2_v2"
776+
777+ try {
778+ New-AzResourceGroup - Name $resourceGroupName - Location $location
779+
780+ # create aks cluster with default nodepool
781+ New-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName - NodeVmSize $nodeVmSize - NodeCount 1
782+
783+ # create a 2nd nodepool
784+ New-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName - Name pool2 - VmSize $nodeVmSize - Count 1 - ScaleSetPriority Spot - SpotMaxPrice 0.577
785+ $cluster = Get-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName
786+ Assert-AreEqual 2 $cluster.AgentPoolProfiles.Count
787+ Assert-AreEqual " Spot" ($cluster.AgentPoolProfiles | where {$_.Name -eq " pool2" }).scaleSetPriority
788+ Assert-AreEqual " Delete" ($cluster.AgentPoolProfiles | where {$_.Name -eq " pool2" }).scaleSetEvictionPolicy
789+ Assert-AreEqual 0.57699 ($cluster.AgentPoolProfiles | where {$_.Name -eq " pool2" }).spotMaxPrice
790+ Assert-AreEqual " spot" ($cluster.AgentPoolProfiles | where {$_.Name -eq " pool2" }).nodeLabels[" kubernetes.azure.com/scalesetpriority" ]
791+ Assert-AreEqual 1 ($cluster.AgentPoolProfiles | where {$_.Name -eq " pool2" }).nodeTaints.Count
792+ Assert-AreEqual " kubernetes.azure.com/scalesetpriority=spot:NoSchedule" ($cluster.AgentPoolProfiles | where {$_.Name -eq " pool2" }).nodeTaints[0 ]
793+ $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
794+ Assert-AreEqual 2 $pools.Count
795+ Assert-AreEqual " Spot" ($pools | where {$_.Name -eq " pool2" }).scaleSetPriority
796+ Assert-AreEqual " Delete" ($pools | where {$_.Name -eq " pool2" }).scaleSetEvictionPolicy
797+ Assert-AreEqual 0.57699 ($pools | where {$_.Name -eq " pool2" }).spotMaxPrice
798+ Assert-AreEqual " spot" ($pools | where {$_.Name -eq " pool2" }).nodeLabels[" kubernetes.azure.com/scalesetpriority" ]
799+ Assert-AreEqual 1 ($pools | where {$_.Name -eq " pool2" }).nodeTaints.Count
800+ Assert-AreEqual " kubernetes.azure.com/scalesetpriority=spot:NoSchedule" ($pools | where {$_.Name -eq " pool2" }).nodeTaints[0 ]
801+
802+ $cluster | Remove-AzAksCluster - Force
803+ }
804+ finally {
805+ Remove-AzResourceGroup - Name $resourceGroupName - Force
806+ }
679807}
0 commit comments