Skip to content

docs: move referenced-data delivery to Karmada native dependency propagation#156

Open
scotwells wants to merge 1 commit into
mainfrom
docs/refdata-native-dependency-propagation
Open

docs: move referenced-data delivery to Karmada native dependency propagation#156
scotwells wants to merge 1 commit into
mainfrom
docs/refdata-native-dependency-propagation

Conversation

@scotwells

Copy link
Copy Markdown
Contributor

What this changes for users

Shared configuration can follow workloads to every location that needs it. Today, a ConfigMap/Secret referenced by workloads in two or more cities is delivered to exactly one — instances elsewhere wait on data that never arrives, with no error raised (#155). This design revision removes that single-location limitation structurally instead of patching it.

What this PR is

A revision of the referenced ConfigMap/Secret delivery design doc (configmap-secret-mounts.md) — no implementation. Implementation is tracked in #155; the current per-city delivery path (#129) stays behind a single-city validation guard until this lands.

The hub-to-cell mechanism moves from per-city routing-policy selectors to Karmada's native dependency propagation: propagateDeps on the deployment's placement policy plus a declarative dependency-interpretation hook that reads the resolver's expected companion set. Each companion's destinations become the union of every referencing deployment's placements — and delivery stays scoped to cells that actually run a referencing workload. The resolver, companion objects, scheduling gate, and rotation are unchanged.

Key prerequisites (recorded as design requirements)

🤖 Generated with Claude Code

…agation

Shared ConfigMaps/Secrets should follow a workload to every location it
runs. The original hub-to-cell design — companion selectors on each
city's routing policy — cannot do that: Karmada policy claiming is
exclusive, so a companion shared across cities is delivered to exactly
one of them and instances elsewhere wait forever (#155).

This revision moves delivery to Karmada's native dependency propagation:
propagateDeps on the deployment's placement policy plus a declarative
dependency-interpretation hook that reads the resolver's expected
companion set. Each companion's attached binding inherits the union of
every referencing deployment's destinations, so the single-claimant
failure dimension is removed rather than patched.

Unchanged: the management-plane resolver, the companion objects and
annotation contract, the cell-side scheduling gate, and rotation. New
design requirements recorded: hub Karmada >= v1.15.3
(karmada-io/karmada#6931), the PropagateDeps feature gate, webhook
protection for the now propagation-authorizing annotation, and
downstream annotation mirroring on removal.

Co-Authored-By: Claude Fable 5 <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.

1 participant