Skip to content
Snippets Groups Projects
Commit 508d5273 authored by Fabian Seidl's avatar Fabian Seidl
Browse files

Resolve "Controller/Makefile uses older versions than the one in the top level"

See merge request !513
parent a6101ef9
Branches
Tags
1 merge request!513Resolve "Controller/Makefile uses older versions than the one in the top level"
Pipeline #160116 failed
...@@ -7,6 +7,7 @@ GOSDN_PRG := $(MAKEFILE_DIR)$(TOOLS_DIR) ...@@ -7,6 +7,7 @@ GOSDN_PRG := $(MAKEFILE_DIR)$(TOOLS_DIR)
GOPATH := $(~/go) GOPATH := $(~/go)
GOBIN := $(GOSDN_PRG) GOBIN := $(GOSDN_PRG)
SCRIPTS_DIR := /scripts SCRIPTS_DIR := /scripts
MAKEFILE_SUBDIR := ./makefiles
GOCMD=go GOCMD=go
GOBUILD=$(GOCMD) build GOBUILD=$(GOCMD) build
...@@ -22,6 +23,14 @@ MOCKERY_VERSION=v2.20.0 ...@@ -22,6 +23,14 @@ MOCKERY_VERSION=v2.20.0
YGOT_GENERATOR_VERSION=v0.27.0 YGOT_GENERATOR_VERSION=v0.27.0
YGOT_GENERATOR_GENERATOR_VERSION=v0.0.4 YGOT_GENERATOR_GENERATOR_VERSION=v0.0.4
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
all: build all: build
pre: pre:
...@@ -43,162 +52,18 @@ install-tools: ...@@ -43,162 +52,18 @@ install-tools:
go install github.com/andresterba/go-ygot-generator-generator@$(YGOT_GENERATOR_GENERATOR_VERSION) go install github.com/andresterba/go-ygot-generator-generator@$(YGOT_GENERATOR_GENERATOR_VERSION)
@echo Finished installing development tooling @echo Finished installing development tooling
ci-install-tools:
go install gotest.tools/gotestsum@v1.7.0
ci-lint: ci-install-tools
golangci-lint run --config .golangci.yml --out-format code-climate
lint: install-tools lint: install-tools
./$(TOOLS_DIR)/golangci-lint run --config .golangci.yml | jq ./$(TOOLS_DIR)/golangci-lint run --config .golangci.yml | jq
lint-fix: install-tools lint-fix: install-tools
./$(TOOLS_DIR)/golangci-lint run --config .golangci.yml --fix | jq ./$(TOOLS_DIR)/golangci-lint run --config .golangci.yml --fix | jq
generate-controller-mocks: install-tools
./$(TOOLS_DIR)/mockery --all --output './controller/mocks' --dir './controller/interfaces/'
generate-yang-models: install-tools
cd models/generated/openconfig &&\
../../../$(TOOLS_DIR)/go-ygot-generator-generator config.yaml openconfig.go &&\
go generate &&\
cat additions.patch >> yang.go
cd models/generated/arista &&\
../../../$(TOOLS_DIR)/go-ygot-generator-generator config.yaml arista.go &&\
go generate &&\
cat additions.patch >> yang.go
generate-csbi-yang-models: install-tools
cd csbi/resources &&\
../../$(TOOLS_DIR)/go-ygot-generator-generator config.yaml gostructs.go &&\
go generate
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 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
build-plugins:
for d in ./plugins/examples/*/ ; do\
d="$${d%*/}";\
d="$${d##*/}";\
rm plugin-registry/plugins/$$d/$(PLUGIN_NAME);\
$(GOBUILD) -o plugin-registry/plugins/$$d/plugin ./plugins/examples/$$d/cmd;\
cp plugins/examples/$$d/plugin.yaml plugin-registry/plugins/$$d/;\
zip -r -j plugin-registry/plugins/$$d/$(PLUGIN_NAME) plugin-registry/plugins/$$d/;\
rm plugin-registry/plugins/$$d/plugin;\
done
build-gosdn: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/gosdn ./controller/cmd/gosdn
build-gosdnc: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/gosdnc ./cli/
build-orchestrator: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/orchestrator ./csbi/cmd/csbi/
build-plugin-registry: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/plugin-registry ./plugin-registry/
build-venv-manager: pre
$(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/venv-manager ./applications/venv-manager
build-arista-routing-engine-app: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/arista-routing-engine ./applications/arista-routing-engine
build-hostname-checker-app: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/hostname-checker ./applications/hostname-checker
build-basic-interface-monitoring-app: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/basic-interface-monitoring ./applications/basic-interface-monitoring
build-ws-events-app: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/ws-events ./applications/ws-events
containerize-all: containerize-gosdn containerize-gosdnc containerize-plugin-registry containerize-all: containerize-gosdn containerize-gosdnc containerize-plugin-registry
containerize-gosdn:
docker buildx build --rm -t gosdn --load -f controller/controller.Dockerfile .
containerize-gosdnc:
docker buildx build --rm -t gosdnc --load -f cli/cli.Dockerfile .
containerize-venv-manager:
docker buildx build --rm -t venv-manager --load -f applications/venv-manager/venv-manager.Dockerfile .
containerize-orchestrator:
docker buildx build --rm -t orchestrator --load -f csbi/csbi.Dockerfile .
containerize-plugin-registry:
docker buildx build --rm -t plugin-registry --load -f plugin-registry/plugin-registry.Dockerfile .
containerize-arista-routing-engine-app:
docker buildx build --rm -t arista-routing-engine-app -f applications/arista-routing-engine/arista-routing-engine.Dockerfile .
containerize-hostname-checker-app:
docker buildx build --rm -t hostname-checker-app -f applications/hostname-checker/hostname-checker.Dockerfile .
containerize-ws-events-app:
docker buildx build --rm -t ws-events-app -f applications/ws-events/ws-events.Dockerfile .
containerlab-start: create-clab-dir containerize-all generate-all-certs
cd $(CLAB_DIR) &&\
sudo containerlab deploy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn.clab.yaml
containerlab-start-reconfigure: create-clab-dir containerize-all generate-all-certs
cd $(CLAB_DIR) &&\
sudo containerlab deploy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn.clab.yaml --reconfigure
containerlab-stop: create-clab-dir
cd $(CLAB_DIR) &&\
sudo containerlab destroy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn.clab.yaml
containerlab-slim-start: create-clab-dir containerize-all generate-all-certs
cd $(CLAB_DIR) &&\
sudo containerlab deploy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn_slim.clab.yaml
containerlab-slim-start-reconfigure: create-clab-dir containerize-all generate-all-certs
cd $(CLAB_DIR) &&\
sudo containerlab deploy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn_slim.clab.yaml --reconfigure
containerlab-slim-start-configured: containerlab-slim-start
.$(SCRIPTS_DIR)/setup-clab-slim.sh -s true
containerlab-slim-stop: create-clab-dir
cd $(CLAB_DIR) &&\
sudo containerlab destroy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn_slim.clab.yaml
containerlab-graph: create-clab-dir
cd $(CLAB_DIR) &&\
sudo containerlab graph --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn.clab.yaml
generate-all-certs: pre generate-root-ca generate-gosdn-certs generate-gnmi-target-certs generate-all-certs: pre generate-root-ca generate-gosdn-certs generate-gnmi-target-certs
generate-root-ca: pre
if [ ! -d "$(BUILD_ARTIFACTS_PATH)/ssl" ]; then \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl; \
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -subj '/C=DE/O=H_DA/CN=ROOT_CA' \
-keyout $(BUILD_ARTIFACTS_PATH)/ssl/ca.key -out $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt; \
fi
generate-gosdn-certs: pre
if [ ! -d "$(BUILD_ARTIFACTS_PATH)/ssl/gosdn" ]; then \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/private; \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/certs; \
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -subj '/C=DE/O=H_DA/CN=GOSDN' \
-CA $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt -CAkey $(BUILD_ARTIFACTS_PATH)/ssl/ca.key \
-keyout $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/private/gosdn-selfsigned.key -out $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/certs/gosdn-selfsigned.crt; \
cp $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/ca.crt; \
fi
generate-gnmi-target-certs: pre generate-root-ca
if [ ! -d "$(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target" ]; then \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/private; \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/certs; \
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -subj '/C=DE/O=H_DA/CN=TARGET' \
-CA $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt -CAkey $(BUILD_ARTIFACTS_PATH)/ssl/ca.key \
-keyout $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/private/gnmi-target-selfsigned.key -out $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/certs/gnmi-target-selfsigned.crt; \
cp $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/ca.crt; \
fi
shell-gosdn: shell-gosdn:
docker exec -it clab-gosdn_csbi_arista_base-gosdn bash docker exec -it clab-gosdn_csbi_arista_base-gosdn bash
......
...@@ -9,19 +9,23 @@ GOBUILD=$(GOCMD) build ...@@ -9,19 +9,23 @@ GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean GOCLEAN=$(GOCMD) clean
BINARY_NAME=gosdn BINARY_NAME=gosdn
# Tool Vesions
GOTESTSUM_VERSION=v1.8.1
MOCKERY_VERSION=v2.20.0
GOCOVER_COBERTURA=v1.2.0
all: build all: build
install-tools: install-tools:
@echo Install development tooling @echo Install development tooling
mkdir -p $(GOSDN_PRG) mkdir -p $(GOSDN_PRG)
go install gotest.tools/gotestsum@v1.7.0 go install gotest.tools/gotestsum@$(GOTESTSUM_VERSION)
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.2 go install github.com/vektra/mockery/v2@$(MOCKERY_VERSION)
go install github.com/vektra/mockery/v2@v2.14.0
@echo Finished installing development tooling @echo Finished installing development tooling
ci-install-tools: ci-install-tools:
go install gotest.tools/gotestsum@v1.7.0 go install gotest.tools/gotestsum@$(GOTESTSUM_VERSION)
go install github.com/boumenot/gocover-cobertura@v1.2.0 go install github.com/boumenot/gocover-cobertura@$(GOCOVER_COBERTURA)
build: build:
$(GOBUILD) -o $(BINARY_NAME) ./cmd/gosdn $(GOBUILD) -o $(BINARY_NAME) ./cmd/gosdn
......
build-plugins:
for d in ./plugins/examples/*/ ; do\
d="$${d%*/}";\
d="$${d##*/}";\
rm plugin-registry/plugins/$$d/$(PLUGIN_NAME);\
$(GOBUILD) -o plugin-registry/plugins/$$d/plugin ./plugins/examples/$$d/cmd;\
cp plugins/examples/$$d/plugin.yaml plugin-registry/plugins/$$d/;\
zip -r -j plugin-registry/plugins/$$d/$(PLUGIN_NAME) plugin-registry/plugins/$$d/;\
rm plugin-registry/plugins/$$d/plugin;\
done
build-gosdn: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/gosdn ./controller/cmd/gosdn
build-gosdnc: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/gosdnc ./cli/
build-orchestrator: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/orchestrator ./csbi/cmd/csbi/
build-plugin-registry: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/plugin-registry ./plugin-registry/
build-venv-manager: pre
$(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/venv-manager ./applications/venv-manager
build-arista-routing-engine-app: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/arista-routing-engine ./applications/arista-routing-engine
build-hostname-checker-app: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/hostname-checker ./applications/hostname-checker
build-basic-interface-monitoring-app: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/basic-interface-monitoring ./applications/basic-interface-monitoring
build-ws-events-app: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/ws-events ./applications/ws-events
ci-install-tools:
go install gotest.tools/gotestsum@$(GOTESTSUM_VERSION)
ci-lint: ci-install-tools
golangci-lint run --config .golangci.yml --out-format code-climate
containerlab-start: create-clab-dir containerize-all generate-all-certs
cd $(CLAB_DIR) &&\
sudo containerlab deploy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn.clab.yaml
containerlab-start-reconfigure: create-clab-dir containerize-all generate-all-certs
cd $(CLAB_DIR) &&\
sudo containerlab deploy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn.clab.yaml --reconfigure
containerlab-stop: create-clab-dir
cd $(CLAB_DIR) &&\
sudo containerlab destroy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn.clab.yaml
containerlab-slim-start: create-clab-dir containerize-all generate-all-certs
cd $(CLAB_DIR) &&\
sudo containerlab deploy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn_slim.clab.yaml
containerlab-slim-start-reconfigure: create-clab-dir containerize-all generate-all-certs
cd $(CLAB_DIR) &&\
sudo containerlab deploy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn_slim.clab.yaml --reconfigure
containerlab-slim-start-configured: containerlab-slim-start
.$(SCRIPTS_DIR)/setup-clab-slim.sh -s true
containerlab-slim-stop: create-clab-dir
cd $(CLAB_DIR) &&\
sudo containerlab destroy --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn_slim.clab.yaml
containerlab-graph: create-clab-dir
cd $(CLAB_DIR) &&\
sudo containerlab graph --topo $(MAKEFILE_DIR)dev_env_data/clab/gosdn.clab.yaml
containerize-gosdn:
docker buildx build --rm -t gosdn --load -f controller/controller.Dockerfile .
containerize-gosdnc:
docker buildx build --rm -t gosdnc --load -f cli/cli.Dockerfile .
containerize-venv-manager:
docker buildx build --rm -t venv-manager --load -f applications/venv-manager/venv-manager.Dockerfile .
containerize-orchestrator:
docker buildx build --rm -t orchestrator --load -f csbi/csbi.Dockerfile .
containerize-plugin-registry:
docker buildx build --rm -t plugin-registry --load -f plugin-registry/plugin-registry.Dockerfile .
containerize-arista-routing-engine-app:
docker buildx build --rm -t arista-routing-engine-app -f applications/arista-routing-engine/arista-routing-engine.Dockerfile .
containerize-hostname-checker-app:
docker buildx build --rm -t hostname-checker-app -f applications/hostname-checker/hostname-checker.Dockerfile .
containerize-ws-events-app:
docker buildx build --rm -t ws-events-app -f applications/ws-events/ws-events.Dockerfile .
generate-controller-mocks: install-tools
./$(TOOLS_DIR)/mockery --all --output './controller/mocks' --dir './controller/interfaces/'
generate-yang-models: install-tools
cd models/generated/openconfig &&\
../../../$(TOOLS_DIR)/go-ygot-generator-generator config.yaml openconfig.go &&\
go generate &&\
cat additions.patch >> yang.go
cd models/generated/arista &&\
../../../$(TOOLS_DIR)/go-ygot-generator-generator config.yaml arista.go &&\
go generate &&\
cat additions.patch >> yang.go
generate-csbi-yang-models: install-tools
cd csbi/resources &&\
../../$(TOOLS_DIR)/go-ygot-generator-generator config.yaml gostructs.go &&\
go generate
generate-root-ca: pre
if [ ! -d "$(BUILD_ARTIFACTS_PATH)/ssl" ]; then \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl; \
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -subj '/C=DE/O=H_DA/CN=ROOT_CA' \
-keyout $(BUILD_ARTIFACTS_PATH)/ssl/ca.key -out $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt; \
fi
generate-gosdn-certs: pre
if [ ! -d "$(BUILD_ARTIFACTS_PATH)/ssl/gosdn" ]; then \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/private; \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/certs; \
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -subj '/C=DE/O=H_DA/CN=GOSDN' \
-CA $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt -CAkey $(BUILD_ARTIFACTS_PATH)/ssl/ca.key \
-keyout $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/private/gosdn-selfsigned.key -out $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/certs/gosdn-selfsigned.crt; \
cp $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt $(BUILD_ARTIFACTS_PATH)/ssl/gosdn/ca.crt; \
fi
generate-gnmi-target-certs: pre generate-root-ca
if [ ! -d "$(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target" ]; then \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/private; \
mkdir -p $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/certs; \
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -subj '/C=DE/O=H_DA/CN=TARGET' \
-CA $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt -CAkey $(BUILD_ARTIFACTS_PATH)/ssl/ca.key \
-keyout $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/private/gnmi-target-selfsigned.key -out $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/certs/gnmi-target-selfsigned.crt; \
cp $(BUILD_ARTIFACTS_PATH)/ssl/ca.crt $(BUILD_ARTIFACTS_PATH)/ssl/gnmi-target/ca.crt; \
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment