diff --git a/Cargo.lock b/Cargo.lock index e333bd07..ef7b527a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -47,9 +47,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -62,15 +62,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -97,15 +97,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "arc-swap" -version = "1.8.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" +checksum = "a07d1f37ff60921c83bdfc7407723bdefe89b44b98a9b772f225c8f9d67141a6" dependencies = [ "rustversion", ] @@ -141,7 +141,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -152,7 +152,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -290,9 +290,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.20.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6f81257d10a0f602a294ae4182251151ff97dbb504ef9afcdda4a64b24d9b4" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bytes" @@ -302,9 +302,9 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.56" +version = "1.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ "find-msvc-tools", "jobserver", @@ -331,9 +331,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "num-traits", @@ -342,9 +342,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.59" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5caf74d17c3aec5495110c34cc3f78644bfa89af6c8993ed4de2790e49b6499" +checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" dependencies = [ "clap_builder", "clap_derive", @@ -352,9 +352,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.59" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "370daa45065b80218950227371916a1633217ae42b2715b2287b606dcd618e24" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ "anstream", "anstyle", @@ -364,27 +364,27 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.55" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "clap_lex" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "concurrent-queue" @@ -539,7 +539,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -550,7 +550,7 @@ checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -561,7 +561,7 @@ checksum = "780eb241654bf097afb00fc5f054a09b687dad862e485fdcf8399bb056565370" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -585,14 +585,14 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "deranged" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", ] @@ -615,7 +615,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -638,7 +638,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -690,7 +690,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -754,7 +754,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -932,7 +932,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -1002,19 +1002,19 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", ] [[package]] name = "getrandom" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 6.0.0", "rand_core 0.10.0", "wasip2", "wasip3", @@ -1172,6 +1172,12 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humantime" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" + [[package]] name = "hyper" version = "1.8.1" @@ -1410,15 +1416,15 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" dependencies = [ "memchr", "serde", @@ -1441,9 +1447,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "java-properties" @@ -1458,9 +1464,9 @@ dependencies = [ [[package]] name = "jiff" -version = "0.2.20" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c867c356cc096b33f4981825ab281ecba3db0acefe60329f044c1789d94c6543" +checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" dependencies = [ "jiff-static", "jiff-tzdb-platform", @@ -1473,20 +1479,20 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.20" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7946b4325269738f270bb55b3c19ab5c5040525f83fd625259422a9d25d9be5" +checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "jiff-tzdb" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68971ebff725b9e2ca27a601c5eb38a4c5d64422c4cbab0c535f248087eda5c2" +checksum = "c900ef84826f1338a557697dc8fc601df9ca9af4ac137c7fb61d4c6f2dfd3076" [[package]] name = "jiff-tzdb-platform" @@ -1509,10 +1515,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "797146bb2677299a1eb6b7b50a890f4c361b29ef967addf5b2fa45dae1bb6d7d" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -1554,9 +1562,9 @@ dependencies = [ [[package]] name = "k8s-openapi" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a6d6f3611ad1d21732adbd7a2e921f598af6c92d71ae6e2620da4b67ee1f0d" +checksum = "51b326f5219dd55872a72c1b6ddd1b830b8334996c667449c29391d657d78d5e" dependencies = [ "base64", "jiff", @@ -1568,7 +1576,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "darling", "regex", @@ -1649,7 +1657,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -1695,9 +1703,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.182" +version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" [[package]] name = "libgit2-sys" @@ -1719,9 +1727,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libz-sys" -version = "1.1.23" +version = "1.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" +checksum = "d52f4c29e2a68ac30c9087e1b772dc9f44a2b66ed44edf2266cf2be9b03dafc1" dependencies = [ "cc", "libc", @@ -1789,9 +1797,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi", @@ -1825,9 +1833,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-integer" @@ -1861,9 +1869,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -1918,9 +1926,9 @@ dependencies = [ [[package]] name = "opentelemetry-otlp" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" +checksum = "1f69cd6acbb9af919df949cd1ec9e5e7fdc2ef15d234b6b795aaa525cc02f71f" dependencies = [ "http", "opentelemetry", @@ -2076,7 +2084,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2091,29 +2099,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -2156,9 +2164,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" +checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" dependencies = [ "portable-atomic", ] @@ -2194,7 +2202,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2208,9 +2216,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] @@ -2260,14 +2268,14 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -2278,6 +2286,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.8.5" @@ -2305,7 +2319,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" dependencies = [ "chacha20", - "getrandom 0.4.1", + "getrandom 0.4.2", "rand_core 0.10.0", ] @@ -2379,7 +2393,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2407,9 +2421,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "relative-path" @@ -2521,7 +2535,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.116", + "syn 2.0.117", "unicode-ident", ] @@ -2536,9 +2550,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "log", "once_cell", @@ -2572,9 +2586,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ "ring", "rustls-pki-types", @@ -2595,9 +2609,9 @@ checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ "windows-sys 0.61.2", ] @@ -2625,7 +2639,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2659,9 +2673,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.6.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ "bitflags", "core-foundation", @@ -2672,9 +2686,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.16.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321c8673b092a9a42605034a9879d73cb79101ed5fd117bc9a597b89b4e9e61a" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -2723,7 +2737,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2734,7 +2748,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2845,9 +2859,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "slab" @@ -2900,17 +2914,17 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "socket2" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -2963,7 +2977,7 @@ dependencies = [ [[package]] name = "stackable-certs" version = "0.4.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "const-oid", "ecdsa", @@ -2987,7 +3001,7 @@ dependencies = [ [[package]] name = "stackable-operator" version = "0.108.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "clap", "const_format", @@ -3026,18 +3040,18 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "stackable-shared" version = "0.1.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "jiff", "k8s-openapi", @@ -3053,8 +3067,8 @@ dependencies = [ [[package]] name = "stackable-telemetry" -version = "0.6.2" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +version = "0.6.3" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "axum", "clap", @@ -3078,7 +3092,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "schemars", "serde", @@ -3091,7 +3105,7 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "convert_case", "convert_case_extras", @@ -3103,18 +3117,19 @@ dependencies = [ "kube", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "stackable-webhook" version = "0.9.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#7486017f60827d1d769d7bf17bf56adb21f8bb02" +source = "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#655e4ffb4aed3f472d9e597b8641c4791da0d4b8" dependencies = [ "arc-swap", "async-trait", "axum", "futures-util", + "humantime", "hyper", "hyper-util", "k8s-openapi", @@ -3161,7 +3176,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3183,9 +3198,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.116" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -3209,7 +3224,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3238,7 +3253,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3249,7 +3264,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3320,14 +3335,14 @@ checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "tokio" -version = "1.49.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", @@ -3342,13 +3357,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3388,18 +3403,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.8+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" dependencies = [ "indexmap", "toml_datetime", @@ -3409,18 +3424,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.9+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" dependencies = [ "winnow", ] [[package]] name = "tonic" -version = "0.14.4" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f32a6f80051a4111560201420c7885d0082ba9efe2ab61875c587bb6b18b9a0" +checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" dependencies = [ "async-trait", "base64", @@ -3445,9 +3460,9 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.4" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f86539c0089bfd09b1f8c0ab0239d80392af74c21bc9e0f15e1b4aca4c1647f" +checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" dependencies = [ "bytes", "prost", @@ -3538,7 +3553,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3590,9 +3605,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", @@ -3635,9 +3650,9 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-xid" @@ -3735,9 +3750,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "7dc0882f7b5bb01ae8c5215a1230832694481c1a4be062fd410e12ea3da5b631" dependencies = [ "cfg-if", "once_cell", @@ -3748,23 +3763,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.58" +version = "0.4.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +checksum = "19280959e2844181895ef62f065c63e0ca07ece4771b53d89bfdb967d97cbf05" dependencies = [ - "cfg-if", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "75973d3066e01d035dbedaad2864c398df42f8dd7b1ea057c35b8407c015b537" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3772,22 +3783,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "91af5e4be765819e0bcfee7322c14374dc821e35e72fa663a830bbc7dc199eac" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "c9bf0406a78f02f336bf1e451799cca198e8acde4ffa278f0fb20487b150a633" dependencies = [ "unicode-ident", ] @@ -3828,9 +3839,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.85" +version = "0.3.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +checksum = "749466a37ee189057f54748b200186b59a03417a117267baf3fd89cecc9fb837" dependencies = [ "js-sys", "wasm-bindgen", @@ -3867,7 +3878,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3878,7 +3889,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3911,16 +3922,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", + "windows-targets", ] [[package]] @@ -3938,31 +3940,14 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -3971,101 +3956,53 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" dependencies = [ "memchr", ] @@ -4100,7 +4037,7 @@ dependencies = [ "heck", "indexmap", "prettyplease", - "syn 2.0.116", + "syn 2.0.117", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -4116,7 +4053,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -4203,28 +4140,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -4244,7 +4181,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", "synstructure", ] @@ -4265,7 +4202,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -4298,7 +4235,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] diff --git a/Cargo.nix b/Cargo.nix index c91502e8..0a1ba700 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -216,9 +216,9 @@ rec { }; "anstream" = rec { crateName = "anstream"; - version = "0.6.21"; + version = "1.0.0"; edition = "2021"; - sha256 = "0jjgixms4qjj58dzr846h2s29p8w7ynwr9b9x6246m1pwy0v5ma3"; + sha256 = "13d2bj0xfg012s4rmq44zc8zgy1q8k9yp7yhvfnarscnmwpj2jl2"; dependencies = [ { name = "anstyle"; @@ -261,9 +261,9 @@ rec { }; "anstyle" = rec { crateName = "anstyle"; - version = "1.0.13"; + version = "1.0.14"; edition = "2021"; - sha256 = "0y2ynjqajpny6q0amvfzzgw0gfw3l47z85km4gvx87vg02lcr4ji"; + sha256 = "0030szmgj51fxkic1hpakxxgappxzwm6m154a3gfml83lq63l2wl"; features = { "default" = [ "std" ]; }; @@ -271,9 +271,9 @@ rec { }; "anstyle-parse" = rec { crateName = "anstyle-parse"; - version = "0.2.7"; + version = "1.0.0"; edition = "2021"; - sha256 = "1hhmkkfr95d462b3zf6yl2vfzdqfy5726ya572wwg8ha9y148xjf"; + sha256 = "03hkv2690s0crssbnmfkr76kw1k7ah2i6s5amdy9yca2n8w7zkjj"; libName = "anstyle_parse"; dependencies = [ { @@ -332,23 +332,22 @@ rec { }; "anyhow" = rec { crateName = "anyhow"; - version = "1.0.101"; + version = "1.0.102"; edition = "2021"; - sha256 = "1skmg90fnjnlgs3vl7bksw7036d3rqwqj20n2fxd2ppg67p0y3jz"; + sha256 = "0b447dra1v12z474c6z4jmicdmc5yxz5bakympdnij44ckw2s83z"; authors = [ "David Tolnay " ]; features = { - "backtrace" = [ "dep:backtrace" ]; "default" = [ "std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "arc-swap" = rec { crateName = "arc-swap"; - version = "1.8.2"; + version = "1.9.0"; edition = "2018"; - sha256 = "19aas8y3kz0v6jr6yijvw6cad9grpl3lw1a25k0cws2m2iy69wzr"; + sha256 = "19j1f7bgkj15y9rbgacq9fs8kzny7dr0fx7wpn1ir4k0zwviyzd0"; libName = "arc_swap"; authors = [ "Michal 'vorner' Vaner " @@ -440,7 +439,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" "visit-mut" ]; } ]; @@ -467,7 +466,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "clone-impls" "full" "parsing" "printing" "proc-macro" "visit-mut" ]; } @@ -931,9 +930,9 @@ rec { }; "bumpalo" = rec { crateName = "bumpalo"; - version = "3.20.1"; + version = "3.20.2"; edition = "2021"; - sha256 = "1d6r4i5sd96xzjdfy15mvfbzyl8i4n143blll81gd80hgljq2vsw"; + sha256 = "1jrgxlff76k9glam0akhwpil2fr1w32gbjdf5hpipc7ld2c7h82x"; authors = [ "Nick Fitzgerald " ]; @@ -962,9 +961,9 @@ rec { }; "cc" = rec { crateName = "cc"; - version = "1.2.56"; + version = "1.2.58"; edition = "2018"; - sha256 = "1chvh9g2izhqad7vzy4cc7xpdljdvqpsr6x6hv1hmyqv3mlkbgxf"; + sha256 = "1qb0zyqhn8pqzdp7d3scm19zmvgvbyh3iabmj1q7fc4ynva2isg1"; authors = [ "Alex Crichton " ]; @@ -1047,9 +1046,9 @@ rec { }; "chrono" = rec { crateName = "chrono"; - version = "0.4.43"; + version = "0.4.44"; edition = "2021"; - sha256 = "06312amlyys4kkjazl13mbxw0j2f7zxygzjkr1yk7s2sn57p9i7s"; + sha256 = "1c64mk9a235271j5g3v4zrzqqmd43vp9vki7vqfllpqf5rd0fwy6"; dependencies = [ { name = "iana-time-zone"; @@ -1096,10 +1095,10 @@ rec { }; "clap" = rec { crateName = "clap"; - version = "4.5.59"; - edition = "2021"; + version = "4.6.0"; + edition = "2024"; crateBin = []; - sha256 = "16b4kgj909yyshz9kj7nkalbyi46yz1lrhqha54wbbn32x6zgjn5"; + sha256 = "0l8k0ja5rf4hpn2g98bqv5m6lkh2q6b6likjpmm6fjw3cxdsz4xi"; dependencies = [ { name = "clap_builder"; @@ -1138,9 +1137,9 @@ rec { }; "clap_builder" = rec { crateName = "clap_builder"; - version = "4.5.59"; - edition = "2021"; - sha256 = "094fc76nsq3v52r1a9rbwix22cqnda8p2wr2a24j302v0r2sl39p"; + version = "4.6.0"; + edition = "2024"; + sha256 = "17q6np22yxhh5y5v53y4l31ps3hlaz45mvz2n2nicr7n3c056jki"; dependencies = [ { name = "anstream"; @@ -1177,9 +1176,9 @@ rec { }; "clap_derive" = rec { crateName = "clap_derive"; - version = "4.5.55"; - edition = "2021"; - sha256 = "1r949xis3jmhzh387smd70vc8a3b9734ck3g5ahg59a63bd969x9"; + version = "4.6.0"; + edition = "2024"; + sha256 = "0snapc468s7n3avr33dky4y7rmb7ha3qsp9l0k5vh6jacf5bs40i"; procMacro = true; dependencies = [ { @@ -1196,7 +1195,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" ]; } ]; @@ -1209,16 +1208,16 @@ rec { }; "clap_lex" = rec { crateName = "clap_lex"; - version = "1.0.0"; - edition = "2021"; - sha256 = "0c8888qi1l9sayqlv666h8s0yxn2qc6jr88v1zagk43mpjjjx0is"; + version = "1.1.0"; + edition = "2024"; + sha256 = "1ycqkpygnlqnndghhcxjb44lzl0nmgsia64x9581030yifxs7m68"; }; "colorchoice" = rec { crateName = "colorchoice"; - version = "1.0.4"; + version = "1.0.5"; edition = "2021"; - sha256 = "0x8ymkz1xr77rcj1cfanhf416pc4v681gmkc9dzb3jqja7f62nxh"; + sha256 = "0w75k89hw39p0mnnhlrwr23q50rza1yjki44qvh2mgrnj065a1qx"; }; "concurrent-queue" = rec { @@ -1658,7 +1657,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" "extra-traits" ]; } ]; @@ -1689,7 +1688,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; @@ -1715,7 +1714,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" "visit-mut" ]; } ]; @@ -1792,7 +1791,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "extra-traits" ]; } ]; @@ -1800,9 +1799,9 @@ rec { }; "deranged" = rec { crateName = "deranged"; - version = "0.5.6"; + version = "0.5.8"; edition = "2021"; - sha256 = "1i48p5l878bw4qzi1wz43lrq3jvplhpdzfxvjg0x3qn2janwagfc"; + sha256 = "0711df3w16vx80k55ivkwzwswziinj4dz05xci3rvmn15g615n3w"; authors = [ "Jacob Pratt " ]; @@ -1894,7 +1893,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; buildDependencies = [ @@ -1991,7 +1990,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; features = { @@ -2157,13 +2156,13 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" ]; } ]; @@ -2364,7 +2363,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; features = { @@ -2877,7 +2876,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" ]; } ]; @@ -3151,7 +3150,7 @@ rec { } { name = "r-efi"; - packageId = "r-efi"; + packageId = "r-efi 5.3.0"; usesDefaultFeatures = false; target = { target, features }: (("uefi" == target."os" or null) && ("efi_rng" == target."getrandom_backend" or null)); } @@ -3167,11 +3166,11 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "getrandom 0.4.1" = rec { + "getrandom 0.4.2" = rec { crateName = "getrandom"; - version = "0.4.1"; + version = "0.4.2"; edition = "2024"; - sha256 = "1v7fm84f2jh6x7w3bd2ncl3sw29wnb0rhg7xya1pd30i02cg77hk"; + sha256 = "0mb5833hf9pvn9dhvxjgfg5dx0m77g8wavvjdpvpnkp9fil1xr8d"; authors = [ "The Rand Project Developers" ]; @@ -3230,7 +3229,7 @@ rec { } { name = "r-efi"; - packageId = "r-efi"; + packageId = "r-efi 6.0.0"; usesDefaultFeatures = false; target = { target, features }: (("uefi" == target."os" or null) && ("efi_rng" == target."getrandom_backend" or null)); } @@ -3696,6 +3695,14 @@ rec { ]; }; + "humantime" = rec { + crateName = "humantime"; + version = "2.3.0"; + edition = "2021"; + sha256 = "092lpipp32ayz4kyyn4k3vz59j9blng36wprm5by0g2ykqr14nqk"; + features = { + }; + }; "hyper" = rec { crateName = "hyper"; version = "1.8.1"; @@ -4579,27 +4586,29 @@ rec { }; "ipnet" = rec { crateName = "ipnet"; - version = "2.11.0"; + version = "2.12.0"; edition = "2018"; - sha256 = "0c5i9sfi2asai28m8xp48k5gvwkqrg5ffpi767py6mzsrswv17s6"; + sha256 = "1qpq2y0asyv0jppw7zww9y96fpnpinwap8a0phhqqgyy3znnz3yr"; authors = [ "Kris Price " ]; features = { "default" = [ "std" ]; - "heapless" = [ "dep:heapless" ]; - "json" = [ "serde" "schemars" ]; - "schemars" = [ "dep:schemars" ]; - "ser_as_str" = [ "heapless" ]; + "heapless" = [ "dep:heapless" "serde" ]; + "json" = [ "schemars08" "serde" ]; + "schemars" = [ "schemars08" ]; + "schemars08" = [ "dep:schemars08" ]; + "schemars1" = [ "dep:schemars1" ]; + "ser_as_str" = [ "dep:heapless" ]; "serde" = [ "dep:serde" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; "iri-string" = rec { crateName = "iri-string"; - version = "0.7.10"; + version = "0.7.12"; edition = "2021"; - sha256 = "06kk3a5jz576p7vrpf7zz9jv3lrgcyp7pczcblcxdnryg3q3h4y9"; + sha256 = "082fpx6c5ghvmqpwxaf2b268m47z2ic3prajqbmi1s1qpfj5kri5"; libName = "iri_string"; authors = [ "YOSHIOKA Takuma " @@ -4660,9 +4669,9 @@ rec { }; "itoa" = rec { crateName = "itoa"; - version = "1.0.17"; + version = "1.0.18"; edition = "2021"; - sha256 = "1lh93xydrdn1g9x547bd05g0d3hra7pd1k4jfd2z1pl1h5hwdv4j"; + sha256 = "10jnd1vpfkb8kj38rlkn2a6k02afvj3qmw054dfpzagrpl6achlg"; authors = [ "David Tolnay " ]; @@ -4697,9 +4706,9 @@ rec { }; "jiff" = rec { crateName = "jiff"; - version = "0.2.20"; + version = "0.2.23"; edition = "2021"; - sha256 = "0hv59kcqj5sc0jgk4q7yrq5dp8yb3qlan98qk3s36sq9ribc6ry8"; + sha256 = "0nc37n7jvgrzxdkcgc2hsfdf70lfagigjalh4igjrm5njvf4cd8s"; authors = [ "Andrew Gallant " ]; @@ -4779,9 +4788,9 @@ rec { }; "jiff-static" = rec { crateName = "jiff-static"; - version = "0.2.20"; + version = "0.2.23"; edition = "2021"; - sha256 = "1rcvbp9aj8ll4ljxcgzq4l2h9idmkb0v6mdvf3r3i5r64m1np57p"; + sha256 = "192ss3cnixvg79cpa76clwkhn4mmz10vnwsbf7yjw8i484s8p31a"; procMacro = true; libName = "jiff_static"; authors = [ @@ -4798,7 +4807,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; features = { @@ -4808,9 +4817,9 @@ rec { }; "jiff-tzdb" = rec { crateName = "jiff-tzdb"; - version = "0.1.5"; + version = "0.1.6"; edition = "2021"; - sha256 = "1hm5xn3q092zac6apjy4492ddid473mwa0d64z5f5f95yyzix5v8"; + sha256 = "0xihzlnnyk0xnrzpq4xcyjdcmy8xc3ychzb9ayjkh4vgha2fy069"; libName = "jiff_tzdb"; libPath = "lib.rs"; authors = [ @@ -4861,14 +4870,26 @@ rec { }; "js-sys" = rec { crateName = "js-sys"; - version = "0.3.85"; + version = "0.3.93"; edition = "2021"; - sha256 = "1csmb42fxjmzjdgc790bgw77sf1cb9ydm5rdsnh5qj4miszjx54c"; + sha256 = "0zbdpghxligsnbsxsylnxwlindjc1y4hmddpnqg9labp4sxlcwbr"; libName = "js_sys"; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + optional = true; + } + { + name = "futures-util"; + packageId = "futures-util"; + optional = true; + usesDefaultFeatures = false; + features = [ "std" ]; + } { name = "once_cell"; packageId = "once_cell"; @@ -4881,10 +4902,12 @@ rec { } ]; features = { - "default" = [ "std" ]; + "default" = [ "std" "unsafe-eval" ]; + "futures" = [ "dep:cfg-if" "dep:futures-util" ]; + "futures-core-03-stream" = [ "futures" "dep:futures-core" ]; "std" = [ "wasm-bindgen/std" ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; + resolvedDefaultFeatures = [ "default" "futures" "std" "unsafe-eval" ]; }; "json-patch" = rec { crateName = "json-patch"; @@ -4999,10 +5022,10 @@ rec { }; "k8s-openapi" = rec { crateName = "k8s-openapi"; - version = "0.27.0"; + version = "0.27.1"; edition = "2021"; - links = "k8s-openapi-0.27.0"; - sha256 = "038zxrklpni04rpaww9dr7v8ln8zj8p7mgdd68bx5l8sc7rxd9h5"; + links = "k8s-openapi-0.27.1"; + sha256 = "0pldsxbxd4ckq94p8rkck4s862w33gfns6rclxr5imcx47sjdcsi"; libName = "k8s_openapi"; authors = [ "Arnav Singh " @@ -5052,9 +5075,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; libName = "k8s_version"; authors = [ @@ -5520,7 +5543,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "extra-traits" ]; } ]; @@ -5694,9 +5717,9 @@ rec { }; "libc" = rec { crateName = "libc"; - version = "0.2.182"; + version = "0.2.183"; edition = "2021"; - sha256 = "04k1w1mq9f4cxv520dbr5xw1i7xkbc9fcrvaggyjy25jdkdvl038"; + sha256 = "17c9gyia7rrzf9gsssvk3vq9ca2jp6rh32fsw6ciarpn5djlddmm"; authors = [ "The Rust Project Developers" ]; @@ -5771,10 +5794,10 @@ rec { }; "libz-sys" = rec { crateName = "libz-sys"; - version = "1.1.23"; + version = "1.1.25"; edition = "2018"; links = "z"; - sha256 = "1xy0l46gmhfyk28r9pm7njl0h7dh8l2vpiqw67kn043pyfxiil8m"; + sha256 = "1hdg7nqfjaygcqidyknldsva4i4zvirbgqc7j06c72m6w8llqbym"; libName = "libz_sys"; authors = [ "Alex Crichton " @@ -5970,9 +5993,9 @@ rec { }; "mio" = rec { crateName = "mio"; - version = "1.1.1"; + version = "1.2.0"; edition = "2021"; - sha256 = "1z2phpalqbdgihrcjp8y09l3kgq6309jnhnr6h11l9s7mnqcm6x6"; + sha256 = "1hanrh4fwsfkdqdaqfidz48zz1wdix23zwn3r2x78am0garfbdsh"; authors = [ "Carl Lerche " "Thomas de Zeeuw " @@ -5982,17 +6005,7 @@ rec { { name = "libc"; packageId = "libc"; - target = { target, features }: ("hermit" == target."os" or null); - } - { - name = "libc"; - packageId = "libc"; - target = { target, features }: ("wasi" == target."os" or null); - } - { - name = "libc"; - packageId = "libc"; - target = { target, features }: (target."unix" or false); + target = { target, features }: ((target."unix" or false) || ("hermit" == target."os" or null) || ("wasi" == target."os" or null)); } { name = "wasi"; @@ -6118,9 +6131,9 @@ rec { }; "num-conv" = rec { crateName = "num-conv"; - version = "0.2.0"; + version = "0.2.1"; edition = "2021"; - sha256 = "0l4hj7lp8zbb9am4j3p7vlcv47y9bbazinvnxx9zjhiwkibyr5yg"; + sha256 = "0rqrr29brafaa2za352pbmhkk556n7f8z9rrkgmjp1idvdl3fry6"; libName = "num_conv"; authors = [ "Jacob Pratt " @@ -6214,9 +6227,9 @@ rec { }; "once_cell" = rec { crateName = "once_cell"; - version = "1.21.3"; + version = "1.21.4"; edition = "2021"; - sha256 = "0b9x77lb9f1j6nqgf5aka4s2qj0nly176bpbrv6f9iakk5ff3xa2"; + sha256 = "0l1v676wf71kjg2khch4dphwh1jp3291ffiymr2mvy1kxd5kwz4z"; authors = [ "Aleksey Kladov " ]; @@ -6406,9 +6419,9 @@ rec { }; "opentelemetry-otlp" = rec { crateName = "opentelemetry-otlp"; - version = "0.31.0"; + version = "0.31.1"; edition = "2021"; - sha256 = "1gv3h75z8c0p9b85mbq7f1rgsi18wip1xlfa6g82lkfa5pdnc8vs"; + sha256 = "07zp0b62b9dajnvvcd6j2ppw5zg7wp4ixka9z6fr3bxrrdmcss8z"; libName = "opentelemetry_otlp"; dependencies = [ { @@ -6520,6 +6533,9 @@ rec { "serde_json" = [ "dep:serde_json" ]; "serialize" = [ "serde" "serde_json" ]; "tls" = [ "tonic/tls-ring" ]; + "tls-aws-lc" = [ "tonic/tls-aws-lc" ]; + "tls-provider-agnostic" = [ "tonic/_tls-any" ]; + "tls-ring" = [ "tonic/tls-ring" ]; "tls-roots" = [ "tls" "tonic/tls-native-roots" ]; "tls-webpki-roots" = [ "tls" "tonic/tls-webpki-roots" ]; "tokio" = [ "dep:tokio" ]; @@ -7026,7 +7042,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; features = { @@ -7065,9 +7081,9 @@ rec { }; "pin-project" = rec { crateName = "pin-project"; - version = "1.1.10"; + version = "1.1.11"; edition = "2021"; - sha256 = "12kadbnfm1f43cyadw9gsbyln1cy7vj764wz5c8wxaiza3filzv7"; + sha256 = "05zm3y3bl83ypsr6favxvny2kys4i19jiz1y18ylrbxwsiz9qx7i"; libName = "pin_project"; dependencies = [ { @@ -7079,9 +7095,9 @@ rec { }; "pin-project-internal" = rec { crateName = "pin-project-internal"; - version = "1.1.10"; + version = "1.1.11"; edition = "2021"; - sha256 = "0qgqzfl0f4lzaz7yl5llhbg97g68r15kljzihaw9wm64z17qx4bf"; + sha256 = "1ik4mpb92da75inmjvxf2qm61vrnwml3x24wddvrjlqh1z9hxcnr"; procMacro = true; libName = "pin_project_internal"; dependencies = [ @@ -7095,7 +7111,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "parsing" "printing" "clone-impls" "proc-macro" "full" "visit-mut" ]; } @@ -7104,9 +7120,9 @@ rec { }; "pin-project-lite" = rec { crateName = "pin-project-lite"; - version = "0.2.16"; + version = "0.2.17"; edition = "2018"; - sha256 = "16wzc7z7dfkf9bmjin22f5282783f6mdksnr0nv0j5ym5f9gyg1v"; + sha256 = "1kfmwvs271si96zay4mm8887v5khw0c27jc9srw1a75ykvgj54x8"; libName = "pin_project_lite"; }; @@ -7215,9 +7231,9 @@ rec { }; "portable-atomic-util" = rec { crateName = "portable-atomic-util"; - version = "0.2.5"; + version = "0.2.6"; edition = "2018"; - sha256 = "1xcm0ia8756k6hdgafx4g3lx3fw0hvz2zqswq7c2sy58gxnvk7bs"; + sha256 = "18wrsx7fjwc2kgbpfjfm3igv3vdzsidmjhbqivjln7d0c6z9f4q9"; libName = "portable_atomic_util"; dependencies = [ { @@ -7310,7 +7326,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "full" ]; } @@ -7323,7 +7339,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "clone-impls" "extra-traits" "parsing" "printing" "visit-mut" ]; } @@ -7357,9 +7373,9 @@ rec { }; "proc-macro-crate" = rec { crateName = "proc-macro-crate"; - version = "3.4.0"; + version = "3.5.0"; edition = "2021"; - sha256 = "10v9qi51n4phn1lrj5r94kjq7yhci9jrkqnn6wpan05yjsgb3711"; + sha256 = "0kv1g1d1zjwxlgcaba2qlshzyy32j03xic8rskqlcr5mnblsfyz6"; libName = "proc_macro_crate"; authors = [ "Bastian Köcher " @@ -7511,7 +7527,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "extra-traits" ]; } ]; @@ -7519,9 +7535,9 @@ rec { }; "quote" = rec { crateName = "quote"; - version = "1.0.44"; + version = "1.0.45"; edition = "2021"; - sha256 = "1r7c7hxl66vz3q9qizgjhy77pdrrypqgk4ghc7260xvvfb7ypci1"; + sha256 = "095rb5rg7pbnwdp6v8w5jw93wndwyijgci1b5lw8j1h5cscn3wj1"; authors = [ "David Tolnay " ]; @@ -7538,7 +7554,7 @@ rec { }; resolvedDefaultFeatures = [ "default" "proc-macro" ]; }; - "r-efi" = rec { + "r-efi 5.3.0" = rec { crateName = "r-efi"; version = "5.3.0"; edition = "2018"; @@ -7550,6 +7566,17 @@ rec { "rustc-dep-of-std" = [ "core" ]; }; }; + "r-efi 6.0.0" = rec { + crateName = "r-efi"; + version = "6.0.0"; + edition = "2018"; + sha256 = "1gyrl2k5fyzj9k7kchg2n296z5881lg7070msabid09asp3wkp7q"; + libName = "r_efi"; + features = { + "core" = [ "dep:core" ]; + "rustc-dep-of-std" = [ "core" ]; + }; + }; "rand 0.10.0" = rec { crateName = "rand"; version = "0.10.0"; @@ -7569,7 +7596,7 @@ rec { } { name = "getrandom"; - packageId = "getrandom 0.4.1"; + packageId = "getrandom 0.4.2"; optional = true; } { @@ -7843,7 +7870,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; @@ -7969,9 +7996,9 @@ rec { }; "regex-syntax" = rec { crateName = "regex-syntax"; - version = "0.8.9"; + version = "0.8.10"; edition = "2021"; - sha256 = "0k0a47r1rcl794wj8a948niakbg081s5pp5nlgcbmmr2iy3qfs59"; + sha256 = "02jx311ka0daxxc7v45ikzhcl3iydjbbb0mdrpc1xgg8v7c7v2fw"; libName = "regex_syntax"; authors = [ "The Rust Project Developers" @@ -8501,7 +8528,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" "parsing" "extra-traits" "visit" "visit-mut" ]; } { @@ -8536,9 +8563,9 @@ rec { }; "rustls" = rec { crateName = "rustls"; - version = "0.23.36"; + version = "0.23.37"; edition = "2021"; - sha256 = "06w0077ssk3blpp93613lkny046mwj0nhxjgc7cmg9nf70yz6rf6"; + sha256 = "193k5h0wcih6ghvkrxyzwncivr1bd3a8yw3lzp13pzfcbz5jb03m"; dependencies = [ { name = "log"; @@ -8658,9 +8685,9 @@ rec { }; "rustls-webpki" = rec { crateName = "rustls-webpki"; - version = "0.103.9"; + version = "0.103.10"; edition = "2021"; - sha256 = "0lwg1nnyv7pp2lfwwjhy81bxm233am99jnsp3iymdhd6k8827pyp"; + sha256 = "1vyipcdbazvhl6kyi1m8n0bg98sk25iv12bby2xcly653awb4cyz"; libName = "webpki"; dependencies = [ { @@ -8717,9 +8744,9 @@ rec { }; "schannel" = rec { crateName = "schannel"; - version = "0.1.28"; + version = "0.1.29"; edition = "2018"; - sha256 = "1qb6s5gyxfz2inz753a4z3mc1d266mwvz0c5w7ppd3h44swq27c9"; + sha256 = "0ffrzz5vf2s3gnzvphgb5gg8fqifvryl07qcf7q3x1scj3jbghci"; authors = [ "Steven Fackler " "Steffen Butzer " @@ -8843,13 +8870,13 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "extra-traits" ]; } ]; @@ -8949,9 +8976,9 @@ rec { }; "security-framework" = rec { crateName = "security-framework"; - version = "3.6.0"; - edition = "2021"; - sha256 = "0f7cajmxfkxijl4g0blidqp0vyc4ndyc2wj3xslc6j39dn58jyyi"; + version = "3.7.0"; + edition = "2024"; + sha256 = "07fd0j29j8yczb3hd430vwz784lx9knb5xwbvqna1nbkbivvrx5p"; libName = "security_framework"; authors = [ "Steven Fackler " @@ -8981,21 +9008,19 @@ rec { } ]; features = { - "OSX_10_12" = [ "security-framework-sys/OSX_10_12" ]; - "OSX_10_13" = [ "OSX_10_12" "security-framework-sys/OSX_10_13" "alpn" "session-tickets" ]; - "OSX_10_14" = [ "OSX_10_13" "security-framework-sys/OSX_10_14" ]; - "OSX_10_15" = [ "OSX_10_14" "security-framework-sys/OSX_10_15" ]; - "default" = [ "OSX_10_12" ]; + "OSX_10_15" = [ "security-framework-sys/OSX_10_15" ]; + "default" = [ "OSX_10_14" "alpn" "session-tickets" ]; "log" = [ "dep:log" ]; + "macos-12" = [ "security-framework-sys/macos-12" ]; "sync-keychain" = [ "OSX_10_13" ]; }; - resolvedDefaultFeatures = [ "OSX_10_12" "default" ]; + resolvedDefaultFeatures = [ "OSX_10_14" "alpn" "default" "session-tickets" ]; }; "security-framework-sys" = rec { crateName = "security-framework-sys"; - version = "2.16.0"; + version = "2.17.0"; edition = "2021"; - sha256 = "06p6x6s8jysrkay1glazxl0r3drwsxwrhjh30lka9acjn1rqc71j"; + sha256 = "1qr0w0y9iwvmv3hwg653q1igngnc5b74xcf0679cbv23z0fnkqkc"; libName = "security_framework_sys"; authors = [ "Steven Fackler " @@ -9012,15 +9037,8 @@ rec { } ]; features = { - "OSX_10_10" = [ "OSX_10_9" ]; - "OSX_10_11" = [ "OSX_10_10" ]; - "OSX_10_12" = [ "OSX_10_11" ]; - "OSX_10_13" = [ "OSX_10_12" ]; - "OSX_10_14" = [ "OSX_10_13" ]; - "OSX_10_15" = [ "OSX_10_14" ]; - "default" = [ "OSX_10_12" ]; + "default" = [ "OSX_10_13" ]; }; - resolvedDefaultFeatures = [ "OSX_10_10" "OSX_10_11" "OSX_10_12" "OSX_10_9" ]; }; "semver" = rec { crateName = "semver"; @@ -9142,7 +9160,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" "proc-macro" ]; } @@ -9174,7 +9192,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" ]; } @@ -9496,9 +9514,9 @@ rec { }; "simd-adler32" = rec { crateName = "simd-adler32"; - version = "0.3.8"; + version = "0.3.9"; edition = "2018"; - sha256 = "18lx2gdgislabbvlgw5q3j5ssrr77v8kmkrxaanp3liimp2sc873"; + sha256 = "0532ysdwcvzyp2bwpk8qz0hijplcdwpssr5gy5r7qwqqy5z5qgbh"; libName = "simd_adler32"; authors = [ "Marvin Countryman " @@ -9661,7 +9679,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" ]; } ]; @@ -9671,9 +9689,9 @@ rec { }; "socket2" = rec { crateName = "socket2"; - version = "0.6.2"; + version = "0.6.3"; edition = "2021"; - sha256 = "1q073zkvz96h216mfz6niqk2kjqrgqv2va6zj34qh84zv4xamx46"; + sha256 = "0gkjjcyn69hqhhlh5kl8byk5m0d7hyrp2aqwzbs3d33q208nwxis"; authors = [ "Alex Crichton " "Thomas de Zeeuw " @@ -9682,11 +9700,11 @@ rec { { name = "libc"; packageId = "libc"; - target = { target, features }: (target."unix" or false); + target = { target, features }: ((target."unix" or false) || ("wasi" == target."os" or null)); } { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Networking_WinSock" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" ]; } @@ -9880,9 +9898,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; libName = "stackable_certs"; authors = [ @@ -9983,9 +10001,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; libName = "stackable_operator"; authors = [ @@ -10155,9 +10173,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -10179,7 +10197,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; @@ -10190,9 +10208,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; libName = "stackable_shared"; authors = [ @@ -10267,13 +10285,13 @@ rec { }; "stackable-telemetry" = rec { crateName = "stackable-telemetry"; - version = "0.6.2"; + version = "0.6.3"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; libName = "stackable_telemetry"; authors = [ @@ -10381,9 +10399,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; libName = "stackable_versioned"; authors = [ @@ -10425,9 +10443,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -10482,7 +10500,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; @@ -10493,9 +10511,9 @@ rec { edition = "2024"; workspace_member = null; src = pkgs.fetchgit { - url = "https://github.com/stackabletech/operator-rs.git"; - rev = "7486017f60827d1d769d7bf17bf56adb21f8bb02"; - sha256 = "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2"; + url = "https://github.com/stackabletech//operator-rs.git"; + rev = "655e4ffb4aed3f472d9e597b8641c4791da0d4b8"; + sha256 = "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2"; }; libName = "stackable_webhook"; authors = [ @@ -10519,6 +10537,10 @@ rec { name = "futures-util"; packageId = "futures-util"; } + { + name = "humantime"; + packageId = "humantime"; + } { name = "hyper"; packageId = "hyper"; @@ -10673,7 +10695,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "parsing" ]; } ]; @@ -10727,11 +10749,11 @@ rec { }; resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "full" "parsing" "printing" "proc-macro" "quote" ]; }; - "syn 2.0.116" = rec { + "syn 2.0.117" = rec { crateName = "syn"; - version = "2.0.116"; + version = "2.0.117"; edition = "2021"; - sha256 = "1jv9pk48qmhn6yrdfl3lngy5i74wg7gcx13gfhvm4s8q0p3j9x1x"; + sha256 = "16cv7c0wbn8amxc54n4w15kxlx5ypdmla8s0gxr2l7bv7s0bhrg6"; authors = [ "David Tolnay " ]; @@ -10803,7 +10825,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ]; } @@ -10870,7 +10892,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; @@ -10896,7 +10918,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; } ]; @@ -11113,7 +11135,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "parsing" ]; } ]; @@ -11125,9 +11147,9 @@ rec { }; "tokio" = rec { crateName = "tokio"; - version = "1.49.0"; + version = "1.50.0"; edition = "2021"; - sha256 = "11ix3pl03s0bp71q3wddrbf8xr0cpn47d7fzr6m42r3kswy918kj"; + sha256 = "0bc2c5kd57p2xd4l6hagb0bkrp798k5vw0f3xzzwy0sf6ws5xb97"; authors = [ "Tokio Contributors " ]; @@ -11240,9 +11262,9 @@ rec { }; "tokio-macros" = rec { crateName = "tokio-macros"; - version = "2.6.0"; + version = "2.6.1"; edition = "2021"; - sha256 = "19czvgliginbzyhhfbmj77wazqn2y8g27y2nirfajdlm41bphh5g"; + sha256 = "172nwz3s7mmh266hb8l5xdnc7v9kqahisppqhinfd75nz3ps4maw"; procMacro = true; libName = "tokio_macros"; authors = [ @@ -11259,7 +11281,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" ]; } ]; @@ -11410,9 +11432,9 @@ rec { }; "toml_datetime" = rec { crateName = "toml_datetime"; - version = "0.7.5+spec-1.1.0"; - edition = "2021"; - sha256 = "0iqkgvgsxmszpai53dbip7sf2igic39s4dby29dbqf1h9bnwzqcj"; + version = "1.1.0+spec-1.1.0"; + edition = "2024"; + sha256 = "13qrb6d5cnsq5gm7b7v081vhddhzx2km51safy1ss0vy65y1l9cp"; dependencies = [ { name = "serde_core"; @@ -11431,9 +11453,9 @@ rec { }; "toml_edit" = rec { crateName = "toml_edit"; - version = "0.23.10+spec-1.0.0"; - edition = "2021"; - sha256 = "0saj5c676j8a3sqaj9akkp09wambg8aflji4zblwwa70azvvkj44"; + version = "0.25.8+spec-1.1.0"; + edition = "2024"; + sha256 = "0g0zdxh1wawc0v3hch7lpli2admvsww6hzk4y2gpzi463n7z7gqn"; dependencies = [ { name = "indexmap"; @@ -11466,9 +11488,9 @@ rec { }; "toml_parser" = rec { crateName = "toml_parser"; - version = "1.0.9+spec-1.1.0"; - edition = "2021"; - sha256 = "1i54qpvvcppy8ybdn9gssas81vfzq0kmgkcnxzhyf8w9w0al8bbh"; + version = "1.1.0+spec-1.1.0"; + edition = "2024"; + sha256 = "04a0pfm9hp18mhk2lrm85fkia5ya2f5grf7r9nq7wq33wcgg2d13"; dependencies = [ { name = "winnow"; @@ -11486,9 +11508,9 @@ rec { }; "tonic" = rec { crateName = "tonic"; - version = "0.14.4"; + version = "0.14.5"; edition = "2021"; - sha256 = "185r31mvp1y5flcbcapyksx8402xi33j0510c0ai392i03wacckz"; + sha256 = "1v4k7aa28m7722gz9qak2jiy7lis1ycm4fdmq63iip4m0qdcdizy"; authors = [ "Lucio Franco " ]; @@ -11586,7 +11608,7 @@ rec { { name = "tokio"; packageId = "tokio"; - features = [ "rt-multi-thread" "macros" ]; + features = [ "rt-multi-thread" "macros" "test-util" ]; } { name = "tower"; @@ -11615,9 +11637,9 @@ rec { }; "tonic-prost" = rec { crateName = "tonic-prost"; - version = "0.14.4"; + version = "0.14.5"; edition = "2021"; - sha256 = "0zv4q6jard712l7rxg119kvjlfc0kliv02lc3ydx1gw902f571lz"; + sha256 = "02fkg2bv87q0yds2wz3w0s7i1x6qcgbrl00dy6ipajdapfh7clx5"; libName = "tonic_prost"; authors = [ "Lucio Franco " @@ -12017,7 +12039,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "visit-mut" "clone-impls" "extra-traits" "proc-macro" ]; } @@ -12194,9 +12216,9 @@ rec { }; "tracing-subscriber" = rec { crateName = "tracing-subscriber"; - version = "0.3.22"; + version = "0.3.23"; edition = "2018"; - sha256 = "07hz575a0p1c2i4xw3gs3hkrykhndnkbfhyqdwjhvayx4ww18c1g"; + sha256 = "06fkr0qhggvrs861d7f74pn3i3a10h5jsp4n70jj9ys5b675fzyb"; libName = "tracing_subscriber"; authors = [ "Eliza Weisman " @@ -12366,9 +12388,9 @@ rec { }; "unicode-segmentation" = rec { crateName = "unicode-segmentation"; - version = "1.12.0"; + version = "1.13.2"; edition = "2018"; - sha256 = "14qla2jfx74yyb9ds3d2mpwpa4l4lzb9z57c6d2ba511458z5k7n"; + sha256 = "135a26m4a0wj319gcw28j6a5aqvz00jmgwgmcs6szgxjf942facn"; libName = "unicode_segmentation"; authors = [ "kwantam " @@ -12606,9 +12628,9 @@ rec { }; "wasm-bindgen" = rec { crateName = "wasm-bindgen"; - version = "0.2.108"; + version = "0.2.116"; edition = "2021"; - sha256 = "0rl5pn80sdhj2p2r28lp3k50a8mpppzgwzssz2f3jdqyxhq4l0k4"; + sha256 = "0cdnllyyl4hf87yn5q2b38f4i516hcq14ni1qpl1mc2vgcpqih3x"; libName = "wasm_bindgen"; authors = [ "The wasm-bindgen Developers" @@ -12657,62 +12679,38 @@ rec { }; "wasm-bindgen-futures" = rec { crateName = "wasm-bindgen-futures"; - version = "0.4.58"; + version = "0.4.66"; edition = "2021"; - sha256 = "0vqywn9df5i6mms3sw47v3kj7rzx8ryghqq0xb4jk05fs1zyg9kh"; + sha256 = "01dzgkcngfgxkgc566vpwkn0gjp0cdf0cbznbs4q2hc4w9chja0r"; libName = "wasm_bindgen_futures"; authors = [ "The wasm-bindgen Developers" ]; dependencies = [ - { - name = "cfg-if"; - packageId = "cfg-if"; - } - { - name = "futures-util"; - packageId = "futures-util"; - optional = true; - usesDefaultFeatures = false; - features = [ "std" ]; - } { name = "js-sys"; packageId = "js-sys"; usesDefaultFeatures = false; - } - { - name = "once_cell"; - packageId = "once_cell"; - usesDefaultFeatures = false; + features = [ "futures" ]; } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; usesDefaultFeatures = false; } - { - name = "web-sys"; - packageId = "web-sys"; - usesDefaultFeatures = false; - target = { target, features }: (builtins.elem "atomics" targetFeatures); - features = [ "MessageEvent" "Worker" ]; - } ]; features = { "default" = [ "std" ]; - "futures-core" = [ "dep:futures-core" ]; - "futures-core-03-stream" = [ "futures-core" ]; - "futures-util" = [ "dep:futures-util" ]; - "std" = [ "wasm-bindgen/std" "js-sys/std" "web-sys/std" "futures-util" ]; + "futures-core-03-stream" = [ "js-sys/futures-core-03-stream" ]; + "std" = [ "wasm-bindgen/std" "js-sys/std" ]; }; - resolvedDefaultFeatures = [ "default" "futures-util" "std" ]; + resolvedDefaultFeatures = [ "default" "std" ]; }; "wasm-bindgen-macro" = rec { crateName = "wasm-bindgen-macro"; - version = "0.2.108"; + version = "0.2.116"; edition = "2021"; - sha256 = "026nnvakp0w6j3ghpcxn31shj9wx8bv8x7nk3gkk40klkjfj72q0"; + sha256 = "0dxm2p00g12vqdbs07kvvpw45pwqqdj2ibfsprfh67g0cqq3v5vm"; procMacro = true; libName = "wasm_bindgen_macro"; authors = [ @@ -12734,9 +12732,9 @@ rec { }; "wasm-bindgen-macro-support" = rec { crateName = "wasm-bindgen-macro-support"; - version = "0.2.108"; + version = "0.2.116"; edition = "2021"; - sha256 = "0m9sj475ypgifbkvksjsqs2gy3bq96f87ychch784m4gspiblmjj"; + sha256 = "1b4y37fcgfrhm1iscbz76lg85p3l8g0j4wzfrw5rx0b5wx5mxbwi"; libName = "wasm_bindgen_macro_support"; authors = [ "The wasm-bindgen Developers" @@ -12756,8 +12754,8 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; - features = [ "visit" "visit-mut" "full" ]; + packageId = "syn 2.0.117"; + features = [ "visit" "visit-mut" "full" "extra-traits" ]; } { name = "wasm-bindgen-shared"; @@ -12770,10 +12768,10 @@ rec { }; "wasm-bindgen-shared" = rec { crateName = "wasm-bindgen-shared"; - version = "0.2.108"; + version = "0.2.116"; edition = "2021"; links = "wasm_bindgen"; - sha256 = "04ix7v99rvj5730553j58pqsrwpf9sqazr60y3cchx5cr60ba08z"; + sha256 = "0cx6a2qqf15j1y7jgyjgvsnfi651rjcifi8ypwvg60lglw309gy9"; libName = "wasm_bindgen_shared"; authors = [ "The wasm-bindgen Developers" @@ -12898,9 +12896,9 @@ rec { }; "web-sys" = rec { crateName = "web-sys"; - version = "0.3.85"; + version = "0.3.93"; edition = "2021"; - sha256 = "1645c202gyw21m6kxw4ya81vrapl40hlb8m9iqhjj8fra7jk4bii"; + sha256 = "0dxqkz6cx2gxyfx6fwhig90h76mmhq0j12vlaizhb2g1gsind53l"; libName = "web_sys"; authors = [ "The wasm-bindgen Developers" @@ -12926,7 +12924,9 @@ rec { "Attr" = [ "EventTarget" "Node" ]; "AudioBufferSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; "AudioContext" = [ "BaseAudioContext" "EventTarget" ]; + "AudioDecoder" = [ "EventTarget" ]; "AudioDestinationNode" = [ "AudioNode" "EventTarget" ]; + "AudioEncoder" = [ "EventTarget" ]; "AudioNode" = [ "EventTarget" ]; "AudioProcessingEvent" = [ "Event" ]; "AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ]; @@ -12959,6 +12959,7 @@ rec { "Clipboard" = [ "EventTarget" ]; "ClipboardEvent" = [ "Event" ]; "CloseEvent" = [ "Event" ]; + "CommandEvent" = [ "Event" ]; "Comment" = [ "CharacterData" "EventTarget" "Node" ]; "CompositionEvent" = [ "Event" "UiEvent" ]; "ConstantSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; @@ -13116,7 +13117,6 @@ rec { "IdbVersionChangeEvent" = [ "Event" ]; "IirFilterNode" = [ "AudioNode" "EventTarget" ]; "ImageCaptureErrorEvent" = [ "Event" ]; - "ImageTrack" = [ "EventTarget" ]; "InputDeviceInfo" = [ "MediaDeviceInfo" ]; "InputEvent" = [ "Event" "UiEvent" ]; "KeyFrameRequestEvent" = [ "Event" ]; @@ -13190,6 +13190,7 @@ rec { "PublicKeyCredential" = [ "Credential" ]; "PushEvent" = [ "Event" "ExtendableEvent" ]; "RadioNodeList" = [ "NodeList" ]; + "Range" = [ "AbstractRange" ]; "RtcDataChannel" = [ "EventTarget" ]; "RtcDataChannelEvent" = [ "Event" ]; "RtcPeerConnection" = [ "EventTarget" ]; @@ -13227,6 +13228,7 @@ rec { "SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ]; "SpeechSynthesisEvent" = [ "Event" ]; "SpeechSynthesisUtterance" = [ "EventTarget" ]; + "StaticRange" = [ "AbstractRange" ]; "StereoPannerNode" = [ "AudioNode" "EventTarget" ]; "StorageEvent" = [ "Event" ]; "SubmitEvent" = [ "Event" ]; @@ -13343,6 +13345,8 @@ rec { "UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ]; "UserProximityEvent" = [ "Event" ]; "ValueEvent" = [ "Event" ]; + "VideoDecoder" = [ "EventTarget" ]; + "VideoEncoder" = [ "EventTarget" ]; "VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ]; "VideoTrackList" = [ "EventTarget" ]; "VisualViewport" = [ "EventTarget" ]; @@ -13384,7 +13388,7 @@ rec { "default" = [ "std" ]; "std" = [ "wasm-bindgen/std" "js-sys/std" ]; }; - resolvedDefaultFeatures = [ "AbortController" "AbortSignal" "Blob" "BlobPropertyBag" "Event" "EventTarget" "File" "FormData" "Headers" "MessageEvent" "ReadableStream" "Request" "RequestCache" "RequestCredentials" "RequestInit" "RequestMode" "Response" "ServiceWorkerGlobalScope" "Window" "Worker" "WorkerGlobalScope" "default" "std" ]; + resolvedDefaultFeatures = [ "AbortController" "AbortSignal" "Blob" "BlobPropertyBag" "EventTarget" "File" "FormData" "Headers" "ReadableStream" "Request" "RequestCache" "RequestCredentials" "RequestInit" "RequestMode" "Response" "ServiceWorkerGlobalScope" "Window" "WorkerGlobalScope" "default" "std" ]; }; "web-time" = rec { crateName = "web-time"; @@ -13468,7 +13472,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "parsing" "proc-macro" "printing" "full" "clone-impls" ]; } @@ -13495,7 +13499,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; usesDefaultFeatures = false; features = [ "parsing" "proc-macro" "printing" "full" "clone-impls" ]; } @@ -13558,7 +13562,7 @@ rec { dependencies = [ { name = "windows-targets"; - packageId = "windows-targets 0.52.6"; + packageId = "windows-targets"; } ]; features = { @@ -13794,271 +13798,6 @@ rec { }; resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Threading" "default" ]; }; - "windows-sys 0.60.2" = rec { - crateName = "windows-sys"; - version = "0.60.2"; - edition = "2021"; - sha256 = "1jrbc615ihqnhjhxplr2kw7rasrskv9wj3lr80hgfd42sbj01xgj"; - libName = "windows_sys"; - authors = [ - "Microsoft" - ]; - dependencies = [ - { - name = "windows-targets"; - packageId = "windows-targets 0.53.5"; - usesDefaultFeatures = false; - } - ]; - features = { - "Wdk" = [ "Win32_Foundation" ]; - "Wdk_Devices" = [ "Wdk" ]; - "Wdk_Devices_Bluetooth" = [ "Wdk_Devices" ]; - "Wdk_Devices_HumanInterfaceDevice" = [ "Wdk_Devices" ]; - "Wdk_Foundation" = [ "Wdk" ]; - "Wdk_Graphics" = [ "Wdk" ]; - "Wdk_Graphics_Direct3D" = [ "Wdk_Graphics" ]; - "Wdk_NetworkManagement" = [ "Wdk" ]; - "Wdk_NetworkManagement_Ndis" = [ "Wdk_NetworkManagement" ]; - "Wdk_NetworkManagement_WindowsFilteringPlatform" = [ "Wdk_NetworkManagement" ]; - "Wdk_Storage" = [ "Wdk" ]; - "Wdk_Storage_FileSystem" = [ "Wdk_Storage" ]; - "Wdk_Storage_FileSystem_Minifilters" = [ "Wdk_Storage_FileSystem" ]; - "Wdk_System" = [ "Wdk" ]; - "Wdk_System_IO" = [ "Wdk_System" ]; - "Wdk_System_Memory" = [ "Wdk_System" ]; - "Wdk_System_OfflineRegistry" = [ "Wdk_System" ]; - "Wdk_System_Registry" = [ "Wdk_System" ]; - "Wdk_System_SystemInformation" = [ "Wdk_System" ]; - "Wdk_System_SystemServices" = [ "Wdk_System" ]; - "Wdk_System_Threading" = [ "Wdk_System" ]; - "Win32" = [ "Win32_Foundation" ]; - "Win32_Data" = [ "Win32" ]; - "Win32_Data_HtmlHelp" = [ "Win32_Data" ]; - "Win32_Data_RightsManagement" = [ "Win32_Data" ]; - "Win32_Devices" = [ "Win32" ]; - "Win32_Devices_AllJoyn" = [ "Win32_Devices" ]; - "Win32_Devices_Beep" = [ "Win32_Devices" ]; - "Win32_Devices_BiometricFramework" = [ "Win32_Devices" ]; - "Win32_Devices_Bluetooth" = [ "Win32_Devices" ]; - "Win32_Devices_Cdrom" = [ "Win32_Devices" ]; - "Win32_Devices_Communication" = [ "Win32_Devices" ]; - "Win32_Devices_DeviceAndDriverInstallation" = [ "Win32_Devices" ]; - "Win32_Devices_DeviceQuery" = [ "Win32_Devices" ]; - "Win32_Devices_Display" = [ "Win32_Devices" ]; - "Win32_Devices_Dvd" = [ "Win32_Devices" ]; - "Win32_Devices_Enumeration" = [ "Win32_Devices" ]; - "Win32_Devices_Enumeration_Pnp" = [ "Win32_Devices_Enumeration" ]; - "Win32_Devices_Fax" = [ "Win32_Devices" ]; - "Win32_Devices_HumanInterfaceDevice" = [ "Win32_Devices" ]; - "Win32_Devices_Nfc" = [ "Win32_Devices" ]; - "Win32_Devices_Nfp" = [ "Win32_Devices" ]; - "Win32_Devices_PortableDevices" = [ "Win32_Devices" ]; - "Win32_Devices_Properties" = [ "Win32_Devices" ]; - "Win32_Devices_Pwm" = [ "Win32_Devices" ]; - "Win32_Devices_Sensors" = [ "Win32_Devices" ]; - "Win32_Devices_SerialCommunication" = [ "Win32_Devices" ]; - "Win32_Devices_Tapi" = [ "Win32_Devices" ]; - "Win32_Devices_Usb" = [ "Win32_Devices" ]; - "Win32_Devices_WebServicesOnDevices" = [ "Win32_Devices" ]; - "Win32_Foundation" = [ "Win32" ]; - "Win32_Gaming" = [ "Win32" ]; - "Win32_Globalization" = [ "Win32" ]; - "Win32_Graphics" = [ "Win32" ]; - "Win32_Graphics_Dwm" = [ "Win32_Graphics" ]; - "Win32_Graphics_Gdi" = [ "Win32_Graphics" ]; - "Win32_Graphics_GdiPlus" = [ "Win32_Graphics" ]; - "Win32_Graphics_Hlsl" = [ "Win32_Graphics" ]; - "Win32_Graphics_OpenGL" = [ "Win32_Graphics" ]; - "Win32_Graphics_Printing" = [ "Win32_Graphics" ]; - "Win32_Graphics_Printing_PrintTicket" = [ "Win32_Graphics_Printing" ]; - "Win32_Management" = [ "Win32" ]; - "Win32_Management_MobileDeviceManagementRegistration" = [ "Win32_Management" ]; - "Win32_Media" = [ "Win32" ]; - "Win32_Media_Audio" = [ "Win32_Media" ]; - "Win32_Media_DxMediaObjects" = [ "Win32_Media" ]; - "Win32_Media_KernelStreaming" = [ "Win32_Media" ]; - "Win32_Media_Multimedia" = [ "Win32_Media" ]; - "Win32_Media_Streaming" = [ "Win32_Media" ]; - "Win32_Media_WindowsMediaFormat" = [ "Win32_Media" ]; - "Win32_NetworkManagement" = [ "Win32" ]; - "Win32_NetworkManagement_Dhcp" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_Dns" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_InternetConnectionWizard" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_IpHelper" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_Multicast" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_Ndis" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_NetBios" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_NetManagement" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_NetShell" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_NetworkDiagnosticsFramework" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_P2P" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_QoS" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_Rras" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_Snmp" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_WNet" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_WebDav" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_WiFi" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_WindowsConnectionManager" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_WindowsFilteringPlatform" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_WindowsFirewall" = [ "Win32_NetworkManagement" ]; - "Win32_NetworkManagement_WindowsNetworkVirtualization" = [ "Win32_NetworkManagement" ]; - "Win32_Networking" = [ "Win32" ]; - "Win32_Networking_ActiveDirectory" = [ "Win32_Networking" ]; - "Win32_Networking_Clustering" = [ "Win32_Networking" ]; - "Win32_Networking_HttpServer" = [ "Win32_Networking" ]; - "Win32_Networking_Ldap" = [ "Win32_Networking" ]; - "Win32_Networking_WebSocket" = [ "Win32_Networking" ]; - "Win32_Networking_WinHttp" = [ "Win32_Networking" ]; - "Win32_Networking_WinInet" = [ "Win32_Networking" ]; - "Win32_Networking_WinSock" = [ "Win32_Networking" ]; - "Win32_Networking_WindowsWebServices" = [ "Win32_Networking" ]; - "Win32_Security" = [ "Win32" ]; - "Win32_Security_AppLocker" = [ "Win32_Security" ]; - "Win32_Security_Authentication" = [ "Win32_Security" ]; - "Win32_Security_Authentication_Identity" = [ "Win32_Security_Authentication" ]; - "Win32_Security_Authorization" = [ "Win32_Security" ]; - "Win32_Security_Credentials" = [ "Win32_Security" ]; - "Win32_Security_Cryptography" = [ "Win32_Security" ]; - "Win32_Security_Cryptography_Catalog" = [ "Win32_Security_Cryptography" ]; - "Win32_Security_Cryptography_Certificates" = [ "Win32_Security_Cryptography" ]; - "Win32_Security_Cryptography_Sip" = [ "Win32_Security_Cryptography" ]; - "Win32_Security_Cryptography_UI" = [ "Win32_Security_Cryptography" ]; - "Win32_Security_DiagnosticDataQuery" = [ "Win32_Security" ]; - "Win32_Security_DirectoryServices" = [ "Win32_Security" ]; - "Win32_Security_EnterpriseData" = [ "Win32_Security" ]; - "Win32_Security_ExtensibleAuthenticationProtocol" = [ "Win32_Security" ]; - "Win32_Security_Isolation" = [ "Win32_Security" ]; - "Win32_Security_LicenseProtection" = [ "Win32_Security" ]; - "Win32_Security_NetworkAccessProtection" = [ "Win32_Security" ]; - "Win32_Security_WinTrust" = [ "Win32_Security" ]; - "Win32_Security_WinWlx" = [ "Win32_Security" ]; - "Win32_Storage" = [ "Win32" ]; - "Win32_Storage_Cabinets" = [ "Win32_Storage" ]; - "Win32_Storage_CloudFilters" = [ "Win32_Storage" ]; - "Win32_Storage_Compression" = [ "Win32_Storage" ]; - "Win32_Storage_DistributedFileSystem" = [ "Win32_Storage" ]; - "Win32_Storage_FileHistory" = [ "Win32_Storage" ]; - "Win32_Storage_FileSystem" = [ "Win32_Storage" ]; - "Win32_Storage_Imapi" = [ "Win32_Storage" ]; - "Win32_Storage_IndexServer" = [ "Win32_Storage" ]; - "Win32_Storage_InstallableFileSystems" = [ "Win32_Storage" ]; - "Win32_Storage_IscsiDisc" = [ "Win32_Storage" ]; - "Win32_Storage_Jet" = [ "Win32_Storage" ]; - "Win32_Storage_Nvme" = [ "Win32_Storage" ]; - "Win32_Storage_OfflineFiles" = [ "Win32_Storage" ]; - "Win32_Storage_OperationRecorder" = [ "Win32_Storage" ]; - "Win32_Storage_Packaging" = [ "Win32_Storage" ]; - "Win32_Storage_Packaging_Appx" = [ "Win32_Storage_Packaging" ]; - "Win32_Storage_ProjectedFileSystem" = [ "Win32_Storage" ]; - "Win32_Storage_StructuredStorage" = [ "Win32_Storage" ]; - "Win32_Storage_Vhd" = [ "Win32_Storage" ]; - "Win32_Storage_Xps" = [ "Win32_Storage" ]; - "Win32_System" = [ "Win32" ]; - "Win32_System_AddressBook" = [ "Win32_System" ]; - "Win32_System_Antimalware" = [ "Win32_System" ]; - "Win32_System_ApplicationInstallationAndServicing" = [ "Win32_System" ]; - "Win32_System_ApplicationVerifier" = [ "Win32_System" ]; - "Win32_System_ClrHosting" = [ "Win32_System" ]; - "Win32_System_Com" = [ "Win32_System" ]; - "Win32_System_Com_Marshal" = [ "Win32_System_Com" ]; - "Win32_System_Com_StructuredStorage" = [ "Win32_System_Com" ]; - "Win32_System_Com_Urlmon" = [ "Win32_System_Com" ]; - "Win32_System_ComponentServices" = [ "Win32_System" ]; - "Win32_System_Console" = [ "Win32_System" ]; - "Win32_System_CorrelationVector" = [ "Win32_System" ]; - "Win32_System_DataExchange" = [ "Win32_System" ]; - "Win32_System_DeploymentServices" = [ "Win32_System" ]; - "Win32_System_DeveloperLicensing" = [ "Win32_System" ]; - "Win32_System_Diagnostics" = [ "Win32_System" ]; - "Win32_System_Diagnostics_Ceip" = [ "Win32_System_Diagnostics" ]; - "Win32_System_Diagnostics_Debug" = [ "Win32_System_Diagnostics" ]; - "Win32_System_Diagnostics_Debug_Extensions" = [ "Win32_System_Diagnostics_Debug" ]; - "Win32_System_Diagnostics_Etw" = [ "Win32_System_Diagnostics" ]; - "Win32_System_Diagnostics_ProcessSnapshotting" = [ "Win32_System_Diagnostics" ]; - "Win32_System_Diagnostics_ToolHelp" = [ "Win32_System_Diagnostics" ]; - "Win32_System_Diagnostics_TraceLogging" = [ "Win32_System_Diagnostics" ]; - "Win32_System_DistributedTransactionCoordinator" = [ "Win32_System" ]; - "Win32_System_Environment" = [ "Win32_System" ]; - "Win32_System_ErrorReporting" = [ "Win32_System" ]; - "Win32_System_EventCollector" = [ "Win32_System" ]; - "Win32_System_EventLog" = [ "Win32_System" ]; - "Win32_System_EventNotificationService" = [ "Win32_System" ]; - "Win32_System_GroupPolicy" = [ "Win32_System" ]; - "Win32_System_HostCompute" = [ "Win32_System" ]; - "Win32_System_HostComputeNetwork" = [ "Win32_System" ]; - "Win32_System_HostComputeSystem" = [ "Win32_System" ]; - "Win32_System_Hypervisor" = [ "Win32_System" ]; - "Win32_System_IO" = [ "Win32_System" ]; - "Win32_System_Iis" = [ "Win32_System" ]; - "Win32_System_Ioctl" = [ "Win32_System" ]; - "Win32_System_JobObjects" = [ "Win32_System" ]; - "Win32_System_Js" = [ "Win32_System" ]; - "Win32_System_Kernel" = [ "Win32_System" ]; - "Win32_System_LibraryLoader" = [ "Win32_System" ]; - "Win32_System_Mailslots" = [ "Win32_System" ]; - "Win32_System_Mapi" = [ "Win32_System" ]; - "Win32_System_Memory" = [ "Win32_System" ]; - "Win32_System_Memory_NonVolatile" = [ "Win32_System_Memory" ]; - "Win32_System_MessageQueuing" = [ "Win32_System" ]; - "Win32_System_MixedReality" = [ "Win32_System" ]; - "Win32_System_Ole" = [ "Win32_System" ]; - "Win32_System_PasswordManagement" = [ "Win32_System" ]; - "Win32_System_Performance" = [ "Win32_System" ]; - "Win32_System_Performance_HardwareCounterProfiling" = [ "Win32_System_Performance" ]; - "Win32_System_Pipes" = [ "Win32_System" ]; - "Win32_System_Power" = [ "Win32_System" ]; - "Win32_System_ProcessStatus" = [ "Win32_System" ]; - "Win32_System_Recovery" = [ "Win32_System" ]; - "Win32_System_Registry" = [ "Win32_System" ]; - "Win32_System_RemoteDesktop" = [ "Win32_System" ]; - "Win32_System_RemoteManagement" = [ "Win32_System" ]; - "Win32_System_RestartManager" = [ "Win32_System" ]; - "Win32_System_Restore" = [ "Win32_System" ]; - "Win32_System_Rpc" = [ "Win32_System" ]; - "Win32_System_Search" = [ "Win32_System" ]; - "Win32_System_Search_Common" = [ "Win32_System_Search" ]; - "Win32_System_SecurityCenter" = [ "Win32_System" ]; - "Win32_System_Services" = [ "Win32_System" ]; - "Win32_System_SetupAndMigration" = [ "Win32_System" ]; - "Win32_System_Shutdown" = [ "Win32_System" ]; - "Win32_System_StationsAndDesktops" = [ "Win32_System" ]; - "Win32_System_SubsystemForLinux" = [ "Win32_System" ]; - "Win32_System_SystemInformation" = [ "Win32_System" ]; - "Win32_System_SystemServices" = [ "Win32_System" ]; - "Win32_System_Threading" = [ "Win32_System" ]; - "Win32_System_Time" = [ "Win32_System" ]; - "Win32_System_TpmBaseServices" = [ "Win32_System" ]; - "Win32_System_UserAccessLogging" = [ "Win32_System" ]; - "Win32_System_Variant" = [ "Win32_System" ]; - "Win32_System_VirtualDosMachines" = [ "Win32_System" ]; - "Win32_System_WindowsProgramming" = [ "Win32_System" ]; - "Win32_System_Wmi" = [ "Win32_System" ]; - "Win32_UI" = [ "Win32" ]; - "Win32_UI_Accessibility" = [ "Win32_UI" ]; - "Win32_UI_ColorSystem" = [ "Win32_UI" ]; - "Win32_UI_Controls" = [ "Win32_UI" ]; - "Win32_UI_Controls_Dialogs" = [ "Win32_UI_Controls" ]; - "Win32_UI_HiDpi" = [ "Win32_UI" ]; - "Win32_UI_Input" = [ "Win32_UI" ]; - "Win32_UI_Input_Ime" = [ "Win32_UI_Input" ]; - "Win32_UI_Input_KeyboardAndMouse" = [ "Win32_UI_Input" ]; - "Win32_UI_Input_Pointer" = [ "Win32_UI_Input" ]; - "Win32_UI_Input_Touch" = [ "Win32_UI_Input" ]; - "Win32_UI_Input_XboxController" = [ "Win32_UI_Input" ]; - "Win32_UI_InteractionContext" = [ "Win32_UI" ]; - "Win32_UI_Magnification" = [ "Win32_UI" ]; - "Win32_UI_Shell" = [ "Win32_UI" ]; - "Win32_UI_Shell_Common" = [ "Win32_UI_Shell" ]; - "Win32_UI_Shell_PropertiesSystem" = [ "Win32_UI_Shell" ]; - "Win32_UI_TabletPC" = [ "Win32_UI" ]; - "Win32_UI_TextServices" = [ "Win32_UI" ]; - "Win32_UI_WindowsAndMessaging" = [ "Win32_UI" ]; - "Win32_Web" = [ "Win32" ]; - "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; - }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_System" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; - }; "windows-sys 0.61.2" = rec { crateName = "windows-sys"; version = "0.61.2"; @@ -14321,7 +14060,7 @@ rec { }; resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_Time" "Win32_System_WindowsProgramming" "default" ]; }; - "windows-targets 0.52.6" = rec { + "windows-targets" = rec { crateName = "windows-targets"; version = "0.52.6"; edition = "2021"; @@ -14333,104 +14072,48 @@ rec { dependencies = [ { name = "windows_aarch64_gnullvm"; - packageId = "windows_aarch64_gnullvm 0.52.6"; + packageId = "windows_aarch64_gnullvm"; target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); } { name = "windows_aarch64_msvc"; - packageId = "windows_aarch64_msvc 0.52.6"; + packageId = "windows_aarch64_msvc"; target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_gnu"; - packageId = "windows_i686_gnu 0.52.6"; + packageId = "windows_i686_gnu"; target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_gnullvm"; - packageId = "windows_i686_gnullvm 0.52.6"; + packageId = "windows_i686_gnullvm"; target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); } { name = "windows_i686_msvc"; - packageId = "windows_i686_msvc 0.52.6"; + packageId = "windows_i686_msvc"; target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnu"; - packageId = "windows_x86_64_gnu 0.52.6"; + packageId = "windows_x86_64_gnu"; target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnullvm"; - packageId = "windows_x86_64_gnullvm 0.52.6"; + packageId = "windows_x86_64_gnullvm"; target = { target, features }: (target.name == "x86_64-pc-windows-gnullvm"); } { name = "windows_x86_64_msvc"; - packageId = "windows_x86_64_msvc 0.52.6"; + packageId = "windows_x86_64_msvc"; target = { target, features }: ((("x86_64" == target."arch" or null) || ("arm64ec" == target."arch" or null)) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } ]; }; - "windows-targets 0.53.5" = rec { - crateName = "windows-targets"; - version = "0.53.5"; - edition = "2021"; - sha256 = "1wv9j2gv3l6wj3gkw5j1kr6ymb5q6dfc42yvydjhv3mqa7szjia9"; - libName = "windows_targets"; - dependencies = [ - { - name = "windows-link"; - packageId = "windows-link"; - usesDefaultFeatures = false; - target = { target, features }: (target."windows_raw_dylib" or false); - } - { - name = "windows_aarch64_gnullvm"; - packageId = "windows_aarch64_gnullvm 0.53.1"; - target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); - } - { - name = "windows_aarch64_msvc"; - packageId = "windows_aarch64_msvc 0.53.1"; - target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_i686_gnu"; - packageId = "windows_i686_gnu 0.53.1"; - target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_i686_gnullvm"; - packageId = "windows_i686_gnullvm 0.53.1"; - target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); - } - { - name = "windows_i686_msvc"; - packageId = "windows_i686_msvc 0.53.1"; - target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_x86_64_gnu"; - packageId = "windows_x86_64_gnu 0.53.1"; - target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_x86_64_gnullvm"; - packageId = "windows_x86_64_gnullvm 0.53.1"; - target = { target, features }: (target.name == "x86_64-pc-windows-gnullvm"); - } - { - name = "windows_x86_64_msvc"; - packageId = "windows_x86_64_msvc 0.53.1"; - target = { target, features }: ((("x86_64" == target."arch" or null) || ("arm64ec" == target."arch" or null)) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - ]; - - }; - "windows_aarch64_gnullvm 0.52.6" = rec { + "windows_aarch64_gnullvm" = rec { crateName = "windows_aarch64_gnullvm"; version = "0.52.6"; edition = "2021"; @@ -14440,14 +14123,7 @@ rec { ]; }; - "windows_aarch64_gnullvm 0.53.1" = rec { - crateName = "windows_aarch64_gnullvm"; - version = "0.53.1"; - edition = "2021"; - sha256 = "0lqvdm510mka9w26vmga7hbkmrw9glzc90l4gya5qbxlm1pl3n59"; - - }; - "windows_aarch64_msvc 0.52.6" = rec { + "windows_aarch64_msvc" = rec { crateName = "windows_aarch64_msvc"; version = "0.52.6"; edition = "2021"; @@ -14457,14 +14133,7 @@ rec { ]; }; - "windows_aarch64_msvc 0.53.1" = rec { - crateName = "windows_aarch64_msvc"; - version = "0.53.1"; - edition = "2021"; - sha256 = "01jh2adlwx043rji888b22whx4bm8alrk3khjpik5xn20kl85mxr"; - - }; - "windows_i686_gnu 0.52.6" = rec { + "windows_i686_gnu" = rec { crateName = "windows_i686_gnu"; version = "0.52.6"; edition = "2021"; @@ -14474,14 +14143,7 @@ rec { ]; }; - "windows_i686_gnu 0.53.1" = rec { - crateName = "windows_i686_gnu"; - version = "0.53.1"; - edition = "2021"; - sha256 = "18wkcm82ldyg4figcsidzwbg1pqd49jpm98crfz0j7nqd6h6s3ln"; - - }; - "windows_i686_gnullvm 0.52.6" = rec { + "windows_i686_gnullvm" = rec { crateName = "windows_i686_gnullvm"; version = "0.52.6"; edition = "2021"; @@ -14491,14 +14153,7 @@ rec { ]; }; - "windows_i686_gnullvm 0.53.1" = rec { - crateName = "windows_i686_gnullvm"; - version = "0.53.1"; - edition = "2021"; - sha256 = "030qaxqc4salz6l4immfb6sykc6gmhyir9wzn2w8mxj8038mjwzs"; - - }; - "windows_i686_msvc 0.52.6" = rec { + "windows_i686_msvc" = rec { crateName = "windows_i686_msvc"; version = "0.52.6"; edition = "2021"; @@ -14508,14 +14163,7 @@ rec { ]; }; - "windows_i686_msvc 0.53.1" = rec { - crateName = "windows_i686_msvc"; - version = "0.53.1"; - edition = "2021"; - sha256 = "1hi6scw3mn2pbdl30ji5i4y8vvspb9b66l98kkz350pig58wfyhy"; - - }; - "windows_x86_64_gnu 0.52.6" = rec { + "windows_x86_64_gnu" = rec { crateName = "windows_x86_64_gnu"; version = "0.52.6"; edition = "2021"; @@ -14525,14 +14173,7 @@ rec { ]; }; - "windows_x86_64_gnu 0.53.1" = rec { - crateName = "windows_x86_64_gnu"; - version = "0.53.1"; - edition = "2021"; - sha256 = "16d4yiysmfdlsrghndr97y57gh3kljkwhfdbcs05m1jasz6l4f4w"; - - }; - "windows_x86_64_gnullvm 0.52.6" = rec { + "windows_x86_64_gnullvm" = rec { crateName = "windows_x86_64_gnullvm"; version = "0.52.6"; edition = "2021"; @@ -14542,14 +14183,7 @@ rec { ]; }; - "windows_x86_64_gnullvm 0.53.1" = rec { - crateName = "windows_x86_64_gnullvm"; - version = "0.53.1"; - edition = "2021"; - sha256 = "1qbspgv4g3q0vygkg8rnql5c6z3caqv38japiynyivh75ng1gyhg"; - - }; - "windows_x86_64_msvc 0.52.6" = rec { + "windows_x86_64_msvc" = rec { crateName = "windows_x86_64_msvc"; version = "0.52.6"; edition = "2021"; @@ -14558,19 +14192,12 @@ rec { "Microsoft" ]; - }; - "windows_x86_64_msvc 0.53.1" = rec { - crateName = "windows_x86_64_msvc"; - version = "0.53.1"; - edition = "2021"; - sha256 = "0l6npq76vlq4ksn4bwsncpr8508mk0gmznm6wnhjg95d19gzzfyn"; - }; "winnow" = rec { crateName = "winnow"; - version = "0.7.14"; + version = "1.0.1"; edition = "2021"; - sha256 = "0a88ahjqhyn2ln1yplq2xsigm09kxqkdkkk2c2mfxkbzszln8lss"; + sha256 = "1dbji1bwviy08pl74f2qw2m4w9hc4p3vyl3lfj05jdydy59w1nh9"; dependencies = [ { name = "memchr"; @@ -14580,13 +14207,16 @@ rec { } ]; features = { + "ascii" = [ "parser" ]; + "binary" = [ "parser" ]; "debug" = [ "std" "dep:anstream" "dep:anstyle" "dep:is_terminal_polyfill" "dep:terminal_size" ]; - "default" = [ "std" ]; + "default" = [ "std" "ascii" "binary" ]; "simd" = [ "dep:memchr" ]; "std" = [ "alloc" "memchr?/std" ]; - "unstable-doc" = [ "alloc" "std" "simd" "unstable-recover" ]; + "unstable-doc" = [ "alloc" "std" "ascii" "binary" "simd" "unstable-recover" ]; + "unstable-recover" = [ "parser" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "std" ]; + resolvedDefaultFeatures = [ "alloc" "ascii" "binary" "default" "parser" "std" ]; }; "wit-bindgen" = rec { crateName = "wit-bindgen"; @@ -14671,7 +14301,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "printing" ]; } { @@ -14722,7 +14352,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "printing" ]; } { @@ -15035,7 +14665,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "fold" ]; } { @@ -15047,9 +14677,9 @@ rec { }; "zerocopy" = rec { crateName = "zerocopy"; - version = "0.8.39"; + version = "0.8.48"; edition = "2021"; - sha256 = "0jmf1iqns5sq07k3dscsgyc706pycar67rrq4j9nrnzacgb3avfv"; + sha256 = "1sb8plax8jbrsng1jdval7bdhk7hhrx40dz3hwh074k6knzkgm7f"; authors = [ "Joshua Liebow-Feeser " "Jack Wrenn " @@ -15083,9 +14713,9 @@ rec { }; "zerocopy-derive" = rec { crateName = "zerocopy-derive"; - version = "0.8.39"; + version = "0.8.48"; edition = "2021"; - sha256 = "05z5yfq0mx3xdqadrgq5sd4d03nl82d9r0vp1qchaip9d4qws8j1"; + sha256 = "1m5s0g92cxggqc74j83k1priz24k3z93sj5gadppd20p9c4cvqvh"; procMacro = true; libName = "zerocopy_derive"; authors = [ @@ -15103,14 +14733,14 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" ]; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "visit" ]; } ]; @@ -15159,7 +14789,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "fold" ]; } { @@ -15213,7 +14843,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "full" "extra-traits" "visit" ]; } ]; @@ -15315,7 +14945,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.116"; + packageId = "syn 2.0.117"; features = [ "extra-traits" ]; } ]; diff --git a/Cargo.toml b/Cargo.toml index 8b72d390..f05a3903 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,5 +33,5 @@ tokio = { version = "1.40", features = ["full"] } tracing = "0.1" [patch."https://github.com/stackabletech/operator-rs.git"] -# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" } +stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "spike/generic-databases" } # stackable-operator = { path = "../operator-rs/crates/stackable-operator" } diff --git a/crate-hashes.json b/crate-hashes.json index 2148b36f..077cd5a1 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -4,14 +4,14 @@ "git+https://github.com/kube-rs/kube-rs?rev=fe69cc486ff8e62a7da61d64ec3ebbd9e64c43b5#kube-derive@3.0.1": "1irm4g79crlxjm3iqrgvx0f6wxdcj394ky84q89pk9i36y2mlw3n", "git+https://github.com/kube-rs/kube-rs?rev=fe69cc486ff8e62a7da61d64ec3ebbd9e64c43b5#kube-runtime@3.0.1": "1irm4g79crlxjm3iqrgvx0f6wxdcj394ky84q89pk9i36y2mlw3n", "git+https://github.com/kube-rs/kube-rs?rev=fe69cc486ff8e62a7da61d64ec3ebbd9e64c43b5#kube@3.0.1": "1irm4g79crlxjm3iqrgvx0f6wxdcj394ky84q89pk9i36y2mlw3n", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#k8s-version@0.1.3": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#stackable-certs@0.4.0": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#stackable-operator-derive@0.3.1": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#stackable-operator@0.108.0": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#stackable-shared@0.1.0": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#stackable-telemetry@0.6.2": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#stackable-versioned-macros@0.8.3": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#stackable-versioned@0.8.3": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.108.0#stackable-webhook@0.9.0": "1fgc7i8rhq1nl9m4s69sbfiywy2jx4narpynvm3g54vd5yd4c6m2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#k8s-version@0.1.3": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#stackable-certs@0.4.0": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#stackable-operator-derive@0.3.1": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#stackable-operator@0.108.0": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#stackable-shared@0.1.0": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#stackable-telemetry@0.6.3": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#stackable-versioned-macros@0.8.3": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#stackable-versioned@0.8.3": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", + "git+https://github.com/stackabletech//operator-rs.git?branch=spike%2Fgeneric-databases#stackable-webhook@0.9.0": "1mw4sbfasvygwcxcd87s5zs01d3srn9ij89dqzix9c5pnw7djyj2", "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/docs/modules/airflow/examples/example-airflow-dags-configmap.yaml b/docs/modules/airflow/examples/example-airflow-dags-configmap.yaml index afb8f558..f9ef80c4 100644 --- a/docs/modules/airflow/examples/example-airflow-dags-configmap.yaml +++ b/docs/modules/airflow/examples/example-airflow-dags-configmap.yaml @@ -7,9 +7,12 @@ spec: image: productVersion: 3.1.6 clusterConfig: - loadExamples: false - exposeConfig: false - credentialsSecret: simple-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials volumes: - name: cm-dag # <3> configMap: @@ -27,14 +30,4 @@ spec: AIRFLOW__CORE__DAGS_FOLDER: "/dags" # <8> replicas: 1 celeryExecutors: - roleGroups: - default: - envOverrides: - AIRFLOW__CORE__DAGS_FOLDER: "/dags" # <8> - replicas: 2 - schedulers: - roleGroups: - default: - envOverrides: - AIRFLOW__CORE__DAGS_FOLDER: "/dags" # <8> - replicas: 1 + # ... diff --git a/docs/modules/airflow/examples/example-airflow-gitsync-https.yaml b/docs/modules/airflow/examples/example-airflow-gitsync-https.yaml index 7589c9eb..c14abeae 100644 --- a/docs/modules/airflow/examples/example-airflow-gitsync-https.yaml +++ b/docs/modules/airflow/examples/example-airflow-gitsync-https.yaml @@ -9,7 +9,7 @@ spec: clusterConfig: loadExamples: false exposeConfig: false - credentialsSecret: test-airflow-credentials # <1> + credentialsSecret: airflow-admin-credentials # <1> dagsGitSync: # <2> - repo: https://github.com/stackabletech/airflow-operator # <3> branch: "main" # <4> @@ -17,7 +17,7 @@ spec: depth: 10 # <6> wait: 20s # <7> credentials: - basicAuthSecretName: git-credentials # <8> + basicAuthSecretName: airflow-git-credentials # <8> gitSyncConf: # <9> --rev: HEAD # <10> # --rev: git-sync-tag # N.B. tag must be covered by "depth" (the number of commits to clone) @@ -29,7 +29,7 @@ spec: apiVersion: v1 kind: Secret metadata: - name: git-credentials # <8> + name: airflow-git-credentials # <8> type: Opaque data: user: c3Rh... diff --git a/docs/modules/airflow/examples/example-airflow-incluster.yaml b/docs/modules/airflow/examples/example-airflow-incluster.yaml index ca437df9..d126db10 100644 --- a/docs/modules/airflow/examples/example-airflow-incluster.yaml +++ b/docs/modules/airflow/examples/example-airflow-incluster.yaml @@ -9,28 +9,39 @@ spec: clusterConfig: loadExamples: false exposeConfig: false - credentialsSecret: simple-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable roleGroups: default: - envOverrides: + envOverrides: &envOverrides AIRFLOW_CONN_KUBERNETES_IN_CLUSTER: "kubernetes://?__extra__=%7B%22extra__kubernetes__in_cluster%22%3A+true%2C+%22extra__kubernetes__kube_config%22%3A+%22%22%2C+%22extra__kubernetes__kube_config_path%22%3A+%22%22%2C+%22extra__kubernetes__namespace%22%3A+%22%22%7D" replicas: 1 schedulers: roleGroups: default: - envOverrides: - AIRFLOW_CONN_KUBERNETES_IN_CLUSTER: "kubernetes://?__extra__=%7B%22extra__kubernetes__in_cluster%22%3A+true%2C+%22extra__kubernetes__kube_config%22%3A+%22%22%2C+%22extra__kubernetes__kube_config_path%22%3A+%22%22%2C+%22extra__kubernetes__namespace%22%3A+%22%22%7D" + envOverrides: *envOverrides replicas: 1 celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials roleGroups: default: - envOverrides: - AIRFLOW_CONN_KUBERNETES_IN_CLUSTER: "kubernetes://?__extra__=%7B%22extra__kubernetes__in_cluster%22%3A+true%2C+%22extra__kubernetes__kube_config%22%3A+%22%22%2C+%22extra__kubernetes__kube_config_path%22%3A+%22%22%2C+%22extra__kubernetes__namespace%22%3A+%22%22%7D" + envOverrides: *envOverrides replicas: 1 # in case of using kubernetesExecutors # kubernetesExecutors: -# envOverrides: -# AIRFLOW_CONN_KUBERNETES_IN_CLUSTER: "kubernetes://?__extra__=%7B%22extra__kubernetes__in_cluster%22%3A+true%2C+%22extra__kubernetes__kube_config%22%3A+%22%22%2C+%22extra__kubernetes__kube_config_path%22%3A+%22%22%2C+%22extra__kubernetes__namespace%22%3A+%22%22%7D" +# envOverrides: *envOverrides diff --git a/docs/modules/airflow/examples/example-airflow-secret.yaml b/docs/modules/airflow/examples/example-airflow-secret.yaml deleted file mode 100644 index 5e112e91..00000000 --- a/docs/modules/airflow/examples/example-airflow-secret.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: simple-airflow-credentials -type: Opaque -stringData: - adminUser.username: airflow - adminUser.firstname: Airflow - adminUser.lastname: Admin - adminUser.email: airflow@airflow.com - adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - # Only needed when using celery workers (instead of Kubernetes executors) - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 diff --git a/docs/modules/airflow/examples/getting_started/code/airflow-credentials.yaml b/docs/modules/airflow/examples/getting_started/code/airflow-credentials.yaml index 5e112e91..01399eb2 100644 --- a/docs/modules/airflow/examples/getting_started/code/airflow-credentials.yaml +++ b/docs/modules/airflow/examples/getting_started/code/airflow-credentials.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Secret metadata: - name: simple-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -10,7 +10,19 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - # Only needed when using celery workers (instead of Kubernetes executors) - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis diff --git a/docs/modules/airflow/examples/getting_started/code/airflow.yaml b/docs/modules/airflow/examples/getting_started/code/airflow.yaml index a2c1b646..0436cfea 100644 --- a/docs/modules/airflow/examples/getting_started/code/airflow.yaml +++ b/docs/modules/airflow/examples/getting_started/code/airflow.yaml @@ -10,7 +10,12 @@ spec: clusterConfig: loadExamples: true exposeConfig: false - credentialsSecret: simple-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable @@ -18,6 +23,15 @@ spec: default: replicas: 1 celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials roleGroups: default: replicas: 1 diff --git a/docs/modules/airflow/pages/usage-guide/logging.adoc b/docs/modules/airflow/pages/usage-guide/logging.adoc index bd82ee39..6b682690 100644 --- a/docs/modules/airflow/pages/usage-guide/logging.adoc +++ b/docs/modules/airflow/pages/usage-guide/logging.adoc @@ -23,6 +23,7 @@ spec: "flask_appbuilder": level: WARN celeryExecutors: + ... config: logging: enableVectorAgent: true diff --git a/docs/modules/airflow/pages/usage-guide/storage-resources.adoc b/docs/modules/airflow/pages/usage-guide/storage-resources.adoc index 3c399557..69b7772c 100644 --- a/docs/modules/airflow/pages/usage-guide/storage-resources.adoc +++ b/docs/modules/airflow/pages/usage-guide/storage-resources.adoc @@ -27,6 +27,7 @@ spec: default: replicas: 2 celeryExecutors: + ... config: resources: cpu: diff --git a/docs/modules/airflow/pages/usage-guide/using-kubernetes-executors.adoc b/docs/modules/airflow/pages/usage-guide/using-kubernetes-executors.adoc index cdfa0ae5..499872d9 100644 --- a/docs/modules/airflow/pages/usage-guide/using-kubernetes-executors.adoc +++ b/docs/modules/airflow/pages/usage-guide/using-kubernetes-executors.adoc @@ -12,6 +12,7 @@ E.g. you would change the following example ---- spec: celeryExecutors: + ... roleGroups: default: replicas: 2 diff --git a/examples/simple-airflow-cluster-dags-cmap.yaml b/examples/simple-airflow-cluster-dags-cmap.yaml deleted file mode 100644 index d9f38242..00000000 --- a/examples/simple-airflow-cluster-dags-cmap.yaml +++ /dev/null @@ -1,116 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: simple-airflow-credentials -type: Opaque -stringData: - adminUser.username: airflow - adminUser.firstname: Airflow - adminUser.lastname: Admin - adminUser.email: airflow@airflow.com - adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - # Only needed when using celery workers (instead of Kubernetes executors) - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: cm-dag -data: - test_airflow_dag.py: | - from datetime import datetime, timedelta - from airflow import DAG - from airflow.operators.bash import BashOperator - from airflow.operators.dummy import DummyOperator - - with DAG( - dag_id='test_airflow_dag', - schedule='0 0 * * *', - start_date=datetime(2021, 1, 1), - catchup=False, - dagrun_timeout=timedelta(minutes=60), - tags=['example', 'example2'], - params={"example_key": "example_value"}, - ) as dag: - run_this_last = DummyOperator( - task_id='run_this_last', - ) - - # [START howto_operator_bash] - run_this = BashOperator( - task_id='run_after_loop', - bash_command='echo 1', - ) - # [END howto_operator_bash] - - run_this >> run_this_last - - for i in range(3): - task = BashOperator( - task_id='runme_' + str(i), - bash_command='echo "{{ task_instance_key_str }}" && sleep 1', - ) - task >> run_this - - # [START howto_operator_bash_template] - also_run_this = BashOperator( - task_id='also_run_this', - bash_command='echo "run_id={{ run_id }} | dag_run={{ dag_run }}"', - ) - # [END howto_operator_bash_template] - also_run_this >> run_this_last - - # [START howto_operator_bash_skip] - this_will_skip = BashOperator( - task_id='this_will_skip', - bash_command='echo "hello world"; exit 99;', - dag=dag, - ) - # [END howto_operator_bash_skip] - this_will_skip >> run_this_last - - if __name__ == "__main__": - dag.cli() ---- -apiVersion: airflow.stackable.tech/v1alpha1 -kind: AirflowCluster -metadata: - name: airflow-dags-cmap -spec: - image: - productVersion: 3.1.6 - clusterConfig: - loadExamples: false - exposeConfig: false - credentialsSecret: simple-airflow-credentials - volumes: - - name: cm-dag - configMap: - name: cm-dag - volumeMounts: - - name: cm-dag - mountPath: /dags/test_airflow_dag.py - subPath: test_airflow_dag.py - webservers: - roleConfig: - listenerClass: external-unstable - roleGroups: - default: - envOverrides: - AIRFLOW__CORE__DAGS_FOLDER: "/dags" - replicas: 1 - celeryExecutors: - roleGroups: - default: - envOverrides: - AIRFLOW__CORE__DAGS_FOLDER: "/dags" - replicas: 2 - schedulers: - roleGroups: - default: - envOverrides: - AIRFLOW__CORE__DAGS_FOLDER: "/dags" - replicas: 1 diff --git a/examples/simple-airflow-cluster-ldap-insecure-tls.yaml b/examples/simple-airflow-cluster-ldap-insecure-tls.yaml deleted file mode 100644 index d8a96ee2..00000000 --- a/examples/simple-airflow-cluster-ldap-insecure-tls.yaml +++ /dev/null @@ -1,181 +0,0 @@ -# helm install secret-operator oci://oci.stackable.tech/sdp-charts/secret-operator -# helm install commons-operator oci://oci.stackable.tech/sdp-charts/commons-operator -# helm install listener-operator oci://oci.stackable.tech/sdp-charts/listener-operator -# helm install airflow-operator oci://oci.stackable.tech/sdp-charts/airflow-operator -# helm install --repo https://charts.bitnami.com/bitnami --version 12.1.5 --set auth.username=airflow --set auth.password=airflow --set auth.database=airflow --set image.repository=bitnamilegacy/postgresql --set volumePermissions.image.repository=bitnamilegacy/os-shell --set metrics.image.repository=bitnamilegacy/postgres-exporter --set global.security.allowInsecureImages=true airflow-postgresql postgresql -# helm install --repo https://charts.bitnami.com/bitnami --version 17.3.7 --set auth.password=redis --set replica.replicaCount=1 --set global.security.allowInsecureImages=true --set image.repository=bitnamilegacy/redis --set sentinel.image.repository=bitnamilegacy/redis-sentinel --set metrics.image.repository=bitnamilegacy/redis-exporter --set volumePermissions.image.repository=bitnamilegacy/os-shell --set kubectl.image.repository=bitnamilegacy/kubectl --set sysctl.image.repository=bitnamilegacy/os-shell airflow-redis redis -# Log in with user01/user01 or user02/user02 ---- -apiVersion: secrets.stackable.tech/v1alpha1 -kind: SecretClass -metadata: - name: openldap-tls -spec: - backend: - autoTls: - ca: - autoGenerate: true - secret: - name: openldap-tls-ca - namespace: default ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: openldap - labels: - app.kubernetes.io/name: openldap -spec: - selector: - matchLabels: - app.kubernetes.io/name: openldap - serviceName: openldap - replicas: 1 - template: - metadata: - labels: - app.kubernetes.io/name: openldap - spec: - containers: - - name: openldap - image: docker.io/bitnamilegacy/openldap:2.5 - env: - - name: LDAP_ADMIN_USERNAME - value: admin - - name: LDAP_ADMIN_PASSWORD - value: admin - - name: LDAP_USERS - value: user01,user02 - - name: LDAP_PASSWORDS - value: user01,user02 - - name: LDAP_ENABLE_TLS - value: "yes" - - name: LDAP_TLS_CERT_FILE - value: /tls/tls.crt - - name: LDAP_TLS_KEY_FILE - value: /tls/tls.key - - name: LDAP_TLS_CA_FILE - value: /tls/ca.crt - ports: - - name: tls-ldap - containerPort: 1636 - volumeMounts: - - name: tls - mountPath: /tls - volumes: - - name: tls - ephemeral: - volumeClaimTemplate: - metadata: - annotations: - secrets.stackable.tech/class: openldap-tls - secrets.stackable.tech/scope: pod - spec: - storageClassName: secrets.stackable.tech - accessModes: - - ReadWriteOnce - resources: - requests: - storage: "1" ---- -apiVersion: v1 -kind: Service -metadata: - name: openldap - labels: - app.kubernetes.io/name: openldap -spec: - type: ClusterIP - ports: - - name: tls-ldap - port: 1636 - targetPort: tls-ldap - selector: - app.kubernetes.io/name: openldap ---- -apiVersion: authentication.stackable.tech/v1alpha1 -kind: AuthenticationClass -metadata: - name: airflow-with-ldap-insecure-tls-ldap -spec: - provider: - ldap: - hostname: openldap.default.svc.cluster.local - port: 1636 - searchBase: ou=users,dc=example,dc=org - ldapFieldNames: - uid: uid - group: memberof - givenName: givenName - surname: sn - email: mail - bindCredentials: - secretClass: airflow-with-ldap-bind - tls: - verification: - none: {} ---- -apiVersion: secrets.stackable.tech/v1alpha1 -kind: SecretClass -metadata: - name: airflow-with-ldap-bind -spec: - backend: - k8sSearch: - searchNamespace: - pod: {} ---- -apiVersion: v1 -kind: Secret -metadata: - name: airflow-with-ldap-bind - labels: - secrets.stackable.tech/class: airflow-with-ldap-bind -stringData: - user: cn=admin,dc=example,dc=org - password: admin ---- -apiVersion: v1 -kind: Secret -metadata: - name: airflow-with-ldap-server-veri-tls-credentials -type: Opaque -stringData: - adminUser.username: airflow - adminUser.firstname: Airflow - adminUser.lastname: Admin - adminUser.email: airflow@airflow.com - adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - # Only needed when using celery workers (instead of Kubernetes executors) - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 ---- -apiVersion: airflow.stackable.tech/v1alpha1 -kind: AirflowCluster -metadata: - name: airflow-insecure-tls -spec: - image: - productVersion: 3.1.6 - clusterConfig: - loadExamples: true - exposeConfig: true - credentialsSecret: airflow-with-ldap-server-veri-tls-credentials - authentication: - - authenticationClass: airflow-with-ldap-insecure-tls-ldap - userRegistrationRole: Admin - webservers: - roleConfig: - listenerClass: external-unstable - roleGroups: - default: - replicas: 1 - celeryExecutors: - roleGroups: - default: - replicas: 1 - schedulers: - roleGroups: - default: - replicas: 1 diff --git a/examples/simple-airflow-cluster-ldap.yaml b/examples/simple-airflow-cluster-ldap.yaml deleted file mode 100644 index 2cf1b515..00000000 --- a/examples/simple-airflow-cluster-ldap.yaml +++ /dev/null @@ -1,179 +0,0 @@ -# helm install secret-operator oci://oci.stackable.tech/sdp-charts/secret-operator -# helm install commons-operator oci://oci.stackable.tech/sdp-charts/commons-operator -# helm install listener-operator oci://oci.stackable.tech/sdp-charts/listener-operator -# helm install airflow-operator oci://oci.stackable.tech/sdp-charts/airflow-operator -# helm install --repo https://charts.bitnami.com/bitnami --version 12.1.5 --set auth.username=airflow --set auth.password=airflow --set auth.database=airflow --set image.repository=bitnamilegacy/postgresql --set volumePermissions.image.repository=bitnamilegacy/os-shell --set metrics.image.repository=bitnamilegacy/postgres-exporter --set global.security.allowInsecureImages=true airflow-postgresql postgresql -# helm install --repo https://charts.bitnami.com/bitnami --version 17.3.7 --set auth.password=redis --set replica.replicaCount=1 --set global.security.allowInsecureImages=true --set image.repository=bitnamilegacy/redis --set sentinel.image.repository=bitnamilegacy/redis-sentinel --set metrics.image.repository=bitnamilegacy/redis-exporter --set volumePermissions.image.repository=bitnamilegacy/os-shell --set kubectl.image.repository=bitnamilegacy/kubectl --set sysctl.image.repository=bitnamilegacy/os-shell airflow-redis redis -# Log in with user01/user01 or user02/user02 ---- -apiVersion: secrets.stackable.tech/v1alpha1 -kind: SecretClass -metadata: - name: openldap-tls -spec: - backend: - autoTls: - ca: - autoGenerate: true - secret: - name: openldap-tls-ca - namespace: default ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: openldap - labels: - app.kubernetes.io/name: openldap -spec: - selector: - matchLabels: - app.kubernetes.io/name: openldap - serviceName: openldap - replicas: 1 - template: - metadata: - labels: - app.kubernetes.io/name: openldap - spec: - containers: - - name: openldap - image: docker.io/bitnamilegacy/openldap:2.5 - env: - - name: LDAP_ADMIN_USERNAME - value: admin - - name: LDAP_ADMIN_PASSWORD - value: admin - - name: LDAP_USERS - value: user01,user02 - - name: LDAP_PASSWORDS - value: user01,user02 - - name: LDAP_ENABLE_TLS - value: "yes" - - name: LDAP_TLS_CERT_FILE - value: /tls/tls.crt - - name: LDAP_TLS_KEY_FILE - value: /tls/tls.key - - name: LDAP_TLS_CA_FILE - value: /tls/ca.crt - ports: - - name: tls-ldap - containerPort: 1636 - volumeMounts: - - name: tls - mountPath: /tls - volumes: - - name: tls - ephemeral: - volumeClaimTemplate: - metadata: - annotations: - secrets.stackable.tech/class: openldap-tls - secrets.stackable.tech/scope: pod - spec: - storageClassName: secrets.stackable.tech - accessModes: - - ReadWriteOnce - resources: - requests: - storage: "1" ---- -apiVersion: v1 -kind: Service -metadata: - name: openldap - labels: - app.kubernetes.io/name: openldap -spec: - type: ClusterIP - ports: - - name: tls-ldap - port: 636 - targetPort: tls-ldap - selector: - app.kubernetes.io/name: openldap ---- -apiVersion: authentication.stackable.tech/v1alpha1 -kind: AuthenticationClass -metadata: - name: airflow-with-ldap-server-veri-tls-ldap -spec: - provider: - ldap: - hostname: openldap.default.svc.cluster.local - port: 636 - searchBase: ou=users,dc=example,dc=org - ldapFieldNames: - uid: uid - bindCredentials: - secretClass: airflow-with-ldap-server-veri-tls-ldap-bind - tls: - verification: - server: - caCert: - secretClass: openldap-tls ---- -apiVersion: secrets.stackable.tech/v1alpha1 -kind: SecretClass -metadata: - name: airflow-with-ldap-server-veri-tls-ldap-bind -spec: - backend: - k8sSearch: - searchNamespace: - pod: {} ---- -apiVersion: v1 -kind: Secret -metadata: - name: airflow-with-ldap-server-veri-tls-ldap-bind - labels: - secrets.stackable.tech/class: airflow-with-ldap-server-veri-tls-ldap-bind -stringData: - user: cn=admin,dc=example,dc=org - password: admin ---- -apiVersion: v1 -kind: Secret -metadata: - name: airflow-with-ldap-server-veri-tls-credentials -type: Opaque -stringData: - adminUser.username: airflow - adminUser.firstname: Airflow - adminUser.lastname: Admin - adminUser.email: airflow@airflow.com - adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - # Only needed when using celery workers (instead of Kubernetes executors) - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 ---- -apiVersion: airflow.stackable.tech/v1alpha1 -kind: AirflowCluster -metadata: - name: airflow-with-ldap-server-veri-tls -spec: - image: - productVersion: 3.1.6 - clusterConfig: - loadExamples: true - exposeConfig: true - credentialsSecret: airflow-with-ldap-server-veri-tls-credentials - authentication: - - authenticationClass: airflow-with-ldap-server-veri-tls-ldap - userRegistrationRole: Admin - webservers: - roleConfig: - listenerClass: external-unstable - roleGroups: - default: - replicas: 1 - celeryExecutors: - roleGroups: - default: - replicas: 1 - schedulers: - roleGroups: - default: - replicas: 1 diff --git a/examples/simple-airflow-cluster.yaml b/examples/simple-airflow-cluster.yaml deleted file mode 100644 index 0dd0449e..00000000 --- a/examples/simple-airflow-cluster.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: simple-airflow-credentials -type: Opaque -stringData: - adminUser.username: airflow - adminUser.firstname: Airflow - adminUser.lastname: Admin - adminUser.email: airflow@airflow.com - adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - # Only needed when using celery workers (instead of Kubernetes executors) - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 ---- -apiVersion: airflow.stackable.tech/v1alpha1 -kind: AirflowCluster -metadata: - name: airflow -spec: - image: - productVersion: 3.1.6 - clusterConfig: - loadExamples: true - exposeConfig: false - credentialsSecret: simple-airflow-credentials - webservers: - roleConfig: - listenerClass: external-unstable - roleGroups: - default: - replicas: 1 - celeryExecutors: - roleGroups: - default: - replicas: 2 - schedulers: - roleGroups: - default: - replicas: 1 diff --git a/extra/crds.yaml b/extra/crds.yaml index 288919db..d84cd574 100644 --- a/extra/crds.yaml +++ b/extra/crds.yaml @@ -39,6 +39,125 @@ spec: The celery executor. Deployed with an explicit number of replicas. properties: + celeryBroker: + description: Connection information for the celery broker queue. + oneOf: + - required: + - redis + - required: + - generic + properties: + generic: + description: |- + A generic Celery database connection for broker or result backend types not covered by a + dedicated variant. + + Use this when you need a Celery-compatible connection that does not have a first-class + connection type. The complete connection URI is read from a Secret, giving the user full + control over the connection string. + properties: + uriSecret: + description: The name of the Secret that contains an `uri` key with the complete SQLAlchemy URI. + type: string + required: + - uriSecret + type: object + redis: + description: |- + Connection settings for a [Redis](https://redis.io/) instance. + + Redis is commonly used as a Celery message broker or result backend (e.g. for Apache Airflow). + properties: + credentialsSecret: + description: |- + Name of a Secret containing the `username` and `password` keys used to authenticate + against the Redis server. + type: string + databaseId: + default: 0 + description: |- + Numeric index of the Redis logical database to use. Defaults to `0`. + + Redis supports multiple logical databases within a single instance, identified by an + integer index. Database `0` is the default. + format: uint16 + maximum: 65535.0 + minimum: 0.0 + type: integer + host: + description: Hostname or IP address of the Redis server. + type: string + port: + default: 6379 + description: Port the Redis server is listening on. Defaults to `6379`. + format: uint16 + maximum: 65535.0 + minimum: 0.0 + type: integer + required: + - credentialsSecret + - host + type: object + type: object + celeryResultBackend: + description: Connection information for the celery backend database. + oneOf: + - required: + - postgresql + - required: + - generic + properties: + generic: + description: |- + A generic Celery database connection for broker or result backend types not covered by a + dedicated variant. + + Use this when you need a Celery-compatible connection that does not have a first-class + connection type. The complete connection URI is read from a Secret, giving the user full + control over the connection string. + properties: + uriSecret: + description: The name of the Secret that contains an `uri` key with the complete SQLAlchemy URI. + type: string + required: + - uriSecret + type: object + postgresql: + description: Connection settings for a [PostgreSQL](https://www.postgresql.org/) database. + properties: + credentialsSecret: + description: |- + Name of a Secret containing the `username` and `password` keys used to authenticate + against the PostgreSQL server. + type: string + database: + description: Name of the database (schema) to connect to. + type: string + host: + description: Hostname or IP address of the PostgreSQL server. + type: string + parameters: + additionalProperties: + type: string + default: {} + description: |- + Additional map of JDBC connection parameters to append to the connection URL. The given + `HashMap` will be converted to query parameters in the form of + `?param1=value1¶m2=value2`. + type: object + port: + default: 5432 + description: Port the PostgreSQL server is listening on. Defaults to `5432`. + format: uint16 + maximum: 65535.0 + minimum: 0.0 + type: integer + required: + - credentialsSecret + - database + - host + type: object + type: object cliOverrides: additionalProperties: type: string @@ -414,7 +533,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -926,7 +1045,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -1030,6 +1149,8 @@ spec: type: object type: object required: + - celeryBroker + - celeryResultBackend - roleGroups type: object clusterConfig: @@ -1048,6 +1169,16 @@ spec: description: This field contains OIDC-specific configuration. It is only required in case OIDC is used. nullable: true properties: + clientAuthenticationMethod: + default: client_secret_basic + description: 'The client authentication method used when communicating with the token endpoint. Defaults to `client_secret_basic`. The required contents of `clientCredentialsSecret` depend on the chosen method: secret-based methods (`client_secret_basic`, `client_secret_post`, `client_secret_jwt`) expect a client secret, while `private_key_jwt` expects a private key.' + enum: + - client_secret_basic + - client_secret_post + - client_secret_jwt + - private_key_jwt + - none + type: string clientCredentialsSecret: description: |- A reference to the OIDC client credentials secret. The secret contains @@ -1135,16 +1266,14 @@ spec: type: object credentialsSecret: description: |- - The name of the Secret object containing the admin user credentials and database connection details. - Read the + The name of the Secret object containing the admin user credentials. Read the [getting started guide first steps](https://docs.stackable.tech/home/nightly/airflow/getting_started/first_steps) to find out more. type: string dagsGitSync: default: [] description: |- - The `gitSync` settings allow configuring DAGs to mount via `git-sync`. - Learn more in the + The `gitSync` settings allow configuring DAGs to mount via `git-sync`. Learn more in the [mounting DAGs documentation](https://docs.stackable.tech/home/nightly/airflow/usage-guide/mounting-dags#_via_git_sync). items: properties: @@ -1239,7 +1368,7 @@ spec: type: object exposeConfig: default: false - description: for internal use only - not for production use. + description: For internal use only - not for production use. type: boolean loadExamples: default: false @@ -1247,6 +1376,64 @@ spec: Whether to load example DAGs or not; defaults to false. The examples are used in the [getting started guide](https://docs.stackable.tech/home/nightly/airflow/getting_started/). type: boolean + metadataDatabase: + description: Configure the database where Airflow stores all it's internal metadata + oneOf: + - required: + - postgresql + - required: + - generic + properties: + generic: + description: |- + A generic SQLAlchemy database connection for database types not covered by a dedicated variant. + + Use this when you need to connect to a SQLAlchemy-compatible database that does not have a + first-class connection type. The complete connection URI is read from a Secret, giving the user + full control over the connection string including any driver-specific options. + properties: + uriSecret: + description: The name of the Secret that contains an `uri` key with the complete SQLAlchemy URI. + type: string + required: + - uriSecret + type: object + postgresql: + description: Connection settings for a [PostgreSQL](https://www.postgresql.org/) database. + properties: + credentialsSecret: + description: |- + Name of a Secret containing the `username` and `password` keys used to authenticate + against the PostgreSQL server. + type: string + database: + description: Name of the database (schema) to connect to. + type: string + host: + description: Hostname or IP address of the PostgreSQL server. + type: string + parameters: + additionalProperties: + type: string + default: {} + description: |- + Additional map of JDBC connection parameters to append to the connection URL. The given + `HashMap` will be converted to query parameters in the form of + `?param1=value1¶m2=value2`. + type: object + port: + default: 5432 + description: Port the PostgreSQL server is listening on. Defaults to `5432`. + format: uint16 + maximum: 65535.0 + minimum: 0.0 + type: integer + required: + - credentialsSecret + - database + - host + type: object + type: object vectorAggregatorConfigMapName: description: |- Name of the Vector aggregator [discovery ConfigMap](https://docs.stackable.tech/home/nightly/concepts/service_discovery). @@ -1271,6 +1458,7 @@ spec: type: array required: - credentialsSecret + - metadataDatabase type: object clusterOperation: default: @@ -1679,7 +1867,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -2191,7 +2379,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -2354,7 +2542,7 @@ spec: type: string type: object kubernetesExecutors: - description: With the Kuberentes executor, executor Pods are created on demand. + description: With the Kubernetes executor, executor Pods are created on demand. properties: cliOverrides: additionalProperties: @@ -2731,7 +2919,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -3222,7 +3410,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -3734,7 +3922,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -4219,7 +4407,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -4731,7 +4919,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -5216,7 +5404,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -5733,7 +5921,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -5918,6 +6106,125 @@ spec: The celery executor. Deployed with an explicit number of replicas. properties: + celeryBroker: + description: Connection information for the celery broker queue. + oneOf: + - required: + - redis + - required: + - generic + properties: + generic: + description: |- + A generic Celery database connection for broker or result backend types not covered by a + dedicated variant. + + Use this when you need a Celery-compatible connection that does not have a first-class + connection type. The complete connection URI is read from a Secret, giving the user full + control over the connection string. + properties: + uriSecret: + description: The name of the Secret that contains an `uri` key with the complete SQLAlchemy URI. + type: string + required: + - uriSecret + type: object + redis: + description: |- + Connection settings for a [Redis](https://redis.io/) instance. + + Redis is commonly used as a Celery message broker or result backend (e.g. for Apache Airflow). + properties: + credentialsSecret: + description: |- + Name of a Secret containing the `username` and `password` keys used to authenticate + against the Redis server. + type: string + databaseId: + default: 0 + description: |- + Numeric index of the Redis logical database to use. Defaults to `0`. + + Redis supports multiple logical databases within a single instance, identified by an + integer index. Database `0` is the default. + format: uint16 + maximum: 65535.0 + minimum: 0.0 + type: integer + host: + description: Hostname or IP address of the Redis server. + type: string + port: + default: 6379 + description: Port the Redis server is listening on. Defaults to `6379`. + format: uint16 + maximum: 65535.0 + minimum: 0.0 + type: integer + required: + - credentialsSecret + - host + type: object + type: object + celeryResultBackend: + description: Connection information for the celery backend database. + oneOf: + - required: + - postgresql + - required: + - generic + properties: + generic: + description: |- + A generic Celery database connection for broker or result backend types not covered by a + dedicated variant. + + Use this when you need a Celery-compatible connection that does not have a first-class + connection type. The complete connection URI is read from a Secret, giving the user full + control over the connection string. + properties: + uriSecret: + description: The name of the Secret that contains an `uri` key with the complete SQLAlchemy URI. + type: string + required: + - uriSecret + type: object + postgresql: + description: Connection settings for a [PostgreSQL](https://www.postgresql.org/) database. + properties: + credentialsSecret: + description: |- + Name of a Secret containing the `username` and `password` keys used to authenticate + against the PostgreSQL server. + type: string + database: + description: Name of the database (schema) to connect to. + type: string + host: + description: Hostname or IP address of the PostgreSQL server. + type: string + parameters: + additionalProperties: + type: string + default: {} + description: |- + Additional map of JDBC connection parameters to append to the connection URL. The given + `HashMap` will be converted to query parameters in the form of + `?param1=value1¶m2=value2`. + type: object + port: + default: 5432 + description: Port the PostgreSQL server is listening on. Defaults to `5432`. + format: uint16 + maximum: 65535.0 + minimum: 0.0 + type: integer + required: + - credentialsSecret + - database + - host + type: object + type: object cliOverrides: additionalProperties: type: string @@ -6293,7 +6600,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -6805,7 +7112,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -6909,6 +7216,8 @@ spec: type: object type: object required: + - celeryBroker + - celeryResultBackend - roleGroups type: object clusterConfig: @@ -6927,6 +7236,16 @@ spec: description: This field contains OIDC-specific configuration. It is only required in case OIDC is used. nullable: true properties: + clientAuthenticationMethod: + default: client_secret_basic + description: 'The client authentication method used when communicating with the token endpoint. Defaults to `client_secret_basic`. The required contents of `clientCredentialsSecret` depend on the chosen method: secret-based methods (`client_secret_basic`, `client_secret_post`, `client_secret_jwt`) expect a client secret, while `private_key_jwt` expects a private key.' + enum: + - client_secret_basic + - client_secret_post + - client_secret_jwt + - private_key_jwt + - none + type: string clientCredentialsSecret: description: |- A reference to the OIDC client credentials secret. The secret contains @@ -7014,16 +7333,14 @@ spec: type: object credentialsSecret: description: |- - The name of the Secret object containing the admin user credentials and database connection details. - Read the + The name of the Secret object containing the admin user credentials. Read the [getting started guide first steps](https://docs.stackable.tech/home/nightly/airflow/getting_started/first_steps) to find out more. type: string dagsGitSync: default: [] description: |- - The `gitSync` settings allow configuring DAGs to mount via `git-sync`. - Learn more in the + The `gitSync` settings allow configuring DAGs to mount via `git-sync`. Learn more in the [mounting DAGs documentation](https://docs.stackable.tech/home/nightly/airflow/usage-guide/mounting-dags#_via_git_sync). items: properties: @@ -7094,7 +7411,7 @@ spec: type: object exposeConfig: default: false - description: for internal use only - not for production use. + description: For internal use only - not for production use. type: boolean loadExamples: default: false @@ -7102,6 +7419,64 @@ spec: Whether to load example DAGs or not; defaults to false. The examples are used in the [getting started guide](https://docs.stackable.tech/home/nightly/airflow/getting_started/). type: boolean + metadataDatabase: + description: Configure the database where Airflow stores all it's internal metadata + oneOf: + - required: + - postgresql + - required: + - generic + properties: + generic: + description: |- + A generic SQLAlchemy database connection for database types not covered by a dedicated variant. + + Use this when you need to connect to a SQLAlchemy-compatible database that does not have a + first-class connection type. The complete connection URI is read from a Secret, giving the user + full control over the connection string including any driver-specific options. + properties: + uriSecret: + description: The name of the Secret that contains an `uri` key with the complete SQLAlchemy URI. + type: string + required: + - uriSecret + type: object + postgresql: + description: Connection settings for a [PostgreSQL](https://www.postgresql.org/) database. + properties: + credentialsSecret: + description: |- + Name of a Secret containing the `username` and `password` keys used to authenticate + against the PostgreSQL server. + type: string + database: + description: Name of the database (schema) to connect to. + type: string + host: + description: Hostname or IP address of the PostgreSQL server. + type: string + parameters: + additionalProperties: + type: string + default: {} + description: |- + Additional map of JDBC connection parameters to append to the connection URL. The given + `HashMap` will be converted to query parameters in the form of + `?param1=value1¶m2=value2`. + type: object + port: + default: 5432 + description: Port the PostgreSQL server is listening on. Defaults to `5432`. + format: uint16 + maximum: 65535.0 + minimum: 0.0 + type: integer + required: + - credentialsSecret + - database + - host + type: object + type: object vectorAggregatorConfigMapName: description: |- Name of the Vector aggregator [discovery ConfigMap](https://docs.stackable.tech/home/nightly/concepts/service_discovery). @@ -7126,6 +7501,7 @@ spec: type: array required: - credentialsSecret + - metadataDatabase type: object clusterOperation: default: @@ -7534,7 +7910,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -8046,7 +8422,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -8209,7 +8585,7 @@ spec: type: string type: object kubernetesExecutors: - description: With the Kuberentes executor, executor Pods are created on demand. + description: With the Kubernetes executor, executor Pods are created on demand. properties: cliOverrides: additionalProperties: @@ -8586,7 +8962,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -9077,7 +9453,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -9589,7 +9965,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -10074,7 +10450,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -10586,7 +10962,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -11071,7 +11447,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object @@ -11588,7 +11964,7 @@ spec: type: object type: object enableVectorAgent: - description: Wether or not to deploy a container with the Vector log agent. + description: Whether or not to deploy a container with the Vector log agent. nullable: true type: boolean type: object diff --git a/rust/operator-binary/src/airflow_controller.rs b/rust/operator-binary/src/airflow_controller.rs index 4930c575..7ce13fa7 100644 --- a/rust/operator-binary/src/airflow_controller.rs +++ b/rust/operator-binary/src/airflow_controller.rs @@ -38,6 +38,13 @@ use stackable_operator::{ authentication::{core as auth_core, ldap}, git_sync, listener, }, + database_connections::{ + TemplatingMechanism, + drivers::{ + celery::CeleryDatabaseConnectionDetails, + sqlalchemy::SqlAlchemyDatabaseConnectionDetails, + }, + }, k8s_openapi::{ self, DeepMerge, api::{ @@ -400,6 +407,31 @@ pub async fn reconcile_airflow( ) .await .context(InvalidAuthorizationConfigSnafu)?; + // We don't have a config file, but do everything via env substitution + + let templating_mechanism = TemplatingMechanism::BashEnvSubstitution; + let metadata_database_connection_details = airflow + .spec + .cluster_config + .metadata_database + .sqlalchemy_connection_details_with_templating("METADATA", &templating_mechanism); + let celery_database_connection_details = match &airflow.spec.executor { + AirflowExecutor::CeleryExecutors { + celery_result_backend, + celery_broker, + .. + } => { + let celery_result_backend = celery_result_backend + .celery_connection_details_with_templating( + "CELERY_RESULT_BACKEND", + &templating_mechanism, + ); + let celery_broker = celery_broker + .celery_connection_details_with_templating("CELERY_BROKER", &templating_mechanism); + Some((celery_result_backend, celery_broker)) + } + _ => None, + }; let mut roles = HashMap::new(); @@ -462,13 +494,14 @@ pub async fn reconcile_airflow( // if the kubernetes executor is specified, in place of a worker role that will be in the role // collection there will be a pod template created to be used for pod provisioning - if let AirflowExecutor::KubernetesExecutor { + if let AirflowExecutor::KubernetesExecutors { common_configuration, } = &airflow_executor { build_executor_template( airflow, common_configuration, + &metadata_database_connection_details, &resolved_product_image, &authentication_config, &authorization_config, @@ -645,6 +678,8 @@ pub async fn reconcile_airflow( rolegroup_config, &authentication_config, &authorization_config, + &metadata_database_connection_details, + &celery_database_connection_details, &rbac_sa, &merged_airflow_config, airflow_executor, @@ -686,6 +721,7 @@ pub async fn reconcile_airflow( async fn build_executor_template( airflow: &v1alpha2::AirflowCluster, common_config: &CommonConfiguration, + metadata_database_connection_details: &SqlAlchemyDatabaseConnectionDetails, resolved_product_image: &ResolvedProductImage, authentication_config: &AirflowClientAuthenticationDetailsResolved, authorization_config: &AirflowAuthorizationResolved, @@ -735,6 +771,7 @@ async fn build_executor_template( airflow, resolved_product_image, authentication_config, + metadata_database_connection_details, &rbac_sa.name_unchecked(), &merged_executor_config, &common_config.env_overrides, @@ -933,6 +970,11 @@ fn build_server_rolegroup_statefulset( rolegroup_config: &HashMap>, authentication_config: &AirflowClientAuthenticationDetailsResolved, authorization_config: &AirflowAuthorizationResolved, + metadata_database_connection_details: &SqlAlchemyDatabaseConnectionDetails, + celery_database_connection_details: &Option<( + CeleryDatabaseConnectionDetails, + CeleryDatabaseConnectionDetails, + )>, service_account: &ServiceAccount, merged_airflow_config: &AirflowConfig, executor: &AirflowExecutor, @@ -1019,6 +1061,8 @@ fn build_server_rolegroup_statefulset( executor, authentication_config, authorization_config, + metadata_database_connection_details, + celery_database_connection_details, git_sync_resources, resolved_product_image, ) @@ -1039,7 +1083,7 @@ fn build_server_rolegroup_statefulset( .add_volume_mount(LOG_VOLUME_NAME, STACKABLE_LOG_DIR) .context(AddVolumeMountSnafu)?; - if let AirflowExecutor::KubernetesExecutor { .. } = executor { + if let AirflowExecutor::KubernetesExecutors { .. } = executor { airflow_container .add_volume_mount(TEMPLATE_VOLUME_NAME, TEMPLATE_LOCATION) .context(AddVolumeMountSnafu)?; @@ -1087,7 +1131,7 @@ fn build_server_rolegroup_statefulset( // and registered. This will result in ModuleNotFoundError errors. This can be avoided // by running a one-off git-sync process in an init-container so that all DAG // dependencies are fully loaded. The sidecar git-sync is then used for regular updates. - let use_git_sync_init_containers = matches!(executor, AirflowExecutor::CeleryExecutor { .. }); + let use_git_sync_init_containers = matches!(executor, AirflowExecutor::CeleryExecutors { .. }); add_git_sync_resources( &mut pb, &mut airflow_container, @@ -1096,6 +1140,12 @@ fn build_server_rolegroup_statefulset( use_git_sync_init_containers, )?; + metadata_database_connection_details.add_to_container(&mut airflow_container); + if let Some((celery_result_backend, celery_broker)) = celery_database_connection_details { + celery_result_backend.add_to_container(&mut airflow_container); + celery_broker.add_to_container(&mut airflow_container); + } + pb.add_container(airflow_container.build()); let metrics_container = ContainerBuilder::new("metrics") @@ -1140,7 +1190,7 @@ fn build_server_rolegroup_statefulset( )) .context(AddVolumeSnafu)?; - if let AirflowExecutor::KubernetesExecutor { .. } = executor { + if let AirflowExecutor::KubernetesExecutors { .. } = executor { pb.add_volume( VolumeBuilder::new(TEMPLATE_VOLUME_NAME) .with_config_map(airflow.executor_template_configmap_name()) @@ -1252,6 +1302,7 @@ fn build_executor_template_config_map( airflow: &v1alpha2::AirflowCluster, resolved_product_image: &ResolvedProductImage, authentication_config: &AirflowClientAuthenticationDetailsResolved, + metadata_database_connection_details: &SqlAlchemyDatabaseConnectionDetails, sa_name: &str, merged_executor_config: &ExecutorConfig, env_overrides: &HashMap, @@ -1299,6 +1350,7 @@ fn build_executor_template_config_map( airflow, env_overrides, merged_executor_config, + metadata_database_connection_details, git_sync_resources, resolved_product_image, )) @@ -1319,6 +1371,8 @@ fn build_executor_template_config_map( true, )?; + metadata_database_connection_details.add_to_container(&mut airflow_container); + pb.add_container(airflow_container.build()); pb.add_volumes(airflow.volumes().clone()) .context(AddVolumeSnafu)?; diff --git a/rust/operator-binary/src/config.rs b/rust/operator-binary/src/config.rs index 7d5382e3..5c517ccd 100644 --- a/rust/operator-binary/src/config.rs +++ b/rust/operator-binary/src/config.rs @@ -461,6 +461,7 @@ mod tests { client_credentials_secret_ref: "test-client-secret1".to_string(), extra_scopes: vec!["roles".to_string()], product_specific_fields: (), + client_authentication_method: todo!("Will be added in another PR"), }, }, AirflowAuthenticationClassResolved::Oidc { @@ -469,6 +470,7 @@ mod tests { client_credentials_secret_ref: "test-client-secret2".to_string(), extra_scopes: vec![], product_specific_fields: (), + client_authentication_method: todo!("Will be added in another PR"), }, }, ], diff --git a/rust/operator-binary/src/crd/affinity.rs b/rust/operator-binary/src/crd/affinity.rs index 3fe53e1d..e6b0b333 100644 --- a/rust/operator-binary/src/crd/affinity.rs +++ b/rust/operator-binary/src/crd/affinity.rs @@ -71,12 +71,26 @@ mod tests { image: productVersion: 3.1.6 clusterConfig: - credentialsSecret: airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleGroups: default: replicas: 1 celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials roleGroups: default: replicas: 2 @@ -165,7 +179,12 @@ mod tests { image: productVersion: 3.1.6 clusterConfig: - credentialsSecret: airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleGroups: default: @@ -235,8 +254,8 @@ mod tests { }; let executor_config = match &airflow.spec.executor { - AirflowExecutor::CeleryExecutor { .. } => unreachable!(), - AirflowExecutor::KubernetesExecutor { + AirflowExecutor::CeleryExecutors { .. } => unreachable!(), + AirflowExecutor::KubernetesExecutors { common_configuration, } => &common_configuration.config, }; diff --git a/rust/operator-binary/src/crd/authentication.rs b/rust/operator-binary/src/crd/authentication.rs index 6f9a6d53..ff3c5ae1 100644 --- a/rust/operator-binary/src/crd/authentication.rs +++ b/rust/operator-binary/src/crd/authentication.rs @@ -472,7 +472,8 @@ mod tests { oidc: oidc::v1alpha1::ClientAuthenticationOptions { client_credentials_secret_ref: "airflow-oidc-client1".into(), extra_scopes: vec!["groups".into()], - product_specific_fields: () + product_specific_fields: (), + client_authentication_method: todo!("Will be added in another PR"), } }, AirflowAuthenticationClassResolved::Oidc { @@ -488,7 +489,8 @@ mod tests { oidc: oidc::v1alpha1::ClientAuthenticationOptions { client_credentials_secret_ref: "airflow-oidc-client2".into(), extra_scopes: Vec::new(), - product_specific_fields: () + product_specific_fields: (), + client_authentication_method: todo!("Will be added in another PR"), } } ], diff --git a/rust/operator-binary/src/crd/databases.rs b/rust/operator-binary/src/crd/databases.rs new file mode 100644 index 00000000..dee0785d --- /dev/null +++ b/rust/operator-binary/src/crd/databases.rs @@ -0,0 +1,76 @@ +use std::ops::Deref; + +use serde::{Deserialize, Serialize}; +use stackable_operator::{ + database_connections::{ + databases::{postgresql::PostgresqlConnection, redis::RedisConnection}, + drivers::{ + celery::{CeleryDatabaseConnection, GenericCeleryDatabaseConnection}, + sqlalchemy::{GenericSqlAlchemyDatabaseConnection, SqlAlchemyDatabaseConnection}, + }, + }, + schemars::{self, JsonSchema}, +}; + +#[derive(Clone, Debug, Deserialize, JsonSchema, PartialEq, Serialize)] +#[serde(rename_all = "camelCase")] +pub enum MetadataDatabaseConnection { + // Docs are on the struct + Postgresql(PostgresqlConnection), + + // Docs are on the struct + Generic(GenericSqlAlchemyDatabaseConnection), +} + +impl Deref for MetadataDatabaseConnection { + type Target = dyn SqlAlchemyDatabaseConnection; + + fn deref(&self) -> &Self::Target { + match self { + Self::Postgresql(p) => p, + Self::Generic(g) => g, + } + } +} + +#[derive(Clone, Debug, Deserialize, JsonSchema, PartialEq, Serialize)] +#[serde(rename_all = "camelCase")] +pub enum CeleryResultBackendConnection { + // Docs are on the struct + Postgresql(PostgresqlConnection), + + // Docs are on the struct + Generic(GenericCeleryDatabaseConnection), +} + +impl Deref for CeleryResultBackendConnection { + type Target = dyn CeleryDatabaseConnection; + + fn deref(&self) -> &Self::Target { + match self { + Self::Postgresql(p) => p, + Self::Generic(g) => g, + } + } +} + +#[derive(Clone, Debug, Deserialize, JsonSchema, PartialEq, Serialize)] +#[serde(rename_all = "camelCase")] +pub enum CeleryBrokerConnection { + // Docs are on the struct + Redis(RedisConnection), + + // Docs are on the struct + Generic(GenericCeleryDatabaseConnection), +} + +impl Deref for CeleryBrokerConnection { + type Target = dyn CeleryDatabaseConnection; + + fn deref(&self) -> &Self::Target { + match self { + Self::Redis(r) => r, + Self::Generic(g) => g, + } + } +} diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index 3f66663d..da2f46d9 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -53,6 +53,9 @@ use crate::{ AirflowAuthenticationClassResolved, AirflowClientAuthenticationDetails, AirflowClientAuthenticationDetailsResolved, }, + databases::{ + CeleryBrokerConnection, CeleryResultBackendConnection, MetadataDatabaseConnection, + }, v1alpha2::WebserverRoleConfig, }, util::role_service_name, @@ -61,6 +64,7 @@ use crate::{ pub mod affinity; pub mod authentication; pub mod authorization; +pub mod databases; pub mod internal_secret; pub const APP_NAME: &str = "airflow"; @@ -244,14 +248,15 @@ pub mod versioned { #[serde(skip_serializing_if = "Option::is_none")] pub authorization: Option, - /// The name of the Secret object containing the admin user credentials and database connection details. - /// Read the + /// Configure the database where Airflow stores all it's internal metadata + pub metadata_database: MetadataDatabaseConnection, + + /// The name of the Secret object containing the admin user credentials. Read the /// [getting started guide first steps](DOCS_BASE_URL_PLACEHOLDER/airflow/getting_started/first_steps) /// to find out more. pub credentials_secret: String, - /// The `gitSync` settings allow configuring DAGs to mount via `git-sync`. - /// Learn more in the + /// The `gitSync` settings allow configuring DAGs to mount via `git-sync`. Learn more in the /// [mounting DAGs documentation](DOCS_BASE_URL_PLACEHOLDER/airflow/usage-guide/mounting-dags#_via_git_sync). #[serde(default)] #[versioned( @@ -260,7 +265,7 @@ pub mod versioned { )] pub dags_git_sync: Vec, - /// for internal use only - not for production use. + /// For internal use only - not for production use. #[serde(default)] pub expose_config: bool, @@ -381,8 +386,8 @@ impl v1alpha2::AirflowCluster { AirflowRole::DagProcessor => self.spec.dag_processors.to_owned(), AirflowRole::Triggerer => self.spec.triggerers.to_owned(), AirflowRole::Worker => { - if let AirflowExecutor::CeleryExecutor { config } = &self.spec.executor { - Some(config.clone()) + if let AirflowExecutor::CeleryExecutors { config, .. } = &self.spec.executor { + Some(*config.clone()) } else { None } @@ -525,6 +530,7 @@ pub struct AirflowAuthorization { pub struct AirflowOpaConfig { #[serde(flatten)] pub opa: OpaConfig, + #[serde(default)] pub cache: UserInformationCache, } @@ -783,7 +789,7 @@ impl AirflowRole { .context(UnknownAirflowRoleSnafu { role, roles })?, ), AirflowRole::Worker => { - if let AirflowExecutor::CeleryExecutor { config } = &airflow.spec.executor { + if let AirflowExecutor::CeleryExecutors { config, .. } = &airflow.spec.executor { config } else { return Err(Error::NoRoleForExecutorFailure); @@ -813,25 +819,41 @@ fn container_debug_command() -> String { format!("containerdebug --output={STACKABLE_LOG_DIR}/containerdebug-state.json --loop &") } -#[derive(Clone, Debug, Deserialize, Display, JsonSchema, PartialEq, Serialize)] +#[derive(Clone, Debug, Deserialize, JsonSchema, PartialEq, Serialize)] +#[serde(rename_all = "camelCase")] pub enum AirflowExecutor { /// The celery executor. /// Deployed with an explicit number of replicas. - #[serde(rename = "celeryExecutors")] - CeleryExecutor { + #[serde(rename_all = "camelCase")] + CeleryExecutors { #[serde(flatten)] - config: Role, + config: Box>, + + /// Connection information for the celery backend database. + celery_result_backend: CeleryResultBackendConnection, + + /// Connection information for the celery broker queue. + celery_broker: CeleryBrokerConnection, }, - /// With the Kuberentes executor, executor Pods are created on demand. - #[serde(rename = "kubernetesExecutors")] - KubernetesExecutor { + /// With the Kubernetes executor, executor Pods are created on demand. + KubernetesExecutors { #[serde(flatten)] common_configuration: - CommonConfiguration, + Box>, }, } +impl AirflowExecutor { + /// Name of the executor as expected to be passed via `AIRFLOW__CORE__EXECUTOR` + pub fn as_airflow_core_executor(&self) -> &'static str { + match self { + AirflowExecutor::CeleryExecutors { .. } => "CeleryExecutor", + AirflowExecutor::KubernetesExecutors { .. } => "KubernetesExecutor", + } + } +} + #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Debug, Default, JsonSchema, PartialEq, Fragment)] #[fragment_attrs( @@ -1077,7 +1099,12 @@ mod tests { clusterConfig: loadExamples: true exposeConfig: true - credentialsSecret: simple-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleGroups: default: @@ -1102,7 +1129,10 @@ mod tests { assert_eq!("3.1.6", &resolved_airflow_image.product_version); - assert_eq!("KubernetesExecutor", cluster.spec.executor.to_string()); + assert_eq!( + "KubernetesExecutor", + cluster.spec.executor.as_airflow_core_executor() + ); assert!(cluster.spec.cluster_config.load_examples); assert!(cluster.spec.cluster_config.expose_config); // defaults to true diff --git a/rust/operator-binary/src/env_vars.rs b/rust/operator-binary/src/env_vars.rs index d67c1c33..d7ae9917 100644 --- a/rust/operator-binary/src/env_vars.rs +++ b/rust/operator-binary/src/env_vars.rs @@ -8,6 +8,9 @@ use snafu::Snafu; use stackable_operator::{ commons::product_image_selection::ResolvedProductImage, crd::{authentication::oidc, git_sync}, + database_connections::drivers::{ + celery::CeleryDatabaseConnectionDetails, sqlalchemy::SqlAlchemyDatabaseConnectionDetails, + }, k8s_openapi::api::core::v1::EnvVar, kube::ResourceExt, product_logging::framework::create_vector_shutdown_file_command, @@ -80,11 +83,15 @@ pub fn build_airflow_statefulset_envs( executor: &AirflowExecutor, auth_config: &AirflowClientAuthenticationDetailsResolved, authorization_config: &AirflowAuthorizationResolved, + metadata_database_connection_details: &SqlAlchemyDatabaseConnectionDetails, + celery_database_connection_details: &Option<( + CeleryDatabaseConnectionDetails, + CeleryDatabaseConnectionDetails, + )>, git_sync_resources: &git_sync::v1alpha2::GitSyncResources, resolved_product_image: &ResolvedProductImage, ) -> Result, Error> { let mut env: BTreeMap = BTreeMap::new(); - let secret = airflow.spec.cluster_config.credentials_secret.as_str(); let internal_secret_name = airflow.shared_internal_secret_secret_name(); env.extend(static_envs(git_sync_resources)); @@ -126,31 +133,29 @@ pub fn build_airflow_statefulset_envs( env.insert( AIRFLOW_DATABASE_SQL_ALCHEMY_CONN.into(), - env_var_from_secret( - AIRFLOW_DATABASE_SQL_ALCHEMY_CONN, - secret, - "connections.sqlalchemyDatabaseUri", - ), + EnvVar { + name: AIRFLOW_DATABASE_SQL_ALCHEMY_CONN.into(), + value: Some(metadata_database_connection_details.uri_template.clone()), + ..Default::default() + }, ); - - // Redis is only needed when celery executors are used - // see https://github.com/stackabletech/airflow-operator/issues/424 for details - if matches!(executor, AirflowExecutor::CeleryExecutor { .. }) { + // Only needed when celery executors are used + if let Some((celery_result_backend, celery_broker)) = celery_database_connection_details { env.insert( AIRFLOW_CELERY_RESULT_BACKEND.into(), - env_var_from_secret( - AIRFLOW_CELERY_RESULT_BACKEND, - secret, - "connections.celeryResultBackend", - ), + EnvVar { + name: AIRFLOW_CELERY_RESULT_BACKEND.into(), + value: Some(celery_result_backend.uri_template.clone()), + ..Default::default() + }, ); env.insert( AIRFLOW_CELERY_BROKER_URL.into(), - env_var_from_secret( - AIRFLOW_CELERY_BROKER_URL, - secret, - "connections.celeryBrokerUrl", - ), + EnvVar { + name: AIRFLOW_CELERY_BROKER_URL.into(), + value: Some(celery_broker.uri_template.clone()), + ..Default::default() + }, ); } @@ -199,12 +204,12 @@ pub fn build_airflow_statefulset_envs( AIRFLOW_CORE_EXECUTOR.into(), EnvVar { name: AIRFLOW_CORE_EXECUTOR.into(), - value: Some(executor.to_string()), + value: Some(executor.as_airflow_core_executor().to_owned()), ..Default::default() }, ); - if let AirflowExecutor::KubernetesExecutor { .. } = executor { + if let AirflowExecutor::KubernetesExecutors { .. } = executor { env.insert( AIRFLOW_KUBERNETES_EXECUTOR_POD_TEMPLATE_FILE.into(), EnvVar { @@ -372,19 +377,19 @@ pub fn build_airflow_template_envs( airflow: &v1alpha2::AirflowCluster, env_overrides: &HashMap, config: &ExecutorConfig, + metadata_database_connection_details: &SqlAlchemyDatabaseConnectionDetails, git_sync_resources: &git_sync::v1alpha2::GitSyncResources, resolved_product_image: &ResolvedProductImage, ) -> Vec { let mut env: BTreeMap = BTreeMap::new(); - let secret = airflow.spec.cluster_config.credentials_secret.as_str(); env.insert( AIRFLOW_DATABASE_SQL_ALCHEMY_CONN.into(), - env_var_from_secret( - AIRFLOW_DATABASE_SQL_ALCHEMY_CONN, - secret, - "connections.sqlalchemyDatabaseUri", - ), + EnvVar { + name: AIRFLOW_DATABASE_SQL_ALCHEMY_CONN.into(), + value: Some(metadata_database_connection_details.uri_template.clone()), + ..Default::default() + }, ); env.insert( diff --git a/rust/operator-binary/src/operations/pdb.rs b/rust/operator-binary/src/operations/pdb.rs index 9f010800..b3261678 100644 --- a/rust/operator-binary/src/operations/pdb.rs +++ b/rust/operator-binary/src/operations/pdb.rs @@ -40,8 +40,8 @@ pub async fn add_pdbs( AirflowRole::DagProcessor => max_unavailable_dag_processors(), AirflowRole::Triggerer => max_unavailable_triggerers(), AirflowRole::Worker => match airflow.spec.executor { - AirflowExecutor::CeleryExecutor { .. } => max_unavailable_workers(), - AirflowExecutor::KubernetesExecutor { .. } => { + AirflowExecutor::CeleryExecutors { .. } => max_unavailable_workers(), + AirflowExecutor::KubernetesExecutors { .. } => { // In case Airflow creates the Pods, we don't want to influence that. return Ok(()); } diff --git a/tests/templates/kuttl/cluster-operation/08-install-airflow.yaml.j2 b/tests/templates/kuttl/cluster-operation/08-install-airflow.yaml.j2 index 3aa50e6e..727191ab 100644 --- a/tests/templates/kuttl/cluster-operation/08-install-airflow.yaml.j2 +++ b/tests/templates/kuttl/cluster-operation/08-install-airflow.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,9 +15,22 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis --- apiVersion: airflow.stackable.tech/v1alpha1 kind: AirflowCluster @@ -36,7 +49,12 @@ spec: {% if lookup('env', 'VECTOR_AGGREGATOR') %} vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable @@ -47,6 +65,15 @@ spec: default: replicas: 1 celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials config: logging: enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} diff --git a/tests/templates/kuttl/cluster-operation/10-pause-airflow.yaml.j2 b/tests/templates/kuttl/cluster-operation/10-pause-airflow.yaml.j2 index e84c9653..41157793 100644 --- a/tests/templates/kuttl/cluster-operation/10-pause-airflow.yaml.j2 +++ b/tests/templates/kuttl/cluster-operation/10-pause-airflow.yaml.j2 @@ -12,39 +12,3 @@ spec: clusterOperation: reconciliationPaused: true stopped: false - image: -{% if test_scenario['values']['airflow-latest'].find(",") > 0 %} - custom: "{{ test_scenario['values']['airflow-latest'].split(',')[1] }}" - productVersion: "{{ test_scenario['values']['airflow-latest'].split(',')[0] }}" -{% else %} - productVersion: "{{ test_scenario['values']['airflow-latest'] }}" -{% endif %} - pullPolicy: IfNotPresent - clusterConfig: -{% if lookup('env', 'VECTOR_AGGREGATOR') %} - vectorAggregatorConfigMapName: vector-aggregator-discovery -{% endif %} - credentialsSecret: test-airflow-credentials - webservers: - roleConfig: - listenerClass: external-unstable - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 1 - celeryExecutors: - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 3 # ignored because paused - schedulers: - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 1 diff --git a/tests/templates/kuttl/cluster-operation/20-stop-airflow.yaml.j2 b/tests/templates/kuttl/cluster-operation/20-stop-airflow.yaml.j2 index 470f8d7d..fea242b9 100644 --- a/tests/templates/kuttl/cluster-operation/20-stop-airflow.yaml.j2 +++ b/tests/templates/kuttl/cluster-operation/20-stop-airflow.yaml.j2 @@ -12,39 +12,3 @@ spec: clusterOperation: reconciliationPaused: false stopped: true - image: -{% if test_scenario['values']['airflow-latest'].find(",") > 0 %} - custom: "{{ test_scenario['values']['airflow-latest'].split(',')[1] }}" - productVersion: "{{ test_scenario['values']['airflow-latest'].split(',')[0] }}" -{% else %} - productVersion: "{{ test_scenario['values']['airflow-latest'] }}" -{% endif %} - pullPolicy: IfNotPresent - clusterConfig: -{% if lookup('env', 'VECTOR_AGGREGATOR') %} - vectorAggregatorConfigMapName: vector-aggregator-discovery -{% endif %} - credentialsSecret: test-airflow-credentials - webservers: - roleConfig: - listenerClass: external-unstable - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 1 - celeryExecutors: - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 3 # ignored because paused - schedulers: - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 1 diff --git a/tests/templates/kuttl/cluster-operation/30-restart-airflow.yaml.j2 b/tests/templates/kuttl/cluster-operation/30-restart-airflow.yaml.j2 index 7b90ad6b..27049b6f 100644 --- a/tests/templates/kuttl/cluster-operation/30-restart-airflow.yaml.j2 +++ b/tests/templates/kuttl/cluster-operation/30-restart-airflow.yaml.j2 @@ -12,41 +12,3 @@ spec: clusterOperation: reconciliationPaused: false stopped: false - image: -{% if test_scenario['values']['airflow-latest'].find(",") > 0 %} - custom: "{{ test_scenario['values']['airflow-latest'].split(',')[1] }}" - productVersion: "{{ test_scenario['values']['airflow-latest'].split(',')[0] }}" -{% else %} - productVersion: "{{ test_scenario['values']['airflow-latest'] }}" -{% endif %} - pullPolicy: IfNotPresent - clusterConfig: -{% if lookup('env', 'VECTOR_AGGREGATOR') %} - vectorAggregatorConfigMapName: vector-aggregator-discovery -{% endif %} - credentialsSecret: test-airflow-credentials - databaseInitialization: - enabled: false - webservers: - roleConfig: - listenerClass: external-unstable - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 1 - celeryExecutors: - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 3 - schedulers: - config: - logging: - enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} - roleGroups: - default: - replicas: 1 diff --git a/tests/templates/kuttl/external-access/install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/external-access/install-airflow-cluster.yaml.j2 index 84f6547a..974687d8 100644 --- a/tests/templates/kuttl/external-access/install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/external-access/install-airflow-cluster.yaml.j2 @@ -2,7 +2,7 @@ apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -10,9 +10,22 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis --- apiVersion: airflow.stackable.tech/v1alpha1 kind: AirflowCluster @@ -29,7 +42,12 @@ spec: pullPolicy: IfNotPresent clusterConfig: loadExamples: false - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: test-external-stable-$NAMESPACE @@ -45,6 +63,15 @@ spec: replicas: 1 {% if test_scenario['values']['executor'] == 'celery' %} celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials roleGroups: default: replicas: 1 diff --git a/tests/templates/kuttl/ldap/60-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/ldap/60-install-airflow-cluster.yaml.j2 index cbba7152..f1ee7200 100644 --- a/tests/templates/kuttl/ldap/60-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/ldap/60-install-airflow-cluster.yaml.j2 @@ -10,7 +10,7 @@ commands: apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -18,10 +18,23 @@ commands: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow + --- + apiVersion: v1 + kind: Secret + metadata: + name: airflow-postgresql-credentials + stringData: + username: airflow + password: airflow {% if test_scenario['values']['executor'] == 'celery' %} - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 + --- + apiVersion: v1 + kind: Secret + metadata: + name: airflow-redis-credentials + stringData: + username: "" + password: redis {% endif %} --- apiVersion: v1 @@ -52,7 +65,12 @@ commands: vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} loadExamples: true - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials authentication: - authenticationClass: {% if test_scenario['values']['ldap-authentication'] == 'no-tls' -%} no-tls-$NAMESPACE @@ -74,6 +92,15 @@ commands: replicas: 1 {% if test_scenario['values']['executor'] == 'celery' %} celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials config: logging: enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} diff --git a/tests/templates/kuttl/logging/41-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/logging/41-install-airflow-cluster.yaml.j2 index c60495da..e708fda8 100644 --- a/tests/templates/kuttl/logging/41-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/logging/41-install-airflow-cluster.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,10 +15,23 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow {% if test_scenario['values']['executor'] == 'celery' %} - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis {% endif %} --- apiVersion: v1 @@ -77,7 +90,12 @@ spec: clusterConfig: vectorAggregatorConfigMapName: airflow-vector-aggregator-discovery loadExamples: true - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials dagsGitSync: - repo: https://github.com/stackabletech/example-dags gitFolder: dags @@ -144,6 +162,15 @@ spec: configMap: airflow-log-config {% if test_scenario['values']['executor'] == 'celery' %} celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials config: resources: cpu: diff --git a/tests/templates/kuttl/mount-dags-configmap/30-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/mount-dags-configmap/30-install-airflow-cluster.yaml.j2 index b3bf36c8..c7e435c7 100644 --- a/tests/templates/kuttl/mount-dags-configmap/30-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/mount-dags-configmap/30-install-airflow-cluster.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,10 +15,23 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow {% if test_scenario['values']['executor'] == 'celery' %} - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis {% endif %} --- apiVersion: v1 @@ -74,7 +87,12 @@ spec: {% if lookup('env', 'VECTOR_AGGREGATOR') %} vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials volumes: - name: test-cm-dag configMap: @@ -96,6 +114,15 @@ spec: replicas: 1 {% if test_scenario['values']['executor'] == 'celery' %} celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials config: logging: enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} diff --git a/tests/templates/kuttl/mount-dags-gitsync/30-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/mount-dags-gitsync/30-install-airflow-cluster.yaml.j2 index 1e3620dd..d7a201df 100644 --- a/tests/templates/kuttl/mount-dags-gitsync/30-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/mount-dags-gitsync/30-install-airflow-cluster.yaml.j2 @@ -21,7 +21,7 @@ data: apiVersion: v1 kind: Secret metadata: - name: git-credentials + name: airflow-git-credentials type: Opaque data: # This is a fine-grained access token for the owner of the repo (stackable-airflow/dags) which has read only access @@ -34,7 +34,7 @@ data: apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -42,10 +42,23 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow {% if test_scenario['values']['executor'] == 'celery' %} - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis {% endif %} --- apiVersion: v1 @@ -73,7 +86,12 @@ spec: {% if lookup('env', 'VECTOR_AGGREGATOR') %} vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials dagsGitSync: {% if test_scenario['values']['access'] == 'ssh' %} - repo: ssh://git@github.com/stackable-airflow/dags.git @@ -83,7 +101,7 @@ spec: {% if test_scenario['values']['access'] == 'https' %} - repo: https://github.com/stackable-airflow/dags credentials: - basicAuthSecretName: git-credentials + basicAuthSecretName: airflow-git-credentials {% endif %} {% if test_scenario['values']['executor'] == 'celery' %} # Just setting some values to increase the test coverage (defaults should work just fine) @@ -116,6 +134,15 @@ spec: replicas: 1 {% if test_scenario['values']['executor'] == 'celery' %} celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials config: logging: enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} diff --git a/tests/templates/kuttl/oidc/install-airflow.yaml.j2 b/tests/templates/kuttl/oidc/install-airflow.yaml.j2 index 48826e4b..da0ad6f5 100644 --- a/tests/templates/kuttl/oidc/install-airflow.yaml.j2 +++ b/tests/templates/kuttl/oidc/install-airflow.yaml.j2 @@ -3,7 +3,7 @@ apiVersion: v1 kind: Secret metadata: - name: airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -11,7 +11,14 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow --- apiVersion: v1 kind: Secret @@ -52,7 +59,12 @@ spec: oidc: clientCredentialsSecret: airflow-keycloak2-client userRegistrationRole: Admin - credentialsSecret: airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials {% if lookup('env', 'VECTOR_AGGREGATOR') %} vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} diff --git a/tests/templates/kuttl/opa/30-install-airflow.yaml.j2 b/tests/templates/kuttl/opa/30-install-airflow.yaml.j2 index 9fe3daa0..ae10b967 100644 --- a/tests/templates/kuttl/opa/30-install-airflow.yaml.j2 +++ b/tests/templates/kuttl/opa/30-install-airflow.yaml.j2 @@ -7,7 +7,7 @@ metadata: apiVersion: v1 kind: Secret metadata: - name: airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,7 +15,22 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis --- apiVersion: airflow.stackable.tech/v1alpha1 kind: AirflowCluster @@ -38,7 +53,12 @@ spec: cache: entryTimeToLive: 5s maxEntries: 10 - credentialsSecret: airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials exposeConfig: true loadExamples: true {% if lookup('env', 'VECTOR_AGGREGATOR') %} diff --git a/tests/templates/kuttl/orphaned-resources/30-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/orphaned-resources/30-install-airflow-cluster.yaml.j2 index 3aa50e6e..727191ab 100644 --- a/tests/templates/kuttl/orphaned-resources/30-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/orphaned-resources/30-install-airflow-cluster.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,9 +15,22 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis --- apiVersion: airflow.stackable.tech/v1alpha1 kind: AirflowCluster @@ -36,7 +49,12 @@ spec: {% if lookup('env', 'VECTOR_AGGREGATOR') %} vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable @@ -47,6 +65,15 @@ spec: default: replicas: 1 celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials config: logging: enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} diff --git a/tests/templates/kuttl/overrides/10-install-airflow.yaml.j2 b/tests/templates/kuttl/overrides/10-install-airflow.yaml.j2 index 7ae53a0c..caf412f2 100644 --- a/tests/templates/kuttl/overrides/10-install-airflow.yaml.j2 +++ b/tests/templates/kuttl/overrides/10-install-airflow.yaml.j2 @@ -2,7 +2,7 @@ apiVersion: v1 kind: Secret metadata: - name: airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -10,9 +10,22 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis --- apiVersion: v1 kind: Secret @@ -25,9 +38,6 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 --- apiVersion: airflow.stackable.tech/v1alpha1 kind: AirflowCluster @@ -45,7 +55,12 @@ spec: clusterConfig: loadExamples: true exposeConfig: false - credentialsSecret: airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable @@ -60,6 +75,15 @@ spec: COMMON_VAR: group-value # overrides role value GROUP_VAR: group-value # only defined here at group level celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials envOverrides: COMMON_VAR: role-value # overridden by role group below ROLE_VAR: role-value # only defined here at role level diff --git a/tests/templates/kuttl/overrides/20-install-airflow2.yaml.j2 b/tests/templates/kuttl/overrides/20-install-airflow2.yaml.j2 index 96edce21..83808bfe 100644 --- a/tests/templates/kuttl/overrides/20-install-airflow2.yaml.j2 +++ b/tests/templates/kuttl/overrides/20-install-airflow2.yaml.j2 @@ -15,7 +15,12 @@ spec: clusterConfig: loadExamples: true exposeConfig: false - credentialsSecret: airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable diff --git a/tests/templates/kuttl/remote-logging/40-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/remote-logging/40-install-airflow-cluster.yaml.j2 index c0719d48..139af922 100644 --- a/tests/templates/kuttl/remote-logging/40-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/remote-logging/40-install-airflow-cluster.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,10 +15,23 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow {% if test_scenario['values']['executor'] == 'celery' %} - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis {% endif %} --- apiVersion: airflow.stackable.tech/v1alpha1 @@ -36,7 +49,12 @@ spec: pullPolicy: IfNotPresent clusterConfig: loadExamples: true - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable @@ -50,6 +68,15 @@ spec: AIRFLOW__LOGGING__REMOTE_LOG_CONN_ID: minio_conn {% if test_scenario['values']['executor'] == 'celery' %} celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials roleGroups: default: replicas: 2 diff --git a/tests/templates/kuttl/resources/30-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/resources/30-install-airflow-cluster.yaml.j2 index 9f7782ca..b3a1998b 100644 --- a/tests/templates/kuttl/resources/30-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/resources/30-install-airflow-cluster.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,9 +15,22 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis --- apiVersion: airflow.stackable.tech/v1alpha1 kind: AirflowCluster @@ -36,7 +49,12 @@ spec: {% if lookup('env', 'VECTOR_AGGREGATOR') %} vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable @@ -47,6 +65,15 @@ spec: default: replicas: 1 celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials config: logging: enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} diff --git a/tests/templates/kuttl/smoke/40-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/smoke/40-install-airflow-cluster.yaml.j2 index 5227979c..a6e14350 100644 --- a/tests/templates/kuttl/smoke/40-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/smoke/40-install-airflow-cluster.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,10 +15,23 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow {% if test_scenario['values']['executor'] == 'celery' %} - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis {% endif %} --- apiVersion: airflow.stackable.tech/v1alpha1 @@ -39,7 +52,12 @@ spec: vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} loadExamples: true - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials webservers: roleConfig: listenerClass: external-unstable @@ -62,6 +80,15 @@ spec: COMMON_HEADER_VAR = "group-value" {% if test_scenario['values']['executor'] == 'celery' %} celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials config: logging: enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }} diff --git a/tests/templates/kuttl/triggerer/30-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/triggerer/30-install-airflow-cluster.yaml.j2 index 2f728798..e16997e3 100644 --- a/tests/templates/kuttl/triggerer/30-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/triggerer/30-install-airflow-cluster.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -15,10 +15,23 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow {% if test_scenario['values']['executor'] == 'celery' %} - connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql/airflow - connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0 +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-redis-credentials +stringData: + username: "" + password: redis {% endif %} --- apiVersion: v1 @@ -96,7 +109,12 @@ spec: {% endif %} pullPolicy: IfNotPresent clusterConfig: - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials volumes: - name: triggerer-dag configMap: @@ -115,6 +133,15 @@ spec: replicas: 1 {% if test_scenario['values']['executor'] == 'celery' %} celeryExecutors: + celeryResultBackend: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials + celeryBroker: + redis: + host: airflow-redis-master + credentialsSecret: airflow-redis-credentials roleGroups: default: envOverrides: *envOverrides diff --git a/tests/templates/kuttl/versioning/30-install-airflow-cluster.yaml.j2 b/tests/templates/kuttl/versioning/30-install-airflow-cluster.yaml.j2 index 21c05198..0f228aa6 100644 --- a/tests/templates/kuttl/versioning/30-install-airflow-cluster.yaml.j2 +++ b/tests/templates/kuttl/versioning/30-install-airflow-cluster.yaml.j2 @@ -7,7 +7,7 @@ timeout: 480 apiVersion: v1 kind: Secret metadata: - name: git-credentials + name: airflow-git-credentials type: Opaque data: # This is a fine-grained access token for the owner of the repo (stackable-airflow/dags) which has read only access @@ -19,7 +19,7 @@ data: apiVersion: v1 kind: Secret metadata: - name: test-airflow-credentials + name: airflow-admin-credentials type: Opaque stringData: adminUser.username: airflow @@ -27,7 +27,14 @@ stringData: adminUser.lastname: Admin adminUser.email: airflow@airflow.com adminUser.password: airflow - connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql/airflow +--- +apiVersion: v1 +kind: Secret +metadata: + name: airflow-postgresql-credentials +stringData: + username: airflow + password: airflow --- apiVersion: airflow.stackable.tech/v1alpha1 kind: AirflowCluster @@ -46,12 +53,17 @@ spec: {% if lookup('env', 'VECTOR_AGGREGATOR') %} vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} - credentialsSecret: test-airflow-credentials + credentialsSecret: airflow-admin-credentials + metadataDatabase: + postgresql: + host: airflow-postgresql + database: airflow + credentialsSecret: airflow-postgresql-credentials dagsGitSync: - repo: https://github.com/stackable-airflow/dags # v1alpha1 field which should be converted to an enum # N.B. only works for the existing v1 field - credentialsSecret: git-credentials + credentialsSecret: airflow-git-credentials gitFolder: "mount-dags-gitsync/dags_airflow3" wait: 5s webservers: