[package]
edition = "2024"
name = "lava-operator"
version = "0.5.12"
authors = ["pleme-io"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "lava-operator — typed Kubernetes controller for the LavaArchitecture CRD. Operators submit a LavaArchitecture manifest naming a .tlisp source + bindings + gate; the controller renders via magma-lava + applies via the embedded magma path (or shells out to tofu/terraform). Status conditions track Synthesized / Planned / Applied / Failed phases. Pangea-operator analog for the lava + tatara-lisp stack."
readme = "README.md"
license = "MIT"
repository = "https://github.com/pleme-io/lava-operator"
[features]
controller = [
"dep:kube",
"dep:k8s-openapi",
"dep:tokio",
"dep:futures",
"dep:schemars",
"dep:tracing",
"dep:tracing-subscriber",
"dep:anyhow",
]
default = [
"controller",
"magma-bridge",
]
magma-bridge = ["dep:magma-lava"]
[lib]
name = "lava_operator"
path = "src/lib.rs"
[[bin]]
name = "lava-operator"
path = "src/main.rs"
[dependencies.anyhow]
version = "1"
optional = true
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.indexmap]
version = "2"
features = ["serde"]
[dependencies.k8s-openapi]
version = "0.23"
features = ["latest"]
optional = true
[dependencies.kube]
version = "0.97"
features = [
"runtime",
"derive",
"client",
"rustls-tls",
"unstable-runtime",
]
optional = true
default-features = false
[dependencies.lava-anomaly]
version = "0.1.4"
[dependencies.lava-dependency]
version = "0.1.5"
[dependencies.lava-drift]
version = "0.1.3"
[dependencies.lava-outcome-chain]
version = "0.1.2"
[dependencies.lava-viggy]
version = "0.1.5"
[dependencies.magma-lava]
version = "0.2.7"
optional = true
[dependencies.schemars]
version = "0.8"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"signal",
]
optional = true
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[lints.clippy]
pedantic = "warn"