Skip to content

feat: a workload asks for its network where it runs - #231

Merged
scotwells merged 1 commit into
mainfrom
feat/hub-network-binding
Aug 14, 2026
Merged

feat: a workload asks for its network where it runs#231
scotwells merged 1 commit into
mainfrom
feat/hub-network-binding

Conversation

@scotwells

Copy link
Copy Markdown
Contributor

A workload deployed to a location now asks for its network to be there.

Until now nothing did. An instance would come up in a city, ask for an address, and be told the network it named is not available there — with no way for it to become available.

What changes

When a deployment lands somewhere, it says it needs its network at that location. Several deployments wanting the same network in the same place share one presence, and none of them has to know the others exist.

Nothing new to write, and nothing customer-facing changes. This ships behind the networking feature gate, which stays off.

When a network cannot be had there

The deployment says so, in the terms of the actual problem — the location is not available, the network does not exist, the project could not be resolved. An instance stuck behind a network that never arrived is a new way to be stuck, and it should not read as a scheduling failure.

What deliberately does not happen

A network's presence going quiet does not tear anything down. Addresses stay allocated and instances keep running; it only means do not attempt a new attachment. Treating a brief interruption as a teardown signal would turn it into an outage.

Related

A workload that lands in a location needs its network to exist there before
an instance can get an address. Compute now says so: once a cell reports the
location it serves a deployment from, the federator writes a NetworkBinding
next to the hub WorkloadDeployment. NSO folds every binding for the same
network and location into one shared NetworkContext and propagates it to the
cells serving that location, where the interface claim path reads it.

The binding is one per WorkloadDeployment and owned by the hub copy, so the
hub releases it with its owner and nothing in compute counts the other
consumers of a shared presence. Compute stamps only the network and location
labels, via a merge patch computed from the live object, leaving the network
UID NSO records on the binding untouched.

What NSO refuses — an unresolvable project, a missing network, a location the
project cannot use — is reported on the deployment's Available condition and
acted on nowhere else. Instances stay gated on their own interface claims: a
binding waiting on a context must never take a running deployment apart.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@scotwells
scotwells requested review from ecv and privateip August 14, 2026 18:22
@scotwells
scotwells marked this pull request as ready for review August 14, 2026 18:22

@ecv ecv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes good

@scotwells
scotwells merged commit 5213394 into main Aug 14, 2026
10 checks passed
@scotwells
scotwells deleted the feat/hub-network-binding branch August 14, 2026 18:48
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.

2 participants