Skip to content

Complete milestone 3b#121

Open
jlebon wants to merge 3 commits into
bootc-dev:mainfrom
jlebon:pr/milestone-3b
Open

Complete milestone 3b#121
jlebon wants to merge 3 commits into
bootc-dev:mainfrom
jlebon:pr/milestone-3b

Conversation

@jlebon

@jlebon jlebon commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

As usual, see individual commits. But the main commit here is drain cancellation, and adding a test that this works as expected.

I actually thought on paper about some other drain-related error-handling but it turns out our state machine is quite good already and still converges anyway. There are some things there that are somewhat tricky to balance. E.g. let's say we've already drained a node, and then the target image changes... what should we do? Currently the code just leaves the node cordoned while it stages the new commit and then eventually reboots into the new target image. That might not make sense if your connection is extremely throttled because meanwhile you're not servicing pods. Whereas probably a better approach in that case would be to uncordon on the old node, and stage in the background as usual. But anyway, at least we converge in the end. Handling this kind of "backing out" is surprisingly tricky and it didn't feel worth paying for that complexity just yet until we really hit it in the wild.

Convert all gomega-based tests to comply with the project conventions
documented in REVIEW_GOLANG.md added in
bootc-dev/infra#231.

Assisted-by: Pi (Claude Opus 4.6)
Signed-off-by: Jonathan Lebon <jonathan@jlebon.com>
@jlebon
jlebon force-pushed the pr/milestone-3b branch from 906f2d2 to 1f1113a Compare July 24, 2026 01:55
jlebon added 2 commits July 23, 2026 22:36
When a node leaves the pool while a drain is in progress,
removeBootcNode now cancels the drain goroutine and removes it from the
drains map before proceeding with cleanup (uncordon, delete BootcNode,
remove managed label).

While we're here, store the drain goroutine's context in drainStatus.
collectDrainResults can then use it to know if the drain was cancelled
or truly errored out.

Assisted-by: Pi (Claude Opus 4.6)
Signed-off-by: Jonathan Lebon <jonathan@jlebon.com>
Assisted-by: Pi (Claude Opus 4.6)
Signed-off-by: Jonathan Lebon <jonathan@jlebon.com>
@jlebon
jlebon force-pushed the pr/milestone-3b branch from 1f1113a to 15ed5c8 Compare July 24, 2026 02:36
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