This is the 1.40.0 release of Agones.
In this release, we’ve updated our Kuberenetes support to include version 1.29, introduced a new implementation in the CSharp SDK for the Counters and Lists, graduated the FleetAllocationOverflow feature to stable, moved the DisableResyncOnSDKServer feature into beta and refined the documentation for Counters and Lists to simplify usage and enhance clarity.
-
Kubernetes Support Update 1.29: We’ve upgraded our Kubernetes compatibility to include version 1.29 and have discontinued support for version 1.26. Our current supported versions are now 1.27, 1.28, and 1.29. Please ensure your clusters are upgraded to one of these supported versions.
-
CSharp SDK for Counters and Lists: We’ve rolled out a new implementation in the CSharp SDK for the Counters and Lists features, along with significant enhancements to the documentation. These updates simplify the process of tracking numeric counters and lists of values on GameServers, providing clearer guidance.
-
Support for Extended Duration Pods on GKE Autopilot: Starting with Kubernetes version 1.28, we now support extended duration pods in Agones on GKE Autopilot. The GKEAutopilotExtendedDurationPods feature has been moved to Alpha status and requires Kubernetes versions 1.28 or newer. This enhancement is essential for those needing longer-lived pods in managed Kubernetes environments.
-
DisableResyncOnSDKServer in Beta: The DisableResyncOnSDKServer feature has progressed to beta in this release and is now enabled by default. This feature sets the resync interval to 0 to enhance performance by eliminating unnecessary resyncs.
-
FleetAllocationOverflow now Stable: With the FleetAllocationOverflow feature now stable in this release, you can apply labels and/or annotations to GameServers that exceed the desired number of replicas in a GameServerSet. This occurs when the allocation of GameServers surpasses the specified replica count.
-
Unity SDK Update: Enhanced Address Retrieval for GameServers: We've enhanced functionality to allow developers to conveniently access all associated addresses, including both IP and DNS, for a game server. This change simplifies the integration and deployment process by providing complete address information.
-
Counters & Lists Documentation Enhancements: We've standardized sorting priorities in GameServerAllocation and Fleet to consistently use available capacity and set the default sorting order as Ascending, making it easier to understand. We also have a new Counters and Lists documentation landing page to explain the functionality in full.
-
Optimised GameServer Sub-Controller Queues: We noticed that parts of the Agones contoller were queuing way too many items than they should, resulting in consuming more memory than was ideal. This fixes that, ensuring that far fewer records get queued, resulting in a leaner memory footprint from the controller.
What's Changed
Breaking changes
- Counters and Lists: Remove Bool Returns by @Kalaiselvi84 in #3738
Implemented enhancements
- Leader Election in Custom Controller by @Kalaiselvi84 in #3696
- Migrating from generate-groups.sh to kube_codegen.sh by @Kalaiselvi84 in #3722
- Move GKEAutopilotExtendedDurationPods to Alpha in 1.28+ by @zmerlynn in #3729
- Move DisableResyncOnSDKServer to Beta by @Kalaiselvi84 in #3732
- Counters & Lists landing page and doc improvements by @markmandel in #3649
- Graduate FleetAllocationOverflow to Stable by @Kalaiselvi84 in #3733
- Adds Counters and Lists to CSharp SDK by @igooch in #3581
- Feat/counter and list defaulting order to ascending by @lacroixthomas in #3734
- Add handling for StatusAddresses in GameServerStatus for the Unity SDK by @charlesvien in #3739
- Feat(gameservers): Shared pod IPs with GameServer Addresses by @lacroixthomas in #3764
- Be prescriptive about rotating regions when updating Kubernetes versions by @zmerlynn in #3716
- Fix ensure-e2e-infra-state-bucket by @zmerlynn in #3719
- Create Performance Cluster 1.28 by @Kalaiselvi84 in #3720
- Optimise GameServer Sub-Controller Queues by @markmandel in #3781
Fixed bugs
- Counters & Lists: Consolidate
priorities
sorting by @markmandel in #3690 - Fix(Counter & Lists): Add validation for
priorities
by @lacroixthomas in #3714 - fix: #3607 Metrics data loss in K8S controller by @alvin-7 in #3692
- Deflake GameServerAllocationDuringMultipleAllocationClients by allowing errors by @Kalaiselvi84 in #3750
Security fixes
- Bump protobufjs from 7.2.4 to 7.2.6 in /sdks/nodejs by @dependabot in #3755
- Bump golang.org/x/net from 0.19.0 to 0.23.0 by @zmerlynn in #3793
Other
- Flaky: TestGameServerCreationAfterDeletingOneExtensionsPod by @markmandel in #3699
- Prep for release v1.40.0 by @Kalaiselvi84 in #3700
- Bumps cpp-simple Image and Refactoring Example Makefiles by @Kalaiselvi84 in #3695
- Upgrade Protobuf to 1.33.0 by @Kalaiselvi84 in #3711
- Modify Script for Makefile Version Updates in Examples Directory by @Kalaiselvi84 in #3712
- Adds simple genai server example documentation to the Agones site by @igooch in #3713
- Update Supported Kubernetes to 1.27, 1.28, 1.29 by @Kalaiselvi84 in #3654
- fix: typo in docs by @qhyun2 in #3723
- Tweak: Setting up the Game Server by @Kalaiselvi84 in #3717
- Docs: gke.md - spelling by @daniellee in #3740
- Aesthetic rearrangement of cloudbuild.yaml by @zmerlynn in #3741
- Docs: Make hitting on connection explicit by @markmandel in #3743
- CI: Don't check Unreal Link by @markmandel in #3745
- New recommendation for multi-cluster allocation by @markmandel in #3744
- Custom Controller Example Page on Agones Website by @Kalaiselvi84 in #3725
- Add Nitrado logo by @towolf in #3753
- Remove unnecessary args from e2e-test-cloudbuild by @zmerlynn in #3754
- Update Allocation from Fleet Documentation by @Kalaiselvi84 in #3761
- Transform Lint Warnings into Errors by @Kalaiselvi84 in #3756
- Update Canary Testing Documentation by @Kalaiselvi84 in #3760
- Supertuxkart Example on Agones Site by @Kalaiselvi84 in #3728
- Xonotic Example on Agones Site by @Kalaiselvi84 in #3742
- nit documentation fix in kind cluster section when building Agones by @vicentefb in #3770
- Merged steps inside documentation about webhook certificate creation by @vicentefb in #3768
- Example Images: Increment Tags by @Kalaiselvi84 in #3796
- Update simple game server example documentation by @vicentefb in #3776
New Contributors
- @lacroixthomas made their first contribution in #3714
- @daniellee made their first contribution in #3740
- @charlesvien made their first contribution in #3739
- @vicentefb made their first contribution in #3770
Full Changelog: v1.39.0...v1.40.0
Images available with this release:
- us-docker.pkg.dev/agones-images/release/agones-controller:1.40.0
- us-docker.pkg.dev/agones-images/release/agones-sdk:1.40.0
- us-docker.pkg.dev/agones-images/release/agones-ping:1.40.0
- us-docker.pkg.dev/agones-images/release/agones-allocator:1.40.0
- us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.8
- us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.13
- us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.17
- us-docker.pkg.dev/agones-images/examples/crd-client:0.16
- us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.10
- us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.13
- us-docker.pkg.dev/agones-images/examples/simple-game-server:0.31
- us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.13
- us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3
- us-docker.pkg.dev/agones-images/examples/xonotic-example:1.9
Helm chart available with this release:
Make sure to add our stable helm repository using
helm repo add agones https://agones.dev/chart/stable