-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathMakefile
70 lines (54 loc) · 1.77 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
.PHONY: build
build:
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o bin/egressd .
.PHONY: build-docker
build-docker: build
DOCKER_DEFAULT_PLATFORM=linux/amd64 docker build -t ghcr.io/castai/egressd/egressd:$(IMAGE_TAG) -f Dockerfile .
.PHONY: push-docker
push-docker: build-docker
DOCKER_DEFAULT_PLATFORM=linux/amd64 docker push ghcr.io/castai/egressd/egressd:$(IMAGE_TAG)
.PHONY: lint
lint:
golangci-lint run -v --timeout=10m
.PHONY: gen-proto
gen-proto:
protoc pb/metrics.proto --go_out=paths=source_relative:.
TARGET_ARCH ?= x86_64
ifeq ($(TARGET_ARCH),x86_64)
ARCH = x86_64
LINUX_ARCH = x86
GO_ARCH = amd64
endif
ifeq ($(TARGET_ARCH),aarch64)
ARCH = arm64
LINUX_ARCH = arm64
GO_ARCH = arm64
endif
BPF_CFLAGS='-D__TARGET_ARCH_x86'
CMD_DOCKER_BUILDER=docker run --rm -it --name egressd-ebpf-builder \
-v $$(pwd)/.cache/go-build:/home/.cache/go-build \
-v $$(pwd)/.cache/go-mod:/home/go/pkg/mod \
-v $$(pwd):/app --privileged \
-e BPF2GO_STRIP=llvm-strip-14 \
-w /app ghcr.io/castai/egressd/egressd-builder:latest
OUTPUT_DIR=./bin
$(OUTPUT_DIR):
@mkdir -p $@
$(OUTPUT_DIR)/builder-image: $(OUTPUT_DIR) \
#
docker build -t ghcr.io/castai/egressd/egressd-builder:latest --build-arg TARGETARCH=$(GO_ARCH) . -f Dockerfile.builder
touch $(OUTPUT_DIR)/builder-image
.PHONY: builder-image
builder-image: $(OUTPUT_DIR)/builder-image
.PHONY: gen-bpf
gen-bpf:
BPF_CFLAGS='-D__TARGET_ARCH_x86' go generate ./ebpf
.PHONY: gen-bpf-docker
gen-bpf-docker: builder-image
$(CMD_DOCKER_BUILDER) make gen-bpf
.PHONY: builder-image-enter
builder-image-enter: builder-image
$(CMD_DOCKER_BUILDER)
.PHONY: build-push-bpftool
build-push-bpftool:
docker buildx build --platform linux/amd64,linux/arm64 -f Dockerfile.bpftool -t ghcr.io/castai/egressd/bpftool:$(IMAGE_TAG) --push .