Files
kubescape/main.go
Ben Hirschberg 70955537c8 initial commit
2021-08-12 16:01:26 +03:00

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
}