36 lines
1.3 KiB
Python
36 lines
1.3 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())
|
|
|
|
master_ip = "140.44.4.41"
|
|
print(f"Connecting to Spaceport Master: {master_ip}...")
|
|
client.connect(master_ip, username="root", key_filename=key_path, timeout=15)
|
|
|
|
# A. Clean up completed pods across namespaces on Spaceport
|
|
print("\n>>> Pruning completed pods on Spaceport...")
|
|
stdin, stdout, stderr = client.exec_command("KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl delete pod -A --field-selector=status.phase=Succeeded")
|
|
print(stdout.read().decode('utf-8'))
|
|
print(stderr.read().decode('utf-8'))
|
|
|
|
# B. Save final etcd snapshot on Spaceport
|
|
snap_space = f"final-post-upgrade-spaceport-{int(time.time())}"
|
|
print(f"\n>>> Saving final etcd snapshot: {snap_space}...")
|
|
stdin, stdout, stderr = client.exec_command(f"k3s etcd-snapshot save --name {snap_space}")
|
|
print(stdout.read().decode('utf-8'))
|
|
print(stderr.read().decode('utf-8'))
|
|
|
|
# C. List snapshots
|
|
print("\n>>> Recent etcd snapshots on Spaceport:")
|
|
stdin, stdout, stderr = client.exec_command("k3s etcd-snapshot list | tail -n 5")
|
|
print(stdout.read().decode('utf-8'))
|
|
|
|
client.close()
|
|
print("\nSpaceport cleanup and snapshot completed successfully!")
|
|
|