mirror of
https://github.com/kubescape/kubescape.git
synced 2026-02-14 18:09:55 +00:00
51 lines
1003 B
Go
51 lines
1003 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"kube-escape/cautils"
|
|
k8sinterface "kube-escape/cautils/k8sinterface"
|
|
"kube-escape/inputhandler/clihandler"
|
|
|
|
"kube-escape/opaprocessor"
|
|
"kube-escape/policyhandler"
|
|
"kube-escape/printer"
|
|
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
|
|
if err := CliSetup(); err != nil {
|
|
fmt.Println(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
}
|
|
|
|
func CliSetup() error {
|
|
k8s := k8sinterface.NewKubernetesApi()
|
|
processNotification := make(chan *cautils.OPASessionObj)
|
|
reportResults := make(chan *cautils.OPASessionObj)
|
|
|
|
// policy handler setup
|
|
cautils.SetupDefaultEnvs()
|
|
policyHandler := policyhandler.NewPolicyHandler(&processNotification, k8s)
|
|
|
|
// cli handler setup
|
|
cli := clihandler.NewCLIHandler(policyHandler)
|
|
if err := cli.Scan(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// processor setup - rego run
|
|
go func() {
|
|
reporterObj := opaprocessor.NewOPAProcessor(&processNotification, &reportResults)
|
|
reporterObj.ProcessRulesListenner()
|
|
}()
|
|
|
|
p := printer.NewPrinter(&reportResults)
|
|
p.ActionPrint()
|
|
|
|
return nil
|
|
}
|