Skip to content

Commit 156711b

Browse files
authored
ci: split dualstack and overlay e2e tests by operating system (#3431)
* split dualstack e2e tests by os split dualstack remove windows to debug remove dup remove unknown stage remove windows from cluster name add windows vm size add windows and linux specific parameters make hybrid windows test on windows only dualstack * split overlay e2e tests by os fix win cluster overlay always being linux only * pick: increase load test (control plane scale) timeout * remove if structure since win nodepool should never start off existing on cluster create * add aliases for new cluster types for compatability * address feedback
1 parent b3f670f commit 156711b

File tree

6 files changed

+109
-139
lines changed

6 files changed

+109
-139
lines changed

.pipelines/pipeline.yaml

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -283,14 +283,27 @@ stages:
283283
# Azure Overlay E2E tests
284284
- template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml
285285
parameters:
286-
name: "azure_overlay_e2e"
287-
displayName: Azure Overlay
286+
name: "linux_azure_overlay_e2e"
287+
displayName: Azure Overlay Linux
288288
os: linux
289289
clusterType: overlay-byocni-up
290-
clusterName: "azovere2e"
290+
clusterName: "linuxazovere2e"
291291
vmSize: Standard_B2ms
292292
k8sVersion: ""
293293
dependsOn: "containerize"
294+
scaleup: 100
295+
296+
- template: singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml
297+
parameters:
298+
name: "win_azure_overlay_e2e"
299+
displayName: Azure Overlay Windows
300+
os: windows
301+
clusterType: overlay-byocni-up
302+
clusterName: "winazovere2e"
303+
vmSize: Standard_B2ms
304+
k8sVersion: ""
305+
dependsOn: "containerize"
306+
scaleup: 50
294307

295308
# Azure Overlay E2E Stateless CNI tests
296309
- template: singletenancy/azure-cni-overlay-stateless/azure-cni-overlay-stateless-e2e-job-template.yaml
@@ -357,20 +370,33 @@ stages:
357370
# CNI dual stack overlay E2E tests
358371
- template: singletenancy/dualstack-overlay/dualstackoverlay-e2e-job-template.yaml
359372
parameters:
360-
name: "dualstackoverlay_e2e"
361-
displayName: AKS DualStack Overlay
373+
name: "linux_dualstackoverlay_e2e"
374+
displayName: AKS DualStack Overlay Linux
362375
os: linux
363376
clusterType: dualstack-overlay-byocni-up
364-
clusterName: "dsovere2e"
377+
clusterName: "linuxdsovere2e"
378+
vmSize: Standard_B2ms
379+
dependsOn: "containerize"
380+
scaleup: 100
381+
382+
- template: singletenancy/dualstack-overlay/dualstackoverlay-e2e-job-template.yaml
383+
parameters:
384+
name: "win_dualstackoverlay_e2e"
385+
displayName: AKS DualStack Overlay Windows
386+
os: windows
387+
clusterType: dualstack-overlay-byocni-up
388+
clusterName: "windsovere2e"
365389
vmSize: Standard_B2ms
366390
dependsOn: "containerize"
391+
scaleup: 50
367392

368393
- stage: delete
369394
displayName: Delete Clusters
370395
condition: always()
371396
dependsOn:
372397
- setup
373-
- azure_overlay_e2e
398+
- linux_azure_overlay_e2e
399+
- win_azure_overlay_e2e
374400
- azure_overlay_stateless_e2e
375401
- aks_swift_e2e
376402
- cilium_e2e
@@ -380,7 +406,8 @@ stages:
380406
- aks_ubuntu_22_linux_e2e
381407
- aks_swift_vnetscale_e2e
382408
- aks_windows_22_e2e
383-
- dualstackoverlay_e2e
409+
- linux_dualstackoverlay_e2e
410+
- win_dualstackoverlay_e2e
384411
- cilium_dualstackoverlay_e2e
385412
variables:
386413
commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ]
@@ -407,9 +434,13 @@ stages:
407434
name: cilium_h_overlay_e2e
408435
clusterName: "cilwhleovere2e"
409436
region: $(REGION_AKS_CLUSTER_TEST)
410-
azure_overlay_e2e:
411-
name: azure_overlay_e2e
412-
clusterName: "azovere2e"
437+
linux_azure_overlay_e2e:
438+
name: linux_azure_overlay_e2e
439+
clusterName: "linuxazovere2e"
440+
region: $(REGION_AKS_CLUSTER_TEST)
441+
windows_azure_overlay_e2e:
442+
name: win_azure_overlay_e2e
443+
clusterName: "winazovere2e"
413444
region: $(REGION_AKS_CLUSTER_TEST)
414445
azure_overlay_stateless_e2e:
415446
name: azure_overlay_stateless_e2e
@@ -431,9 +462,13 @@ stages:
431462
name: aks_windows_22_e2e
432463
clusterName: "win22e2e"
433464
region: $(REGION_AKS_CLUSTER_TEST)
434-
dualstackoverlay_e2e:
435-
name: dualstackoverlay_e2e
436-
clusterName: "dsovere2e"
465+
linux_dualstackoverlay_e2e:
466+
name: linux_dualstackoverlay_e2e
467+
clusterName: "linuxdsovere2e"
468+
region: $(REGION_DUALSTACKOVERLAY_CLUSTER_TEST)
469+
windows_dualstackoverlay_e2e:
470+
name: windows_dualstackoverlay_e2e
471+
clusterName: "windsovere2e"
437472
region: $(REGION_DUALSTACKOVERLAY_CLUSTER_TEST)
438473
cilium_dualstackoverlay_e2e:
439474
name: cilium_dualstackoverlay_e2e

