Change:
sgtm, add an issue labeled as release-blocking and in the milestone to either promote to 1.23.0 or revert this to 1.22.x before our 1.31 release Originally posted by in Kubernetes is being built and tested with go1.23rc2 at HEAD () to let it bake in the CI and help iron out issues, if any, with this version of Go. However, for the 1.31 release, the version of Go should be a non-rc, released version. The release timeline of go1.23.0 is ~same as the release timeline of K8s 1.31.0 (see ). If go1.23.0 is not out by then, we should revert to go1.22.x before cutting K8s 1.31.0. /sig release architecture /area code-organization /cc
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the label and provide further guidance. The label can be by org members by writing in a comment. <detailsInstructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
/triage accepted /cc
/milestone v1.31
cc
xposting relevant slack thread:
Also unlike in the past, missing shipping 1.23.0 in 1.31.0 is not a big deal, we have much more room to switch to 1.23.0 in a patch release after all the compat changes with the go team. So we should not fear reverting if the timelines don't line up.
(though go1.23 adds the thing that makes it workable to default to old go version compat settings, so we'll have to eke out another 5 months on 1.21/1.22 for until we can adopt 1.23 on release branches in ~Jan if we miss 1.31, but that's how it looks like it will have to happen)

Discussion:
<del> 1.23rc2 </del>  No newline at end of file <ins> 1.22.5 </ins>  No newline at end of file

<del> v1.31.0-go1.23rc2-bullseye.0 </del> <ins> v1.31.0-go1.22.5-bullseye.0 </ins>

readonly KUBE_CONTAINER_RSYNC_PORT=8730 # These are the default versions (image tags) for their respective base images. <del> readonly __default_distroless_iptables_version=v0.6.1 readonly __default_go_runner_version=v2.3.1-go1.23rc2-bookworm.0 </del> <ins> readonly __default_distroless_iptables_version=v0.5.6 readonly __default_go_runner_version=v2.3.1-go1.22.5-bookworm.0 </ins> readonly __default_setcap_version=bookworm-v1.0.3 # These are the base images for the Docker-wrapped binaries.

# Golang - name: "golang: upstream version" <del> version: 1.23rc2 </del> <ins> version: 1.22.5 </ins> refPaths: - path: .go-version - path: build/build-image/cross/VERSION <del> # TODO: remove this when whe have the go1.23 released and not the rc. # - path: staging/publishing/rules.yaml #   match: 'default-go-version: d+.d+(alpha|beta|rc)?.?(d+)?' </del> <ins> - path: staging/publishing/rules.yaml match: 'default-go-version: d+.d+(alpha|beta|rc)?.?(d+)?' </ins> - path: test/images/Makefile match: GOLANG_VERSION=d+.d+(alpha|beta|rc)?.?d+

# # This entry is a stub of the major version to allow dependency checks to # pass when building Kubernetes using a pre-release of Golang. <del> # TODO: remove this when whe have the go1.23 released and not the rc. # - name: "golang: 1.<major>" #   version: 1.22 #   refPaths: #   - path: build/build-image/cross/VERSION #   - path: hack/lib/golang.sh #     match: minimum_go_version=go([0-9]+.[0-9]+) </del> <ins> - name: "golang: 1.<major>" version: 1.22 refPaths: - path: build/build-image/cross/VERSION - path: hack/lib/golang.sh match: minimum_go_version=go([0-9]+.[0-9]+) </ins> - name: "registry.k8s.io/kube-cross: dependents" <del> version: v1.31.0-go1.23rc2-bullseye.0 </del> <ins> version: v1.31.0-go1.22.5-bullseye.0 </ins> refPaths: - path: build/build-image/cross/VERSION

match: registry.k8s.io/build-image/debian-base:[a-zA-Z]+-v((([0-9]+).([0-9]+).([0-9]+)(?:-([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?)(?:+([0-9a-zA-Z-]+(?:.[0-9a-zA-Z-]+)*))?) - name: "registry.k8s.io/distroless-iptables: dependents" <del> version: v0.6.1 </del> <ins> version: v0.5.6 </ins> refPaths: - path: build/common.sh match: __default_distroless_iptables_version=

match: configs[DistrolessIptables] = Config{list.BuildImageRegistry, "distroless-iptables", "v([0-9]+).([0-9]+).([0-9]+)"} - name: "registry.k8s.io/go-runner: dependents" <del> version: v2.3.1-go1.23rc2-bookworm.0 </del> <ins> version: v2.3.1-go1.22.5-bookworm.0 </ins> refPaths: - path: build/common.sh match: __default_go_runner_version=

local go_version IFS=" " read -ra go_version <<< "$(GOFLAGS='' go version)" local minimum_go_version <del> # TODO: Update to go1.23 as soon we are ready to merge this </del> minimum_go_version=go1.22 if [[ "${minimum_go_version}" != $(echo -e "${minimum_go_version}n${go_version[2]}" | sort -s -t. -k 1,1 -k 2,2n -k 3,3n | head -n1) && "${go_version[2]}" != "devel" ]]; then kube::log::usage_from_stdin <<EOF

GOARM ?= 7 DOCKER_CERT_BASE_PATH ?= QEMUVERSION=v5.1.0-2 <del> GOLANG_VERSION=1.23rc2 </del> <ins> GOLANG_VERSION=1.22.5 </ins> export ifndef WHAT

configs[BusyBox] = Config{list.PromoterE2eRegistry, "busybox", "1.36.1-1"} configs[CudaVectorAdd] = Config{list.PromoterE2eRegistry, "cuda-vector-add", "1.0"} configs[CudaVectorAdd2] = Config{list.PromoterE2eRegistry, "cuda-vector-add", "2.3"} <del> configs[DistrolessIptables] = Config{list.BuildImageRegistry, "distroless-iptables", "v0.6.1"} </del> <ins> configs[DistrolessIptables] = Config{list.BuildImageRegistry, "distroless-iptables", "v0.5.6"} </ins> configs[Etcd] = Config{list.GcEtcdRegistry, "etcd", "3.5.15-0"} configs[Httpd] = Config{list.PromoterE2eRegistry, "httpd", "2.4.38-4"} configs[HttpdNew] = Config{list.PromoterE2eRegistry, "httpd", "2.4.39-4"}