Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/mirror.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ on:
- registry.k8s.io/git-sync/git-sync
- registry-1.docker.io/library/golang
- registry-1.docker.io/dxflrs/garage
- ghcr.io/astral-sh/uv
image-index-manifest-tag:
description: |
The image index manifest tag, like 1.0.14 or v1.0.14
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ All notable changes to this project will be documented in this file.
- opa: Add `1.16.2` ([#1509]).
- kafka: Add `3.9.2` and `4.2.1` ([#1483]).
- trino: Add `481` ([#1518]).
- airflow: Add `3.2.1` ([#1519]).
- superset: Add `6.1.0` ([#1514])
- zookeeper: Add `3.9.5` ([#1515])

Expand Down Expand Up @@ -60,6 +61,7 @@ All notable changes to this project will be documented in this file.
[#1514]: https://github.com/stackabletech/docker-images/pull/1514
[#1515]: https://github.com/stackabletech/docker-images/pull/1515
[#1518]: https://github.com/stackabletech/docker-images/pull/1518
[#1519]: https://github.com/stackabletech/docker-images/pull/1519
[#1520]: https://github.com/stackabletech/docker-images/pull/1520
[#1521]: https://github.com/stackabletech/docker-images/pull/1521
[#1524]: https://github.com/stackabletech/docker-images/pull/1524
Expand Down
7 changes: 2 additions & 5 deletions airflow/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ else
fi

# Needed for pandas S3 integration to e.g. write and read csv and parquet files to/from S3
# TODO: s3fs may already be installed via the s3fs extra and constraints. Check if this explicit install is still needed.
uv pip install --no-cache-dir s3fs==${S3FS_VERSION} cyclonedx-bom==${CYCLONEDX_BOM_VERSION}
# Needed for OIDC
uv pip install --no-cache-dir Flask_OIDC==2.2.0 Flask-OpenID==1.3.1
Expand All @@ -172,11 +173,7 @@ uv pip install --no-cache-dir /tmp/opa_auth_manager-0.1.0-py3-none-any.whl

# Create the SBOM for Airflow
# Important: All `pip install` commands must be above this line, otherwise the SBOM will be incomplete
if [ "$PRODUCT_VERSION" == "2.9.3" ] || [ "$PRODUCT_VERSION" == "3.0.6" ]; then
cyclonedx-py environment --schema-version 1.5 --outfile /tmp/sbom.json
else
cyclonedx-py environment --spec-version 1.5 --output-file /tmp/sbom.json
fi
cyclonedx-py environment --spec-version 1.5 --output-file /tmp/sbom.json
uv pip uninstall cyclonedx-bom

# Break circular dependencies by removing the apache-airflow dependency from the providers
Expand Down
104 changes: 84 additions & 20 deletions airflow/boil-config.toml

@sbernauer sbernauer Jun 3, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for adding some comments already!
I think it would be great to add a few more (in the spirit of #1514). A print.sh shell script is IMHO not necessary, although arguably not bad ;)
That being said: I need to drop off for the weekend

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Could you give an example of such a comment?

I'm only really adding info to the ones I am updating, rather that updating the whole file (since it takes effort to find out the details/policies about various bumps). But I'm happy to add more if you can point to something that isn't appearing obvious to you.

Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,18 @@ vector = "0.55.0"
stackable-devel = "1.0.0"

[versions."2.9.3".build-arguments]
# NOTE: This can be bumped for new airflow versions, but once set, do not updated it.
# See: https://devguide.python.org/versions/
python-version = "3.9"
git-sync-version = "v4.4.1"
git-sync-version = "v4.6.0"
# Must match the version in the constraints file.
# TODO: Check if this can be removed in favour of letting it come in via the s3fs extra and constraints.
s3fs-version = "2024.9.0"
cyclonedx-bom-version = "6.0.0"
cyclonedx-bom-version = "7.3.0"
tini-version = "0.19.0"
uv-version = "0.7.8"
# Bump to the latest release found here: https://github.com/astral-sh/uv/releases
# TODO: mirror the uv images, and then use `COPY --from` instead of using pip.
uv-version = "0.11.19"
airflow-extras-other = "async,amazon,celery,cncf.kubernetes,docker,dask,elasticsearch,ftp,grpc,hashicorp,http,ldap,google,google_auth,microsoft.azure,odbc,pandas,postgres,redis,sendgrid,sftp,slack,ssh,statsd,virtualenv,trino"
opa-auth-manager = "airflow-2"
nodejs-version = "20"
Expand All @@ -25,14 +31,22 @@ vector = "0.55.0"
stackable-devel = "1.0.0"

[versions."3.0.6".build-arguments]
# NOTE: This can be bumped for new airflow versions, but once set, do not updated it.
# See: https://devguide.python.org/versions/
python-version = "3.12"
git-sync-version = "v4.4.1"
git-sync-version = "v4.6.0"
# Must match the version in the constraints file.
# TODO: Check if this can be removed in favour of letting it come in via the s3fs extra and constraints.
s3fs-version = "2024.9.0"
cyclonedx-bom-version = "6.0.0"
cyclonedx-bom-version = "7.3.0"
tini-version = "0.19.0"
uv-version = "0.7.8"
# Bump to the latest release found here: https://github.com/astral-sh/uv/releases
# TODO: mirror the uv images, and then use `COPY --from` instead of using pip.
uv-version = "0.11.19"

# Airflow extras are defined in separate lists to make them easier to check against the links below. The lists will be concatenated and duplicates removed in the dockerfile.
# Airflow extras are defined in separate lists to make them easier to check against the links below.
# The lists will be concatenated and duplicates removed in the dockerfile.
# TODO: Add policy for when to add extras.
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#core-airflow-extras
airflow-extras-core = "async,graphviz,kerberos,otel,sentry,standard,statsd"

Expand All @@ -54,39 +68,89 @@ airflow-extras-other = "common-compat,common-io,common-messaging,common-sql,ftp,
opa-auth-manager = "airflow-3"
nodejs-version = "20"

# Supported
# Deprecated
[versions."3.1.6".local-images]
"shared/statsd-exporter" = "0.30.0"
vector = "0.55.0"
stackable-devel = "1.0.0"

[versions."3.1.6".build-arguments]
# NOTE (@Techassi): Maybe this version can be bumped
# NOTE: This can be bumped for new airflow versions, but once set, do not updated it.
# See: https://devguide.python.org/versions/
python-version = "3.12"
git-sync-version = "v4.5.1"
git-sync-version = "v4.6.0"
# Must match the version in the constraints file.
# TODO: Check if this can be removed in favour of letting it come in via the s3fs extra and constraints.
s3fs-version = "2026.1.0"
cyclonedx-bom-version = "7.2.1"
cyclonedx-bom-version = "7.3.0"
tini-version = "0.19.0"
# NOTE (@Techassi): Maybe this version can be bumped
uv-version = "0.7.22"
# Bump to the latest release found here: https://github.com/astral-sh/uv/releases
# TODO: mirror the uv images, and then use `COPY --from` instead of using pip.
uv-version = "0.11.19"

# Airflow extras are defined in separate lists to make them easier to check against the links below.
# The lists will be concatenated and duplicates removed in the dockerfile.
# TODO: Add policy for when to add extras.
# See https://airflow.apache.org/docs/apache-airflow/3.1.6/extra-packages-ref.html#core-airflow-extras
airflow-extras-core = "async,graphviz,kerberos,otel,sentry,standard,statsd"

# See https://airflow.apache.org/docs/apache-airflow/3.1.6/extra-packages-ref.html#meta-airflow-package-extras
airflow-extras-meta = "aiobotocore,cloudpickle,github-enterprise,google-auth,graphviz,ldap,leveldb,pandas,polars,rabbitmq,s3fs,saml,uv"

# See https://airflow.apache.org/docs/apache-airflow/3.1.6/extra-packages-ref.html#apache-software-extras
airflow-extras-provider-apache = "apache-beam,apache-cassandra,apache-drill,apache-druid,apache-flink,apache-hdfs,apache-hive,apache-iceberg,apache-impala,apache-kafka,apache-kylin,apache-livy,apache-pig,apache-pinot"

# Airflow extras are defined in separate lists to make them easier to check against the links below. The lists will be concatenated and duplicates removed in the dockerfile.
# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#core-airflow-extras
# See https://airflow.apache.org/docs/apache-airflow/3.1.6/extra-packages-ref.html#external-services-extras
airflow-extras-external-services = "airbyte,alibaba,apprise,amazon,asana,atlassian-jira,microsoft-azure,cloudant,cohere,databricks,datadog,dbt-cloud,dingding,discord,facebook,github,google,hashicorp,openai,opsgenie,pagerduty,pgvector,pinecone,qdrant,salesforce,sendgrid,segment,slack,snowflake,tableau,tabular,telegram,vertica,weaviate,yandex,ydb,zendesk"

# See https://airflow.apache.org/docs/apache-airflow/3.1.6/extra-packages-ref.html#locally-installed-software-extras
airflow-extras-locally-installed-software = "arangodb,celery,cncf-kubernetes,docker,edge3,elasticsearch,exasol,fab,git,github,influxdb,jenkins,mongo,microsoft-mssql,neo4j,odbc,openfaas,oracle,postgres,presto,redis,samba,singularity,teradata,trino"

# See https://airflow.apache.org/docs/apache-airflow/3.1.6/extra-packages-ref.html#other-extras
airflow-extras-other = "common-compat,common-io,common-messaging,common-sql,ftp,grpc,http,imap,jdbc,microsoft-psrp,microsoft-winrm,openlineage,opensearch,papermill,sftp,smtp,sqlite,ssh"

opa-auth-manager = "airflow-3"
nodejs-version = "22"

# Supported
[versions."3.2.1".local-images]
"shared/statsd-exporter" = "0.30.0"
vector = "0.55.0"
stackable-devel = "1.0.0"

[versions."3.2.1".build-arguments]
# NOTE: This can be bumped for new airflow versions, but once set, do not updated it.
# See: https://devguide.python.org/versions/
python-version = "3.14"
git-sync-version = "v4.6.0"
# Must match the version in the constraints file.
# TODO: Check if this can be removed in favour of letting it come in via the s3fs extra and constraints.
s3fs-version = "2026.3.0"
cyclonedx-bom-version = "7.3.0"
tini-version = "0.19.0"
# Bump to the latest release found here: https://github.com/astral-sh/uv/releases
# TODO: mirror the uv images, and then use `COPY --from` instead of using pip.
uv-version = "0.11.19"

# Airflow extras are defined in separate lists to make them easier to check against the links below.
# The lists will be concatenated and duplicates removed in the dockerfile.
# TODO: Add policy for when to add extras.
# See https://airflow.apache.org/docs/apache-airflow/3.2.1/extra-packages-ref.html#core-airflow-extras
airflow-extras-core = "async,graphviz,kerberos,otel,sentry,standard,statsd"

# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#meta-airflow-package-extras
# See https://airflow.apache.org/docs/apache-airflow/3.2.1/extra-packages-ref.html#meta-airflow-package-extras
airflow-extras-meta = "aiobotocore,cloudpickle,github-enterprise,google-auth,graphviz,ldap,leveldb,pandas,polars,rabbitmq,s3fs,saml,uv"

# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#apache-software-extras
# See https://airflow.apache.org/docs/apache-airflow/3.2.1/extra-packages-ref.html#apache-software-extras
airflow-extras-provider-apache = "apache-beam,apache-cassandra,apache-drill,apache-druid,apache-flink,apache-hdfs,apache-hive,apache-iceberg,apache-impala,apache-kafka,apache-kylin,apache-livy,apache-pig,apache-pinot"

# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#external-services-extras
# See https://airflow.apache.org/docs/apache-airflow/3.2.1/extra-packages-ref.html#external-services-extras
airflow-extras-external-services = "airbyte,alibaba,apprise,amazon,asana,atlassian-jira,microsoft-azure,cloudant,cohere,databricks,datadog,dbt-cloud,dingding,discord,facebook,github,google,hashicorp,openai,opsgenie,pagerduty,pgvector,pinecone,qdrant,salesforce,sendgrid,segment,slack,snowflake,tableau,tabular,telegram,vertica,weaviate,yandex,ydb,zendesk"

# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#locally-installed-software-extras
# See https://airflow.apache.org/docs/apache-airflow/3.2.1/extra-packages-ref.html#locally-installed-software-extras
airflow-extras-locally-installed-software = "arangodb,celery,cncf-kubernetes,docker,edge3,elasticsearch,exasol,fab,git,github,influxdb,jenkins,mongo,microsoft-mssql,neo4j,odbc,openfaas,oracle,postgres,presto,redis,samba,singularity,teradata,trino"

# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#other-extras
# See https://airflow.apache.org/docs/apache-airflow/3.2.1/extra-packages-ref.html#other-extras
airflow-extras-other = "common-compat,common-io,common-messaging,common-sql,ftp,grpc,http,imap,jdbc,microsoft-psrp,microsoft-winrm,openlineage,opensearch,papermill,sftp,smtp,sqlite,ssh"

opa-auth-manager = "airflow-3"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Cython>=3.1.0
Loading
Loading