Configuration#
K0smotron managed control planes are managed using custom resource objects.
apiVersion: k0smotron.io/v1beta1
kind: Cluster
metadata:
name: k0smotron-test
spec:
replicas: 1
image: k0sproject/k0s
version: v1.27.1-k0s.0
service:
type: NodePort
apiPort: 30443
konnectivityPort: 30132
persistence:
type: emptyDir
For full reference of the fields check out the reference docs.
Persistence#
K0smotron persists data related to each Cluster. Specifically, it persists the /var/lib/k0s directory of the k0s controller which is the default data directory used by k0s.
The /var/lib/k0s directory contains essential data for the operation of the k0s controller, but its growth over time is primarily driven by the addition of small manifest files. Since these manifests are lightweight and in text format, the directory tends to grow gradually and not excessively. Typically, 250 MB of space is sufficient to handle its growth, as the main additions are these small manifests, keeping the overall size manageable.
The type of persistence used for this can be configurable via spec.persistence. For more information, check out the reference docs on Cluster persistence.
K0s configuration#
K0smotron allows you to configure k0s via spec.k0sConfig field. If empty, the default configuration will be used.
Refer to k0s docs for a reference on k0s configuration.
Note: Some fields will be overwritten by k0smotron. K0smotron will set the following fields:
spec.k0sConfig.spec.api.externalAddresswill be set to the value ofspec.externalAddressifspec.externalAddressis set. If not, k0smotron will use load balancer IP or try to detectexternalAddressout of nodes IP addresses.spec.k0sConfig.spec.api.portwill be set to the value ofspec.service.apiPort.spec.k0sConfig.spec.konnectivity.portwill be set to the value ofspec.service.konnectivityPort.spec.k0sConfig.spec.storage.kine.dataSourcewill be set to the value ofspec.kineDataSourceURLifspec.kineDataSourceURLis set.spec.k0sConfig.spec.storage.typewill be set tokine.