Migrate HypervisorController to SSA status updates#337
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
a810960 to
15bbea5
Compare
Replace PatchHypervisorStatusWithRetry with Status().Apply() for the InternalIP scalar and ConditionTypeTerminating condition. Re-fetch the hypervisor after the status apply so the subsequent spec patch sees a fresh resourceVersion. Seed only ConditionTypeTerminating (the sole condition owned by this controller) so SSA does not claim ownership over conditions written by other controllers. WithInternalIP is only called when the node reports a NodeInternalIP. Combined with ForceOwnership, applying an empty string would clobber a previously stored valid IP whenever the node briefly reports no IP (e.g. during kubelet restart or bootstrap). The AgentPodsEvicted=False branch previously returned early with a requeue before running syncLabelsAndAnnotations, so node label changes were not propagated to the Hypervisor while terminating. Move the requeue after the spec patch so labels stay in sync.
181d69b to
7d13627
Compare
15bbea5 to
005a759
Compare
|
Merging this branch will increase overall coverage
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. |
Replace
PatchHypervisorStatusWithRetrywithStatus().Apply()for theInternalIPscalar andConditionTypeTerminatingcondition. Re-fetch the hypervisor after the status apply so the subsequent spec patch sees a fresh resourceVersion.Seed only
ConditionTypeTerminating(the sole condition owned by this controller) so SSA does not claim ownership over conditions written by other controllers.WithInternalIPis only called when the node reports aNodeInternalIP. Combined withForceOwnership, applying an empty string would clobber a previously stored valid IP whenever the node briefly reports no IP (e.g. during kubelet restart or bootstrap).The
AgentPodsEvicted=Falsebranch previously returned early with a requeue before runningsyncLabelsAndAnnotations, so node label changes were not propagated to the Hypervisor while terminating. Move the requeue after the spec patch so labels stay in sync.Depends on #335 (
ssa-conditions-helpers).