tailsk8s: Bare Metal Kubernetes with TailscalePronounced "Tail Skates"

This project walks through setting up a bare metal Kubernetes cluster that uses Tailscale for networking. For readers already familiar with both Kubernetes and Tailscale, you can go directly to Configure CNI Networking for Tailscale.
Over the many days of getting this off the ground, I leaned heavily on the work and writings of others. I could not have made nearly as much progress without example projects, blog posts and great documentation. Some that were particularly helpful:
kubeadm init/join and ExternalIP vs InternalIP from
Alasdair Lumsden$ make # Or `make help`
Makefile for the `tailsk8s` project
Usage:
make tailscale-advertise-linux-amd64 Build static `tailscale-advertise` binary for linux/amd64
make tailscale-authorize-linux-amd64 Build static `tailscale-authorize` binary for linux/amd64
make tailscale-authorize-windows-amd64 Build static `tailscale-authorize` binary for windows/amd64
make tailscale-withdraw-linux-amd64 Build static `tailscale-withdraw` binary for linux/amd64
make release Build all static binaries
$ claude mcp add tailsk8s \
-- python -m otcore.mcp_server <graph>