From 3068877cff7aa64f4806bc8e6988c46415c809d4 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 5 Aug 2026 14:50:03 +0200 Subject: [PATCH 1/3] feat: Add `kube-cel` feature that enables the `cel` feature on `kube` --- Cargo.lock | 110 +++++++++++++++++++++++++ crates/stackable-operator/CHANGELOG.md | 6 ++ crates/stackable-operator/Cargo.toml | 3 +- 3 files changed, 118 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index b71838b4b..9c55c1bc3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -106,6 +106,23 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "antlr4rust" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093d520274bfff7278d776f7ea12981a0a0a6f96db90964658e0f38fc6e9a6a6" +dependencies = [ + "better_any", + "bit-set", + "byteorder", + "lazy_static", + "murmur3", + "once_cell", + "parking_lot", + "typed-arena", + "uuid", +] + [[package]] name = "anyhow" version = "1.0.104" @@ -271,6 +288,27 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" +[[package]] +name = "better_any" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4372b9543397a4b86050cc5e7ee36953edf4bac9518e8a774c2da694977fb6e4" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + [[package]] name = "bitflags" version = "1.3.2" @@ -342,6 +380,22 @@ dependencies = [ "shlex", ] +[[package]] +name = "cel" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a40f338a8c3505921000b609279775792c07cc21f97a3011578c0c5e1738ae" +dependencies = [ + "antlr4rust", + "chrono", + "lazy_static", + "nom", + "pastey", + "regex", + "serde", + "thiserror 1.0.69", +] + [[package]] name = "cfg-if" version = "1.0.4" @@ -367,6 +421,7 @@ checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "num-traits", + "serde", "windows-link", ] @@ -2029,6 +2084,23 @@ dependencies = [ "kube-runtime", ] +[[package]] +name = "kube-cel" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c45323142a22d96c26cc345e646f8313b443171f76550b0d825f84316863fc20" +dependencies = [ + "base64 0.22.1", + "cel", + "chrono", + "ipnet", + "regex", + "semver", + "serde", + "serde_json", + "url", +] + [[package]] name = "kube-client" version = "4.2.0" @@ -2078,6 +2150,7 @@ dependencies = [ "jiff", "json-patch", "k8s-openapi", + "kube-cel", "schemars", "serde", "serde-value", @@ -2236,6 +2309,12 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -2274,6 +2353,15 @@ dependencies = [ "uuid", ] +[[package]] +name = "murmur3" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a198f9589efc03f544388dfc4a19fe8af4323662b62f598b8dcfdac62c14771c" +dependencies = [ + "byteorder", +] + [[package]] name = "ndk-context" version = "0.1.1" @@ -2315,6 +2403,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "ntapi" version = "0.4.3" @@ -2614,6 +2712,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + [[package]] name = "pem" version = "3.0.6" @@ -4518,6 +4622,12 @@ dependencies = [ "thiserror 2.0.19", ] +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + [[package]] name = "typenum" version = "1.20.1" diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index e311a9e9d..a5590bc47 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- Add the Cargo feature `kube-cel` that enables the `cel` feature on the `kube` crate ([#XXXX]). + +[#XXXX]: https://github.com/stackabletech/operator-rs/pull/XXXX + ## [0.115.0] - 2026-08-04 ### Changed diff --git a/crates/stackable-operator/Cargo.toml b/crates/stackable-operator/Cargo.toml index b63f05903..8016f2a7f 100644 --- a/crates/stackable-operator/Cargo.toml +++ b/crates/stackable-operator/Cargo.toml @@ -9,7 +9,7 @@ repository.workspace = true [features] default = ["crds"] -full = ["client-feature-gates", "crds", "certs", "test-support", "time", "webhook", "kube-ws"] +full = ["client-feature-gates", "crds", "certs", "test-support", "time", "webhook", "kube-ws", "kube-cel"] client-feature-gates = ["dep:winnow"] crds = ["dep:stackable-versioned"] @@ -18,6 +18,7 @@ test-support = [] time = ["stackable-shared/time"] webhook = ["dep:stackable-webhook"] kube-ws = ["kube/ws"] +kube-cel = ["kube/cel"] [dependencies] stackable-certs = { path = "../stackable-certs", optional = true } From 4a5670ca1fb1e2481337d186464c00f63e5ec556 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 5 Aug 2026 14:51:11 +0200 Subject: [PATCH 2/3] changelog --- crates/stackable-operator/CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index a5590bc47..ff2d11d28 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -6,9 +6,9 @@ All notable changes to this project will be documented in this file. ### Added -- Add the Cargo feature `kube-cel` that enables the `cel` feature on the `kube` crate ([#XXXX]). +- Add the Cargo feature `kube-cel` that enables the `cel` feature on the `kube` crate ([1259]). -[#XXXX]: https://github.com/stackabletech/operator-rs/pull/XXXX +[1259]: https://github.com/stackabletech/operator-rs/pull/XXXX ## [0.115.0] - 2026-08-04 From 210966df1ae04536ba23578fe404f73d98e529d4 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 5 Aug 2026 17:19:28 +0200 Subject: [PATCH 3/3] Apply suggestion from @Techassi Co-authored-by: Techassi --- crates/stackable-operator/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index ff2d11d28..22f82faa6 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file. - Add the Cargo feature `kube-cel` that enables the `cel` feature on the `kube` crate ([1259]). -[1259]: https://github.com/stackabletech/operator-rs/pull/XXXX +[1259]: https://github.com/stackabletech/operator-rs/pull/1259 ## [0.115.0] - 2026-08-04