You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Steps to determine the Golang version to upgrade to:
Go to the Kubernetes repository and find the release branch for the most recent version of
Kuberntes supported by Agones. Find the go.mod file in that branch, and look for the go
version. This is the minor version that Agones should use. For instance, if the most recent
Kubernetes version supported by Agones is 1.32, then the minor version of Golang on Agones
should be 1.23 as is determined by the go.mod file in the release branch of Kubernetes
1.32.
Check the Golang release history for the most recent patch
version of the minor version as determined in the previous step.
Update this issue title to reflect the Golang MAJOR.MINOR.PATCH version determined the in
the previous step.
Steps to upgrade Golang version and dependencies:
Update go.mod and go.sum. At the root (agones) directory, run:
find . -name 'go.mod' -not -path '*/\.*' -execdir go mod edit -go=<NEW_GOLANG_VERSION_WITHOUT_PATCH> \;
find . -name 'go.mod' -not -path '*/\.*' -execdir go mod tidy \;
Update the Dockerfiles for build directory.
At the root directory, run: find build -type f \( -not -path '*/\.*' -and -not -path 'build/tmp/*' \) -exec sed -i 's/GO_VERSION=[0-9]\+\.[0-9]\+\.[0-9]\+/GO_VERSION=<NEW_GOLANG_VERSION>/g' {} \;
Update the golang version for file build/agones-bot/Dockerfile to golang:<NEW_GOLANG_VERSION_WITHOUT_PATCH>
Update the Dockerfiles for test directory.
At the root directory, run: find test -type f -exec sed -i 's/golang:[0-9]\+\.[0-9]\+\.[0-9]\+/golang:<NEW_GOLANG_VERSION>/g' {} \;
At the root directory, run: find test -type f -exec sed -i 's/go [0-9]\+\.[0-9]\+\.[0-9]\+/go <NEW_GOLANG_VERSION>/g' {} \;
At the root directory, run: find test -type f -name 'go.mod' -execdir go mod tidy \;
Update the Dockerfiles for examples directory. At the root directory, run:
find examples -name Dockerfile -exec sed -i 's/golang:[0-9]\+\.[0-9]\+-alpine/golang:<NEW_GOLANG_VERSION_WITHOUT_PATCH>-alpine/g' {} \;
Update Golang to go1.26.0 (released 2026-02-10) and update dependencies.
Steps to determine the Golang version to upgrade to:
Kuberntes supported by Agones. Find the
go.modfile in that branch, and look for the goversion. This is the minor version that Agones should use. For instance, if the most recent
Kubernetes version supported by Agones is 1.32, then the minor version of Golang on Agones
should be 1.23 as is determined by the
go.modfile in the release branch of Kubernetes1.32.
version of the minor version as determined in the previous step.
MAJOR.MINOR.PATCHversion determined the inthe previous step.
Steps to upgrade Golang version and dependencies:
Update
go.modandgo.sum. At the root (agones) directory, run:find . -name 'go.mod' -not -path '*/\.*' -execdir go mod edit -go=<NEW_GOLANG_VERSION_WITHOUT_PATCH> \;find . -name 'go.mod' -not -path '*/\.*' -execdir go mod tidy \;Update the Dockerfiles for
builddirectory.find build -type f \( -not -path '*/\.*' -and -not -path 'build/tmp/*' \) -exec sed -i 's/GO_VERSION=[0-9]\+\.[0-9]\+\.[0-9]\+/GO_VERSION=<NEW_GOLANG_VERSION>/g' {} \;golangversion for filebuild/agones-bot/Dockerfiletogolang:<NEW_GOLANG_VERSION_WITHOUT_PATCH>Update the Dockerfiles for
testdirectory.find test -type f -exec sed -i 's/golang:[0-9]\+\.[0-9]\+\.[0-9]\+/golang:<NEW_GOLANG_VERSION>/g' {} \;find test -type f -exec sed -i 's/go [0-9]\+\.[0-9]\+\.[0-9]\+/go <NEW_GOLANG_VERSION>/g' {} \;find test -type f -name 'go.mod' -execdir go mod tidy \;Update the Dockerfiles for
examplesdirectory. At the root directory, run:find examples -name Dockerfile -exec sed -i 's/golang:[0-9]\+\.[0-9]\+-alpine/golang:<NEW_GOLANG_VERSION_WITHOUT_PATCH>-alpine/g' {} \;find examples \( -name Dockerfile -o -name Dockerfile.windows \) -exec sed -i 's/golang:[0-9]\+\.[0-9]\+\.[0-9]\+/golang:<NEW_GOLANG_VERSION>/g' {} \;Update the example images tag. At
builddirectory, run:make bump-image IMAGENAME=allocation-endpoint-proxy VERSION=<current-image-version>make bump-image IMAGENAME=autoscaler-webhook VERSION=<current-image-version>make bump-image IMAGENAME=crd-client VERSION=<current-image-version>make bump-image IMAGENAME=custom-controller VERSION=<current-image-version>make bump-image IMAGENAME=simple-game-server VERSION=<current-image-version>make bump-image IMAGENAME=simple-genai-game-server VERSION=<current-image-version>make bump-image IMAGENAME=supertuxkart-example VERSION=<current-image-version>make bump-image IMAGENAME=xonotic-example VERSION=<current-image-version>Update Golang dependencies in all
go.modfiles:find . -name 'go.mod' -not -path '*/\.*' -execdir go get -u \;find . -name 'go.mod' -not -path '*/\.*' -execdir go mod tidy \;Run
go mod vendorto ensure all modules are properly updated.In the
builddirectory, runmake lintto verify code style and linting rules.In the
builddirectory, runmake testto ensure all tests pass.Run the following to generate and push the new example images:
examples/allocation-endpoint, run:make cloud-buildexamples/autoscaler-webhook, run:make cloud-buildexamples/crd-client, run:make cloud-buildexamples/custom-controller, run:make cloud-buildexamples/simple-game-server, run:make cloud-buildexamples/simple-genai-server, run:make cloud-buildexamples/supertuxkart, run:make cloud-buildexamples/xonotic, run:make cloud-buildCreate a PR for the above changes and send for review
Merge the above PR after it is approved