You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit bdb4d84
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/installation/deployment-guide/installing-an-az/configuring-a-cluster.md
+148-2Lines changed: 148 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ spec:
12
12
# -- Deployment and Topology
13
13
# Defines whether the cluster is Hyperconverged or Decoupled.
14
14
deploymentTopology: Decoupled
15
-
15
+
16
16
# Specifies the cluster type (Storage or Virtualization) when deploymentTopology is Decoupled.
17
17
type: Virtualization
18
18
@@ -33,7 +33,7 @@ spec:
33
33
version: v0.1.0
34
34
repoURL: https://charts.superphenix.net
35
35
chartName: superphenix-stack
36
-
36
+
37
37
systemConfiguration:
38
38
network:
39
39
podCIDR: 10.244.0.0/16
@@ -42,10 +42,156 @@ spec:
42
42
pauseSync: false
43
43
manual: false
44
44
cleanupOnDeletion: false
45
+
46
+
# -- Talos management mode
47
+
# Specifies how Talos configuration should be managed.
48
+
# Unmanaged - The Talos cluster is not managed by the operator. This requires an externally managed installation and configuration of Talos. PXE features and talos-operator are disabled.
49
+
# Import - The operator imports an already installed Talos cluster and manages its configuration. PXE features are disabled.
50
+
# Full - The Talos cluster is fully installed and configured by the operator.
51
+
talosManagementMode: Unmanaged
45
52
```
46
53
47
54
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).
48
55
56
+
## talos-manager configuration
57
+
58
+
If you want to use the [:octicons-arrow-right-24: automated OS installation method](../installing-the-os/automated-os-installation.md), you need to specify the configuration for the talos-manager chart using the field `talosManagerConfiguration`, as well as set `talosManagementMode` to either `Full` or `Import` in your `Cluster`'s specs. Below are the values of this chart:
59
+
60
+
```yaml
61
+
# Cluster specific variables:
62
+
# Enable PXE features (optional, overrides the value set automatically by the operator depending on "talosManagementMode"):
63
+
pxeEnabled: false
64
+
# Network interface the DHCP server should listen to (optional if "talosManagementMode" set to "Import" or if "pxeEnabled" set to "false"):
65
+
dhcpInterface: ""
66
+
# IP address of the PXE server (the bootstrap server) (optional if "talosManagementMode" set to "Import" or if "pxeEnabled" set to "false"):
67
+
pxeIpAddr: ""
68
+
# Name of the Talos cluster:
69
+
clusterName: ""
70
+
# Cluster type (can be either "storage" or "virt"):
71
+
clusterType: ""
72
+
# Reconciliation mode of the Talos configuration, as defined by talos-operator ("Reconcile", "Disable" or "DryRun"):
73
+
reconciliationMode: ""
74
+
# Cluster network specifications:
75
+
clusterNetwork:
76
+
ipv4: ""
77
+
ipv6: ""
78
+
cidrIpv4: 0
79
+
cidrIpv6: 0
80
+
vlanId: 0
81
+
gatewayIpv4: ""
82
+
gatewayIpv6: ""
83
+
linkMtu: 0
84
+
# Public network specifications (optional if "clusterType" is not "storage"):
85
+
publicNetwork:
86
+
ipv4: ""
87
+
ipv6: ""
88
+
cidrIpv4: 0
89
+
cidrIpv6: 0
90
+
vlanId: 0
91
+
linkMtu: 0
92
+
# Storage network specifications (optional):
93
+
storageNetwork:
94
+
ipv4: ""
95
+
ipv6: ""
96
+
cidrIpv4: 0
97
+
cidrIpv6: 0
98
+
vlanId: 0
99
+
linkMtu: 0
100
+
# Kubernetes pod subnets specifications:
101
+
podSubnets:
102
+
ipv4: ""
103
+
ipv6: ""
104
+
cidrIpv4: 0
105
+
cidrIpv6: 0
106
+
# Kubernetes service subnets specifications:
107
+
serviceSubnets:
108
+
ipv4: ""
109
+
ipv6: ""
110
+
cidrIpv4: 0
111
+
cidrIpv6: 0
112
+
# IPv4 address of the Talos control plane node (optional if "controlplaneIpv6" is set):
113
+
controlplaneIpv4: ""
114
+
# IPv6 address of the Talos control plane node:
115
+
controlplaneIpv6: ""
116
+
# Port of the Talos control plane:
117
+
controlplanePort: 0
118
+
# ArgoCD token:
119
+
argocdToken: ""
120
+
# Version of Talos to install on nodes:
121
+
talosVersion: ""
122
+
# Version of Kubernetes to install on Talos:
123
+
k8sVersion: ""
124
+
# 'MachineConfig' overrides for all types of nodes (array, optional):
125
+
machineGlobalOverrides: []
126
+
# 'MachineConfig' overrides for control plane nodes (array, optional):
127
+
machineOverridesControlPlane: []
128
+
# 'MachineConfig' overrides for worker nodes (array, optional):
129
+
machineOverridesWorker: []
130
+
131
+
# Nodes specific variables:
132
+
nodes:
133
+
- hostname: ""
134
+
# Talos node type (can be either "controlplane" or "worker"):
135
+
type: ""
136
+
# CPU architecture of this node (optional if "talosManagementMode" set to "Import" or if "pxeEnabled" set to "false"):
137
+
cpuArchitecture: ""
138
+
# MAC address used by the PXE firmware (optional if "talosManagementMode" set to "Import" or if "pxeEnabled" set to "false"):
139
+
pxeMacAddress: ""
140
+
# Kernel command line arguments when booting in PXE (optional):
141
+
kernelCmdlineArgs: ""
142
+
# Specifies whether this machine should be set up for PXE:
143
+
pxeSetup: false
144
+
# IPv4 address of the node's IPMI (optional if "pxeSetup" set to "false"):
145
+
ipmiIpv4: ""
146
+
# Username of an administrator account on the IPMI (optional if "pxeSetup" set to "false"):
147
+
ipmiUser: ""
148
+
# Password of the aforementioned IPMI account (optional if "pxeSetup" set to "false"):
149
+
ipmiPassword: ""
150
+
# Name of the interface used by the PXE firmware, as given by the IPMI through Redfish (optional if "pxeSetup" set to "false"):
151
+
pxeInterfaceName: ""
152
+
# Specifications of the network interface:
153
+
interface:
154
+
# Name to give to the interface (avoid common names such as "ethX" or "enoXnpY"):
155
+
name: ""
156
+
# IP of this node on the cluster network (IPv6 is optional):
157
+
clusterNetwork:
158
+
ipv4: ""
159
+
ipv6: ""
160
+
# IP of this node on the public network (optional if "clusterType" is not "storage"):
161
+
publicNetwork:
162
+
ipv4: ""
163
+
ipv6: ""
164
+
# IP of this node on the storage network (optional):
165
+
storageNetwork:
166
+
ipv4: ""
167
+
ipv6: ""
168
+
# Specifies whether this interface should be connected to VLANs:
169
+
useVlan: false
170
+
# Specifications of the LACP bond, if applicable (setting "enabled" to "false" makes other sub-fields optional):
171
+
lacpBond:
172
+
enabled: false
173
+
lacpRate: ""
174
+
xmitHashPolicy: ""
175
+
miimon: 0
176
+
updelay: 0
177
+
downdelay: 0
178
+
linkMtu: 0
179
+
# Physical interfaces to be aggregated:
180
+
physicalInterfaces:
181
+
- name: ""
182
+
macAddress: ""
183
+
# MAC address of the single physical interface, if bond is disabled:
184
+
physicalMacAddress: ""
185
+
# Specifications of the installation disk:
186
+
installDisk:
187
+
# Indicates whether the installation disk should be selected automatically ("true" makes other sub-fields optional):
188
+
auto: false
189
+
# Selector for the installation disk, if not selected automatically (this is the same as the "diskSelector" field from the Talos documentation : https://docs.siderolabs.com/talos/v1.13/reference/configuration/v1alpha1/config#diskselector):
190
+
selector: ""
191
+
# 'MachineConfig' overrides for this node (array, optional):
192
+
machineOverrides: []
193
+
```
194
+
49
195
## Related
50
196
51
197
- [Installing an AZ](index.md): overview of AZ installation.
Copy file name to clipboardExpand all lines: docs/installation/deployment-guide/installing-the-os/automated-os-installation.md
+76-25Lines changed: 76 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Automated OS installation
2
2
3
-
This guide covers using the **superphenix-operator** and the **talos-operator**it deploys 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.
3
+
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.
4
4
5
5
Part of the [deployment guide](../index.md). For the manual alternative, see [Manual OS installation](manual-os-installation.md).
6
6
@@ -17,7 +17,8 @@ When you install the `superphenix-operator` Helm chart on the management cluster
17
17
18
18
- The **Superphenix web console**
19
19
-**ArgoCD** for GitOps synchronization of the Superphenix system
20
-
- The **talos-operator**, which manages physical nodes and Talos cluster lifecycle (optional, enabled when you use operator-driven provisioning)
20
+
- 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)
21
+
-**talos-manager**, which generates a `TalosCluster` resource for talos-operator to manage the cluster (optional, enabled when you use operator-driven provisioning).
21
22
22
23
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.
23
24
@@ -33,13 +34,19 @@ The operator reads `Cluster` (and related) resources in the `superphenix-system`
33
34
!!! important
34
35
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](manual-os-installation.md). See [Installing inside an AZ](../installing-management/management-inside-az.md).
35
36
37
+
!!! important
38
+
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.
39
+
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.
40
+
41
+
!!! important
42
+
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.
43
+
36
44
## Installation overview
37
45
38
46
1. Install the `superphenix-operator` on the management cluster.
39
-
2. Register physical servers (BMC credentials, MAC addresses, desired role) with the talos-operator.
40
-
3. Define `Cluster` resources that describe topology, geography, and connection mode.
41
-
4. Let the operator provision Talos on the servers, bootstrap Kubernetes, and install the Superphenix stack.
42
-
5. Connect decoupled storage and workload clusters as needed. See [Connecting a workload and storage cluster](../../../operations/storage/connecting-a-workload-and-storage-cluster.md).
47
+
2. Define `Cluster` resources that describe topology, geography and connection mode, as well as BMC credentials, MAC addresses and desired role of each node for talos-manager.
48
+
3. Let the operator boot and provision Talos on the servers, bootstrap Kubernetes, and install the Superphenix stack.
49
+
4. Connect decoupled storage and workload clusters as needed. See [Connecting a workload and storage cluster](../../../operations/storage/connecting-a-workload-and-storage-cluster.md).
Enable talos-operator components and physical provisioning through the chart values for your environment.
56
-
57
-
*Coming soon: Helm values reference for talos-operator and BMC integration.*
58
-
59
-
## Step 2: Register physical servers
60
-
61
-
Provide the talos-operator with everything it needs to reach and install each server:
62
-
63
-
-**BMC endpoint** and credentials (stored in Kubernetes secrets).
64
-
-**Network identity**: for example MAC address or serial number used to match a machine to its slot in the cluster design.
65
-
-**Role**: control plane, worker, storage, or hypervisor tier depending on your [deployment topology](../../../architecture/deployment-topology.md).
66
-
67
-
The operator uses this inventory to apply the correct Talos machine configuration and join nodes into the target cluster.
68
-
69
-
*Coming soon: example `Machine` / server inventory resources and secret layout.*
70
-
71
-
## Step 3: Define cluster resources
62
+
## Step 2: Define cluster resources
72
63
73
64
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:
74
65
@@ -92,13 +83,73 @@ spec:
92
83
version: v0.1.0
93
84
repoURL: https://charts.superphenix.net
94
85
chartName: superphenix-stack
86
+
talosManagementMode: Full
87
+
talosManagerConfiguration:
88
+
dhcpInterface: "enp0s1"
89
+
pxeIpAddr: "10.0.0.1"
90
+
clusterName: "az-paris-1"
91
+
clusterType: virt
92
+
reconciliationMode: Reconcile
93
+
clusterNetwork:
94
+
ipv4: "10.0.0.0"
95
+
ipv6: "fc00:1::"
96
+
cidrIpv4: 24
97
+
cidrIpv6: 64
98
+
vlanId: 1
99
+
gatewayIpv4: "10.0.0.254"
100
+
linkMtu: 1500
101
+
publicNetwork:
102
+
ipv6: "fc00:2::"
103
+
cidrIpv6: 64
104
+
vlanId: 2
105
+
linkMtu: 1500
106
+
podSubnets:
107
+
ipv4: "10.0.0.0"
108
+
ipv6: "fd00:100::"
109
+
cidrIpv4: 12
110
+
cidrIpv6: 96
111
+
serviceSubnets:
112
+
ipv4: "10.16.0.0"
113
+
ipv6: "fd00:100:ffff::"
114
+
cidrIpv4: 12
115
+
cidrIpv6: 112
116
+
controlplaneIpv6: "fc00:1::ffff:ffff:ffff:ffff"
117
+
controlplanePort: 6443
118
+
talosVersion: "v1.13.0"
119
+
k8sVersion: "v1.35.0"
120
+
nodes:
121
+
- hostname: "az-paris-1-master01"
122
+
type: controlplane
123
+
cpuArchitecture: amd64
124
+
pxeMacAddress: "AA:AA:AA:AA:AA:AA"
125
+
pxeSetup: true
126
+
ipmiIpv4: "10.0.2.1"
127
+
ipmiUser: user
128
+
ipmiPassword: pass
129
+
pxeInterfaceName: "Interface1"
130
+
interface:
131
+
name: net0
132
+
clusterNetwork:
133
+
ipv4: "10.0.0.2"
134
+
ipv6: "fc00:1::2"
135
+
publicNetwork:
136
+
ipv6: "fc00:2::2"
137
+
useVlan: true
138
+
lacpBond:
139
+
enabled: false
140
+
physicalMacAddress: "AA:AA:AA:AA:AA:AA"
141
+
installDisk:
142
+
auto: true
143
+
- ...
95
144
```
96
145
97
146
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).
98
147
148
+
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.
149
+
99
150
See [Configure a cluster](../installing-an-az/configuring-a-cluster.md) for the full field reference.
0 commit comments