Newer
Older
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
MAKEFILE_DIR := $(dir $(MAKEFILE_PATH))
GOSDN_TMP_DIR := /tmp/gosdn
CLAB_DIR := $(GOSDN_TMP_DIR)/clab
Fabian Seidl
committed
MAKEFILE_SUBDIR := ./makefiles
GOCLEAN=$(GOCMD) clean -cache -fuzzcache -testcache -modcache
BUILD_ARTIFACTS_PATH=artifacts
PLUGIN_NAME= bundled_plugin.zip
# Tool Versions
GOTESTSUM_VERSION=v1.8.1
GOLANGCI_LINT_VERSION=v1.59.1
MOCKERY_VERSION=v2.20.0
YGOT_GENERATOR_VERSION=v0.27.0
YGOT_GENERATOR_GENERATOR_VERSION=v0.0.4
Fabian Seidl
committed
include $(MAKEFILE_SUBDIR)/build/Makefile
include $(MAKEFILE_SUBDIR)/ci/Makefile
include $(MAKEFILE_SUBDIR)/clab/Makefile
include $(MAKEFILE_SUBDIR)/container/Makefile
include $(MAKEFILE_SUBDIR)/generate/Makefile
.DEFAULT_GOAL := all
pre:
mkdir -p $(BUILD_ARTIFACTS_PATH)
create-gosdn-tmp-dir:
mkdir -p $(GOSDN_TMP_DIR)
create-clab-dir: create-gosdn-tmp-dir
mkdir -p $(CLAB_DIR)
install-tools:
@echo Install development tooling
mkdir -p $(GOSDN_PRG)
export GOBIN=$(GOSDN_PRG) && go install gotest.tools/gotestsum@$(GOTESTSUM_VERSION) &&\
go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION) &&\
go install github.com/vektra/mockery/v2@$(MOCKERY_VERSION) &&\
go install github.com/openconfig/ygot/generator@$(YGOT_GENERATOR_VERSION) &&\
go install github.com/andresterba/go-ygot-generator-generator@$(YGOT_GENERATOR_GENERATOR_VERSION)
./$(TOOLS_DIR)/golangci-lint run --config .golangci.yml
./$(TOOLS_DIR)/golangci-lint run --config .golangci.yml --fix
build: pre build-gosdn build-gosdnc build-plugin-registry build-venv-manager build-arista-routing-engine-app build-hostname-checker-app build-basic-interface-monitoring-app
containerize-all: containerize-gosdn containerize-gosdnc containerize-plugin-registry

Katharina Renk
committed
generate-all-certs: pre generate-root-ca generate-gosdn-certs generate-gnmi-target-certs
shell-gosdn:
docker exec -it clab-gosdn_csbi_arista_base-gosdn bash
Malte Bauch
committed
shell-orchestrator:
docker exec -it clab-gosdn_csbi_arista_base-orchestrator bash
Malte Bauch
committed
start: build-gosdn
./$(BUILD_ARTIFACTS_PATH)/gosdn -l debug --config ./controller/configs/gosdn.toml
virt-manager-example-start: build containerize-plugin-registry
./scripts/manage_virt_env.sh --mode start --topology dev_env_data/clab/basic_two_aristas.yaml --sdnconfig dev_env_data/sdn/basic_two_aristas.json
./scripts/manage_virt_env.sh --mode stop --topology dev_env_data/clab/basic_two_aristas.yaml
dev-env-start: generate-gnmi-target-certs generate-gosdn-certs containerize-gosdn containerize-plugin-registry
./scripts/simple-dev-setup.sh --mode start --topology dev_env_data/clab/basic_two_gnmi_targets.yaml
dev-env-stop:
./scripts/simple-dev-setup.sh --mode stop --topology dev_env_data/clab/basic_two_gnmi_targets.yaml
basic-compose-up: generate-certs containerize-gosdn containerize-plugin-registry
docker-compose -f dev_env_data/docker-compose/basic_docker-compose.yml down
docker-compose -f dev_env_data/docker-compose/basic_docker-compose.yml up -d
basic-compose-down:
docker-compose -f dev_env_data/docker-compose/basic_docker-compose.yml down
generate-certs: generate-gnmi-target-certs generate-gosdn-certs
integration-tests: generate-certs containerize-gosdn containerize-plugin-registry
docker-compose -f dev_env_data/docker-compose/integration-test_docker-compose.yml down
docker-compose -f dev_env_data/docker-compose/integration-test_docker-compose.yml up -d
go test -p 1 ./integration-tests/*
docker-compose -f dev_env_data/docker-compose/integration-test_docker-compose.yml down
integration-tests-debug-up: generate-certs containerize-gosdn containerize-plugin-registry
docker-compose -f dev_env_data/docker-compose/integration-test_docker-compose.yml up -d
docker-compose -f dev_env_data/docker-compose/integration-test_docker-compose.yml down
# Warning: Depending on your go and development configuration might also clean caches, modules and docker containers from your other projects.