.pipelines/singletenancy/azure-cni-overlay/azure-cni-overlay-e2e-job-template.yaml

Lines changed: 16 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ parameters:
66
vmSize: ""
77
k8sVersion: ""
88
dependsOn: ""
9+
scaleup: ""
10+
os: ""
911

1012
stages:
1113
- stage: ${{ parameters.clusterName }}
@@ -25,8 +27,10 @@ stages:
2527
clusterType: ${{ parameters.clusterType }}
2628
clusterName: ${{ parameters.clusterName }}-$(commitID)
2729
vmSize: ${{ parameters.vmSize }}
30+
vmSizeWin: ${{ parameters.vmSize }}
2831
k8sVersion: ${{ parameters.k8sVersion }}
2932
dependsOn: ${{ parameters.dependsOn }}
33+
os: ${{ parameters.os }}
3034
region: $(REGION_AKS_CLUSTER_TEST)
3135

3236
- stage: ${{ parameters.name }}
@@ -43,8 +47,8 @@ stages:
4347
pool:
4448
name: $(BUILD_POOL_NAME_DEFAULT)
4549
jobs:
46-
- job: ${{ parameters.name }}_linux
47-
displayName: Azure CNI Overlay Test Suite | Linux - (${{ parameters.name }})
50+
- job: ${{ parameters.name }}_${{ parameters.os }}
51+
displayName: Azure CNI Overlay Test Suite | ${{ parameters.os }} - (${{ parameters.name }})
4852
timeoutInMinutes: 120
4953
pool:
5054
name: $(BUILD_POOL_NAME_DEFAULT)
@@ -56,78 +60,31 @@ stages:
5660
parameters:
5761
name: ${{ parameters.name }}
5862
clusterName: ${{ parameters.clusterName }}-$(commitID)
59-
os: linux
60-
scaleup: 100
61-
- template: ../../templates/add-windows-nodepool-job.yaml
62-
parameters:
63-
depend: ${{ parameters.name }}_linux
64-
clusterName: ${{ parameters.clusterName }}-$(commitID)
65-
vmSize: ${{ parameters.vmSize }}
66-
- job: ${{ parameters.name }}_windows
67-
displayName: Azure CNI Overlay Test Suite | Windows - (${{ parameters.name }})
68-
timeoutInMinutes: 120
69-
dependsOn: windows_nodepool
70-
pool:
71-
name: $(BUILD_POOL_NAME_DEFAULT)
72-
demands:
73-
- agent.os -equals Linux
74-
- Role -equals $(CUSTOM_E2E_ROLE)
75-
steps:
76-
- template: azure-cni-overlay-e2e-step-template.yaml
77-
parameters:
78-
name: ${{ parameters.name }}
79-
clusterName: ${{ parameters.clusterName }}-$(commitID)
80-
os: windows
81-
scaleup: 50
63+
os: ${{ parameters.os }}
64+
scaleup: ${{ parameters.scaleup }} # 50 in windows or 100 in linux
8265

