Quickstart Guide
This document provides a quick guide to setting up and running the security scanning infrastructure using Trivy and other related tools.
Prerequisites
Before you begin, make sure you have the following prerequisites installed in your environment:
- Kubernetes Cluster
- Helm 3.x
- Credential setup in HashiCorp Vault
- Access to OpenStack (for storing results)
Project Structure
The project structure is organized as follows:
.
├── cronjob
│ ├── configmap.yaml
│ └── trivy-cronjob.yaml
├── trivy-operator
│ └── values.yaml
└── trivy-reporter
└── values.yaml
Main Files
1. cronjob/configmap.yaml
This file defines a ConfigMap
that is used to store configurations and scripts necessary for executing the CronJob
that performs security scans using Trivy.
- Primary Use: Store scripts and configurations that will be used by the
CronJob
. - Important: Ensure that the scripts stored in this
ConfigMap
are correctly formatted and configured to run in the Kubernetes environment.
2. cronjob/trivy-cronjob.yaml
This file defines a CronJob
in Kubernetes that is responsible for periodically running the security scan using Trivy.
- Schedule: The
CronJob
is configured to run at specific intervals defined in the file. - Containers: It uses several containers, including
trivy-reports-getter
for fetching the reports andtrivy-reports-uploader
for uploading the results to an external storage like OpenStack. - Configurations: Ensure that all configurations, including volumes and
initContainers
, are correctly set up before deploying thisCronJob
.
3. trivy-operator/trivy_results.json
This file contains an example JSON output generated by Trivy after performing a security scan.
- Usage: Used as an example or reference to analyze the results of the scans.
- Important: This file can be used to conduct local tests on scripts that process Trivy's scan results.
4. trivy-operator/values.yaml
This file contains specific configurations for deploying the trivy-operator
using Helm.
- Configuration: Defines the values to customize the deployment of the Trivy operator in the Kubernetes cluster.
- Note: Ensure to customize this file according to your environment's needs before deploying.
5. trivy-reporter/values.yaml
This file contains specific configurations for the trivy-reporter
tool.
- Purpose: Used to configure how reports should be generated and processed after Trivy performs a scan.
- Configuration: Customize this file according to the environment and the report you wish to generate.
Deployment
To deploy the security scanning infrastructure, follow the steps below:
-
Configure ConfigMaps and Secrets: Ensure all necessary
ConfigMaps
andSecrets
are properly created in your Kubernetes cluster.kubectl apply -f cronjob/configmap.yaml
-
Deploy the CronJob: Deploy the
CronJob
that will run the periodic scans.kubectl apply -f cronjob/trivy-cronjob.yaml
-
Deploy Trivy Operator: Use Helm to deploy the
trivy-operator
in your cluster.helm install trivy-operator trivy-operator/ -f trivy-operator/values.yaml
-
Deploy Trivy Reporter: Use Helm to deploy the
trivy-reporter
in your cluster.helm repo add trivy-dojo-report-operator https://telekom-mms.github.io/trivy-dojo-report-operator/
helm repo update
helm install chart-name trivy-dojo-report-operator/trivy-dojo-report-operator --values trivy-reporter/values.yaml