Skip to content

Commit

Permalink
refactor: Use factory to instantiate ConfigAuditReport plugins (#418)
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Pacak <pacak.daniel@gmail.com>
  • Loading branch information
danielpacak committed Mar 4, 2021
1 parent 8cf7552 commit 3892722
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 11 deletions.
1 change: 1 addition & 0 deletions deploy/static/05-starboard-operator.config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ data:
- kube-hunter
rules:
- runAsRootAllowed
kube-bench.imageRef: docker.io/aquasec/kube-bench:0.5.0
---
apiVersion: v1
kind: Secret
Expand Down
5 changes: 3 additions & 2 deletions pkg/cmd/polaris.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package cmd

import (
"github.com/aquasecurity/starboard/pkg/starboard"
"github.com/spf13/cobra"
"k8s.io/cli-runtime/pkg/genericclioptions"
)

// Deprecated
// Use NewScanConfigAuditReportsCmd instead.
func NewPolarisCmd(cf *genericclioptions.ConfigFlags) *cobra.Command {
func NewPolarisCmd(buildInfo starboard.BuildInfo, cf *genericclioptions.ConfigFlags) *cobra.Command {
cmd := &cobra.Command{
Use: "polaris",
Deprecated: "please use 'scan configauditreports' instead",
Short: configAuditCmdShort,
Args: cobra.MaximumNArgs(1),
RunE: ScanConfigAuditReports(cf),
RunE: ScanConfigAuditReports(buildInfo, cf),
}

registerScannerOpts(cmd)
Expand Down
2 changes: 1 addition & 1 deletion pkg/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func NewRootCmd(buildInfo starboard.BuildInfo, args []string, outWriter io.Write
rootCmd.AddCommand(NewScanCmd(buildInfo, cf))
rootCmd.AddCommand(NewKubeBenchCmd(cf))
rootCmd.AddCommand(NewKubeHunterCmd(cf))
rootCmd.AddCommand(NewPolarisCmd(cf))
rootCmd.AddCommand(NewPolarisCmd(buildInfo, cf))
rootCmd.AddCommand(NewGetCmd(buildInfo, cf, outWriter))
rootCmd.AddCommand(NewCleanupCmd(cf))
rootCmd.AddCommand(NewConfigCmd(cf, outWriter))
Expand Down
2 changes: 1 addition & 1 deletion pkg/cmd/scan.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ func NewScanCmd(buildInfo starboard.BuildInfo, cf *genericclioptions.ConfigFlags
Aliases: []string{"generate"},
Short: "Manage security weakness identification tools",
}
scanCmd.AddCommand(NewScanConfigAuditReportsCmd(cf))
scanCmd.AddCommand(NewScanConfigAuditReportsCmd(buildInfo, cf))
scanCmd.AddCommand(NewScanKubeBenchReportsCmd(cf))
scanCmd.AddCommand(NewScanKubeHunterReportsCmd(cf))
scanCmd.AddCommand(NewScanVulnerabilityReportsCmd(buildInfo, cf))
Expand Down
16 changes: 9 additions & 7 deletions pkg/cmd/scan_configaudit.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@ package cmd
import (
"context"

"github.com/aquasecurity/starboard/pkg/config"
"github.com/aquasecurity/starboard/pkg/configauditreport"
"github.com/aquasecurity/starboard/pkg/ext"
"github.com/aquasecurity/starboard/pkg/polaris"
"github.com/aquasecurity/starboard/pkg/starboard"
"github.com/spf13/cobra"
"k8s.io/cli-runtime/pkg/genericclioptions"
Expand All @@ -17,20 +16,20 @@ const (
configAuditCmdShort = "Run a variety of checks to ensure that a given workload is configured using best practices"
)

func NewScanConfigAuditReportsCmd(cf *genericclioptions.ConfigFlags) *cobra.Command {
func NewScanConfigAuditReportsCmd(buildInfo starboard.BuildInfo, cf *genericclioptions.ConfigFlags) *cobra.Command {
cmd := &cobra.Command{
Use: "configauditreports",
Short: configAuditCmdShort,
Args: cobra.MaximumNArgs(1),
RunE: ScanConfigAuditReports(cf),
RunE: ScanConfigAuditReports(buildInfo, cf),
}

registerScannerOpts(cmd)

return cmd
}

func ScanConfigAuditReports(cf *genericclioptions.ConfigFlags) func(cmd *cobra.Command, args []string) error {
func ScanConfigAuditReports(buildInfo starboard.BuildInfo, cf *genericclioptions.ConfigFlags) func(cmd *cobra.Command, args []string) error {
return func(cmd *cobra.Command, args []string) error {
ctx := context.Background()
ns, _, err := cf.ToRawKubeConfigLoader().Namespace()
Expand Down Expand Up @@ -59,11 +58,14 @@ func ScanConfigAuditReports(cf *genericclioptions.ConfigFlags) func(cmd *cobra.C
if err != nil {
return err
}
config, err := starboard.NewConfigManager(kubeClientset, starboard.NamespaceName).Read(ctx)
starboardConfig, err := starboard.NewConfigManager(kubeClientset, starboard.NamespaceName).Read(ctx)
if err != nil {
return err
}
plugin, err := config.GetConfigAuditReportPlugin(buildInfo, starboardConfig)
if err != nil {
return err
}
plugin := polaris.NewPlugin(ext.NewSystemClock(), config)
scanner := configauditreport.NewScanner(scheme, kubeClientset, opts, plugin)
report, err := scanner.Scan(ctx, workload, gvk)
if err != nil {
Expand Down

0 comments on commit 3892722

Please sign in to comment.