mirror of
https://github.com/komodorio/helm-dashboard.git
synced 2026-03-24 11:48:04 +00:00
Scanners Integration (#18)
* Research scanning * Move files around * Reports the list * Scanner happens * Commit * Work on alternative * refactorings * Progress * Save the state * Commit * Display trivy Results * Checkov also reports * Better display * Correct trivy numbers * Scan pre-install manifest * Readme items * Static checks
This commit is contained in:
@@ -3,19 +3,24 @@ package dashboard
|
||||
import (
|
||||
"context"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/komodorio/helm-dashboard/pkg/dashboard/scanners"
|
||||
"github.com/komodorio/helm-dashboard/pkg/dashboard/subproc"
|
||||
"github.com/komodorio/helm-dashboard/pkg/dashboard/utils"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"net/http"
|
||||
"os"
|
||||
)
|
||||
|
||||
func StartServer(version string) (string, ControlChan) {
|
||||
data := DataLayer{}
|
||||
func StartServer(version string) (string, utils.ControlChan) {
|
||||
data := subproc.DataLayer{}
|
||||
err := data.CheckConnectivity()
|
||||
if err != nil {
|
||||
log.Errorf("Failed to check that Helm is operational, cannot continue. The error was: %s", err)
|
||||
os.Exit(1) // TODO: propagate error instead?
|
||||
}
|
||||
|
||||
discoverScanners(&data)
|
||||
|
||||
address := os.Getenv("HD_BIND")
|
||||
if address == "" {
|
||||
address = "localhost"
|
||||
@@ -27,15 +32,15 @@ func StartServer(version string) (string, ControlChan) {
|
||||
address += ":" + os.Getenv("HD_PORT")
|
||||
}
|
||||
|
||||
abort := make(ControlChan)
|
||||
abort := make(utils.ControlChan)
|
||||
api := NewRouter(abort, &data, version)
|
||||
done := startBackgroundServer(address, api, abort)
|
||||
|
||||
return "http://" + address, done
|
||||
}
|
||||
|
||||
func startBackgroundServer(addr string, routes *gin.Engine, abort ControlChan) ControlChan {
|
||||
done := make(ControlChan)
|
||||
func startBackgroundServer(addr string, routes *gin.Engine, abort utils.ControlChan) utils.ControlChan {
|
||||
done := make(utils.ControlChan)
|
||||
server := &http.Server{Addr: addr, Handler: routes}
|
||||
|
||||
go func() {
|
||||
@@ -56,3 +61,17 @@ func startBackgroundServer(addr string, routes *gin.Engine, abort ControlChan) C
|
||||
|
||||
return done
|
||||
}
|
||||
|
||||
func discoverScanners(data *subproc.DataLayer) {
|
||||
potential := []subproc.Scanner{
|
||||
&scanners.Checkov{Data: data},
|
||||
&scanners.Trivy{Data: data},
|
||||
}
|
||||
|
||||
data.Scanners = []subproc.Scanner{}
|
||||
for _, scanner := range potential {
|
||||
if scanner.Test() {
|
||||
data.Scanners = append(data.Scanners, scanner)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user