@@ -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,66 @@ 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 = unknown
33
+ goOs = unknown
34
+ goArch = unknown
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
+ if goVersion == unknown {
53
+ goVersion = runtime .Version ()
54
+ }
55
+
56
+ if goOs == unknown {
57
+ goOs = runtime .GOOS
58
+ }
59
+
60
+ if goArch == unknown {
61
+ goArch = runtime .GOARCH
62
+ }
63
+
64
+ info , ok := debug .ReadBuildInfo ()
65
+
66
+ if ok {
67
+ if info .Main .Version != "" {
68
+ if kubeBuilderVersion == unknown {
69
+ kubeBuilderVersion = info .Main .Version
70
+ }
71
+ }
72
+
73
+ for _ , setting := range info .Settings {
74
+ if buildDate == unknown && setting .Key == "vcs.revision" {
75
+ buildDate = setting .Value
76
+ }
77
+
78
+ if gitCommit == unknown && setting .Key == "vcs.revision" {
79
+ gitCommit = setting .Value
80
+ }
53
81
}
54
82
}
55
83
56
84
return fmt .Sprintf ("Version: %#v" , version {
57
85
kubeBuilderVersion ,
58
86
kubernetesVendorVersion ,
87
+ goVersion ,
88
+ goOs ,
89
+ goArch ,
59
90
gitCommit ,
60
91
buildDate ,
61
- goos ,
62
- goarch ,
63
92
})
64
93
}
0 commit comments