Skip to content

Commit 53b02df

Browse files
authored
chore(airflow): Add 3.1.5, remove 2.10.5 and 3.0.1 (#1405)
* chore(airflow): Remove unused constraints for 2.10.5 * chore(airflow): Remove unused constraints for 3.0.1 * chore(airflow): Remove unused patchable config for 2.10.5 * chore(airflow): Remove unused patchable config file for 3.0.1 * chore(airflow): Remove 2.10.5 and 3.0.1 * chore(airflow): Add 3.1.5 It should be noted that Cython had to be constrained to >= 3.1.0 which means no specific version is used. This is due to conflicts when gssapi and krb5 are built. gssapi (1.10.1) requires 3.1.3, but krb5 (0.9.0) requires 3.2.1. It might additionally also be possible to use Python 3.13 and a newer uv version, as Airflow supports Python 3.13 and uses uv 0.9.x. This will we explored in a future commit. The cyclonedx-bom generator was bumped to the latest version, but that now requires an if statement in the Dockerfile. It might be possible to also use the newer version for Airflow 3.0.6.
1 parent b5e72c2 commit 53b02df

10 files changed

Lines changed: 756 additions & 1600 deletions

airflow/Dockerfile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,11 @@ uv pip install --no-cache-dir /tmp/opa_auth_manager-0.1.0-py3-none-any.whl
168168

169169
# Create the SBOM for Airflow
170170
# Important: All `pip install` commands must be above this line, otherwise the SBOM will be incomplete
171-
cyclonedx-py environment --schema-version 1.5 --outfile /tmp/sbom.json
171+
if [ "$PRODUCT_VERSION" == "3.1.5" ]; then
172+
cyclonedx-py environment --spec-version 1.5 --output-file /tmp/sbom.json
173+
else
174+
cyclonedx-py environment --schema-version 1.5 --outfile /tmp/sbom.json
175+
fi
172176
uv pip uninstall cyclonedx-bom
173177

174178
# Break circular dependencies by removing the apache-airflow dependency from the providers

airflow/boil-config.toml

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Deprecated since SDP 25.11
12
[versions."2.9.3".local-images]
23
"shared/statsd-exporter" = "0.28.0"
34
vector = "0.52.0"
@@ -14,69 +15,76 @@ airflow-extras-other = "async,amazon,celery,cncf.kubernetes,docker,dask,elastics
1415
opa-auth-manager = "airflow-2"
1516
nodejs-version = "20"
1617

17-
[versions."2.10.5".local-images]
18+
# LTS
19+
[versions."3.0.6".local-images]
1820
"shared/statsd-exporter" = "0.28.0"
1921
vector = "0.52.0"
2022
stackable-devel = "1.0.0"
2123

22-
[versions."2.10.5".build-arguments]
24+
[versions."3.0.6".build-arguments]
2325
python-version = "3.12"
2426
git-sync-version = "v4.4.1"
2527
s3fs-version = "2024.9.0"
2628
cyclonedx-bom-version = "6.0.0"
2729
tini-version = "0.19.0"
2830
uv-version = "0.7.8"
29-
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"
30-
opa-auth-manager = "airflow-2"
31-
nodejs-version = "20"
3231

33-
[versions."3.0.1".local-images]
34-
"shared/statsd-exporter" = "0.28.0"
35-
vector = "0.52.0"
36-
stackable-devel = "1.0.0"
32+
# 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.
33+
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#core-airflow-extras
34+
airflow-extras-core = "async,graphviz,kerberos,otel,sentry,standard,statsd"
35+
36+
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#meta-airflow-package-extras
37+
airflow-extras-meta = "aiobotocore,cloudpickle,github-enterprise,google-auth,graphviz,ldap,leveldb,pandas,polars,rabbitmq,s3fs,saml,uv"
38+
39+
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#apache-software-extras
40+
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"
41+
42+
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#external-services-extras
43+
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"
44+
45+
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#locally-installed-software-extras
46+
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"
47+
48+
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#other-extras
49+
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"
3750

38-
[versions."3.0.1".build-arguments]
39-
python-version = "3.12"
40-
git-sync-version = "v4.4.1"
41-
s3fs-version = "2024.9.0"
42-
cyclonedx-bom-version = "6.0.0"
43-
tini-version = "0.19.0"
44-
uv-version = "0.7.8"
45-
airflow-extras-other = "async,amazon,celery,cncf-kubernetes,docker,elasticsearch,fab,ftp,grpc,hashicorp,http,ldap,google,microsoft-azure,odbc,pandas,postgres,redis,sendgrid,sftp,slack,ssh,statsd,trino"
4651
opa-auth-manager = "airflow-3"
4752
nodejs-version = "20"
4853

49-
[versions."3.0.6".local-images]
54+
# Supported
55+
[versions."3.1.5".local-images]
5056
"shared/statsd-exporter" = "0.28.0"
5157
vector = "0.52.0"
5258
stackable-devel = "1.0.0"
5359

54-
[versions."3.0.6".build-arguments]
60+
[versions."3.1.5".build-arguments]
61+
# NOTE (@Techassi): Maybe this version can be bumped
5562
python-version = "3.12"
56-
git-sync-version = "v4.4.1"
57-
s3fs-version = "2024.9.0"
58-
cyclonedx-bom-version = "6.0.0"
63+
git-sync-version = "v4.5.1"
64+
s3fs-version = "2026.1.0"
65+
cyclonedx-bom-version = "7.2.1"
5966
tini-version = "0.19.0"
60-
uv-version = "0.7.8"
67+
# NOTE (@Techassi): Maybe this version can be bumped
68+
uv-version = "0.7.22"
6169

6270
# 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.
63-
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#core-airflow-extras
71+
# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#core-airflow-extras
6472
airflow-extras-core = "async,graphviz,kerberos,otel,sentry,standard,statsd"
6573

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

69-
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#apache-software-extras
77+
# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#apache-software-extras
7078
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"
7179

72-
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#external-services-extras
80+
# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#external-services-extras
7381
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"
7482

75-
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#locally-installed-software-extras
83+
# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#locally-installed-software-extras
7684
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"
7785

78-
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#other-extras
86+
# See https://airflow.apache.org/docs/apache-airflow/3.1.5/extra-packages-ref.html#other-extras
7987
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"
8088

8189
opa-auth-manager = "airflow-3"
82-
nodejs-version = "20"
90+
nodejs-version = "22"

airflow/stackable/constraints/2.10.5/build-constraints-python3.12.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)