Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions airgap/images.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,20 @@ registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.14.3@sha256:bc056ff5
registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.14.3@sha256:fbf0b07fd4e4575160d82977f0daeba4792c992a2f56efac111fb76cfe29d0e1
registry.k8s.io/cluster-api-helm/cluster-api-helm-controller:v0.6.4@sha256:97d2a86f8e35d23bb4656b26f4564b35f109e47a0dc4860b71089e52eb6e6a24
gcr.io/k8s-staging-cluster-api/capd-manager:v1.14.3@sha256:6e02c5d059eb7372c9ecf6602e6b4a9b450087e92440a5979651d7e82f00ad73
registry.k8s.io/coredns/coredns:v1.14.2@sha256:e7e6440cfd1e919280958f5b5a6ab2b184d385bba774c12ad2a9e1e4183f90d9
registry.k8s.io/kube-apiserver:v1.36.4@sha256:cfcdb01653308b975d589b528bfafe54011dfae925d85059177d95963a622748
registry.k8s.io/kube-controller-manager:v1.36.4@sha256:232878d552ad5395562c8a9091a6c963f897ffbcf08f39be8f57ba8776bb3821
registry.k8s.io/kube-proxy:v1.36.4@sha256:b33fcdd8319290736e566f5fc2225ca07d3c2dfc025fb006342791aa31be4603
registry.k8s.io/etcd:3.6.8-0@sha256:397189418d1a00e500c0605ad18d1baf3b541a1004d768448c367e48071622e5
registry.k8s.io/kube-scheduler:v1.36.4@sha256:7d84d58f091f16399673c87ccf579de50ac6ede39a2d6b82946c2dd5d7838ffc
registry.k8s.io/coredns/coredns:v1.14.7@sha256:7efd3c635b03efd68c4e8398fc45f0d993d0e9ab016f72c1cefb0fd6d01aa286
registry.k8s.io/kube-apiserver:v1.37.1@sha256:e190f914a6cc21cab9268485d1ae7282fdeab1315ac64b668aa42d732fd1061d

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.

Part of the 12 mismatches in the red "Air-gap image digest pins" check (run 38925234002, job 117054961038, same 12 in the local run of airgap/tests/test-airgap-kubeadm-images.py). This line is v1.37.1; kubeadm v1.37.0 (baked in the pinned kindest/node) deploys v1.37.0. The contract test treats the node image as authoritative (topology pins v1.37.0 in the two local-host cluster.yaml files), so the whole 1.37.1 component block (lines 33-38 and 57-62: coredns v1.14.7 vs v1.14.6, kube-apiserver/controller-manager/proxy/scheduler v1.37.1 vs v1.37.0, etcd 3.7.2-0 vs 3.7.0-0) must be reconciled to what kubeadm v1.37.0 deploys, tags and registry digests both. Fix path: python3 airgap/tests/test-airgap-kubeadm-images.py --fix. A uniform v1.37.1 is not possible yet: kindest/node v1.37.1 is a registry 404.

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.

Blocking: this pin and its 11 siblings (:33-38 and :57-62) disagree with what kubeadm v1.37.0 deploys (kube-apiserver v1.37.0), and the gate treats the node image's kubeadm as authoritative, so the required check is red at this head. The digest itself is correct (registry HEAD: v1.37.1 -> sha256:e190f914...). Root cause: kindest/node has no v1.37.1 tag ([v1.37.0, v1.37.0-rc.1] only), so the kubernetes/kubernetes patch group ran ahead of the kind group. Unblock: kindest/node v1.37.1 published upstream, then re-cut the lockstep 1.37.1 set; or follow node v1.37.0 via test-airgap-kubeadm-images.py --fix.

registry.k8s.io/kube-controller-manager:v1.37.1@sha256:d470c1b85aebb466e971c06239cc6a31a4ac337a78600cef80375a79a1be1641
registry.k8s.io/kube-proxy:v1.37.1@sha256:b9ae667ed9c160c9d5b66f55e8afec97fc5483a12db0ada5286541b0385cb9f4
registry.k8s.io/etcd:3.7.2-0@sha256:7c6c239825d00e3f6328a69caafd54be92063acf0c2ce78b8394699f52b75dc3
registry.k8s.io/kube-scheduler:v1.37.1@sha256:b6e2474a6c20309f0df1e7337364281fda95c6a0722259ba7f032a1e177d3f29
registry.k8s.io/pause:3.10.2@sha256:f548e0e8e3dc1896ca956272154dde3314e8cc4fde0a57577ee9fa1c63f5baf4
docker.io/kindest/kindnetd:v20260528-9350166c@sha256:92f49a1b2c9242058481fc3e13412c19a62cfeb090717dad4598719d32351f1f
docker.io/kindest/local-path-provisioner:v20260521-9fb22683@sha256:b1de813bcdde9737a283ff1961725d66c412b235fe08f2a3dc707fece91674b8
docker.io/kindest/local-path-helper:v20260131-7181c60a@sha256:ac7c7f08e86f7bef7d2ad6dee944ed89d3d2e7de0ebc00490d7ddf6c26628a06

