Skip to content

ADR-0100: A pod mutator learns which app's pod it is shaping - #596

Merged
incognick merged 2 commits into
mainfrom
adr/0100-pod-mutator-app-identity
Aug 20, 2026
Merged

ADR-0100: A pod mutator learns which app's pod it is shaping#596
incognick merged 2 commits into
mainfrom
adr/0100-pod-mutator-app-identity

Conversation

@incognick

Copy link
Copy Markdown
Contributor

ADR-0100 — a pod mutator learns which app's pod it is shaping.

It widens the deploy pod-mutator seam so a per-app policy is expressible, without changing the existing hook's signature.

Lands 🟡 Proposed. It needs a decision, not a merge — the record is the review surface.

Implemented by #595, which is open and waits on this.

The deploy pod-mutator seam from ADR-0061 §1 takes a bare *corev1.PodSpec
and is wired once per process, so an operator can shape every app's pod or
none, and cannot shape one app's differently from another's.

Adds WithAppPodMutator(func(PodIdentity, *corev1.PodSpec)) alongside the
existing hook, over the same stored field. WithPodMutator keeps its exact
signature as a Deprecated: wrapper, so nothing breaks and ADR-0061 §3's
byte-for-byte guarantee is untouched.

PodIdentity carries App, Namespace and the workload role, and is
constrained never to grow a field whose purpose is to be a key into an
embedder's records — a seam that hands over a lookup key takes on the
consumer's storage layout as part of its public API.

WithPlatformPodMutator does not move: ADR-0077 §2 promises it keeps its
signature, and its pods belong to no app.

Lands Proposed.

Signed-off-by: Nicholas Phillips <nsphilli@gmail.com>
Signed-off-by: Nicholas Phillips <nsphilli@gmail.com>
@incognick
incognick merged commit 6be531f into main Aug 20, 2026
5 checks passed
@incognick
incognick deleted the adr/0100-pod-mutator-app-identity branch August 20, 2026 22:52
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