diff --git a/Makefile b/Makefile index 67818f02..c5706d6f 100644 --- a/Makefile +++ b/Makefile @@ -84,6 +84,7 @@ GOOS=linux PACKAGE=sigs.k8s.io/node-feature-discovery-operator MAIN_PACKAGE=main.go BIN=node-feature-discovery-operator +LDFLAGS = -ldflags "-s -w -X sigs.k8s.io/node-feature-discovery-operator/pkg/version.version=$(VERSION)" PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST)))) @@ -100,7 +101,7 @@ go_mod: # Build binary build: go_mod - @GOOS=$(GOOS) GO111MODULE=on CGO_ENABLED=0 $(GO_CMD) build -o $(BIN) $(MAIN_PACKAGE) + @GOOS=$(GOOS) GO111MODULE=on CGO_ENABLED=0 $(GO_CMD) build -o $(BIN) $(LDFLAGS) $(MAIN_PACKAGE) # Run against the configured Kubernetes cluster in ~/.kube/config run: generate fmt vet manifests diff --git a/main.go b/main.go index 02016d63..71b9c02d 100644 --- a/main.go +++ b/main.go @@ -22,7 +22,6 @@ import ( "os" _ "k8s.io/client-go/plugin/pkg/client/auth" - "k8s.io/component-base/version" "k8s.io/klog/v2" "k8s.io/apimachinery/pkg/runtime" @@ -34,6 +33,7 @@ import ( nfdkubernetesiov1 "sigs.k8s.io/node-feature-discovery-operator/api/v1" "sigs.k8s.io/node-feature-discovery-operator/controllers" "sigs.k8s.io/node-feature-discovery-operator/pkg/utils" + "sigs.k8s.io/node-feature-discovery-operator/pkg/version" // +kubebuilder:scaffold:imports ) diff --git a/version/version.go b/pkg/version/version.go similarity index 53% rename from version/version.go rename to pkg/version/version.go index 980a59c6..cd3e86dc 100644 --- a/version/version.go +++ b/pkg/version/version.go @@ -1,11 +1,11 @@ /* -Copyright 2020 The Kubernetes Authors. +Copyright 2022 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -16,7 +16,17 @@ limitations under the License. package version -var ( - // Version tracks the NFD operator release - Version = "0.0.1" -) +const undefinedVersion string = "undefined" + +// Must not be const, supposed to be set using ldflags at build time +var version = undefinedVersion + +// Get returns the version as a string +func Get() string { + return version +} + +// Undefined returns if version is at it's default value +func Undefined() bool { + return version == undefinedVersion +}