@@ -35,262 +35,6 @@ func TestAzureActuator(t *testing.T) {
3535 expectedErr bool
3636 expectedLogs []string
3737 }{
38- // < 4.12
39- {
40- name : "generate single machineset for single zone" ,
41- clusterDeployment : testAzureClusterDeployment (),
42- pool : testAzurePool (),
43- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
44- mockListResourceSKUs (mockCtrl , client , []string {"zone1" })
45- mockGetVMCapabilities (client , "V1,V2" )
46- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
47- },
48- expectedMachineSetReplicas : map [string ]int64 {
49- generateAzureMachineSetName ("zone1" ): 3 ,
50- },
51- },
52- {
53- name : "generate machinesets across zones" ,
54- clusterDeployment : testAzureClusterDeployment (),
55- pool : testAzurePool (),
56- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
57- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
58- mockGetVMCapabilities (client , "V1,V2" )
59- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
60- },
61- expectedMachineSetReplicas : map [string ]int64 {
62- generateAzureMachineSetName ("zone1" ): 1 ,
63- generateAzureMachineSetName ("zone2" ): 1 ,
64- generateAzureMachineSetName ("zone3" ): 1 ,
65- },
66- },
67- {
68- name : "generate machinesets for specified zones" ,
69- clusterDeployment : testAzureClusterDeployment (),
70- pool : func () * hivev1.MachinePool {
71- pool := testAzurePool ()
72- pool .Spec .Platform .Azure .Zones = []string {"zone1" , "zone2" , "zone3" }
73- return pool
74- }(),
75- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
76- mockGetVMCapabilities (client , "V1,V2" )
77- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
78- },
79- expectedMachineSetReplicas : map [string ]int64 {
80- generateAzureMachineSetName ("zone1" ): 1 ,
81- generateAzureMachineSetName ("zone2" ): 1 ,
82- generateAzureMachineSetName ("zone3" ): 1 ,
83- },
84- },
85- {
86- name : "default network fields" ,
87- clusterDeployment : testAzureClusterDeployment (),
88- pool : testAzurePool (),
89- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
90- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
91- mockGetVMCapabilities (client , "V1,V2" )
92- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
93- },
94- expectedMachineSetReplicas : map [string ]int64 {
95- generateAzureMachineSetName ("zone1" ): 1 ,
96- generateAzureMachineSetName ("zone2" ): 1 ,
97- generateAzureMachineSetName ("zone3" ): 1 ,
98- },
99- extraProviderSpecValidation : func (t * testing.T , providerSpec * machineapi.AzureMachineProviderSpec ) {
100- assert .Equal (t , testInfraID + "-rg" , providerSpec .NetworkResourceGroup , "unexpected ComputeSubnet => Subnet" )
101- assert .Equal (t , testInfraID + "-worker-subnet" , providerSpec .Subnet , "unexpected ComputeSubnet => Subnet" )
102- assert .Equal (t , testInfraID + "-vnet" , providerSpec .Vnet , "unexpected VirtualNetwork => Vnet" )
103- assert .False (t , providerSpec .AcceleratedNetworking , "expected basic networking" )
104- assert .Equal (t , providerSpec .PublicLoadBalancer , testInfraID , "expected default (clusterID) public load balancer" )
105- },
106- },
107- {
108- name : "set custom network fields" ,
109- clusterDeployment : testAzureClusterDeployment (),
110- pool : func () * hivev1.MachinePool {
111- pool := testAzurePool ()
112- pool .Spec .Platform .Azure .NetworkResourceGroupName = "some-rg"
113- pool .Spec .Platform .Azure .ComputeSubnet = "some-subnet"
114- pool .Spec .Platform .Azure .VirtualNetwork = "some-vnet"
115- pool .Spec .Platform .Azure .VMNetworkingType = "Accelerated"
116- pool .Spec .Platform .Azure .OutboundType = "UserDefinedRouting"
117- return pool
118- }(),
119- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
120- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
121- mockGetVMCapabilities (client , "V1,V2" )
122- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
123- },
124- expectedMachineSetReplicas : map [string ]int64 {
125- generateAzureMachineSetName ("zone1" ): 1 ,
126- generateAzureMachineSetName ("zone2" ): 1 ,
127- generateAzureMachineSetName ("zone3" ): 1 ,
128- },
129- extraProviderSpecValidation : func (t * testing.T , providerSpec * machineapi.AzureMachineProviderSpec ) {
130- assert .Equal (t , "some-rg" , providerSpec .NetworkResourceGroup , "unexpected ComputeSubnet => Subnet" )
131- assert .Equal (t , "some-subnet" , providerSpec .Subnet , "unexpected ComputeSubnet => Subnet" )
132- assert .Equal (t , "some-vnet" , providerSpec .Vnet , "unexpected VirtualNetwork => Vnet" )
133- assert .True (t , providerSpec .AcceleratedNetworking , "expected accelerated networking" )
134- assert .Equal (t , providerSpec .PublicLoadBalancer , "" , "expected empty public load balancer with UserDefinedRouting" )
135- },
136- },
137- {
138- name : "more replicas than zones" ,
139- clusterDeployment : testAzureClusterDeployment (),
140- pool : func () * hivev1.MachinePool {
141- p := testAzurePool ()
142- p .Spec .Replicas = ptr .To (int64 (5 ))
143- return p
144- }(),
145- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
146- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
147- mockGetVMCapabilities (client , "V1,V2" )
148- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
149- },
150- expectedMachineSetReplicas : map [string ]int64 {
151- generateAzureMachineSetName ("zone1" ): 2 ,
152- generateAzureMachineSetName ("zone2" ): 2 ,
153- generateAzureMachineSetName ("zone3" ): 1 ,
154- },
155- },
156- {
157- name : "more zones than replicas" ,
158- clusterDeployment : testAzureClusterDeployment (),
159- pool : testAzurePool (),
160- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
161- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" , "zone4" , "zone5" })
162- mockGetVMCapabilities (client , "V1,V2" )
163- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
164- },
165- expectedMachineSetReplicas : map [string ]int64 {
166- generateAzureMachineSetName ("zone1" ): 1 ,
167- generateAzureMachineSetName ("zone2" ): 1 ,
168- generateAzureMachineSetName ("zone3" ): 1 ,
169- generateAzureMachineSetName ("zone4" ): 0 ,
170- generateAzureMachineSetName ("zone5" ): 0 ,
171- },
172- },
173- {
174- name : "list zones returns zero" ,
175- clusterDeployment : testAzureClusterDeployment (),
176- pool : testAzurePool (),
177- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
178- mockListResourceSKUs (mockCtrl , client , []string {})
179- mockGetVMCapabilities (client , "V1,V2" )
180- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
181- },
182- expectedMachineSetReplicas : map [string ]int64 {
183- generateAzureMachineSetName ("" ): 3 , // Non-zoned deployment
184- },
185- expectedLogs : []string {"No availability zones detected for region. Using non-zoned deployment." },
186- },
187- {
188- name : "default V1 image exists and instance supports V1 images" ,
189- clusterDeployment : testAzureClusterDeployment (),
190- pool : testAzurePool (),
191- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
192- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
193- mockGetVMCapabilities (client , "V1,V2" )
194- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 )})
195- },
196- expectedMachineSetReplicas : map [string ]int64 {
197- generateAzureMachineSetName ("zone1" ): 1 ,
198- generateAzureMachineSetName ("zone2" ): 1 ,
199- generateAzureMachineSetName ("zone3" ): 1 ,
200- },
201- // V1 image is chosen for machinepool
202- expectedImage : & machineapi.Image {
203- ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345" ,
204- },
205- },
206- {
207- name : "default V1 and V2 images exist but instance only supports V1 images" ,
208- clusterDeployment : testAzureClusterDeployment (),
209- pool : testAzurePool (),
210- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
211- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
212- mockGetVMCapabilities (client , "V1" )
213- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 ), testAzureImage (compute .HyperVGenerationTypesV2 )})
214- },
215- expectedMachineSetReplicas : map [string ]int64 {
216- generateAzureMachineSetName ("zone1" ): 1 ,
217- generateAzureMachineSetName ("zone2" ): 1 ,
218- generateAzureMachineSetName ("zone3" ): 1 ,
219- },
220- // V1 image is chosen for machinepool
221- expectedImage : & machineapi.Image {
222- ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345" ,
223- },
224- },
225- {
226- name : "default V1 and V2 images exist and instance supports V1 and V2 images" ,
227- clusterDeployment : testAzureClusterDeployment (),
228- pool : testAzurePool (),
229- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
230- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
231- mockGetVMCapabilities (client , "V1,V2" )
232- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 ), testAzureImage (compute .HyperVGenerationTypesV2 )})
233- },
234- expectedMachineSetReplicas : map [string ]int64 {
235- generateAzureMachineSetName ("zone1" ): 1 ,
236- generateAzureMachineSetName ("zone2" ): 1 ,
237- generateAzureMachineSetName ("zone3" ): 1 ,
238- },
239- // V2 ("-gen2") image is chosen for machinepool
240- expectedImage : & machineapi.Image {
241- ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345-gen2" ,
242- },
243- },
244- {
245- name : "default V1 and V2 images exist but instance only supports V2 images" ,
246- clusterDeployment : testAzureClusterDeployment (),
247- pool : testAzurePool (),
248- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
249- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
250- mockGetVMCapabilities (client , "V2" )
251- mockListImagesByResourceGroup (client , []compute.Image {testAzureImage (compute .HyperVGenerationTypesV1 ), testAzureImage (compute .HyperVGenerationTypesV2 )})
252- },
253- expectedMachineSetReplicas : map [string ]int64 {
254- generateAzureMachineSetName ("zone1" ): 1 ,
255- generateAzureMachineSetName ("zone2" ): 1 ,
256- generateAzureMachineSetName ("zone3" ): 1 ,
257- },
258- // V2 ("-gen2") image is chosen for machinepool
259- expectedImage : & machineapi.Image {
260- ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345-gen2" ,
261- },
262- },
263- {
264- name : "machinepool provides osImage" ,
265- clusterDeployment : testAzureClusterDeployment (),
266- pool : func () * hivev1.MachinePool {
267- mp := testAzurePool ()
268- mp .Spec .Platform .Azure .OSImage = & hivev1azure.OSImage {
269- Publisher : "testpublisher" ,
270- Offer : "testoffer" ,
271- SKU : "testsku" ,
272- Version : "testversion" ,
273- }
274- return mp
275- }(),
276- mockAzureClient : func (mockCtrl * gomock.Controller , client * mockazure.MockClient ) {
277- mockGetVMCapabilities (client , "V1,V2" )
278- mockListResourceSKUs (mockCtrl , client , []string {"zone1" , "zone2" , "zone3" })
279- },
280- expectedMachineSetReplicas : map [string ]int64 {
281- generateAzureMachineSetName ("zone1" ): 1 ,
282- generateAzureMachineSetName ("zone2" ): 1 ,
283- generateAzureMachineSetName ("zone3" ): 1 ,
284- },
285- expectedImage : & machineapi.Image {
286- Publisher : "testpublisher" ,
287- Offer : "testoffer" ,
288- SKU : "testsku" ,
289- Version : "testversion" ,
290- Type : "MarketplaceWithPlan" ,
291- },
292- },
293- // >= 4.12
29438 {
29539 name : "generate single machineset for single zone (4.12+)" ,
29640 clusterDeployment : testAzureClusterDeployment412 (),
@@ -403,7 +147,7 @@ func TestAzureActuator(t *testing.T) {
403147 },
404148 // V1 image is chosen for machinepool
405149 expectedImage : & machineapi.Image {
406- ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345" ,
150+ ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345/versions/latest " ,
407151 },
408152 },
409153 {
@@ -422,7 +166,7 @@ func TestAzureActuator(t *testing.T) {
422166 },
423167 // V1 image is chosen for machinepool
424168 expectedImage : & machineapi.Image {
425- ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345" ,
169+ ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345/versions/latest " ,
426170 },
427171 },
428172 {
@@ -441,7 +185,7 @@ func TestAzureActuator(t *testing.T) {
441185 },
442186 // V2 ("-gen2") image is chosen for machinepool
443187 expectedImage : & machineapi.Image {
444- ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345-gen2" ,
188+ ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345-gen2/versions/latest " ,
445189 },
446190 },
447191 {
@@ -460,7 +204,7 @@ func TestAzureActuator(t *testing.T) {
460204 },
461205 // V2 ("-gen2") image is chosen for machinepool
462206 expectedImage : & machineapi.Image {
463- ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345-gen2" ,
207+ ResourceID : "/resourceGroups/foo-12345-rg/providers/Microsoft.Compute/galleries/gallery_foo_12345/images/foo-12345-gen2/versions/latest " ,
464208 },
465209 },
466210 {
0 commit comments