Files
SnarfCode/scripts/check_harvester_capacity.py

26 lines
887 B
Python

import paramiko, json
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect('140.44.4.90', username='rancher', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
cmd = "echo Katzir476! | sudo -S sh -c 'export KUBECONFIG=/etc/rancher/rke2/rke2.yaml; PATH=$PATH:/var/lib/rancher/rke2/bin; kubectl get nodes -o json'"
stdin, stdout, stderr = c.exec_command(cmd)
out = stdout.read().decode()
data = json.loads(out)
total_cpu = 0
total_mem_kb = 0
for n in data['items']:
cpu = int(n['status']['capacity']['cpu'])
mem_str = n['status']['capacity']['memory']
if mem_str.endswith('Ki'):
mem_kb = int(mem_str[:-2])
total_cpu += cpu
total_mem_kb += mem_kb
ram_gib = total_mem_kb / (1024 * 1024)
print(f"Spacedock Harvester: nodes = {len(data['items'])}, cpu = {total_cpu}, ram = {ram_gib:.1f} GiB")
c.close()