Add OpenSearch 2.19.5 service alongside Elasticsearch

What this does

Adds OpenSearch 2.19.5 as a second search engine alongside the existing Elasticsearch 7.17.28. Both run simultaneously so we can compare them side by side during the migration.

Changes

  • Added opensearch service to docker-compose.dev.yml (port 9202, security disabled)
  • Added OpenSearch URL to ServiceUrls in app.php
  • Created data directory with .gitkeep so bind mount works on fresh clones
  • Updated .gitignore to exclude OpenSearch runtime data
  • Registered opensearch in config.dev.json so cdli.py includes it in the generated compose file (disabled by default - devs opt in via their local config.json)

What's NOT changed

  • Elasticsearch service, Logstash, ElasticSearchQuery.php, SearchController.php -> all untouched
  • No code changes, this is infrastructure only

How to verify

Create dev/config.json (copy dev/config.dev.json if you don't have one) and set both elasticsearch and opensearch to "enabled": true and "is_default": true, then:

./dev/cdli.py dev up -d
curl http://localhost:9200   # ES 7.17.28
curl http://localhost:9202   # OpenSearch 2.19.5

Load the mapping template and create the index:

curl -X PUT "http://localhost:9202/_template/artifacts" -H "Content-Type: application/json" -d @dev/data/logstash/resources/artifacts.json
curl -X PUT "http://localhost:9202/artifacts"

Notes

Closes #2614

Edited by sung

Merge request reports

Loading