Skip to content

Control plane

A control plane acts as an API for provisioning and managing infrastructure. Well-known examples include AWS itself and Kubernetes (K8s).

There is a blog article about this proof of concept.

ctlp (control plane) requires Clojure. It doesn’t work with Babashka. Direnv is not required but it is convinient.

Terminal window
brew install clojure/tools/clojure

The best way to learn how it works is to install the Clojure tool in development mode.

  1. Clone the repo
    Terminal window
    git clone -b control-plane https://github.com/amiorin/big-config.git big-config/control-plane && cd big-config/control-plane
  2. Add ctrlp as tool to Clojure
    Terminal window
    clojure -Ttools install big-config/control-plane '{:local/root "."}' :as ctlp
  3. Show help
    Terminal window
    alias p="clojure -Tctlp"
    p help
  • Directorydist/
    • main.tf.json The rendered Terraform code. This file is not committed.
  • Directorysrc/clj
    • control_plane.clj The CLI tool.
    • prevayler.clj The vendored library used for persistency.
  • .envrc Direnv file to load the AWS env vars.