Skip to content

Migrate HypervisorController to SSA status updates#337

Open
fwiesel wants to merge 1 commit into
ssa-conditions-helpersfrom
ssa-hypervisor-controller
Open

Migrate HypervisorController to SSA status updates#337
fwiesel wants to merge 1 commit into
ssa-conditions-helpersfrom
ssa-hypervisor-controller

Conversation

@fwiesel

@fwiesel fwiesel commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

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.

Depends on #335 (ssa-conditions-helpers).

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f77f9800-8319-4182-85ef-8aea48c0f28e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ssa-hypervisor-controller

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@fwiesel

fwiesel commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@fwiesel fwiesel force-pushed the ssa-hypervisor-controller branch from a810960 to 15bbea5 Compare July 13, 2026 14:52
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.
@fwiesel fwiesel force-pushed the ssa-conditions-helpers branch from 181d69b to 7d13627 Compare July 13, 2026 19:59
@fwiesel fwiesel force-pushed the ssa-hypervisor-controller branch from 15bbea5 to 005a759 Compare July 13, 2026 19:59
@github-actions

Copy link
Copy Markdown

⚠️ Note: Baseline coverage from ssa-conditions-helpers branch is not available (artifact may be expired). Showing current coverage for changed files only.

Merging this branch will increase overall coverage

Impacted Packages Coverage Δ 🤖
github.com/cobaltcore-dev/openstack-hypervisor-operator/internal/controller 68.78% (+68.78%) 🌟

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/cobaltcore-dev/openstack-hypervisor-operator/internal/controller/hypervisor_controller.go 78.99% (+78.99%) 119 (+119) 94 (+94) 25 (+25) 🌟

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.

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