Kubectl and its cousins operate on your estate based on domain knowledge they carry.

chant puts a compiler under your estate, and that knowledge moves into TypeScript.

Rules that live in typed source move in two directions. They check what exists and predict what will happen when enforced.

The matrix

What the compiler enables

A chant lexicon is a round-trip spec compiler with semantic linting.

  • Types come from the provider’s own spec. Invalid shapes don’t get validated. They don’t exist.
  • Lint judgments run at build, audit, and carve. Written once.
  • Round-trip means the same judgments apply to existing resources as well.

A config store can import live state too. Import copies it into records. carve decompiles it into the language the lint runs in, and scores what the move will cost before you make it.

cdk8s and Pulumi compile source as well but they bundle execution. The program runs through an engine and the engine keeps state. chant stops at synthesis and the artifact is the spec.

What makes chant-k8s-client so different

chant’s k8s client is not a small kubectl. Every unique choice in it is downstream of the compiler.

The ownership machinery is Kubernetes’ own server-side apply field managers. Most tools ignore it but chant treats it as a primitive.

Reacting to estate events is a different job owned by chant ops and lifecycle.

Thin tools on top

When the compiler already did the work, everything above it gets to stay thin.

The real way out is back to platform native.

See intentius.io and the method behind it at accessibleops.net.

Read more