Skip to content

Commit e5ef1e6

Browse files
committed
test: add EKS test
1 parent 7146608 commit e5ef1e6

File tree

4 files changed

+59
-0
lines changed

4 files changed

+59
-0
lines changed

.github/workflows/checks.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ jobs:
7070
- {"provider": "Docker", "kubernetesMinor": "v1.32", "kubernetesVersion": "v1.32.8"}
7171
- {"provider": "Docker", "kubernetesMinor": "v1.33", "kubernetesVersion": "v1.33.4"}
7272
- {"provider": "Docker", "kubernetesMinor": "v1.34", "kubernetesVersion": "v1.34.0"}
73+
# CAPA does not support AL2023 which is required starting with Kubernetes v1.33.
74+
- {"provider": "EKS", "kubernetesMinor": "v1.32", "kubernetesVersion": "v1.32.9"}
7375
# Uncomment below once we have the ability to run e2e tests on other providers from GHA.
7476
# - {"provider": "AWS", "kubernetesMinor": "v1.29", "kubernetesVersion": "v1.29.6"}
7577
fail-fast: false

test/e2e/config/caren.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,23 @@ providers:
7272
- old: --metrics-addr=127.0.0.1:8080
7373
new: --metrics-addr=:8080
7474

75+
- name: eks
76+
type: InfrastructureProvider
77+
versions:
78+
- name: "${CAPA_VERSION}"
79+
value: "https://github.com/kubernetes-sigs/cluster-api-provider-aws/releases/download/${CAPA_VERSION}/infrastructure-components.yaml"
80+
type: "url"
81+
contract: v1beta1
82+
files:
83+
- sourcePath: "../data/shared/v1beta1-capa/metadata.yaml"
84+
- sourcePath: "../../../charts/cluster-api-runtime-extensions-nutanix/defaultclusterclasses/eks-cluster-class.yaml"
85+
targetName: clusterclass-eks-quick-start.yaml
86+
- sourcePath: "../../../examples/capi-quick-start/eks-cluster-cilium-helm-addon.yaml"
87+
targetName: cluster-template-topology-cilium-helm-addon.yaml
88+
replacements:
89+
- old: --metrics-addr=127.0.0.1:8080
90+
new: --metrics-addr=:8080
91+
7592
- name: docker
7693
type: InfrastructureProvider
7794
versions:

test/e2e/ownerreference_helpers.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,14 @@ const (
4040
awsClusterTemplateKind = "AWSClusterTemplate"
4141
awsClusterControllerIdentityKind = "AWSClusterControllerIdentity"
4242

43+
// EKS-specific types
44+
awsManagedClusterKind = "AWSManagedCluster"
45+
awsManagedClusterTemplateKind = "AWSManagedClusterTemplate"
46+
awsManagedControlPlaneKind = "AWSManagedControlPlane"
47+
awsManagedControlPlaneTemplateKind = "AWSManagedControlPlaneTemplate"
48+
eksConfigKind = "EKSConfig"
49+
eksConfigTemplateKind = "EKSConfigTemplate"
50+
4351
nutanixMachineKind = "NutanixMachine"
4452
nutanixMachineTemplateKind = "NutanixMachineTemplate"
4553
nutanixClusterKind = "NutanixCluster"
@@ -161,6 +169,35 @@ var (
161169
},
162170
}
163171

172+
// EKSInfraOwnerReferenceAssertions maps EKS Infrastructure types to functions which return an error if the passed
173+
// OwnerReferences aren't as expected.
174+
EKSInfraOwnerReferenceAssertions = map[string]func(types.NamespacedName, []metav1.OwnerReference) error{
175+
awsManagedClusterKind: func(_ types.NamespacedName, owners []metav1.OwnerReference) error {
176+
// AWSManagedCluster must be owned and controlled by a Cluster.
177+
return framework.HasExactOwners(owners, clusterController)
178+
},
179+
awsManagedClusterTemplateKind: func(_ types.NamespacedName, owners []metav1.OwnerReference) error {
180+
// AWSManagedClusterTemplate must be owned by a ClusterClass.
181+
return framework.HasExactOwners(owners, clusterClassOwner)
182+
},
183+
awsManagedControlPlaneKind: func(_ types.NamespacedName, owners []metav1.OwnerReference) error {
184+
// AWSManagedControlPlane must be owned and controlled by a Cluster.
185+
return framework.HasExactOwners(owners, clusterController)
186+
},
187+
awsManagedControlPlaneTemplateKind: func(_ types.NamespacedName, owners []metav1.OwnerReference) error {
188+
// AWSManagedControlPlaneTemplate must be owned by a ClusterClass.
189+
return framework.HasExactOwners(owners, clusterClassOwner)
190+
},
191+
eksConfigKind: func(_ types.NamespacedName, owners []metav1.OwnerReference) error {
192+
// EKSConfig must be owned and controlled by a Machine.
193+
return framework.HasExactOwners(owners, machineController)
194+
},
195+
eksConfigTemplateKind: func(_ types.NamespacedName, owners []metav1.OwnerReference) error {
196+
// EKSConfigTemplate must be owned by a ClusterClass.
197+
return framework.HasExactOwners(owners, clusterClassOwner)
198+
},
199+
}
200+
164201
// NutanixInfraOwnerReferenceAssertions maps Nutanix Infrastructure types to functions which return an error
165202
// if the passed OwnerReferences aren't as expected.
166203
NutanixInfraOwnerReferenceAssertions = map[string]func(types.NamespacedName, []metav1.OwnerReference) error{

test/e2e/quick_start_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ var _ = Describe("Quick start", func() {
4747
{provider: "AWS", cniProvider: "Cilium", addonStrategy: "HelmAddon"},
4848
{provider: "AWS", cniProvider: "Cilium", addonStrategy: "ClusterResourceSet"},
4949

50+
{provider: "EKS", cniProvider: "Cilium", addonStrategy: "HelmAddon"},
51+
5052
{provider: "Nutanix", cniProvider: "Cilium", addonStrategy: "HelmAddon"},
5153
{provider: "Nutanix", cniProvider: "Cilium", addonStrategy: "ClusterResourceSet"},
5254
{provider: "Nutanix", cniProvider: "Cilium", addonStrategy: "HelmAddon", modifier: "failuredomains"},
@@ -206,6 +208,7 @@ var _ = Describe("Quick start", func() {
206208
capiframework.KubeadmBootstrapOwnerReferenceAssertions,
207209
capiframework.KubeadmControlPlaneOwnerReferenceAssertions,
208210
AWSInfraOwnerReferenceAssertions,
211+
EKSInfraOwnerReferenceAssertions,
209212
NutanixInfraOwnerReferenceAssertions,
210213
AddonReferenceAssertions,
211214
KubernetesReferenceAssertions,

0 commit comments

Comments
 (0)