aboutsummaryrefslogtreecommitdiff
path: root/pkg/driver/version.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/driver/version.go')
-rw-r--r--pkg/driver/version.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/pkg/driver/version.go b/pkg/driver/version.go
new file mode 100644
index 0000000..258267a
--- /dev/null
+++ b/pkg/driver/version.go
@@ -0,0 +1,53 @@
+/*
+Copyright 2019 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
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+package driver
+
+import (
+ "encoding/json"
+ "fmt"
+ "runtime"
+)
+
+var (
+ driverVersion string
+ gitCommit string
+ buildDate string
+)
+
+type VersionInfo struct {
+ DriverVersion string `json:"driverVersion"`
+ GitCommit string `json:"gitCommit"`
+ BuildDate string `json:"buildDate"`
+ GoVersion string `json:"goVersion"`
+ Compiler string `json:"compiler"`
+ Platform string `json:"platform"`
+}
+
+func GetVersion() VersionInfo {
+ return VersionInfo{
+ DriverVersion: driverVersion,
+ GitCommit: gitCommit,
+ BuildDate: buildDate,
+ GoVersion: runtime.Version(),
+ Compiler: runtime.Compiler,
+ Platform: fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH),
+ }
+}
+func GetVersionJSON() (string, error) {
+ info := GetVersion()
+ marshalled, err := json.MarshalIndent(&info, "", " ")
+ if err != nil {
+ return "", err
+ }
+ return string(marshalled), nil
+}