Skip to content

Bump all OpenSearch 3.x test environments to 3.8.0 and verify compatibility #37059

Description

@fabrizzio-dotCMS

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.4 but the latest available version is 3.8. We should bump all our OS test envs to 3.8 and 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 run opensearchproject/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.yml runs opensearchproject/opensearch:3.8.0 and opensearchproject/opensearch-dashboards:3.8.0, with the header comment updated to match
  • environments/environment.properties sets docker.image.search.upgrade=opensearchproject/opensearch:3.8.0
  • dotCMS/src/docker-compose/it-test/docker-compose.yml defaults OS_IMAGE_UPGRADE to opensearchproject/opensearch:3.8.0, matching environment.properties
  • single-node-os-migration/README.md service table reports 3.8.0 for both the OS 3.x cluster and its dashboards
  • docs/backend/OPENSEARCH_MIGRATION_TESTER_GUIDE.md no longer states the target engine is "OpenSearch 3.4"
  • No opensearchproject/opensearch:3.x or opensearch-dashboards:3.x reference below 3.8.0 remains anywhere in the repo (verify with a repo-wide grep)
  • Compatibility confirmed: OpenSearchUpgradeSuite passes against OS 3.8.0 in CI (this suite is driven by docker.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 -d in single-node-os-migration brings 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/opensearch3.8.0; opensearchproject/opensearch-dashboards3.8.0; latest 1.x → 1.3.20.
  • Bumping docker.image.search.upgrade is what actually gives us the compatibility signal — that property feeds the opensearch-upgrade Maven 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

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status
    New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions