This is the 1.53.0 release of Agones.
This release introduces a beta Rust SDK and lays the groundwork for WebAssembly (Wasm) Fleet Autoscaling with a new policy type and architectural refactoring. It also includes key bug fixes for List value removal and SDK initialization. The critical WebSocket connectivity fix, which was previously backported to the v1.52.2 patch release, is also included in this release.
-
Rust SDK (Beta) Counters and Lists Integration: Added initial implementation for the Rust SDK, integrating its beta features, including the Counter and List state management functionalities. This change also introduces unit tests for the Rust SDK and new conformance tests to ensure proper behavior within the Agones system.
-
Ensured SDK Server Runs First in Init Containers: Corrected the container injection logic from using append (which put the Agones SDK last) to using a prepend/concat operation.
-
List Value Removal Reliability: Corrected a bug in the SDK Server that prevented reliable removal of values from the experimental SDK List when those values were part of a pending batch update, ensuring consistent List state.
-
Restored Real-Time WebSocket Connection (SDK): Fixed a deadlock introduced by an upstream dependency upgrade (in grpc-gateway/v2) that caused the /watch/gameserver WebSocket to hang.
Note: This critical fix was also backported and is available in the v1.52.2 patch release. -
FleetAutoscaler Architecture Improvement: We've refactored the internal structure of the fasThread to introduce a dedicated local state map. This foundational work sets the stage for advanced future features, such as the upcoming support for WebAssembly (Wasm)-based custom autoscaling plugins. This feature remains under active development and is not yet available.
-
New Policy Type: WebAssembly (Wasm) Fleet Autoscaling: Introduced Wasm as a new policy type option for the FleetAutoscaler CRD. This involved defining a new Wasm policy schema (function, config, from.url, and hash) and refactoring existing webhook templates into a reusable url.configuration template.
Check the README for details on features, installation and usage.
What's Changed
Breaking changes
- feat(autoscaling): CRDs for Wasm autoscaler policy by @markmandel in #4281
Implemented enhancements
- feat: add processor proto by @lacroixthomas in #4227
- Feat: Add new binary processor by @lacroixthomas in #4222
- Update Helm option for spec.strategy.type for controller and extensio… by @Sivasankaran25 in #4244
- WasmAutoscaler feature gate and prep build image by @markmandel in #4243
- feat: use gameservers.lists.maxItems instead of a hardcoded limit by @miai10 in #4246
- Feat: update error fields from processor proto by @lacroixthomas in #4266
- Wasm Autoscaler: Example by @markmandel in #4260
- Feat: implement rust sdk (counter and list) by @lacroixthomas in #4247
- Fleet autoscaler threads maintain state by @markmandel in #4277
- Feat: implement processor client by @lacroixthomas in #4265
- Add Wasm autoscaler policy support to FleetAutoscaler CRDs YAML by @markmandel in #4298
- Implement Wasm autoscaler policy controller logic by @markmandel in #4299
- Feat: integrate processor on allocator by @lacroixthomas in #4302
- Feat: integrate processor on extensions by @lacroixthomas in #4301
Fixed bugs
- Fix: patch flaky tests from submit-upgrade-test-cloud-build by @lacroixthomas in #4236
- Fix: Add missing permission for helm uninstall in upgrade test cleanup by @lacroixthomas in #4250
- Prepend sidecars to existing init containers by @markmandel in #4278
- fix: broken websocket connection after upgrading github.com/grpc-ecosystem/grpc-gateway/v2 by @swermin in #4270
- flakey: add resource requirements to SuperTuxKart e2e test by @markmandel in #4280
- Fix: update link to quilkin by @lacroixthomas in #4288
- Update Add and Remove List Value in SDK Server by @Sivasankaran25 in #4279
Other
- Preparation for Release v1.52.0 by @Sivasankaran25 in #4234
- Updates agones-bot dependencies by @igooch in #4232
- Update all tests to use the latest Helm version by @Sivasankaran25 in #4238
- Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.3.0 in /examples/crd-client by @dependabot[bot] in #4229
- Handle missing upgrade-test-runner pod to avoid log collection errors by @0xaravindh in #4224
- e2e: add webhook autoscaler test with fleet metadata by @0xaravindh in #4251
- Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.4.0 in /test/upgrade by @dependabot[bot] in #4254
- Updates the upgrade test to print any fatal error messages to the job pod termination log by @igooch in #4252
- Pause Single Cluster Upgrade work until stable. by @markmandel in #4257
- Replace bitname/kubectl with alpine/kubectl by @markmandel in #4268
- Upgrade Golang to 1.24.6 and update related dependencies by @0xaravindh in #4262
- flaky: TestControllerAllocator by @markmandel in #4269
- Release v1.52.0 by @Sivasankaran25 in #4272
- Preparation for Release v1.53.0 by @Sivasankaran25 in #4273
- Updates the build scripts to allow for a patch release by @igooch in #4291
- Post Release-1.52.2 by @Sivasankaran25 in #4296
- Add Patch Release Template by @Sivasankaran25 in #4300
- fix(ci): Fix all the links in CI by @markmandel in #4303
- docs: clarify FleetAutoscaler webhook response structure by @markmandel in #4297
- Updates Rust version by @igooch in #4306
- npm audit fix by @igooch in #4305
- Updates release templates by @igooch in #4307
Full Changelog: v1.51.0...v1.53.0
See CHANGELOG for more details on changes.
Images available with this release:
- us-docker.pkg.dev/agones-images/release/agones-controller:1.53.0
- us-docker.pkg.dev/agones-images/release/agones-sdk:1.53.0
- us-docker.pkg.dev/agones-images/release/agones-ping:1.53.0
- us-docker.pkg.dev/agones-images/release/agones-allocator:1.53.0
- us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.14
- us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.20
- us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.21
- us-docker.pkg.dev/agones-images/examples/crd-client:0.22
- 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.39
- us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.19
- us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3
- us-docker.pkg.dev/agones-images/examples/xonotic-example:2.5
Helm chart available with this release:
Make sure to add our stable helm repository using
helm repo add agones https://agones.dev/chart/stable