1717# Clear any previous outputs
1818rm -rf image-scan-output
1919
20- # Make a fresh output directory
21- mkdir -p image-scan-output
20+ # Make fresh output directories
21+ mkdir -p image-scan-output image-sboms
2222
2323# Get built container images
2424docker image ls --filter " reference=ark.stackhpc.com/stackhpc-dev/*:$2 *" > $1 -scanned-container-images.txt
@@ -40,6 +40,7 @@ for image in $images; do
4040 global_vulnerabilities=$( yq .global_allowed_vulnerabilities[] src/kayobe-config/etc/kayobe/trivy/allowed-vulnerabilities.yml)
4141 image_vulnerabilities=$( yq .$imagename ' _allowed_vulnerabilities[]' src/kayobe-config/etc/kayobe/trivy/allowed-vulnerabilities.yml)
4242 touch .trivyignore
43+ mkdir -p image-scan-output/$filename
4344 for vulnerability in $global_vulnerabilities ; do
4445 echo $vulnerability >> .trivyignore
4546 done
@@ -52,22 +53,22 @@ for image in $images; do
5253 --scanners vuln \
5354 --format json \
5455 --severity HIGH,CRITICAL \
55- --output image-scan-output/${filename} .json \
56+ --output image-scan-output/${filename} / ${filename} .json \
5657 --ignore-unfixed \
5758 --db-repository ghcr.io/aquasecurity/trivy-db:2 \
5859 --db-repository public.ecr.aws/aquasecurity/trivy-db \
5960 --java-db-repository ghcr.io/aquasecurity/trivy-java-db:1 \
6061 --java-db-repository public.ecr.aws/aquasecurity/trivy-java-db \
6162 $image ) ; then
6263 # Clean up the output file for any images with no vulnerabilities
63- rm -f image-scan-output/${filename} .json
64+ rm -f image-scan-output/${filename} / ${filename} .json
6465
6566 # Add the image to the clean list
6667 echo " ${image} " >> image-scan-output/clean-images.txt
6768 else
6869
6970 # Write a header for the summary CSV
70- echo ' "PkgName","PkgPath","PkgID","VulnerabilityID","FixedVersion","PrimaryURL","Severity"' > image-scan-output/${filename} .summary.csv
71+ echo ' "PkgName","PkgPath","PkgID","VulnerabilityID","FixedVersion","PrimaryURL","Severity"' > image-scan-output/${filename} / ${filename} .summary.csv
7172
7273 # Write the summary CSV data
7374 jq -r ' .Results[]
@@ -88,15 +89,23 @@ for image in $images; do
8889 ]
8990 )
9091 | .[]
91- | @csv' image-scan-output/${filename} .json >> image-scan-output/${filename} .summary.csv
92+ | @csv' image-scan-output/${filename} / ${filename} .json >> image-scan-output/ ${filename} /${filename} .summary.csv
9293
93- if [ $( grep " CRITICAL" image-scan-output/${filename} .summary.csv -c) -gt 0 ]; then
94+ if [ $( grep " CRITICAL" image-scan-output/${filename} / ${filename} .summary.csv -c) -gt 0 ]; then
9495 # If the image contains critical vulnerabilities, add the image to critical list
9596 echo " ${image} " >> image-scan-output/critical-images.txt
9697 else
9798 # Otherwise, add the image to the dirty list
9899 echo " ${image} " >> image-scan-output/dirty-images.txt
99100 fi
100101 fi
101- rm .trivyignore
102+ trivy image \
103+ --quiet \
104+ --format spdx \
105+ --output image-scan-output/${filename} /${filename} -sbom.spdx \
106+ --db-repository ghcr.io/aquasecurity/trivy-db:2 \
107+ --db-repository public.ecr.aws/aquasecurity/trivy-db \
108+ --java-db-repository ghcr.io/aquasecurity/trivy-java-db:1 \
109+ --java-db-repository public.ecr.aws/aquasecurity/trivy-java-db \
110+ $image
102111done
0 commit comments