Files
unkinben 373d21a744 initial implementation: encapi ENC server + CLI
Postgres-backed External Node Classifier for Puppet, replacing Cobbler.
- encapi HTTP server (chi + pgx): read/write API + two ENC document shapes
  (reshaped for the exec terminus; cobbler-wire for enc_direct_facts.rb)
- encapi-cli: classify/node/role/status CRUD + import-cobbler seeder
- pkg/client Go SDK; unit tests across all packages (DB via testcontainers)
- Dockerfile (distroless), Makefile, nfpm RPM (encapi-cli + encapi-enc wrapper),
  Woodpecker CI, docs/cutover.md
2026-07-04 23:45:15 +10:00

53 lines
1.1 KiB
YAML

---
# nfpm config for the encapi-cli RPM.
# Rendered through envsubst (see scripts/build-rpm.sh) then fed to `nfpm pkg`.
name: ${PACKAGE_NAME}
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: ${PACKAGE_ARCH}
platform: ${PACKAGE_PLATFORM}
section: default
priority: extra
description: "${PACKAGE_DESCRIPTION}"
maintainer: ${PACKAGE_MAINTAINER}
homepage: ${PACKAGE_HOMEPAGE}
license: ${PACKAGE_LICENSE}
disable_globbing: false
replaces:
- encapi-cli
provides:
- encapi-cli
contents:
# The CLI itself.
- src: dist/encapi-cli
dst: /usr/local/bin/encapi-cli
file_info:
mode: 0755
owner: root
group: root
# Puppet ENC entrypoint (external_nodes = /usr/local/bin/encapi-enc).
- src: packaging/encapi-enc
dst: /usr/local/bin/encapi-enc
file_info:
mode: 0755
owner: root
group: root
# Sample config; marked noreplace so local edits survive upgrades.
- src: packaging/enc.conf
dst: /etc/encapi/enc.conf
type: config|noreplace
file_info:
mode: 0644
owner: root
group: root
scripts:
preinstall: packaging/scripts/preinstall.sh