Skip to content

Fix prow pipeline: in-cluster image build, RAG config, port-forward fix#3

Closed
are-ces wants to merge 1 commit into
radofuchs:LCORE-1496-rhoai-version-bumpfrom
are-ces:fix-prow-for-colleague
Closed

Fix prow pipeline: in-cluster image build, RAG config, port-forward fix#3
are-ces wants to merge 1 commit into
radofuchs:LCORE-1496-rhoai-version-bumpfrom
are-ces:fix-prow-for-colleague

Conversation

@are-ces
Copy link
Copy Markdown

@are-ces are-ces commented Mar 29, 2026

Summary

  • Build llama-stack image in OpenShift internal registry instead of from source in init containers
  • Add FAISS_VECTOR_STORE_ID and KV_RAG_PATH env vars to lightspeed-stack pod
  • Add inference, byok_rag, and rag sections to prow lightspeed-stack configs (vllm provider)
  • Fix free_local_tcp_port to only kill LISTEN sockets — was killing behave process (Error 137)
  • Use scoped envsubst '${LLAMA_STACK_IMAGE}' in pipeline-services.sh
  • Add image-puller role for default SA, MCP token secrets, empty OpenAI secret
  • Simplify llama-stack.yaml manifest for pre-built image

Test plan

  • Run full prow pipeline end-to-end on OpenShift cluster
  • Verify faiss disruption test completes without killing behave
  • Verify llama-stack pod pulls from internal registry
  • Verify lightspeed-stack starts with RAG config

🤖 Generated with Claude Code

- Build llama-stack image in OpenShift internal registry via oc new-build/start-build
- Add image-puller role for default SA to pull from internal registry
- Add FAISS_VECTOR_STORE_ID and KV_RAG_PATH env vars to lightspeed-stack pod
- Add inference, byok_rag, and rag sections to prow lightspeed-stack configs
- Use envsubst with specific variable scoping in pipeline-services.sh
- Fix free_local_tcp_port to only kill LISTEN sockets (was killing behave process)
- Add MCP token secrets and empty OpenAI secret to pipeline.sh
- Add rlsapi_v1_infer action to prow RBAC config
- Simplify llama-stack.yaml to use pre-built image

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@are-ces are-ces closed this Mar 29, 2026
radofuchs pushed a commit that referenced this pull request May 1, 2026
Add the spike doc (decisions up front, background below, 4 proposed
JIRAs) and the spec doc (R1..R6 requirements, architecture, key files
and insertion points, known limitations) under docs/design/byok-pdf/.

The spike is lightweight by design: HTML support shipped under
LCORE-1035 (commit 7f688b0, 2026-01-15), so the architectural pattern,
docling dependency, BaseReader plumbing, CLI shape, and test layout
are all already established. PDF support is a scaffold-and-mirror job
plus a one-line addition to document_processor.py's doc_type branches.

Decisions captured for confirmation (each with options table and
recommendation in the spike doc):

  D1: Library                -- docling (already a dependency)
  D2: OCR for scanned PDFs   -- out of scope; track as follow-up
  D3: Repo placement          -- rag-content (impl) + lightspeed-stack
                                  (BYOK guide update only)
  D4: Pipeline knobs          -- hard-coded sensible defaults; no CLI
                                  flags in v1 (mirrors HTMLReader)
  D5: Chunking strategy       -- reuse MarkdownNodeParser; add "pdf" to
                                  document_processor.py:75 and :87
  D6: Code organization       -- new pdf/ package mirroring html/
  D7: Test coverage           -- unit/integration in JIRA #2, e2e in #3

Four sub-JIRAs proposed under LCORE-1471 (parseable by
dev-tools/file-jiras.sh):

  1. rag-content: Implement PDF support
  2. rag-content: Unit and integration tests
  3. rag-content: End-to-end test (PDF -> vector store -> stack query)
  4. lightspeed-stack: Update BYOK guide for native PDF support

PoC evidence under poc-results/:

  01-poc-report.txt    Methodology, findings, implications
  02-conversion-log.txt  Exact commands and timings
  03-sample-jira-1311.md  Clean conversion (Atlassian Cloud PDF)
  04-sample-jira-836.md   Body clean, headings degraded
                          (Confluence PDF, letter-spaced display font)

Honest PoC findings worth surfacing:

- No new dependencies are needed (docling is already in pyproject.toml).
- Body text and tables convert cleanly to Markdown.
- MarkdownNodeParser handles the output -- no parallel chunking pipeline.
- Letter-spaced display fonts (typical of Confluence "Export to PDF")
  produce noisy heading text; documented as a v1 known limitation.
- Cold model load is ~5 minutes on CPU; warm conversions ~30-90 s for
  small/medium PDFs. Acceptable for offline indexing.

Per howto-run-a-spike.md step 10, poc/ and poc-results/ will be
removed before merge; spike doc and spec doc remain in the repo.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant