SecuritymTLSPKI2026-07-10 · 7 min
Namespace-Scoped Certificate Rotation Without a Cluster-Wide CA
How MeshAtom issues, rotates, and revokes mTLS identities per namespace — no shared cluster CA, no cluster-admin, and no blast radius across teams.
Most service meshes centralize trust in a cluster-wide CA. That simplifies bootstrapping and complicates everything else: rotation requires cluster-admin, a compromised intermediate can impersonate any workload, and upgrades touch every namespace at once. MeshAtom inverts the model — each secured namespace carries its own trust domain.
Trust domain = namespace
- Issuing CA (or intermediate) lives in the MeshAtom agent’s namespace-local secret store — never as a cluster-scoped resource other teams can read
- Workload identities are bound to namespace + ServiceAccount (or pod identity) and verified in eBPF before packets leave the host path
- Cross-namespace traffic is denied by default unless an explicit federated trust pin is configured between two namespaces
Rotation lifecycle
- Bootstrap: On first enable, the agent generates a namespace CA (or accepts a customer-provided intermediate) and stores it in a namespace-scoped Secret owned by the MeshAtom service account.
- Issue: Short-lived leaf certificates are minted for each workload identity and pushed into eBPF maps (SPIFFE-style URIs or MeshAtom identity keys).
- Overlap: Before expiry, the agent issues a successor leaf and installs both old and new verification material in the kernel maps (dual-key window).
- Cutover: New connections prefer the successor; in-flight flows continue on the predecessor until natural close.
- Retire: After the overlap TTL, predecessor keys are removed from eBPF maps and the Secret is updated. No pod restart required for rotation itself.
- CA rollover: Namespace CA rotation follows the same dual-trust window, scoped only to that namespace’s agents and maps.
Dual-key window during leaf rotation
t0 issue leaf-A → install verify(A) in eBPF map
t1 issue leaf-B → install verify(A,B) ← overlap window
t2 workloads present leaf-B on new handshakes
t3 remove verify(A) after overlap TTL
(namespace B's maps are untouched throughout)Configuring rotation policy
Namespace-level PKI annotations
apiVersion: v1
kind: Namespace
metadata:
name: payments
annotations:
meshatom.io/network-mode: "strict-mtls"
# Leaf lifetime and overlap (seconds)
meshatom.io/cert-ttl: "3600"
meshatom.io/cert-overlap: "300"
# Namespace CA rollover cadence (days)
meshatom.io/ca-ttl-days: "30"
# Optional: bring your own intermediate (Secret in this namespace)
meshatom.io/ca-secret: "meshatom-ns-ca"What you deliberately do not get
- No cluster-wide CA Secret readable by every controller
- No requirement for cluster-admin to rotate certificates in one team’s namespace
- No single control-plane outage that freezes identity issuance for the whole cluster
Blast radius for identity matches blast radius for networking: one namespace. That is the point.