This is an automated email from the ASF dual-hosted git repository.
vatsrahul1001 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new bb859bde5a4 Add opensearch to default PROD image extras (#68659)
bb859bde5a4 is described below
commit bb859bde5a40af9b2cffeda7af50dabdd4df07ee
Author: Rahul Vats <[email protected]>
AuthorDate: Wed Jun 17 12:56:10 2026 +0530
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.
---
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