diff --git a/README.md b/README.md index 747b52361de..50ed6d93a3d 100644 --- a/README.md +++ b/README.md @@ -289,6 +289,36 @@ task talos:upgrade-k8s # e.g. task talos:upgrade-k8s ``` +### ➕ Adding a node to your cluster + +At some point you might want to expand your cluster to run more workloads and/or improve the reliability of your cluster. Keep in mind it is recommended to have an **odd number** of control plane nodes for quorum reasons. + +You don't need to re-bootstrap the cluster to add new nodes. Follow these steps: + +1. **Prepare the new node**: Review the [Stage 1: Machine Preparation](#stage-1-machine-preparation) section and boot your new node into maintenance mode. + +2. **Get the node information**: While the node is in maintenance mode, retrieve the disk and MAC address information needed for configuration: + + ```sh + talosctl get disks -n --insecure + talosctl get links -n --insecure + ``` + +3. **Update the configuration**: Read the documentation for [talhelper](https://budimanjojo.github.io/talhelper/latest/) and extend the `talconfig.yaml` file manually with the new node information (including the disk and MAC address from step 2). + +4. **Generate and apply the configuration**: + + ```sh + # Render your talosconfig based on the talconfig.yaml file + task talos:generate-config + + # Apply the configuration to the node + task talos:apply-node IP=? + # e.g. task talos:apply-node IP=10.10.10.10 + ``` + +The node should join the cluster automatically and workloads will be scheduled once they report as ready. + ## 🤖 Renovate [Renovate](https://www.mend.io/renovate) is a tool that automates dependency management. It is designed to scan your repository around the clock and open PRs for out-of-date dependencies it finds. Common dependencies it can discover are Helm charts, container images, GitHub Actions and more! In most cases merging a PR will cause Flux to apply the update to your cluster.