feat(home-manager): add dev/observability CLIs and group into modules

Merged
SH
5mo ago
+58-4

What

Adds a batch of developer and observability CLI tooling to the home-manager config, organized library-specifically (cohesive vendor/ecosystem toolchains as programs/ modules; unrelated single-vendor CLIs stay flat).

New programs/ modules

  • grafana - grafana-loki, grafana-alloy
  • vector - vector
  • protobuf - buf, ghz, grpcurl, protobuf
  • victoriametrics - victorialogs, victoriametrics, victoriatraces (moved from the flat list)

Extended existing modules

  • k8s - +stern
  • terraform - +opentofu

Flat additions to packages/default.nix (unrelated-vendor CLIs)

_1password-cli, angle-grinder, bandwhich, choose, croc, fx, gh-dash, git-absorb, gron, hexyl, iperf3, jnv, lnav, mtr, nmap, oha, opentelemetry-collector-contrib, process-compose, rclone, restic, sops, termshark, tig, trippy, websocat

Why

The original ask was to install a set of CLIs (Loki / observability led). Organized per the repo convention: cohesive vendor or single-technology toolchains become programs/<name> modules (like the existing k8s / prometheus / terraform); unrelated single-vendor CLIs stay flat in packages/default.nix.

Notes / decisions

  • Databases dropped - duckdb, usql, pgcli, harlequin, pgweb, atlas, dbmate, goose, sqlc were considered but excluded (not in use).
  • vmctl not added - nixpkgs vmctl is an NVMe/QEMU testing tool, not the VictoriaMetrics migration tool; the real vmctl already ships in the victoriametrics package.
  • Heavy daemons skipped - tempo, mimir, pyroscope, consul, nomad, vault.

Verification

  • nix fmt - clean (0 changed)
  • nix-instantiate --parse - all changed files OK
  • nix eval .#darwinConfigurations.aarch64-darwin.system.drvPath - evaluates to a valid derivation (config builds)

Summary by cubic

Adds developer and observability CLIs to Home Manager and groups ecosystem tools into vendor modules. Extends k8s and terraform, and keeps vector flat in packages.

  • New Features
    • New modules: grafana (grafana-loki, grafana-alloy), protobuf (buf, ghz, grpcurl, protobuf), victoriametrics (victorialogs, victoriametrics, victoriatraces).
    • Extended modules: k8s adds stern; terraform adds opentofu.
    • Standalone CLIs in packages/default.nix: _1password-cli, angle-grinder, bandwhich, choose, croc, fx, gh-dash, git-absorb, gron, hexyl, iperf3, jnv, lnav, mtr, nmap, oha, opentelemetry-collector-contrib, process-compose, rclone, restic, sops, termshark, tig, trippy, vector, websocat.