Skip to main content

Platform

The platform layer is the set of in-cluster controllers that sit between bare Kubernetes and the apps. Everything an application can rely on without packaging itself — networking, ingress, certificates, storage, secrets, policy enforcement, backups, observability.

Each page documents the role of one controller, why it was chosen over alternatives, and per-cluster deployment notes generated from the matching k8s/infrastructure/<cluster>/controllers/ tree.

Networking

ControllerRole
CiliumeBPF CNI + kube-proxy replacement + WireGuard + Hubble + L2 LB
Envoy GatewayGateway-API ingress; PPv2 anchor for the edge → production chain
NetBird OperatorBrings overlay-mesh ACL primitives into the cluster as CRDs

Certificates & TLS

ControllerRole
cert-managerCertificate / Issuer reconciler; ACME + private CAs
cert-manager-webhook-all-inklDNS-01 webhook for the All-Inkl provider

Storage

ControllerRole
LonghornDistributed block storage with snapshots, replication, encryption

Database

ControllerRole
CloudNative-PGPostgreSQL operator — every app that needs Postgres uses this

Secrets

ControllerRole
External SecretsMaterializes secrets from external providers as in-cluster Secrets

Policy & security

ControllerRole
KyvernoPolicy-as-code engine — validates, mutates, generates resources
TetragoneBPF-based runtime security observability

Backups

ControllerRole
k8upSchedule / Backup CRDs that drive Restic against Hetzner S3

Observability

ControllerRole
metrics-serverkubectl top / HPA source of resource metrics
otel-operatorOpenTelemetry collector lifecycle + Instrumentation CRDs

Hardware & runtime

ControllerRole
intel-gpu-pluginSurfaces Intel iGPUs to the scheduler for transcode workloads
SpegelIn-cluster OCI mirror — image pulls don't leave the cluster
kubelet-serving-cert-approverAuto-approves the kubelet's serving CSRs

App composition

ControllerRole
CrossplaneExternal-resource provisioning from Kubernetes manifests
Crossplane ExtrasProvider configurations + cluster-side bits Crossplane needs
KubeVelaOAM-flavored application composition layer

How a platform page is structured

Same two-layer pattern as apps:

  • Hand-written prose at the top — what the controller is, why it was chosen, alternatives that were on the table, opinionated operational notes.
  • ## Cluster Deployment at the bottom — auto-generated from the cluster-specific README.md next to the manifests (k8s/infrastructure/<cluster>/controllers/<name>/README.md). Includes the HelmRelease + chart version, container images, and any detected dependencies.

If you're trying to figure out what builds on top of these, see Components for the per-app reusable patches, and Apps for the workloads themselves.