Skip to content

use kind build node images instead of relying on official images#1234

Open
kannon92 wants to merge 1 commit into
kubernetes-sigs:mainfrom
kannon92:switch-to-kind-node-image
Open

use kind build node images instead of relying on official images#1234
kannon92 wants to merge 1 commit into
kubernetes-sigs:mainfrom
kannon92:switch-to-kind-node-image

Conversation

@kannon92
Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind cleanup

What this PR does / why we need it:

Build kind images from upstream rather than relying on Kind to host official images.

Which issue(s) this PR fixes:

Fixes #1233

Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

Copilot AI review requested due to automatic review settings May 15, 2026 17:23
@k8s-ci-robot k8s-ci-robot added the kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. label May 15, 2026
@netlify
Copy link
Copy Markdown

netlify Bot commented May 15, 2026

Deploy Preview for kubernetes-sigs-jobset ready!

Name Link
🔨 Latest commit e317b89
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-sigs-jobset/deploys/6a0756a3bc9de50008171cf1
😎 Deploy Preview https://deploy-preview-1234--kubernetes-sigs-jobset.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label May 15, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: kannon92

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels May 15, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the e2e Kind test harness to build Kubernetes node images locally (via kind build node-image) rather than relying on pre-published Kind node images, aligning CI with upstream release artifacts.

Changes:

  • Derives a Kubernetes version string from E2E_KIND_VERSION and adds a build_node_image step before cluster creation.
  • Switches kind create cluster to use kindest/node:latest instead of the previously configured $E2E_KIND_VERSION.
Comments suppressed due to low confidence (1)

hack/e2e-test.sh:46

  • kind create cluster is pinned to --image kindest/node:latest, while the preceding kind build node-image $K8S_VERSION does not specify an output image tag. This makes the cluster image selection dependent on kind defaults and risks still pulling/running an official latest image (non-reproducible and contrary to the PR goal). Explicitly tag the built node image and use the same tag in create cluster (ideally derived from E2E_KIND_VERSION/K8S_VERSION).
        $KIND create cluster --name $KIND_CLUSTER_NAME --image kindest/node:latest --wait 1m

Comment thread hack/e2e-test.sh
Comment thread hack/e2e-test.sh
@kannon92
Copy link
Copy Markdown
Contributor Author

/cc @BenTheElder @mimowo @andreyvelich

Comment thread hack/e2e-test.sh
fi
export KUBECONFIG
$KIND create cluster --name $KIND_CLUSTER_NAME --image $E2E_KIND_VERSION --wait 1m
$KIND create cluster --name $KIND_CLUSTER_NAME --image kindest/node:latest --wait 1m
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

you can also explicitly set the image name in the build command and then here, for local development that might make more sense, e.g. jobset/kind-node:${K8s_VERSION} just to avoid conflicts between say, another repo using another kind version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The biggest downside of kind build node-image vs pulling a pre-built image locally is losing the docker cache (in CI you are probably not persisting the docker image cache because it's usually huge).

For local development, you could skip re-building your custom named image if it already exists.

For extra security something roughly like jobset/kind-node:$(kind version)-${K8s_VERSION}.

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.

cc @BenTheElder ptal at the sibling PR in Kueue: kubernetes-sigs/kueue#11251

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build our own node images for Kind

5 participants