Installation#
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.
TL;DR
kubectl apply --server-side=true -f https://docs.k0smotron.io/v1.0.2/install.yaml
Known limitations#
Areas in which k0smotron is currently limited include:
- Control plane exposure
Currently k0smotron only supports
ClusterIP,NodePort, andLoadBalancerservices, 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.
 kubectlinstalled 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 https://docs.k0smotron.io/v1.0.2/install.yaml
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.