35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import os
|
|
import sys
|
|
import paramiko
|
|
|
|
sys.stdout.reconfigure(encoding="utf-8")
|
|
pkey = paramiko.Ed25519Key.from_private_key_file(os.path.expanduser('~/.ssh/id_ed25519_snarfnet'))
|
|
|
|
clusters = [
|
|
("aerodrome (140.44.4.11)", "140.44.4.11"),
|
|
("spaceport (140.44.4.41)", "140.44.4.41"),
|
|
]
|
|
|
|
for name, ip in clusters:
|
|
print(f"\n==================================================")
|
|
print(f"STORAGE AUDIT ON {name}")
|
|
print(f"==================================================")
|
|
client = paramiko.SSHClient()
|
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
try:
|
|
client.connect(ip, username="root", pkey=pkey, timeout=10)
|
|
cmd = """
|
|
echo "=== StorageClasses ==="
|
|
kubectl get sc
|
|
echo "=== Terminating / Stuck PVCs ==="
|
|
kubectl get pvc -A | grep -iE 'terminating|failed|pending' || echo " None found"
|
|
echo "=== Default Namespace PVCs ==="
|
|
kubectl get pvc -n default || echo " None"
|
|
"""
|
|
stdin, stdout, stderr = client.exec_command(cmd)
|
|
print(stdout.read().decode('utf-8', errors='replace'))
|
|
client.close()
|
|
except Exception as e:
|
|
print(f"Error on {name}: {e}")
|
|
|