8366
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml
8467
parameters:
8568
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION)
8669
clusterName: ${{ parameters.clusterName }}-$(commitID)
8770
os: ${{ parameters.os }}
88-
dependsOn: ${{ parameters.name }}_windows
71+
dependsOn: ${{ parameters.name }}_${{ parameters.os }}
8972
datapath: true
9073
dns: true
9174
portforward: true
9275
hostport: true
9376
service: true
77+
hybridWin: ${{ eq(parameters.os, 'windows') }}
9478

95-
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml
96-
parameters:
97-
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION)
98-
clusterName: ${{ parameters.clusterName }}-$(commitID)
99-
os: windows
100-
dependsOn: cni_${{ parameters.os }}
101-
datapath: true
102-
dns: true
103-
portforward: true
104-
hostport: true
105-
service: true
106-
hybridWin: true
107-
108-
- job: failedE2ELogs_linux
109-
displayName: "Linux Failure Logs"
79+
- job: failedE2ELogs_${{ parameters.os }}
80+
displayName: "${{ parameters.os }} Failure Logs"
11081
dependsOn:
111-
- ${{ parameters.name }}_linux
112-
- cni_linux
113-
condition: in(dependencies.${{ parameters.name }}_linux.result, 'Failed')
82+
- ${{ parameters.name }}_${{ parameters.os }}
83+
- CNI_${{ parameters.os }}
84+
condition: in(dependencies.${{ parameters.name }}_${{ parameters.os }}.result, 'Failed')
11485
steps:
11586
- template: ../../templates/log-template.yaml
11687
parameters:
11788
clusterName: ${{ parameters.clusterName }}-$(commitID)
118-
os: linux
89+
os: ${{ parameters.os }}
11990
cni: cniv2
120-
121-
- job: failedE2ELogs_windows
122-
displayName: "Windows Failure Logs"
123-
dependsOn:
124-
- ${{ parameters.name }}_windows
125-
- cni_windows
126-
condition: in(dependencies.${{ parameters.name }}_windows.result, 'Failed')
127-
steps:
128-
- template: ../../templates/log-template.yaml
129-
parameters:
130-
clusterName: ${{ parameters.clusterName }}-$(commitID)
131-
os: windows
132-
cni: cniv2
133-

.pipelines/singletenancy/dualstack-overlay/dualstackoverlay-e2e-job-template.yaml

Lines changed: 19 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ parameters:
66
vmSize: ""
77
k8sVersion: ""
88
dependsOn: ""
9+
os: ""
10+
scaleup: ""
911

1012
stages:
1113
- stage: ${{ parameters.clusterName }}
@@ -25,12 +27,13 @@ stages:
2527
clusterType: ${{ parameters.clusterType }}
2628
clusterName: ${{ parameters.clusterName }}-$(commitID)
2729
vmSize: ${{ parameters.vmSize }}
30+
vmSizeWin: ${{ parameters.vmSize }}
2831
k8sVersion: ${{ parameters.k8sVersion }}
2932
dependsOn: ${{ parameters.dependsOn }}
33+
os: ${{ parameters.os }}
3034
region: $(REGION_DUALSTACKOVERLAY_CLUSTER_TEST) # Dualstack has a specific region requirement
3135

3236
- stage: ${{ parameters.name }}
33-
condition: and( succeeded(), not(eq(dependencies.dualstackoverlaye2e.result,'SucceededWithIssues')) ) # Cant use parameters in dependencies
3437
displayName: E2E - ${{ parameters.displayName }}
3538
dependsOn:
3639
- setup
@@ -44,8 +47,8 @@ stages:
4447
pool:
4548
name: $(BUILD_POOL_NAME_DEFAULT)
4649
jobs:
47-
- job: ${{ parameters.name }}_linux
48-
displayName: DualStack Overlay Test Suite | Linux - (${{ parameters.name }})
50+
- job: ${{ parameters.name }}_${{ parameters.os }}
51+
displayName: DualStack Overlay Test Suite | ${{ parameters.os }} - (${{ parameters.name }})
4952
timeoutInMinutes: 120
5053
pool:
5154
name: $(BUILD_POOL_NAME_DEFAULT)
@@ -57,77 +60,31 @@ stages:
5760
parameters:
5861
name: ${{ parameters.name }}
5962
clusterName: ${{ parameters.clusterName }}-$(commitID)
60-
os: linux
61-
scaleup: 100
62-
- template: ../../templates/add-windows-nodepool-job.yaml
63-
parameters:
64-
depend: ${{ parameters.name }}_linux
65-
clusterName: ${{ parameters.clusterName }}-$(commitID)
66-
vmSize: "Standard_D2_v3"
67-
- job: ${{ parameters.name }}_windows
68-
displayName: DualStack Overlay Test Suite | Windows - (${{ parameters.name }})
69-
timeoutInMinutes: 120
70-
dependsOn: windows_nodepool
71-
pool:
72-
name: $(BUILD_POOL_NAME_DEFAULT)
73-
demands:
74-
- agent.os -equals Linux
75-
- Role -equals $(CUSTOM_E2E_ROLE)
76-
steps:
77-
- template: dualstackoverlay-e2e-step-template.yaml
78-
parameters:
79-
name: ${{ parameters.name }}
80-
clusterName: ${{ parameters.clusterName }}-$(commitID)
81-
os: windows
82-
scaleup: 50
83-
84-
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml
85-
parameters:
86-
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION)
87-
clusterName: ${{ parameters.clusterName }}-$(commitID)
88-
os: linux
89-
dependsOn: ${{ parameters.name }}_windows
90-
dualstack: true
91-
dns: true
92-
portforward: true
93-
hostport: true
94-
service: true
63+
os: ${{ parameters.os }}
64+
scaleup: ${{ parameters.scaleup }} # 50 in windows or 100 in linux
9565

