import paramiko import sys import yaml 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()) client.connect("140.44.4.11", username="root", key_filename=key_path, timeout=10) stdin, stdout, stderr = client.exec_command("KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl get clusters.management.cattle.io -o yaml") data = yaml.safe_load(stdout.read().decode('utf-8')) client.close() for item in data.get('items', []): name = item.get('metadata', {}).get('name') disp = item.get('spec', {}).get('displayName') print(f"\n==========================================") print(f"Cluster: {disp} ({name})") print(f"==========================================") conditions = item.get('status', {}).get('conditions', []) for c in conditions: if c.get('status') != 'True' or c.get('type') in ['Ready', 'Connected']: print(f" [{c.get('type')}]: status={c.get('status')} reason={c.get('reason')} msg={c.get('message')}")