[package]
name = "cdl-k8s-core"
authors = { workspace = true }
description = { workspace = true }
documentation = "https://docs.rs/cdl-k8s-core"
edition = { workspace = true }
include = { workspace = true }
keywords = { workspace = true }
license = { workspace = true }
readme = { workspace = true }
rust-version = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
version = { workspace = true }
[lints]
workspace = true
[features]
default = []
env = ["dep:anyhow", "dep:async-trait", "dep:tracing"]
k8s-cluster-domain = [
"dep:anyhow",
"dep:resolv-conf",
"tokio/fs",
"dep:tracing",
]
k8s-cluster-name = [
"dep:anyhow",
"dep:k8s-openapi",
"dep:kube",
"dep:sha2",
"dep:tracing",
]
k8s-operator = [
"dep:anyhow",
"dep:async-trait",
"dep:futures",
"dep:k8s-openapi",
"dep:kube",
"opentelemetry",
"dep:schemars",
"dep:serde",
"dep:serde_json",
"dep:tokio",
"dep:tracing",
]
openapi = [
"dep:anyhow",
"dep:byte-unit",
"dep:email_address",
"dep:regex",
"dep:schemars",
"dep:serde",
"dep:url",
]
opentelemetry = ["dep:opentelemetry", "dep:tracing", "dep:tracing-subscriber"]
opentelemetry-all = [
"opentelemetry",
"opentelemetry-logs",
"opentelemetry-metrics",
"opentelemetry-trace",
]
opentelemetry-otlp = [
"opentelemetry",
"dep:opentelemetry-appender-tracing",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:tracing-opentelemetry",
]
opentelemetry-logs = [
"opentelemetry",
"opentelemetry/spec_unstable_logs_enabled",
"opentelemetry-appender-tracing?/spec_unstable_logs_enabled",
"opentelemetry-otlp?/logs",
"opentelemetry_sdk?/spec_unstable_logs_enabled",
]
opentelemetry-metrics = [
"opentelemetry",
"opentelemetry/metrics",
"opentelemetry-otlp?/metrics",
"opentelemetry_sdk?/metrics",
"tracing-opentelemetry?/metrics",
]
opentelemetry-trace = [
"opentelemetry",
"opentelemetry/trace",
"opentelemetry-otlp?/trace",
"opentelemetry_sdk?/trace",
"tracing-opentelemetry?/tracing-log",
]
default-tls = ["rustls-tls"]
openssl-tls = ["kube?/openssl-tls"]
rustls-tls = ["kube?/rustls-tls"]
[dependencies]
anyhow = { workspace = true, optional = true }
async-trait = { workspace = true, optional = true }
byte-unit = { workspace = true, optional = true, features = ["serde"] }
email_address = { workspace = true, optional = true, features = ["serde"] }
futures = { workspace = true, optional = true }
k8s-openapi = { workspace = true, optional = true }
kube = { workspace = true, optional = true, features = [
"client",
"runtime",
"ws",
] }
opentelemetry = { workspace = true, optional = true }
opentelemetry-appender-tracing = { workspace = true, optional = true }
opentelemetry-otlp = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }
regex = { workspace = true, optional = true }
resolv-conf = { workspace = true, optional = true }
schemars = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
tokio = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
tracing-opentelemetry = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, optional = true }
url = { workspace = true, optional = true, features = ["serde"] }