mirror of
https://github.com/aquasecurity/kube-bench.git
synced 2024-12-01 12:28:18 +00:00
Add extra output manipulation flags, --noremediations, --nosummary and
--noresults. These flags disable printing sections of the final output of kube-bench.
This commit is contained in:
parent
ef6c017f54
commit
ade064006e
@ -131,41 +131,48 @@ func colorPrint(state check.State, s string) {
|
|||||||
|
|
||||||
// prettyPrint outputs the results to stdout in human-readable format
|
// prettyPrint outputs the results to stdout in human-readable format
|
||||||
func prettyPrint(r *check.Controls, summary check.Summary) {
|
func prettyPrint(r *check.Controls, summary check.Summary) {
|
||||||
colorPrint(check.INFO, fmt.Sprintf("%s %s\n", r.ID, r.Text))
|
// Print check results.
|
||||||
for _, g := range r.Groups {
|
if !noResults {
|
||||||
colorPrint(check.INFO, fmt.Sprintf("%s %s\n", g.ID, g.Text))
|
colorPrint(check.INFO, fmt.Sprintf("%s %s\n", r.ID, r.Text))
|
||||||
for _, c := range g.Checks {
|
|
||||||
colorPrint(c.State, fmt.Sprintf("%s %s\n", c.ID, c.Text))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
// Print remediations.
|
|
||||||
if summary.Fail > 0 || summary.Warn > 0 {
|
|
||||||
colors[check.WARN].Printf("== Remediations ==\n")
|
|
||||||
for _, g := range r.Groups {
|
for _, g := range r.Groups {
|
||||||
|
colorPrint(check.INFO, fmt.Sprintf("%s %s\n", g.ID, g.Text))
|
||||||
for _, c := range g.Checks {
|
for _, c := range g.Checks {
|
||||||
if c.State != check.PASS {
|
colorPrint(c.State, fmt.Sprintf("%s %s\n", c.ID, c.Text))
|
||||||
fmt.Printf("%s %s\n", c.ID, c.Remediation)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print summary setting output color to highest severity.
|
// Print remediations.
|
||||||
var res check.State
|
if !noRemediations {
|
||||||
if summary.Fail > 0 {
|
if summary.Fail > 0 || summary.Warn > 0 {
|
||||||
res = check.FAIL
|
colors[check.WARN].Printf("== Remediations ==\n")
|
||||||
} else if summary.Warn > 0 {
|
for _, g := range r.Groups {
|
||||||
res = check.WARN
|
for _, c := range g.Checks {
|
||||||
} else {
|
if c.State != check.PASS {
|
||||||
res = check.PASS
|
fmt.Printf("%s %s\n", c.ID, c.Remediation)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
colors[res].Printf("== Summary ==\n")
|
// Print summary setting output color to highest severity.
|
||||||
fmt.Printf("%d checks PASS\n%d checks FAIL\n%d checks WARN\n",
|
if !noSummary {
|
||||||
summary.Pass, summary.Fail, summary.Warn,
|
var res check.State
|
||||||
)
|
if summary.Fail > 0 {
|
||||||
|
res = check.FAIL
|
||||||
|
} else if summary.Warn > 0 {
|
||||||
|
res = check.WARN
|
||||||
|
} else {
|
||||||
|
res = check.PASS
|
||||||
|
}
|
||||||
|
|
||||||
|
colors[res].Printf("== Summary ==\n")
|
||||||
|
fmt.Printf("%d checks PASS\n%d checks FAIL\n%d checks WARN\n",
|
||||||
|
summary.Pass, summary.Fail, summary.Warn,
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,9 @@ var (
|
|||||||
masterFile string
|
masterFile string
|
||||||
nodeFile string
|
nodeFile string
|
||||||
federatedFile string
|
federatedFile string
|
||||||
|
noResults bool
|
||||||
|
noSummary bool
|
||||||
|
noRemediations bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// RootCmd represents the base command when called without any subcommands
|
// RootCmd represents the base command when called without any subcommands
|
||||||
@ -60,8 +63,13 @@ func Execute() {
|
|||||||
func init() {
|
func init() {
|
||||||
cobra.OnInitialize(initConfig)
|
cobra.OnInitialize(initConfig)
|
||||||
|
|
||||||
|
// Output control
|
||||||
|
RootCmd.PersistentFlags().BoolVar(&noResults, "noresults", false, "Disable prints of results section")
|
||||||
|
RootCmd.PersistentFlags().BoolVar(&noSummary, "nosummary", false, "Disable printing of summary section")
|
||||||
|
RootCmd.PersistentFlags().BoolVar(&noRemediations, "noremediations", false, "Disable printing of remediations section")
|
||||||
RootCmd.PersistentFlags().BoolVar(&jsonFmt, "json", false, "Prints the results as JSON")
|
RootCmd.PersistentFlags().BoolVar(&jsonFmt, "json", false, "Prints the results as JSON")
|
||||||
RootCmd.PersistentFlags().BoolVar(&pgSQL, "pgsql", false, "Save the results to PostgreSQL")
|
RootCmd.PersistentFlags().BoolVar(&pgSQL, "pgsql", false, "Save the results to PostgreSQL")
|
||||||
|
|
||||||
RootCmd.PersistentFlags().StringVarP(
|
RootCmd.PersistentFlags().StringVarP(
|
||||||
&checkList,
|
&checkList,
|
||||||
"check",
|
"check",
|
||||||
|
Loading…
Reference in New Issue
Block a user