@@ -7,6 +7,16 @@ DOCKER_TAG = $(shell echo $(IMG) | cut -d: -f2)
77# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
88ENVTEST_K8S_VERSION = 1.30.0
99
10+ # Version information
11+ GIT_VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "unknown")
12+ GIT_COMMIT := $(shell git rev-parse HEAD 2>/dev/null || echo "unknown")
13+ BUILD_DATE := $(shell date -u +'% Y-% m-% dT% H:% M:% SZ')
14+
15+ # LDFLAGS for version information
16+ LDFLAGS := -X main.version=$(GIT_VERSION ) \
17+ -X main.gitCommit=$(GIT_COMMIT ) \
18+ -X main.buildDate=$(BUILD_DATE )
19+
1020# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
1121ifeq (,$(shell go env GOBIN) )
1222GOBIN =$(shell go env GOPATH) /bin
@@ -91,7 +101,7 @@ build-operator:
91101
92102.PHONY : build
93103build : manifests generate fmt vet # # Build manager binary.
94- go build -o bin/manager cmd/main.go
104+ go build -ldflags " $( LDFLAGS ) " - o bin/manager cmd/main.go
95105 go build -o bin/router cmd/router/main.go
96106
97107.PHONY : run
@@ -107,7 +117,11 @@ run-router: manifests generate fmt vet ## Run a router from your host.
107117# More info: https://docs.docker.com/develop/develop-images/build_enhancements/
108118.PHONY : docker-build
109119docker-build : # # Build docker image with the manager.
110- $(CONTAINER_TOOL ) build -t ${IMG} .
120+ $(CONTAINER_TOOL ) build \
121+ --build-arg GIT_VERSION=$(GIT_VERSION ) \
122+ --build-arg GIT_COMMIT=$(GIT_COMMIT ) \
123+ --build-arg BUILD_DATE=$(BUILD_DATE ) \
124+ -t ${IMG} .
111125
112126.PHONY : docker-push
113127docker-push : # # Push docker image with the manager.
@@ -127,6 +141,9 @@ docker-buildx: ## Build and push docker image for the manager for cross-platform
127141 - $(CONTAINER_TOOL ) buildx create --name jumpstarter-controller-builder
128142 $(CONTAINER_TOOL ) buildx use jumpstarter-controller-builder
129143 - $(CONTAINER_TOOL ) buildx build --push --platform=$(PLATFORMS ) \
144+ --build-arg GIT_VERSION=$(GIT_VERSION ) \
145+ --build-arg GIT_COMMIT=$(GIT_COMMIT ) \
146+ --build-arg BUILD_DATE=$(BUILD_DATE ) \
130147 --tag ${DOCKER_REPO} :${DOCKER_TAG} \
131148 --tag ${DOCKER_REPO} :latest \
132149 -f Dockerfile.cross .
0 commit comments