▲ 1 r/coolgithubprojects+1 crossposts

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 up can 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

Repo: https://github.com/deployah-dev/deployah

u/atkrad — 16 days ago
▲ 0 r/platform_engineering+1 crossposts

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.com
u/atkrad — 23 days ago

Nabat - 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.

GitHub: https://github.com/nabat-dev/nabat

u/atkrad — 3 months ago

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.

GitHub: https://github.com/nabat-dev/nabat

u/atkrad — 3 months ago
▲ 2 r/golang

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.

GitHub: https://github.com/nabat-dev/nabat

reddit.com
u/atkrad — 4 months ago
▲ 34 r/commandline+4 crossposts

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.

u/atkrad — 3 months ago