48 lines
1.2 KiB
Makefile
48 lines
1.2 KiB
Makefile
# Should be the same as upstream version in prodution
|
|
VERSION ?= dev
|
|
|
|
# Target kube version
|
|
KUBE_VERSION ?= v1.35.1
|
|
|
|
GIT_REV=$(shell git rev-parse HEAD)
|
|
|
|
BIN_DIR := bin
|
|
|
|
BUILDINFO_FILE := pkg/buildinfo/buildinfo_gen.go
|
|
|
|
# Never cache this
|
|
.buildinfo:
|
|
echo 'package buildinfo' > $(BUILDINFO_FILE)
|
|
echo 'const (' >> $(BUILDINFO_FILE)
|
|
echo ' Version = "$(VERSION)"' >> $(BUILDINFO_FILE)
|
|
echo ' KubeVersion = "$(KUBE_VERSION)"' >> $(BUILDINFO_FILE)
|
|
echo ' GitRevision = "$(GIT_REV)"' >> $(BUILDINFO_FILE)
|
|
echo ' Timestamp = "$(shell TZ=UTC date +%Y%m%d.%H%M%S)"' >> $(BUILDINFO_FILE)
|
|
echo ')' >> $(BUILDINFO_FILE)
|
|
echo ''
|
|
|
|
build: .buildinfo
|
|
mkdir -p $(BIN_DIR)
|
|
GOOS=linux GOARCH=arm64 go build -o $(BIN_DIR)/ctl-linux-aarch64-$(VERSION) ./cmd/ctl/
|
|
|
|
build-agent: build
|
|
docker build \
|
|
--platform=linux/arm64 \
|
|
--build-arg VERSION=$(VERSION) \
|
|
-t localhost/monok8s/control-agent:$(VERSION) .
|
|
|
|
build-local: .buildinfo
|
|
go build -o $(BIN_DIR)/ctl-$(VERSION) ./cmd/ctl
|
|
|
|
run:
|
|
go run ./cmd/ctl
|
|
|
|
clean:
|
|
docker image rm localhost/monok8s/control-agent:$(VERSION)
|
|
rm -rf $(BIN_DIR) \
|
|
$(BUILDINFO_FILE)
|
|
|
|
all: build build-agent build-local
|
|
|
|
.PHONY: clean all run .buildinfo build build-local build-agent
|