Skip to content

Commit 74b2df5

Browse files
authored
Merge pull request #2119 from jackfrancis/required-optional-exp-release-1.1
test cluster flavors: required, optional, experimental
2 parents 45bca31 + 1010f6b commit 74b2df5

File tree

2 files changed

+81
-79
lines changed

2 files changed

+81
-79
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ RBAC_ROOT ?= $(MANIFEST_ROOT)/rbac
134134
PULL_POLICY ?= Always
135135

136136
# Allow overriding the e2e configurations
137-
GINKGO_FOCUS ?= Workload cluster creation
138-
GINKGO_SKIP ?= Creating a GPU-enabled cluster
137+
GINKGO_FOCUS ?= \[REQUIRED\]
138+
GINKGO_SKIP ?=
139139
GINKGO_NODES ?= 3
140140
GINKGO_NOCOLOR ?= false
141141
GINKGO_ARGS ?=

test/e2e/azure_test.go

Lines changed: 79 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ var _ = Describe("Workload cluster creation", func() {
140140
})
141141

142142
if os.Getenv("LOCAL_ONLY") != "true" {
143-
Context("Creating a private cluster", func() {
143+
Context("Creating a private cluster [REQUIRED]", func() {
144144
It("Creates a public management cluster in the same vnet", func() {
145145
clusterName = getClusterName(clusterNamePrefix, "public-custom-vnet")
146146
Context("Creating a custom virtual network", func() {
@@ -202,89 +202,91 @@ var _ = Describe("Workload cluster creation", func() {
202202
fmt.Fprintf(GinkgoWriter, "INFO: skipping test requires pushing container images to external repository")
203203
}
204204

205-
It("With 3 control-plane nodes and 2 Linux and 2 Windows worker nodes", func() {
206-
clusterName = getClusterName(clusterNamePrefix, "ha")
207-
208-
// Opt into using windows with prow template
209-
Expect(os.Setenv("WINDOWS_WORKER_MACHINE_COUNT", "2")).To(Succeed())
210-
Expect(os.Setenv("K8S_FEATURE_GATES", "WindowsHostProcessContainers=true")).To(Succeed())
211-
212-
clusterctl.ApplyClusterTemplateAndWait(ctx, clusterctl.ApplyClusterTemplateAndWaitInput{
213-
ClusterProxy: bootstrapClusterProxy,
214-
ConfigCluster: clusterctl.ConfigClusterInput{
215-
LogFolder: filepath.Join(artifactFolder, "clusters", bootstrapClusterProxy.GetName()),
216-
ClusterctlConfigPath: clusterctlConfigPath,
217-
KubeconfigPath: bootstrapClusterProxy.GetKubeconfigPath(),
218-
InfrastructureProvider: clusterctl.DefaultInfrastructureProvider,
219-
Flavor: clusterctl.DefaultFlavor,
220-
Namespace: namespace.Name,
221-
ClusterName: clusterName,
222-
KubernetesVersion: e2eConfig.GetVariable(capi_e2e.KubernetesVersion),
223-
ControlPlaneMachineCount: pointer.Int64Ptr(3),
224-
WorkerMachineCount: pointer.Int64Ptr(2),
225-
},
226-
WaitForClusterIntervals: e2eConfig.GetIntervals(specName, "wait-cluster"),
227-
WaitForControlPlaneIntervals: e2eConfig.GetIntervals(specName, "wait-control-plane"),
228-
WaitForMachineDeployments: e2eConfig.GetIntervals(specName, "wait-worker-nodes"),
229-
}, result)
230-
231-
Context("Validating time synchronization", func() {
232-
AzureTimeSyncSpec(ctx, func() AzureTimeSyncSpecInput {
233-
return AzureTimeSyncSpecInput{
234-
BootstrapClusterProxy: bootstrapClusterProxy,
235-
Namespace: namespace,
236-
ClusterName: clusterName,
237-
}
205+
Context("Creating a highly available cluster [REQUIRED]", func() {
206+
It("With 3 control-plane nodes and 2 Linux and 2 Windows worker nodes", func() {
207+
clusterName = getClusterName(clusterNamePrefix, "ha")
208+
209+
// Opt into using windows with prow template
210+
Expect(os.Setenv("WINDOWS_WORKER_MACHINE_COUNT", "2")).To(Succeed())
211+
Expect(os.Setenv("K8S_FEATURE_GATES", "WindowsHostProcessContainers=true")).To(Succeed())
212+
213+
clusterctl.ApplyClusterTemplateAndWait(ctx, clusterctl.ApplyClusterTemplateAndWaitInput{
214+
ClusterProxy: bootstrapClusterProxy,
215+
ConfigCluster: clusterctl.ConfigClusterInput{
216+
LogFolder: filepath.Join(artifactFolder, "clusters", bootstrapClusterProxy.GetName()),
217+
ClusterctlConfigPath: clusterctlConfigPath,
218+
KubeconfigPath: bootstrapClusterProxy.GetKubeconfigPath(),
219+
InfrastructureProvider: clusterctl.DefaultInfrastructureProvider,
220+
Flavor: clusterctl.DefaultFlavor,
221+
Namespace: namespace.Name,
222+
ClusterName: clusterName,
223+
KubernetesVersion: e2eConfig.GetVariable(capi_e2e.KubernetesVersion),
224+
ControlPlaneMachineCount: pointer.Int64Ptr(3),
225+
WorkerMachineCount: pointer.Int64Ptr(2),
226+
},
227+
WaitForClusterIntervals: e2eConfig.GetIntervals(specName, "wait-cluster"),
228+
WaitForControlPlaneIntervals: e2eConfig.GetIntervals(specName, "wait-control-plane"),
229+
WaitForMachineDeployments: e2eConfig.GetIntervals(specName, "wait-worker-nodes"),
230+
}, result)
231+
232+
Context("Validating time synchronization", func() {
233+
AzureTimeSyncSpec(ctx, func() AzureTimeSyncSpecInput {
234+
return AzureTimeSyncSpecInput{
235+
BootstrapClusterProxy: bootstrapClusterProxy,
236+
Namespace: namespace,
237+
ClusterName: clusterName,
238+
}
239+
})
238240
})
239-
})
240241

241-
Context("Validating failure domains", func() {
242-
AzureFailureDomainsSpec(ctx, func() AzureFailureDomainsSpecInput {
243-
return AzureFailureDomainsSpecInput{
244-
BootstrapClusterProxy: bootstrapClusterProxy,
245-
Cluster: result.Cluster,
246-
Namespace: namespace,
247-
ClusterName: clusterName,
248-
}
242+
Context("Validating failure domains", func() {
243+
AzureFailureDomainsSpec(ctx, func() AzureFailureDomainsSpecInput {
244+
return AzureFailureDomainsSpecInput{
245+
BootstrapClusterProxy: bootstrapClusterProxy,
246+
Cluster: result.Cluster,
247+
Namespace: namespace,
248+
ClusterName: clusterName,
249+
}
250+
})
249251
})
250-
})
251252

252-
Context("Creating an accessible load balancer", func() {
253-
AzureLBSpec(ctx, func() AzureLBSpecInput {
254-
return AzureLBSpecInput{
255-
BootstrapClusterProxy: bootstrapClusterProxy,
256-
Namespace: namespace,
257-
ClusterName: clusterName,
258-
SkipCleanup: skipCleanup,
259-
}
253+
Context("Creating an accessible load balancer", func() {
254+
AzureLBSpec(ctx, func() AzureLBSpecInput {
255+
return AzureLBSpecInput{
256+
BootstrapClusterProxy: bootstrapClusterProxy,
257+
Namespace: namespace,
258+
ClusterName: clusterName,
259+
SkipCleanup: skipCleanup,
260+
}
261+
})
260262
})
261-
})
262263

263-
Context("Validating network policies", func() {
264-
AzureNetPolSpec(ctx, func() AzureNetPolSpecInput {
265-
return AzureNetPolSpecInput{
266-
BootstrapClusterProxy: bootstrapClusterProxy,
267-
Namespace: namespace,
268-
ClusterName: clusterName,
269-
SkipCleanup: skipCleanup,
270-
}
264+
Context("Validating network policies", func() {
265+
AzureNetPolSpec(ctx, func() AzureNetPolSpecInput {
266+
return AzureNetPolSpecInput{
267+
BootstrapClusterProxy: bootstrapClusterProxy,
268+
Namespace: namespace,
269+
ClusterName: clusterName,
270+
SkipCleanup: skipCleanup,
271+
}
272+
})
271273
})
272-
})
273274

274-
Context("Creating an accessible load balancer for windows", func() {
275-
AzureLBSpec(ctx, func() AzureLBSpecInput {
276-
return AzureLBSpecInput{
277-
BootstrapClusterProxy: bootstrapClusterProxy,
278-
Namespace: namespace,
279-
ClusterName: clusterName,
280-
SkipCleanup: skipCleanup,
281-
Windows: true,
282-
}
275+
Context("Creating an accessible load balancer for windows", func() {
276+
AzureLBSpec(ctx, func() AzureLBSpecInput {
277+
return AzureLBSpecInput{
278+
BootstrapClusterProxy: bootstrapClusterProxy,
279+
Namespace: namespace,
280+
ClusterName: clusterName,
281+
SkipCleanup: skipCleanup,
282+
Windows: true,
283+
}
284+
})
283285
})
284286
})
285287
})
286288

287-
Context("Creating a ipv6 control-plane cluster", func() {
289+
Context("Creating a ipv6 control-plane cluster [REQUIRED]", func() {
288290
It("With ipv6 worker node", func() {
289291
clusterName = getClusterName(clusterNamePrefix, "ipv6")
290292
clusterctl.ApplyClusterTemplateAndWait(ctx, clusterctl.ApplyClusterTemplateAndWaitInput{
@@ -330,7 +332,7 @@ var _ = Describe("Workload cluster creation", func() {
330332
})
331333
})
332334

333-
Context("Creating a VMSS cluster", func() {
335+
Context("Creating a VMSS cluster [REQUIRED]", func() {
334336
It("with a single control plane node and an AzureMachinePool with 2 Linux and 2 Windows worker nodes", func() {
335337
clusterName = getClusterName(clusterNamePrefix, "vmss")
336338

@@ -409,7 +411,7 @@ var _ = Describe("Workload cluster creation", func() {
409411
// You can override the default SKU `Standard_NV6` and `Standard_LRS` storage by setting
410412
// the `AZURE_GPU_NODE_MACHINE_TYPE` and `AZURE_GPU_NODE_STORAGE_TYPE` environment variables.
411413
// See https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/ for pricing.
412-
Context("Creating a GPU-enabled cluster", func() {
414+
Context("Creating a GPU-enabled cluster [OPTIONAL]", func() {
413415
It("with a single control plane node and 1 node", func() {
414416
clusterName = getClusterName(clusterNamePrefix, "gpu")
415417
clusterctl.ApplyClusterTemplateAndWait(ctx, clusterctl.ApplyClusterTemplateAndWaitInput{
@@ -451,7 +453,7 @@ var _ = Describe("Workload cluster creation", func() {
451453

452454
// ci-e2e.sh and Prow CI skip this test by default.
453455
// To include this test, set `GINKGO_SKIP=""`.
454-
Context("Creating a cluster that uses the external cloud provider", func() {
456+
Context("Creating a cluster that uses the external cloud provider [OPTIONAL]", func() {
455457
It("with a 1 control plane nodes and 2 worker nodes", func() {
456458
clusterName = getClusterName(clusterNamePrefix, "oot")
457459
clusterctl.ApplyClusterTemplateAndWait(ctx, clusterctl.ApplyClusterTemplateAndWaitInput{
@@ -486,7 +488,7 @@ var _ = Describe("Workload cluster creation", func() {
486488
})
487489
})
488490

489-
Context("Creating an AKS cluster", func() {
491+
Context("Creating an AKS cluster [EXPERIMENTAL]", func() {
490492
It("with a single control plane node and 1 node", func() {
491493
clusterName = getClusterName(clusterNamePrefix, "aks")
492494
kubernetesVersion, err := GetAKSKubernetesVersion(ctx, e2eConfig)
@@ -527,7 +529,7 @@ var _ = Describe("Workload cluster creation", func() {
527529
})
528530
})
529531

530-
Context("Creating a Windows Enabled cluster with dockershim", func() {
532+
Context("Creating a Windows Enabled cluster with dockershim [OPTIONAL]", func() {
531533
// Requires 3 control planes due to https://github.com/kubernetes-sigs/cluster-api-provider-azure/issues/857
532534
It("With 3 control-plane nodes and 1 Linux worker node and 1 Windows worker node", func() {
533535
clusterName = getClusterName(clusterNamePrefix, "win-ha")

0 commit comments

Comments
 (0)