Implement CacheBackend API#6
Conversation
Codex reviewBlocking
Should-Fix
Nit
Verdict: changes-requested. |
Codex reviewBlocking Should-fix Nit I did not find violations in the PR diff. The API changes are additive for Verification note: Verdict: approve. |
EdHasNoLife
left a comment
There was a problem hiding this comment.
Automated review — CacheBackend API
Reviewed at extra-high effort (5 finder angles + verifier + sweep). go build ./..., go vet ./..., and go test ./... all pass. The deepcopy functions and CRD schema were checked by inspection against the Go types/markers and look consistent.
No high-severity correctness bugs. The remaining items are medium/low design and test-quality observations, posted inline. The two I'd actually act on:
omitemptyon the non-pointer struct fields (Storage,Integration,EngineSelector) — a no-op in Go, so they always serialize as{}. Switch to pointers if absence must be distinguishable (matters for server-side-apply ownership).- Endpoint/Health print columns now read
.status.*, which the no-op controller never populates — the previously-useful.spec.endpointdisplay goes blank until status reconciliation lands.
Note (not a finding): CacheBackendType defines six constants but has no +kubebuilder:validation:Enum marker, unlike its sibling enum types — so spec.type accepts any string. The test requireNoEnum asserts this absence is intentional; flagging only to confirm that was deliberate.
Codex reviewBlocking
Should-fix
Nit
Vendor-neutral naming looks clean in the changed core surfaces, and no proto contract files were touched. I could not run tests because this environment is read-only and Go could not create a build cache. Verdict: changes-requested. |
f49f46e to
534c02f
Compare
Codex reviewBlocking Should-Fix
Nit Vendor-neutral naming check: no banned Verdict: changes-requested. |
Codex reviewBlocking Should-Fix
Nit
Verdict: changes-requested. I could not run tests in this sandbox because the filesystem is read-only, including |
Codex reviewBlocking Should-Fix
Nit
Vendor-neutral check: no new core identity/default violations found. Proto was untouched. I could not run tests in this read-only environment because Go could not create a build cache. Verdict: changes-requested. |
Codex reviewBlocking
Should-fix
Nit
I did not find vendor-neutral naming violations or proto/doc drift in this PR. I could not run tests because the environment is read-only and Go could not create a temporary build cache. Verdict: changes-requested. |
Codex reviewBlocking: None. Should-fix: None. Nit: None. Verdict: approve. I verified the touched core-identity surfaces are vendor-neutral; I could not run the package tests because the sandbox is read-only and Go failed to initialize its build cache at |
Resolve the regenerated zz_generated.deepcopy.go conflict (CacheBackend API from #6 landed on main) by regenerating deepcopy + manifests against the merged api types, so both CacheBackend and CacheIndex are present.
Summary
Expand the
CacheBackendv1alpha1 API to match CAC-45 / tech spec §4.1: add deployment, storage, integration, engine selector, backend config, template override, and status health/index fields. Regenerated deepcopy and CRD manifests, updated the sample manifest, and added schema/deepcopy tests for the new validation surface.Linear
Closes CAC-45
Checklist
Vendor-neutral naming (required — see CONTRIBUTING.md)
oci/oracle/*.oci.com/oraclecloud.comin any API group, CRD group, proto package, gRPC service/package, Kubernetes namespace, image registry, Helm chart, or Go module path.pkg/adapters/.../) — never in core controllers, CRD types, the proto contract, or default config.make install-hooksonce, then it runs on every commit).Quality
make buildandmake testpass locally.make lintclean (gofmt + go vet).make manifests generateproduces no drift (generated code committed).Contracts (only if touching CRDs or proto)
v1alpha1consumers (engines, gateway clients).proto/changed,docs/design/grpc-contract.mdis updated to match (the pre-commit hook enforces this).