Installation
To install Sidero and the other Talos providers, simply issue:
clusterctl init -b talos -c talos -i sidero
Sidero supports several variables to configure the installation, these variables can be set either as environment
variables or as variables in the clusterctl configuration:
SIDERO_CONTROLLER_MANAGER_HOST_NETWORK(false): runsidero-controller-manageron host networkSIDERO_CONTROLLER_MANAGER_DEPLOYMENT_STRATEGY(RollingUpdate): strategy to use when updatingsidero-controller-manager, useRecreatewhen using a single node andSIDERO_CONTROLLER_MANAGER_HOST_NETWORKistrueSIDERO_CONTROLLER_MANAGER_API_ENDPOINT(empty): specifies the IP address controller manager API service can be reached on, defaults to the node IP (TCP)SIDERO_CONTROLLER_MANAGER_API_PORT(8081): specifies the port controller manager can be reached onSIDERO_CONTROLLER_MANAGER_CONTAINER_API_PORT(8081): specifies the controller manager internal container portSIDERO_CONTROLLER_MANAGER_SIDEROLINK_ENDPOINT(empty): specifies the IP address SideroLink Wireguard service can be reached on, defaults to the node IP (UDP)SIDERO_CONTROLLER_MANAGER_SIDEROLINK_PORT(51821): specifies the port SideroLink Wireguard service can be reached onSIDERO_CONTROLLER_MANAGER_EXTRA_AGENT_KERNEL_ARGS(empty): specifies additional Linux kernel arguments for the Sidero agent (for example, different console settings)SIDERO_CONTROLLER_MANAGER_AUTO_ACCEPT_SERVERS(false): automatically accept discovered servers, by default.spec.acceptedshould be changed totrueto accept the serverSIDERO_CONTROLLER_MANAGER_AUTO_BMC_SETUP(true): automatically attempt to configure the BMC with asiderouser that will be used for all IPMI tasks.SIDERO_CONTROLLER_MANAGER_INSECURE_WIPE(true): wipe only the first megabyte of each disk on the server, otherwise wipe the full diskSIDERO_CONTROLLER_MANAGER_SERVER_REBOOT_TIMEOUT(20m): timeout for the server reboot (how long it might take for the server to be rebooted before Sidero retries an IPMI reboot operation)SIDERO_CONTROLLER_MANAGER_IPMI_PXE_METHOD(uefi): IPMI boot from PXE method:uefifor UEFI boot orbiosfor BIOS bootSIDERO_CONTROLLER_MANAGER_BOOT_FROM_DISK_METHOD(ipxe-exit): configures the way Sidero forces server to boot from disk when server hits iPXE server after initial install:ipxe-exitreturns iPXE script withexitcommand,http-404returns HTTP 404 Not Found error,ipxe-sanbootuses iPXEsanbootcommand to boot from the first hard disk (can be also configured onServerClass/Servermethod)SIDERO_CONTROLLER_MANAGER_DISABLE_DHCP_PROXY(false): disable DHCP Proxy service (enabled by default)SIDERO_CONTROLLER_MANAGER_EVENTS_NEGATIVE_ADDRESS_FILTER(empty): negative filter for reported machine addresses (e.g.10.0.0.0/8won’t publish any10.xaddresses to theMetalMachinestatus)
Sidero provides four endpoints which should be made available to the infrastructure:
- UDP port 67 for the proxy DHCP service (providing PXE boot information to the nodes, but no IPAM)
- TCP port 8081 which provides combined iPXE, metadata and gRPC service (external endpoint should be specified as
SIDERO_CONTROLLER_MANAGER_API_ENDPOINTandSIDERO_CONTROLLER_MANAGER_API_PORT) - UDP port 69 for the TFTP service (DHCP server should point the nodes to PXE boot from that IP)
- UDP port 51821 for the SideroLink Wireguard service (external endpoint should be specified as
SIDERO_CONTROLLER_MANAGER_SIDEROLINK_ENDPOINTandSIDERO_CONTROLLER_MANAGER_SIDEROLINK_PORT)
These endpoints could be exposed to the infrastructure using different strategies:
- running
sidero-controller-manageron the host network. - using Kubernetes load balancers (e.g. MetalLB), ingress controllers, etc.
Note: If you want to run
sidero-controller-manageron the host network using port different from8081you should set bothSIDERO_CONTROLLER_MANAGER_API_PORTandSIDERO_CONTROLLER_MANAGER_CONTAINER_API_PORTto the same value.