-
Notifications
You must be signed in to change notification settings - Fork 924
Promote RollingUpdateFix Feature Gate from Beta to Stable #4589
Copy link
Copy link
Open
Labels
good first issueThese are great first issues. If you are looking for a place to start, start here!These are great first issues. If you are looking for a place to start, start here!help wantedWe would love help on these issues. Please come help us!We would love help on these issues. Please come help us!kind/cleanupRefactoring code, fixing up documentation, etcRefactoring code, fixing up documentation, etc
Metadata
Metadata
Assignees
Labels
good first issueThese are great first issues. If you are looking for a place to start, start here!These are great first issues. If you are looking for a place to start, start here!help wantedWe would love help on these issues. Please come help us!We would love help on these issues. Please come help us!kind/cleanupRefactoring code, fixing up documentation, etcRefactoring code, fixing up documentation, etc
Type
Fields
Give feedbackNo fields configured for issues without a type.
What does this feature do?
RollingUpdateFixcorrects the fleet controller's rolling update logic. Without it,cleanupUnhealthyReplicasandrollingUpdateRestFixedOnReadycalculate scale-down capacity usingfleet.Spec.Replicasas the baseline, which can prematurely scale down old GameServerSets. With it enabled (the fixed path, implemented inpkg/fleets/controller_rollingupdatefix.go):Status.ReadyReplicasrather thanSpec.ReplicasSpec.Replicas == Status.Replicas)Current state: Beta (enabled by default since 1.50.0)
Acceptance Criteria / Tasks
FeatureRollingUpdateFixandRollingUpdateFixto confirm all usage sites — the list below may not be exhaustivepkg/fleets/controller.go— Remove theFeatureRollingUpdateFixgate at line 598; delete the old (pre-fix) code paths entirely; route unconditionally to the fix implementationspkg/fleets/controller_rollingupdatefix.go— Rename functions (drop theRollingUpdateFixsuffix) and inline/move them intocontroller.go; delete this file once donepkg/fleets/controller_test.go— Delete the tests that validate old (pre-fix) behavior and skip when the feature is enabled (lines ~126, ~205, ~1163). Remove the disabled-feature test case (~line 1721) and de-gate the enabled-feature cases (~lines 1763, 1778, 1793)test/e2e/fleet_test.go— Simplify the conditional assertion (~line 1889) to always expect 2 GameServerSets (the "feature enabled" branch)pkg/util/runtime/features.go— MoveFeatureRollingUpdateFixfrom// Beta featuresto// Stable features(keep infeatureDefaultsastrueso old gate strings still parse)install/helm/agones/defaultfeaturegates.yaml— MoveRollingUpdateFixfrom Beta to Stable sectionbuild/Makefile— RemoveRollingUpdateFixfromBETA_FEATURE_GATEScloudbuild.yaml— RemoveRollingUpdateFix=falsefrom the inverted e2e-runner configsite/content/en/docs/Guides/feature-stages.md— Move row from Beta table to Stable tabletest/upgrade/versionMap.yaml— Add entry showing RollingUpdateFix moves to stable gates in this releaseVerification
make lint test-gopasses; no tests skip onRollingUpdateFixtest/e2e/fleet_test.gorolling-update test no longer has a conditional assertion pathRollingUpdateFix=trueorRollingUpdateFix=falsein the feature gate string must not cause a parse error (covered by keeping the const infeatureDefaults)