26 lines
1.1 KiB
TypeScript
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,
|
|
}`;
|
|
}
|