diff --git a/Makefile b/Makefile index 6b26bbb4..3cab4d6e 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,3 @@ - # Image URL to use all building/pushing image targets IMG ?= controller:latest IMAGE_REGISTRY_NAME ?= quay.io/open-cluster-management @@ -112,9 +111,11 @@ client-gen: --versions=open-cluster-management.io/cluster-proxy/pkg/apis/proxy/v1alpha1 images: + git_commit=$$(git rev-parse --short HEAD) && \ docker build \ -f cmd/Dockerfile \ --build-arg ADDON_AGENT_IMAGE_NAME=$(IMAGE_REGISTRY_NAME)/$(IMAGE_NAME):$(IMAGE_TAG) \ + --build-arg GIT_COMMIT=$$git_commit \ -t $(IMAGE_REGISTRY_NAME)/$(IMAGE_NAME):$(IMAGE_TAG) . ENVTEST_ASSETS_DIR=$(shell pwd)/testbin diff --git a/cmd/Dockerfile b/cmd/Dockerfile index 65e2ce6f..e8b1f884 100644 --- a/cmd/Dockerfile +++ b/cmd/Dockerfile @@ -6,6 +6,7 @@ WORKDIR /workspace ARG APISERVER_NETWORK_PROXY_VERSION=0.30.2 ARG KUBECTL_VERSION=v1.30.2 ARG ADDON_AGENT_IMAGE_NAME +ARG GIT_COMMIT # Build Apiserver-network-proxy binaries RUN wget https://github.com/kubernetes-sigs/apiserver-network-proxy/archive/refs/tags/v${APISERVER_NETWORK_PROXY_VERSION}.tar.gz \ @@ -33,7 +34,8 @@ COPY pkg pkg/ # Build addons RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o agent cmd/addon-agent/main.go RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a \ - -ldflags="-X 'open-cluster-management.io/cluster-proxy/pkg/config.AgentImageName=${ADDON_AGENT_IMAGE_NAME}'" \ + -ldflags="-X 'open-cluster-management.io/cluster-proxy/pkg/config.AgentImageName=${ADDON_AGENT_IMAGE_NAME}' \ + -X 'main.gitCommit=${GIT_COMMIT}'" \ -o manager cmd/addon-manager/main.go # Use distroless as minimal base image to package the manager binary diff --git a/cmd/addon-manager/main.go b/cmd/addon-manager/main.go index f38a7fed..5f94c71f 100644 --- a/cmd/addon-manager/main.go +++ b/cmd/addon-manager/main.go @@ -19,6 +19,7 @@ package main import ( "context" "flag" + "fmt" "os" // Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.) @@ -49,6 +50,8 @@ import ( //+kubebuilder:scaffold:imports ) +var gitCommit string + var ( scheme = runtime.NewScheme() setupLog = ctrl.Log.WithName("setup") @@ -91,6 +94,8 @@ func main() { flag.Parse() + fmt.Printf("Starting addon-manager. Git commit: %s\n", gitCommit) + // pipe controller-runtime logs to klog ctrl.SetLogger(logger)