Skip to content

feat(operator): pod handoff - #362

Open
bmcquilkin-sentry wants to merge 1 commit into
bmcquilkin/operator/membershipfrom
bmcquilkin/operator/handoff
Open

feat(operator): pod handoff#362
bmcquilkin-sentry wants to merge 1 commit into
bmcquilkin/operator/membershipfrom
bmcquilkin/operator/handoff

Conversation

@bmcquilkin-sentry

Copy link
Copy Markdown
Contributor

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

@bmcquilkin-sentry
bmcquilkin-sentry requested a review from a team as a code owner July 31, 2026 22:00

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ 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):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f5bd207. Configure here.

"httpGet": {"path": "/readyz", "port": control_port},
"periodSeconds": 5,
"failureThreshold": 3,
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f5bd207. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant