Skip to content

[v0.39.0] Add vmProviderReady field to NodeInfo proto#428

Merged
niontive merged 1 commit into
releases/v0.39.0from
users/niontive/cherry-pick-427-to-v0.39.0
Apr 21, 2026
Merged

[v0.39.0] Add vmProviderReady field to NodeInfo proto#428
niontive merged 1 commit into
releases/v0.39.0from
users/niontive/cherry-pick-427-to-v0.39.0

Conversation

@niontive
Copy link
Copy Markdown
Contributor

Summary

Cherry-pick of #427 to the releases/v0.39.0 branch.

Adds google.protobuf.BoolValue vmProviderReady = 10 to the NodeInfo message in moc_common_nodeinfo.proto.

Problem

When wssdagent restarts, its VM provider runs a sequential bootstrap (~4.5 hours for ~800 VMs). During this window, the health endpoint reports the node as healthy because it has no readiness awareness. wssdcloudagent's SelectAnyNode() routes new VMs to the bootstrapping node, which rejects them with ProviderNotReady.

Change

  • Add google.protobuf.BoolValue vmProviderReady = 10 to NodeInfo (field 10)
  • Uses BoolValue (not bare bool) for backward compatibility:
    • nil = old agent (field not set) → treat as ready
    • BoolValue{false} = new agent, still bootstrapping → skip node
    • BoolValue{true} = new agent, ready → allow placement
  • Regenerated .pb.go bindings

Original PR

#427

Add google.protobuf.BoolValue vmProviderReady = 10 to the NodeInfo message
in moc_common_nodeinfo.proto. This allows wssdagent to report whether its
VM provider has completed bootstrap, so wssdcloudagent can skip nodes that
are not yet ready for VM placement.

Uses BoolValue (not bare bool) so that old agents that don't set the field
return nil, which is distinguishable from an explicit false (not ready).

Bug 5: Node selection ignores readiness

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@niontive niontive merged commit 19f1744 into releases/v0.39.0 Apr 21, 2026
1 check passed
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.

3 participants