Skip to content

Commit ec401e0

Browse files
committed
test: add EKS test
1 parent 65017d9 commit ec401e0

File tree

4 files changed

+64
-1
lines changed

4 files changed

+64
-1
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: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ const (
4040
awsClusterTemplateKind = "AWSClusterTemplate"
4141
awsClusterControllerIdentityKind = "AWSClusterControllerIdentity"
4242

43+
awsManagedClusterKind = "AWSManagedCluster"
44+
awsManagedClusterTemplateKind = "AWSManagedClusterTemplate"
45+
awsManagedControlPlaneKind = "AWSManagedControlPlane"
46+
awsManagedControlPlaneTemplateKind = "AWSManagedControlPlaneTemplate"
47+
eksConfigKind = "EKSConfig"
48+
eksConfigTemplateKind = "EKSConfigTemplate"
49+
4350
nutanixMachineKind = "NutanixMachine"
4451
nutanixMachineTemplateKind = "NutanixMachineTemplate"
4552
nutanixClusterKind = "NutanixCluster"
@@ -161,6 +168,35 @@ var (
161168
},
162169
}
163170

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

test/e2e/quick_start_test.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,18 @@ var _ = Describe("Quick start", func() {
4242
// Run the Docker tests with the Serial decorator to ensure the machine running the Docker e2e tests
4343
// doesn't have resources exhausted and lead to flaky tests.
4444
{provider: "Docker", cniProvider: "Cilium", addonStrategy: "HelmAddon", decorators: []interface{}{Serial}},
45-
{provider: "Docker", cniProvider: "Cilium", addonStrategy: "ClusterResourceSet", decorators: []interface{}{Serial}},
45+
{
46+
provider: "Docker",
47+
cniProvider: "Cilium",
48+
addonStrategy: "ClusterResourceSet",
49+
decorators: []interface{}{Serial},
50+
},
4651

4752
{provider: "AWS", cniProvider: "Cilium", addonStrategy: "HelmAddon"},
4853
{provider: "AWS", cniProvider: "Cilium", addonStrategy: "ClusterResourceSet"},
4954

55+
{provider: "EKS", cniProvider: "Cilium", addonStrategy: "HelmAddon"},
56+
5057
{provider: "Nutanix", cniProvider: "Cilium", addonStrategy: "HelmAddon"},
5158
{provider: "Nutanix", cniProvider: "Cilium", addonStrategy: "ClusterResourceSet"},
5259
{provider: "Nutanix", cniProvider: "Cilium", addonStrategy: "HelmAddon", modifier: "failuredomains"},
@@ -206,6 +213,7 @@ var _ = Describe("Quick start", func() {
206213
capiframework.KubeadmBootstrapOwnerReferenceAssertions,
207214
capiframework.KubeadmControlPlaneOwnerReferenceAssertions,
208215
AWSInfraOwnerReferenceAssertions,
216+
EKSInfraOwnerReferenceAssertions,
209217
NutanixInfraOwnerReferenceAssertions,
210218
AddonReferenceAssertions,
211219
KubernetesReferenceAssertions,

0 commit comments

Comments
 (0)