dotCMS / dotCMS/core

Add OpenSearch 1.x to 3.x migration Docker Compose stack

Open
#35,865 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dotCMS : Containerization Team : Platform Type : Task
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Description

Create a Docker Compose development environment for testing the OpenSearch 1.x → 3.x migration path. This stack runs both OpenSearch versions side-by-side with dotCMS configured for dual-write mode (FEATURE_FLAG_OPEN_SEARCH_PHASE=1).

Components
  • Docker Compose file — OpenSearch 1.3.x, OpenSearch 3.4.0, Dashboards for both, PostgreSQL, and dotCMS
  • Python provisioning script (opensearch.py) — creates internal users, roles, action groups, and role mappings on both clusters
  • Init containers with healthcheck gates — dotCMS only starts after both clusters are provisioned
  • Standalone script using uv run shebang with PEP 723 inline metadata (no virtualenv setup needed)
Service Map
Service Port
OpenSearch 1.x https://localhost:9200
OpenSearch 3.x https://localhost:9201
OS 1.x Dashboards http://localhost:5601
OS 3.x Dashboards http://localhost:5602
dotCMS http://localhost:8082
PostgreSQL localhost:5432

Acceptance Criteria

  • docker compose up -d starts all services without errors
  • Both provisioners exit 0 (check docker compose ps)
  • OpenSearch 1.x responds to authenticated requests on port 9200
  • OpenSearch 3.x responds to authenticated requests on port 9201
  • dotCMS starts and creates indices on both clusters
  • Re-running docker compose up is idempotent (provisioners skip existing users/roles)
  • README documents usage, service ports, and provisioning details

Additional Context

PR: https://github.com/dotCMS/core/pull/35864

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Docker Compose file and opensearch.py, then review PR 35864 for the current migration work. Run docker compose up -d and check docker compose ps, authenticated requests on ports 9200 and 9201, dotCMS index creation, and repeated startup. Done means all acceptance criteria pass and the README documents the stack, ports, and provisioning details.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker-compose, postgresql, python
Domain
databases, devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.