feat(trivy): Enhance Trivy report generation and metrics handling
- Updated `generate_report.sh` to include additional scanners and output paths. - Enhanced `send_report.py` with new data classes for misconfigurations and vulnerabilities. - Improved parsing logic for Trivy output, supporting both Kubernetes and image scans. - Added Prometheus metrics generation for various scan results, including misconfigurations and vulnerabilities. - Introduced unit tests for parsing Trivy output and generating Prometheus metrics. - Modified Terraform variables for SMTP port type and added Pushgateway URL variable.
This commit is contained in:
@@ -1,3 +1,36 @@
|
||||
resource "kubernetes_config_map" "grafana_datasources" {
|
||||
metadata {
|
||||
name = "grafana-datasources"
|
||||
namespace = kubernetes_namespace.grafana.metadata[0].name
|
||||
}
|
||||
|
||||
data = {
|
||||
"default.yml" = replace(local.grafana_datasource_config, "__PROMETHEUS_URL__", var.prometheus_url)
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_config_map" "grafana_dashboard_provider" {
|
||||
metadata {
|
||||
name = "grafana-dashboard-provider"
|
||||
namespace = kubernetes_namespace.grafana.metadata[0].name
|
||||
}
|
||||
|
||||
data = {
|
||||
"dashboard-provider.yml" = local.grafana_dashboard_provider
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_config_map" "grafana_dashboards" {
|
||||
metadata {
|
||||
name = "grafana-dashboards"
|
||||
namespace = kubernetes_namespace.grafana.metadata[0].name
|
||||
}
|
||||
|
||||
data = {
|
||||
"trivy-vulnerabilities-dashboard.json" = local.grafana_trivy_dashboard
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "grafana" {
|
||||
|
||||
metadata {
|
||||
@@ -67,6 +100,21 @@ resource "kubernetes_deployment" "grafana" {
|
||||
name = "grafana-pv"
|
||||
mount_path = "/var/lib/grafana"
|
||||
}
|
||||
volume_mount {
|
||||
name = "grafana-datasources"
|
||||
mount_path = "/etc/grafana/provisioning/datasources"
|
||||
read_only = true
|
||||
}
|
||||
volume_mount {
|
||||
name = "grafana-dashboard-provider"
|
||||
mount_path = "/etc/grafana/provisioning/dashboards"
|
||||
read_only = true
|
||||
}
|
||||
volume_mount {
|
||||
name = "grafana-dashboards"
|
||||
mount_path = "/var/lib/grafana/dashboards"
|
||||
read_only = true
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "grafana-pv"
|
||||
@@ -74,6 +122,24 @@ resource "kubernetes_deployment" "grafana" {
|
||||
path = local.monitoring_folder
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "grafana-datasources"
|
||||
config_map {
|
||||
name = kubernetes_config_map.grafana_datasources.metadata[0].name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "grafana-dashboard-provider"
|
||||
config_map {
|
||||
name = kubernetes_config_map.grafana_dashboard_provider.metadata[0].name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "grafana-dashboards"
|
||||
config_map {
|
||||
name = kubernetes_config_map.grafana_dashboards.metadata[0].name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user