u/atkrad
Looking for feedback: CLI that turns a short app spec into a Helm release, no in-cluster install
I got tired of this tradeoff:
- hand-write Helm charts for every app
- or install a whole in-cluster platform just to get a nicer deploy UX
I wanted: short spec -> running release, using my existing kubeconfig, with nothing installed in the cluster.
So I built Deployah. Demo below is the nginx example on a local kind cluster.
What it actually does:
- reads a small
deployah.yaml(image, port, env, expose) - installs a normal Helm release under the hood
- embeds helm / kubectl / kind, so those CLIs don't need to be installed
deployah cluster upcan create a local kind cluster if you don't have one
Example spec:
apiVersion: v1-alpha.2
project: my-first-app
components:
web:
image: nginx:latest
port: 80
environments: [local]
expose: true
Try path:
brew install deployah-dev/tap/deployah
# or: go install deployah.dev/deployah@latest
deployah cluster up
deployah deploy local
deployah cluster status
Spec-to-Release for Kubernetes: turn a short app spec into a real Helm release. Zero Helm knowledge, zero cluster-side setup, one binary.
github.comNabat - Adaptive CLI framework for Go
I have been building CLI tools in Go for a while, and I always felt that Cobra is great for routing and flags, but there is a lot of boilerplate whenever you want something a bit more polished. Things like prompting the user when an argument is missing, or showing a nice table instead of raw text.
So I built Nabat. It wraps Cobra and adds the things I kept writing by hand: typed positional args that fall back from CLI to env var to an interactive prompt automatically (powered by Huh), structured output (tables, trees, JSON, YAML), and twelve built-in themes.
The idea is simple: start with a strong core and add layers on top. That is actually where the name comes from. Nabat is Persian for rock candy, which grows the same way, layer by layer.
It does not try to replace Cobra. The full Cobra API is still there when you need it.
If you are building Go CLIs and want less boilerplate without leaving Cobra behind, take a look.
Nabat - Adaptive CLI framework for Go
I have been working on CLI tools in Go for a while, and I always felt that Cobra is great for routing and flags, but there is a lot of boilerplate every time you want to do something a bit more polished; like prompting the user when an argument is missing, or showing a nice table instead of raw text.
So I built Nabat. It wraps Cobra and adds the things I kept writing by hand: typed positional args that fall back from CLI to env var to an interactive prompt automatically, structured output (tables, trees, JSON, YAML), and twelve built-in themes.
The idea is simple. You start with a strong core and add layers one by one, like how rock candy grows; which is actually where the name comes from (Nabat is Persian for rock candy).
It is not trying to replace Cobra. The full Cobra API is still there when you need it.
If you are building Go CLIs and want less boilerplate without leaving Cobra behind, give it a look.
Nabat - A Go CLI framework with adaptive args, structured output, and built-in themes
I have been working on CLI tools in Go for a while, and I always felt that Cobra is great for routing and flags, but there is a lot of boilerplate every time you want to do something a bit more polished; like prompting the user when an argument is missing, or showing a nice table instead of raw text.
So I built Nabat. It wraps Cobra and adds the things I kept writing by hand: typed positional args that fall back from CLI to env var to an interactive prompt automatically, structured output (tables, trees, JSON, YAML), and twelve built-in themes.
The idea is simple. You start with a strong core and add layers one by one, like how rock candy grows; which is actually where the name comes from (Nabat is Persian for rock candy).
It is not trying to replace Cobra. The full Cobra API is still there when you need it.
If you are building Go CLIs and want less boilerplate without leaving Cobra behind, give it a look.
I built a CLI framework for Go called Nabat
I have been working on CLI tools in Go for a while, and I always felt that Cobra is great for routing and flags, but there is a lot of boilerplate every time you want to do something a bit more polished; like prompting the user when an argument is missing, or showing a nice table instead of raw text.
So I built Nabat. It wraps Cobra and adds the things I kept writing by hand: typed positional args that fall back from CLI to env var to an interactive prompt automatically, structured output (tables, trees, JSON, YAML), and twelve built-in themes.
The idea is simple. You start with a strong core and add layers one by one, like how rock candy grows; which is actually where the name comes from (Nabat is Persian for rock candy).
It is not trying to replace Cobra. The full Cobra API is still there when you need it.
If you are building Go CLIs and want less boilerplate without leaving Cobra behind, give it a look.
GitHub: https://github.com/nabat-dev/nabat
Happy to answer any questions.