# 1.61.0 - SDK Sidecar Restricted Security Context, GameServer Health Detection Fix, Fleet Rolling Update Stability, and Memory Leak Resolution.

LLMS index: [llms.txt](/site/llms.txt)

---

This is the 1.61.0 release of Agones.

This release focuses on strengthening GameServer lifecycle reliability, hardening security for the SDK sidecar, and continuing internal code modernization. Key updates include a restricted-compatible security context for the SDK server sidecar, fixes for GameServer health detection and fleet auto scaling edge cases, a memory leak fix on GameServer deletion, a Helm-conditional fix for CRD patch metadata, and continued migration of the codebase to a new internal errors package. Together, these changes improve production stability for game server operators and keep the project's build tooling current.

- **Helm 3 to Helm 4 Upgrade:** Agones tooling and charts have been upgraded from Helm 3 to Helm 4. Operators managing Agones installations via Helm should ensure their deployment pipelines and Helm client versions are compatible with Helm 4.

- **Restricted-Compatible Security Context for SDK Sidecar:** The SDK server sidecar now supports a security context compatible with Kubernetes' restricted Pod Security Standard, making it easier for operators to run Agones in clusters that enforce strict security policies.

- **GameServer Health Detection Fix:** GameServers are now correctly marked Unhealthy when the game container terminates but the Pod itself remains Running, closing a gap where crashed game processes could previously go undetected.

- **Memory Leak Fix on GameServer Deletion:** Resolved a memory leak that occurred when a GameServer was deleted, improving controller stability over long-running clusters.

- **Fleet Rolling Update Fix:** Active GameServerSet replica counts are now clamped at zero during fleet rolling updates, preventing invalid negative replica states during scale-down transitions. 

- **E2E Test Stability on GKE Autopilot:** SendTCP now retries TCP dialing on GKE Autopilot clusters, improving reliability for automated end-to-end test runs.

- **SDK Server maxItems Fix:** The gameservers.lists.maxItems setting is now correctly plumbed through to the SDK server, ensuring configured list size limits are honored.

- **New Website Logo (Snapser):** Welcome to Snapser! Their logo has been added to the Agones homepage showcasing organizations using Agones in production.

**Breaking changes**
- fix: gate x-kubernetes-patch-* CRD fields behind a Helm conditional by @markmandel in https://github.com/agones-dev/agones/pull/4698
- feat: upgrade helm from 3 to 4 by @lacroixthomas in https://github.com/agones-dev/agones/pull/4746

