This is an automated email from the ASF dual-hosted git repository. vatsrahul1001 pushed a commit to branch fix-opensearch-missing-from-prod-image in repository https://gitbox.apache.org/repos/asf/airflow.git
commit aa1cb1661a2f27d110e8b244ebfb38f80d0d6ecc Author: Rahul Vats <[email protected]> AuthorDate: Wed Jun 17 11:52:01 2026 +0530 Add opensearch to default PROD image extras #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. --- Dockerfile | 2 +- dev/breeze/doc/images/output_prod-image_build.svg | 4 ++-- dev/breeze/doc/images/output_prod-image_build.txt | 2 +- dev/breeze/src/airflow_breeze/global_constants.py | 1 + docker-stack-docs/build-arg-ref.rst | 1 + 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7ea413a1ddb..dc859e8b25c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -38,7 +38,7 @@ # much smaller. # # Use the same builder frontend version for everyone -ARG AIRFLOW_EXTRAS="aiobotocore,amazon,async,celery,cncf-kubernetes,common-io,common-messaging,docker,elasticsearch,fab,ftp,git,google,google-auth,graphviz,grpc,hashicorp,http,ldap,microsoft-azure,mysql,odbc,openlineage,pandas,postgres,redis,sendgrid,sftp,slack,snowflake,ssh,statsd,uv" +ARG AIRFLOW_EXTRAS="aiobotocore,amazon,async,celery,cncf-kubernetes,common-io,common-messaging,docker,elasticsearch,fab,ftp,git,google,google-auth,graphviz,grpc,hashicorp,http,ldap,microsoft-azure,mysql,odbc,openlineage,opensearch,pandas,postgres,redis,sendgrid,sftp,slack,snowflake,ssh,statsd,uv" ARG ADDITIONAL_AIRFLOW_EXTRAS="" ARG ADDITIONAL_PYTHON_DEPS="" diff --git a/dev/breeze/doc/images/output_prod-image_build.svg b/dev/breeze/doc/images/output_prod-image_build.svg index b7bc09c4f57..8179f3577a8 100644 --- a/dev/breeze/doc/images/output_prod-image_build.svg +++ b/dev/breeze/doc/images/output_prod-image_build.svg @@ -425,8 +425,8 @@ </text><text class="breeze-prod-image-build-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-53)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1313.2" textLength="390.4" clip-path="url(#breeze-prod-image-build-line-53)">--airflow-extras                </text><text class="breeze-prod-image-build-r1" x="439.2" y="1313.2" textLength="366" clip-path="url(#breeze- [...] </text><text class="breeze-prod-image-build-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">│</text><text class="breeze-prod-image-build-r5" x="439.2" y="1337.6" textLength="1000.4" clip-path="url(#breeze-prod-image-build-line-54)">aiobotocore,amazon,async,celery,cncf-kubernetes,common-io,common-messaging,docker,</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)" [...] </text><text class="breeze-prod-image-build-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">│</text><text class="breeze-prod-image-build-r5" x="439.2" y="1362" textLength="1000.4" clip-path="url(#breeze-prod-image-build-line-55)">elasticsearch,fab,ftp,git,google,google-auth,graphviz,grpc,hashicorp,http,ldap,mic</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">│</te [...] -</text><text class="breeze-prod-image-build-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)">│</text><text class="breeze-prod-image-build-r5" x="439.2" y="1386.4" textLength="1000.4" clip-path="url(#breeze-prod-image-build-line-56)">rosoft-azure,mysql,odbc,openlineage,pandas,postgres,redis,sendgrid,sftp,slack,snow</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)" [...] -</text><text class="breeze-prod-image-build-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r5" x="439.2" y="1410.8" textLength="244" clip-path="url(#breeze-prod-image-build-line-57)">flake,ssh,statsd,uv]</text><text class="breeze-prod-image-build-r6" x="695.4" y="1410.8" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-57)">(TEXT)</text><text class="breeze-prod-image-build-r5" x="1451.8" [...] +</text><text class="breeze-prod-image-build-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)">│</text><text class="breeze-prod-image-build-r5" x="439.2" y="1386.4" textLength="1000.4" clip-path="url(#breeze-prod-image-build-line-56)">rosoft-azure,mysql,odbc,openlineage,opensearch,pandas,postgres,redis,sendgrid,sftp</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)" [...] +</text><text class="breeze-prod-image-build-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r5" x="439.2" y="1410.8" textLength="378.2" clip-path="url(#breeze-prod-image-build-line-57)">,slack,snowflake,ssh,statsd,uv]</text><text class="breeze-prod-image-build-r6" x="829.6" y="1410.8" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-57)">(TEXT)</text><text class="breeze-prod-image-build-r5 [...] </text><text class="breeze-prod-image-build-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1435.2" textLength="390.4" clip-path="url(#breeze-prod-image-build-line-58)">--additional-airflow-extras     </text><text class="breeze-prod-image-build-r1" x="439.2" y="1435.2" textLength="780.8" clip-path="url(#breeze-prod-image-build-line-58)">Additional extra  [...] </text><text class="breeze-prod-image-build-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1459.6" textLength="390.4" clip-path="url(#breeze-prod-image-build-line-59)">--additional-python-deps        </text><text class="breeze-prod-image-build-r1" x="439.2" y="1459.6" textLength="780.8" clip-path="url(#breeze-prod-image-build-line-59)">Additional& [...] </text><text class="breeze-prod-image-build-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1484" textLength="390.4" clip-path="url(#breeze-prod-image-build-line-60)">--dev-apt-deps                  </text><text class="breeze-prod-image-build-r1" x="439.2" y="1484" textLength="658.8" clip-path="url(#b [...] diff --git a/dev/breeze/doc/images/output_prod-image_build.txt b/dev/breeze/doc/images/output_prod-image_build.txt index aee5acad71a..ebdcb250b46 100644 --- a/dev/breeze/doc/images/output_prod-image_build.txt +++ b/dev/breeze/doc/images/output_prod-image_build.txt @@ -1 +1 @@ -7def92d438b944e1f957b30ba27fc28d +1760d6aa232389338d997ce33e5032a2 diff --git a/dev/breeze/src/airflow_breeze/global_constants.py b/dev/breeze/src/airflow_breeze/global_constants.py index 8d76174f8aa..651b6fd72c3 100644 --- a/dev/breeze/src/airflow_breeze/global_constants.py +++ b/dev/breeze/src/airflow_breeze/global_constants.py @@ -794,6 +794,7 @@ DEFAULT_EXTRAS = [ "mysql", "odbc", "openlineage", + "opensearch", "pandas", "postgres", "redis", diff --git a/docker-stack-docs/build-arg-ref.rst b/docker-stack-docs/build-arg-ref.rst index 2fa07dca4ed..7b549cef830 100644 --- a/docker-stack-docs/build-arg-ref.rst +++ b/docker-stack-docs/build-arg-ref.rst @@ -108,6 +108,7 @@ List of default extras in the production Dockerfile: * mysql * odbc * openlineage +* opensearch * pandas * postgres * redis
