Review: Restore Ollama Helm release to ops module (embedding pipeline broken)

review-1432-2026-06-14-r2 Review

review ready

Verdict: APPROVED

Re-review after refinements. All five actionable findings from review-1432-2026-06-14 have been addressed. One deferred finding (missing arch-infra note) remains non-blocking. The issue is agent-ready.

Previous Findings — Disposition

  • [SCOPE] Cross-repo note — FIXED. Issue body now has a prominent "Note:" under the Repo section: "This issue is filed on pal-e-services for historical reasons (original triage). All file targets are in pal-e-platform. The agent must clone pal-e-platform, not pal-e-services."
  • [BODY] outputs.tf promoted — FIXED. File Targets now explicitly lists terraform/modules/ops/outputs.tf as a definite restore target with exact output name (ollama_namespace). Verified: pre-removal file at 7872dac~1 contained exactly that output.
  • [BODY] Backfill command specified — FIXED. AC 8 added: kubectl exec deployment/pal-e-docs-embedding-worker -n pal-e-docs -- python -m pal_e_docs.embedding_worker --backfill.
  • [LABEL] Type corrected — FIXED. Issue ### Type is now "Feature". Board labels show type:feature.
  • [LABEL] Titles aligned — FIXED. Board item and Forgejo issue both read "Restore Ollama Helm release to ops module (embedding pipeline broken)".
  • [SCOPE] Missing arch-infra note — DEFERRED. No arch-infra note exists. Acknowledged as non-blocking by the caller. Does not prevent agent execution.

Template Completeness

  • [x] Type — Feature
  • [x] Lineage — standalone, references removal commit 7872dac
  • [x] Repo — ldraney/pal-e-platform (terraform/modules/ops/main.tf), cross-repo note present
  • [x] User Story — platform operator, Ollama restored, embedding worker functional
  • [x] Context — thorough history of deploy, removal, and current state
  • [x] File Targets — 2 modify targets (main.tf, outputs.tf) + don't-touch list
  • [x] Feature Flag — none (correct for infra work)
  • [x] Acceptance Criteria — 8 items, all verifiable
  • [x] Test Expectations — 3 items with run command
  • [x] Constraints — 6 items, specific and actionable
  • [x] Checklist — present
  • [x] Related — references project, commits, related issue

Traceability

  • [x] story:superuser-query label — "I can query the knowledge base by meaning (semantic search)"
  • [x] story note verified — found in project-pal-e-docs user-stories section, row 1
  • [x] arch:infra label — infrastructure component
  • [ ] arch note DEFERRED — no arch-infra note exists. Non-blocking per caller.
  • [x] Forgejo issue — ldraney/pal-e-services#114, open
  • [x] Cross-repo placement documented — Note in Repo section directs agent to clone pal-e-platform

File Targets

  • [x] terraform/modules/ops/main.tf — verified: file exists (213 lines). Ollama resources (namespace + helm_release, ~70 lines) were removed between nvidia_device_plugin (line 26) and embedding_worker_metrics (line 28). Pre-removal config confirmed at 7872dac~1.
  • [x] terraform/modules/ops/outputs.tf — verified: file exists, is empty. Pre-removal version at 7872dac~1 had output "ollama_namespace". Now listed as definite restore target in issue.
Don't-touch targets verified:
  • [x] terraform/main.tfmodule "ops" call at line 123, moved{} blocks present. No Ollama references remain. Correct to leave untouched.
  • [x] terraform/modules/ops/variables.tf — no Ollama variables existed before removal (confirmed identical at 7872dac~1). Correctly excluded from file targets.
  • [x] NVIDIA / embedding-worker-metrics resources — present in current main.tf, must not be modified.

Repo Placement

RESOLVED. Issue remains on pal-e-services (historical triage) but now has a prominent cross-repo note directing the agent to clone pal-e-platform. Agent spawn will not be confused.

Dependencies

  • #1434 (Scale embedding worker to 0) — alternative stopgap. Becomes unnecessary if #1432 succeeds. Not a blocker.
  • #1433 (pg_stat_statements + Grafana) — independent, no dependency.
  • NVIDIA device plugin — already deployed in ops module. Issue correctly notes depends_on relationship. Not a blocker.
  • Embedding worker — downstream consumer. Config at src/pal_e_docs/config.py:11 hardcodes ollama.ollama.svc.cluster.local:11434. Will self-heal once Ollama is reachable.

Acceptance Criteria

8 AC items, all verifiable:
  • [x] AC 1-3: namespace + helm_release + output restored — verifiable via tofu plan
  • [x] AC 4: add-only plan — verifiable via tofu plan
  • [x] AC 5: tofu apply succeeds — verifiable (requires cluster access)
  • [x] AC 6: pods running — verifiable via kubectl
  • [x] AC 7: embedding worker connectivity — verifiable via logs
  • [x] AC 8: embedding backfill — now specifies exact kubectl exec command

Blast Radius

  • pal-e-docs embedding worker — direct consumer. Will start working once Ollama is reachable. No code changes needed.
  • pal-e-docs semantic search — degraded to keyword-only. Will improve as backfill processes blocks.
  • No other services reference Ollama — grep across pal-e-deployments and pal-e-services/terraform found zero Ollama references.
  • GPU contention — Ollama will claim the GPU. Acknowledged in issue's Decision section.

Decomposition Assessment

No decomposition needed.
  • 2 file targets in 1 repo — under threshold
  • 8 AC but work is essentially a single git-restore operation — under 5 minutes
  • Single agent pass is appropriate

Recommendations

No action needed.
All five actionable findings resolved. Deferred item (arch-infra note) tracked separately and does not block execution.