Skip to content

Commit 2857899

Browse files
committed
Update README.md
1 parent bc0c827 commit 2857899

1 file changed

Lines changed: 36 additions & 3 deletions

File tree

README.md

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@ export KUBECONFIG=./iac/talos/clusterconfig/kubeconfig
101101
# Run ONCE on a single control plane node IP
102102
talosctl bootstrap --nodes <control-plane-ip>
103103
```
104-
- Apply the machine configuration to all nodes in the cluster.
104+
- Apply the machine configuration to all nodes in the cluster. This command should be run from the root of the repository after setting `TALOSCONFIG`.
105105
```bash
106-
talosctl apply-config --insecure --nodes <node-ip-1> --file iac/talos/clusterconfig/<node-1-name>.yaml
107-
talosctl apply-config --insecure --nodes <node-ip-2> --file iac/talos/clusterconfig/<node-2-name>.yaml
106+
talosctl apply-config --nodes <node-ip-1> --file iac/talos/clusterconfig/<node-1-name>.yaml
107+
talosctl apply-config --nodes <node-ip-2> --file iac/talos/clusterconfig/<node-2-name>.yaml
108108
# ... repeat for all nodes
109109
```
110110

@@ -209,6 +209,39 @@ kubectl get backuptarget -n longhorn-system
209209
- **SOPS**: Used for encrypting Talos secrets
210210
- **No plaintext secrets in Git**
211211
212+
#### Upgrading Nodes
213+
When a new version of Talos is released or system extensions in `iac/talos/talconfig.yaml` are changed, follow this process to upgrade your nodes. This method uses the direct `upgrade` command to ensure the new system image is correctly applied, which is more reliable than `apply-config` for image changes.
214+
215+
**Important:** Always upgrade control plane nodes **one at a time**, waiting for each node to successfully reboot and rejoin the cluster before proceeding to the next. This prevents losing etcd quorum. Worker nodes can be upgraded in parallel after the control plane is healthy.
216+
217+
1. **Update Configuration**:
218+
Modify `iac/talos/talconfig.yaml` with the new `talosVersion` or changes to `systemExtensions`.
219+
220+
2. **Ensure Environment is Set**:
221+
Make sure your `TALOSCONFIG` variable is pointing to your generated cluster configuration file as described in the Quick Start.
222+
223+
3. **Upgrade a Control Plane Node**:
224+
Run the following commands from the root of the repository. Replace `<node-name>` and `<node-ip>` with the target node's details. Run this for each control plane node sequentially.
225+
226+
```bash
227+
# Example for the first control plane node
228+
NODE_NAME="talos-cluster-control-00"
229+
NODE_IP="192.168.10.100" # Replace with your node's IP
230+
INSTALLER_URL=$(talhelper genurl installer -c iac/talos/talconfig.yaml -n "$NODE_NAME")
231+
talosctl upgrade --nodes "$NODE_IP" --image "$INSTALLER_URL"
232+
```
233+
Wait for the command to complete and verify the node is healthy with `talosctl health --nodes <node-ip>` before moving to the next control plane node.
234+
235+
4. **Upgrade Worker Nodes**:
236+
Once the control plane is fully upgraded and healthy, you can upgrade the worker nodes. These can be run in parallel from separate terminals.
237+
```bash
238+
# Example for the GPU worker node
239+
NODE_NAME="talos-cluster-gpu-worker-00"
240+
NODE_IP="192.168.10.200" # Replace with your node's IP
241+
INSTALLER_URL=$(talhelper genurl installer -c iac/talos/talconfig.yaml -n "$NODE_NAME")
242+
talosctl upgrade --nodes "$NODE_IP" --image "$INSTALLER_URL"
243+
```
244+
212245
## 🗄️ MinIO S3 Backup Configuration
213246

214247
This cluster uses **TrueNAS Scale MinIO** for S3-compatible storage backups, particularly for Longhorn persistent volume backups.

0 commit comments

Comments
 (0)