Fix Raspberry worker rebuild rejoin

This commit is contained in:
juvdiaz 2026-06-04 22:15:15 -06:00
parent 5136a74700
commit 4059334602
4 changed files with 16 additions and 0 deletions

View File

@ -52,6 +52,7 @@ install_containerd_runtime() {
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo rm -f /etc/apt/sources.list.d/docker.list
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<DOCKER_SOURCES
Types: deb
URIs: https://download.docker.com/linux/debian
@ -393,6 +394,7 @@ resource "null_resource" "kubeadm_worker" {
registry_config_version = "8"
containerd_runtime = "docker-containerd-io"
cni_plugins_version = "2"
force_rejoin = tostring(var.force_worker_rejoin)
node_dns_servers = join(" ", var.node_dns_servers)
persistent_volume_dirs = join(",", var.persistent_volume_dirs)
tailscale_nodeport_version = "3"
@ -439,6 +441,7 @@ install_containerd_runtime() {
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo rm -f /etc/apt/sources.list.d/docker.list
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<DOCKER_SOURCES
Types: deb
URIs: https://download.docker.com/linux/debian
@ -828,6 +831,12 @@ for path in $pv_dirs; do
sudo chmod 0775 "$path"
done
if [ "${self.triggers.force_rejoin}" = "true" ]; then
sudo kubeadm reset --force || true
sudo systemctl stop kubelet 2>/dev/null || true
sudo rm -rf /etc/kubernetes/ /var/lib/kubelet/ /var/lib/cni/ /etc/cni/net.d
fi
if [ -f /etc/kubernetes/kubelet.conf ] && ! timeout 5 bash -c 'exec 3<>/dev/tcp/127.0.0.1/10248; printf "GET /healthz HTTP/1.0\r\n\r\n" >&3; grep -q ok <&3' >/dev/null 2>&1; then
sudo kubeadm reset --force || true
sudo systemctl stop kubelet 2>/dev/null || true

View File

@ -69,6 +69,11 @@ variable "worker_node_labels" {
default = {}
}
variable "force_worker_rejoin" {
type = bool
default = false
}
variable "tailscale_nodeport_access" {
type = object({
enabled = bool

View File

@ -107,6 +107,7 @@ install_containerd_runtime() {
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
rm -f /etc/apt/sources.list.d/docker.list
cat >/etc/apt/sources.list.d/docker.sources <<DOCKER_SOURCES
Types: deb
URIs: https://download.docker.com/linux/debian

1
lab.sh
View File

@ -3074,6 +3074,7 @@ rebuild_cluster() {
export LAB_PIMOX_TEMPLATE_REPLACE_EXISTING="${LAB_PIMOX_TEMPLATE_REPLACE_EXISTING:-true}"
export LAB_PIMOX_WORKER_COUNT="${LAB_PIMOX_WORKER_COUNT:-2}"
export LAB_PIMOX_WORKER_REPLACE_EXISTING="${LAB_PIMOX_WORKER_REPLACE_EXISTING:-true}"
export TF_VAR_force_worker_rejoin="${TF_VAR_force_worker_rejoin:-true}"
echo "Rebuilding the Kubernetes cluster without touching external Raspberry Pi Gitea..."