1
0
mirror of https://github.com/aquasecurity/kube-bench.git synced 2024-11-26 01:49:28 +00:00

Shouldn't need kubelet or kubectl if version specified

This commit is contained in:
Liz Rice 2018-07-26 12:03:09 +01:00
parent 668a9e10ce
commit ccc2b6c9ae
2 changed files with 11 additions and 5 deletions

View File

@ -44,7 +44,11 @@ func runChecks(nodetype check.NodeType) {
file = federatedFile
}
path, err := getConfigFilePath(kubeVersion, getKubeVersion(), file)
runningVersion, err := getKubeVersion()
if err != nil && kubeVersion == "" {
exitWithError(fmt.Errorf("Version check failed: %s\nAlternatively, you can specify the version with --version", err))
}
path, err := getConfigFilePath(kubeVersion, runningVersion, file)
if err != nil {
exitWithError(fmt.Errorf("can't find %s controls file in %s: %v", nodetype, cfgDir, err))
}

View File

@ -129,6 +129,8 @@ func getConfigFilePath(specifiedVersion string, runningVersion string, filename
fileVersion = runningVersion
}
glog.V(2).Info(fmt.Sprintf("Looking for config for version %s", fileVersion))
for {
path = filepath.Join(cfgDir, fileVersion)
file := filepath.Join(path, string(filename))
@ -265,19 +267,19 @@ func multiWordReplace(s string, subname string, sub string) string {
return strings.Replace(s, subname, sub, -1)
}
func getKubeVersion() string {
func getKubeVersion() (string, error) {
// These executables might not be on the user's path.
_, err := exec.LookPath("kubectl")
if err != nil {
_, err = exec.LookPath("kubelet")
if err != nil {
exitWithError(fmt.Errorf("Version check failed: need kubectl or kubelet binaries to get kubernetes version.\nAlternately, you can specify the version with --version"))
return "", fmt.Errorf("need kubectl or kubelet binaries to get kubernetes version")
}
return getKubeVersionFromKubelet()
return getKubeVersionFromKubelet(), nil
}
return getKubeVersionFromKubectl()
return getKubeVersionFromKubectl(), nil
}
func getKubeVersionFromKubectl() string {