From 8f9e203739a0b3530f07ee29a1e85df1cbe516d1 Mon Sep 17 00:00:00 2001 From: Vicente Ferrara Date: Fri, 31 May 2024 21:55:58 +0000 Subject: [PATCH 1/4] promote passthrough on autopilot feature gate to Alpha --- build/Makefile | 2 +- cloudbuild.yaml | 2 +- install/helm/agones/defaultfeaturegates.yaml | 2 +- pkg/util/runtime/features.go | 8 ++++---- site/content/en/docs/Guides/feature-stages.md | 1 + 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/build/Makefile b/build/Makefile index f4b573ca14..cf4c4ff7e2 100644 --- a/build/Makefile +++ b/build/Makefile @@ -70,7 +70,7 @@ GS_TEST_IMAGE ?= us-docker.pkg.dev/agones-images/examples/simple-game-server:0.3 BETA_FEATURE_GATES ?= "CountsAndLists=true&DisableResyncOnSDKServer=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&Example=true" +ALPHA_FEATURE_GATES ?= "PlayerAllocationFilter=true&PlayerTracking=true&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&AutopilotPassthroughPort=true&Example=true" # Build with Windows support WITH_WINDOWS=1 diff --git a/cloudbuild.yaml b/cloudbuild.yaml index c6c29ec766..a845d763af 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -276,7 +276,7 @@ steps: declare -A versionsAndRegions=( [1.27]=us-east1 [1.28]=us-west1 [1.29]=europe-west1 ) # 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&DisableResyncOnSDKServer=false&Example=true" + featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&CountsAndLists=false&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&DisableResyncOnSDKServer=false&AutopilotPassthroughPort=false&Example=true" featureWithoutGate="" # Use this if specific feature gates can only be supported on specific Kubernetes versions. diff --git a/install/helm/agones/defaultfeaturegates.yaml b/install/helm/agones/defaultfeaturegates.yaml index 2bddc958c5..af2e68ad27 100644 --- a/install/helm/agones/defaultfeaturegates.yaml +++ b/install/helm/agones/defaultfeaturegates.yaml @@ -25,9 +25,9 @@ PlayerTracking: false RollingUpdateFix: false PortRanges: false PortPolicyNone: false +FeatureAutopilotPassthroughPort: false # Dev features -FeatureAutopilotPassthroughPort: false # Example feature Example: false diff --git a/pkg/util/runtime/features.go b/pkg/util/runtime/features.go index 40c41468bb..0609b0fe4b 100644 --- a/pkg/util/runtime/features.go +++ b/pkg/util/runtime/features.go @@ -64,12 +64,12 @@ const ( // FeaturePortPolicyNone is a feature flag to allow setting Port Policy to None. FeaturePortPolicyNone Feature = "PortPolicyNone" - //////////////// - // Dev features - // FeatureAutopilotPassthroughPort is a feature flag that enables/disables Passthrough Port Policy. FeatureAutopilotPassthroughPort Feature = "PassthroughPortPolicy" + //////////////// + // Dev features + //////////////// // Example feature @@ -138,9 +138,9 @@ var ( FeatureRollingUpdateFix: false, FeaturePortRanges: false, FeaturePortPolicyNone: false, + FeatureAutopilotPassthroughPort: false, // Dev features - FeatureAutopilotPassthroughPort: false, // Example feature FeatureExample: false, diff --git a/site/content/en/docs/Guides/feature-stages.md b/site/content/en/docs/Guides/feature-stages.md index 947f1979eb..dc4b9ef3a6 100644 --- a/site/content/en/docs/Guides/feature-stages.md +++ b/site/content/en/docs/Guides/feature-stages.md @@ -32,6 +32,7 @@ The current set of `alpha` and `beta` feature gates: | [Support for Extended Duration Pods on GKE Autopilot (*1.28+ only*)](https://github.com/googleforgames/agones/issues/3386) | `GKEAutopilotExtendedDurationPods` | Disabled | `Alpha` | 1.37.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 | +| [Support Passthrough on GKE Autopilot](https://github.com/googleforgames/agones/issues/3721) | `AutopilotPassthroughPort` | Disabled | `Alpha` | 1.40.0 | | Example Gate (not in use) | `Example` | Disabled | None | 0.13.0 | [fleet-updates]: {{% relref "./fleet-updates.md#notifying-gameservers-on-fleet-updatedownscale" %}} From 1d30a505d67627a3da57cb1dab81b4745cf292d4 Mon Sep 17 00:00:00 2001 From: Vicente Ferrara Date: Fri, 31 May 2024 22:20:13 +0000 Subject: [PATCH 2/4] inverted booleans in cloudbuild and makefile --- build/Makefile | 2 +- cloudbuild.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Makefile b/build/Makefile index cf4c4ff7e2..00e381b26d 100644 --- a/build/Makefile +++ b/build/Makefile @@ -70,7 +70,7 @@ GS_TEST_IMAGE ?= us-docker.pkg.dev/agones-images/examples/simple-game-server:0.3 BETA_FEATURE_GATES ?= "CountsAndLists=true&DisableResyncOnSDKServer=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&AutopilotPassthroughPort=true&Example=true" +ALPHA_FEATURE_GATES ?= "PlayerAllocationFilter=true&PlayerTracking=true&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&AutopilotPassthroughPort=false&Example=true" # Build with Windows support WITH_WINDOWS=1 diff --git a/cloudbuild.yaml b/cloudbuild.yaml index a845d763af..6a7fc9e492 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -276,7 +276,7 @@ steps: declare -A versionsAndRegions=( [1.27]=us-east1 [1.28]=us-west1 [1.29]=europe-west1 ) # 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&DisableResyncOnSDKServer=false&AutopilotPassthroughPort=false&Example=true" + featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&CountsAndLists=false&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&DisableResyncOnSDKServer=false&AutopilotPassthroughPort=true&Example=true" featureWithoutGate="" # Use this if specific feature gates can only be supported on specific Kubernetes versions. From edd7793ac9f9d594b30452687f0abb7db342eec0 Mon Sep 17 00:00:00 2001 From: Vicente Ferrara Date: Mon, 3 Jun 2024 04:00:00 +0000 Subject: [PATCH 3/4] changed the feature flag --- install/helm/agones/defaultfeaturegates.yaml | 2 +- pkg/util/runtime/features.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install/helm/agones/defaultfeaturegates.yaml b/install/helm/agones/defaultfeaturegates.yaml index af2e68ad27..9cb620306a 100644 --- a/install/helm/agones/defaultfeaturegates.yaml +++ b/install/helm/agones/defaultfeaturegates.yaml @@ -25,7 +25,7 @@ PlayerTracking: false RollingUpdateFix: false PortRanges: false PortPolicyNone: false -FeatureAutopilotPassthroughPort: false +AutopilotPassthroughPort: false # Dev features diff --git a/pkg/util/runtime/features.go b/pkg/util/runtime/features.go index 0609b0fe4b..b342daa3b7 100644 --- a/pkg/util/runtime/features.go +++ b/pkg/util/runtime/features.go @@ -65,7 +65,7 @@ const ( FeaturePortPolicyNone Feature = "PortPolicyNone" // FeatureAutopilotPassthroughPort is a feature flag that enables/disables Passthrough Port Policy. - FeatureAutopilotPassthroughPort Feature = "PassthroughPortPolicy" + FeatureAutopilotPassthroughPort Feature = "AutopilotPassthroughPort" //////////////// // Dev features From ded8010f52329f851577ecc3d137cbe5a1137e86 Mon Sep 17 00:00:00 2001 From: Vicente Ferrara Date: Mon, 3 Jun 2024 17:04:45 +0000 Subject: [PATCH 4/4] addressed feedback --- build/Makefile | 2 +- install/helm/agones/defaultfeaturegates.yaml | 2 +- pkg/util/runtime/features.go | 8 ++++---- site/content/en/docs/Guides/feature-stages.md | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build/Makefile b/build/Makefile index 00e381b26d..cf4c4ff7e2 100644 --- a/build/Makefile +++ b/build/Makefile @@ -70,7 +70,7 @@ GS_TEST_IMAGE ?= us-docker.pkg.dev/agones-images/examples/simple-game-server:0.3 BETA_FEATURE_GATES ?= "CountsAndLists=true&DisableResyncOnSDKServer=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&AutopilotPassthroughPort=false&Example=true" +ALPHA_FEATURE_GATES ?= "PlayerAllocationFilter=true&PlayerTracking=true&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&AutopilotPassthroughPort=true&Example=true" # Build with Windows support WITH_WINDOWS=1 diff --git a/install/helm/agones/defaultfeaturegates.yaml b/install/helm/agones/defaultfeaturegates.yaml index 9cb620306a..43dede41ba 100644 --- a/install/helm/agones/defaultfeaturegates.yaml +++ b/install/helm/agones/defaultfeaturegates.yaml @@ -19,13 +19,13 @@ CountsAndLists: true DisableResyncOnSDKServer: true # Alpha features +AutopilotPassthroughPort: false GKEAutopilotExtendedDurationPods: false PlayerAllocationFilter: false PlayerTracking: false RollingUpdateFix: false PortRanges: false PortPolicyNone: false -AutopilotPassthroughPort: false # Dev features diff --git a/pkg/util/runtime/features.go b/pkg/util/runtime/features.go index b342daa3b7..02d0467d44 100644 --- a/pkg/util/runtime/features.go +++ b/pkg/util/runtime/features.go @@ -44,6 +44,9 @@ const ( //////////////// // Alpha features + // FeatureAutopilotPassthroughPort is a feature flag that enables/disables Passthrough Port Policy. + FeatureAutopilotPassthroughPort Feature = "AutopilotPassthroughPort" + // FeatureGKEAutopilotExtendedDurationPods enables the use of Extended Duration pods // when Agones is running on Autopilot. Available on 1.28+ only. FeatureGKEAutopilotExtendedDurationPods = "GKEAutopilotExtendedDurationPods" @@ -64,9 +67,6 @@ const ( // FeaturePortPolicyNone is a feature flag to allow setting Port Policy to None. FeaturePortPolicyNone Feature = "PortPolicyNone" - // FeatureAutopilotPassthroughPort is a feature flag that enables/disables Passthrough Port Policy. - FeatureAutopilotPassthroughPort Feature = "AutopilotPassthroughPort" - //////////////// // Dev features @@ -132,13 +132,13 @@ var ( FeatureDisableResyncOnSDKServer: true, // Alpha features + FeatureAutopilotPassthroughPort: false, FeatureGKEAutopilotExtendedDurationPods: false, FeaturePlayerAllocationFilter: false, FeaturePlayerTracking: false, FeatureRollingUpdateFix: false, FeaturePortRanges: false, FeaturePortPolicyNone: false, - FeatureAutopilotPassthroughPort: false, // Dev features diff --git a/site/content/en/docs/Guides/feature-stages.md b/site/content/en/docs/Guides/feature-stages.md index dc4b9ef3a6..fe3139be2c 100644 --- a/site/content/en/docs/Guides/feature-stages.md +++ b/site/content/en/docs/Guides/feature-stages.md @@ -28,11 +28,11 @@ The current set of `alpha` and `beta` feature gates: | Feature Name | Gate | Default | Stage | Since | |-----------------------------------------------------------------------------------------------------------------------------|------------------------------------|----------|---------|--------| | [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` | Disabled | `Alpha` | 1.40.0 | | [CountsAndLists](https://github.com/googleforgames/agones/issues/2716) | `CountsAndLists` | Disabled | `Alpha` | 1.37.0 | | [Support for Extended Duration Pods on GKE Autopilot (*1.28+ only*)](https://github.com/googleforgames/agones/issues/3386) | `GKEAutopilotExtendedDurationPods` | Disabled | `Alpha` | 1.37.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 | -| [Support Passthrough on GKE Autopilot](https://github.com/googleforgames/agones/issues/3721) | `AutopilotPassthroughPort` | Disabled | `Alpha` | 1.40.0 | | Example Gate (not in use) | `Example` | Disabled | None | 0.13.0 | [fleet-updates]: {{% relref "./fleet-updates.md#notifying-gameservers-on-fleet-updatedownscale" %}}