# ── Host Docker daemon images [H] (kind nodes + CAPD containers) ─────────────
kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
kindest/haproxy:v20230606-42a2262b@sha256:001a06433666046dea44567c7d7c6adfc2ac0edb556576f6da507ff0b0f063d3
docker.io/library/registry:3.1.2@sha256:ddf754342cfc8acc51a56d5d0ab6af06826461864460636d8bd5c546dab2a7b8

Expand All @@ -54,12 +54,12 @@ docker.io/kindest/kindnetd:v20260820-69b56db7@sha256:526969f0a1a7a788a7a96f53a4a
docker.io/kindest/kindnetd:v20260528-9350166c@sha256:92f49a1b2c9242058481fc3e13412c19a62cfeb090717dad4598719d32351f1f
docker.io/kindest/local-path-provisioner:v20260820-69b56db7@sha256:fdb5360219dcca6acc7967326f9e04c89b038e2c1e924463b2a41cad2dc752ab
docker.io/kindest/local-path-helper:v20260131-7181c60a@sha256:ac7c7f08e86f7bef7d2ad6dee944ed89d3d2e7de0ebc00490d7ddf6c26628a06
registry.k8s.io/coredns/coredns:v1.14.2@sha256:e7e6440cfd1e919280958f5b5a6ab2b184d385bba774c12ad2a9e1e4183f90d9
registry.k8s.io/kube-apiserver:v1.36.4@sha256:cfcdb01653308b975d589b528bfafe54011dfae925d85059177d95963a622748
registry.k8s.io/kube-controller-manager:v1.36.4@sha256:232878d552ad5395562c8a9091a6c963f897ffbcf08f39be8f57ba8776bb3821
registry.k8s.io/kube-proxy:v1.36.4@sha256:b33fcdd8319290736e566f5fc2225ca07d3c2dfc025fb006342791aa31be4603
registry.k8s.io/etcd:3.6.8-0@sha256:397189418d1a00e500c0605ad18d1baf3b541a1004d768448c367e48071622e5
registry.k8s.io/kube-scheduler:v1.36.4@sha256:7d84d58f091f16399673c87ccf579de50ac6ede39a2d6b82946c2dd5d7838ffc
registry.k8s.io/coredns/coredns:v1.14.7@sha256:7efd3c635b03efd68c4e8398fc45f0d993d0e9ab016f72c1cefb0fd6d01aa286

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.

Suggestion (non-blocking): the section header above this block, airgap/images.txt:50, still reads "Workload node containerd store [W] (v1.36.4 generation)" while the block now pins 1.37.1-generation tags. Update the header in the same re-cut (same for docs/operations.md:772, docs/airgap.md:138-139 and :316, docs/dependencies.md:126, and the comments at airgap/scripts/stage-and-create-cluster.sh:6 and airgap/scripts/build-config-artifact.sh:175).

registry.k8s.io/kube-apiserver:v1.37.1@sha256:e190f914a6cc21cab9268485d1ae7282fdeab1315ac64b668aa42d732fd1061d
registry.k8s.io/kube-controller-manager:v1.37.1@sha256:d470c1b85aebb466e971c06239cc6a31a4ac337a78600cef80375a79a1be1641
registry.k8s.io/kube-proxy:v1.37.1@sha256:b9ae667ed9c160c9d5b66f55e8afec97fc5483a12db0ada5286541b0385cb9f4
registry.k8s.io/etcd:3.7.2-0@sha256:7c6c239825d00e3f6328a69caafd54be92063acf0c2ce78b8394699f52b75dc3
registry.k8s.io/kube-scheduler:v1.37.1@sha256:b6e2474a6c20309f0df1e7337364281fda95c6a0722259ba7f032a1e177d3f29
registry.k8s.io/pause:3.10.2@sha256:f548e0e8e3dc1896ca956272154dde3314e8cc4fde0a57577ee9fa1c63f5baf4
# workload cluster runs its own Flux (synced from krops-registry:5000)
ghcr.io/controlplaneio-fluxcd/flux-operator:v0.61.0@sha256:71041d9fff7f7b05f1a8123ebe73c73b7b156f4aacfe1e8e19b5aa953a98892c
Expand Down
2 changes: 1 addition & 1 deletion airgap/scripts/build-config-artifact.sh
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ preload = """ preLoadImages:
- ghcr.io/fluxcd/notification-controller:v1.9.4@sha256:840f318265ee26f0d2c48a158bf7896b22aa4e998e320a18646309f0e40b15da
- ghcr.io/stefanprodan/podinfo:6.15.0@sha256:ec73780a8425f59ea49f5bc8cdff0d598805a224fbaa1f86c67a244f250fa9da
"""
anchor = " customImage: kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed\n"
anchor = " customImage: kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5\n"
count = txt.count(anchor)
if count != 2:
sys.exit(f"ERROR: expected 2 DevMachineTemplate customImage anchors, found {count}")
Expand Down
8 changes: 4 additions & 4 deletions airgap/scripts/build-package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -98,16 +98,16 @@ save_host_images() {
}

