cdl-k8s-core 0.1.4

Connected Data Lake Framework
Documentation
[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

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[features]
default = []

# Environment variables
env = ["dep:anyhow", "dep:async-trait", "dep:tracing"]

# Kubernetes
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
openapi = [
    "dep:anyhow",
    "dep:byte-unit",
    "dep:email_address",
    "dep:regex",
    "dep:schemars",
    "dep:serde",
    "dep:url",
]

# OpenTelemetry
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 pillars and functions
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",
]

# TLS
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"] }