Agones supports and is tested against 3 releases of Kubernetes, targeting the newest version as
being the default version in the GKE Rapid channel.
The vendored version of client-go will be aligned with the middle of the three supported Kubernetes
versions ({1.34}). All the example clusters will use the middle of the three supported
Kubernetes versions ({1.34}).
List of items to do for upgrading to {1.33} {1.34} {1.34}
Agones supports and is tested against 3 releases of Kubernetes, targeting the newest version as
being the default version in the GKE Rapid channel.
The vendored version of client-go will be aligned with the middle of the three supported Kubernetes
versions ({1.34}). All the example clusters will use the middle of the three supported
Kubernetes versions ({1.34}).
List of items to do for upgrading to {1.33} {1.34} {1.34}
install/terraform/modulesgkeandgke-autopilot) to {1.34}{1.35}
{1.35}
here
build/build-image/Dockerfilebuild/e2e-image/Dockerfiletest/upgrade/Dockerfilebuild/includes/minikube.mk(Get the patch version heresince minikube supports the latest Kubernetes release)
build/includes/kind.mk(Confirm {1.34} is supported and get the patch versionhere)
to {1.34} (Get the patch version here)
go.modto {1.34} by runninggo get k8s.io/client-go@{CORRESPONDING_VERSION}and
go get k8s.io/apiextensions-apiserver@{CORRESPONDING_VERSION}, then re-rungo mod tidyand
go mod vendorsite/assets/templates/crd-doc-config.jsonmake gen-api-docsmake gen-crd-codemake gcloud-test-cluster(this cluster will use Kubernetes{1.34}), uninstall agones using
helm uninstall agones -n agones-system, and then runmake gen-embedded-openapiandmake gen-installclusters versions and the k8s API version
site/config.tomldev_supported_k8s, which are {1.33} {1.34} {1.35}dev_k8s_api_version, which is {1.34}dev_gke_example_cluster_version, which is {1.34}dev_aks_example_cluster_version, which is the newest AKS supported version in{1.33} {1.34} {1.35}
dev_eks_example_cluster_version, which is the newest EKS supported version in{1.33} {1.34} {1.35}
dev_minikube_example_cluster_version, which is {1.34} with the supported patch versiongrpc_release_tagin the SDK base image grpc version.This can take 20 minutes or so, as the above changes force a rebuild. Plan your day accordingly 😃.
cpp-simpleimage.cpp-simpleexample images tag. Atbuilddirectory, run:make bump-image IMAGENAME=cpp-simple-server VERSION=<current-image-version>cpp-simpleexample images:examples/cpp-simple, run:make cloud-buildbuild/terraform/e2e/module.tf, add the new supported version to the mapkubernetes_versionsfollowing the instructions in the comment. We maintain sufficientquota for
CPUsandIn-use Addressesinus-east1,us-west1,europe-west1, andasia-east1, but we only have capacity for one version per region - follow theinstructions to rotate the regions through new versions. (Keep the clusters on
RAPID-we dogfood early versions in CI.)
cd build; make GCP_PROJECT=agones-images gcloud-e2e-test-clusterbuild/terraform/upgrade/module.tf, add the new supported version to the mapkubernetes_versionsfollowing the instructions in the comment. Follow the instructionsto rotate the regions through new versions. (Keep the clusters on
RAPID.) Note that theupgrade clusters do not use the exact same regions as the e2e tests.
and disable the e2e and ugprade tests on the clusters with the oldest supported K8s version
versionsAndRegionsvariable to add the new supported version and remove theoldest supported K8s version in
cloudbuild.yamlsubmit-e2e-test-cloud-buildstepfeatureWithGateByVersionvariable to add the new supported version and removethe oldest supported K8s version in
cloudbuild.yamlsubmit-e2e-test-cloud-buildstepversionsAndRegionsvariable to add the new supported version and remove theoldest supported K8s version in
cloudbuild.yamlsubmit-upgrade-test-cloud-buildsteptest/upgrade/versionMap.yamlk8sToAgonesVersionsto add the new Kubernetesversion. For example:
make lintfor code quality check.all the existing pending PRs in the Cloud Build queue have picked up the new configuration,
submit a separate PR to update the e2e and upgrade clusters terraform modules to remove the
e2e and upgrade clusters with the oldest supported K8s version.
build/terraform/e2e/module.tf, continue following the instructions in the comment toupdate the
kubernetes_versionsmap.cd build; make GCP_PROJECT=agones-images gcloud-e2e-test-clusterbuild/terraform/upgrade/module.tf, continue following the instructions in the commentto update the
kubernetes_versionsmap.build/terraform/performance/module.tf, update thekubernetes_versionsto {1.34}and make sure the region is always set to
us-central1._TEST_CLUSTER_NAMEinci/perf-test-cloudbuild.yamlto the name of the newlycreated performance test cluster, and send a PR with the changes.