internal/kubelet/version.go (25 lines of code) (raw):
package kubelet
import (
"os/exec"
"regexp"
)
func GetKubeletVersion() (string, error) {
rawVersion, err := GetKubeletVersionRaw()
if err != nil {
return "", err
}
version := parseSemVer(*rawVersion)
return version, nil
}
func GetKubeletVersionRaw() (*string, error) {
output, err := exec.Command("kubelet", "--version").Output()
if err != nil {
return nil, err
}
rawVersion := string(output)
return &rawVersion, nil
}
var semVerRegex = regexp.MustCompile(`v[0-9]+\.[0-9]+.[0-9]+`)
func parseSemVer(rawVersion string) string {
return semVerRegex.FindString(rawVersion)
}