feat: add spec.hibernatePolicy, Waking phase, hibernated-on-node annotation#7
Open
tonicmuroq wants to merge 1 commit into
Open
feat: add spec.hibernatePolicy, Waking phase, hibernated-on-node annotation#7tonicmuroq wants to merge 1 commit into
tonicmuroq wants to merge 1 commit into
Conversation
…tation hibernatePolicy selects the scheduling-seat semantics of a suspended CocoonSet: retain (default, today's behavior) keeps the placeholder pod bound to its node; release lets the operator delete the pods once the hibernate snapshot is registry-verified, freeing the seat — wake then reschedules anywhere in the pool. CEL validation restricts release to main-only sets (replicas=0, no toolboxes) until sub-agent/toolbox restore intent is extended. New Waking phase marks a released-seat restore in flight; the hibernated-on-node annotation carries the wake placement hint. Design: cocoon-specs design/slot-release-hibernation.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
API surface for slot-release hibernation (design: https://github.com/cocoonstack/cocoon-specs/pull/5):
CocoonSetSpec.hibernatePolicy: retain | release, CRD defaultretain— every existing CR keeps today's semantics.retainkeeps the hibernated placeholder pod (and its scheduling seat) on the node;releaselets the operator delete the pods once the:hibernatesnapshot is registry-verified, freeing the seat.releaserequiresagent.replicas=0and no toolboxes (sub-agent/toolbox restore intent is a follow-up).Waking— the durable marker that a released-seat restore is in flight (same roleMigratingplays for migration).cocoonset.cocoonstack.io/hibernated-on-node— written on the CocoonSet before pod deletion; wake uses it as a preferred-affinity hint so a still-free seat restores warm from the node-local snapshot.The
HibernatePolicytype mirrors the existingSnapshotPolicypattern (lowercase enum,IsValid/Default).Consumers
Operator implementation: https://github.com/cocoonstack/cocoon-operator (feat/hibernate-slot-policy, PR linked in comments). vk-cocoon needs no change — the CreatePod
restore-from-hibernatepath already does cross-node restore.