diff --git a/build/Makefile b/build/Makefile index 0269406868..27dc9cc8aa 100644 --- a/build/Makefile +++ b/build/Makefile @@ -64,7 +64,7 @@ KIND_CONTAINER_NAME=$(KIND_PROFILE)-control-plane GS_TEST_IMAGE ?= us-docker.pkg.dev/agones-images/examples/simple-game-server:0.14 # 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&ResetMetricsOnDelete=true&PodHostname=true&SplitControllerAndExtensions=true&CountsAndLists=true&Example=true" +ALPHA_FEATURE_GATES ?= "PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=true&PodHostname=true&SplitControllerAndExtensions=true&CountsAndLists=true&FleetAllocationOverflow=true&Example=true" # Build with Windows support WITH_WINDOWS=1 diff --git a/cloudbuild.yaml b/cloudbuild.yaml index fb98773880..e775e7ddea 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -295,12 +295,12 @@ steps: do if [ $cloudProduct = generic ] then - featureWithGate="CustomFasSyncInterval=false&SafeToEvict=false&SDKGracefulTermination=false&StateAllocationFilter=false&PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=true&PodHostname=true&SplitControllerAndExtensions=true&Example=true" + featureWithGate="CustomFasSyncInterval=false&SafeToEvict=false&SDKGracefulTermination=false&StateAllocationFilter=false&PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=true&PodHostname=true&SplitControllerAndExtensions=true&FleetAllocationOverflow=true&Example=true" featureWithoutGate="" testClusterLocation="us-west1-c" testCluster="e2e-test-cluster" else - featureWithGate="CustomFasSyncInterval=false&SafeToEvict=true&SDKGracefulTermination=false&StateAllocationFilter=false&PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=true&PodHostname=true&SplitControllerAndExtensions=true&Example=true" + featureWithGate="CustomFasSyncInterval=false&SafeToEvict=true&SDKGracefulTermination=false&StateAllocationFilter=false&PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=true&PodHostname=true&SplitControllerAndExtensions=true&FleetAllocationOverflow=true&Example=true" featureWithoutGate="SplitControllerAndExtensions=true" testClusterLocation="us-west1" testCluster="gke-autopilot-e2e-test-cluster-1-24" diff --git a/install/helm/agones/defaultfeaturegates.yaml b/install/helm/agones/defaultfeaturegates.yaml index d9a860efd5..98823e0e40 100644 --- a/install/helm/agones/defaultfeaturegates.yaml +++ b/install/helm/agones/defaultfeaturegates.yaml @@ -25,6 +25,7 @@ PlayerAllocationFilter: false PlayerTracking: false ResetMetricsOnDelete: false PodHostname: false +FleetAllocationOverflow: false SplitControllerAndExtensions: false # Pre-Alpha features diff --git a/pkg/util/runtime/features.go b/pkg/util/runtime/features.go index 4e54f0687c..7a5d09baef 100644 --- a/pkg/util/runtime/features.go +++ b/pkg/util/runtime/features.go @@ -66,6 +66,10 @@ const ( //////////////// // "Pre"-Alpha features + // FeatureFleetAllocateOverflow enables setting labels and/or annotations on Allocated GameServers + // if the desired number of the underlying GameServerSet drops below the number of Allocated GameServers + FeatureFleetAllocateOverflow = "FleetAllocationOverflow" + // FeatureCountsAndLists is a feature flag that enables/disables counts and lists feature // (a generic implenetation of the player tracking feature). FeatureCountsAndLists Feature = "CountsAndLists" @@ -118,7 +122,8 @@ var ( FeatureSplitControllerAndExtensions: false, // Pre-Alpha features - FeatureCountsAndLists: false, + FeatureCountsAndLists: false, + FeatureFleetAllocateOverflow: false, // Example feature FeatureExample: false,