<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://halfface.se/wiki/index.php?action=history&amp;feed=atom&amp;title=Talos</id>
	<title>Talos - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://halfface.se/wiki/index.php?action=history&amp;feed=atom&amp;title=Talos"/>
	<link rel="alternate" type="text/html" href="https://halfface.se/wiki/index.php?title=Talos&amp;action=history"/>
	<updated>2026-04-19T07:27:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://halfface.se/wiki/index.php?title=Talos&amp;diff=16208&amp;oldid=prev</id>
		<title>Ekaanbj: /* If colliding Colliding subnets */</title>
		<link rel="alternate" type="text/html" href="https://halfface.se/wiki/index.php?title=Talos&amp;diff=16208&amp;oldid=prev"/>
		<updated>2025-08-19T15:08:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;If colliding Colliding subnets&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=talos kubernetes setup under libvirt with 3 control and 3 worker nodes=&lt;br /&gt;
==Download latest talosctl==&lt;br /&gt;
 talosctl_install(){ sudo curl --proto =https --tlsv1.2 -fL https://github.com/siderolabs/talos/releases/latest/download/talosctl-linux-amd64 -o /usr/local/bin/talosctl ; sudo chmod 755 /usr/local/bin/talosctl ; }&lt;br /&gt;
==Download latest talos system image.==&lt;br /&gt;
 talos_latest_iso(){&lt;br /&gt;
   LATEST=$(curl -sk https://github.com/siderolabs/talos/releases | elinks -dump -no-references -no-connect -no-home -no-numbering -dump-width 500 | grep -E &amp;#039;^ +v.*Latest&amp;#039; | awk &amp;#039;{print $1}&amp;#039;)&lt;br /&gt;
   curl -kL https://github.com/siderolabs/talos/releases/download/${LATEST}/metal-amd64.iso -o talos.metal-amd64.${LATEST}.iso&lt;br /&gt;
 }&lt;br /&gt;
==If talosctl enable file completion==&lt;br /&gt;
 type talosctl &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 ; if [ $? -eq 0 ] ; then . &amp;lt;(talosctl completion bash) ; fi&lt;br /&gt;
&lt;br /&gt;
==Remove old==&lt;br /&gt;
 for i in control1 control2 control3 worker1 worker2 worker3 ; do virsh destroy $i ; virsh undefine $i ; done&lt;br /&gt;
 sudo find /var/lib/libvirt/images/ -type f -delete&lt;br /&gt;
==Generate vm:s==&lt;br /&gt;
 for HOST in control1 control2 control3 worker1 worker2 worker3 ; do&lt;br /&gt;
   echo &amp;#039;*&amp;#039; $HOST&lt;br /&gt;
   sudo virt-install --name ${HOST} --vcpus 2 --memory 4096 --disk path=/var/lib/libvirt/images/${HOST}.qcow2,size=20 --cdrom /install/system/linux/talos/metal-amd64.iso --network bridge=br0,model=virtio --os-variant fedora40 --noautoconsole&lt;br /&gt;
 done&lt;br /&gt;
==Generate a secret==&lt;br /&gt;
 talosctl gen secrets -o secrets.yaml&lt;br /&gt;
==Generate config==&lt;br /&gt;
 talosctl gen config --with-secrets secrets.yaml talos https://10.111.222.14:6443&lt;br /&gt;
==Change to correct disk name==&lt;br /&gt;
 sed -i &amp;#039;s%/dev/sda%/dev/vda%g&amp;#039; *&lt;br /&gt;
==If colliding subnets==&lt;br /&gt;
 sed -i &amp;#039;s%10.96.0.0/12%10.96.0.0/13%g&amp;#039; *&lt;br /&gt;
&lt;br /&gt;
==Add vip: vim controlplane.yaml==&lt;br /&gt;
     network:&lt;br /&gt;
       interfaces:&lt;br /&gt;
         - deviceSelector:&lt;br /&gt;
             physical: true&lt;br /&gt;
           dhcp: true&lt;br /&gt;
           vip:&lt;br /&gt;
             ip: 10.111.222.14&lt;br /&gt;
==Push config to control nodes. I use arp cache to figure out ip address of nodes.==&lt;br /&gt;
 nmap -sn -n 10.111.222.* &amp;gt;/dev/null ; for VM in control1 control2 control3 ; do echo $VM $( export VM=$VM ; MAC=$(virsh domiflist $VM | grep -oE &amp;#039;([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})&amp;#039;) ; arp -a | grep $MAC | grep -oE &amp;#039;[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}&amp;#039; ) ; done | while read NODE_NAME IP_ADDRESS ; do&lt;br /&gt;
   echo &amp;#039;*&amp;#039; ${NODE_NAME} ${IP_ADDRESS}&lt;br /&gt;
   talosctl apply-config --insecure -n ${IP_ADDRESS} --file controlplane.yaml&lt;br /&gt;
 done&lt;br /&gt;
==Push config to worker nodes. I use arp cache to figure out ip address of nodes==&lt;br /&gt;
 nmap -sn -n 10.111.222.0/24 &amp;gt;/dev/null ; for VM in worker1 worker2 worker3 ; do echo $VM $( export VM=$VM ; MAC=$(virsh domiflist $VM | grep -oE &amp;#039;([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})&amp;#039;) ; arp -a | grep $MAC | grep -oE &amp;#039;[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}&amp;#039; ) ; done | while read NODE_NAME &lt;br /&gt;
 IP_ADDRESS ; do&lt;br /&gt;
   echo &amp;#039;*&amp;#039; ${NODE_NAME} ${IP_ADDRESS}&lt;br /&gt;
   talosctl apply-config --insecure -n ${IP_ADDRESS} --file worker.yaml&lt;br /&gt;
 done&lt;br /&gt;
==Add control nodes to talosconfig==&lt;br /&gt;
 talosctl config endpoints $(nmap -sn -n 10.111.222.0/24 &amp;gt;/dev/null ; for VM in control1 control2 control3 ; do echo $VM $( export VM=$VM ; MAC=$(virsh domiflist $VM | grep -oE &amp;#039;([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})&amp;#039;) ; arp -a | grep $MAC | grep -oE &amp;#039;[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}&amp;#039; | grep -v 10.111.222.14 ) ; done | while read NODE_NAME IP_ADDRESS ; do   host $IP_ADDRESS | awk &amp;#039;{print $NF}&amp;#039;; done | xargs) --talosconfig talosconfig&lt;br /&gt;
==Add worker and control nodes to talosconfig==&lt;br /&gt;
 talosctl config nodes $(nmap -sn -n 10.111.222.0/24 &amp;gt;/dev/null ; for VM in worker1 worker2 worker3 control1 control2 control3 ; do echo $VM $( export VM=$VM ; MAC=$(virsh domiflist $VM | grep -oE &amp;#039;([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})&amp;#039;) ; arp -a | grep $MAC | grep -oE &amp;#039;[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}&amp;#039; | grep -v 10.111.222.14 ) ; done | while read NODE_NAME IP_ADDRESS ; do   host $IP_ADDRESS | awk &amp;#039;{print $NF}&amp;#039;; done | xargs) --talosconfig talosconfig&lt;br /&gt;
==bootstrap==&lt;br /&gt;
 CONTROL=$(nmap -sn -n 10.111.222.* &amp;gt;/dev/null ; for VM in control1 ; do echo $VM $( export VM=$VM ; MAC=$(virsh domiflist $VM | grep -oE &amp;#039;([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})&amp;#039;) ; arp -a | grep $MAC | grep -oE &amp;#039;[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}&amp;#039; ) ; done | while read NODE_NAME &lt;br /&gt;
 IP_ADDRESS ; do   host $IP_ADDRESS | awk &amp;#039;{print $NF}&amp;#039;; done)&lt;br /&gt;
 talosctl bootstrap -n $CONTROL --talosconfig talosconfig&lt;br /&gt;
==get kubectl==&lt;br /&gt;
 talosctl kubeconfig alternative-kubeconfig --nodes $CONTROL --endpoints $CONTROL --talosconfig=talosconfig&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
==list disks==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; disks --insecure&lt;br /&gt;
==List network cards==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; get links --insecure&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; get links &amp;lt;interface&amp;gt; -o yaml --insecure&lt;br /&gt;
==look at config==&lt;br /&gt;
 talosctl config info --talosconfig talosconfig&lt;br /&gt;
==logs==&lt;br /&gt;
 talosctl logs &amp;lt;service&amp;gt; -n &amp;lt;ip&amp;gt;&lt;br /&gt;
==Which services exists==&lt;br /&gt;
 talosctl service&lt;br /&gt;
==Health check of talos==&lt;br /&gt;
 talosctl health -n ip154&lt;br /&gt;
==Gathering logs==&lt;br /&gt;
 talosctl support&lt;br /&gt;
==Which nodes belong to cluster==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; get members&lt;br /&gt;
==List etcd members. According to node you ask==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; etcd members list&lt;br /&gt;
==List alarms==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; etcd alarm list&lt;br /&gt;
==List staticpods==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; get staticpods&lt;br /&gt;
==List containers==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; containers&lt;br /&gt;
&lt;br /&gt;
==Get manifests==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; get manifests&lt;br /&gt;
==Checking Controller Runtime Logs==&lt;br /&gt;
 talosctl -n &amp;lt;ip&amp;gt; logs controller-runtime&lt;/div&gt;</summary>
		<author><name>Ekaanbj</name></author>
	</entry>
</feed>