76 lines
2.7 KiB
Python
76 lines
2.7 KiB
Python
import paramiko
|
|
import sys
|
|
import time
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
|
|
key_path = r"C:\Users\Snarf\.ssh\id_ed25519_snarfnet"
|
|
client = paramiko.SSHClient()
|
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
|
|
def run_remote(ip, cmd):
|
|
print(f"\n[{ip}] >>> Running: {cmd}")
|
|
client.connect(ip, username="root", key_filename=key_path, timeout=15)
|
|
stdin, stdout, stderr = client.exec_command(cmd)
|
|
out = stdout.read().decode('utf-8')
|
|
err = stderr.read().decode('utf-8')
|
|
client.close()
|
|
if out:
|
|
print(out.strip())
|
|
if err:
|
|
print(f"STDERR: {err.strip()}")
|
|
return out, err
|
|
|
|
print("==================================================")
|
|
print("1. Cleaning up Aerodrome (140.44.4.11)...")
|
|
print("==================================================")
|
|
|
|
# A. Clean up completed/failed helm-operation pods in cattle-system
|
|
cleanup_pods_cmd = (
|
|
"KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl -n cattle-system delete pod "
|
|
"--field-selector=status.phase=Succeeded"
|
|
)
|
|
run_remote("140.44.4.11", cleanup_pods_cmd)
|
|
|
|
cleanup_failed_pods_cmd = (
|
|
"KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl -n cattle-system delete pod "
|
|
"--field-selector=status.phase=Failed"
|
|
)
|
|
run_remote("140.44.4.11", cleanup_failed_pods_cmd)
|
|
|
|
# B. Clean up temporary files on Aerodrome
|
|
cleanup_files_cmd = "rm -rf /tmp/rancher-hop /tmp/rancher-test /tmp/rancher-2* /tmp/rancher_versions.txt"
|
|
run_remote("140.44.4.11", cleanup_files_cmd)
|
|
|
|
# C. Save final etcd snapshot on Aerodrome
|
|
snap_aero = f"final-post-upgrade-aerodrome-{int(time.time())}"
|
|
run_remote("140.44.4.11", f"k3s etcd-snapshot save --name {snap_aero}")
|
|
|
|
print("\n==================================================")
|
|
print("2. Cleaning up Spaceport (140.44.4.51)...")
|
|
print("==================================================")
|
|
|
|
# A. Clean up completed pods across namespaces on Spaceport
|
|
cleanup_spaceport_pods = (
|
|
"KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl delete pod -A "
|
|
"--field-selector=status.phase=Succeeded"
|
|
)
|
|
run_remote("140.44.4.51", cleanup_spaceport_pods)
|
|
|
|
# B. Save final etcd snapshot on Spaceport
|
|
snap_space = f"final-post-upgrade-spaceport-{int(time.time())}"
|
|
run_remote("140.44.4.51", f"k3s etcd-snapshot save --name {snap_space}")
|
|
|
|
print("\n==================================================")
|
|
print("3. Verification...")
|
|
print("==================================================")
|
|
|
|
run_remote("140.44.4.11", "KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl -n cattle-system get pods")
|
|
run_remote("140.44.4.11", "k3s etcd-snapshot list | tail -n 5")
|
|
run_remote("140.44.4.51", "k3s etcd-snapshot list | tail -n 5")
|
|
|
|
print("\n==================================================")
|
|
print("Post-upgrade cleanup completed successfully!")
|
|
print("==================================================")
|
|
|