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