Skip to content

epic: Certificate Manager MSP for Platform Mesh 0.3+ #280

@mirzakopic

Description

@mirzakopic

Description

Build a Certificate Manager MSP for Platform Mesh 0.3+ as the canonical reference example for the multi-cluster-runtime + virtual-workspace provider pattern.

The MSP exposes upstream cert-manager.io CRDs (Certificate, Issuer, ClusterIssuer) into consumer workspaces. An external operator using multi-cluster-runtime watches one APIExport virtual-workspace endpoint and reconciles across all bound consumer accounts. No code runs in the provider workspace.

Default issuance uses cert-manager's built-in Issuer types. Securing the PKI with OpenBao is a follow-on (sketched at the bottom for context).

Why

  • Forkable reference for the 0.3+ provider model.
  • Fills the docs gap where certificates are repeatedly cited as the canonical MSP example with no implementation.
  • Tees up the OpenBao-backed follow-on.

Sub-tasks

  • Build the Certificate Manager MSP (operator, APIExport, default Issuer wiring, docs)
  • platform-mesh/backlog-internal#4 — Integrate into Showroom (Platform Mesh 0.3+)
  • platform-mesh/backlog-internal#5 — Back with OpenBao for proper PKI secret storage
  • platform-mesh/backlog-internal#6 — Integration glue between cert-manager MSP and OpenBao MSP

Acceptance criteria

  • Consumer can order Certificate Manager and receive a working ClusterIssuer + Certificate → TLS Secret in their workspace.
  • Runs on PM 0.3+ provider primitives: external MCR operator, no code in provider workspace, virtual-workspace fan-out.
  • task local-setup:example-data brings up the MSP alongside existing examples.
  • Documentation covers all four Diátaxis quadrants.

Out of scope

  • OpenBao integration (tracked under sub-tasks).
  • Public CA integration (ACME/Let's Encrypt).
  • HSM-backed seal, cross-provider trust federation.

Future direction (NOT in scope; sketch for context)

A follow-on swaps the default CA Issuer for OpenBao (already a sibling MSP in the Showroom):

  • CA private keys stay sealed in OpenBao; cert-manager sends only CSRs to pki_int/sign/<role>.
  • Auth: Kubernetes ServiceAccount + TokenReview, sign-only policy per tenant.
  • Topology: shared OpenBao with per-tenant intermediates under pki_int/<tenant>.
  • Per-consumer orchestration (mount, policy, role, ClusterIssuer) lives in the cert-manager MSP operator.

Reference: https://blog.stderr.at/openshift-platform/security/secrets-management/openbao/2026-03-26-openbao-part-9-secrets-engines-pki/

Demo Required

Yes

Demo Steps

  1. task local-setup:example-data brings up the cert-manager MSP.
  2. Order Certificate Manager via the Portal; show the materialised ClusterIssuer.
  3. Create a Certificate; show the resulting TLS Secret.
  4. A second account creates a Certificate in parallel — same operator process reconciles both via the virtual workspace (fan-out demo).

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Epic.

    Projects

    Status

    ForRefinement

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions