Skip to content

feat(tenant): typed per-tenant ExternalSecrets on the KRO Tenant schema #2521

Description

@devantler

🤖 Generated by the Daily AI Assistant

Part of #1932. Follow-up child from the Tenant-abstraction ADR (docs/tenant-abstraction.md).

Problem

The KRO Tenant RGD emits only the ghcr-auth ExternalSecret. Tenants that need additional secrets (e.g. wedding-app's object-store / db-backup credentials) still hand-write their own ExternalSecret manifests — exactly the boilerplate the abstraction exists to remove.

Proposed direction

Add a typed, optional secrets list to the Tenant schema so a tenant declares the OpenBao/store keys it needs and the RGD renders the corresponding ExternalSecret(s). Preserve the isolation posture verbatim (same store, refresh interval, RBAC). Render-diff vs the current hand-written instances to prove behaviour-preservation.

Rough size

S–M — schema field + RGD template addition + a render-diff parity check against an existing tenant that carries extra secrets.

Acceptance criteria

  • Optional secrets input on the Tenant schema (typed; empty ⇒ only ghcr-auth, unchanged).
  • RGD renders one ExternalSecret per declared entry, matching the current hand-written shape.
  • A tenant migrated to the new field render-diffs clean vs its pre-change manifests.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions