From 9469b1c124305cdcf20bbc6a0da8e8009daac7fd Mon Sep 17 00:00:00 2001 From: Will Medlar Date: Thu, 12 Apr 2018 14:22:50 -0400 Subject: [PATCH] Allow kubernetes version and config directory to be specified (resolves #107) --- cmd/common.go | 8 +++++++- cmd/root.go | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cmd/common.go b/cmd/common.go index 752a337..4b59758 100644 --- a/cmd/common.go +++ b/cmd/common.go @@ -47,7 +47,13 @@ func runChecks(t check.NodeType) { nodetype = "federated" } - ver := getKubeVersion() + var ver string + if kubeVersion != "" { + ver = kubeVersion + } else { + ver = getKubeVersion() + } + switch ver { case "1.9", "1.10": continueWithError(nil, fmt.Sprintf("No CIS spec for %s - using tests from CIS 1.2.0 spec for Kubernetes 1.8\n", ver)) diff --git a/cmd/root.go b/cmd/root.go index 76d871a..ec84682 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -26,9 +26,10 @@ import ( var ( envVarsPrefix = "KUBE_BENCH" - cfgDir = "./cfg" defaultKubeVersion = "1.6" + kubeVersion string cfgFile string + cfgDir string jsonFmt bool pgSQL bool checkList string @@ -77,6 +78,8 @@ func init() { `Run all the checks under this comma-delimited list of groups. Example --group="1.1"`, ) RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is ./cfg/config.yaml)") + RootCmd.PersistentFlags().StringVarP(&cfgDir, "config-dir", "D", "./cfg/", "config directory") + RootCmd.PersistentFlags().StringVar(&kubeVersion, "version", "", "Manually specify Kubernetes version, automatically detected if unset") goflag.CommandLine.VisitAll(func(goflag *goflag.Flag) { RootCmd.PersistentFlags().AddGoFlag(goflag)