This example describes how you can perform a scan against an image located in a private registry for SCST - Scan.
If the target image secret was not configured, create a secret containing the credentials used to pull the target image you want to scan. For information about secret creation, see the Kubernetes documentation.
kubectl create secret docker-registry TARGET-REGISTRY-CREDENTIALS-SECRET \
--docker-server=<your-registry-server> \
--docker-username=<your-name> \
--docker-password=<your-password> \
--docker-email=<your-email> \
-n DEV-NAMESPACE
Where:
TARGET-REGISTRY-CREDENTIALS-SECRET is the name of the secret that is created.DEV-NAMESPACE is the developer namespace where the scanner is installed.Update the tap-values.yaml file to include the name of secret created earlier.
grype:
namespace: "MY-DEV-NAMESPACE"
targetImagePullSecret: "TARGET-REGISTRY-CREDENTIALS-SECRET"
Upgrade Tanzu Application Platform with the modified tap-values.yaml file.
tanzu package installed update tap -p tap.tanzu.vmware.com -v ${TAP-VERSION} --values-file tap-values.yaml -n tap-install
Where TAP-VERSION is the Tanzu Application Platform version.
Create sample-private-image-scan.yaml:
---
apiVersion: scanning.apps.tanzu.vmware.com/v1beta1
kind: ImageScan
metadata:
name: sample-private-image-scan
spec:
registry:
image: IMAGE-URL
scanTemplate: private-image-scan-template
Where IMAGE-URL is the URL of an image in a private registry.
Before deploying the resources to a user specified namespace, set up a watch in another terminal to view the progression:
watch kubectl get sourcescans,imagescans,pods,taskruns,scantemplates,scanpolicies -n DEV-NAMESPACE
Where DEV-NAMESPACE is the developer namespace where the scanner is installed.
For more information, see Observing and Troubleshooting.
kubectl apply -f sample-private-image-scan.yaml -n DEV-NAMESPACE
Where DEV-NAMESPACE is the developer namespace where the scanner is installed.
When the scan completes, run:
kubectl describe imagescan sample-private-image-scan -n DEV-NAMESPACE
Where DEV-NAMESPACE is the developer namespace where the scanner is installed.
NoteThe
Status.Conditionsincludes aReason: JobFinishedandMessage: The scan job finished. See Viewing and Understanding Scan Status Conditions.
kubectl delete -f sample-private-image-scan.yaml -n DEV-NAMESPACE
Where DEV-NAMESPACE is the developer namespace where the scanner is installed.
After completing the scans, query the Supply Chain Security Tools - Store to view your vulnerability results.