Files
pikasTech-unidesk/scripts/src/hwlab-node-control-plane-argo-runtime.ts
T
2026-07-22 17:35:07 +02:00

26 lines
1.1 KiB
TypeScript

export function argoReconciliationStatusPython(): string {
return String.raw`def reconciliation_status(cfg):
if not isinstance(cfg, dict):
return {"enabled": False, "ready": True, "valuesPrinted": False}
config_map=run(["kubectl", "-n", ns, "get", "configmap", str(cfg.get("configMapName") or ""), "-o", "json"])
config={}
if config_map.returncode == 0:
try:
config=json.loads(config_map.stdout or "{}")
except Exception:
config={}
data=config.get("data") or {}
timeout_matches=str(data.get("timeout.reconciliation") or "") == f'{int(cfg.get("timeoutSeconds") or 0)}s'
jitter_matches=str(data.get("timeout.reconciliation.jitter") or "") == f'{int(cfg.get("jitterSeconds") or 0)}s'
return {
"enabled": True,
"ready": config_map.returncode == 0 and timeout_matches and jitter_matches,
"configMapName": cfg.get("configMapName"),
"timeoutSeconds": cfg.get("timeoutSeconds"),
"jitterSeconds": cfg.get("jitterSeconds"),
"timeoutMatches": timeout_matches,
"jitterMatches": jitter_matches,
"valuesPrinted": False,
}`;
}