diff --git a/.goreleaser.yaml b/.goreleaser.yaml index e260cd01..004829bc 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -23,7 +23,8 @@ builds: ldflags: - -extldflags -static - -s -w - - -X main.Version={{.Env.TAG}} + - -X github.com/k8snetworkplumbingwg/k8s-net-attach-def-controller/pkg/utils.COMMIT={{.Env.COMMIT}} + - -X github.com/k8snetworkplumbingwg/k8s-net-attach-def-controller/pkg/utils.VERSION={{.Env.TAG}} main: ./main.go id: k8s-net-attach-def-controller binary: k8s-net-attach-def-controller diff --git a/main.go b/main.go index 9a95a893..bfd9a140 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "flag" + "fmt" "time" discoveryclient "k8s.io/client-go/discovery" @@ -16,6 +17,7 @@ import ( "github.com/k8snetworkplumbingwg/k8s-net-attach-def-controller/pkg/controller" "github.com/k8snetworkplumbingwg/k8s-net-attach-def-controller/pkg/signals" + "github.com/k8snetworkplumbingwg/k8s-net-attach-def-controller/pkg/utils" ) var ( @@ -27,6 +29,8 @@ var ( // default workers of this controller defaultWorkers = 3 + + version bool ) func main() { @@ -35,10 +39,16 @@ func main() { flag.StringVar(&master, "master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Required if out-of-cluster.") flag.StringVar(&kubeconfig, "kubeconfig", "", "Path to a kubeconfig. Required if out-of-cluster.") + flag.BoolVar(&version, "version", false, "Show version") // parse custom and klog/v2 flags flag.Parse() + if version { + fmt.Printf("Version %v - %v\n", utils.VERSION, utils.COMMIT) + return + } + // make sure we flush before exiting defer klog.Flush() diff --git a/pkg/utils/version.go b/pkg/utils/version.go new file mode 100644 index 00000000..76fa89c7 --- /dev/null +++ b/pkg/utils/version.go @@ -0,0 +1,6 @@ +package utils + +var ( + VERSION = "v0.6.0" + COMMIT = "head" +)