INNER CODE UNIT · Python

deadline

theonedev/onedev · server-product/helm/files/stop-servers.py:58

    deadline = time.monotonic() + timeout
    deleting = set()
    while True:
        existing = pods()
        current = api("GET", base)
        if current["spec"]["replicas"] != 0:
            raise RuntimeError("StatefulSet was scaled up during upgrade; refusing to proceed")
        if (not existing and current.get("status", {}).get("observedGeneration", 0)
                >= current["metadata"]["generation"]):
            print("All OneDev pods have stopped; Helm can now apply the new image", flush=True)
            return
        # Older StatefulSet controllers can wait for an unready pod during scale-down.
        # Delete only this StatefulSet's pods, respecting their normal grace period.
        for pod in existing:
            metadata = pod["metadata"]
            if metadata["uid"] not in deleting and not metadata.get("deletionTimestamp"):
                try:
                    api("DELETE", pods_path + "/" + metadata["name"],

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…