Add OpenSearch 1.x to 3.x migration Docker Compose stack
Open
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 runshebang 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 -dstarts 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 upis idempotent (provisioners skip existing users/roles) - README documents usage, service ports, and provisioning details
Additional Context
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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