Skip to content


This section describes how to install k0smotron on top of an existing k0s Kubernetes cluster that allows for creation and management of the k0s control plane.


kubectl apply --server-side=true -f

Known limitations#

Areas in which k0smotron is currently limited include:

  • Control plane exposure

    Currently k0smotron only supports ClusterIP, NodePort, and LoadBalancer services, and often it is necessary to further configure created services to ease their interaction with cloud provider implementations.

  • Updates prevalence

    Although k0smotron can easily update the cluster control plane, in standalone mode such updates do not extend to worker nodes.

Hardware requirements#

k0smotron does not require any special hardware for workloads aside from the one required for k0s. For details on k0s hardware requirements for workloads, see k0s documentation.

Software prerequisites#

k0smotron requires the following software to be preinstalled:

  • Kubernetes management cluster. In this documentation set, we use the k0s Kubernetes distribution as a management cluster. For Cluster API integration, you can use a Cluster API cluster.
  • kubectl installed locally.
  • For Cluster API integration:

    • clusterctl installed locally.
    • Configured cloud provider. In this documentation set, we describe configuration examples for the following providers: AWS, Docker, Hetzner Cloud, OpenStack, vSphere. For setup instructions, refer to the official documentation of the selected cloud provider.
  • Optional. CSI provider for persistent storage in managed clusters.
  • Optional. Load balancer provider for ensuring high availability of the control plane.

Full installation#

A full k0smotron installation implies the following components:

  • k0smotron operator
  • Custom Resource Definitions
  • Role-based access control rules
  • Bootstrap provider
  • Infrastructure provider
  • Control plane provider

To install the full version of k0smotron:

kubectl apply --server-side=true -f

Now, you can create your first control planes using k0smotron either as a standalone manager, or as a Cluster API provider. For use case details, see k0smotron usage.

Per-module installation for Cluster API#

k0smotron is compatible with clusterctl and can act as a Cluster API bootstrap, infrastructure, and control plane provider. You can use clusterctl to install each k0smotron Cluster API module separately:

clusterctl init --bootstrap k0sproject-k0smotron \
                --control-plane k0sproject-k0smotron \
                --infrastructure k0sproject-k0smotron

To start using the k0smotron Cluster API, refer to Cluster API.