Skip to content

feat: ship Plinth substrate Helm chart v0.1.0 (walking skeleton)#1

Merged
hushamsaeed merged 2 commits into
mainfrom
platform-initial
May 1, 2026
Merged

feat: ship Plinth substrate Helm chart v0.1.0 (walking skeleton)#1
hushamsaeed merged 2 commits into
mainfrom
platform-initial

Conversation

@hushamsaeed
Copy link
Copy Markdown
Contributor

Summary

Walking-skeleton umbrella chart that bootstraps a minimal Plinth substrate on Kubernetes. Composes three upstream sub-charts at pinned minor versions:

  • cnpg/cloudnative-pg@0.28.0 — Postgres operator
  • cerbos/cerbos@0.52.1 — authorisation PDP
  • open-telemetry/opentelemetry-collector@0.153.0 — traces/metrics/logs

Plinth-specific glue (umbrella templates):

  • A CloudNativePG `Cluster` CR with bootstrapped database `plinth` + owner role.
  • A `plinth-cerbos-policies` ConfigMap mounted into the Cerbos pod at `/policies` with a default `items` resource policy that authorises read/list/create/update/delete based on viewer/editor/admin roles.

Profiles

Profile Status
dev ✅ shipped — `helm install plinth . -f values/dev.values.yaml` brings up a working substrate on kind/minikube
staging stub — `values/staging.values.yaml` describes the intended 3-node, no-DR shape
prod stub — `values/prod.values.yaml` describes the intended HA + DR + hardened shape

Verified locally

  • `helm dependency build .` resolves all three sub-charts.
  • `helm lint .` clean (with the well-known false-positive WARNING about `.tgz` deps).
  • `helm template plinth . -f values/dev.values.yaml` renders 20,906 lines: 10 CRDs, 5 ConfigMaps, 4 ClusterRoles, 3 Deployments, 3 Services, 3 ServiceAccounts, 2 ClusterRoleBindings, 1 ValidatingWebhookConfiguration, 1 MutatingWebhookConfiguration, 1 `Cluster` CR.

CI

  • helm setup + repo add + dependency build + lint + template (defaults + dev profile) + smoke check that asserts the rendered output contains `kind: Cluster`, the `plinth-cerbos-policies` ConfigMap, at least one Deployment, and the cnpg CRDs.

Roadmap (deferred, called out in README)

Vault HA, Authentik, MinIO, NATS, Redis Sentinel, OpenSearch, SigNoz, Wazuh, Falco, Trivy Operator, Kyverno, Argo CD, Argo Rollouts, Backstage, kube-prometheus-stack. Plus Talos cluster bootstrap and OCI publish to `oci://ghcr.io/plinth-dev/platform`.

Test plan

  • CI green on this branch.
  • Optional manual test: `helm install plinth-test . -n plinth-test --create-namespace -f values/dev.values.yaml` against a kind cluster.

🤖 Generated with Claude Code

hushamsaeed and others added 2 commits May 1, 2026 19:48
Umbrella chart that bootstraps a minimal Plinth substrate on Kubernetes.
Composes three upstream sub-charts at pinned minor versions:

  - cnpg/cloudnative-pg @ 0.28.0    (Postgres operator + Cluster CR)
  - cerbos/cerbos @ 0.52.1          (authorisation PDP)
  - open-telemetry/opentelemetry-collector @ 0.153.0 (traces/metrics/logs)

The umbrella adds two Plinth-specific templates: a CloudNativePG Cluster
CR (bootstrapped database + owner role) and a `plinth-cerbos-policies`
ConfigMap with a default "items" resource policy mounted into the
Cerbos pod.

Profiles:
  - dev (shipped): single node, no HA, low resource floors for
    kind/minikube. helm install plinth . -f values/dev.values.yaml
    brings up a working substrate.
  - staging / prod: stub values files with comments describing the
    intended shape; actual values land in subsequent chart versions.

CI: helm dependency build + helm lint + helm template (defaults +
dev profile) + smoke checks asserting the expected kinds (Cluster,
ConfigMap plinth-cerbos-policies, Deployment, CRDs) are rendered.

Roadmap (deferred, called out in README): Vault, Authentik, MinIO,
NATS, Redis, OpenSearch, SigNoz, Wazuh, Falco, Trivy, Kyverno,
Argo CD, Argo Rollouts, Backstage, kube-prometheus-stack. Plus
Talos cluster bootstrap and OCI publish to ghcr.io/plinth-dev/platform.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hushamsaeed hushamsaeed merged commit e5ee730 into main May 1, 2026
1 check passed
@hushamsaeed hushamsaeed deleted the platform-initial branch May 1, 2026 14:50
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