From 3575263370378167b3cf71eafa67a0af4132f850 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 28 Aug 2025 10:36:58 +0200 Subject: [PATCH 1/4] fix: Allow multiple Airflows in the same namespace to use Kubernetes executors --- CHANGELOG.md | 3 +++ rust/operator-binary/src/airflow_controller.rs | 7 +++---- rust/operator-binary/src/crd/mod.rs | 5 ++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08a078b1..6f2956db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,9 @@ - Don't panic on invalid authorization config. Previously, a missing OPA ConfigMap would crash the operator ([#667]). - Fix OPA authorization for Airflow 3. Airflow 3 needs to be configured via env variables, the operator now does this correctly ([#668]). +- Allow multiple Airflows in the same namespace to use Kubernetes executors. + Previously, the operator would always use the same name for the executor Pod template ConfigMap. + In case you had multiple Airflows, the two "fought" over writing to that ConfigMap. [#667]: https://github.com/stackabletech/airflow-operator/pull/667 [#668]: https://github.com/stackabletech/airflow-operator/pull/668 diff --git a/rust/operator-binary/src/airflow_controller.rs b/rust/operator-binary/src/airflow_controller.rs index bb2435eb..49ede89c 100644 --- a/rust/operator-binary/src/airflow_controller.rs +++ b/rust/operator-binary/src/airflow_controller.rs @@ -88,8 +88,7 @@ use crate::{ AirflowConfigOptions, AirflowExecutor, AirflowRole, CONFIG_PATH, Container, ExecutorConfig, ExecutorConfigFragment, HTTP_PORT, HTTP_PORT_NAME, LISTENER_VOLUME_DIR, LISTENER_VOLUME_NAME, LOG_CONFIG_DIR, METRICS_PORT, METRICS_PORT_NAME, OPERATOR_NAME, - STACKABLE_LOG_DIR, TEMPLATE_CONFIGMAP_NAME, TEMPLATE_LOCATION, TEMPLATE_NAME, - TEMPLATE_VOLUME_NAME, + STACKABLE_LOG_DIR, TEMPLATE_LOCATION, TEMPLATE_NAME, TEMPLATE_VOLUME_NAME, authentication::{ AirflowAuthenticationClassResolved, AirflowClientAuthenticationDetailsResolved, }, @@ -1110,7 +1109,7 @@ fn build_server_rolegroup_statefulset( if let AirflowExecutor::KubernetesExecutor { .. } = executor { pb.add_volume( VolumeBuilder::new(TEMPLATE_VOLUME_NAME) - .with_config_map(TEMPLATE_CONFIGMAP_NAME) + .with_config_map(airflow.executor_template_configmap_name()) .build(), ) .context(AddVolumeSnafu)?; @@ -1329,7 +1328,7 @@ fn build_executor_template_config_map( .metadata( ObjectMetaBuilder::new() .name_and_namespace(airflow) - .name(TEMPLATE_CONFIGMAP_NAME) + .name(airflow.executor_template_configmap_name()) .ownerreference_from_resource(airflow, None, Some(true)) .context(ObjectMissingMetadataForOwnerRefSnafu)? .with_recommended_labels(build_recommended_labels( diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index db7cd806..8f92e824 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -70,7 +70,6 @@ pub const AIRFLOW_HOME: &str = "/stackable/airflow"; pub const AIRFLOW_CONFIG_FILENAME: &str = "webserver_config.py"; pub const TEMPLATE_VOLUME_NAME: &str = "airflow-executor-pod-template"; -pub const TEMPLATE_CONFIGMAP_NAME: &str = "airflow-executor-pod-template"; pub const TEMPLATE_LOCATION: &str = "/templates"; pub const TEMPLATE_NAME: &str = "airflow_executor_pod_template.yaml"; @@ -379,6 +378,10 @@ impl v1alpha1::AirflowCluster { self.spec.cluster_config.volume_mounts.clone() } + pub fn executor_template_configmap_name(&self) -> String { + format!("{}-executor-pod-template", self.name_any()) + } + /// Retrieve and merge resource configs for role and role groups pub fn merged_config( &self, From 7f58f97e5d20d55fa3649592678d3ea74e7edbf5 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 28 Aug 2025 10:38:07 +0200 Subject: [PATCH 2/4] changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f2956db..6b2b1f04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,11 +12,12 @@ - Fix OPA authorization for Airflow 3. Airflow 3 needs to be configured via env variables, the operator now does this correctly ([#668]). - Allow multiple Airflows in the same namespace to use Kubernetes executors. Previously, the operator would always use the same name for the executor Pod template ConfigMap. - In case you had multiple Airflows, the two "fought" over writing to that ConfigMap. + In case you had multiple Airflows, the two "fought" over writing to that ConfigMap ([#678]). [#667]: https://github.com/stackabletech/airflow-operator/pull/667 [#668]: https://github.com/stackabletech/airflow-operator/pull/668 [#669]: https://github.com/stackabletech/airflow-operator/pull/669 +[#678]: https://github.com/stackabletech/airflow-operator/pull/678 ## [25.7.0] - 2025-07-23 From 6b8efbef2e5b0e1c27c56175fc6ddb060685ed9d Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 28 Aug 2025 10:39:43 +0200 Subject: [PATCH 3/4] cargo update --- Cargo.lock | 82 ++++++++++++++++++++++----------------------- Cargo.nix | 97 +++++++++++++++++++++++++++--------------------------- 2 files changed, 90 insertions(+), 89 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4ed79b51..162bd712 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -276,9 +276,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" [[package]] name = "block-buffer" @@ -313,9 +313,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.33" +version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "jobserver", "libc", @@ -343,9 +343,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "2c5e4fcf9c21d2e544ca1ee9d8552de13019a42aa7dbf32747fa7aaf1df76e57" dependencies = [ "clap_builder", "clap_derive", @@ -353,9 +353,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "fecb53a0e6fcfb055f686001bc2e2592fa527efaf38dbe81a6a9563562e57d41" dependencies = [ "anstream", "anstyle", @@ -506,12 +506,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.21.2" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08440b3dd222c3d0433e63e097463969485f112baff337dfdaca043a0d760570" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core 0.21.2", - "darling_macro 0.21.2", + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] @@ -530,9 +530,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.21.2" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25b7912bc28a04ab1b7715a68ea03aaa15662b43a1a4b2c480531fd19f8bf7e" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", @@ -555,11 +555,11 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.21.2" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce154b9bea7fb0c8e8326e62d00354000c36e79770ff21b8c84e3aa267d9d531" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core 0.21.2", + "darling_core 0.21.3", "quote", "syn 2.0.106", ] @@ -741,8 +741,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" dependencies = [ "bit-set", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata 0.4.10", + "regex-syntax 0.8.6", ] [[package]] @@ -1317,9 +1317,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", "hashbrown", @@ -1333,9 +1333,9 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" [[package]] name = "io-uring" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ "bitflags", "cfg-if", @@ -1392,9 +1392,9 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -1463,7 +1463,7 @@ name = "k8s-version" version = "0.1.3" source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" dependencies = [ - "darling 0.21.2", + "darling 0.21.3", "regex", "snafu 0.8.7", ] @@ -2107,14 +2107,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata 0.4.10", + "regex-syntax 0.8.6", ] [[package]] @@ -2128,13 +2128,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax 0.8.6", ] [[package]] @@ -2145,9 +2145,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "relative-path" @@ -2689,7 +2689,7 @@ name = "stackable-operator-derive" version = "0.3.1" source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" dependencies = [ - "darling 0.21.2", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", @@ -2754,7 +2754,7 @@ version = "0.8.1" source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.95.0#20659fe864c643fe48c7ff70ed417f0ed05ccf45" dependencies = [ "convert_case", - "darling 0.21.2", + "darling 0.21.3", "indoc", "itertools", "k8s-openapi", @@ -3247,9 +3247,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.5" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec961601b32b6f5d14ae8dabd35ff2ff2e2c6cb4c0e6641845ff105abe96d958" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -3641,9 +3641,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] diff --git a/Cargo.nix b/Cargo.nix index de9ece5f..d299c27f 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -923,9 +923,9 @@ rec { }; "bitflags" = rec { crateName = "bitflags"; - version = "2.9.2"; + version = "2.9.3"; edition = "2021"; - sha256 = "0adahzd1i2kv86k0vzkaxdcw9zjm124x9698yp7qgmiimd2varba"; + sha256 = "0pgjwsd9qgdmsmwpvg47p9ccrsc26yfjqawbhsi9qds5sg6brvrl"; authors = [ "The Rust Project Developers" ]; @@ -1017,9 +1017,9 @@ rec { }; "cc" = rec { crateName = "cc"; - version = "1.2.33"; + version = "1.2.34"; edition = "2018"; - sha256 = "0pwv1ql0gpvacwdn44643adr0s0q8p575pbp4xz5mfi26a0giq1y"; + sha256 = "1p5ycww65h7xca03lwdp264qalw8v357rg5h17s7naq3h3m4mg22"; authors = [ "Alex Crichton " ]; @@ -1124,10 +1124,10 @@ rec { }; "clap" = rec { crateName = "clap"; - version = "4.5.45"; + version = "4.5.46"; edition = "2021"; crateBin = []; - sha256 = "0663m85dd0aq1g3mkwz5b8pkjv4f5k2smlz7bagib4iqf15fgh0z"; + sha256 = "0mvfywfsyyps8wkz7nx75aj1jc715maxis8yr92fbli1kk7lypic"; dependencies = [ { name = "clap_builder"; @@ -1166,9 +1166,9 @@ rec { }; "clap_builder" = rec { crateName = "clap_builder"; - version = "4.5.44"; + version = "4.5.46"; edition = "2021"; - sha256 = "1a48x3c9q1l7r6wbgy71mq6kfsihpqzxsnbaaamcgwvp88hz9rxk"; + sha256 = "0hbxwmi3amm9ls0vx3gkz9z55ylj4lpbq0b0d1ghbyzwwsh57jzy"; dependencies = [ { name = "anstream"; @@ -1571,22 +1571,22 @@ rec { }; resolvedDefaultFeatures = [ "default" "suggestions" ]; }; - "darling 0.21.2" = rec { + "darling 0.21.3" = rec { crateName = "darling"; - version = "0.21.2"; + version = "0.21.3"; edition = "2021"; - sha256 = "0w05fq6kl16avbgkgwxg5c8myj397539gq337r1x1hr2s8yhni08"; + sha256 = "1h281ah78pz05450r71h3gwm2n24hy8yngbz58g426l4j1q37pww"; authors = [ "Ted Driggs " ]; dependencies = [ { name = "darling_core"; - packageId = "darling_core 0.21.2"; + packageId = "darling_core 0.21.3"; } { name = "darling_macro"; - packageId = "darling_macro 0.21.2"; + packageId = "darling_macro 0.21.3"; } ]; features = { @@ -1639,11 +1639,11 @@ rec { }; resolvedDefaultFeatures = [ "strsim" "suggestions" ]; }; - "darling_core 0.21.2" = rec { + "darling_core 0.21.3" = rec { crateName = "darling_core"; - version = "0.21.2"; + version = "0.21.3"; edition = "2021"; - sha256 = "0zmzz0czsc8590n4n6isnii5d8da0gm6hnkinyqlm818ph97jnyj"; + sha256 = "193ya45qgac0a4siwghk0bl8im8h89p3cald7kw8ag3yrmg1jiqj"; authors = [ "Ted Driggs " ]; @@ -1707,11 +1707,11 @@ rec { ]; }; - "darling_macro 0.21.2" = rec { + "darling_macro 0.21.3" = rec { crateName = "darling_macro"; - version = "0.21.2"; + version = "0.21.3"; edition = "2021"; - sha256 = "0cfmv5ks4fjfr2w23zvhjzkkc300ah1x0qkf6blcic3zxadln5ff"; + sha256 = "10ac85n4lnx3rmf5rw8lijl2c0sbl6ghcpgfmzh0s26ihbghi0yk"; procMacro = true; authors = [ "Ted Driggs " @@ -1719,7 +1719,7 @@ rec { dependencies = [ { name = "darling_core"; - packageId = "darling_core 0.21.2"; + packageId = "darling_core 0.21.3"; } { name = "quote"; @@ -2231,13 +2231,13 @@ rec { } { name = "regex-automata"; - packageId = "regex-automata 0.4.9"; + packageId = "regex-automata 0.4.10"; usesDefaultFeatures = false; features = [ "alloc" "syntax" "meta" "nfa" "dfa" "hybrid" ]; } { name = "regex-syntax"; - packageId = "regex-syntax 0.8.5"; + packageId = "regex-syntax 0.8.6"; usesDefaultFeatures = false; } ]; @@ -4183,9 +4183,9 @@ rec { }; "indexmap" = rec { crateName = "indexmap"; - version = "2.10.0"; + version = "2.11.0"; edition = "2021"; - sha256 = "0qd6g26gxzl6dbf132w48fa8rr95glly3jhbk90i29726d9xhk7y"; + sha256 = "1sb3nmhisf9pdwfcxzqlvx97xifcvlh5g0rqj9j7i7qg8f01jj7j"; dependencies = [ { name = "equivalent"; @@ -4205,6 +4205,7 @@ rec { "quickcheck" = [ "dep:quickcheck" ]; "rayon" = [ "dep:rayon" ]; "serde" = [ "dep:serde" ]; + "sval" = [ "dep:sval" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; @@ -4221,9 +4222,9 @@ rec { }; "io-uring" = rec { crateName = "io-uring"; - version = "0.7.9"; + version = "0.7.10"; edition = "2021"; - sha256 = "1i60fxfbxypfgfmq883kwxgldxcjlnnwjazgjiys3893fvrqfdfr"; + sha256 = "0yvjyygwdcqjcgw8zp254hvjbm7as1c075dl50spdshas3aa4vq4"; libName = "io_uring"; authors = [ "quininer " @@ -4370,9 +4371,9 @@ rec { }; "jobserver" = rec { crateName = "jobserver"; - version = "0.1.33"; + version = "0.1.34"; edition = "2021"; - sha256 = "12jkn3cxvfs7jsb6knmh9y2b41lwmrk3vdqywkmssx61jzq65wiq"; + sha256 = "0cwx0fllqzdycqn4d6nb277qx5qwnmjdxdl0lxkkwssx77j3vyws"; authors = [ "Alex Crichton " ]; @@ -4594,7 +4595,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling 0.21.2"; + packageId = "darling 0.21.3"; optional = true; } { @@ -6776,9 +6777,9 @@ rec { }; "regex" = rec { crateName = "regex"; - version = "1.11.1"; + version = "1.11.2"; edition = "2021"; - sha256 = "148i41mzbx8bmq32hsj1q4karkzzx5m60qza6gdw4pdc9qdyyi5m"; + sha256 = "04k9rzxd11hcahpyihlswy6f1zqw7lspirv4imm4h0lcdl8gvmr3"; authors = [ "The Rust Project Developers" "Andrew Gallant " @@ -6798,13 +6799,13 @@ rec { } { name = "regex-automata"; - packageId = "regex-automata 0.4.9"; + packageId = "regex-automata 0.4.10"; usesDefaultFeatures = false; features = [ "alloc" "syntax" "meta" "nfa-pikevm" ]; } { name = "regex-syntax"; - packageId = "regex-syntax 0.8.5"; + packageId = "regex-syntax 0.8.6"; usesDefaultFeatures = false; } ]; @@ -6857,11 +6858,11 @@ rec { }; resolvedDefaultFeatures = [ "default" "regex-syntax" "std" ]; }; - "regex-automata 0.4.9" = rec { + "regex-automata 0.4.10" = rec { crateName = "regex-automata"; - version = "0.4.9"; + version = "0.4.10"; edition = "2021"; - sha256 = "02092l8zfh3vkmk47yjc8d631zhhcd49ck2zr133prvd3z38v7l0"; + sha256 = "1mllcfmgjcl6d52d5k09lwwq9wj5mwxccix4bhmw5spy1gx5i53b"; libName = "regex_automata"; authors = [ "The Rust Project Developers" @@ -6882,7 +6883,7 @@ rec { } { name = "regex-syntax"; - packageId = "regex-syntax 0.8.5"; + packageId = "regex-syntax 0.8.6"; optional = true; usesDefaultFeatures = false; } @@ -6903,7 +6904,7 @@ rec { "nfa-thompson" = [ "alloc" ]; "perf" = [ "perf-inline" "perf-literal" ]; "perf-literal" = [ "perf-literal-substring" "perf-literal-multisubstring" ]; - "perf-literal-multisubstring" = [ "std" "dep:aho-corasick" ]; + "perf-literal-multisubstring" = [ "dep:aho-corasick" ]; "perf-literal-substring" = [ "aho-corasick?/perf-literal" "dep:memchr" ]; "std" = [ "regex-syntax?/std" "memchr?/std" "aho-corasick?/std" "alloc" ]; "syntax" = [ "dep:regex-syntax" "alloc" ]; @@ -6933,11 +6934,11 @@ rec { }; resolvedDefaultFeatures = [ "default" "unicode" "unicode-age" "unicode-bool" "unicode-case" "unicode-gencat" "unicode-perl" "unicode-script" "unicode-segment" ]; }; - "regex-syntax 0.8.5" = rec { + "regex-syntax 0.8.6" = rec { crateName = "regex-syntax"; - version = "0.8.5"; + version = "0.8.6"; edition = "2021"; - sha256 = "0p41p3hj9ww7blnbwbj9h7rwxzxg0c1hvrdycgys8rxyhqqw859b"; + sha256 = "00chjpglclfskmc919fj5aq308ffbrmcn7kzbkz92k231xdsmx6a"; libName = "regex_syntax"; authors = [ "The Rust Project Developers" @@ -8766,7 +8767,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling 0.21.2"; + packageId = "darling 0.21.3"; } { name = "proc-macro2"; @@ -9034,7 +9035,7 @@ rec { } { name = "darling"; - packageId = "darling 0.21.2"; + packageId = "darling 0.21.3"; } { name = "indoc"; @@ -10797,9 +10798,9 @@ rec { }; "url" = rec { crateName = "url"; - version = "2.5.5"; + version = "2.5.7"; edition = "2018"; - sha256 = "0n6rjsz5l47z8lc69rn0nin2qbpzy9gx7awdmqa5svrbnc0id5pc"; + sha256 = "0nzghdv0kcksyvri0npxbjzyx2ihprks5k590y77bld355m17g08"; authors = [ "The rust-url developers" ]; @@ -10840,7 +10841,7 @@ rec { features = { "default" = [ "std" ]; "serde" = [ "dep:serde" ]; - "std" = [ "idna/std" "percent-encoding/std" "form_urlencoded/std" ]; + "std" = [ "idna/std" "percent-encoding/std" "form_urlencoded/std" "serde/std" ]; }; resolvedDefaultFeatures = [ "default" "serde" "std" ]; }; @@ -12919,9 +12920,9 @@ rec { }; "winnow" = rec { crateName = "winnow"; - version = "0.7.12"; + version = "0.7.13"; edition = "2021"; - sha256 = "159y8inpy86xswmr4yig9hxss0v2fssyqy1kk12504n8jbsfpvgk"; + sha256 = "1krrjc1wj2vx0r57m9nwnlc1zrhga3fq41d8w9hysvvqb5mj7811"; dependencies = [ { name = "memchr"; From 5ff5cddf2df111140f2f6c67d0560c1b957d648f Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 28 Aug 2025 13:13:43 +0200 Subject: [PATCH 4/4] Update CHANGELOG.md Co-authored-by: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b2b1f04..076279cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ - Fix OPA authorization for Airflow 3. Airflow 3 needs to be configured via env variables, the operator now does this correctly ([#668]). - Allow multiple Airflows in the same namespace to use Kubernetes executors. Previously, the operator would always use the same name for the executor Pod template ConfigMap. - In case you had multiple Airflows, the two "fought" over writing to that ConfigMap ([#678]). + Thus when deploying multiple Airflow instances in the same namespace, there would be a conflict over the contents of that ConfigMap ([#678]). [#667]: https://github.com/stackabletech/airflow-operator/pull/667 [#668]: https://github.com/stackabletech/airflow-operator/pull/668