This is the 1.58.0 release of Agones.
This release introduces an upgrade to Golang 1.26, bringing compatibility with the latest language enhancements and ecosystem improvements. A new Python SDK for Agones Game Server has been added, enabling Python-based applications to integrate more easily with Agones services. Deployment flexibility has been enhanced through environment variable support across all Agones component deployments, allowing easier runtime customization. The GameServer CRD now includes selectable fields, enabling more efficient filtering and resource management capabilities. Reliability has also been improved with a fix to avoid blocking while waiting for PodIP population, reducing unnecessary provisioning delays. Together, these updates enhance platform flexibility, developer productivity, and overall system stability.
-
Upgrade to Golang 1.26.0 and Dependency Updates: This release upgrades the project to Go 1.26.0 and updates related dependencies and Dockerfiles, improving compatibility, maintaining ecosystem alignment, and enhancing overall performance and development tooling support.
-
Python SDK for Agones Game Server: Added a Python SDK for Agones game server integration, enabling Python-based game servers and services to interact with Agones APIs for lifecycle management, health reporting, and allocation workflows. This expands language support within the ecosystem, improves developer flexibility, and ensures a more consistent experience for teams building and operating game server infrastructure with Agones.
-
Environment Variable Support for Agones Components: Added env configuration support across all Agones component deployments, enabling easier customization and runtime configuration. This enhancement allows operators to inject environment-specific settings without directly modifying deployment templates. It improves deployment flexibility while providing a more consistent and maintainable configuration experience across the Agones ecosystem.
-
Selectable Fields for GameServer CRD: Added selectable fields support to the GameServer CRD, enabling more efficient querying and filtering of GameServer resources. This improves resource discovery and operational workflows by allowing users to target specific GameServer attributes more effectively.
-
Non-Blocking PodIP Population for Faster Scaling: Resolved a bottleneck introduced in v1.40.0 where GameServers would block in the Starting state until a PodIP was assigned. GameServers now transition to Scheduled and subsequent states without delay, significantly improving scaling performance. User Note: PodIPs are now populated asynchronously as they become available on the Pod; ensure your architecture accounts for this non-blocking behavior when upgrading.
Check the README for details on features, installation and usage.
What's Changed
Breaking changes
- bug: Don't block for PodIP population by @markmandel in #4535
Implemented enhancements
- docs: audit membership roles and update community_membership.md by @markmandel in #4500
- golang upgrade 1.26 by @indurireddy-TF in #4497
- Feat: add python sdk for Agones game server by @hiromesh in #4496
- Feat: implement the processor server by @lacroixthomas in #4263
- Feat: setup fossa GitHub action by @lacroixthomas in #4541
- Feat: support arm64 architecture in development tooling by @nicknikolakakis in #4545
- Feat: Add PDB on new processor allocator by @lacroixthomas in #4546
- Add selectable fields to gameserver crd by @swermin in #4542
Fixed bugs
- fix: recovery paths for PodSucceeded and PodFailed GameServer lifecycle by @markmandel in #4480
- fix: only render set PDB field to fix schema validation by @nicknikolakakis in #4511
- fix: simple-game-server ports are bound before calling SDK Ready() by @markmandel in #4567
Other
- Preparation for Release v1.58.0 by @Sivasankaran25 in #4505
- Docs: add allocator, ping, and topology spread HA details by @NA-V10 in #4509
- build: improve gen-install and gen-api-docs failure messages by @markmandel in #4512
- chore: update copyright headers to CNCF format (cmd/, pkg/apis/) by @yosofbadr in #4515
- build(deps): bump github.com/go-git/go-git/v5 from 5.17.1 to 5.18.0 in /build/scripts/example-version-checker by @dependabot[bot] in #4518
- chore: update copyright header to CNCF format in pkg directory by @JeevaRamanathan in #4520
- build(deps): bump protobufjs from 7.5.4 to 7.5.5 in /sdks/nodejs by @dependabot[bot] in #4517
- chore: update copyright headers to CNCF format (non-helm YAML/config) by @mateenali66 in #4522
- Bump cloud build docker client version to 24.0.9 by @markmandel in #4516
- chore: update copyright headers to CNCF format (install/helm) by @mateenali66 in #4527
- Update to security policy for CNCF migration by @galalmounir in #4504
- build(deps): bump go.opentelemetry.io/otel from 1.39.0 to 1.41.0 by @dependabot[bot] in #4531
- chore: update copyright header to CNCF format in .sh files by @lakshpraveen in #4536
- Add env option to all Agones component deployments by @lazy-slackoth in #4499
- chore: update copyright header to CNCF format in proto directory by @JeevaRamanathan in #4525
- flaky: TestGameServerPodCompletedAfterCleanExit extra debugging by @markmandel in #4537
- docs: update documentation contribution guidelines by @markmandel in #4534
- chore: migrate pkg/processor to pkg/gsAlloc/processor by @lacroixthomas in #4547
- Update htmltest user agent by @markmandel in #4551
- fix(ping): correct flag default and bind pflags to viper by @bosiakov in #4543
- Update Apache License Copyright Headers to CNCF Format by @ethanzhou-dev in #4554
- Update authors on SDK package metadata by @markmandel in #4558
- flaky: TestMultiClusterAllocationFromLocal by @markmandel in #4563
- Flaky: TestGameServerPodCompletedAfterCleanExit by @markmandel in #4562
- Add debug logging to TestGameServerTcpProtocol for flaky test diagnosis by @markmandel in #4539
- build(deps): bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /sdks/nodejs by @dependabot[bot] in #4564
- build(deps): bump protobufjs from 7.5.5 to 7.5.8 in /sdks/nodejs by @dependabot[bot] in #4565
New Contributors
- @NA-V10 made their first contribution in #4509
- @nicknikolakakis made their first contribution in #4511
- @yosofbadr made their first contribution in #4515
- @hiromesh made their first contribution in #4496
- @JeevaRamanathan made their first contribution in #4520
- @mateenali66 made their first contribution in #4522
- @galalmounir made their first contribution in #4504
- @lakshpraveen made their first contribution in #4536
- @lazy-slackoth made their first contribution in #4499
- @bosiakov made their first contribution in #4543
- @ethanzhou-dev made their first contribution in #4554
Full Changelog: v1.57.0...v1.58.0
See CHANGELOG for more details on changes.
Images available with this release:
- us-docker.pkg.dev/agones-images/release/agones-controller:1.58.0
- us-docker.pkg.dev/agones-images/release/agones-sdk:1.58.0
- us-docker.pkg.dev/agones-images/release/agones-ping:1.58.0
- us-docker.pkg.dev/agones-images/release/agones-allocator:1.58.0
- us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.16
- us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.23
- us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.26
- us-docker.pkg.dev/agones-images/examples/crd-client:0.25
- us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.11
- us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.14
- us-docker.pkg.dev/agones-images/examples/simple-game-server:0.43
- us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.23
- us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3
- us-docker.pkg.dev/agones-images/examples/xonotic-example:2.8
Helm chart available with this release:
Make sure to add our stable helm repository using
helm repo add agones https://agones.dev/chart/stable