**Implemented enhancements**
- feat(#4668): restricted-compatible security context for the sdk sidecar by @GrowlyX in https://github.com/agones-dev/agones/pull/4718

**Fixed bugs**
- fix: mark GameServer Unhealthy when the game container terminates and the Pod stays Running by @GrowlyX in https://github.com/agones-dev/agones/pull/4663
- fix memory leak when delete game server by @txuna in https://github.com/agones-dev/agones/pull/4697
- Clamp active GameServerSet replicas at zero during fleet rolling updates by @Jacobbrewer1 in https://github.com/agones-dev/agones/pull/4706
- fix: use crates.io registry token for Rust SDK publishing by @indurireddy-TF in https://github.com/agones-dev/agones/pull/4693
- fix: plumb gameservers.lists.maxItems through to the SDK server by @markmandel in https://github.com/agones-dev/agones/pull/4729
- fix: move GameServer to Shutdown when the game container exits cleanly and the Pod stays Running by @GrowlyX in https://github.com/agones-dev/agones/pull/4737

**Security fixes**
- build: enable gosec, correctness linters, and testifylint by @markmandel in https://github.com/agones-dev/agones/pull/4696

**Other**
- contrib: enforce automated test coverage for all submissions by @markmandel in https://github.com/agones-dev/agones/pull/4675
- Preparation for Release v1.61.0 by @Sivasankaran25 in https://github.com/agones-dev/agones/pull/4687
- chore: upgrade website to Docsy 0.16.0 and restore the version lock by @markmandel in https://github.com/agones-dev/agones/pull/4669
- build: upgrade golangci-lint to v2.12.2 and migrate config by @markmandel in https://github.com/agones-dev/agones/pull/4676
- build: bump actions/stale from 10.4.0 to 11.0.0 by @dependabot[bot] in https://github.com/agones-dev/agones/pull/4666
- build: update dependencies in autoscaler-webhook example by @markmandel in https://github.com/agones-dev/agones/pull/4688
- build: ignore versioned 1-*.agones.dev URLs in htmltest by @markmandel in https://github.com/agones-dev/agones/pull/4695
- feat: use new errors pkg in pkg/gameservers/ by @lacroixthomas in https://github.com/agones-dev/agones/pull/4691
- test: Ignore https://development.agones.dev/ link by @markmandel in https://github.com/agones-dev/agones/pull/4700
- test: replace `assert` with `require` in e2e TestFleetStrategyValidation by @markmandel in https://github.com/agones-dev/agones/pull/4704
- build: bump browserslist from 4.28.1 to 4.28.8 in /sdks/nodejs in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/agones-dev/agones/pull/4708
- feat: use new errors pkg in pkg/gameserverallocations/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4701
- Retry TCP dial in SendTCP only on GKE Autopilot by @markmandel in https://github.com/agones-dev/agones/pull/4709
- build: bump the go_modules group across 4 directories with 1 update by @dependabot[bot] in https://github.com/agones-dev/agones/pull/4707
- build: bump the go_modules group across 7 directories with 1 update by @dependabot[bot] in https://github.com/agones-dev/agones/pull/4717
- feat: use new errors pkg in pkg/cloudproduct/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4712
- feat: use new errors pkg in pkg/fleets/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4710
- feat: use new errors pkg in pkg/portallocator/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4714
- feat: use new errors pkg in pkg/gameserverset/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4703
- feat: use new errors pkg in pkg/metrics/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4713
- feat: stop using github.com/pkg/errors in build/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4724
- feat: use new errors pkg in pkg/apis/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4720
- feat: use new errors pkg in ./cmd/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4721
- feat: use new errors pkg in sdks/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4722
- PlayerTracking Removal: Delete Unit Tests by @markmandel in https://github.com/agones-dev/agones/pull/4719
- build: bump the go_modules group across 11 directories with 1 update by @dependabot[bot] in https://github.com/agones-dev/agones/pull/4732
- feat: stop using github.com/pkg/errors in examples/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4723
- Snapser: Logo addition by @ajinkya-apte in https://github.com/agones-dev/agones/pull/4736
- feat: use new errors pkg in pkg/fleetautoscalers/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4711
- build: enable modernize, minus the omitzero and newexpr analyzers by @markmandel in https://github.com/agones-dev/agones/pull/4735
- feat: use new errors pkg in pkg/sdkserver/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4715
- build: bump the npm_and_yarn group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/agones-dev/agones/pull/4734
- feat: use new errors pkg in ./tests/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4725
- fix: scope test-go to sdks/go to avoid rust SDK build race by @markmandel in https://github.com/agones-dev/agones/pull/4739
- feat: use new errors pkg in pkg/util/* by @lacroixthomas in https://github.com/agones-dev/agones/pull/4716
- Update cmake link to always latest by @markmandel in https://github.com/agones-dev/agones/pull/4744
- test: remove PlayerTracking e2e tests by @markmandel in https://github.com/agones-dev/agones/pull/4741
- test: call t.Helper() in shared test helpers by @markmandel in https://github.com/agones-dev/agones/pull/4738
- fix: tolerate an existing allocator client secret when copying by @GrowlyX in https://github.com/agones-dev/agones/pull/4740
- chore: add new rule for errors in linter and agent by @lacroixthomas in https://github.com/agones-dev/agones/pull/4745
- build: bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0 in /build/agones-bot in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/agones-dev/agones/pull/4747

**New Contributors**
- @GrowlyX made their first contribution in https://github.com/agones-dev/agones/pull/4663
- @Jacobbrewer1 made their first contribution in https://github.com/agones-dev/agones/pull/4706
- @ajinkya-apte made their first contribution in https://github.com/agones-dev/agones/pull/4736

See <a href="https://github.com/agones-dev/agones/blob/release-1.61.0/CHANGELOG.md" data-proofer-ignore>CHANGELOG</a> for more details on changes.

Images available with this release:

- [us-docker.pkg.dev/agones-images/release/agones-controller:1.61.0](https://us-docker.pkg.dev/agones-images/release/agones-controller:1.61.0)
- [us-docker.pkg.dev/agones-images/release/agones-sdk:1.61.0](https://us-docker.pkg.dev/agones-images/release/agones-sdk:1.61.0)
- [us-docker.pkg.dev/agones-images/release/agones-ping:1.61.0](https://us-docker.pkg.dev/agones-images/release/agones-ping:1.61.0)
- [us-docker.pkg.dev/agones-images/release/agones-allocator:1.61.0](https://us-docker.pkg.dev/agones-images/release/agones-allocator:1.61.0)
- [us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.18](https://us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.18)
- [us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.23](https://us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.23)
- [us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.27](https://us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.27)
- [us-docker.pkg.dev/agones-images/examples/crd-client:0.26](https://us-docker.pkg.dev/agones-images/examples/crd-client:0.26)
- [us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.11](https://us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.11)
- [us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.14](https://us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.14)
- [us-docker.pkg.dev/agones-images/examples/simple-game-server:0.43](https://us-docker.pkg.dev/agones-images/examples/simple-game-server:0.43)
- [us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.24](https://us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.24)
- [us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3](https://us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3)
- [us-docker.pkg.dev/agones-images/examples/xonotic-example:2.8](https://us-docker.pkg.dev/agones-images/examples/xonotic-example:2.8)

Helm chart available with this release:

- <a href="https://agones.dev/chart/stable/agones-1.61.0.tgz" data-proofer-ignore>
  <code>helm install agones agones/agones --version 1.61.0</code></a>

> Make sure to add our stable helm repository using `helm repo add agones https://agones.dev/chart/stable`
