diff --git a/pkg/dashboard/dashboard.go b/pkg/dashboard/dashboard.go index 129e14c6..35c7702b 100644 --- a/pkg/dashboard/dashboard.go +++ b/pkg/dashboard/dashboard.go @@ -52,14 +52,13 @@ func getDashboardData(c conf.Configuration) (DashboardData, error) { return DashboardData{}, err } - log.Println("deploys =======>", len(deploys.Items)) - dashboardData := DashboardData{ ClusterSummary: &validator.ResultSummary{ Successes: 46, Warnings: 8, Failures: 5, }, + NamespacedResults: map[string]*validator.NamespacedResult{}, } for _, deploy := range deploys.Items { @@ -67,13 +66,29 @@ func getDashboardData(c conf.Configuration) (DashboardData, error) { resResult := validator.ResourceResult{ Name: deploy.Name, Type: "Deployment", + Summary: &validator.ResultSummary{ + Successes: 16, + Warnings: 4, + Failures: 2, + }, + } + + if dashboardData.NamespacedResults[deploy.Namespace] == nil { + dashboardData.NamespacedResults[deploy.Namespace] = &validator.NamespacedResult{ + Results: []validator.ResourceResult{}, + Summary: &validator.ResultSummary{ + Successes: 16, + Warnings: 4, + Failures: 2, + }, + } } for _, containerValidation := range validationFailures.InitContainerValidations { for _, failure := range containerValidation.Failures { dashboardData.ClusterSummary.Failures++ - // rr := *resResult.Summary - // rr.Failures++ + dashboardData.NamespacedResults[deploy.Namespace].Summary.Failures++ + resResult.Summary.Failures++ resResult.Messages = append(resResult.Messages, validator.ResultMessage{ Message: failure.Reason(), Type: "failure", @@ -84,8 +99,8 @@ func getDashboardData(c conf.Configuration) (DashboardData, error) { for _, containerValidation := range validationFailures.ContainerValidations { for _, failure := range containerValidation.Failures { dashboardData.ClusterSummary.Failures++ - // rr := *resResult.Summary - // rr.Failures++ + dashboardData.NamespacedResults[deploy.Namespace].Summary.Failures++ + resResult.Summary.Failures++ resResult.Messages = append(resResult.Messages, validator.ResultMessage{ Message: failure.Reason(), Type: "failure", @@ -93,61 +108,8 @@ func getDashboardData(c conf.Configuration) (DashboardData, error) { } } - log.Println("adding results to =======>", deploy.Namespace) - rr := []validator.ResourceResult{} - rr = append(rr, resResult) - nsRes := validator.NamespacedResult{Results: rr} - - ns := map[string]*validator.NamespacedResult{ - deploy.Namespace: &nsRes, - } - dashboardData.NamespacedResults = ns - - // dashboardData.NamespacedResults[deploy.Namespace].Results = append(dashboardData.NamespacedResults[deploy.Namespace].Results, resResult) - log.Println("adding results to =======>", len(dashboardData.NamespacedResults[deploy.Namespace].Results)) + dashboardData.NamespacedResults[deploy.Namespace].Results = append(dashboardData.NamespacedResults[deploy.Namespace].Results, resResult) } return dashboardData, nil - - // return DashboardData{ - // ClusterSummary: &validator.ResultSummary{ - // Successes: 46, - // Warnings: 8, - // Failures: 5, - // }, - // NamespacedResults: { - // "kube-system": { - // Summary: &validator.ResultSummary{ - // Successes: 7, - // Warnings: 3, - // Failures: 2, - // }, - // Results: []validator.ResourceResult{{ - // Name: "tiller", - // Type: "Deployment", - // Summary: &validator.ResultSummary{ - // Successes: 7, - // Warnings: 3, - // Failures: 2, - // }, - // Messages: []validator.ResultMessage{{ - // Message: "Image Tag Specified", - // Type: "success", - // }, { - // Message: "Liveness Probe Specified", - // Type: "success", - // }, { - // Message: "Readiness Probe Specified", - // Type: "success", - // }, { - // Message: "Container Running As Root", - // Type: "warning", - // }, { - // Message: "Resource requests are not set", - // Type: "failure", - // }}, - // }}, - // } - // }}, - // }, nil } diff --git a/pkg/dashboard/templates/charts.gohtml b/pkg/dashboard/templates/charts.gohtml index f0225755..ea7e6270 100644 --- a/pkg/dashboard/templates/charts.gohtml +++ b/pkg/dashboard/templates/charts.gohtml @@ -39,12 +39,12 @@

Namespace: {{ $namespace }}

- {{ range .Results }} + {{ range $results.Results }}
{{ .Type }}: {{ .Name }}
    - {{ range $results.Messages}} + {{ range .Messages}}
  • &#{{ .HTMLSpecialCharCode }}; {{ .Message }}
  • {{ end }}
@@ -112,18 +112,34 @@ var namespaceChart = new Chart("namespaceScoreChart", { type: 'bar', data: { - labels: ["kube-system", "development", "staging", "infra", "default"], + labels: [ + {{ range $namespace, $results := .NamespacedResults }} + "{{ $namespace }}", + {{ end }} + ], datasets: [{ label: 'Passing', - data: [118, 78, 65, 56, 43], + data: [ + {{ range $namespace, $results := .NamespacedResults }} + "{{ $results.Summary.Successes }}", + {{ end }} + ], backgroundColor: '#006469', },{ label: 'Warning', - data: [85, 54, 28, 23, 21], + data: [ + {{ range $namespace, $results := .NamespacedResults }} + "{{ $results.Summary.Warnings }}", + {{ end }} + ], backgroundColor: '#AE7500', },{ label: 'Failing', - data: [38, 24, 18, 15, 12], + data: [ + {{ range $namespace, $results := .NamespacedResults }} + "{{ $results.Summary.Failures }}", + {{ end }} + ], backgroundColor: '#AE0400', }] }, diff --git a/pkg/validator/types.go b/pkg/validator/types.go index 306b641e..2686619b 100644 --- a/pkg/validator/types.go +++ b/pkg/validator/types.go @@ -18,9 +18,8 @@ package validator // }] type NamespacedResult struct { - Namespace string - Summary *ResultSummary - Results []ResourceResult + Summary *ResultSummary + Results []ResourceResult } type ResourceResult struct {