Conversation
Use REBALANCE_MODE alone without mutating records on read. Preserve SEMI_AUTO for missing/invalid modern values and honor explicit NONE. Remove legacy APIs, dual-writing, aliases and topology significance; migrate fixtures and UI metadata and document rollout prerequisites. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
sjainit
requested review from
LZD-PratyushBhatt,
arkmish,
kabragaurav,
laxman-ch,
ngngwr and
thestreak101
as code owners
September 29, 2026 06:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issues
Campaign: https://linkedin.atlassian.net/browse/CICP-51496
Description
Warning
Do not merge or deploy until the downstream migrations are released and legacy-only records, obsolete mode aliases, and legacy mode rules have been audited/migrated. Opening this PR does not satisfy those prerequisites.
Retire the deprecated IdealState mode configuration and make
REBALANCE_MODEthe only supported mode field.IdealStateProperty.IDEAL_STATE_MODE,IdealStateModeProperty, the deprecated getter/setter, legacy normalization/denormalization, and the now-unusedLEGACY_TASK_REBALANCERSconstant.SEMI_AUTOdefault for missing/invalid modern values, as explicitly requested. Respect every valid modern enum value, including explicitNONE.AUTO/AUTO_REBALANCEaliases, are logged and return the caller's existing default.Raw legacy fields are preserved as opaque metadata, not deleted or synchronized. Generic raw-record APIs continue accepting unknown fields. The old admin-webapp constant named
IDEAL_STATE_MODEis retained because its value is the still-supported HTTP argument"mode", not the retired stored configuration key.Merge/release prerequisites:
NONE, invalid modern values, obsolete string aliases, and anyIdealStateRule!filters referring toIDEAL_STATE_MODE; replace fallback-dependent settings with explicit intended modern values.No live configuration edits, cluster operations, or downstream deployments are included.
Tests
Java 11 native Maven validation:
Results on
devbased3638bac5(including #324): 145 core cases and 5 REST cases passed, with zero failures/errors/skips. Both Java 8 and Java 11 class outputs were checked for removal of the old APIs/enum.UI validation with Node 20 and Yarn 1.22:
Results: 4 UI cases passed; type-checking, touched-file formatting/lint and
git diff --checkpassed. The standard ignored sample server config was created withyarn copy:config. Coverage remained enabled; built-in output formats avoid the existing misconfiguredjest-html-reporterscoverage-reporter entry. Dependency manifests and lockfiles are unchanged.These are focused validations, not a full backend/frontend suite or a live migration rehearsal.
Changes that Break Backward Compatibility (Optional)
SEMI_AUTOindependently of legacy metadata.NONEis preserved rather than normalized through legacy/default mode. It does not select an operational rebalancer.AUTO_REBALANCEnow logs an invalid value and takes its existing default rather than selecting FULL_AUTO.idealStateModesummary property/row.Backout must account for newly written modern-only records: reverting binaries alone is insufficient for readers that still require legacy metadata. Coordinate compatible readers and the owning teams' approved snapshot/config restoration procedures. Do not infer legacy values from all modern modes: legacy AUTO is lossy for TASK/USER_DEFINED.
Documentation (Optional)
README compatibility guidance documents defaults, the migration mapping, ignored raw metadata, source/binary breaks, and operational prerequisites. IdealState Javadocs and active examples were updated. Historical versioned website content and generated documentation snapshots were not rewritten.
Commits
The commit references CICP-51496, uses an imperative subject, and includes the Copilot co-author trailer. No unrelated main-checkout changes are included.
Code Quality
The change reuses the existing enum-field reader and modern mode API, narrows parser exception handling, and preserves repository conventions. UI files were formatted with the repository's Prettier and passed ESLint.
🤖 Generated with GitHub Copilot CLI