24 lines
933 B
Bash
24 lines
933 B
Bash
#!/bin/sh
|
|||
|
|
# Trivy-Scan-Schleife (gitops#47): scannt alle 24h die Liste der real deployten
|
||
|
|
# Images (cve/images.txt, aus dem Cluster inventarisiert) und legt die
|
||
|
|
# JSON-Reports fuer den cve-exporter ab. Kein Abbruch bei Einzelfehlern -
|
||
|
|
# ein nicht mehr pullbares Image darf den Rest nicht verhindern (der Exporter
|
||
|
|
# alarmiert ueber trivy_last_scan_timestamp, wenn ein Report veraltet).
|
||
|
|
set -u
|
||
|
|
RESULTS=/results
|
||
|
|
IMAGES=/config/images.txt
|
||
|
|
INTERVAL="${SCAN_INTERVAL_SECONDS:-86400}"
|
||
|
|
|
||
|
|
while true; do
|
||
|
|
while IFS= read -r img; do
|
||
|
|
case "$img" in ""|\#*) continue;; esac
|
||
|
|
safe=$(echo "$img" | tr '/:@' '___')
|
||
|
|
echo "scan: $img"
|
||
|
|
trivy image --scanners vuln --format json --output "$RESULTS/$safe.json.tmp" "$img" \
|
||
|
|
&& mv "$RESULTS/$safe.json.tmp" "$RESULTS/$safe.json" \
|
||
|
|
|| echo "FEHLER bei $img (Report bleibt auf altem Stand)"
|
||
|
|
done < "$IMAGES"
|
||
|
|
echo "runde fertig, schlafe ${INTERVAL}s"
|
||
|
|
sleep "$INTERVAL"
|
||
|
|
done
|