2019-05-29 15:24:19 -07:00
|
|
|
package version
|
|
|
|
|
2019-11-18 11:41:37 -08:00
|
|
|
import (
|
2023-07-01 01:27:06 +02:00
|
|
|
"runtime/debug"
|
|
|
|
|
2020-03-17 11:05:20 -07:00
|
|
|
"github.com/go-logr/logr"
|
2019-11-18 11:41:37 -08:00
|
|
|
)
|
|
|
|
|
2023-07-01 01:27:06 +02:00
|
|
|
// BuildVersion is provided by govvv at compile-time
|
|
|
|
var BuildVersion string
|
|
|
|
|
|
|
|
func Version() string {
|
|
|
|
if BuildVersion == "" {
|
|
|
|
bi, ok := debug.ReadBuildInfo()
|
|
|
|
if !ok {
|
|
|
|
return "---"
|
|
|
|
}
|
|
|
|
BuildVersion = bi.Main.Version
|
|
|
|
}
|
|
|
|
return BuildVersion
|
|
|
|
}
|
|
|
|
|
|
|
|
func Time() string {
|
|
|
|
bi, ok := debug.ReadBuildInfo()
|
|
|
|
if ok {
|
|
|
|
for _, setting := range bi.Settings {
|
|
|
|
if setting.Key == "vcs.time" {
|
|
|
|
return setting.Value
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return "---"
|
|
|
|
}
|
|
|
|
|
|
|
|
func Hash() string {
|
|
|
|
bi, ok := debug.ReadBuildInfo()
|
|
|
|
if ok {
|
|
|
|
for _, setting := range bi.Settings {
|
|
|
|
if setting.Key == "vcs.revision" {
|
|
|
|
return setting.Value
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return "---"
|
|
|
|
}
|
2019-05-29 15:24:19 -07:00
|
|
|
|
2022-05-17 08:19:03 +02:00
|
|
|
// PrintVersionInfo displays the kyverno version - git version
|
2020-03-17 11:05:20 -07:00
|
|
|
func PrintVersionInfo(log logr.Logger) {
|
2023-07-01 01:27:06 +02:00
|
|
|
log.Info("version", "version", Version(), "hash", Hash(), "time", Time())
|
2019-05-29 15:24:19 -07:00
|
|
|
}
|