Skip to content

chore(testing): refresh e2e-sandbox tools and base to current upstream - #3010

Merged
Aleksei Sviridkin (lexfrei) merged 3 commits into
mainfrom
chore/bump-e2e-sandbox
Jun 23, 2026
Merged

chore(testing): refresh e2e-sandbox tools and base to current upstream#3010
Aleksei Sviridkin (lexfrei) merged 3 commits into
mainfrom
chore/bump-e2e-sandbox

Conversation

@lexfrei

@lexfrei Aleksei Sviridkin (lexfrei) commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

What this PR does

Rebuilds the e2e test sandbox on current upstream to clear the published advisories (containerd, helm, go-git, moby/spdystream, Go stdlib) carried by the stale tool binaries and base layers.

  • base: ubuntu:22.0424.04; netcatnetcat-openbsd (on 24.04 netcat is a candidate-less virtual package, so the concrete provider must be named)
  • kubectl: 1.33.21.33.13 — stays on the 1.33 line that the e2e control plane pins at v1.33.12 (hack/e2e-prepare-cluster.bats), so client/server skew is unchanged
  • talosctl: 1.10.41.13.5 — aligns the client with the v1.13.x Talos nodes the sandbox provisions
  • helm: 3.18.33.21.2 (latest helm 3) — the e2e flow drives the v3 CLI, so it stays on the 3.x line rather than moving to the breaking 4.x
  • yq: 4.44.34.53.3
  • values.yaml: re-pinned to the rebuilt multi-arch digest (linux/amd64 + linux/arm64)

crust-gather and cozyhr already track their latest releases; flux and mc install the current release at build time. The built image's tool versions were verified in place (kubectl v1.33.13, talosctl v1.13.5, helm v3.21.2, yq v4.53.3, flux 2.8.8, ubuntu 24.04).

Closes #2891

Release note

chore(testing): refresh e2e-sandbox tools and base (ubuntu 24.04, kubectl 1.33.13, talosctl 1.13.5, helm 3.21.2)

Summary by CodeRabbit

  • Chores
    • Updated the e2e sandbox image to a new fixed digest for more consistent test runs.
    • Refreshed the sandbox build environment (Ubuntu 24.04) and upgraded tooling (Kubernetes, Talos, Helm, and yq) to newer stable versions.
    • Improved OS package setup by switching from netcat to netcat-openbsd and consolidating apt cleanup to reduce image size.
  • Documentation
    • Updated e2e testing guidance: removed the recommendation to pin the management cluster Kubernetes version, and added guidance to snapshot/restore cluster state between test groups.

Rebuilds the e2e test sandbox on current upstream to clear the published
advisories (containerd, helm, go-git, moby/spdystream, Go stdlib) carried by the
stale tool binaries and base layers:

- base: ubuntu 22.04 -> 24.04; netcat -> netcat-openbsd, since `netcat` is a
  candidate-less virtual package on 24.04
- kubectl: 1.33.2 -> 1.33.13, staying on the 1.33 line that the e2e control
  plane pins at v1.33.12, so client/server skew is unchanged
- talosctl: 1.10.4 -> 1.13.5, aligning the client with the v1.13.x Talos nodes
  the sandbox provisions
- helm: 3.18.3 -> 3.21.2 (latest helm 3); the e2e flow drives the v3 CLI, so it
  stays on the 3.x line rather than moving to the breaking 4.x
- yq: 4.44.3 -> 4.53.3
- values.yaml: re-pinned to the rebuilt multi-arch digest

