Skip to content

chore: bump controller image to e99c04c (replace-pod for chain-upgrade rollouts)#217

Merged
bdchatham merged 1 commit intomainfrom
chore/bump-controller-image-e99c04c
May 9, 2026
Merged

chore: bump controller image to e99c04c (replace-pod for chain-upgrade rollouts)#217
bdchatham merged 1 commit intomainfrom
chore/bump-controller-image-e99c04c

Conversation

@bdchatham
Copy link
Copy Markdown
Collaborator

@bdchatham bdchatham commented May 9, 2026

Summary

  • Pulls in feat(planner): add replace-pod task to NodeUpdate plan (closes #211) #216 — NodeUpdate plans now include a replace-pod task that proactively deletes pods at the old StatefulSet revision.
  • StatefulSets generated by this controller now use OnDelete update strategy (pod lifecycle is the SeiNode controller's responsibility, not the StatefulSet controller's).
  • Unblocks the chain-upgrade rollout pattern where seid is intentionally unready (halted at upgrade height) and native RollingUpdate refuses to disturb the unready pod.

Closes #211 once this lands and rolls out.

Rollback semantics

OnDelete is set in the StatefulSet spec (internal/noderesource/), so reverting the controller container alone won't flip the strategy back — existing StatefulSets stay on OnDelete. To fully revert, also delete and recreate the affected SeiNode resources, or hand-patch the StatefulSet spec.

Test plan

  • Confirm Flux reconciles the new image on dev / harbor / prod
  • Watch the next NodeUpdate plan (image bump on a Running node) — expect plan steps apply-statefulsetapply-servicereplace-podobserve-imagemark-ready
  • Verify pod at old controller-revision-hash is deleted by replace-pod and StatefulSet recreates it at the new revision
  • Confirm steady-state behavior: no plan built when spec.image == status.currentImage

Note

Low Risk
Low risk manifest-only change, but it will roll out a new controller binary; any behavior change depends entirely on the new image contents.

Overview
Updates the controller-manager Deployment (config/manager/manager.yaml) to use a new sei-k8s-controller image tag (069a866…e99c04c…).

Reviewed by Cursor Bugbot for commit d4d1e52. Bugbot is set up for automated code reviews on this repo. Configure here.

…e rollouts)

Pulls in #216 — NodeUpdate plans now include a `replace-pod` task that
proactively deletes pods at the old StatefulSet revision. StatefulSets
generated by this controller now use OnDelete update strategy, so pod
lifecycle is the SeiNode controller's responsibility (replace-pod). This
unblocks the chain-upgrade rollout pattern where seid is intentionally
unready (halted at upgrade height) and native RollingUpdate refuses to
disturb it.

Closes #211.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bdchatham bdchatham merged commit 7f478f0 into main May 9, 2026
3 checks passed
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.

NodeUpdate plan stalls forever when existing pod is unready (chain-upgrade halt)

1 participant