From bae548e071167577bf794467f0385ade8a399a58 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Mon, 19 Oct 2026 14:40:21 +0200 Subject: [PATCH 1/3] chore: Replace 3.3.1 with 3.3.2 --- CHANGELOG.md | 2 +- .../examples/example-airflow-dag-bundles.yaml | 6 +++--- .../examples/example-airflow-dags-configmap.yaml | 2 +- .../examples/example-airflow-gitsync-https.yaml | 2 +- .../airflow/examples/example-airflow-incluster.yaml | 2 +- ...ample-airflow-kubernetes-executor-s3-logging.yaml | 2 +- .../example-airflow-kubernetes-executor-s3-xcom.yaml | 2 +- .../examples/getting_started/code/airflow.yaml | 2 +- docs/modules/airflow/pages/usage-guide/security.adoc | 4 ++-- .../modules/airflow/partials/supported-versions.adoc | 2 +- rust/operator-binary/src/controller/build/mod.rs | 4 ++-- .../src/controller/build/properties/env_vars.rs | 2 +- .../build/properties/product_logging/mod.rs | 4 ++-- .../controller/build/properties/webserver_config.rs | 2 +- rust/operator-binary/src/controller/mod.rs | 2 +- rust/operator-binary/src/controller/validate.rs | 12 ++++++------ rust/operator-binary/src/crd/affinity.rs | 4 ++-- rust/operator-binary/src/crd/mod.rs | 4 ++-- tests/templates/kuttl/commons/metrics.py | 2 +- tests/templates/kuttl/triggerer/triggerer_metrics.py | 2 +- tests/test-definition.yaml | 4 ++-- 21 files changed, 34 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23f4fd92..9dfb913a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ ([#862]). - Support for configuring which reverse proxies the webserver trusts `X-Forwarded-*` headers from, via `spec.webservers.roleConfig.trustedProxies` ([#835]). -- Added airflow `3.3.1` ([#865]). +- Added airflow `3.3.2` ([#865]). - Add `/ready` endpoint to the operator Deployment, which reports the CRD installation status ([#868]). - Webservers now have a default affinity to the OPA Pods when OPA authorization is configured ([#872]). diff --git a/docs/modules/airflow/examples/example-airflow-dag-bundles.yaml b/docs/modules/airflow/examples/example-airflow-dag-bundles.yaml index a123b59e..e3a22aad 100644 --- a/docs/modules/airflow/examples/example-airflow-dag-bundles.yaml +++ b/docs/modules/airflow/examples/example-airflow-dag-bundles.yaml @@ -5,7 +5,7 @@ metadata: name: airflow-dag-bundles spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: loadExamples: false exposeConfig: false @@ -24,7 +24,7 @@ spec: "classpath": "airflow.providers.git.bundles.git.GitDagBundle", "kwargs": { "git_conn_id": "repo1", - "tracking_ref": "3.3.1", + "tracking_ref": "3.3.2", "subdir": "airflow-core/src/airflow/example_dags" } }, @@ -33,7 +33,7 @@ spec: "classpath": "airflow.providers.git.bundles.git.GitDagBundle", "kwargs": { "git_conn_id": "repo2", - "tracking_ref": "3.3.1", + "tracking_ref": "3.3.2", "subdir": "airflow-core/src/airflow/example_dags" } } diff --git a/docs/modules/airflow/examples/example-airflow-dags-configmap.yaml b/docs/modules/airflow/examples/example-airflow-dags-configmap.yaml index fbe0577c..d076dc5e 100644 --- a/docs/modules/airflow/examples/example-airflow-dags-configmap.yaml +++ b/docs/modules/airflow/examples/example-airflow-dags-configmap.yaml @@ -5,7 +5,7 @@ metadata: name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: credentialsSecretName: airflow-admin-credentials metadataDatabase: diff --git a/docs/modules/airflow/examples/example-airflow-gitsync-https.yaml b/docs/modules/airflow/examples/example-airflow-gitsync-https.yaml index e38f2b0b..84d43095 100644 --- a/docs/modules/airflow/examples/example-airflow-gitsync-https.yaml +++ b/docs/modules/airflow/examples/example-airflow-gitsync-https.yaml @@ -5,7 +5,7 @@ metadata: name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: loadExamples: false exposeConfig: false diff --git a/docs/modules/airflow/examples/example-airflow-incluster.yaml b/docs/modules/airflow/examples/example-airflow-incluster.yaml index d1f3d317..c3401cb4 100644 --- a/docs/modules/airflow/examples/example-airflow-incluster.yaml +++ b/docs/modules/airflow/examples/example-airflow-incluster.yaml @@ -5,7 +5,7 @@ metadata: name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: loadExamples: false exposeConfig: false diff --git a/docs/modules/airflow/examples/example-airflow-kubernetes-executor-s3-logging.yaml b/docs/modules/airflow/examples/example-airflow-kubernetes-executor-s3-logging.yaml index 14a6f599..2954f984 100644 --- a/docs/modules/airflow/examples/example-airflow-kubernetes-executor-s3-logging.yaml +++ b/docs/modules/airflow/examples/example-airflow-kubernetes-executor-s3-logging.yaml @@ -5,7 +5,7 @@ metadata: name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: {} webservers: roleConfig: diff --git a/docs/modules/airflow/examples/example-airflow-kubernetes-executor-s3-xcom.yaml b/docs/modules/airflow/examples/example-airflow-kubernetes-executor-s3-xcom.yaml index 8f0e938d..4fd8caef 100644 --- a/docs/modules/airflow/examples/example-airflow-kubernetes-executor-s3-xcom.yaml +++ b/docs/modules/airflow/examples/example-airflow-kubernetes-executor-s3-xcom.yaml @@ -5,7 +5,7 @@ metadata: name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: {} webservers: roleConfig: diff --git a/docs/modules/airflow/examples/getting_started/code/airflow.yaml b/docs/modules/airflow/examples/getting_started/code/airflow.yaml index d117d46b..c1b7e5ba 100644 --- a/docs/modules/airflow/examples/getting_started/code/airflow.yaml +++ b/docs/modules/airflow/examples/getting_started/code/airflow.yaml @@ -5,7 +5,7 @@ metadata: name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 pullPolicy: IfNotPresent clusterConfig: loadExamples: true diff --git a/docs/modules/airflow/pages/usage-guide/security.adoc b/docs/modules/airflow/pages/usage-guide/security.adoc index 337f1581..3e4dadd8 100644 --- a/docs/modules/airflow/pages/usage-guide/security.adoc +++ b/docs/modules/airflow/pages/usage-guide/security.adoc @@ -37,7 +37,7 @@ metadata: name: airflow-with-ldap spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: authentication: - authenticationClass: ldap # <1> @@ -77,7 +77,7 @@ metadata: name: airflow-with-oidc spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: authentication: - authenticationClass: keycloak # <1> diff --git a/docs/modules/airflow/partials/supported-versions.adoc b/docs/modules/airflow/partials/supported-versions.adoc index 7db8d8c8..209ddc9a 100644 --- a/docs/modules/airflow/partials/supported-versions.adoc +++ b/docs/modules/airflow/partials/supported-versions.adoc @@ -2,7 +2,7 @@ // This is a separate file, since it is used by both the direct Airflow-Operator documentation, and the overarching // Stackable Platform documentation. -- 3.3.1 +- 3.3.2 - 3.2.2 (deprecated) - 3.0.6 (LTS) - 2.9.3 (deprecated) diff --git a/rust/operator-binary/src/controller/build/mod.rs b/rust/operator-binary/src/controller/build/mod.rs index 75ae950f..614ffbaa 100644 --- a/rust/operator-binary/src/controller/build/mod.rs +++ b/rust/operator-binary/src/controller/build/mod.rs @@ -316,7 +316,7 @@ pub(crate) mod test_support { uid: e6ac237d-a6d4-43a1-8135-f36506110912 spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: loadExamples: false exposeConfig: false @@ -582,7 +582,7 @@ mod tests { "airflow.stackable.tech_airflowcluster", ), ("app.kubernetes.io/name", "airflow"), - ("app.kubernetes.io/version", &app_version_label("3.3.1")), + ("app.kubernetes.io/version", &app_version_label("3.3.2")), ("stackable.tech/vendor", "Stackable"), ] .map(|(key, value)| (key.to_string(), value.to_string())), diff --git a/rust/operator-binary/src/controller/build/properties/env_vars.rs b/rust/operator-binary/src/controller/build/properties/env_vars.rs index 4fd72d37..25a1a59f 100644 --- a/rust/operator-binary/src/controller/build/properties/env_vars.rs +++ b/rust/operator-binary/src/controller/build/properties/env_vars.rs @@ -556,7 +556,7 @@ mod tests { #[test] fn test_airflow_3_authorization_env_vars() { let authorization_config = get_test_authorization_config(); - let authorization_env_vars = authorization_env_vars(&authorization_config, "3.3.1"); + let authorization_env_vars = authorization_env_vars(&authorization_config, "3.3.2"); let authorization_env_vars = authorization_env_vars .into_iter() .map(|env| (env.name, env.value.expect("env var value must be present"))) diff --git a/rust/operator-binary/src/controller/build/properties/product_logging/mod.rs b/rust/operator-binary/src/controller/build/properties/product_logging/mod.rs index 64661ed4..946e0e60 100644 --- a/rust/operator-binary/src/controller/build/properties/product_logging/mod.rs +++ b/rust/operator-binary/src/controller/build/properties/product_logging/mod.rs @@ -318,7 +318,7 @@ mod tests { create_airflow_stdlib_config( &log_config, "/stackable/log/airflow", - &resolved_image("3.3.1"), + &resolved_image("3.3.2"), ), create_airflow_structlog_config(&log_config, "/stackable/log/airflow"), ] { @@ -346,7 +346,7 @@ mod tests { let structlog_content = create_airflow_config( &log_config, "/stackable/log/airflow", - &resolved_image("3.3.1"), + &resolved_image("3.3.2"), ) .expect("automatic log config produces content"); assert!(stdlib_content.contains("deepcopy(airflow_local_settings.DEFAULT_LOGGING_CONFIG)")); diff --git a/rust/operator-binary/src/controller/build/properties/webserver_config.rs b/rust/operator-binary/src/controller/build/properties/webserver_config.rs index bf5f0f49..16d38bc1 100644 --- a/rust/operator-binary/src/controller/build/properties/webserver_config.rs +++ b/rust/operator-binary/src/controller/build/properties/webserver_config.rs @@ -411,7 +411,7 @@ mod tests { authorization::{AirflowAuthorizationResolved, OpaConfigResolved}, }; - const TEST_AIRFLOW_VERSION: &str = "3.3.1"; + const TEST_AIRFLOW_VERSION: &str = "3.3.2"; #[test] fn test_auth_db_config() { diff --git a/rust/operator-binary/src/controller/mod.rs b/rust/operator-binary/src/controller/mod.rs index 3e2139d1..31f11e96 100644 --- a/rust/operator-binary/src/controller/mod.rs +++ b/rust/operator-binary/src/controller/mod.rs @@ -647,7 +647,7 @@ mod tests { uid: e6ac237d-a6d4-43a1-8135-f36506110912 spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: credentialsSecretName: airflow-admin-credentials metadataDatabase: diff --git a/rust/operator-binary/src/controller/validate.rs b/rust/operator-binary/src/controller/validate.rs index 30955529..97541168 100644 --- a/rust/operator-binary/src/controller/validate.rs +++ b/rust/operator-binary/src/controller/validate.rs @@ -458,9 +458,9 @@ mod tests { fn test_resolved_product_image() -> stackable_operator::commons::product_image_selection::ResolvedProductImage { stackable_operator::commons::product_image_selection::ResolvedProductImage { - product_version: "3.3.1".to_string(), - app_version_label_value: "3.3.1".parse().expect("valid label value"), - image: "oci.example.org/sdp/airflow:3.3.1-stackable0.0.0-dev".to_string(), + product_version: "3.3.2".to_string(), + app_version_label_value: "3.3.2".parse().expect("valid label value"), + image: "oci.example.org/sdp/airflow:3.3.2-stackable0.0.0-dev".to_string(), image_pull_policy: "IfNotPresent".to_string(), pull_secrets: None, } @@ -474,7 +474,7 @@ mod tests { name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: loadExamples: false exposeConfig: false @@ -574,7 +574,7 @@ mod tests { name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: loadExamples: false exposeConfig: false @@ -654,7 +654,7 @@ mod tests { name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: loadExamples: false exposeConfig: false diff --git a/rust/operator-binary/src/crd/affinity.rs b/rust/operator-binary/src/crd/affinity.rs index 5cf73b6b..4da5bb31 100644 --- a/rust/operator-binary/src/crd/affinity.rs +++ b/rust/operator-binary/src/crd/affinity.rs @@ -106,7 +106,7 @@ mod tests { name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: credentialsSecretName: airflow-admin-credentials metadataDatabase: @@ -251,7 +251,7 @@ mod tests { name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: credentialsSecretName: airflow-admin-credentials metadataDatabase: diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index fd494990..be2f71c7 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -1064,7 +1064,7 @@ mod tests { name: airflow spec: image: - productVersion: 3.3.1 + productVersion: 3.3.2 clusterConfig: loadExamples: true exposeConfig: true @@ -1101,7 +1101,7 @@ mod tests { ) .expect("test: resolved product image is always valid"); - assert_eq!("3.3.1", &resolved_airflow_image.product_version); + assert_eq!("3.3.2", &resolved_airflow_image.product_version); assert_eq!( "KubernetesExecutor", diff --git a/tests/templates/kuttl/commons/metrics.py b/tests/templates/kuttl/commons/metrics.py index 22c64c81..b8ef66c4 100755 --- a/tests/templates/kuttl/commons/metrics.py +++ b/tests/templates/kuttl/commons/metrics.py @@ -27,7 +27,7 @@ def assert_metric(role, role_group, metric): # Check if dag run state is "success", "queued", or "running" # TODO: in future, we could wait on it. -# See: https://airflow.apache.org/docs/apache-airflow/3.3.1/stable-rest-api-ref.html +# See: https://airflow.apache.org/docs/apache-airflow/3.3.2/stable-rest-api-ref.html def assert_dag_started(rest_url, headers, dag_id, dag_run_id): dag_run_response = requests.get( f"{rest_url}/dags/{dag_id}/dagRuns/{dag_run_id}", headers=headers diff --git a/tests/templates/kuttl/triggerer/triggerer_metrics.py b/tests/templates/kuttl/triggerer/triggerer_metrics.py index dc8899d1..ddaadb24 100755 --- a/tests/templates/kuttl/triggerer/triggerer_metrics.py +++ b/tests/templates/kuttl/triggerer/triggerer_metrics.py @@ -27,7 +27,7 @@ def assert_metric(role, role_group, metric): # Check if dag run state is "success", "queued", or "running" # TODO: in future, we could wait on it. -# See: https://airflow.apache.org/docs/apache-airflow/3.3.1/stable-rest-api-ref.html +# See: https://airflow.apache.org/docs/apache-airflow/3.3.2/stable-rest-api-ref.html def assert_dag_started(rest_url, headers, dag_id, dag_run_id): dag_run_response = requests.get( f"{rest_url}/dags/{dag_id}/dagRuns/{dag_run_id}", headers=headers diff --git a/tests/test-definition.yaml b/tests/test-definition.yaml index 2a9f2eb1..b349bd54 100644 --- a/tests/test-definition.yaml +++ b/tests/test-definition.yaml @@ -10,12 +10,12 @@ dimensions: - 2.9.3 - 3.0.6 - 3.2.2 - - 3.3.1 + - 3.3.2 # To use a custom image, add a comma and the full name after the product version # - x.x.x,oci.stackable.tech/sandbox/airflow:x.x.x-stackable0.0.0-dev - name: airflow-latest values: - - 3.3.1 + - 3.3.2 # To use a custom image, add a comma and the full name after the product version # - x.x.x,oci.stackable.tech/sandbox/airflow:x.x.x-stackable0.0.0-dev - name: opa-latest From 138728e42fd801bf121e3a1951402654adfc15cd Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com> Date: Tue, 20 Oct 2026 12:03:36 +0200 Subject: [PATCH 2/3] Update CHANGELOG.md Co-authored-by: Nick <10092581+NickLarsenNZ@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9dfb913a..07f2f4bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ ([#862]). - Support for configuring which reverse proxies the webserver trusts `X-Forwarded-*` headers from, via `spec.webservers.roleConfig.trustedProxies` ([#835]). -- Added airflow `3.3.2` ([#865]). +- Added airflow `3.3.2` ([#865], [#884]). - Add `/ready` endpoint to the operator Deployment, which reports the CRD installation status ([#868]). - Webservers now have a default affinity to the OPA Pods when OPA authorization is configured ([#872]). From 1e2a4e731ac5c06f7aad83f48a3328b5ec314e20 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Tue, 20 Oct 2026 12:04:27 +0200 Subject: [PATCH 3/3] added link to changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07f2f4bc..7b6f10d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -100,6 +100,7 @@ [#879]: https://github.com/stackabletech/airflow-operator/pull/879 [#880]: https://github.com/stackabletech/airflow-operator/pull/880 [#881]: https://github.com/stackabletech/airflow-operator/pull/881 +[#884]: https://github.com/stackabletech/airflow-operator/pull/884 ## [26.7.0] - 2026-07-21