From cf5259c0cc892a03dcf1e902925497a229879d4e Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 12 Jan 2026 14:01:00 +0100 Subject: [PATCH 1/3] feat: Support objectOverrides --- Cargo.lock | 68 +++++-- Cargo.nix | 173 +++++++++++++----- Cargo.toml | 4 +- crate-hashes.json | 14 +- deploy/helm/listener-operator/crds/crds.yaml | 14 ++ .../src/listener_controller.rs | 1 + 6 files changed, 205 insertions(+), 69 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0870dea3..22805d6c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -386,9 +386,9 @@ dependencies = [ [[package]] name = "convert_case" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" dependencies = [ "unicode-segmentation", ] @@ -469,8 +469,18 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -487,13 +497,37 @@ dependencies = [ "syn 2.0.108", ] +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.108", +] + [[package]] name = "darling_macro" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", "quote", "syn 2.0.108", ] @@ -1341,9 +1375,9 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#e1134e44a055baaa22a9b854db2e2dea167638dd" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" dependencies = [ - "darling", + "darling 0.23.0", "regex", "snafu 0.8.9", ] @@ -1418,7 +1452,7 @@ name = "kube-derive" version = "2.0.1" source = "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#26543e85dc7daaf82d8f7dbd902b26775798879e" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", "serde", @@ -2548,8 +2582,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.100.2" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#e1134e44a055baaa22a9b854db2e2dea167638dd" +version = "0.101.2" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" dependencies = [ "chrono", "clap", @@ -2587,9 +2621,9 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#e1134e44a055baaa22a9b854db2e2dea167638dd" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" dependencies = [ - "darling", + "darling 0.23.0", "proc-macro2", "quote", "syn 2.0.108", @@ -2598,7 +2632,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#e1134e44a055baaa22a9b854db2e2dea167638dd" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" dependencies = [ "chrono", "k8s-openapi", @@ -2615,7 +2649,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#e1134e44a055baaa22a9b854db2e2dea167638dd" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" dependencies = [ "axum", "clap", @@ -2639,7 +2673,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#e1134e44a055baaa22a9b854db2e2dea167638dd" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" dependencies = [ "schemars", "serde", @@ -2652,10 +2686,10 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#e1134e44a055baaa22a9b854db2e2dea167638dd" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" dependencies = [ "convert_case", - "darling", + "darling 0.23.0", "indoc", "itertools", "k8s-openapi", diff --git a/Cargo.nix b/Cargo.nix index 424e5eb5..e0f69c4d 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -1242,9 +1242,9 @@ rec { }; "convert_case" = rec { crateName = "convert_case"; - version = "0.8.0"; + version = "0.10.0"; edition = "2021"; - sha256 = "17zqy79xlr1n7nc0n1mlnw5qpp8l2nbxrk13jixrhlavrbna1ams"; + sha256 = "1fff1x78mp2c233g68my0ag0zrmjdbym8bfyahjbfy4cxza5hd33"; authors = [ "rutrum " ]; @@ -1254,10 +1254,7 @@ rec { packageId = "unicode-segmentation"; } ]; - features = { - "rand" = [ "dep:rand" ]; - "random" = [ "rand" ]; - }; + }; "core-foundation" = rec { crateName = "core-foundation"; @@ -1449,7 +1446,7 @@ rec { ]; }; - "darling" = rec { + "darling 0.21.3" = rec { crateName = "darling"; version = "0.21.3"; edition = "2021"; @@ -1460,11 +1457,37 @@ rec { dependencies = [ { name = "darling_core"; - packageId = "darling_core"; + packageId = "darling_core 0.21.3"; + } + { + name = "darling_macro"; + packageId = "darling_macro 0.21.3"; + } + ]; + features = { + "default" = [ "suggestions" ]; + "diagnostics" = [ "darling_core/diagnostics" ]; + "serde" = [ "darling_core/serde" ]; + "suggestions" = [ "darling_core/suggestions" ]; + }; + resolvedDefaultFeatures = [ "default" "suggestions" ]; + }; + "darling 0.23.0" = rec { + crateName = "darling"; + version = "0.23.0"; + edition = "2021"; + sha256 = "179fj6p6ajw4dnkrik51wjhifxwy02x5zhligyymcb905zd17bi5"; + authors = [ + "Ted Driggs " + ]; + dependencies = [ + { + name = "darling_core"; + packageId = "darling_core 0.23.0"; } { name = "darling_macro"; - packageId = "darling_macro"; + packageId = "darling_macro 0.23.0"; } ]; features = { @@ -1475,7 +1498,7 @@ rec { }; resolvedDefaultFeatures = [ "default" "suggestions" ]; }; - "darling_core" = rec { + "darling_core 0.21.3" = rec { crateName = "darling_core"; version = "0.21.3"; edition = "2021"; @@ -1518,7 +1541,46 @@ rec { }; resolvedDefaultFeatures = [ "strsim" "suggestions" ]; }; - "darling_macro" = rec { + "darling_core 0.23.0" = rec { + crateName = "darling_core"; + version = "0.23.0"; + edition = "2021"; + sha256 = "1c033vrks38vpw8kwgd5w088dsr511kfz55n9db56prkgh7sarcq"; + authors = [ + "Ted Driggs " + ]; + dependencies = [ + { + name = "ident_case"; + packageId = "ident_case"; + } + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "strsim"; + packageId = "strsim"; + optional = true; + } + { + name = "syn"; + packageId = "syn 2.0.108"; + features = [ "full" "extra-traits" ]; + } + ]; + features = { + "serde" = [ "dep:serde" ]; + "strsim" = [ "dep:strsim" ]; + "suggestions" = [ "strsim" ]; + }; + resolvedDefaultFeatures = [ "strsim" "suggestions" ]; + }; + "darling_macro 0.21.3" = rec { crateName = "darling_macro"; version = "0.21.3"; edition = "2021"; @@ -1530,7 +1592,32 @@ rec { dependencies = [ { name = "darling_core"; - packageId = "darling_core"; + packageId = "darling_core 0.21.3"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.108"; + } + ]; + + }; + "darling_macro 0.23.0" = rec { + crateName = "darling_macro"; + version = "0.23.0"; + edition = "2021"; + sha256 = "13fvzji9xyp304mgq720z5l0xgm54qj68jibwscagkynggn88fdc"; + procMacro = true; + authors = [ + "Ted Driggs " + ]; + dependencies = [ + { + name = "darling_core"; + packageId = "darling_core 0.23.0"; } { name = "quote"; @@ -4213,9 +4300,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "e1134e44a055baaa22a9b854db2e2dea167638dd"; - sha256 = "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "e9ba24709c95978cc76d164789a9017aa965a889"; + sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; }; libName = "k8s_version"; authors = [ @@ -4224,7 +4311,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling"; + packageId = "darling 0.23.0"; optional = true; } { @@ -4318,7 +4405,7 @@ rec { "webpki-roots" = [ "kube-client/webpki-roots" "client" ]; "ws" = [ "kube-client/ws" "kube-core/ws" ]; }; - resolvedDefaultFeatures = [ "client" "config" "derive" "jsonpatch" "kube-client" "kube-derive" "kube-runtime" "ring" "runtime" "rustls-tls" ]; + resolvedDefaultFeatures = [ "admission" "client" "config" "derive" "jsonpatch" "kube-client" "kube-derive" "kube-runtime" "ring" "runtime" "rustls-tls" ]; }; "kube-client" = rec { crateName = "kube-client"; @@ -4643,7 +4730,7 @@ rec { "schema" = [ "schemars" ]; "schemars" = [ "dep:schemars" ]; }; - resolvedDefaultFeatures = [ "json-patch" "jsonpatch" "schema" "schemars" ]; + resolvedDefaultFeatures = [ "admission" "json-patch" "jsonpatch" "schema" "schemars" ]; }; "kube-derive" = rec { crateName = "kube-derive"; @@ -4665,7 +4752,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling"; + packageId = "darling 0.21.3"; } { name = "proc-macro2"; @@ -8462,13 +8549,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.100.2"; + version = "0.101.2"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "e1134e44a055baaa22a9b854db2e2dea167638dd"; - sha256 = "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "e9ba24709c95978cc76d164789a9017aa965a889"; + sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; }; libName = "stackable_operator"; authors = [ @@ -8533,7 +8620,7 @@ rec { name = "kube"; packageId = "kube"; usesDefaultFeatures = false; - features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + features = [ "client" "jsonpatch" "runtime" "derive" "admission" "rustls-tls" "ring" ]; } { name = "product-config"; @@ -8635,9 +8722,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "e1134e44a055baaa22a9b854db2e2dea167638dd"; - sha256 = "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "e9ba24709c95978cc76d164789a9017aa965a889"; + sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -8647,7 +8734,7 @@ rec { dependencies = [ { name = "darling"; - packageId = "darling"; + packageId = "darling 0.23.0"; } { name = "proc-macro2"; @@ -8670,9 +8757,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "e1134e44a055baaa22a9b854db2e2dea167638dd"; - sha256 = "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "e9ba24709c95978cc76d164789a9017aa965a889"; + sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; }; libName = "stackable_shared"; authors = [ @@ -8695,7 +8782,7 @@ rec { name = "kube"; packageId = "kube"; usesDefaultFeatures = false; - features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + features = [ "client" "jsonpatch" "runtime" "derive" "admission" "rustls-tls" "ring" ]; } { name = "schemars"; @@ -8752,9 +8839,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "e1134e44a055baaa22a9b854db2e2dea167638dd"; - sha256 = "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "e9ba24709c95978cc76d164789a9017aa965a889"; + sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; }; libName = "stackable_telemetry"; authors = [ @@ -8862,9 +8949,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "e1134e44a055baaa22a9b854db2e2dea167638dd"; - sha256 = "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "e9ba24709c95978cc76d164789a9017aa965a889"; + sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; }; libName = "stackable_versioned"; authors = [ @@ -8906,9 +8993,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "e1134e44a055baaa22a9b854db2e2dea167638dd"; - sha256 = "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "e9ba24709c95978cc76d164789a9017aa965a889"; + sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -8922,7 +9009,7 @@ rec { } { name = "darling"; - packageId = "darling"; + packageId = "darling 0.23.0"; } { name = "indoc"; @@ -8947,7 +9034,7 @@ rec { name = "kube"; packageId = "kube"; usesDefaultFeatures = false; - features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + features = [ "client" "jsonpatch" "runtime" "derive" "admission" "rustls-tls" "ring" ]; } { name = "proc-macro2"; diff --git a/Cargo.toml b/Cargo.toml index e3cc3315..c7179033 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ edition = "2021" repository = "https://github.com/stackabletech/listener-operator" [workspace.dependencies] -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.100.2", features = ["telemetry", "versioned"] } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.101.2", features = ["telemetry", "versioned"] } anyhow = "1.0" built = { version = "0.8", features = ["chrono", "git2"] } @@ -44,4 +44,4 @@ kube = { git = "https://github.com/stackabletech/kube-rs", branch = "2.0.1-fix-s [patch."https://github.com/stackabletech/operator-rs.git"] # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } -# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } +stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "chore/add-object-overrides-to-listener" } diff --git a/crate-hashes.json b/crate-hashes.json index bdbf448f..b283232f 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,15 +1,15 @@ { + "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#k8s-version@0.1.3": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", + "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-operator-derive@0.3.1": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", + "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-operator@0.101.2": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", + "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-shared@0.0.3": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", + "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-telemetry@0.6.1": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", + "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-versioned-macros@0.8.3": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", + "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-versioned@0.8.3": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-client@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-core@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-derive@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-runtime@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#k8s-version@0.1.3": "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#stackable-operator-derive@0.3.1": "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#stackable-operator@0.100.2": "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#stackable-shared@0.0.3": "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#stackable-telemetry@0.6.1": "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#stackable-versioned-macros@0.8.3": "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.2#stackable-versioned@0.8.3": "1csgrq6d3393i5j4p5f2jgafsf11v49v5lnbwfvn2yaxalhmsjq8", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file diff --git a/deploy/helm/listener-operator/crds/crds.yaml b/deploy/helm/listener-operator/crds/crds.yaml index b6c9305b..bb582426 100644 --- a/deploy/helm/listener-operator/crds/crds.yaml +++ b/deploy/helm/listener-operator/crds/crds.yaml @@ -153,6 +153,20 @@ spec: default: {} description: Extra labels that the Pods must match in order to be exposed. They must _also_ still have a Volume referring to the Listener. type: object + objectOverrides: + default: [] + description: |- + A list of generic Kubernetes objects, which are merged into the objects that the operator + creates. + + List entries are arbitrary YAML objects, which need to be valid Kubernetes objects. + + Read the [Object overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#object-overrides) + for more information. + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array ports: description: Ports that should be exposed. items: diff --git a/rust/operator-binary/src/listener_controller.rs b/rust/operator-binary/src/listener_controller.rs index 2ead79dd..38dd1d3d 100644 --- a/rust/operator-binary/src/listener_controller.rs +++ b/rust/operator-binary/src/listener_controller.rs @@ -274,6 +274,7 @@ pub async fn reconcile( &listener.object_ref(&()), // Listeners don't currently support pausing ClusterResourceApplyStrategy::Default, + &listener.spec.object_overrides, ) .context(CreateClusterResourcesSnafu)?; From fdc4e72c486c813cb9cec348d6df628bf9b8107b Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Mon, 12 Jan 2026 14:02:26 +0100 Subject: [PATCH 2/3] changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b04a7e7..064d5e17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- Support objectOverrides using `.spec.objectOverrides` on the `Listener`. + See [objectOverrides concepts page](https://docs.stackable.tech/home/nightly/concepts/overrides/#object-overrides) for details ([#364]). + ### Changed - OLM deployer doesn't add owner references to cluster scoped objects anymore ([#360]). @@ -14,6 +19,7 @@ All notable changes to this project will be documented in this file. [#360]: https://github.com/stackabletech/listener-operator/pull/360 [#363]: https://github.com/stackabletech/listener-operator/pull/363 +[#364]: https://github.com/stackabletech/listener-operator/pull/364 ## [25.11.0] - 2025-11-07 From a83b9a0543f74afcf23bd35fe3696f3a65a17c31 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 14 Jan 2026 15:18:41 +0100 Subject: [PATCH 3/3] Use op-rs 0.102.0 --- Cargo.lock | 16 ++++++++-------- Cargo.nix | 44 ++++++++++++++++++++++---------------------- Cargo.toml | 4 ++-- crate-hashes.json | 14 +++++++------- 4 files changed, 39 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 22805d6c..a95a12ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1375,7 +1375,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "darling 0.23.0", "regex", @@ -2582,8 +2582,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.101.2" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" +version = "0.102.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "chrono", "clap", @@ -2621,7 +2621,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -2632,7 +2632,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "chrono", "k8s-openapi", @@ -2649,7 +2649,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "axum", "clap", @@ -2673,7 +2673,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.8.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "schemars", "serde", @@ -2686,7 +2686,7 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.3" -source = "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#e9ba24709c95978cc76d164789a9017aa965a889" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#402911782469fd689308f3e57c38ad249dec83f3" dependencies = [ "convert_case", "darling 0.23.0", diff --git a/Cargo.nix b/Cargo.nix index e0f69c4d..b900d65b 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -4300,9 +4300,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "e9ba24709c95978cc76d164789a9017aa965a889"; - sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "k8s_version"; authors = [ @@ -8549,13 +8549,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.101.2"; + version = "0.102.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "e9ba24709c95978cc76d164789a9017aa965a889"; - sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "stackable_operator"; authors = [ @@ -8722,9 +8722,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "e9ba24709c95978cc76d164789a9017aa965a889"; - sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -8757,9 +8757,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "e9ba24709c95978cc76d164789a9017aa965a889"; - sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "stackable_shared"; authors = [ @@ -8839,9 +8839,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "e9ba24709c95978cc76d164789a9017aa965a889"; - sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "stackable_telemetry"; authors = [ @@ -8949,9 +8949,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "e9ba24709c95978cc76d164789a9017aa965a889"; - sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; libName = "stackable_versioned"; authors = [ @@ -8993,9 +8993,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech//operator-rs.git"; - rev = "e9ba24709c95978cc76d164789a9017aa965a889"; - sha256 = "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h"; + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "402911782469fd689308f3e57c38ad249dec83f3"; + sha256 = "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy"; }; procMacro = true; libName = "stackable_versioned_macros"; diff --git a/Cargo.toml b/Cargo.toml index c7179033..039df3ed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ edition = "2021" repository = "https://github.com/stackabletech/listener-operator" [workspace.dependencies] -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.101.2", features = ["telemetry", "versioned"] } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.102.0", features = ["telemetry", "versioned"] } anyhow = "1.0" built = { version = "0.8", features = ["chrono", "git2"] } @@ -44,4 +44,4 @@ kube = { git = "https://github.com/stackabletech/kube-rs", branch = "2.0.1-fix-s [patch."https://github.com/stackabletech/operator-rs.git"] # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } -stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "chore/add-object-overrides-to-listener" } +# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } diff --git a/crate-hashes.json b/crate-hashes.json index b283232f..68215a44 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,15 +1,15 @@ { - "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#k8s-version@0.1.3": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", - "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-operator-derive@0.3.1": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", - "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-operator@0.101.2": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", - "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-shared@0.0.3": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", - "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-telemetry@0.6.1": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", - "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-versioned-macros@0.8.3": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", - "git+https://github.com/stackabletech//operator-rs.git?branch=chore%2Fadd-object-overrides-to-listener#stackable-versioned@0.8.3": "116vyd6x7phm8kvbyqlv8x7c8h8az3vjlvxmwb2b1g1g179d7b6h", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-client@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-core@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-derive@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube-runtime@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", "git+https://github.com/stackabletech/kube-rs?branch=2.0.1-fix-schema-hoisting#kube@2.0.1": "1a7bcl0w1jg71jc4iml0vjp8dpzy71mhxl012grxcy2xp5i6xvgf", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#k8s-version@0.1.3": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-operator-derive@0.3.1": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-operator@0.102.0": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-shared@0.0.3": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-telemetry@0.6.1": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-versioned-macros@0.8.3": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.102.0#stackable-versioned@0.8.3": "16j834cchvq6psb4lm5fjz6nm04cg3aqhsffyls20y617ky7whpy", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file