diff --git a/nixos/kubeadm/modules/k8s-common.nix b/nixos/kubeadm/modules/k8s-common.nix index 449ee98..97e2aed 100644 --- a/nixos/kubeadm/modules/k8s-common.nix +++ b/nixos/kubeadm/modules/k8s-common.nix @@ -60,6 +60,12 @@ in }; nix.settings.trusted-users = [ "root" "micqdf" ]; + nix.gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 3d"; + }; + nix.settings.auto-optimise-store = true; environment.variables = { KUBECONFIG = "/etc/kubernetes/admin.conf"; diff --git a/nixos/kubeadm/scripts/rebuild-and-bootstrap.sh b/nixos/kubeadm/scripts/rebuild-and-bootstrap.sh index 55dd510..8d35378 100755 --- a/nixos/kubeadm/scripts/rebuild-and-bootstrap.sh +++ b/nixos/kubeadm/scripts/rebuild-and-bootstrap.sh @@ -141,6 +141,14 @@ prepare_remote_nix_trust() { remote "$node_ip" "sudo systemctl restart nix-daemon 2>/dev/null || true" } +prepare_remote_space() { + local node_ip="$1" + echo "==> Reclaiming disk space on $node_ip" + remote "$node_ip" "sudo nix-collect-garbage -d || true" + remote "$node_ip" "sudo nix store gc || true" + remote "$node_ip" "sudo rm -rf /tmp/nix* /tmp/nixos-rebuild* || true" +} + populate_nodes prepare_known_hosts export NIX_SSHOPTS="$SSH_OPTS" @@ -155,11 +163,13 @@ detect_ssh_user "$PRIMARY_CP_IP" for node in "${CP_NAMES[@]}"; do prepare_remote_nix_trust "${NODE_IPS[$node]}" + prepare_remote_space "${NODE_IPS[$node]}" rebuild_node "$node" "${NODE_IPS[$node]}" done for node in "${WK_NAMES[@]}"; do prepare_remote_nix_trust "${NODE_IPS[$node]}" + prepare_remote_space "${NODE_IPS[$node]}" rebuild_node "$node" "${NODE_IPS[$node]}" done