Sidero is included as a default infrastructure provider in
clusterctl, so the
installation of both Sidero and the Cluster API (CAPI) components is as simple
as using the
Note: Because Cluster API upgrades are stateless, it is important to keep all Sidero configuration for reuse during upgrades.
Sidero has a number of configuration options which should be supplied at install
time, kept, and reused for upgrades.
These can also be specified in the
clusterctl configuration file
You can reference the
for more information on this.
For our purposes, we will use environment variables for our configuration options.
export SIDERO_CONTROLLER_MANAGER_HOST_NETWORK=true export SIDERO_CONTROLLER_MANAGER_DEPLOYMENT_STRATEGY=Recreate export SIDERO_CONTROLLER_MANAGER_API_ENDPOINT=192.168.1.150 export SIDERO_CONTROLLER_MANAGER_SIDEROLINK_ENDPOINT=192.168.1.150 clusterctl init -b talos -c talos -i sidero
First, we are telling Sidero to use
hostNetwork: true so that it binds its
ports directly to the host, rather than being available only from inside the
There are many ways of exposing the services, but this is the simplest
path for the single-node management cluster.
When you scale the management cluster, you will need to use an alternative
method, such as an external load balancer or something like
192.168.1.150 IP address is the IP address or DNS hostname as seen from the workload
In our case, this should be the main IP address of your Docker
Note: If you encounter the following error, this is caused by a rename of our GitHub org from
$ clusterctl init -b talos -c talos -i sidero Fetching providers Error: failed to get provider components for the "talos" provider: target namespace can't be defaulted. Please specify a target namespace
This can be worked around by adding the following to
~/.cluster-api/clusterctl.yamland rerunning the init command:
providers: - name: "talos" url: "https://github.com/siderolabs/cluster-api-bootstrap-provider-talos/releases/latest/bootstrap-components.yaml" type: "BootstrapProvider" - name: "talos" url: "https://github.com/siderolabs/cluster-api-control-plane-provider-talos/releases/latest/control-plane-components.yaml" type: "ControlPlaneProvider" - name: "sidero" url: "https://github.com/siderolabs/sidero/releases/latest/infrastructure-components.yaml" type: "InfrastructureProvider"