Files
k3s-health-dashboard/app/routers/pods.py
T
2026-04-28 13:11:31 -04:00

32 lines
951 B
Python

from fastapi import APIRouter, Query
from k8s_client import get_core_client
router = APIRouter(prefix="/pods", tags=["pods"])
@router.get("/")
def list_pods(namespace: str = Query("default")):
v1 = get_core_client()
pods = v1.list_namespaced_pod(namespace=namespace).items
return [
{
"name": p.metadata.name,
"namespace": p.metadata.namespace,
"phase": p.status.phase, # Pending/Running/Succeeded/Failed
"ready": _is_ready(p),
"restarts": _restarts(p),
"node": p.spec.node_name,
}
for p in pods
]
def _is_ready(pod) -> bool :
if not pod.status.conditions:
return False
for any(c.type == "Ready" and c.status == "True" for c in pod.status.conditions)
def _restarts(pod) -> int:
if not pod.status.container_statuses:
return 0
return sum(c.restart_count for c in pod.status.container_statuses)