-
Notifications
You must be signed in to change notification settings - Fork 866
Description
Is your feature request related to a problem? Please describe.
The SidecarContainers feature gate has been in Alpha since Agones v1.49.0. It refactors how the SDK server runs, utilizing Kubernetes native sidecar container support (or equivalent patterns) to decouple the SDK lifecycle from the GameServer container lifecycle.
We have received no error reports since its introduction. However, this is a significant architectural change that affects GameServer Pod lifecycle and restart policies. Promoting it to Beta (enabled by default) is the necessary next step to validate its robustness across a wider range of user scenarios.
Describe the solution you'd like
I would like to promote SidecarContainers to Beta.
Following the feature stage progression steps defined in pkg/util/runtime/features.go, the following changes are required:
- Update
pkg/util/runtime/features.go: Change the default value ofSidecarContainerstotrue. - Update documentation: Move the feature from the "Alpha" table to the "Beta" table in the Feature Stages guide.
- Review documentation: Search for all references to the
SidecarContainersfeature gate in the docs and update as needed (e.g., removing instructions that imply it must be manually enabled, moving fromalphatobetashortcode, etc) (documentation contribution guide). - Update Helm charts to reflect the new default state (if applicable).
- Ensure end-to-end tests are passing and cover the feature usage.
Describe alternatives you've considered
Keeping it in Alpha. However, given the lack of bug reports, we need to move this to "Enabled by Default" to ensure it is battle-tested before eventually considering it for Stable.
Additional context
- Feature Gate:
SidecarContainers - Introduced in: v1.49.0
- Relevant Issues: SDK Server: Adopt Sidecar Containers #3642 (Original Tracking Issue)
- Relevant PRs: Adoption of Sidecar Containers #4146 (Implementation)
- Implications: This changes the
RestartPolicybehavior and how the SDK sidecar interacts with the Game Server container. It is considered a breaking change for users relying on the legacy sidecar lifecycle behavior.