HOST_IMAGES=(
kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
kindest/haproxy:v20230606-42a2262b@sha256:001a06433666046dea44567c7d7c6adfc2ac0edb556576f6da507ff0b0f063d3
docker.io/library/registry:3.1.2@sha256:ddf754342cfc8acc51a56d5d0ab6af06826461864460636d8bd5c546dab2a7b8
)
for img in "${HOST_IMAGES[@]}"; do
docker pull --platform linux/arm64 "$img" >/dev/null
done
save_host_images airgap/archives/kindest_node_v1.36.4_mgmt.tar kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
save_host_images airgap/archives/kindest_node_v1.36.4.tar kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
save_host_images airgap/archives/kindest_node_v1.37.0_mgmt.tar kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
save_host_images airgap/archives/kindest_node_v1.37.0.tar kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
save_host_images airgap/archives/kindest_haproxy_v20230606-42a2262b.tar kindest/haproxy:v20230606-42a2262b@sha256:001a06433666046dea44567c7d7c6adfc2ac0edb556576f6da507ff0b0f063d3
save_host_images airgap/archives/docker.io_library_registry_3.1.2.tar docker.io/library/registry:3.1.2@sha256:ddf754342cfc8acc51a56d5d0ab6af06826461864460636d8bd5c546dab2a7b8
echo " saved Zarf init package and host-daemon image archives"
Expand Down
2 changes: 1 addition & 1 deletion airgap/scripts/stage-and-create-cluster.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ AIRGAP_DIR=$(cd "$SCRIPT_DIR/.." && pwd)
ARCHIVES="$AIRGAP_DIR/archives"

CLUSTER_NAME="${CLUSTER_NAME:-mgmt}"
KIND_NODE_IMAGE="${KIND_NODE_IMAGE:-kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed}"
KIND_NODE_IMAGE="${KIND_NODE_IMAGE:-kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5}"
DOCKER_SOCKET_PATH="${DOCKER_SOCKET_PATH:-/var/run/docker.sock}"

if [ ! -S "$DOCKER_SOCKET_PATH" ]; then
Expand Down
4 changes: 2 additions & 2 deletions mgmt/local-host/clusters/docker/cluster-class.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ spec:
spec:
backend:
docker:
customImage: kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
customImage: kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
extraMounts:
- hostPath: /var/run/docker.sock
containerPath: /var/run/docker.sock
Expand All @@ -96,7 +96,7 @@ spec:
spec:
backend:
docker:
customImage: kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
customImage: kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
extraMounts:
- hostPath: /var/run/docker.sock
containerPath: /var/run/docker.sock
Expand Down
2 changes: 1 addition & 1 deletion mgmt/local-host/clusters/docker/cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ spec:
topology:
classRef:
name: docker-workload
version: v1.36.4
version: v1.37.0
controlPlane:
replicas: 1
workers:
Expand Down
4 changes: 2 additions & 2 deletions mgmt/local-host/clusters/management/cluster-class.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ spec:
spec:
backend:
docker:
customImage: kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
customImage: kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
extraMounts:
- hostPath: /var/run/docker.sock
containerPath: /var/run/docker.sock
Expand All @@ -101,7 +101,7 @@ spec:
spec:
backend:
docker:
customImage: kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed
customImage: kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5
extraMounts:
- hostPath: /var/run/docker.sock
containerPath: /var/run/docker.sock
Expand Down
2 changes: 1 addition & 1 deletion mgmt/local-host/clusters/management/cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
topology:
classRef:
name: docker-management
version: v1.36.4
version: v1.37.0
controlPlane:
replicas: 1
workers:
Expand Down
2 changes: 1 addition & 1 deletion mgmt/local-talos/clusters/management/cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ metadata:
spec:
replicas: 1
# renovate: datasource=github-releases depName=kubernetes/kubernetes
version: "v1.37.0"
version: "v1.37.1"
infrastructureTemplate:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: TinkerbellMachineTemplate
Expand Down
2 changes: 1 addition & 1 deletion mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ min_version = "2026.10.8"

[tools]
go = "1.27.2"
kubectl = "1.37.0"
kubectl = "1.37.1"
python = "3.15.0"
kind = "0.33.0"
helm = "4.3.0"
Expand Down
Loading