Add opensearch to default PROD image extras (#68659)

#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.
This commit is contained in:
Rahul Vats authored and GitHub committed 2026-06-17 12:56:10 +05:30
1 parent 48d0ad5f89
commit bb859bde5a
5 files changed
+6 -4

No files matched your search

+1 -1
View File
@@ -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=""
@@ -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&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-prod-image-build-r1" x="439.2" y="1313.2" textLength="366" clip-path="url(#breeze-prod-image-build-line-53)">Extras&#160;to&#160;install&#160;by&#160;default.&#160;</text><text class="breeze-prod-image-build-r5" x="805.2" y="1313.2" textLength="122" clip-path="url(#breeze-prod-image-build-line-53)">[default:&#160;</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1313.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-53)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1313.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-53)">
</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-r1" x="1464" 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)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">
</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-r1" x="1464" 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" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">
</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-r1" x="1464" 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" x="1451.8" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">
</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&#160;&#160;&#160;&#160;&#160;</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&#160;extra&#160;package&#160;while&#160;installing&#160;Airflow&#160;in&#160;the&#160;image.&#160;</text><text class="breeze-prod-image-build-r6" x="1220" y="1435.2" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-58)">(TEXT)</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">
</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&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</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&#160;python&#160;dependencies&#160;to&#160;use&#160;when&#160;building&#160;the&#160;images.&#160;</text><text class="breeze-prod-image-build-r6" x="1220" y="1459.6" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-59)">(TEXT)</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">
</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&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-prod-image-build-r1" x="439.2" y="1484" textLength="658.8" clip-path="url(#breeze-prod-image-build-line-60)">Apt&#160;dev&#160;dependencies&#160;to&#160;use&#160;when&#160;building&#160;the&#160;images.&#160;</text><text class="breeze-prod-image-build-r6" x="1098" y="1484" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-60)">(TEXT)</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

@@ -1 +1 @@
7def92d438b944e1f957b30ba27fc28d
1760d6aa232389338d997ce33e5032a2
@@ -794,6 +794,7 @@ DEFAULT_EXTRAS = [
"mysql",
"odbc",
"openlineage",
"opensearch",
"pandas",
"postgres",
"redis",
+1
View File
@@ -108,6 +108,7 @@ List of default extras in the production Dockerfile:
* mysql
* odbc
* openlineage
* opensearch
* pandas
* postgres
* redis