Repository navigation
Report a Subnet as programmed only when its cells carry the range - #640
Merged
Merged
Conversation
Every subnet in staging has read NotProgrammed since it was created, and datumctl names it as the root cause on every network, while workloads in those networks serve traffic. Ready gated on Programmed, and nothing in the Datum-native path ever wrote Programmed: the replicator mirrors the subnet to the hub with status sync off, and the subnet controller only ever read the condition back. The cells have had the real answer all along. Each cell's data plane builds a VPC for the network's presence in its location, carrying the subnet's range, and the VPC is ready once the fabric identity lands. Programmed now reports that: the cell writes it on its copy against the project's generation, Karmada aggregates the cells' reports onto the hub copy, and the subnet controller derives Programmed and Ready from there. Key changes: - Read the hub copy's aggregated Programmed condition in the subnet controller, accepted only for the current upstream generation, and requeue the project subnet when the hub copy changes - Stamp the upstream generation on the replicated Subnet so a cell can report against the generation the project knows - Treat a subnet with no report yet as Pending rather than NotProgrammed, and say so in the reason catalog without naming cells - Drop the predicate that stopped reconciling a Ready subnet, since a range the cells stop carrying is no longer ready Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
Author
|
Related: cell report datum-cloud/cloud#32, hub aggregation https://github.com/datum-cloud/infra/pull/6988. All three are independently safe to ship; the signal is live once all three are deployed. |
privateip
approved these changes
Oct 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Every subnet in staging has shown
NotProgrammedsince the day it was created, anddatumctl network listnames it as the root cause on every network, while the workloads in those networks are serving traffic. Nothing in the Datum-native networking path ever wrote the Subnet'sProgrammedcondition, soReadycould never turn true. The October 9 UI change papered over the symptom; this closes the gap with a real signal.What changes for a customer
NotProgrammedverdict.NotProgrammed, which today is a silent bug.How
The cell's data plane already builds a VPC per network presence carrying the subnet's range, and marks it ready once the fabric identity lands. That is the signal.
Programmedon its propagated Subnet copy, against the project's generation (datum-cloud/cloud PR, linked below).ProgrammedandReady, and requeues when the hub copy changes. The replicator now stamps the upstream generation on the Subnet copy so step 1 can report against it.Same shape as the TrafficProtectionPolicy
Programmedpath landed last week.Rollout
All three PRs are independently safe. With only this one deployed, subnets read
Pendinginstead ofNotProgrammeduntil the cells and the interpreter ship.Verified
make manifests generateproduces no drift; lint clean.Related: datum-cloud/cloud and datum-cloud/infra PRs (links in first comment).
🤖 Generated with Claude Code