# 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