diff --git a/cmd/scan/scan.go b/cmd/scan/scan.go index 76e0d5e9..9c67c42c 100644 --- a/cmd/scan/scan.go +++ b/cmd/scan/scan.go @@ -117,7 +117,6 @@ func GetScanCommand(ks meta.IKubescape) *cobra.Command { scanCmd.AddCommand(getControlCmd(ks, &scanInfo)) scanCmd.AddCommand(getFrameworkCmd(ks, &scanInfo)) - scanCmd.AddCommand(getWorkloadCmd(ks, &scanInfo)) return scanCmd } diff --git a/cmd/scan/workload.go b/cmd/scan/workload.go deleted file mode 100644 index 208b7eea..00000000 --- a/cmd/scan/workload.go +++ /dev/null @@ -1,95 +0,0 @@ -package scan - -import ( - "context" - "fmt" - "strings" - - logger "github.com/kubescape/go-logger" - "github.com/kubescape/kubescape/v2/core/cautils" - "github.com/kubescape/kubescape/v2/core/meta" - "github.com/kubescape/opa-utils/objectsenvelopes" - - "github.com/spf13/cobra" -) - -var ( - workloadExample = fmt.Sprintf(` - # Scan an workload - %[1]s scan workload / - - # Scan an workload in a specific namespace - %[1]s scan workload / --namespace - - # Scan an workload from a file path - %[1]s scan workload / --file-path - - # Scan an workload from a helm-chart template - %[1]s scan workload / --chart-path - - -`, cautils.ExecName()) -) - -var namespace string - -// controlCmd represents the control command -func getWorkloadCmd(ks meta.IKubescape, scanInfo *cautils.ScanInfo) *cobra.Command { - workloadCmd := &cobra.Command{ - Use: "workload / [``/`-`] [flags]", - Short: fmt.Sprint("The workload you wish to scan"), - Example: workloadExample, - Args: func(cmd *cobra.Command, args []string) error { - if len(args) != 1 { - return fmt.Errorf("usage: /") - } - - wlIdentifier := strings.Split(args[0], "/") - if len(wlIdentifier) != 2 || wlIdentifier[0] == "" || wlIdentifier[1] == "" { - return fmt.Errorf("usage: /") - } - - return nil - }, - RunE: func(cmd *cobra.Command, args []string) error { - var wlIdentifier string - - wlIdentifier += args[0] - kind, name, err := parseWorkloadIdentifierString(wlIdentifier) - if err != nil { - logger.L().Fatal(err.Error()) - } - - scanInfo.ScanObject = &objectsenvelopes.ScanObject{} - scanInfo.ScanObject.SetNamespace(namespace) - scanInfo.ScanObject.SetKind(kind) - scanInfo.ScanObject.SetName(name) - // todo: add api version if provided - - scanInfo.ScanAll = true - - ctx := context.TODO() - results, err := ks.Scan(ctx, scanInfo) - print(results) - if err != nil { - logger.L().Fatal(err.Error()) - } - - return nil - }, - } - workloadCmd.PersistentFlags().StringVarP(&namespace, "namespace", "n", "", "Namespace of the workload. Default will be empty.") - - return workloadCmd -} - -func parseWorkloadIdentifierString(workloadIdentifier string) (kind, name string, err error) { - // workloadIdentifier is in the form of namespace/kind/name - // example: default/Deployment/nginx-deployment - x := strings.Split(workloadIdentifier, "/") - if len(x) != 2 { - return "", "", fmt.Errorf("invalid workload identifier") - } - - return x[0], x[1], nil -}