Nyl is a versatile tool for generating Kubernetes manifests from a simple YAML configuration, encouraging consistent and reusable deployment configurations, project layouts and operational workflows.
Requires Python 3.11 or newer.
$ uvx nyl
For some features, additional programs must be available:
- kubectl for applying
- helm for rendering Helm charts
- kyverno ^1.13.x when using the Nyl
PostProcessor
resource - sops when using the SOPS secrets provider
You can install the tools you need with Mise.
$ mise install
$ eval "$(mise activate)"
Install the project with Uv.
$ uv sync
Use Tire tire for formatting, linting, type checking and unit tests.
$ tire fmt [--check]
$ tire lint
$ tire check
$ tire test
To live-preview the documentation, use
$ mise run serve-docs
- Discussion around ArgoCD supporting Helm lookups (maybe with Project-level service account?), see argoproj/argo-cd#5202 (comment)