Files
home-services/TALOS.md
T
whentimeslows 847f05d316
Deploy home services / deploy-nas1 (push) Has been cancelled
Deploy home services / deploy-rhel1 (push) Has been cancelled
Updated VMs to 8GB RAM due to mem pressure
2026-10-03 14:39:03 -06:00

2.5 KiB

TALOS Configuration

Prior and separate to this build chain, Talos needs to be configured. Here are the steps that were completed.

Reference: https://docs.siderolabs.com/talos/v1.14/platform-specific-installations/virtualized-platforms/kvm

Note that kubectl, talosctl, and terraform were installed using homebrew prior.


# Setting up VMs
mkdir -p ~/vm/talos/configs
cd ~/vm/talos/configs
vim my-talos-net.xml
sudo virsh net-define my-talos-net.xml
sudo virsh net-start my-talos-net
sudo virsh net-autostart my-talos-net
sudo mv ~/downloads/metal-arm64.iso /var/lib/libvirt/images/
sudo chown root: /var/lib/libvirt/images/metal-amd64.iso
sudo virt-install --virt-type kvm --name control-plane-node-1 --ram 8192 --vcpus 4 --disk path=control-plane-node-1-disk.qcow2,bus=virtio,size=40,format=qcow2 --cdrom metal-amd64.iso --os-variant=linux2022 --network network=my-talos-net --boot hd,cdrom --noautoconsole
sudo virt-install --virt-type kvm --name worker-node-1 --ram 8192 --vcpus 4 --disk path=control-plane-node-1-disk.qcow2,bus=virtio,size=40,format=qcow2 --cdrom metal-amd64.iso --os-variant=linux2022 --network network=my-talos-net --boot hd,cdrom --noautoconsole

Note that the VMs are booted into the ISO and terraform initiates the install and cluster build.

Upgrade Talos from 1.13 to 1.14

Talos 1.14 no longer publishes the release installer image at ghcr.io/siderolabs/installer:v1.14.0. Use the Talos Image Factory installer image with the generic amd64 KVM schematic:

export TALOSCONFIG="$HOME/.talos/home-services/talosconfig"

export TALOS_INSTALLER_IMAGE="factory.talos.dev/metal-installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.14.0"

Upgrade the worker first:

talosctl upgrade \
	--endpoints 10.0.0.246 \
	--nodes 10.0.0.246 \
	--image "$TALOS_INSTALLER_IMAGE" \
	--wait

After the worker is healthy, upgrade the control-plane node:

talosctl upgrade \
	--endpoints 10.0.0.99 \
	--nodes 10.0.0.99 \
	--image "$TALOS_INSTALLER_IMAGE" \
	--wait

Verify both nodes before reconciling Terraform:

talosctl version --endpoints 10.0.0.246 --nodes 10.0.0.246
talosctl version --endpoints 10.0.0.99 --nodes 10.0.0.99
talosctl health --endpoints 10.0.0.99 --nodes 10.0.0.99,10.0.0.246

Then update terraform.tfvars to talos_version = "v1.14.0" if needed and run:

terraform plan
terraform apply

Do not use talosctl reset or recreate the VMs for this upgrade. The installer preserves the Talos state and Kubernetes data.