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
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.28). All the example clusters will use the middle of the three supported Kubernetes versions (1.28).
List of items to do for upgrading to 1.27, 1.28, 1.29
Update the cluster version of terraform submodules in install/terraform/modules
Update Kubernetes version of GKE cluster (both gke and gke-autopilot) to 1.28
Update Kubernetes version of AKS to the newest supported version in 1.27, 1.28, 1.29
Update Kubernetes version of EKS to the newest supported version in 1.27, 1.28, 1.29
Update kubectl in dev tooling to 1.28, the latest patch version can be found here
Update kubectl in build/build-image/Dockerfile
Update kubectl in build/e2e-image/Dockerfile
Update the Kubernetes version of the below test clusters to 1.28
Minikube in build/includes/minikube.mk (Get the patch version here since minikube supports the latest Kubernetes release)
Kind in build/includes/kind.mk (Confirm 1.28 is supported and get the patch version here)
Update the k8s image used in the helm pre-delete-hook to 1.28 (Get the patch version here)
Update client-go in go.mod to 1.28 by running go get k8s.io/client-go@{CORRESPONDING_VERSION} and go get k8s.io/apiextensions-apiserver@{CORRESPONDING_VERSION}, then re-run go mod tidy and go mod vendor
Update CRD API reference to 1.28
Update links to k8s documentation in site/assets/templates/crd-doc-config.json
Regenerate crd api reference docs - make gen-api-docs
Regenerate crd client libraries - make gen-crd-client
Regenerate Kubernetes resource includes (e.g. ObjectMeta, PodTemplateSpec)
Start a cluster with make gcloud-test-cluster (this cluster will use Kubernetes 1.28), uninstall agones using helm uninstall agones -n agones-system, and then run make gen-embedded-openapi and make gen-install
Update documentation for creating clusters and k8s API references to align with the above clusters versions and the k8s API version
site/config.toml
dev_supported_k8s, which are 1.27 1.28 1.29
dev_k8s_api_version, which is 1.28
dev_gke_example_cluster_version, which is 1.28
dev_aks_example_cluster_version, which is the newest AKS supported version in 1.27 1.28 1.29
dev_eks_example_cluster_version, which is the newest EKS supported version in 1.27 1.28 1.29
dev_minikube_example_cluster_version, which is 1.28 with the supported patch version
If client-go pulled in a new version of gRPC, then also
Confirm the update works as expected by running e2e tests
Add the new supported Kubernetes versions to the e2e clusters creation
In build/terraform/e2e/module.tf, add the new supported version to the map kubernetes_versions. Noted the location of the new clusters should have enough quota (CPU, In-use IP addresses) to create the cluster. And the new supported version is usually only available in RAPID channel.
Recreate clusters with new scripts: cd build; make GCP_PROJECT=agones-images gcloud-e2e-test-cluster
Update the Cloud Build configuration to run e2e test on the new created clusters, and disable the e2e test on the cluster with the oldest supported K8s version
Update the versionsAndRegions variable to add the new supported version and remove the oldest supported K8s version in cloudbuild.yamlsubmit-e2e-test-cloud-build step
Run make lint for code quality check.
Submit a PR to trigger the e2e tests and verfiy they all pass
After the PR that includes the above Cloud Build configuration change has been merged and all the existing pending PRs in the Cloud Build queue have picked up the new configuration, submit a separate PR to update the e2e clusters terraform module to remove the e2e cluster with the oldest supported K8s version.
In build/terraform/e2e/module.tf, remove the oldest supported version from the map kubernetes_versions.
Destroy the old clusters with new scripts: cd build; make GCP_PROJECT=agones-images gcloud-e2e-test-cluster
Recreate the performance test cluster, and config the performance test to run on the new cluster
In build/terraform/performance/module.tf, update the kubernetes_versions to 1.28 and its corresponding region.
Recreate the cluster with the new script:
cd build; make shell; cd build/terraform/performance
terraform init -backend-config="bucket=agones-images-performance-infra-bucket-tfstate" -backend-config="prefix=terraform/state"
terraform apply -var project="agones-images"
Update the _TEST_CLUSTER_NAME in ci/perf-test-cloudbuild.yaml to the name of the new created performance test cluster.
The text was updated successfully, but these errors were encountered:
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.28). All the example clusters will use the middle of the three supported Kubernetes versions (1.28).
List of items to do for upgrading to 1.27, 1.28, 1.29
install/terraform/modules
gke
andgke-autopilot
) to 1.28build/build-image/Dockerfile
build/e2e-image/Dockerfile
build/includes/minikube.mk
(Get the patch version here since minikube supports the latest Kubernetes release)build/includes/kind.mk
(Confirm 1.28 is supported and get the patch version here)go.mod
to 1.28 by runninggo get k8s.io/client-go@{CORRESPONDING_VERSION}
andgo get k8s.io/apiextensions-apiserver@{CORRESPONDING_VERSION}
, then re-rungo mod tidy
andgo mod vendor
site/assets/templates/crd-doc-config.json
make gen-api-docs
make gen-crd-client
make gcloud-test-cluster
(this cluster will use Kubernetes 1.28), uninstall agones usinghelm uninstall agones -n agones-system
, and then runmake gen-embedded-openapi
andmake gen-install
site/config.toml
dev_supported_k8s
, which are 1.27 1.28 1.29dev_k8s_api_version
, which is 1.28dev_gke_example_cluster_version
, which is 1.28dev_aks_example_cluster_version
, which is the newest AKS supported version in 1.27 1.28 1.29dev_eks_example_cluster_version
, which is the newest EKS supported version in 1.27 1.28 1.29dev_minikube_example_cluster_version
, which is 1.28 with the supported patch versiongrpc_release_tag
in the SDK base image grpc version.AGONES_GRPC_VERSION
hereand
gRPC_GIT_TAG
hereThis can take an hour or so, as the above changes force a rebuild. Plan your day accordingly 😃.
build/terraform/e2e/module.tf
, add the new supported version to the mapkubernetes_versions
. Noted the location of the new clusters should have enough quota (CPU, In-use IP addresses) to create the cluster. And the new supported version is usually only available in RAPID channel.cd build; make GCP_PROJECT=agones-images gcloud-e2e-test-cluster
versionsAndRegions
variable to add the new supported version and remove the oldest supported K8s version incloudbuild.yaml
submit-e2e-test-cloud-build
stepmake lint
for code quality check.build/terraform/e2e/module.tf
, remove the oldest supported version from the mapkubernetes_versions
.cd build; make GCP_PROJECT=agones-images gcloud-e2e-test-cluster
build/terraform/performance/module.tf
, update thekubernetes_versions
to 1.28 and its corresponding region._TEST_CLUSTER_NAME
inci/perf-test-cloudbuild.yaml
to the name of the new created performance test cluster.The text was updated successfully, but these errors were encountered: