This is the 1.34.0 release of Agones.
In this release, we've upgraded Kubernetes compatibility, graduated StateAllocationFilter to stable, and enhanced GameServers and GameServerAllocation address support.
-
Kubernetes Support: The latest update extends support to Kubernetes versions 1.25, 1.26, and 1.27, enhancing compatibility with current Kubernetes deployments.
-
Allocation State Filter is now Stable: The allocation state filter feature has been promoted to stable. It determines the specific state that should be filtered when trying to obtain a
GameServer
through allocation. By default, this filter is set toReady
, but it can also be set to Allocated. When theAllocated
option is selected, it can be combined with label or player selectors to access an already Allocated GameServer. -
Custom Fleet Autoscaler Synchronization Interval is now Stable: The ability to specify the interval in which the Fleet autoscaler syncs its state and updates its backing Fleet has now also been moved to Stable.
-
GameServer Address Improvements: GamesServers and GameServerAllocation results now also return the full set of Address records that are attached to the node they came from. This can be useful for dual stack IPv4 and IPv6 nodes, nodes with hostnames and more.
-
Migrating to Distroless Image: We have migrated from Alpine as the base container image for Agones to Distroless making managing consistent updates to the base image easier for the Agones team.
What's Changed
Breaking changes
- refactor: Throwing error messages with field. by @aimuz in #3239
- refactor: apihook ValidateGameServerSpec and ValidateScheduling use field.ErrorList by @aimuz in #3255
- Update Supported Kubernetes to 1.25, 1.26, 1.27 by @Kalaiselvi84 in #3261
- refactor(allocation): Reimplement the Validate method using "field.ErrorList" by @aimuz in #3259
- refactor: FleetAutoscaler Validate use field.ErrorList by @aimuz in #3272
Implemented enhancements
- Graduate CustomFasSyncInterval To Stable by @Kalaiselvi84 in #3235
- Alpine ➡️ Distroless as Agones base image by @markmandel in #3270
- Adds Counts and Lists AutoScale Policies by @igooch in #3211
- More Local Dev Server Support by @CauhxMilloy in #3252
- GameServerAllocation to sort Priorities by Allocated Capacity by @igooch in #3282
- Add Node.Status.Address to GameServer.Status in CRD and SDK by @zmerlynn in #3299
- Add GameServer addresses to the allocation APIs by @zmerlynn in #3307
- Cloud Build Script for supertuxkart by @Kalaiselvi84 in #3291
- Add "Choosing a GCP network" to GKE Cluster Creation by @zmerlynn in #3311
- Cloud Build script for crd-client by @Kalaiselvi84 in #3290
- Cloud build script for rust-simple by @Kalaiselvi84 in #3313
- Cloudbuild script for autoscaler-webhook by @Kalaiselvi84 in #3298
- update xonotic example to 0.8.6 by @ashutosji in #3273
- Cloud Build script for allocation-endpoint by @Kalaiselvi84 in #3289
- Cloud build script for nodejs-simple by @Kalaiselvi84 in #3312
- Cloud build script for Xonotic image by @Kalaiselvi84 in #3317
- Graduate StateAllocationFilter to Stable by @Kalaiselvi84 in #3308
- Sort by Priority for strategy Distributed by @igooch in #3296
- Build Script for cpp-simple by @Kalaiselvi84 in #3320
Fixed bugs
- fix: Enabling SplitControllerAndExtensions leads to incomplete metrics availability by @aimuz in #3242
- Race Flake in TestControllerSyncFleetAutoscaler() by @markmandel in #3260
- Use maintenance exclusion to prevent auto-upgrade, add 1.27 test clusters by @gongmax in #3253
- SDK WatchGameServer logs error on shutdown by @Kalaiselvi84 in #3271
- APIService: Updates to handlers for 1.27.x by @markmandel in #3297
- [Helm Chart] Only enable service monitor relabelings for prometheus scrape when prometheusServiceDiscovery is enabled by @ufou in #3285
- Flaky: TestAllocatorAllocateOnGameServerUpdateError by @markmandel in #3300
- Run
make gen-all-sdk-grpc
by @zmerlynn in #3301 - Fix for scaling split allocated GameServerSets by @markmandel in #3292
- Flaky: TestAllocatorAllocateOnGameServerUpdateError by @markmandel in #3306
- Bugs and Improvements for CPP SDK and Example by @markmandel in #3318
Other
- Preparation for 1.34.0 by @Kalaiselvi84 in #3248
- fix: Label PR Warning by @aimuz in #3241
- Put e2e Cloud Build logs in public bucket by @markmandel in #3250
- cleanup: Add agones-extensions Image by @aimuz in #3256
- Release Checklist Cleanup by @Kalaiselvi84 in #3258
- Cleanup Labeler by @Kalaiselvi84 in #3257
- fix: info to debug level by @aimuz in #3265
- refactor: Switch Helm Cleanup job to use bitnami/kubectl image by @aimuz in #3263
- Remove e2e cluster with oldest supported K8s version by @Kalaiselvi84 in #3267
- Flake: TestControllerAllocator by @markmandel in #3264
- Upgrade Version of Rust by @Kalaiselvi84 in #3268
- Some copy edits to the most recent release blog post. by @roberthbailey in #3275
- Fix Dependabot Vulnerability by @Kalaiselvi84 in #3269
- Upgrade site to Google Analytics 4 by @markmandel in #3278
- Flaky: TestAllocatorAllocatePriority by @markmandel in #3280
- Move simple-game-server to Distroless base by @markmandel in #3279
- TestAllocatorAllocateOnGameServerUpdateError by @markmandel in #3283
- Switching autoscaler-webhook to utilize distroless as base Image by @Kalaiselvi84 in #3276
- Distroless base image for crd-client by @Kalaiselvi84 in #3277
- Flake TestAllocatorAllocateOnGameServerUpdateError by @markmandel in #3295
- Updates for Terraform by @markmandel in #3293
- Bring Rust SDK dependencies up to date by @markmandel in #3305
- Add note about which namespace is used for game serves deployed from fleets by @mikeseese in #3288
- Condition check for no content in PR by @Kalaiselvi84 in #3304
- Update close.yaml by @geetachavan1 in #3316
- Fix inaccurate parameter description by @gongmax in #3321
New Contributors
- @CauhxMilloy made their first contribution in #3252
- @ufou made their first contribution in #3285
- @mikeseese made their first contribution in #3288
Full Changelog: v1.33.0...v1.34.0
Images available with this release:
- us-docker.pkg.dev/agones-images/release/agones-controller:1.34.0
- us-docker.pkg.dev/agones-images/release/agones-sdk:1.34.0
- us-docker.pkg.dev/agones-images/release/agones-ping:1.34.0
- us-docker.pkg.dev/agones-images/release/agones-allocator:1.34.0
- us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.5
- us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.7
- us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.16
- us-docker.pkg.dev/agones-images/examples/crd-client:0.10
- us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.8
- us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.12
- us-docker.pkg.dev/agones-images/examples/simple-game-server:0.17
- us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.8
- us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3
- us-docker.pkg.dev/agones-images/examples/xonotic-example:1.2
Helm chart available with this release:
Make sure to add our stable helm repository using
helm repo add agones https://agones.dev/chart/stable