Skip to content

Run the e2e test on multiple k8s versions#89

Merged
jlebon merged 4 commits into
bootc-dev:mainfrom
alicefr:test-multiple-k8s-version
Jul 3, 2026
Merged

Run the e2e test on multiple k8s versions#89
jlebon merged 4 commits into
bootc-dev:mainfrom
alicefr:test-multiple-k8s-version

Conversation

@alicefr

@alicefr alicefr commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Test the bootc-operator on all the active kuberentes versions. The version are dynamically fetched from https://endoflife.date/api/kubernetes.json

Fixes: #48

@jlebon jlebon left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally we'd have a single buildimg in a separate job, push it to ghcr, and then the matrix test, and then another job for pushing. But pushing to ghcr is privileged and I don't want to add those privs (I think Zizmor would also complain). We could podman save and podman load I guess? It's hacky but the image is not that large either.

Comment thread .github/workflows/ci.yaml Outdated

- name: Push to GHCR
if: github.event_name == 'push'
if: github.event_name == 'push' && matrix.kube-minor == steps.defaults.outputs.kube-minor

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I understand why we need this (so that it only happens once), but that's not obvious from this. I wonder if there's a more GHA native way to do this that still avoids having to rebuild the image. Otherwise, let's at least add a comment.

@alicefr

alicefr commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator Author

Ideally we'd have a single buildimg in a separate job, push it to ghcr, and then the matrix test, and then another job for pushing. But pushing to ghcr is privileged and I don't want to add those privs (I think Zizmor would also complain). We could podman save and podman load I guess? It's hacky but the image is not that large either.

I also don't like to push to ghcr at every run of the CI and untested images.

alicefr added 4 commits July 3, 2026 15:56
Define the default kubernetes version and set it to 1.35.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
Define the build of the bootc-operator image in a separate job. This
will help to reuse the same image in parallel jobs introduce in the next
commits.

Since the image is built in a separate job, we need to save and load the
image at different steps.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
Define the push also in a separate job as the build. In order to
reference the same image, also in this stage it needs to be loaded by
the tarball created at the previous stage.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
Introduce a new step 'supported-versions' for fetching the supported
kubernetes versions. The versions are dynamically fetched from
https://endoflife.date/api/kubernetes.json.

The e2e job has a strategy fail-fast equal to false in this way, the
parallel job run independently and the other aren't killed if one fails.

Assisted-by: AI
Signed-off-by: Alice Frosi <afrosi@redhat.com>
@alicefr alicefr force-pushed the test-multiple-k8s-version branch from eb5177d to af81a9b Compare July 3, 2026 14:07

@jlebon jlebon left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, this is great!

I had to change the ruleset for main to no longer require e2e and instead require e2e (1.34), e2e (1.35), and e2e (1.36).

That's fine for now, but perhaps we should add a simple e.g. e2e-collect which just needs all the matrix branches. And then the ruleset can just require that one.

Not sure, perhaps there's a cleaner way to do this.

Comment thread Makefile
Comment on lines +25 to +27
print-var-%:
@echo $($*)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: don't really need this anymore. But fine to keep too.

@jlebon jlebon merged commit 223922b into bootc-dev:main Jul 3, 2026
12 checks passed
@alicefr alicefr deleted the test-multiple-k8s-version branch July 6, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document and test minimum k8s version supported

2 participants