preventing rebuild cluster to mess NET docker iptables
This commit is contained in:
parent
ca63bcf558
commit
f8b4efe436
|
|
@ -63,7 +63,7 @@ rebuild_cluster() {
|
||||||
}
|
}
|
||||||
|
|
||||||
nuke_for_rebuild() {
|
nuke_for_rebuild() {
|
||||||
LAB_NUKE_SKIP_CONFIRM=true nuke
|
LAB_NUKE_SKIP_CONFIRM=true LAB_NUKE_ALLOW_REMOTE_CLEANUP_FAILURES=true nuke
|
||||||
}
|
}
|
||||||
|
|
||||||
cluster_worker_targets() {
|
cluster_worker_targets() {
|
||||||
|
|
@ -455,6 +455,18 @@ start_cluster() {
|
||||||
echo "Kubernetes runtime start requested. Use 'kubectl get nodes -o wide' to watch readiness."
|
echo "Kubernetes runtime start requested. Use 'kubectl get nodes -o wide' to watch readiness."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nuke_remote_cleanup_failed() {
|
||||||
|
local target="$1"
|
||||||
|
|
||||||
|
if truthy "${LAB_NUKE_ALLOW_REMOTE_CLEANUP_FAILURES:-false}"; then
|
||||||
|
echo "Warning: remote cleanup failed for ${target}; continuing because rebuild will destroy and recreate generated worker VMs." >&2
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Remote cleanup failed for ${target}; not deleting OpenTofu state." >&2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
kubernetes_api_reachable() {
|
kubernetes_api_reachable() {
|
||||||
kubectl --kubeconfig "${KUBECONFIG_PATH}" get --raw=/readyz >/dev/null 2>&1
|
kubectl --kubeconfig "${KUBECONFIG_PATH}" get --raw=/readyz >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
@ -1818,8 +1830,7 @@ sudo systemctl reset-failed kubelet containerd 2>/dev/null || true
|
||||||
sudo systemctl start containerd 2>/dev/null || true
|
sudo systemctl start containerd 2>/dev/null || true
|
||||||
EOF
|
EOF
|
||||||
then
|
then
|
||||||
echo "Remote cleanup failed for ${target}; not deleting OpenTofu state." >&2
|
nuke_remote_cleanup_failed "${target}" || exit 1
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2946,6 +2946,18 @@ cleanup_iptables() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
restore_docker_networking_after_iptables_cleanup() {
|
||||||
|
if ! command -v docker >/dev/null 2>&1; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if ! systemctl is-active --quiet docker 2>/dev/null; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Restarting Docker to restore published-port iptables rules after Kubernetes cleanup..."
|
||||||
|
sudo systemctl restart docker
|
||||||
|
}
|
||||||
|
|
||||||
cleanup_calico_runtime_files() {
|
cleanup_calico_runtime_files() {
|
||||||
local path
|
local path
|
||||||
|
|
||||||
|
|
@ -3009,6 +3021,7 @@ cleanup_node() {
|
||||||
|
|
||||||
cleanup_iptables
|
cleanup_iptables
|
||||||
cleanup_calico_links
|
cleanup_calico_links
|
||||||
|
restore_docker_networking_after_iptables_cleanup
|
||||||
restore_node_dns
|
restore_node_dns
|
||||||
|
|
||||||
sudo mkdir -p /etc/containerd/certs.d
|
sudo mkdir -p /etc/containerd/certs.d
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,22 @@ test_cluster_worker_targets_include_pimox_and_manual_workers() {
|
||||||
assert_eq "cluster targets include generated Pimox workers" "jv@192.168.100.66,jv@192.168.100.67,jv@192.168.100.76,jv@192.168.100.99" "${targets}"
|
assert_eq "cluster targets include generated Pimox workers" "jv@192.168.100.66,jv@192.168.100.67,jv@192.168.100.76,jv@192.168.100.99" "${targets}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test_nuke_remote_cleanup_failure_blocks_state_delete_by_default() {
|
||||||
|
unset LAB_NUKE_ALLOW_REMOTE_CLEANUP_FAILURES
|
||||||
|
assert_command_failure_contains \
|
||||||
|
"nuke remote cleanup failure blocks state delete by default" \
|
||||||
|
"not deleting OpenTofu state" \
|
||||||
|
nuke_remote_cleanup_failed "jv@192.168.100.67"
|
||||||
|
}
|
||||||
|
|
||||||
|
test_nuke_remote_cleanup_failure_can_continue_for_rebuild() {
|
||||||
|
LAB_NUKE_ALLOW_REMOTE_CLEANUP_FAILURES=true
|
||||||
|
assert_command_success \
|
||||||
|
"nuke remote cleanup failure can continue for rebuild" \
|
||||||
|
nuke_remote_cleanup_failed "jv@192.168.100.67"
|
||||||
|
unset LAB_NUKE_ALLOW_REMOTE_CLEANUP_FAILURES
|
||||||
|
}
|
||||||
|
|
||||||
test_prepare_cluster_worker_var_file_merges_manual_and_pimox_workers() {
|
test_prepare_cluster_worker_var_file_merges_manual_and_pimox_workers() {
|
||||||
unset LAB_INCLUDE_RASPBERRY_WORKER
|
unset LAB_INCLUDE_RASPBERRY_WORKER
|
||||||
LAB_INCLUDE_MANUAL_WORKERS=true
|
LAB_INCLUDE_MANUAL_WORKERS=true
|
||||||
|
|
@ -403,6 +419,8 @@ test_pimox_worker_count_detects_generated_topology
|
||||||
test_configured_worker_count_cannot_hide_existing_workers
|
test_configured_worker_count_cannot_hide_existing_workers
|
||||||
test_configured_worker_count_can_expand_target_set
|
test_configured_worker_count_can_expand_target_set
|
||||||
test_cluster_worker_targets_include_pimox_and_manual_workers
|
test_cluster_worker_targets_include_pimox_and_manual_workers
|
||||||
|
test_nuke_remote_cleanup_failure_blocks_state_delete_by_default
|
||||||
|
test_nuke_remote_cleanup_failure_can_continue_for_rebuild
|
||||||
test_prepare_cluster_worker_var_file_merges_manual_and_pimox_workers
|
test_prepare_cluster_worker_var_file_merges_manual_and_pimox_workers
|
||||||
test_prepare_cluster_worker_var_file_excludes_manual_by_default
|
test_prepare_cluster_worker_var_file_excludes_manual_by_default
|
||||||
test_prepare_cluster_worker_var_file_can_include_raspberry_worker
|
test_prepare_cluster_worker_var_file_can_include_raspberry_worker
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue