chore: update claude.md#61
Conversation
SummaryThe following content is AI-generated and provides a summary of the pull request: Update CLAUDE.md to Reflect Single-Controller ArchitectureDocumentation📝 Updated Changes
PR Bot InformationVersion:
|
There was a problem hiding this comment.
The documentation changes are accurate and well-structured overall. The PR successfully consolidates the two-controller architecture into a single-controller description, updates the reconcile flow, and adds the new make test-rbac command. The one minor inaccuracy flagged is the description of what the gpuNodeChangedPredicate triggers on — the predicate fires on GPU-membership transitions rather than raw instance-type label changes as the text implies.
PR Bot Information
Version: 1.21.0
- Agent Instructions:
- Event Trigger:
pull_request.opened - Correlation ID:
3f2f2b27-9979-4561-8b1a-b391fb85a83c - LLM:
anthropic--claude-4.6-sonnet - File Content Strategy: Full file content
| - Recomputes `Ready` summary from all four managed conditions after every sync | ||
| - Always returns `RequeueAfter: 30s` as a polling safety net | ||
| Watches: | ||
| - `Node` objects via `gpuNodeChangedPredicate` — fires on GPU node create/delete and on OS image or instance-type label changes, suppressing kubelet heartbeats. Enqueues all `Gpu` CRs so preflight errors self-heal when nodes are replaced. |
There was a problem hiding this comment.
Naming: gpuNodeChangedPredicate description overstates what triggers on label changes
The document says the predicate fires on "OS image or instance-type label changes". Looking at the actual UpdateFunc in gpuNodeChangedPredicate(), it fires when:
- A node transitions in or out of GPU membership (determined by
IsGPUNode, which checks the instance-type label) — not on arbitrary instance-type label changes. OSImagechanges on a GPU node.
A direct instance-type label change that doesn't alter GPU-node membership (e.g., changing from one GPU prefix to another) would not be caught by wasGPU != isGPU. The current wording implies a broader trigger than what's implemented.
Consider rephrasing to match the actual predicate behavior:
- `Node` objects via `gpuNodeChangedPredicate` — fires on GPU node create/delete, transitions into/out of GPU membership (instance-type label), and OS image changes on GPU nodes; suppresses kubelet heartbeats. Enqueues all `Gpu` CRs so preflight errors self-heal when nodes are replaced.
Please provide feedback on the review comment by checking the appropriate box:
- 🌟 Awesome comment, a human might have missed that.
- ✅ Helpful comment
- 🤷 Neutral
- ❌ This comment is not helpful
Changes proposed in this pull request: