Pros : clean, simple. Cons : no ingress out of the box. Needs a bit of work to get things going.
mkdir ~/Desktop/talos cd ~/Desktop/talos
export NODEIP=192.168.1.172
talosctl gen config harvester https://$NODEIP:6443 --with-docs=false --with-examples=false --kubernetes-version=v1.28.11 export TALOSCONFIG=./talosconfig
talosctl disks --insecure -n $NODEIP
sed -i "" -e "s#/dev/sda#/dev/vda#g" -e "s/cluster:/cluster:\n allowSchedulingOnControlPlanes: true/g" controlplane.yaml
talosctl apply-config -f controlplane.yaml -n $NODEIP --insecure sleep 45 talosctl bootstrap -n $NODEIP -e $NODEIP
talosctl config endpoint $NODEIP talosctl config node $NODEIP
talosctl kubeconfig . export KUBECONFIG=~/Desktop/talos/kubeconfig
kubectl apply -f https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.6.1/deploy/crds.yaml
kubectl create ns nginx-ingress
kubectl label ns nginx-ingress pod-security.kubernetes.io/audit=privileged pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/warn=privileged
helm upgrade -i nginx-ingress oci://ghcr.io/nginxinc/charts/nginx-ingress -n nginx-ingress --create-namespace --set controller.kind=daemonset --set controller.hostport.enbabled=true --set controller.service.type=NodePort --set controller.hostNetwork=true
helm upgrade -i cert-manager jetstack/cert-manager -n cert-manager --create-namespace --set crds.enabled=true
helm upgrade -i rancher rancher-latest/rancher -n cattle-system --create-namespace --set hostname=rancher.$NODEIP.nip.io --set bootstrapPassword=bootStrapAllTheThings --set replicas=1