Skip to content

Abstract cluster provider to add EKS (backport #169) - #191

Closed
mergify[bot] wants to merge 10 commits into
release-0.1from
mergify/bp/release-0.1/pr-169
Closed

mergify[bot] wants to merge 10 commits into
release-0.1from
mergify/bp/release-0.1/pr-169

Conversation

@mergify

@mergify mergify Bot commented Sep 22, 2026

Copy link
Copy Markdown

Abstraction of the cluster provider in order to support simultaneously bink and other kubernetes platform like EKS.


This is an automatic backport of pull request #169 done by Mergify.

The NodeProvider interface abstracts the actions for each provider and
will help to introduce additional cluster providers for running the test
suite. Examples are EKS in the near future, or Openshift in the long
run, but it is opened to other k8s platform as well.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit 2ec1980)
Move bink in its own provider implementation. If no provider is set,
then we assume bink to be default one.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit 001e9db)
Rename environment variables to decouple e2e tests from the bink
provider:

- BINK_NODE_IMAGE_DIGEST -> E2E_NODE_IMAGE_DIGEST
- BINK_LOCAL_REGISTRY_NODE_IMAGE -> E2E_NODE_IMAGE_REGISTRY
- BINK_NODE_IMAGE_UPDATE_DIGEST -> E2E_NODE_IMAGE_UPDATE_DIGEST
- BINK_NODE_IMAGE_UPDATE2_DIGEST -> E2E_NODE_IMAGE_UPDATE2_DIGEST

Add E2E_PROVIDER=bink to explicitly select the provider.

Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit 4095263)
For now, we are only targeting the TestPullSecretAuth for EKS since it
requires a pull secret for pulling the container images. Once, this
first work has been merged will tackle the rest of the test suite.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit 124c07f)

# Conflicts:
#	test/e2e/bootcnode_test.go
Implement EKSProvider that provisions e2e test nodes by launching
standalone EC2 instances that join an existing EKS cluster. The
provider discovers the Auto Scaling group for an eksctl node group
via tags, extracts its launch template, and uses it to launch new
instances.

EKSProvider implements the NodeProvider interface with:
- AddNode: launches an EC2 instance, waits for the k8s node to
  register (polling up to 10 min), and patches labels
- RemoveNode: terminates the EC2 instance and deletes the k8s node

Required env vars: EKS_CLUSTER_NAME, EKS_NODE_GROUP, AWS_REGION

Unit tests cover AddNode and RemoveNode using mock EC2 interfaces
and a fake k8s client.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit 72d8e9a)
Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit 0023325)
Previously, gather-logs was using bink ssh, in order to make it
compatible with EKS, let's use a more generic way and use the
bootc-operator daemons to fetch the logs. This will work with each
cluster provider.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit f8374f1)
Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit bcc2c2f)
Use full digest-qualified image references per provider instead of
separate registry and digest fields. Add AuthImageRef, RegistryHost,
and extractRegistryHost helpers for pull secret test support.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit 5e87ccc)
With remote registries the manifest digest and content digest can
differ. Assert on the full image ref which carries the manifest
digest rather than the locally resolved content digest.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
(cherry picked from commit e68672b)
@mergify mergify Bot added the conflicts label Sep 22, 2026
@mergify

mergify Bot commented Sep 22, 2026

Copy link
Copy Markdown
Author

Cherry-pick of 124c07f has failed:

On branch mergify/bp/release-0.1/pr-169
Your branch is ahead of 'origin/release-0.1' by 3 commits.
  (use "git push" to publish your local commits)

You are currently cherry-picking commit 124c07f.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   test/e2e/crd_smoke_test.go

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   test/e2e/bootcnode_test.go

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant