Skip to content

Add vmProviderReady field to NodeInfo proto - #427

Merged
Nicolas Ontiveros (niontive) merged 1 commit into
mainfrom
users/niontive/fix-node-readiness-placement
Apr 15, 2026
Merged

Add vmProviderReady field to NodeInfo proto#427
Nicolas Ontiveros (niontive) merged 1 commit into
mainfrom
users/niontive/fix-node-readiness-placement

Conversation

@niontive

Copy link
Copy Markdown
Contributor

Summary

Add 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 via make generate

Part of

Coordinated fix across 3 repos:

  1. moc (this PR): Proto definition
  2. wssdagent: Expose VM readiness via health endpoint
  3. wssdcloudagent: Check readiness during placement

Bug 5: Node selection ignores VM provider readiness

Comment thread go.mod
@niontive

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

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

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

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