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 2048 --vcpus 2 --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 4096 --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.