From 4359a6845fc35e65e5b4a36899a3be807f6d61e3 Mon Sep 17 00:00:00 2001 From: kamaljeeti <148054555+kamaljeeti@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:08:35 +0000 Subject: [PATCH] Move Feature GKEAutopilotExtendedDurationPods To Beta (#4006) * Move-GKEAutopilotExtendedDurationPods-To-Beta * rest changes --- build/Makefile | 2 +- cloudbuild.yaml | 5 ++-- install/helm/agones/defaultfeaturegates.yaml | 2 +- pkg/util/runtime/features.go | 28 +++++++++---------- site/content/en/docs/Guides/feature-stages.md | 21 +++++++++++++- 5 files changed, 38 insertions(+), 20 deletions(-) diff --git a/build/Makefile b/build/Makefile index d674b64d60..d50575b483 100644 --- a/build/Makefile +++ b/build/Makefile @@ -67,7 +67,7 @@ KIND_CONTAINER_NAME=$(KIND_PROFILE)-control-plane GS_TEST_IMAGE ?= us-docker.pkg.dev/agones-images/examples/simple-game-server:0.34 # Enable all beta feature gates. Keep in sync with `true` (beta) entries in pkg/util/runtime/features.go:featureDefaults -BETA_FEATURE_GATES ?= "AutopilotPassthroughPort=true&CountsAndLists=true&DisableResyncOnSDKServer=true" +BETA_FEATURE_GATES ?= "AutopilotPassthroughPort=true&CountsAndLists=true&DisableResyncOnSDKServer=true&GKEAutopilotExtendedDurationPods=true" # Enable all alpha feature gates. Keep in sync with `false` (alpha) entries in pkg/util/runtime/features.go:featureDefaults ALPHA_FEATURE_GATES ?= "PlayerAllocationFilter=true&PlayerTracking=true&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&ScheduledAutoscaler=true&Example=true" diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 472dab5552..7616bde94a 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -274,12 +274,11 @@ steps: declare -A versionsAndRegions=( [1.28]=us-west1 [1.29]=europe-west1 [1.30]=asia-east1 ) # Keep in sync with (the inverse of) pkg/util/runtime/features.go:featureDefaults - featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&CountsAndLists=false&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&ScheduledAutoscaler=true&DisableResyncOnSDKServer=false&AutopilotPassthroughPort=false&Example=true" + featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&CountsAndLists=false&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&ScheduledAutoscaler=true&DisableResyncOnSDKServer=false&AutopilotPassthroughPort=false&GKEAutopilotExtendedDurationPods=false&Example=true" featureWithoutGate="" # Use this if specific feature gates can only be supported on specific Kubernetes versions. - # TODO: When 1.28 becomes trailing version, promote GKEAutopilotExtendedDurationPods to beta. - declare -A featureWithGateByVersion=( [1.28]="${featureWithGate}&GKEAutopilotExtendedDurationPods=true" [1.29]="${featureWithGate}&GKEAutopilotExtendedDurationPods=true" [1.30]="${featureWithGate}&GKEAutopilotExtendedDurationPods=true") + declare -A featureWithGateByVersion=( [1.28]="${featureWithGate}" [1.29]="${featureWithGate}" [1.30]="${featureWithGate}") for cloudProduct in ${cloudProducts[@]} do diff --git a/install/helm/agones/defaultfeaturegates.yaml b/install/helm/agones/defaultfeaturegates.yaml index bb7fe64485..36eb5c1b75 100644 --- a/install/helm/agones/defaultfeaturegates.yaml +++ b/install/helm/agones/defaultfeaturegates.yaml @@ -15,12 +15,12 @@ # Default values for feature gates. Keep in sync with pkg/util/runtime/features.go:featureDefaults # Beta features +GKEAutopilotExtendedDurationPods: true AutopilotPassthroughPort: true CountsAndLists: true DisableResyncOnSDKServer: true # Alpha features -GKEAutopilotExtendedDurationPods: false PlayerAllocationFilter: false PlayerTracking: false RollingUpdateFix: false diff --git a/pkg/util/runtime/features.go b/pkg/util/runtime/features.go index 473e55a871..fbbe49035c 100644 --- a/pkg/util/runtime/features.go +++ b/pkg/util/runtime/features.go @@ -31,6 +31,10 @@ const ( //////////////// // Beta features + // FeatureGKEAutopilotExtendedDurationPods enables the use of Extended Duration pods + // when Agones is running on Autopilot. Available on 1.28+ only. + FeatureGKEAutopilotExtendedDurationPods = "GKEAutopilotExtendedDurationPods" + // FeatureAutopilotPassthroughPort is a feature flag that enables/disables Passthrough Port Policy. FeatureAutopilotPassthroughPort Feature = "AutopilotPassthroughPort" @@ -44,10 +48,6 @@ const ( //////////////// // Alpha features - // FeatureGKEAutopilotExtendedDurationPods enables the use of Extended Duration pods - // when Agones is running on Autopilot. Available on 1.28+ only. - FeatureGKEAutopilotExtendedDurationPods = "GKEAutopilotExtendedDurationPods" - // FeaturePlayerAllocationFilter is a feature flag that enables the ability for Allocations to filter based on // player capacity. FeaturePlayerAllocationFilter Feature = "PlayerAllocationFilter" @@ -128,18 +128,18 @@ var ( // In each of these, keep the feature sorted by descending maturity then alphabetical featureDefaults = map[Feature]bool{ // Beta features - FeatureAutopilotPassthroughPort: true, - FeatureCountsAndLists: true, - FeatureDisableResyncOnSDKServer: true, + FeatureGKEAutopilotExtendedDurationPods: true, + FeatureAutopilotPassthroughPort: true, + FeatureCountsAndLists: true, + FeatureDisableResyncOnSDKServer: true, // Alpha features - FeatureGKEAutopilotExtendedDurationPods: false, - FeaturePlayerAllocationFilter: false, - FeaturePlayerTracking: false, - FeatureRollingUpdateFix: false, - FeaturePortRanges: false, - FeaturePortPolicyNone: false, - FeatureScheduledAutoscaler: false, + FeaturePlayerAllocationFilter: false, + FeaturePlayerTracking: false, + FeatureRollingUpdateFix: false, + FeaturePortRanges: false, + FeaturePortPolicyNone: false, + FeatureScheduledAutoscaler: false, // Dev features diff --git a/site/content/en/docs/Guides/feature-stages.md b/site/content/en/docs/Guides/feature-stages.md index 7b012a80e9..250e2a9634 100644 --- a/site/content/en/docs/Guides/feature-stages.md +++ b/site/content/en/docs/Guides/feature-stages.md @@ -24,7 +24,7 @@ that can be found in the [Helm configuration]({{< ref "/docs/Installation/Instal The current set of `alpha` and `beta` feature gates: - +{{% feature expiryVersion="1.44.0" %}} | Feature Name | Gate | Default | Stage | Since | |-----------------------------------------------------------------------------------------------------------------------------|------------------------------------|----------|---------|--------| @@ -40,6 +40,25 @@ The current set of `alpha` and `beta` feature gates: | [Scheduled Fleet Autoscaling](https://github.com/googleforgames/agones/issues/3008) | `ScheduledAutoscaler` | Disabled | `Alpha` | 1.43.0 | | Example Gate (not in use) | `Example` | Disabled | None | 0.13.0 | +{{% /feature %}} + +{{% feature publishVersion="1.44.0" %}} + +| Feature Name | Gate | Default | Stage | Since | +|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------|----------|---------|--------| +| [CountsAndLists](https://github.com/googleforgames/agones/issues/2716) | `CountsAndLists` | Enabled | `Beta` | 1.41.0 | +| [DisableResyncOnSDKServer](https://github.com/googleforgames/agones/issues/3377) | `DisableResyncOnSDKServer` | Enabled | `Beta` | 1.40.0 | +| [Support Passthrough on GKE Autopilot](https://github.com/googleforgames/agones/issues/3721) | `AutopilotPassthroughPort` | Enabled | `Beta` | 1.43.0 | +| [Support for Extended Duration Pods on GKE Autopilot (*1.28+ only*)](https://github.com/googleforgames/agones/issues/3386) | `GKEAutopilotExtendedDurationPods` | Enabled | `Beta` | 1.44.0 | +| [GameServer player capacity filtering on GameServerAllocations](https://github.com/googleforgames/agones/issues/1239) | `PlayerAllocationFilter` | Disabled | `Alpha` | 1.14.0 | +| [Player Tracking]({{< ref "/docs/Guides/player-tracking.md" >}}) | `PlayerTracking` | Disabled | `Alpha` | 1.6.0 | +| [Rolling Update Fixes](https://github.com/googleforgames/agones/issues/3688) | `RollingUpdateFix` | Disabled | `Alpha` | 1.41.0 | +| [Multiple dynamic port ranges](https://github.com/googleforgames/agones/issues/1911) | `PortRanges` | Disabled | `Alpha` | 1.41.0 | +| [Port Policy None](https://github.com/googleforgames/agones/issues/3804) | `PortPolicyNone` | Disabled | `Alpha` | 1.41.0 | +| [Scheduled Fleet Autoscaling](https://github.com/googleforgames/agones/issues/3008) | `ScheduledAutoscaler` | Disabled | `Alpha` | 1.43.0 | +| Example Gate (not in use) | `Example` | Disabled | None | 0.13.0 | + +{{% /feature %}} [fleet-updates]: {{% relref "./fleet-updates.md#notifying-gameservers-on-fleet-updatedownscale" %}}