lava-architectures
Reusable infrastructure compositions for the lava suite.
Hand-authored typed architectures — AwsVpcNetwork, AkeylessAwsIntegration,
EksScaleTest, and others — built on the rest of the lava family.
The Pangea-architectures analog. The port produces byte-equivalent
terraform.json, so state files match between pangea + tofu and
lava + magma. That byte-equivalence
is the property that makes migrating an existing estate a non-event.
Install
[]
= "0.1"
Rendering a dashboard: lava-render
The dashboards/ catalogue holds (deflava-dashboard …) sources that render
to Grafana JSON. lava-render does that render with no pangea-operator in
the loop, so the shipped bundle is regenerable from a clean checkout rather
than only reproducible inside a cluster.
A bare name resolves against dashboards/; an argument containing a path
separator or ending in .tlisp is used as-is. Output is 2-space-indented with
a trailing newline, so a regenerated bundle diffs line-by-line.
It exits non-zero — writing nothing — on an unknown dashboard, an unreadable
file, an evaluation failure, a {placeholder} the source requires that no
--param supplied, a --param the source does not use, and an unbound
placeholder that survives into the rendered output. That last one is the point:
an unbound {service} renders perfectly and ships a literal brace into a live
dashboard title, which nothing downstream would have caught.
The suite
This crate sits at the top of the DAG and consumes nearly all of it:
lava-types ─► lava-schema ─┐
lava-core ─┬─► lava-arch ──┼─► lava-eval ─► lava-test ─┐
└─► lava-contracts ───────────────────────► lava-architectures
License
MIT