Skip to content

Add opensearch to default PROD image extras#68659

Merged
vatsrahul1001 merged 1 commit into
mainfrom
fix-opensearch-missing-from-prod-image
Jun 17, 2026
Merged

Add opensearch to default PROD image extras#68659
vatsrahul1001 merged 1 commit into
mainfrom
fix-opensearch-missing-from-prod-image

Conversation

@vatsrahul1001

Copy link
Copy Markdown
Contributor

Problem

The PROD image verify (docker-tests/.../test_prod_image.py::test_required_providers_are_installed) fails on release branches (e.g. v3-3-test) reporting that opensearch is missing from the image, while main passes.

Root cause: #65374 added opensearch to prod_image_installed_providers.txt (so the verify now asserts it is installed) but did not add it to the default image extras. That makes opensearch the only required provider that is neither a default extra nor a bundled core dependency — so its only path into the image was being built from source.

On a release branch, the source provider build skips already-released providers (the providers-opensearch/<version> final tag exists), so opensearch is the single required provider with no fallback and the verify fails. main passes only because its dev-mode build compiles every provider from source in-place regardless of tags. Every other required provider survives the release-branch skip because it is either in the default extras (backfilled from PyPI) or a bundled core dependency.

Fix

Add opensearch to the default PROD image extras (Dockerfile ARG AIRFLOW_EXTRAS), and let the check-extras-order hook propagate it into global_constants.py (DEFAULT_EXTRAS) and docker-stack-docs/build-arg-ref.rst. The breeze command-output image for prod-image build is regenerated accordingly. This backfills opensearch from PyPI the same way every other required provider is installed, making the PROD image consistent across dev and release builds.


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Opus 4.8)

Generated-by: Claude Code (Opus 4.8) following the guidelines

#65374 added opensearch to prod_image_installed_providers.txt (so the PROD
image verify asserts it is installed) but did not add it to the default
image extras. opensearch is therefore the only required provider that is
neither a default extra nor a bundled core dependency, so its only path
into the image was being built from source.

On a release branch the source build skips already-released providers
(the final tag providers-opensearch/<v> exists), so opensearch is the
single required provider with no fallback and the PROD image verify
(test_required_providers_are_installed) fails. main passes only because
its dev-mode build compiles every provider from source in-place.

Add opensearch to the default extras so it is backfilled from PyPI the
same way every other required provider is, making the PROD image
consistent across dev and release builds.

@amoghrajesh amoghrajesh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM +1.

opensearch is the direct sibling of elasticsearch, which is already a default extra, so if we ship the ES RL backend out of the box it is coherent to do the same for OpenSearch

@vatsrahul1001

Copy link
Copy Markdown
Contributor Author

Static failure not related to PR

@vatsrahul1001 vatsrahul1001 merged commit bb859bd into main Jun 17, 2026
140 of 141 checks passed
@vatsrahul1001 vatsrahul1001 deleted the fix-opensearch-missing-from-prod-image branch June 17, 2026 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants