Add pdbmux: merging PuppetDB proxy daemon #1

Merged
benvin merged 1 commits from benvin/initial into main 2026-07-24 23:34:30 +10:00
Owner

Why

pdbmux is split out of node-lookup PR #17 into its own repository. It is a k8s-only service (deployed in-cluster via argocd-apps as a container image), so it warrants a standalone single-binary Go repo rather than living inside the node-lookup CLI/RPM module. This PR seeds the repo with the daemon, its tests, and the build/CI plumbing.

Changes

  • Add the pdbmux Go module (module root main package): main.go (cobra CLI: serve/config/version), config.go (PDBMUX_* env + config-file loading), server.go (fan-out HTTP proxy + /healthz), merge.go (/nodes and /facts merge), plus their _test.go files.
  • Add Makefile (build/test/lint/fmt + patch/minor/major tag-bump targets, version ldflags) and Dockerfile (distroless static build, pdbmux serve entrypoint).
  • Add .woodpecker/: build.yaml + test.yaml (build, golangci-lint, go test -race) and pre-commit.yaml on pull_request as the required status checks; docker.yaml on v* tags builds and pushes git.unkin.net/unkin/pdbmux:<tag> + :latest via the docker-buildx plugin (droneci / DRONECI_PASSWORD).
  • Add .pre-commit-config.yaml, .gitignore, and a pdbmux-focused README.md (purpose, endpoints, merge semantics, PDBMUX_* config, k8s deployment via argocd-apps).
## Why pdbmux is split out of node-lookup PR #17 into its own repository. It is a k8s-only service (deployed in-cluster via argocd-apps as a container image), so it warrants a standalone single-binary Go repo rather than living inside the node-lookup CLI/RPM module. This PR seeds the repo with the daemon, its tests, and the build/CI plumbing. ## Changes - Add the `pdbmux` Go module (module root `main` package): `main.go` (cobra CLI: serve/config/version), `config.go` (PDBMUX_* env + config-file loading), `server.go` (fan-out HTTP proxy + /healthz), `merge.go` (/nodes and /facts merge), plus their `_test.go` files. - Add `Makefile` (build/test/lint/fmt + patch/minor/major tag-bump targets, version ldflags) and `Dockerfile` (distroless static build, `pdbmux serve` entrypoint). - Add `.woodpecker/`: `build.yaml` + `test.yaml` (build, golangci-lint, `go test -race`) and `pre-commit.yaml` on pull_request as the required status checks; `docker.yaml` on `v*` tags builds and pushes `git.unkin.net/unkin/pdbmux:<tag>` + `:latest` via the docker-buildx plugin (droneci / DRONECI_PASSWORD). - Add `.pre-commit-config.yaml`, `.gitignore`, and a `pdbmux`-focused `README.md` (purpose, endpoints, merge semantics, PDBMUX_* config, k8s deployment via argocd-apps).
unkinben added 1 commit 2026-07-24 23:26:00 +10:00
Add pdbmux: merging PuppetDB proxy daemon
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
dda6b8c8c8
Split out from node-lookup PR #17 into its own repo. pdbmux presents a
single merged PuppetDB v4 query surface over the old (Consul) and new
(k8s) PuppetDBs during the VM to k8s migration, and is deployed in-cluster
via argocd-apps as a container image.
benvin merged commit 85c1506450 into main 2026-07-24 23:34:30 +10:00
benvin deleted branch benvin/initial 2026-07-24 23:34:30 +10:00
Sign in to join this conversation.