Bump all OpenSearch 3.x test environments to 3.8.0 and verify compatibility
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 970
- Forks
- 486
- Avg merge
- 3d 33m
- Merged PRs (30d)
- 170
Description
Description
Our OpenSearch 3.x test environments and docker-compose examples are pinned to 3.4.0 (and one of them to 3.0.0), while the latest released OpenSearch 3.x is 3.8.0. We need to bump every OS 3.x target to 3.8.0 and confirm dotCMS still works against it.
This came out of the OpenSearch migration status thread in #feat-opensearch-upgrade (Aug 13, 2026). Todd Jacobsen:
Our docker-compose examples use opensearch
3.4but the latest available version is3.8. We should bump all our OS test envs to3.8and check for compatibility
There is added urgency: docker/docker-compose-examples/single-node-os-migration is the reference stack we are about to hand to a self-hosted customer (SS&C) so they can test the LTS→EG changeover together with the OpenSearch upgrade. It should not ship pointing at a version four minors behind.
Current state
| File | Setting | Pinned | Latest |
|---|---|---|---|
docker/docker-compose-examples/single-node-os-migration/docker-compose.yml |
opensearch3 image |
3.4.0 |
3.8.0 |
docker/docker-compose-examples/single-node-os-migration/docker-compose.yml |
opensearch3-dashboards image |
3.0.0 |
3.8.0 |
environments/environment.properties |
docker.image.search.upgrade |
3.4.0 |
3.8.0 |
dotCMS/src/docker-compose/it-test/docker-compose.yml |
OS_IMAGE_UPGRADE default |
3.0.0 |
3.8.0 |
Note the two are already out of sync: the it-test compose fallback (3.0.0) is older than what Maven actually injects from environment.properties (3.4.0), so anyone running that compose file directly gets a different engine than CI does.
Documentation carrying the version explicitly also needs updating:
docker/docker-compose-examples/single-node-os-migration/README.md(service table)docs/backend/OPENSEARCH_MIGRATION_TESTER_GUIDE.md(§ target engine, § service table)
Out of scope
- The ~10 other docker-compose examples (
single-node,cluster-mode,with-redis,experiments,lgtm-observability,push-publish,dev-env/Dockerfile, CLI test resources) that runopensearchproject/opensearch:1/1.3.6. Those are the OS 1.x product baseline, not OS 3.x test envs — moving them to 3.x would change dotCMS's default stack, which cannot happen until the migration is complete. - Cloud Control's OpenSearch version (Will Ezell: "someone, anyone, feel free to bump the opensearch version up on cloud control") — different repository, tracked separately.
Acceptance Criteria
-
docker/docker-compose-examples/single-node-os-migration/docker-compose.ymlrunsopensearchproject/opensearch:3.8.0andopensearchproject/opensearch-dashboards:3.8.0, with the header comment updated to match -
environments/environment.propertiessetsdocker.image.search.upgrade=opensearchproject/opensearch:3.8.0 -
dotCMS/src/docker-compose/it-test/docker-compose.ymldefaultsOS_IMAGE_UPGRADEtoopensearchproject/opensearch:3.8.0, matchingenvironment.properties -
single-node-os-migration/README.mdservice table reports 3.8.0 for both the OS 3.x cluster and its dashboards -
docs/backend/OPENSEARCH_MIGRATION_TESTER_GUIDE.mdno longer states the target engine is "OpenSearch 3.4" - No
opensearchproject/opensearch:3.xoropensearch-dashboards:3.xreference below3.8.0remains anywhere in the repo (verify with a repo-wide grep) - Compatibility confirmed:
OpenSearchUpgradeSuitepasses against OS 3.8.0 in CI (this suite is driven bydocker.image.search.upgrade, so the version bump exercises it automatically) - Compatibility confirmed: the phase sweep (
opensearch_phase=all) passes against OS 3.8.0 — phases 0–3 exercise dual-write, OS reads, and the Phase 3 cutover - Compatibility confirmed:
docker compose up -dinsingle-node-os-migrationbrings up a healthy stack — both provisioners complete, dotCMS starts, and content indexes into the OS 3.8.0 cluster - Any OS 3.8.0 incompatibility found is either fixed in this issue or filed as a follow-up defect and linked here
Priority
Medium
Additional Context
- Latest tags verified on Docker Hub on 2026-08-13:
opensearchproject/opensearch→3.8.0;opensearchproject/opensearch-dashboards→3.8.0; latest 1.x →1.3.20. - Bumping
docker.image.search.upgradeis what actually gives us the compatibility signal — that property feeds theopensearch-upgradeMaven profile (dotcms-integration/pom.xml) and every phase-suite run, so CI on the PR is the check Todd asked for. - Related Slack thread: #feat-opensearch-upgrade — OpenSearch migration status update
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 four pinned settings in docker/docker-compose-examples/single-node-os-migration/docker-compose.yml, environments/environment.properties, and dotCMS/src/docker-compose/it-test/docker-compose.yml, then update the README and docs/backend/OPENSEARCH_MIGRATION_TESTER_GUIDE.md references. Run a repo-wide grep for older OpenSearch 3.x tags and execute OpenSearchUpgradeSuite, the opensearch_phase=all sweep, and the migration compose stack. Done means all checks pass against OpenSearch 3.8.0.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, docker-compose, java
- Domain
- databases, devops, testing-qa
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100