Skip to content

Get started with podule

This guide renders a Kubernetes manifest for a small cluster from one Nix file. You finish with the manifest on disk, ready to apply.

You need Nix with flakes on x86_64-linux.

The example runs Metabase against a self-managed Postgres and publishes it with Traefik, cert-manager, and ExternalDNS.

Run:

Terminal window
git clone https://gitlab.techtailors.net/podule/demo-cluster
cd demo-cluster

Run:

Terminal window
nix build .#manifest

Nix evaluates the cluster and writes the rendered objects to result/. The first build compiles easykubenix; later builds reuse it.

Terminal window
$ ls result
external-dns manifest.yaml postgresql

result/manifest.yaml holds every Kubernetes object. Each namespace that declares secrets also has a secretspec.toml.

cluster.nix sets the domain, providers, and instances. Edit it for your cluster, then open the reference in the sidebar for every contract and module. The demo-cluster README covers applying the manifest.