Automated OS installation
This guide covers using the superphenix-operator, the talos-operator and talos-manager to provision and lifecycle-manage physical servers as Talos Kubernetes clusters. Use this path when you want declarative, GitOps-driven installation from a management cluster instead of running talosctl on each node by hand.
Part of the deployment guide. For the manual alternative, see Manual OS installation.
When to use this path
- Greenfield datacenter: bare-metal servers with BMC/IPMI are registered once; the operator drives imaging, Talos configuration, and cluster bootstrap.
- Multi-AZ at scale: a management cluster outside the workload AZs orchestrates many clusters from a single control plane (see Deployment topology).
- Repeatable operations: node additions, replacements, and Talos upgrades are handled through Kubernetes resources rather than ad hoc CLI steps.
- Decoupled management: the management cluster can run on any reachable Kubernetes environment while the operator provisions Talos clusters on your hardware.
How it fits in the Superphenix stack
When you install the superphenix-operator Helm chart on the management cluster, the management stack can include:
- The Superphenix web console
- ArgoCD for GitOps synchronization of the Superphenix system
- The talos-operator, which deploys a server for PXE boot and manages physical nodes and Talos cluster lifecycle (optional, enabled when you use operator-driven provisioning)
- talos-manager, which generates a
TalosClusterresource for talos-operator to manage the cluster (optional, enabled when you use operator-driven provisioning).
The operator reads Cluster (and related) resources in the superphenix-system namespace and reconciles the Superphenix stack on each target cluster. When physical provisioning is enabled, the talos-operator layer handles server-level installation before or alongside that reconciliation.
Prerequisites
- A management Kubernetes cluster (v1.28+) with network access to:
- The Kubernetes API of every Superphenix cluster it will manage.
- The out-of-band (OOB) management network of every physical server (IPMI, Redfish, or equivalent BMC).
superphenix-operatorinstalled via Helm: see Installing outside an AZ (typical for automated provisioning) or Installing inside an AZ.- Hardware sized for your topology: see Hardware requirements. Production deployments should use servers with IPMI and a dedicated OOB network (see Production recommendations).
- Network layout planned (cluster VLAN, public VLAN, storage fabric): see Network requirements.
Important
If management runs outside every AZ, it only needs connectivity to cluster APIs and BMCs; it does not need to be a Talos cluster itself. If management runs on an AZ, that AZ must already exist, typically created via Manual OS installation. See Installing inside an AZ.
Important
Nodes must support PXE boot and EFI (make sure that the boot mode is UEFI and not "legacy" in the BIOS settings). If you want to make your nodes reboot into PXE automatically, they will need an IPMI with Redfish enabled. Setting up PXE automatically on the BIOS only works on DELL iDRAC and Lenovo XClarity, and setting up VLAN on the PXE interface only works on DELL iDRAC. Automatic reboot into PXE should work with all IPMI.
Important
Make sure no DHCP server is running on the cluster VLAN, as it might conflict with the DHCP server deployed by talos-operator for PXE boot.
Installation overview
- Install the
superphenix-operatoron the management cluster. - Define
Clusterresources that describe topology, geography and connection mode, as well as BMC credentials, MAC addresses and desired role of each node for talos-manager. - Let the operator boot and provision Talos on the servers, bootstrap Kubernetes, and install the Superphenix stack.
- Connect decoupled storage and workload clusters as needed. See Connecting a workload and storage cluster.
Step 1: Install the operator
On your management cluster:
helm upgrade --install superphenix-operator \
ghcr.io/super-phenix/charts/superphenix-operator \
--namespace superphenix-system \
--create-namespace --set "management.values.talos-operator.enabled=true"
Step 2: Define cluster resources
Create Cluster resources in superphenix-system that describe each Superphenix AZ. For operator-provisioned clusters, set connection details so the management plane can reach the cluster once bootstrap completes:
apiVersion: superphenix.net/v1alpha1
kind: Cluster
metadata:
name: az-paris-1
namespace: superphenix-system
spec:
deploymentTopology: Decoupled
type: Virtualization
region: europe-west
availabilityZone: paris-1
connection:
mode: Remote
url: https://api.paris-1.superphenix.net:6443
secretRef:
name: cluster-paris-1-credentials
namespace: superphenix-system
version: v0.1.0
repoURL: https://charts.superphenix.net
chartName: superphenix-stack
talosManagementMode: Full
talosManagerConfiguration:
dhcpInterface: "enp0s1"
pxeIpAddr: "10.0.0.1"
clusterName: "az-paris-1"
clusterType: virt
reconciliationMode: Reconcile
clusterNetwork:
ipv4: "10.0.0.0"
ipv6: "fc00:1::"
cidrIpv4: 24
cidrIpv6: 64
vlanId: 1
gatewayIpv4: "10.0.0.254"
linkMtu: 1500
publicNetwork:
ipv6: "fc00:2::"
cidrIpv6: 64
vlanId: 2
linkMtu: 1500
podSubnets:
ipv4: "10.0.0.0"
ipv6: "fd00:100::"
cidrIpv4: 12
cidrIpv6: 96
serviceSubnets:
ipv4: "10.16.0.0"
ipv6: "fd00:100:ffff::"
cidrIpv4: 12
cidrIpv6: 112
controlplaneIpv6: "fc00:1::ffff:ffff:ffff:ffff"
controlplanePort: 6443
talosVersion: "v1.13.0"
k8sVersion: "v1.35.0"
nodes:
- hostname: "az-paris-1-master01"
type: controlplane
cpuArchitecture: amd64
pxeMacAddress: "AA:AA:AA:AA:AA:AA"
pxeSetup: true
ipmiIpv4: "10.0.2.1"
ipmiUser: user
ipmiPassword: pass
pxeInterfaceName: "Interface1"
interface:
name: net0
clusterNetwork:
ipv4: "10.0.0.2"
ipv6: "fc00:1::2"
publicNetwork:
ipv6: "fc00:2::2"
useVlan: true
lacpBond:
enabled: false
physicalMacAddress: "AA:AA:AA:AA:AA:AA"
installDisk:
auto: true
- ...
Set connection.mode: Local when the cluster being defined is the same Kubernetes cluster that hosts the operator (typical for management-on-AZ after bootstrap).
Set talosManagementMode: Full to let talos-operator boot, install and configure Talos automatically, or talosManagementMode: Import to import an already installed Talos cluster and let talos-operator manage its lifecycle.
See Configure a cluster for the full field reference.
Step 3: Reconcile and verify
After resources are applied:
- Confirm talos-operator has installed Talos and joined all nodes.
- Confirm the Superphenix operator has synced the stack (ArgoCD applications healthy).
- Validate nodes and core Superphenix components from the web console or
kubectl.
Coming soon: troubleshooting runbook for stalled provisioning, BMC connectivity, and bootstrap failures.
Choosing between manual and operator-driven installation
| Aspect | Manual OS installation | Automated OS installation |
|---|---|---|
| Best for | Labs, first cluster, management-on-AZ bootstrap | Multi-AZ, datacenter automation, decoupled management |
| Tooling | talosctl on your workstation |
Kubernetes resources + talos-operator |
| BMC / IPMI | Optional | Expected for hands-off physical install |
| Day-2 node lifecycle | You operate Talos directly | Operator and GitOps workflows |