review: whole-repo round — owning-node index, cache-fed warm pool, scoped informers, indexed queue - #11
Merged
Merged
Conversation
…oped informers, indexed queue, comment budget Repeat Get/GetByClaimID read one node's inventory through a generation-bounded owning-node index (200x2000 lookup 3.03 ms/36 MB → 39 µs/217 KB); NodeCapacity answers the claim pick and the warm-pool driver without decoding entries; the warm-pool driver takes the apiserver's cache-fed inventory source instead of reading NodeInventory off the kube-apiserver; the operator's Pod, Service and PVC informers are label-scoped; the claim queue moves to internal/queue on an indexed list with O(1) push/remove and a single-pass pickSmart. Over-cap sandboxd replies are reported, snapshot fan-outs are bounded, Create and the pool driver share one net-axis resolver, templateID is recoverable and envdAccessToken is no longer emitted. Dead exports cut (NodeInventoryPublisher, ClaimSnapshot, Promote, Client.Sandbox, SandboxPodTemplateHashLabel), grpc at v1.83.1, docs corrected and docs/api.md regenerated by the new api-docs target.
…wner is an error; one-pass node spread The claim watch compared only the Ready boolean, so a reason or message change on a still-false condition never re-reconciled the owning claim; the predicate now compares the whole condition like Finished. A DELETE whose sandbox resolved to no owning node answered 204 without releasing anything and now answers 500. pickSmart's spread pass reads the queue once. Test files carry no comments (AST strip, directives kept), the inventory example names the template field, and make help lists api-docs.
…commit carries no narration A status-only update that moved observedGeneration was dropped by the field-wise compare; the predicate now compares the complete condition.
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.
Whole-repo quality round for sandbox-operator.
Hot paths (same-machine Go benchmarks, before → after):
make api-docstarget.Held: the pkg/scale subpackage split (27 contract identifiers still live in the impl file and vk-sandbox imports four of them — lift the contract first); the two template Gets in syncAdoptedSandboxMetadata.
Gates: GOWORK=off make lint (0 issues on linux and darwin), make fmt-check, asl ./... on both GOOS, make vet-tagged, go test -race -count=1 ./... (16 packages ok). vk-sandbox builds against this tree in workspace mode.