Go-based network automation with YANG models, gRPC, Ansible, Terraform, and Kubernetes integration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
76 lines
1.6 KiB
Makefile
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
|