1
0
mirror of https://github.com/aquasecurity/kube-bench.git synced 2024-11-23 00:28:07 +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 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 { if err != nil {
exitWithError(fmt.Errorf("can't find %s controls file in %s: %v", nodetype, cfgDir, err)) 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 fileVersion = runningVersion
} }
glog.V(2).Info(fmt.Sprintf("Looking for config for version %s", fileVersion))
for { for {
path = filepath.Join(cfgDir, fileVersion) path = filepath.Join(cfgDir, fileVersion)
file := filepath.Join(path, string(filename)) 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) return strings.Replace(s, subname, sub, -1)
} }
func getKubeVersion() string { func getKubeVersion() (string, error) {
// These executables might not be on the user's path. // These executables might not be on the user's path.
_, err := exec.LookPath("kubectl") _, err := exec.LookPath("kubectl")
if err != nil { if err != nil {
_, err = exec.LookPath("kubelet") _, err = exec.LookPath("kubelet")
if err != nil { 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 { func getKubeVersionFromKubectl() string {