Skip to content

fix: propagation for untracked spec fields#2404

Open
rugggger wants to merge 1 commit intographite-base/2404from
03-26-fix_propagation_for_untracked_spec_fields
Open

fix: propagation for untracked spec fields#2404
rugggger wants to merge 1 commit intographite-base/2404from
03-26-fix_propagation_for_untracked_spec_fields

Conversation

@rugggger
Copy link
Contributor

@rugggger rugggger commented Mar 26, 2026

TL;DR

Separated scheduling field propagation from pod rotation by introducing immediate field updates for tolerations, node selectors, and CPU policies.

What changed?

  • Removed scheduling-related fields (Tolerations, NodeSelector, CpuPolicy) from clusterConfigTrackedFields to prevent unnecessary pod rotations
  • Added new propagateSchedulingFields function that immediately updates tolerations, node selectors, CPU policies, core IDs, labels, and annotations on existing containers without requiring pod restarts
  • Integrated the scheduling field propagation as a new step in the post-cluster lifecycle, running before the upgrade handler

How to test?

  1. Deploy a WekaCluster with specific tolerations, node selectors, or CPU policy settings
  2. Modify these scheduling fields in the cluster spec
  3. Verify that containers are updated immediately without pod rotation
  4. Confirm that other configuration changes still trigger proper upgrades with pod rotation

Why make this change?

This optimization reduces unnecessary downtime by avoiding pod rotations when only scheduling-related fields change. Since tolerations, node selectors, and CPU policies can be updated on running containers, there's no need to restart pods for these changes, improving cluster availability and reducing operational overhead.

@rugggger rugggger mentioned this pull request Mar 26, 2026
@github-actions
Copy link

github-actions bot commented Mar 26, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 7fb8bbd.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

Scanned Files

None

Copy link
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more


How to use the Graphite Merge Queue

Add the label main-merge-queue to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@rugggger rugggger marked this pull request as ready for review March 26, 2026 15:35
@rugggger rugggger requested a review from a team as a code owner March 26, 2026 15:35
@graphite-app
Copy link

graphite-app bot commented Mar 26, 2026

Graphite Automations

"Add anton/matt/sergey/kristina as reviwers on operator PRs" took an action on this PR • (03/26/26)

3 reviewers were added to this PR based on Anton Bykov's automation.

@rugggger rugggger force-pushed the 03-24-fix_pods_rotation branch from 14174a7 to e6b40b8 Compare March 26, 2026 15:51
@rugggger rugggger force-pushed the 03-26-fix_propagation_for_untracked_spec_fields branch from d637221 to 1503e82 Compare March 26, 2026 15:52
@rugggger rugggger force-pushed the 03-26-fix_propagation_for_untracked_spec_fields branch from 1503e82 to 7fb8bbd Compare March 26, 2026 16:01
@rugggger rugggger changed the base branch from 03-24-fix_pods_rotation to graphite-base/2404 March 26, 2026 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant