SUPPORT
FAQs
Need something cleared up? Here are our most frequently asked questions.
What Capsule is
What is Capsule?
What is Capsule?
Capsule is a Kubernetes operator that turns a single cluster into a shared, multi-tenant platform. It implements a multi-tenant, policy-based environment as a micro-services-based ecosystem with a minimalist approach, leveraging only upstream Kubernetes. Its own description is a multi-tenancy and policy-based framework for Kubernetes.
What problem does Capsule solve?
What problem does Capsule solve?
Kubernetes namespaces are flat, with no hierarchy and no native way to share resources between the namespaces belonging to one team. The consequences are that isolation becomes all or nothing, that administrators turn into a bottleneck manually creating every namespace, and that teams end up with a cluster each, which is cluster sprawl. Capsule introduces a grouping abstraction so that self-service can be delegated safely.
What exactly is a Tenant?
What exactly is a Tenant?
A cluster-scoped custom resource that groups one or more namespaces under a shared set of boundaries. Everything defined on the Tenant is inherited automatically by all of its namespaces: role bindings, resource quotas and limits, admission rules such as allowed registries and pull policies, and templated resource distribution. Namespaces carry an owner reference back to the Tenant and a tenant label.
Who created Capsule and who runs it now?
Who created Capsule and who runs it now?
Clastix created Capsule, with the first commit in June 2020, and it was the first multi-tenancy operator of its kind for Kubernetes. It is now hosted in the vendor-neutral projectcapsule GitHub organization with published governance and a maintainer list.
Is Capsule a CNCF project, and at what level?
Is Capsule a CNCF project, and at what level?
Capsule was accepted into the CNCF on 13 December 2022 at Sandbox maturity, and it remains at Sandbox today. Some third-party articles describe it as a CNCF Incubator project; that is incorrect and should not be repeated.
What license is Capsule under?
What license is Capsule under?
Apache 2.0.
Is Capsule production ready?
Is Capsule production ready?
The project describes itself as stable, following the Kubernetes definition of stable, and states that although it is under frequent development it is ready for use in production and is currently used in both public and private deployments.
How is it pronounced?
How is it pronounced?
Exactly like the English word capsule.
Roles and permissions
Who does what?
Who does what?
There are three practical personas. The cluster administrator installs Capsule, creates Tenants, and sets budgets and policies, and is then out of the day-to-day path. The tenant owner creates and manages namespaces within their Tenant and assigns access to team members, without needing any cluster-level permissions. The tenant user deploys workloads inside those namespaces within the owner’s limits.
How are tenant owners declared?
How are tenant owners declared?
Three ways, which can be combined. Inline on the Tenant, naming a user, group, or service account and optionally the cluster roles they receive. Through a dedicated cluster-scoped TenantOwner resource matched to tenants by label selector, which is more loosely coupled and merges with inline owners. Or implicitly, by labeling a TenantOwner with the tenant name.
What permissions does a tenant owner actually get?
What permissions does a tenant owner actually get?
By default, two cluster roles bound per namespace: the Kubernetes built-in admin role, and a Capsule-provided namespace deleter role. Narrower roles can be assigned per owner instead. Owners can create and delete their own namespaces, but they cannot list namespaces, nodes, persistent volumes, or tenants at cluster scope without the proxy.
Can tenant owners manage the Tenant object itself?
Can tenant owners manage the Tenant object itself?
No. Tenant resources remain under cluster administrator control.
How does Capsule recognize users?
How does Capsule recognize users?
By the groups carried on every request, with a configurable default Capsule group. In production this is done with X.509 client certificates or OIDC tokens, and service accounts are matched by their system group or user scope.
Quotas and policy
How does Capsule handle resource quotas?
How does Capsule handle resource quotas?
Capsule can apply a resource quota at tenant scope, aggregating usage across every namespace in the tenant rather than applying a fixed quota per namespace, which is the behavior most platform teams actually want. The current recommended model is ResourcePools, which are cluster-scoped resources defining a pool of resources plus the namespaces permitted to claim from it, with claiming done through a namespaced ResourcePoolClaim. Bound claims stack additional resources on top of the quota provisioned into the claiming namespace, and claim lifecycle is deliberately decoupled from pool lifecycle. Global and custom quota resources are also available in the current release line.
Can you limit how many namespaces a tenant creates?
Can you limit how many namespaces a tenant creates?
Yes, with a namespace quota on the Tenant. Attempts to exceed it are rejected by the admission webhook with a clear message directing the user to the platform team.
How are namespaces assigned to a tenant?
How are namespaces assigned to a tenant?
Either by enforcing a tenant name prefix, which is recommended for production and makes assignment automatic, or by requiring an explicit tenant label on namespace creation. By default namespaces cannot be moved between tenants and are deleted when the Tenant is deleted.
Can you freeze a tenant or namespace?
Can you freeze a tenant or namespace?
Yes. Cordoning a namespace prevents any changes within it, which is useful during change freezes. Cordoning the whole Tenant cordons all of its namespaces, which then cannot be individually uncordoned or deleted.
What can Capsule enforce at tenant level?
What can Capsule enforce at tenant level?
A wide surface, through validating and mutating admission webhooks. For scheduling: limit ranges, allowed priority classes and runtime classes with tenant defaults, node selectors, and device classes for dynamic resource allocation. For connectivity: allowed external IPs, forbidden service labels and annotations, blocked service types, allowed gateway classes and ingress classes with defaults, allowed ingress hostnames with collision scoping and wildcard denial, and network policies. For storage: allowed storage classes with a tenant default, and prevention of cross-tenant persistent volume mounts. For images: allowed container registries and allowed image pull policies. Metadata rules cover required, default, and allowed namespace labels and annotations, quality-of-service class, and scheduler name.
Is the older enforcement model being replaced?
Is the older enforcement model being replaced?
Yes. The current model is Rules, which supports namespace selectors, audiences, and explicit allow or deny actions. The legacy enforcement fields are marked deprecated, and the individual limit range and network policy fields are flagged for future deprecation in favor of replications.
Is Capsule’s network policy isolation escape-proof?
Is Capsule’s network policy isolation escape-proof?
Not by itself, and the documentation says so plainly. Because of the way the NetworkPolicy API works, a user can add a policy that contradicts what the Tenant set, working around the original limitation. The documented mitigations are to give owners a restricted role rather than the full admin role, or to use cluster-level policy resources from Calico or Cilium, which establish packet-filter ordering. Tenant-defined policies cannot be deleted by owners and are recreated by the controller if removed.
Capsule Proxy
What is Capsule Proxy and why is it needed?
What is Capsule Proxy and why is it needed?
Capsule Proxy is an add-on that closes a gap in Kubernetes RBAC. Kubernetes cannot list only the cluster-scoped resources you own, because there is no ACL-filtered API, so granting list on namespaces would expose every namespace in the cluster. Without the proxy, a tenant user running a namespace listing gets a forbidden error. With it, standard commands return only that user’s own resources, including listing pods across all their namespaces and the persistent volumes backing their claims. The design goal is to keep the same user experience across every Kubernetes distribution rather than introducing mirrored custom resources and lock-in.
What else can Capsule Proxy do?
What else can Capsule Proxy do?
Filter other cluster-scoped kinds per owner, including nodes, storage classes, ingress classes, and priority classes, now moving to dedicated proxy settings resources. Reflect role bindings to grant list capabilities to non-owners across namespaces. Integrate with Gangplank for issuing real kubeconfigs. Support forwarded client certificate authentication and trusted source configuration. Expose specific public paths without authentication. It can be deployed as a Deployment or DaemonSet and exposed by NodePort, Ingress, or Route. It can also confine an operator inside a tenant: add the operator’s service account as a tenant owner and point it at the proxy, and it behaves as if it had cluster-admin while remaining fully scoped to that tenant.
Installation and compatibility
What do I need to install Capsule?
What do I need to install Capsule?
Helm 3, since the Helm chart is the only officially supported installation method and handles CRD lifecycle. A Kubernetes cluster with the pod node selector, limit ranger, resource quota, and mutating and validating admission webhook admission controllers enabled. A cluster-admin kubeconfig. cert-manager is required by default, and self-signed cert-manager certificates for the admission webhooks became the default in the current release line.
Which Kubernetes versions are supported?
Which Kubernetes versions are supported?
The project supports the latest minor version of Kubernetes. The installation requirements state a floor of v1.16 for running Capsule at all, but backwards compatibility with older Kubernetes and OpenShift versions is offered by commercial vendors rather than by the project itself. Confirm the specific version in the release notes for the Capsule release you plan to run.
Does Capsule require cluster-admin?
Does Capsule require cluster-admin?
By default yes, because Kubernetes RBAC escalation prevention means a subject creating a role binding must already hold those permissions or hold bind on the cluster role. For production the documentation recommends strict RBAC mode, which replaces the cluster-admin binding with a narrow cluster role plus bind permission on a configurable list of bindable cluster roles and Capsule’s own managed roles.
What should I know about webhook failure modes?
What should I know about webhook failure modes?
Some webhooks cause problems when Capsule is not running, which is especially acute on single-node clusters. The recommendation is to use match conditions on all webhooks to exclude system-critical components and namespaces. The node webhook is disabled by default and, if enabled, should be considered with a permissive failure policy. The namespace webhook is enabled by default and should not be disabled.
What scaling options exist for large clusters?
What scaling options exist for large clusters?
Client connection queries per second and burst, concurrent reconcile workers, cache sync timeout, leader election timing, and built-in API priority and fairness configuration.
Ecosystem and integration
Does Capsule work with GitOps?
Does Capsule work with GitOps?
Yes, and it is a stated design goal: Capsule is completely declarative and GitOps ready, with no special requirements for Argo CD or Flux. With Argo CD, specific sync options are needed on the Capsule configuration resource because Argo validates before the CRDs are installed, and a separate Capsule Argo add-on translates Tenants into Argo AppProjects automatically. With Flux, the documented pattern is a Helm release from the OCI repository with drift detection enabled, and a Capsule Flux add-on lets tenants manage their own resources, including creating namespaces, from their own Git repositories without escaping tenant policy.
Does Capsule run on OpenShift?
Does Capsule run on OpenShift?
Yes, with documented setup. The key steps are removing subjects from the self-provisioners cluster role binding and preventing OpenShift from reverting it, extending the admin role appropriately, and blocking users from mutating OpenShift-managed labels and annotations, since some of those can otherwise allow a security context constraint bypass. Two limitations are documented: a tenant owner cannot create a project through the OpenShift web console and must use the command line, and the login token copied from the console points at the Kubernetes API rather than the proxy, so the server address must be adjusted manually.
What else integrates with Capsule?
What else integrates with Capsule?
Documented integrations include Argo CD, Flux, Kyverno, Velero, the Kubernetes Dashboard, Headlamp, Envoy Gateway, External Secrets Operator, OpenCost, Teleport, OpenShift, and Rancher. Add-ons include Capsule Proxy, the Argo add-on, the Flux add-on, the Rancher add-on, a Cortex proxy that routes metrics to per-tenant Cortex organizations, and a community CoreDNS plugin.
Limits and known issues
What can Capsule not do?
What can Capsule not do?
Several things, stated plainly in its own documentation. Tenant owners cannot create custom resource definitions, because that requires cluster-admin, and this is described as a known limitation of any multi-tenancy model built on a single shared control plane. There is no hierarchy of Tenants, since all Tenants sit at the same level, although multiple Tenants can share an owner. Capsule is not a general-purpose admission policy engine and does not attempt to enforce every possible security standard, which is why Kyverno is a documented companion. All tenants share one API server and one etcd, so custom resource definitions and API extensions are shared and can conflict. Namespaces cannot be moved between tenants by default and are deleted with their Tenant.
When should I use Kamaji instead of Capsule?
When should I use Kamaji instead of Capsule?
When tenants need what a shared control plane cannot give them: full cluster-admin rights, their own custom resource definitions, their own Kubernetes version, or isolation that extends below the API layer. Capsule is the efficient choice when tenants can share a control plane and namespace-level isolation is sufficient, because it maximizes resource utilization and minimizes operational overhead. The two are frequently used together, and kMetal uses both.
Have there been security advisories?
Have there been security advisories?
Yes, two on the current release line. A high-severity advisory covering users being able to create cluster-scoped resources anywhere in the cluster if permitted to create tenant resources, mitigated immediately by using impersonation for tenant resources. A moderate-severity advisory covering namespace hijacking through namespace status privileges where platform administrators had explicitly granted those privileges, fixed by routing status subresource requests through the admission webhook. Both are published on the project’s What’s New page.
What is on the roadmap?
What is on the roadmap?
Porting more properties to the namespace rule model, transformers and health checks for tenant resources, a break-the-glass mechanism for temporary elevation of tenant owner permissions with platform administrator approval, custom Argo CD health checks upstream, and proxy work including restoring RBAC reflection and moving proxy settings to a global resource.
Adoption and support
Who uses Capsule?
Who uses Capsule?
The project’s self-reported adopters page lists Bedag Informatik, Begasoft, the US Department of Defense, Die Mobiliar, Enreach, Fastweb, Klarrio, KubeRocketCI, ODC-Noord, PITS Global Data Recovery Services, Politecnico di Torino, Reevo, University of Torino, Velocity, Wargaming.net, and Zynga.
Is there a public case study?
Is there a public case study?
Yes. TomTom’s engineering team published a detailed account of running Capsule in production for its developer experience platform. They chose Capsule over per-tenant control plane approaches specifically because of synchronization and observability complexity, and because per-tenant control planes would let tenants deploy anything. They highlight a very simple kubeconfig for developers via Capsule Proxy, tenant metadata stamped onto workloads for cost attribution and paging, ingress hostname protection because external DNS is a shared service, and a tiered GitOps repository layout driven by Flux with an Argo AppProject per tenant.
How does Capsule compare with vCluster?
How does Capsule compare with vCluster?
They sit at different points on the isolation spectrum. Capsule uses native Kubernetes primitives, with no custom API server, no virtualization layer, and no syncing complexity, which makes it lightweight and cheap but means custom resource definitions are shared and can conflict. vCluster gives each tenant an isolated API so tenants can install their own CRDs and run their own Kubernetes version. Independent commentary recommends Capsule where tenants can share, a dedicated-control-plane approach where tenants need admin rights, and a hybrid where both apply.
What happened to Hierarchical Namespace Controller?
What happened to Hierarchical Namespace Controller?
HNC was retired. The repository was archived in April 2025 following a SIG Auth decision, due to a lack of maintainers and adopters. Capsule’s model differs in that a Tenant is a collector of namespaces that enforces policy and calculates quota usage across all of them, rather than a hierarchical tree.
Is commercial support available?
Is commercial support available?
Yes, from two vendors listed on the project’s support page: Clastix, the creators of the project, and Peak Scale. Vendors also provide backwards compatibility with older Kubernetes and OpenShift versions that the project itself does not support.
Where is the community?
Where is the community?
The Capsule channel on Kubernetes Slack, the community repository in the projectcapsule organization, and CNCF DevStats for project metrics. Capsule has been featured in CNCF project demos at KubeCon Europe and in CNCF online programs.
Contact
For licensing and pricing, contact sales@clastix.io. For technical support, contact support@clastix.io. For anything else, contact hello@clastix.io or visit clastix.io/support.
Filter Results
- Check the spelling, or try fewer or broader words
- Try a product or component name, such as “Kube-OVN” or “Cluster API”
Not what you are looking for?
Our engineers answer questions the FAQ doesn’t cover.
kMetalWhat kMetal is
What is kMetal?
What is kMetal?
kMetal is a bare metal Kubernetes platform built by Clastix. It unifies bare metal, virtualization, networking, and the operating system under a single cloud-native control plane, and extends Kamaji with a full operational ecosystem for running multi-tenant Kubernetes at scale. It is aimed at enterprises, cloud providers, and AI factories that want a private cloud Kubernetes platform without a separate hypervisor stack underneath it.
kMetalWhat kMetal is
Is kMetal generally available?
Is kMetal generally available?
Yes. kMetal v1.0.0 reached general availability on 31 August 2026, following a beta period. The product documentation and home page carry the v1.0 GA designation.
kMetalWhat kMetal is
Where does the name come from?
Where does the name come from?
The “k” in kMetal stands for Kamaji. Clastix describes it as “Kamaji on Bare Metal”: taking the Kamaji idea, which is that you should not have to manage control planes, all the way down to the metal, where you should not have to manage a hypervisor either.
kMetalWhat kMetal is
Is kMetal open source?
Is kMetal open source?
No. kMetal is a commercial product. Some of the components it is built on are open source, such as Kubernetes, Kamaji, KubeVirt, Kube-OVN, Kairos, Capsule, Cluster API, Flux, and Sveltos, but the integrated platform, its packaging, its lifecycle automation, its self-service multi-tenant network, and its support are commercial. There is no community edition of kMetal itself.
kMetalWhat kMetal is
Who is kMetal for?
Who is kMetal for?
Three audiences are named explicitly. Enterprises building a private cloud on hardware they already own. Cloud providers and managed service providers selling Kubernetes as a service. AI factories running GPU fleets that need tenant-level isolation. Vertical fit is claimed for telecommunications, hosting and MSPs, financial services, GPU and AI operators, and public sector and defense.
kMetalWhat kMetal is
Who is kMetal not for?
Who is kMetal not for?
Clastix is direct about this: kMetal is not for single-cluster or hobbyist deployments. Smaller teams and single-cluster users are better served by open-source Kubernetes tooling, and organizations still sticking to a traditional hypervisor, or evaluating for a small number of clusters, should start with Kamaji, which is free. The value of kMetal is a function of fleet size.
kMetalWhat kMetal is
Does kMetal run general-purpose or legacy VMs?
Does kMetal run general-purpose or legacy VMs?
No, and this is deliberate. The KVM layer in kMetal exists to provide kernel-level isolation for Kubernetes tenant clusters, not to run arbitrary Windows or Linux servers. A general-purpose hypervisor carries different requirements and expecting Virtual Machines to treat as pet, rather than cattle. kMetal is not positioned as a like-for-like VMware replacement for non-Kubernetes workloads.
kMetalArchitecture
How is kMetal structured?
How is kMetal structured?
kMetal has two decoupled layers. The “under cluster” is a Kubernetes cluster running on bare metal that hosts the platform itself: its control plane nodes run every kMetal controller plus all tenant control planes as pods, and its worker nodes supply the CPU, memory, and disk for the virtual machines that act as tenant worker nodes. The tenant layer is where tenant clusters live.
kMetalArchitecture
Which components does kMetal integrate?
Which components does kMetal integrate?
Eight capabilities, each mapped to proven open-source components. Hosted control planes come from Kamaji. Multi-tenancy governance comes from Capsule. Multi-cluster management comes from Cluster API with Kamaji and KubeVirt providers plus a kMetal ClusterClass. Networking comes from Kube-OVN, MetalLB, and kMetal’s own networking layer. Node management comes from KubeVirt on KVM with CDI, Kairos, and the kMetal image builder. Data protection comes from kmetal-backup and the KubeVirt CSI driver operator. Fleet management comes from Sveltos and Flux. Under-cluster node lifecycle comes from the YAKI Operator. Supporting components include cert-manager and an optional web console based on Headlamp with a kMetal plugin.
kMetalArchitecture
Do I need to license a hypervisor?
Do I need to license a hypervisor?
No. Tenant worker nodes run as KubeVirt virtual machines on KVM, the hypervisor built into the Linux kernel, directly on bare metal. There is no nested virtualization and no separate hypervisor product to license.
kMetalArchitecture
What does kMetal deliberately not install?
What does kMetal deliberately not install?
Three things you bring yourself. The primary CNI, because Kube-OVN runs as a secondary CNI and never takes over pod networking, so pod networking must already work before the operator starts. Storage, because kMetal ships no CSI driver, provisioner, StorageClass, or VolumeSnapshotClass. Credentials, because registry credentials and backup destinations are Secrets you create yourself.
kMetalArchitecture
How configurable is kMetal?
How configurable is kMetal?
Deliberately not very. The kMetal spec carries only the values that have no sensible default, such as the overlay interface, provider networks, address pools, and StorageClass names, plus a small number of explicit escape hatches. Component versions, feature gates, and install order are intentionally absent from the API, because a site that changed them would no longer be running a tested release.
kMetalMulti-tenancy and isolation
What does multi-tenancy actually mean in kMetal?
What does multi-tenancy actually mean in kMetal?
Isolation on three axes at the same time. Each tenant gets a Kube-OVN VPC with no route to any other tenant. Tenant worker nodes are separate virtual machines with separate kernels rather than shared kernels. Each tenant gets its own control plane with its own certificates, datastore, and identity.
kMetalMulti-tenancy and isolation
Do tenants get real clusters or virtual clusters?
Do tenants get real clusters or virtual clusters?
Real ones. Each tenant cluster is upstream, CNCF-compliant Kubernetes with a dedicated control plane, a dedicated datastore, a dedicated kernel, a dedicated network domain, and full cluster-admin access for the tenant. Tenants can run different Kubernetes versions, different add-ons, and different policies. This is a different model from namespace-scoped virtual cluster products.
kMetalMulti-tenancy and isolation
Can one tenant own more than one cluster?
Can one tenant own more than one cluster?
Yes. A single tenant can own several clusters, for example development, staging, production, and disaster recovery, under one identity and one network.
kMetalMulti-tenancy and isolation
Is Capsule what provides the isolation?
Is Capsule what provides the isolation?
No, and Clastix is precise about this. Capsule provides governance, not workload isolation. Hard isolation comes from the dedicated infrastructure model: the per-tenant control plane, the KVM kernel boundary, and the OVN routing domain. Capsule groups resources and applies policies and quotas on top of that.
kMetalNetworking
How does tenant networking work?
How does tenant networking work?
Networking is built on Kube-OVN. Each tenant gets a VPC, implemented as an OVN logical router with its own routing table and access control lists and no static path to any other tenant’s VPC, containing one or more subnets. Cross-tenant traffic is dropped by default, and a default routing policy also blocks tenant traffic toward the platform’s own external CIDR so that a tenant cannot pivot into the platform. Tenants can use overlapping CIDR ranges.
kMetalNetworking
How do tenants request networks?
How do tenants request networks?
Through namespaced claims inside their own environment rather than cluster-scoped objects. A VpcClaim requests the VPC, SubnetClaim requests subnets, and EipClaim requests an external address. Claims express intent and the controller writes the isolation-critical routing itself. Claim specifications are immutable, and because claims are countable objects they can be capped by quota.
kMetalNetworking
Is there a VLAN mode?
Is there a VLAN mode?
There is one networking mode. Tenant traffic is always encapsulated in Geneve tunnels between under-cluster nodes, and jumbo frames are expected on the transport interface. Per-tenant separation on the physical wire is available at the egress edge by giving a tenant its own provider network.
kMetalNetworking
Can I have multiple provider networks?
Can I have multiple provider networks?
Yes, kMetal gives the ability to the Platform Administrator to declare multiple provider networks and assign them at the VpcClaim creation: Tenants can decide theirs, or get one assigned by default, and policy enforcement can be configured to prevent the usage of non-entitled networks.
kMetalNetworking
How do tenant workloads get public IP addresses?
How do tenant workloads get public IP addresses?
Through a provider network, typically a dedicated VLAN, that carries egress and hosts external addresses. A distributed gateway runs an external router port on every node, so there is no single egress chokepoint. Tenants claim an address with an EipClaim and annotate a Service. Reserved addresses keep an IP stable across service recreation, and quota enforcement prevents address exhaustion. IPs can be assigned in explicit mode (by annotating the Service) or dynamically (picking from the pool). Claims can be limited on a Tenant Cluster basis.
kMetalStorage and GPUs
Does kMetal include storage?
Does kMetal include storage?
No. kMetal is storage agnostic. It installs no CSI driver, provisioner, StorageClass, or VolumeSnapshotClass, and it manages no storage cluster. You bring your existing storage, whether local disks, SAN, Ceph, or a vendor CSI driver, and name the classes in the kMetal specification. NetApp, Pure Storage, Dell, HPE, and Ceph are named as validated examples.
kMetalStorage and GPUs
What is the one hard storage requirement?
What is the one hard storage requirement?
Volume snapshots. The storage class backing the platform’s own volumes must be served by a driver that ships a VolumeSnapshotClass, because golden operating system images are snapshotted and a fresh root disk is cloned for each machine. This rules out most node-local provisioners. Read-write-many access is also required for the virtual machine workflows if Virtual Machine live migration is required.
kMetalStorage and GPUs
How do tenants get persistent storage, and how is it bounded?
How do tenants get persistent storage, and how is it bounded?
Through the KubeVirt CSI driver, with a controller on the under cluster and a node component inside the tenant cluster. A persistent volume claim created inside a tenant cluster becomes a volume on under-cluster storage that is hot-plugged into that tenant’s worker VM. Backend storage credentials never reach the tenant cluster. Quota is enforced twice: it is held against the tenant on the under cluster, and an admission webhook inside the tenant cluster rejects an over-quota claim at apply time rather than leaving it pending.
kMetalStorage and GPUs
How does kMetal handle GPUs?
How does kMetal handle GPUs?
Tenant worker nodes are KubeVirt virtual machines, so they can be given a real PCI device through passthrough or a mediated device such as a vGPU. Permitted devices are whitelisted in the kMetal resource and threaded through the ClusterClass. Node prerequisites are IOMMU enabled in firmware, the appropriate kernel parameter set, and the device bound to vfio-pci. Consumption is capped per tenant with a resource quota targeting the device resource name. GPUs are pinned per tenant cluster rather than per namespace.
kMetalStorage and GPUs
Does kMetal include AI or machine learning tooling?
Does kMetal include AI or machine learning tooling?
No. kMetal supplies the isolated, GPU-capable cluster and the passthrough plumbing. Framework and training orchestration choices such as Kubeflow, Ray, or similar remain with the tenant.
kMetalOperations
How are tenant clusters created and upgraded?
How are tenant clusters created and upgraded?
As Cluster API Cluster objects against a kMetal ClusterClass. Tenants choose a Kubernetes version and a machine size rather than assembling components, and customization happens through strictly typed ClusterClass variables. Control planes are upgraded blue/green, meaning the new version is stood up alongside the old one and then switched over. Worker nodes run an immutable Kairos-based operating system image that is updated by swapping the image rather than patching in place.
kMetalOperations
How is the under cluster itself installed and upgraded?
How is the under cluster itself installed and upgraded?
It is bootstrapped on bare metal with YAKI, the Clastix bootstrap and upgrade tooling, driven by the YAKI Operator. Node upgrades are expressed as a KubernetesNodeUpgrade resource handled by the YAKI Operator, which upgrades control plane nodes before workers, bounds concurrency, and waits for each node to return Ready at the target version. Terraform and Ansible are not required.
kMetalOperations
How is the platform delivered and upgraded?
How is the platform delivered and upgraded?
The kMetal Operator installes the correct sequence of components. Every component is expressed as a Flux object with versions, feature gates, and ordering pinned per release. Nothing is rolled back automatically on failure: a failed upgrade leaves the previous working version serving traffic.
kMetalOperations
What does backup and restore cover?
What does backup and restore cover?
A ClusterBackup is a namespaced object that sits next to the cluster it protects. The controller enumerates API objects, archives them, encrypts them client-side, and uploads them to S3 or S3-compatible storage. It captures objects rather than raw bytes, so a persistent volume only survives if its reclaim policy is set to Retain; volume snapshots cover the data itself. Restore is not a separate object: you create a new cluster and annotate it with the backup. The restored cluster receives its own certificate authority and identity, so it is a new cluster carrying the previous workloads rather than a resurrection of the old one.
kMetalOperations
Is there a web console?
Is there a web console?
Yes, an optional operator console based on Headlamp with a kMetal plugin. Nothing else in the platform depends on it and it can be left out entirely.
kMetalEcosystem and interoperability
What does kMetal integrate with at the platform level?
What does kMetal integrate with at the platform level?
Cluster API and Terraform for provisioning and infrastructure as code. Flux and Helm for GitOps and packaging. Prometheus for metrics, with Grafana and existing alerting stacks integrated rather than replaced. Kube-OVN for software-defined networking and VPCs, MetalLB for API endpoint addresses, and Konnectivity tunneling for control plane to node communication. Any CSI-compliant storage driver. GPU passthrough via SR-IOV at the hardware level.
kMetalEcosystem and interoperability
Will my existing Kubernetes tooling work on kMetal?
Will my existing Kubernetes tooling work on kMetal?
Yes. Tenant clusters are upstream CNCF-conformant Kubernetes, so your existing ecosystem tooling works unchanged. That includes ingress controllers, cert-manager, external-dns, service meshes such as Istio, Linkerd, or Cilium, container registries such as Harbor, CI/CD runners, backup tooling such as Velero with CSI volume snapshots, and standard operators. Argo CD runs inside tenant clusters in the normal way.
kMetalEcosystem and interoperability
Can kMetal coexist with VMware during a migration?
Can kMetal coexist with VMware during a migration?
Yes. kMetal runs alongside an existing VMware estate during a transition, so workloads can be moved at your own pace. Note that kMetal is positioned as an alternative to platforms such as OpenShift, Rancher, Tanzu, Nutanix, and Mirantis rather than as an integration with them.
kMetalAdoption, commercials, and support
Who is using kMetal?
Who is using kMetal?
Clastix names Dinova and Tinext Cloud as early adopters taking a migration path away from Broadcom-era VMware licensing, citing a consolidation from 150 control plane machines to 3 at Dinova. Clastix is also recorded as an adopter of the Kairos project, where it describes kMetal as a multi-tenant Kubernetes platform designed for bare metal. Note that the larger names frequently associated with Clastix, including NVIDIA, OVHcloud, Rackspace, IONOS, Mistral AI, and Fastweb, are Kamaji or Capsule references rather than kMetal customers.
kMetalAdoption, commercials, and support
How is kMetal licensed?
How is kMetal licensed?
On a subscription basis, licensed by hardware footprint, with an annual commitment and renewal options, and full platform functionality included. Restrictions cover redistribution of platform components, reverse engineering or modification, and use beyond the licensed hardware.
kMetalAdoption, commercials, and support
What does kMetal cost?
What does kMetal cost?
Pricing is not published. It is scoped to your infrastructure and quoted by the Clastix sales team.
kMetalAdoption, commercials, and support
What support is included?
What support is included?
Clastix Care is included with every kMetal deployment. Coverage is 24 hours a day, 7 days a week for critical and major issues, and business hours for minor issues. It includes long-term support releases with security acceptance testing, monthly vulnerability reports in NIST NVD format, proactive CVE resolution with pre-disclosure notification, continuous fixes, per-customer feature prioritization, support for three major releases annually plus unlimited minor releases, a private Slack channel, and monthly office hours with Clastix engineers. Clastix Ready covers optional one-off services such as installation, architecture design, custom datastore work, training, production readiness reviews, and proof-of-concept delivery.
kMetalAdoption, commercials, and support
Can I evaluate kMetal first?
Can I evaluate kMetal first?
Yes, through the Explorer Program. You contact Clastix with your organization details and timeline and receive time-limited credentials for the Clastix OCI registry. The standard evaluation period is two weeks with one possible extension week assessed case by case. Evaluation support is best effort during business hours, evaluation use is for testing only, and production use requires a commercial license.
kMetalAdoption, commercials, and support
Where do I download kMetal?
Where do I download kMetal?
It is not publicly downloadable. Distribution is via Helm charts and container images in a Clastix OCI registry, with access provisioned after evaluation sign-up or license purchase.
kMetalAdoption, commercials, and support
What do I need to try it?
What do I need to try it?
The evaluation walkthrough, which is explicitly not a supported production deployment, calls for at least 4 CPU cores with 8 or more recommended, at least 8 GB of RAM with 16 or more recommended, at least 50 GB of disk with 100 or more recommended, two network interfaces because the second is required for the provider network, Ubuntu 24.04 LTS, and SSH with sudo. Real deployments and full proofs of concept require bare metal infrastructure.
KamajiWhat Kamaji is
What is Kamaji?
What is Kamaji?
Kamaji is an open-source Kubernetes operator that turns any Kubernetes cluster into a management cluster capable of orchestrating many independent tenant clusters. It runs each tenant’s control plane as ordinary pods inside the management cluster rather than on dedicated machines, which is the pattern known as hosted control planes.
KamajiWhat Kamaji is
Is Kamaji a Kubernetes distribution?
Is Kamaji a Kubernetes distribution?
No. Kamaji is an operator that provides managed Kubernetes clusters as a service. It uses unmodified upstream kube-apiserver, kube-scheduler, and kube-controller-manager binaries and relies on kubeadm, so the clusters it produces are conformant upstream Kubernetes.
KamajiWhat Kamaji is
Where does the name come from?
Where does the name come from?
Kamaji is named after Kamaji, the boiler room operator in the Japanese film Spirited Away, who efficiently manages the bathhouse’s water system.
KamajiWhat Kamaji is
What are the main custom resources?
What are the main custom resources?
The TenantControlPlane is a namespaced resource that defines a tenant’s control plane. The DataStore resource defines the persistence backend. When used with Cluster API, the KamajiControlPlane resource represents the control plane in a Cluster API workflow.
KamajiWhat Kamaji is
Who owns the worker nodes?
Who owns the worker nodes?
The tenant does. Tenant worker nodes are real virtual machines or bare metal machines that belong to the tenant, each belonging to exactly one tenant cluster and running only that tenant’s workloads. They can sit on bare metal, private cloud VMs, public cloud instances, edge locations, or a hybrid of these.
KamajiWhat Kamaji is
Can a tenant cluster see or reach the management cluster?
Can a tenant cluster see or reach the management cluster?
No. Kamaji’s design principle is unidirectional management: communication is strictly one-way, and tenant clusters have no access to and no awareness of the management cluster. There is also no communication between different tenant clusters.
KamajiWhat Kamaji is
Can the management cluster be on different infrastructure from the worker nodes?
Can the management cluster be on different infrastructure from the worker nodes?
Yes, and this is an explicit design goal. Kamaji decouples the control plane from the infrastructure, so the management cluster can sit on a different infrastructure or cloud provider from the tenant worker machines as long as network reachability is assured.
KamajiWhat Kamaji is
How is Kamaji different from a hyperscaler managed Kubernetes service?
How is Kamaji different from a hyperscaler managed Kubernetes service?
In EKS, GKE, or AKS the provider owns and operates the control plane as a closed proprietary service, and you manage worker nodes only, with no ability to customize or port the control plane. Kamaji implements the same architectural pattern as open source software you run yourself, which is why it is used as the foundation for independent managed Kubernetes offerings.
KamajiDatastores
Which datastore backends does Kamaji support?
Which datastore backends does Kamaji support?
etcd, which is the default and the most widely used. MySQL and PostgreSQL-compatible databases through the kine integration. NATS, which is explicitly labeled experimental.
KamajiDatastores
Do all tenant clusters share one datastore?
Do all tenant clusters share one datastore?
That is configurable. By default Kamaji can persist all tenant clusters in a single datastore, but you can create pools of datastores and assign clusters based on resource, performance, or policy requirements. Each TenantControlPlane can name a specific datastore, and when none is named the operator default is used. Rackspace, for example, runs one MySQL database per control plane rather than a shared etcd.
KamajiDatastores
What is the caveat with NATS?
What is the caveat with NATS?
NATS support is experimental because it does not support multi-tenancy. A NATS-backed datastore can host exactly one tenant control plane, and a second control plane referencing the same datastore will fail to reconcile.
KamajiDatastores
Can a tenant cluster be migrated between datastores?
Can a tenant cluster be migrated between datastores?
Yes, by patching the datastore reference. During the migration the control plane is placed in read-only mode by an admission webhook and its status moves from Ready to Migrating and back to Ready. The default migration timeout is five minutes and is adjustable by annotation. After migration the kubelet must be restarted on all tenant worker nodes, and data left behind on the source datastore must be removed manually. Live migration is only supported between datastores using the same driver.
KamajiDatastores
Is there a Clastix-maintained etcd?
Is there a Clastix-maintained etcd?
Yes, kamaji-etcd, a Helm chart that deploys a multi-tenant etcd as a three-replica StatefulSet. It is installed by the Kamaji Helm chart as the default datastore.
KamajiScale and performance
How many control planes can one management cluster host?
How many control planes can one management cluster host?
The documentation describes hundreds or thousands of isolated clusters. Rackspace states publicly that a management cluster can host hundreds of control planes, and Clastix has referenced adopter deployments in the range of 500 or more clusters on premises.
KamajiScale and performance
What is the published benchmark?
What is the published benchmark?
The reference benchmark runs 100 tenant control planes against a single shared etcd datastore with AWS EKS as the management cluster. Full reconciliation of all 100 completed in approximately seven and a half minutes with all control planes reaching Ready. Averaged out, that is one control plane reconciled every 4.5 seconds.. Kamaji CPU usage fluctuated during certificate generation peaks and memory peaked around 600 MiB. A larger multi-datastore benchmark is described as future work. Other performance figures that circulate in marketing material are not from this benchmark and should be attributed rather than asserted.
KamajiScale and performance
How does Kamaji scale internally?
How does Kamaji scale internally?
A main manager reconciles administrative resources, and a separate manager is spun up per tenant control plane to run the controllers for that tenant’s addons and kubeadm resources.
KamajiNetworking
How is the tenant API server exposed?
How is the tenant API server exposed?
Through a Kubernetes Service. LoadBalancer is the default, and NodePort and ClusterIP are also supported. The default API port is 6443 and is configurable.
KamajiNetworking
What is Konnectivity and is it enabled by default?
What is Konnectivity and is it enabled by default?
Konnectivity solves control plane to worker node communication where direct connectivity is not possible. A Konnectivity server runs as a sidecar inside each tenant control plane pod, and agents on the worker nodes open outbound connections to it, creating tunnels used for exec, logs, port-forward, metrics, and health collection. It is enabled by default and can be disabled. Because workers dial outbound, this is what allows worker nodes to sit across regions, availability zones, or even different clouds behind firewalls and NAT.
KamajiNetworking
How is the Konnectivity agent deployed?
How is the Konnectivity agent deployed?
Either as a DaemonSet running on every node, or as a Deployment with a configurable replica count for a lower footprint.
KamajiNetworking
How are Konnectivity versions matched to Kubernetes?
How are Konnectivity versions matched to Kubernetes?
Automatically. Recent Konnectivity releases align with the API server version and Kamaji selects the matching one. For very recent Kubernetes releases the corresponding Konnectivity images may not yet be published upstream, in which case an earlier available version can be pinned, since a version skew is permitted.
KamajiUpgrades, certificates, and backup
How do I upgrade a tenant cluster control plane?
How do I upgrade a tenant cluster control plane?
Patch the Kubernetes version field on the TenantControlPlane (or KamajiControlPlane, if running in Cluster API mode) to a value permitted by the Kubernetes version skew policy.
KamajiUpgrades, certificates, and backup
What is the default upgrade behavior?
What is the default upgrade behavior?
Blue/green. All new control plane pods are created at once while the existing pods keep serving until the new ones are ready, which is fast and minimizes downtime. The trade-offs are that it temporarily requires double the control plane pod resources and that starting all new pods simultaneously can put load on the datastore connection.
KamajiUpgrades, certificates, and backup
Is there an alternative upgrade strategy?
Is there an alternative upgrade strategy?
Yes. For resource-constrained environments, or to protect the datastore from load spikes, the deployment strategy can be set to a rolling update with a bounded surge and unavailability.
KamajiUpgrades, certificates, and backup
Does Kamaji upgrade worker nodes?
Does Kamaji upgrade worker nodes?
No. Kamaji does not provide helpers for tenant worker nodes. You upgrade them with kubeadm, or use the Cluster API control plane provider for declarative lifecycle management.
KamajiUpgrades, certificates, and backup
Which certificates does Kamaji manage?
Which certificates does Kamaji manage?
The API server certificate, the API server kubelet client certificate, the datastore certificate, the front proxy client certificate, and the Konnectivity certificate when enabled, plus the client certificates inside the admin, controller-manager, scheduler, and Konnectivity kubeconfigs.
KamajiUpgrades, certificates, and backup
Are certificates rotated automatically?
Are certificates rotated automatically?
Yes. Certificates use kubeadm defaults, so they are valid for one year, and a certificate lifecycle controller inspects them and triggers rotation automatically, by default the day before expiry. The deadline is configurable, for example to rotate a week ahead. Manual rotation is available by annotating the relevant Secrets, individually or in bulk by label selector.
KamajiUpgrades, certificates, and backup
What about the certificate authority?
What about the certificate authority?
The CA uses the kubeadm default validity of ten years and is rotated manually by annotation, at which point the control plane enters a rotating state. It is deliberately manual because a new CA requires restarting all components and all nodes and redistributing the new CA and node certificates.
KamajiUpgrades, certificates, and backup
What about non-etcd datastores?
What about non-etcd datastores?
Kamaji generates the etcd client certificate itself. For MySQL, PostgreSQL, and NATS the PKI is offloaded externally: the controller deletes the referenced Secret to trigger rotation and an external PKI supplies the renewed certificates.
KamajiUpgrades, certificates, and backup
How are backups handled?
How are backups handled?
Because tenant control planes are ordinary pods in the management cluster, standard Kubernetes backup tooling applies. The documented approach uses Velero to back up the tenant’s namespace and restore the TenantControlPlane and its Secrets, after which the control plane cycles through NotReady back to Ready. Velero is used as an infrastructure-agnostic backup strategy, primarily to serve customers without a vendor-backed backup solution.
KamajiUpgrades, certificates, and backup
Does that back up the tenant’s cluster data?
Does that back up the tenant’s cluster data?
No. The documented procedure restores the control plane resource only. If the datastore itself has been lost it must be restored first, using the backup and restore strategy belonging to that datastore technology. Datastore backup is out of scope for Kamaji itself, and in practice the backup design is tailored per environment as part of a services engagement.
KamajiCluster API and the ecosystem
How does Kamaji relate to Cluster API?
How does Kamaji relate to Cluster API?
They complement each other. Kamaji simplifies control plane management while Cluster API handles infrastructure abstraction and lifecycle. Kamaji can be used standalone, with nodes joined by Ansible, Terraform, or kubeadm scripts, or installed as a Cluster API control plane provider.
KamajiCluster API and the ecosystem
Which Cluster API infrastructure providers are supported?
Which Cluster API infrastructure providers are supported?
There are dedicated documentation pages for vSphere, Proxmox VE, and OpenStack, plus a general page for other providers. The control plane provider repository documents integration with AWS, Azure, Equinix, Hetzner, KubeVirt, Metal3, metal-stack, Nutanix, OpenStack, OUTSCALE, Tinkerbell, vSphere, IONOS Cloud, and Proxmox by IONOS Cloud.
KamajiCluster API and the ecosystem
Can existing Kubernetes clusters be migrated to Kamaji?
Can existing Kubernetes clusters be migrated to Kamaji?
Yes, provided they use kubeadm as the bootstrap provider. Migrations are handled as part of a professional services engagement.
KamajiCluster API and the ecosystem
Can control plane to worker traffic cross a Layer 3 boundary or firewall?
Can control plane to worker traffic cross a Layer 3 boundary or firewall?
Yes. Communication runs through a secure gRPC tunnel via Konnectivity, so packet inspection rules need to account for that. OpenStack customers typically use Octavia-powered load balancers, and Clastix has also developed a pure Layer 3 network plugin based on OVS localport that facilitates API server to worker node communication securely.
KamajiCluster API and the ecosystem
Does Kamaji support GitOps?
Does Kamaji support GitOps?
Yes. A separate CRD Helm chart allows custom resource definition lifecycle to be managed independently of the operator chart, which suits Flux and Argo CD workflows. The documented pattern also runs Flux in the management cluster and points it at each tenant’s admin kubeconfig Secret, so addons can be reconciled into tenant clusters centrally without installing Flux in every tenant.
KamajiCluster API and the ecosystem
Is there a user interface?
Is there a user interface?
Yes, the Kamaji Console, a web UI installed by Helm into the management cluster. It lists all tenant control planes with their name, namespace, status, endpoint, version, and datastore. Additional capabilities such as infrastructure driver management, application delivery, centralized authentication, auditing, monitoring, and backup are unlocked through the Clastix enterprise offering.
KamajiObservability and telemetry
What metrics does Kamaji expose?
What metrics does Kamaji expose?
Prometheus-format metrics on the controller manager metrics endpoint, including counts and status for tenant control planes, datastores, and certificates, handler timings, and build information, alongside the usual Go runtime and controller-runtime metrics. A ready-made Grafana dashboard ships in the repository, and tenant control plane component metrics can be scraped from the API server, controller manager, and scheduler ports.
KamajiObservability and telemetry
Is the metrics endpoint secure by default?
Is the metrics endpoint secure by default?
No, and this is documented explicitly. By default the manager and kubeconfig generator metrics endpoints are served in plaintext with no authentication and are reachable by any workload with network access to the pod. Enable secure serving to use HTTPS with bearer token authentication, or restrict access with a NetworkPolicy.
KamajiObservability and telemetry
Does Kamaji send telemetry?
Does Kamaji send telemetry?
Yes, by default. A telemetry component periodically reports the Kamaji version, Kubernetes version, tenant control plane versions, and control plane counts by status, along with a UUID, to a Clastix-managed backend. Clastix states that it does not collect personal information. Telemetry can be disabled through a Helm value or a controller flag.
KamajiLicensing, releases, and support
What license is Kamaji under?
What license is Kamaji under?
Apache 2.0. The same applies to the Cluster API control plane provider and to kamaji-etcd. The code is provided as-is with no warranties.
KamajiLicensing, releases, and support
Are Kamaji clusters CNCF conformant?
Are Kamaji clusters CNCF conformant?
Clastix states that all tenant clusters built with Kamaji are CNCF conformant, on the basis that they use upstream unmodified binaries and kubeadm. The documented way to verify this yourself is to run Sonobuoy in certified conformance mode against a tenant cluster, and Clastix maintains a dedicated conformance repository.
KamajiLicensing, releases, and support
Is Kamaji itself a CNCF project?
Is Kamaji itself a CNCF project?
No. Kamaji is hosted in the Clastix GitHub organization under Apache 2.0. Capsule is the Clastix-created project that sits in the CNCF, at Sandbox maturity. The two claims are frequently conflated: Kamaji produces CNCF-conformant clusters, but Kamaji is not a CNCF-hosted project.
KamajiLicensing, releases, and support
What is the release model?
What is the release model?
There are three artifact types. Latest is built from every commit on the main branch and is not recommended for production because nothing is pinned. Edge is published monthly with a year-month-increment version and is the mainstream open-source channel. Stable semantic-version artifacts have not been published in the open-source project since July 2024; stable container images and Helm charts are available on a subscription basis from Clastix. This is a material consideration for anyone evaluating Kamaji for production on the open-source channel alone.
KamajiLicensing, releases, and support
Which Kubernetes versions are supported?
Which Kubernetes versions are supported?
The published version matrix in the documentation covers recent management and tenant cluster versions, but it trails the release notes, which have announced support for newer Kubernetes minor versions. Confirm the current supported range against the latest release notes or with Clastix before committing to a version.
KamajiLicensing, releases, and support
What are the enterprise addons?
What are the enterprise addons?
Separate closed-source components available only with an active subscription, delivered as images and Helm charts pushed to the customer’s own OCI repository. The one currently documented is the Ingress Addon, which exposes tenant control planes behind an ingress controller rather than consuming one load balancer per cluster, which conserves IPv4 addresses. HAProxy Kubernetes Ingress is the supported controller, and subscribers can request others.
KamajiLicensing, releases, and support
Is commercial support available?
Is commercial support available?
Yes. Clastix offers subscription-based, enterprise-grade support plans for Kamaji, from the people who wrote it.
KamajiAdoption
Who uses Kamaji in production?
Who uses Kamaji in production?
OVHcloud uses it in its Managed Kubernetes Service Standard offering, confirmed in OVHcloud’s own corporate press release and in a CNCF case study, which describes a fully open-source stack including Kamaji, Cluster API, Cilium, and Argo CD. Rackspace runs it inside Rackspace Spot, using Cluster API for lifecycle and one MySQL database per control plane. NVIDIA uses Kamaji in the DOCA Platform Framework to provision control planes for BlueField DPU clusters, documented in NVIDIA’s own product documentation and referenced in a Red Hat Developer article. Cozystack, a CNCF Sandbox project, is built on Kamaji. The project’s adopters file additionally lists Mistral AI, Platform9, Aruba Cloud, Namecheap, Tinext Cloud, UNICC, Sovereign Cloud Stack, Netsons, WOBCOM, and others, with Orange, TIM, and IONOS Cloud recorded under research and development.
KamajiAdoption
What do adopters say?
What do adopters say?
Jeremie Monsinjon, Head of Containers at OVHcloud: “Kamaji works exactly as expected: it’s simple, efficient, scalable, and I especially appreciate how Clastix has always been available for technical discussions and support.” Kevin Carter, Director at Rackspace: “We are running the open-source project Kamaji within our Rackspace Spot platform today, and the results are impressive.”
KamajiAdoption
How does Kamaji compare with vCluster?
How does Kamaji compare with vCluster?
They isolate at different layers. A vCluster runs inside a namespace of a host cluster and has no real worker nodes of its own: a syncer copies pods down to the host cluster, which schedules them on shared host nodes; in recent versions, VCluster mimicked what Kamaji offered, such as the ability to let real worker nodes join the Virtual Cluster Control Plane, but there’s no infrastructure integration via Cluster API. Kamaji provides a real control plane with real, tenant-owned worker nodes, so isolation extends to the infrastructure rather than stopping at the API, and with a open and flexible integration with Cluster API as cluster lifecycle orchestrator. Performance comparisons published by either vendor should be treated as marketing, since no neutral head-to-head benchmark exists.
KamajiAdoption
How does Kamaji compare with k0smotron, HyperShift, or Gardener?
How does Kamaji compare with k0smotron, HyperShift, or Gardener?
All four implement hosted control planes. k0smotron is tied to the k0s distribution and also acts as a bootstrap and infrastructure provider, whereas Kamaji is distribution-neutral upstream Kubernetes and deliberately control-plane-only. Red Hat’s HyperShift, which powers OpenShift hosted control planes, is OpenShift-only on both the management and hosted sides, while Kamaji is vanilla Kubernetes and vendor-neutral on the node side. SAP’s Gardener uses the same pattern, which it calls kubeception, but is a complete end-to-end Kubernetes-as-a-service platform with a much broader scope and a heavier footprint, while Kamaji is a narrower component designed to compose with Cluster API. kcp is sometimes mentioned in the same breath but is a different category: it serves Kubernetes-like APIs with no pods and no worker nodes at all.
KamajiAdoption
How does Kamaji relate to Capsule?
How does Kamaji relate to Capsule?
They solve different multi-tenancy problems and complement each other. Capsule gives multiple tenants isolated namespaces inside a single shared cluster. Kamaji gives each tenant a dedicated control plane, which is what you need when tenants require full cluster-admin permissions or their own Kubernetes version.
CapsuleWhat Capsule is
What is Capsule?
What is Capsule?
Capsule is a Kubernetes operator that turns a single cluster into a shared, multi-tenant platform. It implements a multi-tenant, policy-based environment as a micro-services-based ecosystem with a minimalist approach, leveraging only upstream Kubernetes. Its own description is a multi-tenancy and policy-based framework for Kubernetes.
CapsuleWhat Capsule is
What problem does Capsule solve?
What problem does Capsule solve?
Kubernetes namespaces are flat, with no hierarchy and no native way to share resources between the namespaces belonging to one team. The consequences are that isolation becomes all or nothing, that administrators turn into a bottleneck manually creating every namespace, and that teams end up with a cluster each, which is cluster sprawl. Capsule introduces a grouping abstraction so that self-service can be delegated safely.
CapsuleWhat Capsule is
What exactly is a Tenant?
What exactly is a Tenant?
A cluster-scoped custom resource that groups one or more namespaces under a shared set of boundaries. Everything defined on the Tenant is inherited automatically by all of its namespaces: role bindings, resource quotas and limits, admission rules such as allowed registries and pull policies, and templated resource distribution. Namespaces carry an owner reference back to the Tenant and a tenant label.
CapsuleWhat Capsule is
Who created Capsule and who runs it now?
Who created Capsule and who runs it now?
Clastix created Capsule, with the first commit in June 2020, and it was the first multi-tenancy operator of its kind for Kubernetes. It is now hosted in the vendor-neutral projectcapsule GitHub organization with published governance and a maintainer list.
CapsuleWhat Capsule is
Is Capsule a CNCF project, and at what level?
Is Capsule a CNCF project, and at what level?
Capsule was accepted into the CNCF on 13 December 2022 at Sandbox maturity, and it remains at Sandbox today. Some third-party articles describe it as a CNCF Incubator project; that is incorrect and should not be repeated.
CapsuleWhat Capsule is
What license is Capsule under?
What license is Capsule under?
Apache 2.0.
CapsuleWhat Capsule is
Is Capsule production ready?
Is Capsule production ready?
The project describes itself as stable, following the Kubernetes definition of stable, and states that although it is under frequent development it is ready for use in production and is currently used in both public and private deployments.
CapsuleWhat Capsule is
How is it pronounced?
How is it pronounced?
Exactly like the English word capsule.
CapsuleRoles and permissions
Who does what?
Who does what?
There are three practical personas. The cluster administrator installs Capsule, creates Tenants, and sets budgets and policies, and is then out of the day-to-day path. The tenant owner creates and manages namespaces within their Tenant and assigns access to team members, without needing any cluster-level permissions. The tenant user deploys workloads inside those namespaces within the owner’s limits.
CapsuleRoles and permissions
How are tenant owners declared?
How are tenant owners declared?
Three ways, which can be combined. Inline on the Tenant, naming a user, group, or service account and optionally the cluster roles they receive. Through a dedicated cluster-scoped TenantOwner resource matched to tenants by label selector, which is more loosely coupled and merges with inline owners. Or implicitly, by labeling a TenantOwner with the tenant name.
CapsuleRoles and permissions
What permissions does a tenant owner actually get?
What permissions does a tenant owner actually get?
By default, two cluster roles bound per namespace: the Kubernetes built-in admin role, and a Capsule-provided namespace deleter role. Narrower roles can be assigned per owner instead. Owners can create and delete their own namespaces, but they cannot list namespaces, nodes, persistent volumes, or tenants at cluster scope without the proxy.
CapsuleRoles and permissions
Can tenant owners manage the Tenant object itself?
Can tenant owners manage the Tenant object itself?
No. Tenant resources remain under cluster administrator control.
CapsuleRoles and permissions
How does Capsule recognize users?
How does Capsule recognize users?
By the groups carried on every request, with a configurable default Capsule group. In production this is done with X.509 client certificates or OIDC tokens, and service accounts are matched by their system group or user scope.
CapsuleQuotas and policy
How does Capsule handle resource quotas?
How does Capsule handle resource quotas?
Capsule can apply a resource quota at tenant scope, aggregating usage across every namespace in the tenant rather than applying a fixed quota per namespace, which is the behavior most platform teams actually want. The current recommended model is ResourcePools, which are cluster-scoped resources defining a pool of resources plus the namespaces permitted to claim from it, with claiming done through a namespaced ResourcePoolClaim. Bound claims stack additional resources on top of the quota provisioned into the claiming namespace, and claim lifecycle is deliberately decoupled from pool lifecycle. Global and custom quota resources are also available in the current release line.
CapsuleQuotas and policy
Can you limit how many namespaces a tenant creates?
Can you limit how many namespaces a tenant creates?
Yes, with a namespace quota on the Tenant. Attempts to exceed it are rejected by the admission webhook with a clear message directing the user to the platform team.
CapsuleQuotas and policy
How are namespaces assigned to a tenant?
How are namespaces assigned to a tenant?
Either by enforcing a tenant name prefix, which is recommended for production and makes assignment automatic, or by requiring an explicit tenant label on namespace creation. By default namespaces cannot be moved between tenants and are deleted when the Tenant is deleted.
CapsuleQuotas and policy
Can you freeze a tenant or namespace?
Can you freeze a tenant or namespace?
Yes. Cordoning a namespace prevents any changes within it, which is useful during change freezes. Cordoning the whole Tenant cordons all of its namespaces, which then cannot be individually uncordoned or deleted.
CapsuleQuotas and policy
What can Capsule enforce at tenant level?
What can Capsule enforce at tenant level?
A wide surface, through validating and mutating admission webhooks. For scheduling: limit ranges, allowed priority classes and runtime classes with tenant defaults, node selectors, and device classes for dynamic resource allocation. For connectivity: allowed external IPs, forbidden service labels and annotations, blocked service types, allowed gateway classes and ingress classes with defaults, allowed ingress hostnames with collision scoping and wildcard denial, and network policies. For storage: allowed storage classes with a tenant default, and prevention of cross-tenant persistent volume mounts. For images: allowed container registries and allowed image pull policies. Metadata rules cover required, default, and allowed namespace labels and annotations, quality-of-service class, and scheduler name.
CapsuleQuotas and policy
Is the older enforcement model being replaced?
Is the older enforcement model being replaced?
Yes. The current model is Rules, which supports namespace selectors, audiences, and explicit allow or deny actions. The legacy enforcement fields are marked deprecated, and the individual limit range and network policy fields are flagged for future deprecation in favor of replications.
CapsuleQuotas and policy
Is Capsule’s network policy isolation escape-proof?
Is Capsule’s network policy isolation escape-proof?
Not by itself, and the documentation says so plainly. Because of the way the NetworkPolicy API works, a user can add a policy that contradicts what the Tenant set, working around the original limitation. The documented mitigations are to give owners a restricted role rather than the full admin role, or to use cluster-level policy resources from Calico or Cilium, which establish packet-filter ordering. Tenant-defined policies cannot be deleted by owners and are recreated by the controller if removed.
CapsuleQuotas and policy
How do you push shared resources into every tenant namespace?
How do you push shared resources into every tenant namespace?
Through replications. A TenantResource is created inside a tenant namespace, and a GlobalTenantResource is cluster-scoped with tenant and namespace selectors. Both support resync periods, pruning on delete, raw items, and templating for dynamic values such as the tenant or namespace name. Impersonation is supported and is the recommended hardening. This is the current way to distribute limit ranges, network policies, and selective role bindings.
CapsuleCapsule Proxy
What is Capsule Proxy and why is it needed?
What is Capsule Proxy and why is it needed?
Capsule Proxy is an add-on that closes a gap in Kubernetes RBAC. Kubernetes cannot list only the cluster-scoped resources you own, because there is no ACL-filtered API, so granting list on namespaces would expose every namespace in the cluster. Without the proxy, a tenant user running a namespace listing gets a forbidden error. With it, standard commands return only that user’s own resources, including listing pods across all their namespaces and the persistent volumes backing their claims. The design goal is to keep the same user experience across every Kubernetes distribution rather than introducing mirrored custom resources and lock-in.
CapsuleCapsule Proxy
What else can Capsule Proxy do?
What else can Capsule Proxy do?
Filter other cluster-scoped kinds per owner, including nodes, storage classes, ingress classes, and priority classes, now moving to dedicated proxy settings resources. Reflect role bindings to grant list capabilities to non-owners across namespaces. Integrate with Gangplank for issuing real kubeconfigs. Support forwarded client certificate authentication and trusted source configuration. Expose specific public paths without authentication. It can be deployed as a Deployment or DaemonSet and exposed by NodePort, Ingress, or Route. It can also confine an operator inside a tenant: add the operator’s service account as a tenant owner and point it at the proxy, and it behaves as if it had cluster-admin while remaining fully scoped to that tenant.
CapsuleInstallation and compatibility
What do I need to install Capsule?
What do I need to install Capsule?
Helm 3, since the Helm chart is the only officially supported installation method and handles CRD lifecycle. A Kubernetes cluster with the pod node selector, limit ranger, resource quota, and mutating and validating admission webhook admission controllers enabled. A cluster-admin kubeconfig. cert-manager is required by default, and self-signed cert-manager certificates for the admission webhooks became the default in the current release line.
CapsuleInstallation and compatibility
Which Kubernetes versions are supported?
Which Kubernetes versions are supported?
The project supports the latest minor version of Kubernetes. The installation requirements state a floor of v1.16 for running Capsule at all, but backwards compatibility with older Kubernetes and OpenShift versions is offered by commercial vendors rather than by the project itself. Confirm the specific version in the release notes for the Capsule release you plan to run.
CapsuleInstallation and compatibility
Does Capsule require cluster-admin?
Does Capsule require cluster-admin?
By default yes, because Kubernetes RBAC escalation prevention means a subject creating a role binding must already hold those permissions or hold bind on the cluster role. For production the documentation recommends strict RBAC mode, which replaces the cluster-admin binding with a narrow cluster role plus bind permission on a configurable list of bindable cluster roles and Capsule’s own managed roles.
CapsuleInstallation and compatibility
What should I know about webhook failure modes?
What should I know about webhook failure modes?
Some webhooks cause problems when Capsule is not running, which is especially acute on single-node clusters. The recommendation is to use match conditions on all webhooks to exclude system-critical components and namespaces. The node webhook is disabled by default and, if enabled, should be considered with a permissive failure policy. The namespace webhook is enabled by default and should not be disabled.
CapsuleInstallation and compatibility
What scaling options exist for large clusters?
What scaling options exist for large clusters?
Client connection queries per second and burst, concurrent reconcile workers, cache sync timeout, leader election timing, and built-in API priority and fairness configuration.
CapsuleEcosystem and integration
Does Capsule work with GitOps?
Does Capsule work with GitOps?
Yes, and it is a stated design goal: Capsule is completely declarative and GitOps ready, with no special requirements for Argo CD or Flux. With Argo CD, specific sync options are needed on the Capsule configuration resource because Argo validates before the CRDs are installed, and a separate Capsule Argo add-on translates Tenants into Argo AppProjects automatically. With Flux, the documented pattern is a Helm release from the OCI repository with drift detection enabled, and a Capsule Flux add-on lets tenants manage their own resources, including creating namespaces, from their own Git repositories without escaping tenant policy.
CapsuleEcosystem and integration
Does Capsule run on OpenShift?
Does Capsule run on OpenShift?
Yes, with documented setup. The key steps are removing subjects from the self-provisioners cluster role binding and preventing OpenShift from reverting it, extending the admin role appropriately, and blocking users from mutating OpenShift-managed labels and annotations, since some of those can otherwise allow a security context constraint bypass. Two limitations are documented: a tenant owner cannot create a project through the OpenShift web console and must use the command line, and the login token copied from the console points at the Kubernetes API rather than the proxy, so the server address must be adjusted manually.
CapsuleEcosystem and integration
What else integrates with Capsule?
What else integrates with Capsule?
Documented integrations include Argo CD, Flux, Kyverno, Velero, the Kubernetes Dashboard, Headlamp, Envoy Gateway, External Secrets Operator, OpenCost, Teleport, OpenShift, and Rancher. Add-ons include Capsule Proxy, the Argo add-on, the Flux add-on, the Rancher add-on, a Cortex proxy that routes metrics to per-tenant Cortex organizations, and a community CoreDNS plugin.
CapsuleLimits and known issues
What can Capsule not do?
What can Capsule not do?
Several things, stated plainly in its own documentation. Tenant owners cannot create custom resource definitions, because that requires cluster-admin, and this is described as a known limitation of any multi-tenancy model built on a single shared control plane. There is no hierarchy of Tenants, since all Tenants sit at the same level, although multiple Tenants can share an owner. Capsule is not a general-purpose admission policy engine and does not attempt to enforce every possible security standard, which is why Kyverno is a documented companion. All tenants share one API server and one etcd, so custom resource definitions and API extensions are shared and can conflict. Namespaces cannot be moved between tenants by default and are deleted with their Tenant.
CapsuleLimits and known issues
When should I use Kamaji instead of Capsule?
When should I use Kamaji instead of Capsule?
When tenants need what a shared control plane cannot give them: full cluster-admin rights, their own custom resource definitions, their own Kubernetes version, or isolation that extends below the API layer. Capsule is the efficient choice when tenants can share a control plane and namespace-level isolation is sufficient, because it maximizes resource utilization and minimizes operational overhead. The two are frequently used together, and kMetal uses both.
CapsuleLimits and known issues
Have there been security advisories?
Have there been security advisories?
Yes, two on the current release line. A high-severity advisory covering users being able to create cluster-scoped resources anywhere in the cluster if permitted to create tenant resources, mitigated immediately by using impersonation for tenant resources. A moderate-severity advisory covering namespace hijacking through namespace status privileges where platform administrators had explicitly granted those privileges, fixed by routing status subresource requests through the admission webhook. Both are published on the project’s What’s New page.
CapsuleLimits and known issues
What is on the roadmap?
What is on the roadmap?
Porting more properties to the namespace rule model, transformers and health checks for tenant resources, a break-the-glass mechanism for temporary elevation of tenant owner permissions with platform administrator approval, custom Argo CD health checks upstream, and proxy work including restoring RBAC reflection and moving proxy settings to a global resource.
CapsuleAdoption and support
Who uses Capsule?
Who uses Capsule?
The project’s self-reported adopters page lists Bedag Informatik, Begasoft, the US Department of Defense, Die Mobiliar, Enreach, Fastweb, Klarrio, KubeRocketCI, ODC-Noord, PITS Global Data Recovery Services, Politecnico di Torino, Reevo, University of Torino, Velocity, Wargaming.net, and Zynga.
CapsuleAdoption and support
Is there a public case study?
Is there a public case study?
Yes. TomTom’s engineering team published a detailed account of running Capsule in production for its developer experience platform. They chose Capsule over per-tenant control plane approaches specifically because of synchronization and observability complexity, and because per-tenant control planes would let tenants deploy anything. They highlight a very simple kubeconfig for developers via Capsule Proxy, tenant metadata stamped onto workloads for cost attribution and paging, ingress hostname protection because external DNS is a shared service, and a tiered GitOps repository layout driven by Flux with an Argo AppProject per tenant.
CapsuleAdoption and support
How does Capsule compare with vCluster?
How does Capsule compare with vCluster?
They sit at different points on the isolation spectrum. Capsule uses native Kubernetes primitives, with no custom API server, no virtualization layer, and no syncing complexity, which makes it lightweight and cheap but means custom resource definitions are shared and can conflict. vCluster gives each tenant an isolated API so tenants can install their own CRDs and run their own Kubernetes version. Independent commentary recommends Capsule where tenants can share, a dedicated-control-plane approach where tenants need admin rights, and a hybrid where both apply.
CapsuleAdoption and support
What happened to Hierarchical Namespace Controller?
What happened to Hierarchical Namespace Controller?
HNC was retired. The repository was archived in April 2025 following a SIG Auth decision, due to a lack of maintainers and adopters. Capsule’s model differs in that a Tenant is a collector of namespaces that enforces policy and calculates quota usage across all of them, rather than a hierarchical tree.
CapsuleAdoption and support
Is commercial support available?
Is commercial support available?
Yes, from two vendors listed on the project’s support page: Clastix, the creators of the project, and Peak Scale. Vendors also provide backwards compatibility with older Kubernetes and OpenShift versions that the project itself does not support.
CapsuleAdoption and support
Where is the community?
Where is the community?
The Capsule channel on Kubernetes Slack, the community repository in the projectcapsule organization, and CNCF DevStats for project metrics. Capsule has been featured in CNCF project demos at KubeCon Europe and in CNCF online programs.
Clastix ServicesAbout Clastix and its offering
What is Clastix?
What is Clastix?
Clastix is an enterprise Kubernetes platform company that specializes in hosted control planes and hard multi-tenancy. Rooted in Italian engineering, it helps cloud providers, managed service providers (MSPs) and platform teams run secure, isolated and cost-efficient infrastructure at scale. Customers include NVIDIA and Mistral AI.
Clastix ServicesAbout Clastix and its offering
What products does Clastix offer?
What products does Clastix offer?
Clastix offers three main products: Capsule, Kamaji and kMetal. Together with Clastix Care support and Clastix Ready professional services, they cover everything from open-source adoption to enterprise-grade deployments.
Clastix ServicesAbout Clastix and its offering
What is Capsule?
What is Capsule?
Capsule is an open-source Kubernetes multi-tenancy tool that works at the namespace level inside a single cluster. It groups namespaces into a "Tenant" and enforces automated quotas, Network Policies and RBAC across them. It is a good fit for isolating internal teams where resource efficiency matters most.
Clastix ServicesAbout Clastix and its offering
What is Kamaji?
What is Kamaji?
Kamaji is the Kubernetes hosted control plane from Clastix, available as open-source software. It focuses on the core functionality needed to manage and operate Kubernetes environments efficiently. Production users who need enterprise-grade support can add a dedicated Kamaji support plan.
Clastix ServicesAbout Clastix and its offering
What is kMetal?
What is kMetal?
kMetal is a turnkey, enterprise-grade Kubernetes solution that extends Kamaji and Capsule. It adds features, stability and management capabilities for large-scale production environments. It is proprietary software, so it includes a software license plus a Support and Maintenance service that covers all Kamaji support features and the kMetal-specific capabilities.
Clastix ServicesAbout Clastix and its offering
Which Clastix products are open source?
Which Clastix products are open source?
Capsule and Kamaji are open source and licensed under Apache 2. kMetal is proprietary to Clastix SRL and requires a valid, paid software license.
Clastix ServicesSupport and maintenance (Clastix Care)
What is included in Clastix Care support?
What is included in Clastix Care support?
Clastix Care covers Capsule, Kamaji and kMetal with guaranteed SLAs. Deliverables include:
- Stable releases with Long Term Support (LTS).
- Security acceptance testing of the code before release, using standard industry processes and tooling.
- A monthly vulnerability report, with descriptions compliant with the NIST NVD format.
- Prompt notification before public disclosure of any security concern that may affect the supported software.
- Proactive CVE resolutions, with a strong commitment to fix critical issues before public disclosure whenever possible.
- Continuous delivery of fixes and improvements for stability and reliability in production.
- Feature prioritization, so new features can match your requirements and business goals faster.
- Release upgrade assistance and guidance.
- Access to a private Slack channel for technical questions.
- Monthly Office Hours.
Clastix ServicesSupport and maintenance (Clastix Care)
How many software upgrades does support cover?
How many software upgrades does support cover?
The plan includes 3 major upgrades per year and unlimited minor upgrades, with assistance and guidance to keep each transition smooth.
Clastix ServicesSupport and maintenance (Clastix Care)
What are Monthly Office Hours?
What are Monthly Office Hours?
Monthly Office Hours are a scheduled online meeting every month, lasting 45 minutes. You can use them to discuss questions, updates or progress on the support services and to address specific customer project needs.
Clastix ServicesSupport and maintenance (Clastix Care)
Can I use Capsule and Kamaji without a support contract?
Can I use Capsule and Kamaji without a support contract?
Yes. Both are open source, so you can run them without a paid agreement. Without support, maintenance works as follows:
- Community-driven fixes: the community handles most software issues. Clastix helps when possible, but no SLA guarantees it.
- Prioritized security: security patches go to premium subscribers first. Once the issue is fully addressed, Clastix releases the fix and notification to the wider community.
Clastix ServicesSupport and maintenance (Clastix Care)
Does the no-support option apply to kMetal?
Does the no-support option apply to kMetal?
No. The no-support model applies only to the open-source products, Capsule and Kamaji. kMetal is a proprietary enterprise product available only through a paid software subscription.
Clastix ServicesSupport and maintenance (Clastix Care)
What are the support SLA response times?
What are the support SLA response times?
Clastix commits to the following response times for critical environments:
| Priority | Coverage | Description | Response time |
|---|---|---|---|
| P1 - Critical | 24/7 | Complete service outage, no workaround available | 2 hours |
| P2 - Major | 24/7 | Main functionality impacted, workaround available | 4 hours |
| P3 - Minor | 8/5 | Minor service degradation, low or no business impact | 1 business day |
Clastix ServicesSupport and maintenance (Clastix Care)
How does the support escalation process work?
How does the support escalation process work?
The offering assumes a standard 3-tier escalation process. Layers 1 and 2 sit with the customer, and Layer 3 is handled by Clastix:
| Layer | Contact point | Responsibility |
|---|---|---|
| Layer 1 | Customer Frontline Support Engineer | Receives and logs the incident, performs initial triage and categorization, gives a basic diagnosis and routes to Layer 2. |
| Layer 2 | Customer Support and Operations Engineer | Runs in-depth technical analysis to find the faulty component, designs and implements workarounds, coordinates the escalation and routes to Layer 3. |
| Layer 3 | Clastix Certified Support Engineer | Takes ownership of unresolved issues, leads root cause investigation and workarounds, and provides a permanent solution. |
Clastix ServicesSupport and maintenance (Clastix Care)
Which escalation layers does Clastix support cover?
Which escalation layers does Clastix support cover?
Clastix Enterprise Support covers Layer 3 only. The customer is responsible for implementing and operating the Layer 1 and Layer 2 process, using properly trained datacenter personnel who can identify the source of a problem and pinpoint the affected area of the infrastructure.
Clastix ServicesProfessional services (Clastix Ready)
What are Clastix Ready Professional Services?
What are Clastix Ready Professional Services?
Clastix Ready is a set of Professional Service Packages that help customers adopt and use Clastix technology with confidence. They cover post-sales and delivery across the full implementation lifecycle: design, system integration, setup, training and, optionally, customization.
Clastix ServicesProfessional services (Clastix Ready)
What does the Professional Services breakdown include?
What does the Professional Services breakdown include?
- Design: a High-Level Design (HLD) defines the overall solution architecture, covering dimensioning, deployment, high availability, disaster recovery, backup and external integrations such as storage and load balancing. A Low-Level Design (LLD) is the detailed blueprint for physical implementation, confirming infrastructure readiness and technical prerequisites.
- Implementation: physical installation and deployment of the Clastix solution based on the approved LLD, including configuration, testing and formal delivery.
- System integration: making the deployed solution work smoothly with existing datacenter components such as storage, hypervisors and monitoring.
- Training: training for customer technical staff, tailored in length and depth to their existing skills.
- Customizations (optional): an optional module for unique requirements that standard, out-of-the-box Clastix features do not meet.