Skip to content

Instantly share code, notes, and snippets.

@peterrosell
Created June 7, 2022 06:53
Show Gist options
  • Save peterrosell/a4c1bf22ae278767468899db955a7c33 to your computer and use it in GitHub Desktop.
Save peterrosell/a4c1bf22ae278767468899db955a7c33 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -euo pipefail
IMAGES=$(kubectl get pods --all-namespaces -o json | jq -r '.items[].spec.containers[].image' | sort |uniq)
SYFT_BIN="podman run -v ${PWD}:/workdir -w /workdir docker.io/anchore/syft:latest"
GRYPE_BIN="podman run -v ${PWD}:/workdir -w /workdir docker.io/anchore/grype:latest"
for IMAGE in ${IMAGES}; do
IMAGE_FILE_BASE="$(echo "${IMAGE}" | tr -s ':' '/')"
IMAGE_FILE_SBOM="sbom/${IMAGE_FILE_BASE}.sbom.json"
IMAGE_FILE_VULN="vuln/${IMAGE_FILE_BASE}.vuln.txt"
mkdir -p $(dirname "${IMAGE_FILE_SBOM}")
${SYFT_BIN} packages registry:${IMAGE} -o json --file "${IMAGE_FILE_SBOM}"
mkdir -p $(dirname "${IMAGE_FILE_VULN}")
${GRYPE_BIN} "sbom:${IMAGE_FILE_SBOM}" --file "${IMAGE_FILE_VULN}" --add-cpes-if-none
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment