[package] name = "kubert" version = "0.21.2" edition = "2021" license = "Apache-2.0" description = "Kubernetes runtime helpers. Based on kube-rs." readme = "../README.md" repository = "https://github.com/olix0r/kubert" rust-version = "1.74" keywords = ["kubernetes", "client", "runtime", "server"] [features] rustls-tls = [ "tokio-rustls", "rustls-pemfile", "kube-client?/rustls-tls", ] openssl-tls = [ "openssl", "hyper-openssl", "tokio-openssl", "once_cell", "kube-client?/openssl-tls", ] admin = [ "ahash", "futures-util", "hyper/http1", "hyper/runtime", "hyper/server", "tokio/sync", "tracing", ] client = [ "bytes", "kube-client", "thiserror", "tower", "tower/util", "tower-http", "hyper", ] errors = [ "futures-core", "futures-util", "pin-project-lite", "tokio/time", "tracing", ] gzip = ["tower-http?/decompression-gzip"] index = [ "ahash", "futures-core", "futures-util", "kube-core", "kube-runtime", "parking_lot", "tracing", ] initialized = ["futures-core", "futures-util", "pin-project-lite", "tokio/sync"] lease = [ "backoff", "chrono", "futures-util", "hyper", "k8s-openapi", "kube-client", "kube-core", "serde", "serde_json", "thiserror", "tokio/sync", "tracing", ] log = ["thiserror", "tracing", "tracing-subscriber"] prometheus-client = [ "dep:deflate", "dep:prometheus-client", "dep:kubert-prometheus-process", "dep:kubert-prometheus-tokio", ] requeue = [ "futures-core", "tokio/macros", "tokio/sync", "tokio-util/time", "tracing", ] runtime = [ "admin", "client", "errors", "initialized", "kube-core", "kube-runtime", "log", "serde", "shutdown", "thiserror", "tracing", ] server = [ "drain", "hyper/http1", "hyper/http2", "hyper/runtime", "hyper/server", "rustls-pemfile", "thiserror", "tokio/fs", "tokio/macros", "tokio/net", "tokio/rt", "tower", "tracing", ] shutdown = [ "drain", "futures-core", "tokio/macros", "tokio/signal", "thiserror", "tracing", ] [package.metadata.docs.rs] features = [ "rustls-tls", "openssl-tls", "admin", "client", "errors", "gzip", "index", "initialized", "lease", "log", "prometheus-client", "requeue", "runtime", "server", "shutdown", "k8s-openapi/latest", ] rustdoc-args = ["--cfg", "docsrs"] [dependencies] ahash = { version = "0.8", optional = true } backoff = { version = "0.4", features = ["tokio"], optional = true } bytes = { version = "1", optional = true } deflate = { version = "1", optional = true, default-features = false, features = [ "gzip", ] } drain = { version = "0.1.1", optional = true, default-features = false } chrono = { version = "0.4", optional = true, default-features = false } futures-core = { version = "0.3", optional = true, default-features = false } futures-util = { version = "0.3", optional = true, default-features = false } hyper = { version = "0.14.17", optional = true, default-features = false } hyper-openssl = { version = "0.9.2", optional = true } kubert-prometheus-process = { version = "0.1.0", path = "../kubert-prometheus-process", optional = true } once_cell = { version = "1", optional = true } openssl = { version = "0.10.57", optional = true, default-features = false } parking_lot = { version = "0.12", optional = true } pin-project-lite = { version = "0.2", optional = true } prometheus-client = { version = "0.22.0", optional = true, default-features = false } rustls-pemfile = { version = "1", optional = true } thiserror = { version = "1.0.30", optional = true } serde = { version = "1", optional = true } serde_json = { version = "1", optional = true } tokio = { version = "1.17.0", optional = false, default-features = false } tokio-rustls = { version = "0.24.1", optional = true, default-features = false } tokio-openssl = { version = "0.6.3", optional = true } tokio-util = { version = "0.7", optional = true, default-features = false } tower-http = { version = "0.4.0", optional = true, default-features = false, features = [ "map-response-body", ] } tower = { version = "0.4", default-features = false, optional = true } tracing = { version = "0.1.31", optional = true } [dependencies.clap] version = "4" optional = true default-features = false features = ["derive", "std"] # Not used directly, but required to ensure that the k8s-openapi dependency is considered part of # the "deps" graph rather than just the "dev-deps" graph [dependencies.k8s-openapi] version = "0.20" optional = true default-features = false [dependencies.kube-client] version = "0.87.1" optional = true default-features = false features = ["client", "config"] [dependencies.kube-core] version = "0.87.1" optional = true default-features = false [dependencies.kube-runtime] version = "0.87.1" optional = true default-features = false [dependencies.tracing-subscriber] version = "0.3.9" optional = true default-features = false features = ["env-filter", "fmt", "json", "smallvec", "tracing-log"] [target.'cfg(tokio_unstable)'.dependencies.kubert-prometheus-tokio] version = "0.1.0" path = "../kubert-prometheus-tokio" optional = true features = ["rt"] # === Dev === [dev-dependencies] kube = { version = "0.87.1", default-features = false, features = ["runtime"] } tokio-stream = "0.1" tokio-test = "0.4" tracing-subscriber = { version = "0.3", features = ["ansi"] } # used for generating TLS certificates in the server tests. rcgen = { version = "0.12.0" } # used for creating temporary dirs for TLS certificates in the server tests. tempfile = "3.8" [dev-dependencies.k8s-openapi] version = "0.20" default-features = false features = ["latest"] [dev-dependencies.tokio] version = "1.18" default-features = false features = ["macros", "test-util"]