Skip to content

Commit 7f2cfc7

Browse files
authored
feat: use go mod to download tools like controller-gen (#884)
1 parent 8295215 commit 7f2cfc7

File tree

7 files changed

+622
-26
lines changed

7 files changed

+622
-26
lines changed

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,6 @@ ipam-*.xml
1919
*.log
2020

2121
# debug test files
22-
*.test
22+
*.test
23+
24+
controller-gen

Makefile

+13-1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ GOARCH ?= amd64
7575

7676
# Build directories.
7777
ROOT_DIR = $(shell pwd)
78+
REPO_ROOT = $(shell git rev-parse --show-toplevel)
7879
CNM_DIR = cnm/plugin
7980
CNI_NET_DIR = cni/network/plugin
8081
CNI_IPAM_DIR = cni/ipam/plugin
@@ -98,6 +99,8 @@ CNS_BUILD_DIR = $(BUILD_DIR)/cns
9899
CNMS_BUILD_DIR = $(BUILD_DIR)/cnms
99100
NPM_BUILD_DIR = $(BUILD_DIR)/npm
100101
NPM_TELEMETRY_DIR = $(NPM_BUILD_DIR)/telemetry
102+
TOOLS_DIR = $(REPO_ROOT)/build/tools
103+
TOOLS_BIN_DIR = $(TOOLS_DIR)/bin
101104
CNI_AI_ID = 5515a1eb-b2bc-406a-98eb-ba462e6f0411
102105
NPM_AI_ID = 014c22bd-4107-459e-8475-67909e96edcb
103106
ACN_PACKAGE_PATH = github.com/Azure/azure-container-networking
@@ -195,6 +198,7 @@ endif
195198
.PHONY: clean
196199
clean:
197200
rm -rf $(OUTPUT_DIR)
201+
rm -rf $(TOOLS_BIN_DIR)
198202

199203
# Build the Azure CNM plugin.
200204
$(CNM_BUILD_DIR)/azure-vnet-plugin$(EXE_EXT): $(CNMFILES)
@@ -471,4 +475,12 @@ test-cyclonus:
471475
.PHONY: kind
472476
kind:
473477
kind create cluster --config ./test/kind/kind.yaml
474-
478+
479+
$(TOOLS_DIR)/go.mod:
480+
cd $(TOOLS_DIR); go mod init && go mod tidy
481+
482+
CONTROLLER_GEN := $(TOOLS_BIN_DIR)/controller-gen
483+
$(CONTROLLER_GEN): $(TOOLS_DIR)/go.mod # Build controller-gen
484+
cd $(TOOLS_DIR); go mod download; go build -tags=tools -o bin/controller-gen sigs.k8s.io/controller-tools/cmd/controller-gen
485+
486+
controller-gen: $(CONTROLLER_GEN)

build/tools/go.mod

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module github.com/azure/azure-container-networking/build/tools
2+
3+
go 1.16
4+
5+
require sigs.k8s.io/controller-tools v0.3.0

build/tools/go.sum

+570
Large diffs are not rendered by default.

build/tools/tools.go

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//+build tools
2+
3+
package tools
4+
5+
import (
6+
_ "sigs.k8s.io/controller-tools/cmd/controller-gen"
7+
)

networkcontainer/Makefile

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
# Dependencies for generator
2-
GOFILES = $(wildcard api/*/*.go)
1+
REPO_ROOT = $(shell git rev-parse --show-toplevel)
2+
TOOLS_DIR = $(REPO_ROOT)/build/tools
3+
TOOLS_BIN_DIR = $(REPO_ROOT)/build/tools/bin
4+
CONTROLLER_GEN = $(TOOLS_BIN_DIR)/controller-gen
35

4-
generate: $(GOFILES) controller-gen
5-
controller-gen object:headerFile="boilerplate.go.txt" paths="./..."
6+
.PHONY: generate manifests
67

7-
.PHONY: controller-gen
8+
generate: $(CONTROLLER_GEN)
9+
$(CONTROLLER_GEN) object:headerFile="boilerplate.go.txt" paths="./..."
810

9-
controller-gen:
10-
@(cd && GO111MODULE=on go get sigs.k8s.io/controller-tools/cmd/[email protected])
11-
12-
.PHONY: manifests
13-
14-
manifests: controller-gen
11+
manifests: $(CONTROLLER_GEN)
1512
mkdir -p manifests
16-
controller-gen crd:trivialVersions=true paths="./..." output:crd:artifacts:config=manifests/
13+
$(CONTROLLER_GEN) crd:trivialVersions=true paths="./..." output:crd:artifacts:config=manifests/
14+
15+
$(CONTROLLER_GEN):
16+
@make -C $(REPO_ROOT) $(CONTROLLER_GEN)

nodenetworkconfig/Makefile

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
# Dependencies for generator
2-
GOFILES = $(wildcard api/v1/*.go)
1+
REPO_ROOT = $(shell git rev-parse --show-toplevel)
2+
TOOLS_DIR = $(REPO_ROOT)/build/tools
3+
TOOLS_BIN_DIR = $(REPO_ROOT)/build/tools/bin
4+
CONTROLLER_GEN = $(TOOLS_BIN_DIR)/controller-gen
35

4-
generate: $(GOFILES) controller-gen
5-
controller-gen object:headerFile="boilerplate.go.txt" paths="./..."
6+
.PHONY: generate manifests
67

7-
.PHONY: controller-gen
8+
generate: $(CONTROLLER_GEN)
9+
$(CONTROLLER_GEN) object:headerFile="boilerplate.go.txt" paths="./..."
810

9-
controller-gen:
10-
@(cd && GO111MODULE=on go get sigs.k8s.io/controller-tools/cmd/[email protected])
11-
12-
.PHONY: manifests
13-
14-
manifests: controller-gen
11+
manifests: $(CONTROLLER_GEN)
1512
mkdir -p manifests
16-
controller-gen crd:trivialVersions=true paths="./..." output:crd:artifacts:config=manifests/
13+
$(CONTROLLER_GEN) crd:trivialVersions=true paths="./..." output:crd:artifacts:config=manifests/
14+
15+
$(CONTROLLER_GEN):
16+
@make -C $(REPO_ROOT) $(CONTROLLER_GEN)

0 commit comments

Comments
 (0)