diff --git a/Makefile b/Makefile index 59104314..e9c8249e 100644 --- a/Makefile +++ b/Makefile @@ -19,18 +19,19 @@ IMAGE_NAME=csi-snapshotter IMAGE_VERSION=canary IMAGE_TAG=$(REGISTRY_NAME)/$(IMAGE_NAME):$(IMAGE_VERSION) +REV=$(shell git describe --long --tags --match='v*' --dirty) + ifdef V TESTARGS = -v -args -alsologtostderr -v 5 else TESTARGS = endif - all: csi-snapshotter csi-snapshotter: mkdir -p bin - CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o ./bin/csi-snapshotter ./cmd/csi-snapshotter + CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-X main.version=$(REV) -extldflags "-static"' -o ./bin/csi-snapshotter ./cmd/csi-snapshotter clean: -rm -rf bin diff --git a/cmd/csi-snapshotter/main.go b/cmd/csi-snapshotter/main.go index 80e1ff07..e4497710 100644 --- a/cmd/csi-snapshotter/main.go +++ b/cmd/csi-snapshotter/main.go @@ -58,12 +58,23 @@ var ( resyncPeriod = flag.Duration("resync-period", 60*time.Second, "Resync interval of the controller.") snapshotNamePrefix = flag.String("snapshot-name-prefix", "snapshot", "Prefix to apply to the name of a created snapshot") snapshotNameUUIDLength = flag.Int("snapshot-name-uuid-length", -1, "Length in characters for the generated uuid of a created snapshot. Defaults behavior is to NOT truncate.") + showVersion = flag.Bool("version", false, "Show version.") +) + +var ( + version = "unknown" ) func main() { flag.Set("logtostderr", "true") flag.Parse() + if *showVersion { + fmt.Println(os.Args[0], version) + os.Exit(0) + } + glog.Infof("Version: %s", version) + // Create the client config. Use kubeconfig if given, otherwise assume in-cluster. config, err := buildConfig(*kubeconfig) if err != nil {