1
0
mirror of https://github.com/aquasecurity/kube-bench.git synced 2024-12-19 05:08:07 +00:00

Merge branch 'master' into fix-false-detections

This commit is contained in:
Liz Rice 2019-02-28 10:38:41 +08:00 committed by GitHub
commit c18d8a2234
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -33,20 +33,6 @@ func init() {
statFunc = os.Stat statFunc = os.Stat
} }
func printlnWarn(msg string) {
fmt.Fprintf(os.Stderr, "[%s] %s\n",
colors[check.WARN].Sprintf("%s", check.WARN),
msg,
)
}
func sprintlnWarn(msg string) string {
return fmt.Sprintf("[%s] %s",
colors[check.WARN].Sprintf("%s", check.WARN),
msg,
)
}
func exitWithError(err error) { func exitWithError(err error) {
fmt.Fprintf(os.Stderr, "\n%v\n", err) fmt.Fprintf(os.Stderr, "\n%v\n", err)
os.Exit(1) os.Exit(1)
@ -303,6 +289,12 @@ func getKubeVersion() (string, error) {
if err != nil { if err != nil {
_, err = exec.LookPath("kubelet") _, err = exec.LookPath("kubelet")
if err != nil { if err != nil {
// Search for the kubelet binary all over the filesystem and run the first match to get the kubernetes version
cmd := exec.Command("/bin/sh", "-c", "`find / -type f -executable -name kubelet 2>/dev/null | grep -m1 .` --version")
out, err := cmd.CombinedOutput()
if err == nil {
return getVersionFromKubeletOutput(string(out)), nil
}
return "", fmt.Errorf("need kubectl or kubelet binaries to get kubernetes version") return "", fmt.Errorf("need kubectl or kubelet binaries to get kubernetes version")
} }
return getKubeVersionFromKubelet(), nil return getKubeVersionFromKubelet(), nil
@ -336,7 +328,7 @@ func getVersionFromKubectlOutput(s string) string {
serverVersionRe := regexp.MustCompile(`Server Version: v(\d+.\d+)`) serverVersionRe := regexp.MustCompile(`Server Version: v(\d+.\d+)`)
subs := serverVersionRe.FindStringSubmatch(s) subs := serverVersionRe.FindStringSubmatch(s)
if len(subs) < 2 { if len(subs) < 2 {
printlnWarn(fmt.Sprintf("Unable to get kubectl version, using default version: %s", defaultKubeVersion)) glog.V(1).Info(fmt.Sprintf("Unable to get Kubernetes version from kubectl, using default version: %s", defaultKubeVersion))
return defaultKubeVersion return defaultKubeVersion
} }
return subs[1] return subs[1]
@ -346,7 +338,7 @@ func getVersionFromKubeletOutput(s string) string {
serverVersionRe := regexp.MustCompile(`Kubernetes v(\d+.\d+)`) serverVersionRe := regexp.MustCompile(`Kubernetes v(\d+.\d+)`)
subs := serverVersionRe.FindStringSubmatch(s) subs := serverVersionRe.FindStringSubmatch(s)
if len(subs) < 2 { if len(subs) < 2 {
printlnWarn(fmt.Sprintf("Unable to get kubelet version, using default version: %s", defaultKubeVersion)) glog.V(1).Info(fmt.Sprintf("Unable to get Kubernetes version from kubelet, using default version: %s", defaultKubeVersion))
return defaultKubeVersion return defaultKubeVersion
} }
return subs[1] return subs[1]