@@ -18,6 +18,7 @@ package cmd
18
18
19
19
import (
20
20
"fmt"
21
+ "runtime"
21
22
"runtime/debug"
22
23
)
23
24
@@ -27,38 +28,55 @@ const unknown = "unknown"
27
28
// information in the release process
28
29
var (
29
30
kubeBuilderVersion = unknown
30
- kubernetesVendorVersion = unknown
31
- goos = unknown
32
- goarch = unknown
33
- gitCommit = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD)
34
-
35
- buildDate = "1970-01-01T00:00:00Z" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ')
31
+ kubernetesVendorVersion = "1.32.1"
32
+ goVersion = runtime . Version ()
33
+ goOs = runtime . GOOS
34
+ goArch = runtime . GOARCH
35
+ gitCommit = unknown // "$Format:%H$" sha1 from git, output of $(git rev-parse HEAD)
36
+ buildDate = unknown // "1970-01-01T00:00:00Z" build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ')
36
37
)
37
38
38
39
// version contains all the information related to the CLI version
39
40
type version struct {
40
41
KubeBuilderVersion string `json:"kubeBuilderVersion"`
41
42
KubernetesVendor string `json:"kubernetesVendor"`
42
- GitCommit string `json:"gitCommit"`
43
- BuildDate string `json:"buildDate"`
43
+ GoVersion string `json:"goVersion"`
44
44
GoOs string `json:"goOs"`
45
45
GoArch string `json:"goArch"`
46
+ GitCommit string `json:"gitCommit"`
47
+ BuildDate string `json:"buildDate"`
46
48
}
47
49
48
50
// versionString returns the CLI version
49
51
func versionString () string {
50
- if kubeBuilderVersion == unknown {
51
- if info , ok := debug .ReadBuildInfo (); ok && info .Main .Version != "" {
52
- kubeBuilderVersion = info .Main .Version
52
+ info , ok := debug .ReadBuildInfo ()
53
+
54
+ if ok {
55
+ if info .Main .Version != "" {
56
+ if kubeBuilderVersion == unknown {
57
+ kubeBuilderVersion = info .Main .Version
58
+ }
59
+
60
+ }
61
+
62
+ for _ , setting := range info .Settings {
63
+ if buildDate == unknown && setting .Key == "vcs.revision" {
64
+ buildDate = setting .Value
65
+ }
66
+
67
+ if gitCommit == unknown && setting .Key == "vcs.revision" {
68
+ gitCommit = setting .Value
69
+ }
53
70
}
54
71
}
55
72
56
73
return fmt .Sprintf ("Version: %#v" , version {
57
74
kubeBuilderVersion ,
58
75
kubernetesVendorVersion ,
76
+ goVersion ,
77
+ goOs ,
78
+ goArch ,
59
79
gitCommit ,
60
80
buildDate ,
61
- goos ,
62
- goarch ,
63
81
})
64
82
}
0 commit comments