feat(go): advance validation sidecar toward production
This commit is contained in:
parent
6a06eba255
commit
f85c2e831a
92 changed files with 8881 additions and 91 deletions
52
Makefile
52
Makefile
|
|
@ -6,8 +6,10 @@ CONFDIR := /etc
|
|||
LOGDIR := /var/log/enodia-sentinel
|
||||
DOCDIR := $(PREFIX)/share/doc/enodia-sentinel
|
||||
TMPFILESDIR := /etc/tmpfiles.d
|
||||
GO_AGENT_BIN := $(CURDIR)/build/enodia-sentinel-go
|
||||
GO_CACHE ?= /tmp/enodia-go-cache
|
||||
|
||||
.PHONY: install uninstall enable disable status logs check baseline drill test test-go parity-go release-artifacts clean
|
||||
.PHONY: install install-go uninstall uninstall-go enable enable-go disable disable-go status status-go logs logs-go check baseline drill test build-go generate-go test-go parity-go check-go-service release-artifacts clean
|
||||
|
||||
# Installs the stdlib-only Python package as a plain directory + launcher
|
||||
# wrapper (no pip, no virtualenv, no site-packages). Zero runtime deps.
|
||||
|
|
@ -43,6 +45,21 @@ install:
|
|||
install -dm750 $(DESTDIR)$(LOGDIR)
|
||||
@echo "Installed. Run 'sudo make enable' to start the service."
|
||||
|
||||
# Build and install the Go migration agent as an opt-in validation sidecar.
|
||||
# It deliberately has a distinct binary, unit, and state directory; this target
|
||||
# never replaces or enables the production Python service.
|
||||
install-go: build-go
|
||||
install -Dm755 $(GO_AGENT_BIN) $(DESTDIR)$(BINDIR)/enodia-sentinel-go
|
||||
install -Dm644 systemd/enodia-sentinel-go-sidecar.service $(DESTDIR)$(SYSTEMDDIR)/enodia-sentinel-go-sidecar.service
|
||||
@if [ ! -e "$(DESTDIR)$(CONFDIR)/enodia-sentinel.toml" ]; then \
|
||||
install -Dm644 config/enodia-sentinel.toml $(DESTDIR)$(CONFDIR)/enodia-sentinel.toml; \
|
||||
echo "Installed default config at $(DESTDIR)$(CONFDIR)/enodia-sentinel.toml"; \
|
||||
else \
|
||||
echo "Existing config preserved at $(DESTDIR)$(CONFDIR)/enodia-sentinel.toml"; \
|
||||
fi
|
||||
install -Dm644 go-agent/README.md $(DESTDIR)$(DOCDIR)/GO_AGENT.md
|
||||
@echo "Go sidecar installed but not enabled. Run 'sudo make enable-go' to start it."
|
||||
|
||||
uninstall:
|
||||
rm -rf $(DESTDIR)$(LIBDIR)
|
||||
rm -f $(DESTDIR)$(BINDIR)/enodia-sentinel
|
||||
|
|
@ -55,29 +72,59 @@ uninstall:
|
|||
rm -rf $(DESTDIR)$(DOCDIR)
|
||||
@echo "Uninstalled. Config and logs preserved."
|
||||
|
||||
uninstall-go:
|
||||
rm -f $(DESTDIR)$(BINDIR)/enodia-sentinel-go
|
||||
rm -f $(DESTDIR)$(SYSTEMDDIR)/enodia-sentinel-go-sidecar.service
|
||||
rm -f $(DESTDIR)$(DOCDIR)/GO_AGENT.md
|
||||
@echo "Go sidecar uninstalled. Shared config and sidecar state preserved."
|
||||
|
||||
enable:
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now enodia-sentinel.service
|
||||
|
||||
enable-go:
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now enodia-sentinel-go-sidecar.service
|
||||
|
||||
disable:
|
||||
systemctl disable --now enodia-sentinel.service
|
||||
|
||||
disable-go:
|
||||
systemctl disable --now enodia-sentinel-go-sidecar.service
|
||||
|
||||
status:
|
||||
systemctl status enodia-sentinel.service --no-pager
|
||||
|
||||
status-go:
|
||||
systemctl status enodia-sentinel-go-sidecar.service --no-pager
|
||||
|
||||
logs:
|
||||
journalctl -u enodia-sentinel.service -f
|
||||
|
||||
logs-go:
|
||||
journalctl -u enodia-sentinel-go-sidecar.service -f
|
||||
|
||||
# Dev targets — run from the repo without installing.
|
||||
test:
|
||||
python3 -m unittest discover -s tests -v
|
||||
|
||||
test-go:
|
||||
cd go-agent && GOCACHE=/tmp/enodia-go-cache go test ./...
|
||||
cd go-agent && GOCACHE=$(GO_CACHE) go test ./...
|
||||
|
||||
build-go:
|
||||
install -d $(dir $(GO_AGENT_BIN))
|
||||
cd go-agent && CGO_ENABLED=0 GOCACHE=$(GO_CACHE) go build -buildvcs=false -trimpath -ldflags='-s -w' -o $(GO_AGENT_BIN) ./cmd/enodia-sentinel-go
|
||||
|
||||
generate-go:
|
||||
cd go-agent && go generate ./internal/ebpfsource
|
||||
|
||||
parity-go:
|
||||
python3 scripts/check-go-parity.py
|
||||
|
||||
check-go-service:
|
||||
systemd-analyze verify systemd/enodia-sentinel-go-sidecar.service
|
||||
python3 -m unittest tests.test_go_sidecar_packaging -v
|
||||
|
||||
check:
|
||||
python3 -m enodia_sentinel.cli check
|
||||
|
||||
|
|
@ -95,3 +142,4 @@ release-artifacts:
|
|||
|
||||
clean:
|
||||
find . -type d -name __pycache__ -prune -exec rm -rf {} +
|
||||
rm -f $(GO_AGENT_BIN)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue