penguin/monok8s

k8s image for Mono Gateway Dev Kit

clitools/makefile

raw ยท 1209 bytes

# 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