Repository navigation
Show the next operator where to resume an installation - #2905
freeqaz-openai wants to merge 36 commits into
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. What this changesAdds read-only installation doctor and plan commands, operator guidance, and Kubernetes integration coverage. Example: An operator resumes release oce.prod with its originally recorded Job UID.
Review scores
ProductKind: Feature · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep open: this PR provides useful installation handoff guidance absent from current main, with no actionable introduced defect found. Priority: P2 Before mergeNone. FindingsNone. Agent review detailsHow this fits togetherThe OCC CLI reads one Helm initialization Job through kubectl using the operator's explicit Kubernetes target and prints bounded status evidence and handoff instructions. flowchart LR
Operator --> CLI
CLI --> Kubectl
Kubectl --> KubernetesAPI
KubernetesAPI --> RetainedJob
RetainedJob --> Evidence
Evidence --> HandoffPlan
Technical reviewBest possible solution: Land the bounded read-only handoff through the existing CLI while preserving uncertainty about database effects, API attempts, and runtime readiness. Do we have a high-confidence way to reproduce the issue? This is a new capability; source inspection confirms current main lacks these commands, and the retained integration exercises their Kubernetes boundary. Is this the best way to solve the issue? The existing CLI is an appropriate owner, and explicit target selection, UID correlation, and conservative status interpretation provide a focused solution. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against b10157ca98de. Provenance checked
TestingProof path: shipped entry point. SecurityNone. EvidenceWhat I checked:
Likely related people:
LabelsLabel changes: No label changes. Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (8 earlier review cycles)
Reviewed October 19, 2026, 6:03 AM ET / 10:03 UTC (Revision 9). |
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
An installer loses a Helm response during installation. The next operator needs to decide whether to inspect the original attempt or recover its record before another write.
occ installation doctorreports the retained initialization Job;occ installation planorders the next checks without changing the installation.On a first install, record the persisted Job UID only when no Job predated the attempt and no concurrent install or upgrade could replace it. Given that original UID, a different UID means the current Job cannot establish the original outcome: recover the original record, even if the replacement's release label has changed. A matching UID identifies the Job; it does not prove completion, Helm release success, or Deployment rollout. Without the original UID, the commands can describe the current Job but cannot link it to the earlier attempt. A native sidecar or uncertain read leaves initialization unknown. Reconcile an uncertain write before another write; do not replay it.
Each Job read uses one
kubectlinvocation to resolve the target and credentials together, including through a path-selecting gateway. The reader needs named-Job access, not Job or Pod list permission. This observational handoff does not fix Helm write races.The new TypeScript real-k3d test exercises a replacement with a named-only reader. CI wiring discovers and type-checks TypeScript tests, supplies Go to the k3d lane, and prepares the resources this test needs. At this head, the replacement regression failed against the previous source and passed with the change; the named-reader case also passed against a disposable real cluster.