feat(operator): pod handoff - #362
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f5bd207. Configure here.
| if type == "MODIFIED" and meta.deletion_timestamp is None: | ||
| health = pod_health(_deserialize_pod(body), datetime.now(timezone.utc)) | ||
| if not health.delete: | ||
| if not (health.delete or health.ready): |
There was a problem hiding this comment.
Missing control env startup check
Medium Severity
main still only validates WORKLOAD_NAMESPACE, but reconcile now also requires CONTROL_HOST and CONTROL_PORT. If those are missing, the process stays up and every reconcile raises, then retries every 5 seconds instead of failing fast at startup.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit f5bd207. Configure here.
| "httpGet": {"path": "/readyz", "port": control_port}, | ||
| "periodSeconds": 5, | ||
| "failureThreshold": 3, | ||
| } |
There was a problem hiding this comment.
Unmanaged readiness probe merge risk
Low Severity
When control_port is set, build_container always injects a managed readinessProbe, but validate only rejects a conflicting template livenessProbe. A template readinessProbe is deep-merged with the managed probe and can produce an invalid dual-handler probe, so Pods may never become Ready and handoff stalls.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit f5bd207. Configure here.


Adds blue-green Pod handoff which waits for replacement Pods to be ready before stopping old. Also officially integrates static membership with the operator.