@@ -676,4 +676,132 @@ function Test-LinuxOSConfig {
676
676
finally {
677
677
Remove-AzResourceGroup - Name $resourceGroupName - Force
678
678
}
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
+ }
679
807
}
0 commit comments