Properly version Kubernetes and OpenShift binaries
package version
-import (
- "fmt"
-)
+import ()
+var (
// commitFromGit is a constant representing the source version that
// generated this build. It should be set during build via -ldflags.
-var commitFromGit string
+ commitFromGit string
+ // versionFromGit is a constant representing the version tag that
+ // generated this build. It should be set during build via -ldflags.
+ versionFromGit string
+ // major version
+ majorFromGit string
+ // minor version
+ minorFromGit string
+)
// Info contains versioning information.
// TODO: Add []string of api versions supported? It's still unclear
@@ -15,23 +22,25 @@ type Info struct {
Major string `json:"major"`
Minor string `json:"minor"`
GitCommit string `json:"gitCommit"`
+ GitVersion string `json:"gitVersion"`
}
// Get returns the overall codebase version. It's for detecting
// what code a binary was built from.
func Get() Info {
return Info{
- Major: "0",
- Minor: "1",
+ Major: majorFromGit,
+ Minor: minorFromGit,
GitCommit: commitFromGit,
+ GitVersion: versionFromGit,
}
}
// String returns info as a human-friendly version string.
func (info Info) String() string {
- commit := info.GitCommit
- if commit == "" {
- commit = "(unknown)"
+ version := info.GitVersion
+ if version == "" {
+ version = "unknown"
}
- return fmt.Sprintf("version %s.%s, build %s", info.Major, info.Minor, commit)
+ return version
}
