kedge/Makefile
Tyler King 6058e62348 Initial commit: Kedge network automation platform
Go-based network automation with YANG models, gRPC, Ansible,
Terraform, and Kubernetes integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 12:09:30 -05:00

76 lines
1.6 KiB
Makefile

.PHONY: all build build-cni build-daemon test lint proto-gen yang-validate \
container-build dev dev-build dev-exec clean
CONTAINER_ENGINE ?= podman
COMPOSE ?= $(CONTAINER_ENGINE)-compose
DEV_CONTAINER := kedge-dev
CNI_BINARY := bin/kedge-cni
DAEMON_BINARY := bin/kedge-daemon
# ---------- Container-based builds (default) ----------
all: container-build
container-build:
$(CONTAINER_ENGINE) build --target cni -t kedge-cni -f Containerfile.build .
$(CONTAINER_ENGINE) build --target daemon -t kedge-daemon -f Containerfile.build .
# ---------- Dev environment (podman-compose) ----------
dev-build:
$(COMPOSE) build
dev:
$(COMPOSE) up -d dev
dev-exec:
$(COMPOSE) exec dev bash
dev-down:
$(COMPOSE) down
# ---------- In-container Go commands (via dev container) ----------
build: build-cni build-daemon
build-cni:
$(COMPOSE) exec dev go build -o $(CNI_BINARY) ./cmd/kedge-cni
build-daemon:
$(COMPOSE) exec dev go build -o $(DAEMON_BINARY) ./cmd/kedge-daemon
test:
$(COMPOSE) exec dev go test ./...
lint:
$(COMPOSE) exec dev golangci-lint run ./...
proto-gen:
$(COMPOSE) exec dev buf generate
mod-tidy:
$(COMPOSE) exec dev go mod tidy
# ---------- YANG / Python ----------
yang-validate:
$(COMPOSE) exec yang-compiler pyang --strict models/sovereign-sdwan.yang
python-test:
$(COMPOSE) exec yang-compiler python -m pytest tests/
# ---------- Local (if Go is installed) ----------
build-local:
go build -o $(CNI_BINARY) ./cmd/kedge-cni
go build -o $(DAEMON_BINARY) ./cmd/kedge-daemon
test-local:
go test ./...
# ---------- Clean ----------
clean:
rm -rf bin/
$(COMPOSE) down -v 2>/dev/null || true