Extension operators

liken itself only boots machines into Kubernetes. To do more with the cluster, such as put a dashboard on a monitor, play a film on the TV, or run a telescope, you install extension operators. Each one is a Kubernetes operator for one area: you describe what you want as Kubernetes resources, and the operator makes it happen. Each operator that is built has its own manual on this site, and its source is a directory of the liken repository .

Install only what you need

The operating system installs none of these operators. It boots each machine into Kubernetes and publishes the machine’s own hardware as devices, as Devices describes, and it stops there. You install the operators that your equipment and your workloads need, and a cluster with none of them works the same way. To take liken into a new area, you usually add an operator, and the operating system stays as it is.

Use something else in place of an operator

An operator works with the rest of the cluster only through Kubernetes objects: the devices it claims, the resources it defines, and the Events and conditions it posts. Other software can use the same objects, so you can run something else beside an operator, or in its place. For example:

An operator that uses devices claims them with a ResourceClaim, the same way any workload does. So the dependencies go one way: the operators that publish devices do not depend on the operators that claim them.

Device classes and ingress are yours to decide

An operator ships a DeviceClass only for its own pod, so it can claim the hardware it manages. liken ships no DeviceClass for your workloads. You write those yourself, and each operator’s manual shows how.

liken gives a cluster no ingress controller and no load balancer. The operating system turns off the add-ons that k3s bundles, such as the Traefik ingress controller and the load balancer for Service objects of type LoadBalancer. You can turn each one on again in the features field of the Cluster spec. You decide which services are reachable from outside the cluster, and how: every operator’s Service has the default type, ClusterIP, and no operator ships an Ingress. Two operators, bluetooth-operator and equipment-operator, run on the host network, so their metrics ports are open on each node’s own address.