Skip to content

feat(e2e): remove Elasticsearch and search-ingest from the test stack (PPT-2644) - #487

Merged
camreeves merged 1 commit into
developfrom
PPT-2644-e2e-remove-elasticsearch
Aug 13, 2026
Merged

feat(e2e): remove Elasticsearch and search-ingest from the test stack (PPT-2644)#487
camreeves merged 1 commit into
developfrom
PPT-2644-e2e-remove-elasticsearch

Conversation

@camreeves

@camreeves camreeves commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Part of PPT-2644 infra removal: rest-api now serves every index/search route straight from PostgreSQL full-text search (PlaceOS/rest-api#445, merged), so the e2e stack's Elasticsearch and search-ingest containers do nothing and can go. They were the two heaviest containers in the stack, and the source of its only cold-start race (search-index lag).

What

  • e2e/stack/docker-compose.yml — the elastic and search-ingest services are removed, along with their volumes/depends_on wiring.
  • e2e/stack/up.sh — the health-wait list shrinks to postgres redis; the failure-diagnosis comment no longer cites the ES memlock incident.
  • e2e/support/seed.ts — the authority lookup no longer polls 90s for search-ingest to index the domain row. /domains is read-your-writes from Postgres now, so it polls up to 30s only for init start to finish on a cold stack, and the failure message points at init instead of search-ingest. The OAuth-app "already exists" tolerance stays, re-justified: the race is now concurrent seed runs, not index lag.
  • e2e/README.md, e2e/stack/SELF_HOSTED_RUNNER.md — container list, sizing notes and troubleshooting updated; the vm.max_map_count / cgroup-v2 ES caveats are gone.

No spec changes — the suite never talked to Elasticsearch directly, only to the API.

Verification

  • docker compose -f e2e/stack/docker-compose.yml config validates.
  • The full workplace Playwright suite ran 14/14 green against exactly this stack definition with a PG-search rest-api image — including the seed path this PR rewrites (cold stack, authority poll, OAuth app creation).

Merge order

This PR was gated on published rest-api images with PG-backed search (the stack pulls ${PLACEOS_TAG}). That gate is met: nightly images carry PG search since 2026-08-12 and the change was validated end-to-end on this stack. Safe to merge.

… (PPT-2644)

Search is served straight from PostgreSQL once rest-api lands PPT-2644,
so the stack loses its two heaviest containers and the seed's 90s
index-lag poll shrinks to a short init-completion poll.

NOTE: do not merge before rest-api images with PG-backed search are
published — the stack pulls ${PLACEOS_TAG}.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
frontend-templates Ignored Ignored Aug 13, 2026 1:39am

@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown

Greptile Summary

This PR removes Elasticsearch and search-ingest from the e2e stack now that REST API search routes use PostgreSQL directly.

  • Removes the two services, their volume, dependencies, and client environment variables.
  • Simplifies stack startup and updates authority polling for PostgreSQL read-after-write behavior.
  • Updates runner and e2e documentation to remove Elasticsearch resource and troubleshooting guidance.

Confidence Score: 5/5

The PR appears safe to merge with no actionable defects identified in the changed e2e stack.

The remaining services start in the required order, initialization completes synchronously before seeding, and authority lookup no longer depends on the removed search infrastructure.

Important Files Changed

Filename Overview
e2e/stack/docker-compose.yml Removes Elasticsearch and search-ingest services and strips their dependencies and environment configuration from the remaining stack.
e2e/stack/up.sh Starts only PostgreSQL and Redis as foundational services while preserving synchronous initialization before seeding.
e2e/support/seed.ts Reduces authority polling to 30 seconds and updates diagnostics for direct PostgreSQL-backed domain lookup.
e2e/support/preflight.ts Updates explanatory documentation to reflect the smaller stack without changing runtime behavior.
e2e/README.md Documents the reduced service set and PostgreSQL-backed authority lookup.
e2e/stack/SELF_HOSTED_RUNNER.md Removes obsolete Elasticsearch host requirements and troubleshooting instructions.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Start e2e stack] --> B[Wait for PostgreSQL and Redis]
    B --> C[Start frontend and API services]
    C --> D[Wait for API and login]
    D --> E[Run init start]
    E --> F[Run seed.ts]
    F --> G[Read authority from PostgreSQL-backed /domains]
    G --> H[Run Playwright suite]
Loading

Reviews (1): Last reviewed commit: "feat(e2e): remove Elasticsearch and sear..." | Re-trigger Greptile

@camreeves
camreeves merged commit bbb5df4 into develop Aug 13, 2026
3 checks passed
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