9666
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml
9767
parameters:
9868
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION)
9969
clusterName: ${{ parameters.clusterName }}-$(commitID)
100-
os: windows
101-
dependsOn: cni_linux
102-
# dualstack: true # Currently broken for scenario and blocking releases, HNS is investigating. Covered by go test in E2E step template
70+
os: ${{ parameters.os }}
71+
dependsOn: ${{ parameters.name }}_${{ parameters.os }}
72+
dualstack: ${{ eq(parameters.os, 'linux') }} # RUN IN LINUX not WINDOWS Currently broken for scenario and blocking releases, HNS is investigating. Covered by go test in E2E step template
10373
dns: true
10474
portforward: true
105-
# service: true # Currently broken for scenario and blocking releases, HNS is investigating.
75+
service: ${{ eq(parameters.os, 'linux') }} # RUN IN LINUX NOT WINDOWS Currently broken for scenario and blocking releases, HNS is investigating.
10676
hostport: true
107-
hybridWin: true
108-
109-
- job: failedE2ELogs_linux
110-
displayName: "Linux Failure Logs"
111-
dependsOn:
112-
- ${{ parameters.name }}_linux
113-
- cni_linux
114-
condition: in(dependencies.${{ parameters.name }}_linux.result, 'Failed')
115-
steps:
116-
- template: ../../templates/log-template.yaml
117-
parameters:
118-
clusterName: ${{ parameters.clusterName }}-$(commitID)
119-
os: linux
120-
cni: cniv2
77+
hybridWin: ${{ eq(parameters.os, 'windows') }}
12178

122-
- job: failedE2ELogs_windows
123-
displayName: "Windows Failure Logs"
79+
- job: failedE2ELogs_${{ parameters.os }}
80+
displayName: "${{ parameters.os }} Failure Logs"
12481
dependsOn:
125-
- ${{ parameters.name }}_windows
126-
- cni_windows
127-
condition: in(dependencies.${{ parameters.name }}_windows.result, 'Failed')
82+
- ${{ parameters.name }}_${{ parameters.os }}
83+
- CNI_${{ parameters.os }}
84+
condition: in(dependencies.${{ parameters.name }}_${{ parameters.os }}.result, 'Failed')
12885
steps:
12986
- template: ../../templates/log-template.yaml
13087
parameters:
13188
clusterName: ${{ parameters.clusterName }}-$(commitID)
132-
os: windows
89+
os: ${{ parameters.os }}
13390
cni: cniv2

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,7 @@ test-load: ## run all load tests
772772
AZURE_IPAM_VERSION=$(AZURE_IPAM_VERSION) \
773773
CNI_VERSION=$(CNI_VERSION)
774774
CNS_VERSION=$(CNS_VERSION) \
775-
go test -timeout 30m -race -tags=load ./test/integration/load... -v
775+
go test -timeout 40m -race -tags=load ./test/integration/load... -v
776776

777777
test-validate-state:
778778
cd test/integration/load && go test -mod=readonly -count=1 -timeout 30m -tags load --skip 'TestE2E*' -run ^TestValidateState

0 commit comments

Comments
 (0)