Skip to main content

Register an Unmanaged OS

Normally, the Elemental Operator manages operating systems that are installed and configured by the Elemental Toolkit.
For example, in order to automate OS installation, upgrade, and reset, the elemental-register relies on the elemental CLI to execute these operations.

However, it is also possible to register and provision Elemental "Toolkitless" systems.

In this scenario, elemental-register needs to be installed on the system.
Optionally, the elemental-system-agent can be installed. Note that without the elemental-system-agent, the Elemental Operator will not be able to provision any k8s cluster on the machine. In this case the Elemental Operator can only be used for OS Inventory purposes only.

Finally, on the management cluster, the MachineRegistration must enable the spec.config.elemental.registration.no-toolkit flag.

Once no-toolkit is enabled on the MachineRegistration, and a new registration occurs using elemental-register --install on the system, a new MachineInventory will be created on the management cluster:

kubectl -n fleet-default describe machineinventory my-unmanaged-os-machine

The MachineInventory will be annotated with the elemental.cattle.io/os.unmanaged: "true" annotation, highlighting that this machine is not managed and has limited functionality.

On the system, upon successful registration, the /etc/rancher/elemental/agent/config.yaml and /var/lib/elemental/agent/elemental_connection.json files are automatically created to configure the elemental-system-agent. The elemental-system-agent component is needed for K8s provisioning and Reset triggers.

When a machine reset is triggered, for example by deleting the MachineInventory directly, the elemental-system-agent will execute a simple reset plan that will create the /var/lib/elemental/.unmanaged_reset sentinel file.
The presence of this file indicates that the machine needs a reset. This may involve stopping services, uninstalling packages, formatting devices, and so on, depending how the machine is customly managed.

Supported Features​

Unsupported Features​