1- Invoke-LiveTestScenario - Name " Test_AKS_CURD " - Description " Test AKS Cluster CRUD and node pool CRU" - Platform Linux - PowerShellVersion Latest - ScenarioScript `
1+ Invoke-LiveTestScenario - Name " Test_AKS_CRUD " - Description " Test AKS cluster CRUD and node pool CRU" - Platform Linux - PowerShellVersion Latest - ScenarioScript `
22{
33 param ($rg )
44
5- $resourceGroupName = $rg.ResourceGroupName
5+ $rgName = $rg.ResourceGroupName
6+ $location = " eastus"
67
7- # Generate random resource name if necessary
8- $kubeClusterName = New-LiveTestResourceName
8+ $kubeName = New-LiveTestResourceName
9+ $sysNodeName = New-LiveTestRandomName - Option StartWithLetter - Length 5
10+ $usrNodeName = New-LiveTestRandomName - Option StartWithLetter - Length 5
911
10- # step 1: create a default aks cluster with default node pool
12+ $vnetName = New-LiveTestResourceName
13+ $snetName = New-LiveTestResourceName
14+ $nsgName = New-LiveTestResourceName
15+ $pipName = New-LiveTestResourceName
16+
17+ # step 1: create an aks cluster with a node pool
1118 ' y' | ssh- keygen - t rsa -f id_rsa - q - N ' "123456"'
1219 $sshKeyValue = Get-Content id_rsa.pub - Raw
1320
@@ -19,130 +26,154 @@ Invoke-LiveTestScenario -Name "Test_AKS_CURD" -Description "Test AKS Cluster CRU
1926 $servicePrincipalSecureSecret = ConvertTo-SecureString - String $ServicePrincipalSecret - AsPlainText - Force
2027 $servicePrincipalCredential = New-Object - TypeName System.Management.Automation.PSCredential - ArgumentList $ServicePrincipalId , $servicePrincipalSecureSecret
2128
22- Write-Host " ##[section]Start to create Aks cluster : New-AzAksCluster"
23- New-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName - SshKeyValue $sshKeyValue - ServicePrincipalIdAndSecret $servicePrincipalCredential - AutoUpgradeChannel node- image
24- Write-Host " ##[section]Finished creating Aks cluster : New-AzAksCluster"
29+ $nsgRuleHighRiskPorts = New-AzNetworkSecurityRuleConfig - Name " DenyHighRiskPorts" - Direction Inbound - Priority 101 - Protocol Tcp - SourceAddressPrefix Internet - SourcePortRange * - DestinationAddressPrefix * - DestinationPortRange 22 , 3389 - Access Deny
30+ $nsg = New-AzNetworkSecurityGroup - ResourceGroupName $rgName - Name $nsgName - Location $location - SecurityRules $nsgRuleHighRiskPorts
31+ $snetCfg = New-AzVirtualNetworkSubnetConfig - Name $snetName - AddressPrefix 10.10 .1.0 / 24 - DefaultOutboundAccess $false - NetworkSecurityGroup $nsg
32+ New-AzVirtualNetwork - ResourceGroupName $rgName - Name $vnetName - Location $location - AddressPrefix 10.10 .0.0 / 16 - Subnet $snetCfg
33+
34+ $snet = Get-AzVirtualNetwork - ResourceGroupName $rgName - Name $vnetName | Get-AzVirtualNetworkSubnetConfig - Name $snetName
35+
36+ $ipTag = New-AzPublicIpTag - IpTagType FirstPartyUsage - Tag " /NonProd"
37+ $pip = New-AzPublicIpAddress - ResourceGroupName $rgName - Name $pipName - Location $location - AllocationMethod Static - Sku Standard - IpTag $ipTag
38+
39+ $kubeVersion = (Get-AzAksVersion - Location $location ).OrchestratorVersion | Sort-Object - Descending | Select-Object - Skip 2 - First 1
40+
41+ Write-Host " ##[section]Start creating AKS cluster : New-AzAksCluster"
2542
26- Write-Host " ##[section]Start to retrieve Aks cluster : Get-AzAksCluster"
27- $cluster = Get-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName
28- Write-Host " ##[section]Finished retrieving Aks cluster : Get-AzAksCluster"
43+ New-AzAksCluster - ResourceGroupName $rgName - Name $kubeName - SshKeyValue $sshKeyValue - ServicePrincipalIdAndSecret $servicePrincipalCredential - KubernetesVersion $kubeVersion - NodeName $sysNodeName - NodePoolMode System - NodeOsSKU AzureLinux - AutoUpgradeChannel node- image - NodeCount 2 - EnableNodeAutoScaling - NodeMinCount 1 - NodeMaxCount 3 - NetworkPlugin azure - NodeVnetSubnetID $snet.Id - LoadBalancerOutboundIp $pip.Id
2944
30- Assert-NotNull $cluster.Fqdn
31- Assert-NotNull $cluster.KubernetesVersion
32- Assert-NotNull $cluster.DnsPrefix
45+ Write-Host " ##[section]Finished creating AKS cluster : New-AzAksCluster"
46+
47+ $cluster = Get-AzAksCluster - ResourceGroupName $rgName - Name $kubeName
48+
49+ Assert-NotNull $cluster
3350 Assert-NotNull $cluster.NodeResourceGroup
51+ Assert-AreEqual $rgName $cluster.ResourceGroupName
52+ Assert-AreEqual $kubeName $cluster.Name
53+ Assert-AreEqual $kubeVersion $cluster.KubernetesVersion
3454 Assert-AreEqual " Succeeded" $cluster.ProvisioningState
35- Assert-AreEqual 100 $cluster.MaxAgentPools
36- Assert-AreEqual " default" $cluster.AgentPoolProfiles.Name
37- Assert-AreEqual 1 $cluster.AgentPoolProfiles.Length
38- Assert-AreEqual 3 $cluster.AgentPoolProfiles [0 ].Count
39- Assert-NotNull $cluster.AgentPoolProfiles [0 ].NodeImageVersion
40-
41- Write-Host " ##[section]Start to retrieve Aks node pool : Get-AzAksNodePool"
42- $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
43- Write-Host " ##[section]Finished retrieving Aks node pool : Get-AzAksNodePool"
44-
45- Assert-NotNull $pools.VmSize
46- Assert-NotNull $pools.OsDiskSizeGB
47- Assert-NotNull $pools.OrchestratorVersion
48- Assert-NotNull $pools.NodeImageVersion
49- Assert-NotNull $pools.Id
50- Assert-AreEqual " Managed" $pools.OsDiskType
51- Assert-AreEqual " OS" $pools.KubeletDiskType
52- Assert-AreEqual 30 $pools.MaxPods
53- Assert-AreEqual " Linux" $pools.OsType
54- Assert-AreEqual " Ubuntu" $pools.OsSKU
55- Assert-AreEqual " System" $pools.Mode
56- Assert-AreEqual " VirtualMachineScaleSets" $pools.AgentPoolType
57- Assert-AreEqual " Succeeded" $pools.ProvisioningState
58- Assert-AreEqual " Running" $pools.PowerState.Code
59- Assert-AreEqual 0 $pools.Tags.Count
60- Assert-AreEqual 0 $pools.NodeLabels.Count
61- Assert-AreEqual 0 $pools.NodeTaints.Count
62- Assert-AreEqual " Microsoft.ContainerService/managedClusters/agentPools" $pools.Type
63- Assert-AreEqual 3 $pools.Count
64- Assert-Null $pools.VnetSubnetID
65- Assert-Null $pools.PodSubnetID
66- Assert-Null $pools.MaxCount
67- Assert-Null $pools.MinCount
68- Assert-Null $pools.ScaleSetPriority
69- Assert-Null $pools.ScaleSetEvictionPolicy
70- Assert-Null $pools.NodePublicIPPrefixID
71- Assert-Null $pools.SpotMaxPrice
72- Assert-Null $pools.ProximityPlacementGroupID
73- Assert-Null $pools.KubeletConfig
74- Assert-Null $pools.LinuxOSConfig
75- Assert-Null $pools.EnableEncryptionAtHost
76- Assert-Null $pools.EnableUltraSSD
77- Assert-Null $pools.GpuInstanceProfile
78- Assert-Null $pools.CreationData
79- Assert-Null $pools.HostGroupID
80- Assert-False { $pools.EnableFIPS }
55+ Assert-AreEqual " node-image" $cluster.AutoUpgradeProfile.UpgradeChannel
56+
57+ $agentPool = $cluster.AgentPoolProfiles
58+
59+ Assert-NotNull $agentPool
60+ Assert-AreEqual 1 @ ($agentPool ).Length
61+ Assert-AreEqual $sysNodeName $agentPool.Name
62+ Assert-AreEqual $kubeVersion $agentPool.OrchestratorVersion
63+ Assert-AreEqual " Linux" $agentPool.OsType
64+ Assert-AreEqual " AzureLinux" $agentPool.OsSKU
65+ Assert-AreEqual " System" $agentPool.Mode
66+ Assert-AreEqual " VirtualMachineScaleSets" $agentPool.Type
67+ Assert-AreEqual $snet.Id $agentPool.VnetSubnetID
68+ Assert-AreEqual " Succeeded" $agentPool.ProvisioningState
69+ Assert-AreEqual " True" $agentPool.EnableAutoScaling
70+
71+ $nodePool = Get-AzAksNodePool - ResourceGroupName $rgName - ClusterName $kubeName
72+
73+ Assert-NotNull $nodePool
74+ Assert-AreEqual 1 @ ($nodePool ).Length
75+ Assert-AreEqual $sysNodeName $nodePool.Name
76+ Assert-AreEqual $kubeVersion $nodePool.OrchestratorVersion
77+ Assert-AreEqual " Linux" $nodePool.OsType
78+ Assert-AreEqual " AzureLinux" $nodePool.OsSKU
79+ Assert-AreEqual " System" $nodePool.Mode
80+ Assert-AreEqual " VirtualMachineScaleSets" $nodePool.AgentPoolType
81+ Assert-AreEqual $snet.Id $nodePool.VnetSubnetID
82+ Assert-AreEqual " Succeeded" $nodePool.ProvisioningState
83+ Assert-AreEqual " True" $nodePool.EnableAutoScaling
8184
8285 # step 2: update the aks cluster
83- Write-Host " ##[section]Start to update Aks cluster : Set-AzAksCluster"
84- $cluster = $cluster | Set-AzAksCluster - NodeCount 4 - EnableUptimeSLA
85- Write-Host " ##[section]Finished updating Aks cluster : Set-AzAksCluster"
86+ Write-Host " ##[section]Start to update AKS cluster : Set-AzAksCluster"
87+
88+ $cluster = $cluster | Set-AzAksCluster - NodeName $sysNodeName - NodeCount 4 - EnableNodeAutoScaling:$false
89+
90+ Write-Host " ##[section]Finished updating AKS cluster : Set-AzAksCluster"
8691
87- Assert-AreEqual 4 $cluster.AgentPoolProfiles [ 0 ].Count
88- # Assert-AreEqual "Basic " $cluster.Sku.Name
89- # Assert-AreEqual "Paid" $ cluster.Sku.Tier
92+ Assert-NotNull $cluster
93+ Assert-AreEqual " False " $cluster.AgentPoolProfiles.EnableAutoScaling
94+ Assert-AreEqual 4 $ ( $ cluster.AgentPoolProfiles ).Count
9095
9196 # step 3: create the second node pool
92- $pool1Name = " default"
93- $pool2Name = " pool2"
97+ Write-Host " ##[section]Start to create AKS node pool : New-AzAksNodePool"
9498
95- Write-Host " ##[section]Start to create Aks node pool : New-AzAksNodePool"
96- New-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName - Name $pool2Name - OsType " Windows" - OsSKU " Windows2022" - Count 1 - VmSetType VirtualMachineScaleSets
97- Write-Host " ##[section]Finished creating Aks node pool : New-AzAksNodePool"
99+ New-AzAksNodePool - ResourceGroupName $rgName - ClusterName $kubeName - Name $usrNodeName - Mode User - OsType Windows - OsSKU Windows2022 - VmSetType VirtualMachineScaleSets - Count 2
98100
99- Write-Host " ##[section]Start to retrieve Aks node pool : Get-AzAksNodePool"
100- $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
101- Write-Host " ##[section]Finished retrieving Aks node pool : Get-AzAksNodePool"
101+ Write-Host " ##[section]Finished creating AKS node pool : New-AzAksNodePool"
102102
103- Assert-AreEqual 2 $pools.Count
104- Assert-AreEqualArray " Linux" ($pools | where { $_.Name -eq $pool1Name }).OsType
105- Assert-AreEqualArray " Ubuntu" ($pools | where { $_.Name -eq $pool1Name }).OsSKU
106- Assert-AreEqualArray " Windows" ($pools | where { $_.Name -eq $pool2Name }).OsType
107- Assert-AreEqualArray " Windows2022" ($pools | where { $_.Name -eq $pool2Name }).OsSKU
103+ $nodePools = Get-AzAksNodePool - ResourceGroupName $rgName - ClusterName $kubeName
104+ $sysPool = $nodePools | Where-Object Name -eq $sysNodeName
105+ $usrPool = $nodePools | Where-Object Name -eq $usrNodeName
106+
107+ Assert-NotNull $nodePools
108+ Assert-AreEqual 2 @ ($nodePools ).Length
109+
110+ Assert-NotNull $sysPool
111+ Assert-AreEqual $sysNodeName $sysPool.Name
112+ Assert-AreEqual " System" $sysPool.Mode
113+ Assert-AreEqual " Linux" $sysPool.OsType
114+ Assert-AreEqual " AzureLinux" $sysPool.OsSKU
115+
116+ Assert-NotNull $usrPool
117+ Assert-AreEqual $usrNodeName $usrPool.Name
118+ Assert-AreEqual " User" $usrPool.Mode
119+ Assert-AreEqual " Windows" $usrPool.OsType
120+ Assert-AreEqual " Windows2022" $usrPool.OsSKU
108121
109122 # step4: update the second node pool
110123 $labels = @ {" someId" = 127 ; " tier" = " frontend" ; " environment" = " qa" }
111124 $tags = @ {" dept" = " MM" ; " costcenter" = 7777 ; " Admin" = " Cindy" }
112125
113126 Write-Host " ##[section]Start to update Aks node pool : Update-AzAksNodePool"
114- Update-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName - Name $pool2Name - NodeLabel $labels - Tag $tags
115- Write-Host " ##[section]Finished updating Aks node pool : Update-AzAksNodePool"
116127
117- Write-Host " ##[section]Start to retrieve Aks cluster : Get-AzAksCluster"
118- $cluster = Get-AzAksCluster - ResourceGroupName $resourceGroupName - Name $kubeClusterName
119- Write-Host " ##[section]Finished retrieving Aks cluster : Get-AzAksCluster"
120-
121- Assert-AreEqual 2 $cluster.AgentPoolProfiles.Count
122- Assert-AreEqual 0 ($cluster.AgentPoolProfiles | where { $_.Name -eq $pool1Name }).NodeLabels.Count
123- Assert-AreEqual 0 ($cluster.AgentPoolProfiles | where { $_.Name -eq $pool1Name }).Tags.Count
124- Assert-AreEqual 127 ($cluster.AgentPoolProfiles | where { $_.Name -eq $pool2Name }).NodeLabels.someId
125- Assert-AreEqual frontend ($cluster.AgentPoolProfiles | where { $_.Name -eq $pool2Name }).NodeLabels.tier
126- Assert-AreEqual qa ($cluster.AgentPoolProfiles | where { $_.Name -eq $pool2Name }).NodeLabels.environment
127- Assert-AreEqual MM ($cluster.AgentPoolProfiles | where { $_.Name -eq $pool2Name }).Tags.dept
128- Assert-AreEqual 7777 ($cluster.AgentPoolProfiles | where { $_.Name -eq $pool2Name }).Tags.costcenter
129- Assert-AreEqual Cindy ($cluster.AgentPoolProfiles | where { $_.Name -eq $pool2Name }).Tags.Admin
130-
131- Write-Host " ##[section]Start to retrieve Aks node pool : Get-AzAksNodePool"
132- $pools = Get-AzAksNodePool - ResourceGroupName $resourceGroupName - ClusterName $kubeClusterName
133- Write-Host " ##[section]Finished retrieving Aks node pool : Get-AzAksNodePool"
134-
135- Assert-AreEqual 2 $pools.Count
136- Assert-AreEqual 0 ($pools | where { $_.Name -eq $pool1Name }).NodeLabels.Count
137- Assert-AreEqual 0 ($pools | where { $_.Name -eq $pool1Name }).Tags.Count
138- Assert-AreEqual 127 ($pools | where { $_.Name -eq $pool2Name }).NodeLabels.someId
139- Assert-AreEqual frontend ($pools | where { $_.Name -eq $pool2Name }).NodeLabels.tier
140- Assert-AreEqual qa ($pools | where { $_.Name -eq $pool2Name }).NodeLabels.environment
141- Assert-AreEqual MM ($pools | where { $_.Name -eq $pool2Name }).Tags.dept
142- Assert-AreEqual 7777 ($pools | where { $_.Name -eq $pool2Name }).Tags.costcenter
143- Assert-AreEqual Cindy ($pools | where { $_.Name -eq $pool2Name }).Tags.Admin
128+ Update-AzAksNodePool - ResourceGroupName $rgName - ClusterName $kubeName - Name $usrNodeName - NodeLabel $labels - Tag $tags
144129
130+ Write-Host " ##[section]Finished updating Aks node pool : Update-AzAksNodePool"
131+
132+ $cluster = Get-AzAksCluster - ResourceGroupName $rgName - Name $kubeName
133+ $sysPool = $cluster.AgentPoolProfiles | Where-Object Name -eq $sysNodeName
134+ $usrPool = $cluster.AgentPoolProfiles | Where-Object Name -eq $usrNodeName
135+
136+ Assert-NotNull $cluster
137+ Assert-AreEqual 2 @ ($cluster.AgentPoolProfiles ).Length
138+
139+ Assert-NotNull $sysPool
140+ Assert-Null $sysPool.NodeLabels
141+ Assert-Null $sysPool.Tags
142+
143+ Assert-NotNull $usrPool
144+ Assert-AreEqual 127 $usrPool.NodeLabels.someId
145+ Assert-AreEqual " frontend" $usrPool.NodeLabels.tier
146+ Assert-AreEqual " qa" $usrPool.NodeLabels.environment
147+ Assert-AreEqual " MM" $usrPool.Tags.dept
148+ Assert-AreEqual 7777 $usrPool.Tags.costcenter
149+ Assert-AreEqual " Cindy" $usrPool.Tags.Admin
150+
151+ $nodePools = Get-AzAksNodePool - ResourceGroupName $rgName - ClusterName $kubeName
152+ $sysPool = $nodePools | Where-Object Name -eq $sysNodeName
153+ $usrPool = $nodePools | Where-Object Name -eq $usrNodeName
154+
155+ Assert-NotNull $nodePools
156+ Assert-AreEqual 2 @ ($nodePools ).Length
157+
158+ Assert-NotNull $sysPool
159+ Assert-AreEqual $sysPool.NodeLabels
160+ Assert-AreEqual $sysPool.Tags
161+
162+ Assert-NotNull $usrPool
163+ Assert-AreEqual 127 $usrPool.NodeLabels.someId
164+ Assert-AreEqual " frontend" $usrPool.NodeLabels.tier
165+ Assert-AreEqual " qa" $usrPool.NodeLabels.environment
166+ Assert-AreEqual " MM" $usrPool.Tags.dept
167+ Assert-AreEqual 7777 $usrPool.Tags.costcenter
168+ Assert-AreEqual " Cindy" $usrPool.Tags.Admin
169+
170+ # step 5: remove the AKS cluster
145171 Write-Host " ##[section]Start to remove Aks cluster : Remove-AzAksCluster"
172+
146173 $cluster | Remove-AzAksCluster - Force
174+
147175 Write-Host " ##[section]Finished removing Aks cluster : Remove-AzAksCluster"
176+
177+ $cluster = Get-AzAksCluster - ResourceGroupName $rgName - Name $kubeName - ErrorAction SilentlyContinue
178+ Assert-Null $cluster
148179}
0 commit comments