snapix/backend/k8s_utils.py

28 lines
927 B
Python

import subprocess
import json
import re
def get_namespaces():
output = subprocess.check_output(["kubectl", "get", "ns", "-o", "json"])
data = json.loads(output)
return [item["metadata"]["name"] for item in data["items"]]
def get_pvcs(namespace: str):
output = subprocess.check_output(["kubectl", "get", "pvc", "-n", namespace, "-o", "json"])
data = json.loads(output)
return [item["metadata"]["name"] for item in data["items"]]
def get_all_backup_pvcs():
output = subprocess.check_output(["kubectl", "get", "pvc", "-A", "-o", "json"])
data = json.loads(output)
backup_pvcs = []
for item in data["items"]:
name = item["metadata"]["name"]
namespace = item["metadata"]["namespace"]
if re.match(r"^snapix-bkp-temp-", name):
backup_pvcs.append({
"name": name,
"namespace": namespace
})
return backup_pvcs