> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Join machines to Omni

> Register Talos nodes with Omni for centralized management.

Omni lets you connect existing Talos machines, whether they’re running on bare metal or as VMs, to your Omni environment so it can automatically take over their management.

You can register a machine to Omni in two ways:

1. Boot the machine with a preconfigured SideroLink configuration from Omni or the Image Factory.

2. Boot the machine using standard Talos Linux installation media and provide a Machine Join Config.

> **Note:** Once a machine joins Omni, it is managed entirely through Omni.\
> The local Talos API is disabled for security reasons, and all future configuration changes must be made through Omni. If you want to access the Talos APIs you will need to re-provision the machine from Talos installation media.

The following section explains how to use both methods to add Talos machines to Omni.

## Pre-configured SideroLink configuration

To join a machine using pre-configured SideroLink configuration:

1. Download the installation Media. You can do this from either the Omni UI or the CLI.

<Tabs>
  <Tab title="Omni UI">
    To download the installation media from the Omni UI:

    a. Log in to your Omni dashboard.

    b. Click **Download Installation Media** to open its modal.

    <img src="https://mintcdn.com/siderolabs-fe86397c/dJPti93U1DV_I5P7/omni/omni-cluster-setup/registering-machines/images/join-machines-download-installation-media.png?fit=max&auto=format&n=dJPti93U1DV_I5P7&q=85&s=d19c17256c484f12138942a587a4fdaa" alt=" Download Installation Media" width="1898" height="575" data-path="omni/omni-cluster-setup/registering-machines/images/join-machines-download-installation-media.png" />

    c. Choose the appropriate image for your machine.

    <img src="https://mintcdn.com/siderolabs-fe86397c/R2iYIQksm6G77Mzd/omni/omni-cluster-setup/registering-machines/images/join-machines-appropriate-image.png?fit=max&auto=format&n=R2iYIQksm6G77Mzd&q=85&s=eb0c3d3934d807b122ab49a300403b5b" alt="appropriate image" width="1390" height="719" data-path="omni/omni-cluster-setup/registering-machines/images/join-machines-appropriate-image.png" />

    d. Click Download to begin downloading the Omni image
  </Tab>

  <Tab title="CLI">
    Run this command to download the installation media:

    ```bash theme={null}
    omnictl download iso
    ```
  </Tab>
</Tabs>

2. Boot each machine you want to add to the cluster using the Omni image you downloaded.  After the machines have been booted, they will appear in your Omni dashboard.

## Machine Join Config

The Machine Join Config is a configuration that lets you register existing Talos nodes with Omni.
Use this approach for nodes you booted machines from a standard Talos Linux installation media, for example, an ISO or VM disk.

These machines must be in **maintenance mode**, meaning no machine configuration (`controlplane.yaml` or `worker.yaml`) has been applied yet.

### Download the Machine Join Config

You can download the Machine Join Config in two ways, through the Omni UI or by using a join token in the CLI:

<Tabs>
  <Tab title="Omni UI">
    To download the Machine Join Config from the UI:

    1. Log in to your **Omni dashboard**.
    2. Click **Download Machine Join Config** to download the configuration file.

           <img src="https://mintcdn.com/siderolabs-fe86397c/R2iYIQksm6G77Mzd/omni/omni-cluster-setup/registering-machines/images/join-machine-machine-join-config.png?fit=max&auto=format&n=R2iYIQksm6G77Mzd&q=85&s=e349a80356ecc76e8a5353c326e63b71" alt="Download Machine Join Config Button" width="1906" height="595" data-path="omni/omni-cluster-setup/registering-machines/images/join-machine-machine-join-config.png" />
  </Tab>

  <Tab title="CLI">
    To download the Machine Join Config using a join token:

    1. Log in to your Omni dashboard.

    2. Go to **Machine Management → Join Tokens**.

           <img src="https://mintcdn.com/siderolabs-fe86397c/dJPti93U1DV_I5P7/omni/omni-cluster-setup/registering-machines/images/join-machines-machine-management.png?fit=max&auto=format&n=dJPti93U1DV_I5P7&q=85&s=a6126c78c2bb502bd14cc4b402345109" alt="Join Tokens Menu" width="3012" height="614" data-path="omni/omni-cluster-setup/registering-machines/images/join-machines-machine-management.png" />

    3. Click the **⋯** button next to the token and select **Copy Token**.

           <img src="https://mintcdn.com/siderolabs-fe86397c/dJPti93U1DV_I5P7/omni/omni-cluster-setup/registering-machines/images/join-machines-copy-token.png?fit=max&auto=format&n=dJPti93U1DV_I5P7&q=85&s=5260448f80806093e63ca022919dbd05" alt="Copy Token" width="3012" height="1036" data-path="omni/omni-cluster-setup/registering-machines/images/join-machines-copy-token.png" />

    4. In your terminal, run the following command:

    ```bash theme={null}
    omnictl jointoken machine-config
    ```

    If you have multiple join tokens, you can specify a particular one by adding the `--join-token` flag:

    ```bash theme={null}
    omnictl jointoken machine-config --join-token <token-id>
    ```

    Replace the `<join-token>` with the token you copied in step 3.
  </Tab>
</Tabs>

### Supplying the Machine Join Config

The recommended way to use the join config is to provide it as userdata on your platform. For example:

* **Proxmox**: Use the NoCloud (cloud-init) datasource.

* **AWS / GCP / Azure**: Add it as instance user-data when launching a VM.

For Bare metal systems use the premade ISO or PXE boot the machine with the image downloaded from the Omni dashboard.

This ensures that the machine automatically joins Omni during its first boot.
