Skip to content

Publish the bound NetworkInterface on Instance status - #245

Merged
scotwells merged 1 commit into
mainfrom
feat/instance-network-interface-ref
Aug 21, 2026
Merged

Publish the bound NetworkInterface on Instance status#245
scotwells merged 1 commit into
mainfrom
feat/instance-network-interface-ref

Conversation

@scotwells

@scotwells scotwells commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Adds Instance.status.networkInterfaces[].networkInterfaceRef: the NetworkInterface bound to that entry, in the instance's namespace.

Something configuring the attachment needs the interface the instance ended up with. Without a published reference it has to reconstruct compute's private networkInterfaceClaimName to find the claim first — the Unikraft provider currently carries a verbatim copy of that function, sha256 truncate-and-hash fallback included, in another repo. A private naming convention duplicated across repos breaks silently the day it changes.

The reader is now the VPC controller's Pod admission webhook rather than the infrastructure provider: the webhook resolves a Pod to its Instance, follows this reference to each interface, and injects whatever the delivery mechanism requires. Same reason for the field, one fewer component that has to know how compute names things — and with the provider out of that path entirely, the duplicated function is deleted rather than merely unused.

The change is a passthrough: reconcileNetworkInterfaceStatus already reads the claim to publish addresses and conditions, and the claim already carries status.networkInterfaceRef.

The field reuses NSO's existing LocalNetworkInterfaceRef rather than declaring a compute-local struct, so anything following the chain from Instance to interface handles one shape rather than two.

Not in this change: the capability class that decides how a guest consumes the NIC. That is a product API decision tracked separately.

make lint clean; full unit suite (non-e2e, with envtest) green. docs/api is generated and already drifted on main, so it is left untouched to keep the diff to the change itself.

Related

🤖 Generated with Claude Code

An infrastructure provider needs the interface an instance ended up with.
Without a published reference it has to rebuild compute's private claim
name to find it, which is a copy of an internal convention in another
repo. The claim already carries the reference, so this is a passthrough.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@scotwells
scotwells merged commit 1a0e4d6 into main Aug 21, 2026
12 checks passed
@scotwells
scotwells deleted the feat/instance-network-interface-ref branch August 21, 2026 00:39
scotwells added a commit to datum-cloud/cloud that referenced this pull request Aug 21, 2026
datum-cloud/compute#245 has merged, so networkInterfaceRef is on main and the
branch pin this carried is no longer needed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
scotwells added a commit to datum-cloud/cloud that referenced this pull request Aug 21, 2026
datum-cloud/compute#245 has merged, so networkInterfaceRef is on main and the
branch pin this carried is no longer needed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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