Components
The “Containers Layer” of the Podplane Architecture is designed as a set of “Components”, categorised into:
Core Components required for minimal cluster operation, so you can deploy and schedule Pods.
Addon Components for optional functionality to extend cluster capabilities - things like an ingress controller, CSI drivers, and more.
During cluster creation, users are given three initial state options to choose from:
Recommended - which includes all Core Components + a small selection of commonly used Addon Components such as Traefik ingress controller. The goal is that deployment templates such as “web” do not require any additional Addon Components to be installed.
Minimal - deploys just the Core Components. From there, users can manually install Components using
podplane installas required.None - does not install any Podplane Components, meaning you get a bare Kubernetes cluster and Nodes will be
NotReadyuntil a CNI is installed and they can becomeReadyand able to schedule Pods. For advanced users only.
Components are deployed with an opinionated, tested configuration - not the full surface area of each component’s underlying official Helm chart.
Core Components
corednsfor cluster DNSciliumfor cluster CNIcilium-crdsfor Cilium CNI
fluxcdfor automated Podplane container-layer upgradesfluxcd-crdsfor Flux CD
gateway-api-crdsfor any ingress controller using Gateway API, particularly Traefikplatform-componentsfor Podplane component management. This chart creates the Flux source, platform namespaces, and HelmReleases for enabled components.platform-rbacfor default Podplane platform RBAC and admission policies
Addon Components
Recommended components which can also be installed via podplane install atop the Minimal set:
agent-sandbox: Agent Sandbox controller for isolated, stateful singleton workloads such as AI agent runtimesagent-sandbox-crds
cluster-apifor the Cluster API core controllercluster-api-crds
nstancefor the Nstance Operator (requirescluster-api)nstance-crds
cert-manager: cert-manager and cert-manager-csi-drivercert-manager-crds
platform-certsfor default self-signed and ACME certificate issuers, CA, certificates, etc. (requirescert-manager)trust-manager: trust-manager by the cert-manager projecttrust-manager-crds
platform-trustfor default trust bundles (requirestrust-manager)traefik: Traefik ingress controller
Addon components which can only be installed via podplane install:
secrets-store-csi-driver: Secrets Store CSI Driversecrets-store-csi-driver-crds
snapshot: Snapshot controllersnapshot-crds
- Cloud Provider CSI Drivers:
csi-aws-ebs: AWS EBS CSI Drivers
metrics-server: Kubernetes Metrics Servercluster-autoscaler: Kubernetes Cluster Autoscaler for automatic node scaling via Cluster APInode-problem-detector: Node Problem Detector for surfacing node hardware/kernel/runtime issues
How It Works
Cluster State Initialization
Cluster state is initialised via the Podplane provider for OpenTofu/Terraform.
The provider uses Podplane seed files to create a Netsy bootstrap.netsy snapshot file, then uploads it to provider-specific object storage (S3 for AWS, GCS for Google Cloud). Before uploading, the provider checks that remote state does not already exist and performs a conditional put so it can never overwrite it by mistake. Netsy also has checks to ensure a bootstrap file is never loaded over existing cluster state.
The Recommended and Minimal options each have their own Podplane seed files. The None option skips cluster seeding entirely.
See Seeds for how seed files, the seeds manifest, the seedgen seed generator utility, and the Terraform provider fit together.
The Platform Component
A core component called platform is a Helm chart that holds all Podplane-related configuration - reserved namespaces, components management, default trust bundles (enabled when trust-manager is installed), etc.
It acts as the single control point for all component installations. The platform chart’s values file is the canonical list of enabled components and their configuration. Flux CD watches the platform chart and reconciles HelmRelease resources for each enabled component:
podplane install <component>updates the platform chart values to enable a component; Flux CD then deploys it.podplane uninstall <component>disables a component in the platform chart values; Flux CD removes it.- Core components cannot be uninstalled.
Component Dependencies
Component dependency metadata lives in the platform chart within the cluster itself - not hardcoded in the CLI. The CLI queries the Kubernetes API to read the platform chart’s metadata to determine what’s installed and what dependencies exist.
This means the CLI doesn’t need to bundle or fetch dependency information from the components repo at runtime. The components repo is where charts are authored, but the cluster is the runtime source of truth.
Dependency examples:
- Some addon components depend on other addon components (e.g. snapshot requires snapshot-crds).
- App templates (used by
podplane deploy) also have component dependencies (e.g. thewebtemplate requires traefik).
When running podplane deploy or podplane install, the CLI checks dependencies and prompts the user to install missing ones.
Relationship to Cluster Config
podplane.cluster.jsonc is the user-facing projection of cluster configuration, including configuration values like cluster name/slug, and which components and features are enabled.
Conceptually, the cluster config file syncs its component/feature settings into the platform chart’s values.