Skip to content

chore(build): build images with Go 1.26.6 - #536

Merged
MaxRink merged 1 commit into
fix/initramfs-download-retriesfrom
chore/go-1.26.6-images
Aug 19, 2026
Merged

chore(build): build images with Go 1.26.6#536
MaxRink merged 1 commit into
fix/initramfs-download-retriesfrom
chore/go-1.26.6-images

Conversation

@MaxRink

@MaxRink MaxRink commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #535. The base is fix/initramfs-download-retries, so this diff shows only the toolchain bump. Merge #535 first. When #535 lands, GitHub retargets this PR to main automatically.

#532 bumped Go to 1.26.6 in the workflows, but not in the images. The dev and micro-dev stages of initrd.Dockerfile build the shipped BOOTy init binary, and both still used 1.26.5. This is not test-only.

Changed:

  • initrd.Dockerfile dev stage, 1.26.5-alpine to 1.26.6-alpine, builds the init for the full, slim and gobgp flavours
  • initrd.Dockerfile micro-dev stage, 1.26.5-bookworm to 1.26.6-bookworm, builds the init for the micro flavour
  • test/e2e/clab/vrnetlab/Dockerfile builder, 1.26.5-alpine to 1.26.6-alpine

1.26.6 is the current 1.26.x patch. I checked the Go release feed and the Docker Hub tags.

Left alone on purpose: booty-test.Dockerfile and booty-gobgp-test.Dockerfile use the floating golang:1.26-alpine, so they already resolve to 1.26.6 and need no churn. go.mod declares the language version go 1.26 and carries no toolchain directive, so it needs no change.

Verified locally with docker:

  • --target dev builds, reports go version go1.26.6 linux/amd64, and produces the init binary
  • --target micro-dev builds on 1.26.6 and produces the init binary
  • the vrnetlab builder stage builds on 1.26.6
  • both init binaries execute. Each starts, logs, creates its early directories and stops only at a privileged step, operation not permitted on the tmpfs mount without root. That also proves the UPX-compressed binary unpacks and runs.
  • go test . passes

govulncheck against the source, run inside each image:

  • golang:1.26.5-alpine, 7 findings, the six stdlib ones plus GO-2026-4736
  • golang:1.26.6-alpine, 1 finding, GO-2026-4736 only

GO-2026-4736 is the GoBGP denial of service. Upstream reports no fixed version and hack/check-govulncheck.py already allows it.

The dev and micro-dev stages build the shipped init binary. Both still used Go 1.26.5, which carries six stdlib findings. The vrnetlab test builder used the same pin.

Go 1.26.6 fixes GO-2026-5026, GO-2026-5972, GO-2026-6089, GO-2026-6090, GO-2026-6091 and GO-2026-6218.
@MaxRink
MaxRink merged commit a3a377f into fix/initramfs-download-retries Aug 19, 2026
23 checks passed
MaxRink added a commit that referenced this pull request Aug 19, 2026
* fix(build): retry network downloads in container builds

One transient TLS failure on a mirror broke the whole arm64 initramfs build and with it CI on main. The LVM2 wget had no retry.

Every network fetch now retries with backoff. apt-get uses Acquire::Retries, curl uses --retry, wget uses --tries. apk add, git clone, git fetch and go mod download use an until loop that exits non-zero once the attempts run out.

Checksum and signature checks stay in place, so a retry cannot hide a corrupt artifact. A new guard test fails the build when a fetch carries no retry, or when a retry loop cannot fail.

* chore(build): build images with Go 1.26.6 (#536)

The dev and micro-dev stages build the shipped init binary. Both still used Go 1.26.5, which carries six stdlib findings. The vrnetlab test builder used the same pin.

Go 1.26.6 fixes GO-2026-5026, GO-2026-5972, GO-2026-6089, GO-2026-6090, GO-2026-6091 and GO-2026-6218.
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.

1 participant