crust-gather and cozyhr already track their latest releases; flux and mc install
the current release at build time.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
@github-actions github-actions Bot added area/uncategorized PR auto-labeler could not map title scope to a known area/*; please review kind/cleanup Categorizes issue or PR as related to cleanup of code, process, or technical debt labels Jun 22, 2026
@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: adeca770-f115-401c-865d-4090b47ae551

📥 Commits

Reviewing files that changed from the base of the PR and between c3ebdb3 and a1b88cf.

📒 Files selected for processing (1)
  • docs/agents/e2e-testing.md
💤 Files with no reviewable changes (1)
  • docs/agents/e2e-testing.md

📝 Walkthrough

Walkthrough

The e2e sandbox Dockerfile base image is updated from ubuntu:22.04 to ubuntu:24.04, with KUBECTL_VERSION, TALOSCTL_VERSION, HELM_VERSION, and yq all bumped to newer releases. The netcat apt package is replaced with netcat-openbsd. Documentation in the e2e prepare script is expanded to explain the Kubernetes version pinning decision, and e2e testing guidance is updated to remove outdated pinning advice and add new cluster state snapshot/restore direction. The resulting new image digest is pinned in values.yaml.

Changes

e2e Sandbox Image Bump

Layer / File(s) Summary
Dockerfile base image and tool version updates
packages/core/testing/images/e2e-sandbox/Dockerfile
Base image changed to ubuntu:24.04; KUBECTL_VERSION1.33.13, TALOSCTL_VERSION1.13.5, HELM_VERSION3.21.2; netcat replaced with netcat-openbsd; yq bumped to v4.53.3; install steps updated accordingly.
e2e infrastructure documentation updates
hack/e2e-prepare-cluster.bats, docs/agents/e2e-testing.md
Kubernetes version pinning documentation expanded in the e2e prepare script to explain cozystack-api aggregated schema crash-loop prevention; in-flight directions in e2e-testing.md updated to remove outdated kube-version pin guidance and add new cluster state snapshot/restore direction.
Image digest reference
packages/core/testing/values.yaml
e2e.image digest updated to match the newly built v1.5.0 image.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • cozystack/cozystack#2868: Related via direct changes to hack/e2e-prepare-cluster.bats around the talosctl gen config Kubernetes version pin; this PR expands documentation for the same pinning decision.
  • cozystack/cozystack#2932: Overlaps with this PR on docs/agents/e2e-testing.md in-flight directions; this PR removes the kube-version pin guidance and adds cluster state snapshot/restore direction.

Suggested labels

area/ci, size/M

Suggested reviewers

  • kvaps
  • lllamnyp
  • androndo
  • IvanHunters
  • sircthulhu

Poem

🐇 Hop, hop — Ubuntu leaps to twenty-four,
Talosctl and Helm knock on a newer door,
netcat-openbsd answers the call,
yq spins higher, digest and all.
Fresh versions pinned, the sandbox is sound —
This bunny's done bounding around! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately and concisely describes the main change: refreshing e2e-sandbox tools (kubectl, talosctl, helm, yq) and updating the base image to current upstream versions to address security advisories.
Linked Issues check ✅ Passed The PR fully satisfies issue #2891 requirements by updating all core dependencies with security advisories (containerd, helm, Go stdlib) and verifying the changes through rebuilt container image digest and updated tool versions.
Out of Scope Changes check ✅ Passed All changes are directly scoped to refreshing e2e-sandbox tools and base image for security maintenance; documentation updates reflect corresponding version pins and removed workarounds.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-e2e-sandbox

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refreshes the e2e-sandbox environment by updating the underlying base image and various tool versions. The primary goal is to resolve security advisories present in the previous tool binaries and base layers while ensuring the testing environment remains compatible with current upstream requirements.

Highlights

  • Base Image Upgrade: Updated the base image from Ubuntu 22.04 to 24.04 and switched the netcat provider to netcat-openbsd.
  • Tool Version Bumps: Refreshed versions for key testing tools: kubectl (1.33.13), talosctl (1.13.5), helm (3.21.2), and yq (4.53.3).
  • Digest Update: Updated the e2e-sandbox image digest in values.yaml to reflect the new multi-arch build.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment Gemini (@gemini-code-assist) Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on Gemini (@gemini-code-assist) comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@dosubot dosubot Bot added the area/testing Issues or PRs related to testing (e2e, bats, unit tests) label Jun 22, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request updates the e2e-sandbox Dockerfile by upgrading the base image to Ubuntu 24.04, updating several tool versions (kubectl, talosctl, helm, and yq), and switching from netcat to netcat-openbsd. It also updates the corresponding image digest in values.yaml. The reviewer suggested optimizing the Dockerfile by cleaning up the local package repository cache (rm -rf /var/lib/apt/lists/*) after the apt install command to reduce the final image size.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.


RUN apt update -q
RUN apt install -yq --no-install-recommends psmisc genisoimage ca-certificates qemu-kvm qemu-utils iproute2 iptables wget xz-utils netcat curl jq make git bash-completion
RUN apt install -yq --no-install-recommends psmisc genisoimage ca-certificates qemu-kvm qemu-utils iproute2 iptables wget xz-utils netcat-openbsd curl jq make git bash-completion

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

low

To keep the Docker image size as small as possible, it is recommended to clean up the local package repository cache by appending && rm -rf /var/lib/apt/lists/* to the apt install command.

RUN apt install -yq --no-install-recommends psmisc genisoimage ca-certificates qemu-kvm qemu-utils iproute2 iptables wget xz-utils netcat-openbsd curl jq make git bash-completion && rm -rf /var/lib/apt/lists/*

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done in f047129 — though I merged the apt update and apt install into a single RUN with && rm -rf /var/lib/apt/lists/*. Appending the cleanup to the install layer alone wouldn't shrink the image: the package index created by the separate apt update layer would persist in that earlier layer. Combining them drops it from the final image.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Correction — I've reverted this. The cache cleanup edits the Dockerfile, but the image this PR ships is pinned by a pre-built multi-arch digest that isn't being rebuilt/re-pinned in this PR, so landing the Dockerfile change alone would leave it out of sync with the shipped image (the pinned layer still carries the apt lists). Deferring the cleanup to the next e2e-sandbox image rebuild, where it's baked in and the digest re-pinned together. The base/tool bump itself is unchanged.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/core/testing/images/e2e-sandbox/Dockerfile`:
- Around line 12-13: Combine the separate RUN apt update and RUN apt install
commands in the Dockerfile into a single RUN layer using && to chain them
together, which prevents Docker from caching a stale apt index between layers.
After the apt install command, add apt cache cleanup by appending a command to
remove the apt cache directory (typically /var/lib/apt/lists/*) to reduce the
image size and ensure freshness on each rebuild.
- Around line 14-19: The Dockerfile downloads external artifacts without
integrity verification, creating supply-chain risks. Additionally, the Helm
installation on line 18 uses a script from the mutable main branch. For the
talosctl, kubectl, and yq curl commands, download the corresponding checksum
files and verify each binary using sha256sum before marking them executable. For
the Helm installer script, replace the approach that fetches from the mutable
main branch with a direct binary download from a specific stable Helm release
version, followed by checksum verification, matching the pattern used for the
other tools. This ensures all downloaded artifacts are verified against known
good checksums and eliminates reliance on mutable remote scripts.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 29e3ba38-a8a9-415c-a16d-a95ebb8e7698

📥 Commits

Reviewing files that changed from the base of the PR and between 82b8c46 and e3ed42a.

📒 Files selected for processing (2)
  • packages/core/testing/images/e2e-sandbox/Dockerfile
  • packages/core/testing/values.yaml

Comment thread packages/core/testing/images/e2e-sandbox/Dockerfile
Comment on lines 14 to +19
RUN curl -sSL "https://github.com/siderolabs/talos/releases/download/v${TALOSCTL_VERSION}/talosctl-${TARGETOS}-${TARGETARCH}" -o /usr/local/bin/talosctl \
&& chmod +x /usr/local/bin/talosctl
RUN curl -sSL "https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" -o /usr/local/bin/kubectl \
&& chmod +x /usr/local/bin/kubectl
RUN curl -sSL "https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3" | bash -s - --version "v${HELM_VERSION}"
RUN curl -sSL "https://github.com/mikefarah/yq/releases/download/v4.44.3/yq_${TARGETOS}_${TARGETARCH}" -o /usr/local/bin/yq \
RUN curl -sSL "https://github.com/mikefarah/yq/releases/download/v4.53.3/yq_${TARGETOS}_${TARGETARCH}" -o /usr/local/bin/yq \

@coderabbitai coderabbitai Bot Jun 22, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify whether download/install steps include integrity checks and detect mutable script execution.
rg -n 'talosctl-|kubectl"|get-helm-3|yq_|sha256|sha512|cosign|gpg' packages/core/testing/images/e2e-sandbox/Dockerfile

Repository: cozystack/cozystack

Length of output: 703


🏁 Script executed:

cat -n packages/core/testing/images/e2e-sandbox/Dockerfile | head -30

Repository: cozystack/cozystack

Length of output: 2155


Add integrity verification for downloaded tool artifacts (and avoid installer script from mutable main branch).

These lines fetch/execute external artifacts without checksum/signature validation. Line 18 executes a remote script from the mutable main branch, which is a supply-chain risk.

Suggested direction (example for kubectl + helm)
 RUN curl -sSL "https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl" -o /usr/local/bin/kubectl \
+ && curl -sSL "https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl.sha256" -o /tmp/kubectl.sha256 \
+ && echo "$(cat /tmp/kubectl.sha256)  /usr/local/bin/kubectl" | sha256sum -c - \
  && chmod +x /usr/local/bin/kubectl
-RUN curl -sSL "https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3" | bash -s - --version "v${HELM_VERSION}"
+RUN curl -sSL "https://get.helm.sh/helm-v${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz" -o /tmp/helm.tgz \
+ && curl -sSL "https://get.helm.sh/helm-v${HELM_VERSION}-${TARGETOS}-${TARGETARCH}.tar.gz.sha256sum" -o /tmp/helm.tgz.sha256 \
+ && echo "$(cat /tmp/helm.tgz.sha256)  /tmp/helm.tgz" | sha256sum -c - \
+ && tar -xzf /tmp/helm.tgz -C /tmp \
+ && mv "/tmp/${TARGETOS}-${TARGETARCH}/helm" /usr/local/bin/helm \
+ && chmod +x /usr/local/bin/helm
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/core/testing/images/e2e-sandbox/Dockerfile` around lines 14 - 19,
The Dockerfile downloads external artifacts without integrity verification,
creating supply-chain risks. Additionally, the Helm installation on line 18 uses
a script from the mutable main branch. For the talosctl, kubectl, and yq curl
commands, download the corresponding checksum files and verify each binary using
sha256sum before marking them executable. For the Helm installer script, replace
the approach that fetches from the mutable main branch with a direct binary
download from a specific stable Helm release version, followed by checksum
verification, matching the pattern used for the other tools. This ensures all
downloaded artifacts are verified against known good checksums and eliminates
reliance on mutable remote scripts.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deferring this one. The download/installer pattern here — curl -o for talosctl/kubectl/yq/mc, and the upstream get-helm-3 / fluxcd / cozyhr / crust-gather install scripts — is pre-existing; this change only bumps tool versions. Adding integrity verification across all of them (per-arch checksums, plus pinning the install scripts off main to release tags) is a separate hardening pass well beyond a version bump, and this is a CI-only test-sandbox image that ships in no release artifact and deploys to no cluster. Better done as its own focused change.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@lexfrei, understood — the pattern is pre-existing and scoping it to a dedicated hardening pass makes sense, especially since this image is CI-only and not part of any release artifact. Would you like me to open a follow-up GitHub issue to track the integrity-verification hardening (checksum validation for talosctl/kubectl/yq/mc and pinning the installer scripts to release tags instead of main)?

(ᵔ ᴥ ᵔ)


🧠 Learnings used
Learnt from: kvaps
Repo: cozystack/cozystack PR: 2610
File: packages/apps/kubernetes/images/talos-csr-signer/Dockerfile:13-14
Timestamp: 2026-05-14T14:16:41.971Z
Learning: In cozystack Dockerfiles under `packages/`, it’s acceptable to declare `ARG TARGETOS` and `ARG TARGETARCH` without default values. Do not flag these as missing defaults when the build is expected to use `docker buildx build`, which automatically supplies these automatic platform args (global scope automatic platform args). This guidance applies to Dockerfiles like `packages/system/kamaji/images/kamaji/Dockerfile` and `packages/apps/kubernetes/images/talos-csr-signer/Dockerfile` where the pattern is used consistently.

@lexfrei
Aleksei Sviridkin (lexfrei) marked this pull request as draft June 23, 2026 01:52
@lexfrei
Aleksei Sviridkin (lexfrei) marked this pull request as ready for review June 23, 2026 02:22
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@github-actions github-actions Bot added size/M This PR changes 30-99 lines, ignoring generated files and removed size/S This PR changes 10-29 lines, ignoring generated files labels Jun 23, 2026
…1.13.5

talosctl 1.13.5 now defaults to Kubernetes 1.36.2, so the comment's premise
— that talosctl's bundled default predates the KCM VAP nil-pointer fix — no
longer holds (1.36.2 already carries that fix). The reason e2e pins v1.33.12
is now that 1.36 is outside cozystack's supported range; reword to lead with
that and keep the KCM VAP fix as the secondary property v1.33.12 carries.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
@github-actions github-actions Bot added size/S This PR changes 10-29 lines, ignoring generated files and removed size/M This PR changes 30-99 lines, ignoring generated files labels Jun 23, 2026
The "Pin the e2e management cluster Kubernetes version" item is no longer
in-flight — it is merged and live in hack/e2e-prepare-cluster.bats
(--kubernetes-version v1.33.12). Remove it from the "not yet the merged
standard" section; its rationale lives in the bats comment.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>

@myasnikovdaniil myasnikovdaniil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

APPROVE — clean, correctly-scoped e2e-sandbox refresh.

Verified independently:

  • All tool versions exist and resolve: ubuntu 24.04, kubectl v1.33.13 (sha256 file resolves on dl.k8s.io), talosctl v1.13.5 (real release, Jun 2026), helm v3.21.2, yq v4.53.3.
  • Skew is correct: kubectl 1.33.13 client vs the pinned apiserver v1.33.12 is the same minor — trivially within the k8s ±1 skew policy. The e2e scripts use only standard kubectl verbs; nothing needs a newer client.
  • helm stays on 3.x: 3.21.2 is the latest 3.x patch (helm 4.x is released but breaking — correctly avoided). The suite only drives install/upgrade/uninstall/template/pull/repo, all stable on 3.x.
  • netcat → netcat-openbsd is the right provider on 24.04: all nc invocations in the e2e scripts use only -z and -nz, both fully supported by OpenBSD netcat per the Ubuntu noble man page. No flag-compat regression.
  • The k8s-version pin is now genuinely load-bearing: talosctl v1.13.5's DefaultKubernetesVersion is 1.36.2, so without the explicit --kubernetes-version v1.33.12 the bump would have silently jumped the e2e cluster to 1.36.2 (outside cozystack's supported range). The updated bats comment documents this accurately and still covers the KCM VAP panic (kubernetes#135155, fixed in 1.33.10+).
  • Consistency: no stale ubuntu:22.04 / old tool-version references remain; the values.yaml digest is auto-derived from the build so it provably matches the rebuilt image; the e2e-testing.md doc cleanup (dropping the now-merged 'pin the e2e k8s version' in-flight bullet) is correct.

Non-blocking nit: the auto-generated Summary by CodeRabbit claims 'consolidating apt cleanup to reduce image size,' but the Dockerfile diff contains no apt-cleanup change. Worth trimming that line from the PR body so the summary doesn't describe a change that wasn't made.

Full E2E suite passed green on this exact rebuilt digest. LGTM.

@lexfrei
Aleksei Sviridkin (lexfrei) merged commit 2494843 into main Jun 23, 2026
12 checks passed
@lexfrei
Aleksei Sviridkin (lexfrei) deleted the chore/bump-e2e-sandbox branch June 23, 2026 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/testing Issues or PRs related to testing (e2e, bats, unit tests) area/uncategorized PR auto-labeler could not map title scope to a known area/*; please review kind/cleanup Categorizes issue or PR as related to cleanup of code, process, or technical debt size/S This PR changes 10-29 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(testing): bump core/testing images to current upstream release

2 participants