Private registries & restricted networks
Run the StackRadar scanner in clusters with private container registries or restricted egress: mirror the chart and image, configure a proxy, and allow the single API endpoint the agent needs.
Many clusters can't pull from public registries or have tightly filtered egress. This guide covers the three patterns that make the StackRadar scanner work there: mirroring the chart and image into your own registry, routing through an egress proxy, and allowlisting the one endpoint the scanner needs.
api.stackradar.io. Everything else — the chart, the image, all image pulls — can come from inside your network.What the scanner needs, exactly
| Requirement | Can be internal? |
|---|---|
Helm chart (stackradar-scanner) | Yes — mirror to any OCI registry or internal chart repo |
| Scanner container image | Yes — mirror to your private registry |
SBOM uploads & heartbeats — HTTPS to api.stackradar.io | No — allowlist directly or route via egress proxy |
Notably, the scanner does not need to download a vulnerability database into your cluster. Vulnerability matching happens server-side against StackRadar's continuously synced OSV.dev mirror, so there is no nightly feed download to allowlist and no stale in-cluster database to maintain. See how vulnerability matching works.
Mirroring the chart and image
Check the current chart version and default values on Artifact Hub, then pull the chart from the public OCI registry on a connected machine:
helm pull oci://ghcr.io/lockdep/charts/stackradar-scannerPush the resulting .tgz to your internal registry (any OCI-compliant registry works — Harbor, ECR, Artifact Registry, ACR, Nexus):
helm push stackradar-scanner-<version>.tgz oci://registry.internal.example.com/chartsMirror the scanner image the same way you mirror other public images (e.g. with crane copy, skopeo copy, or your registry's proxy-cache feature). List the chart's default image references and configurable values with:
helm show values oci://ghcr.io/lockdep/charts/stackradar-scannerThen install from your internal registry, overriding the image repository values shown by helm show values to point at your mirror:
helm install stackradar-scanner \
oci://registry.internal.example.com/charts/stackradar-scanner \
--namespace stackradar --create-namespace \
--set stackradar.apiKey=$STACKRADAR_API_KEY \
--set stackradar.clusterId=$STACKRADAR_CLUSTER_ID \
--values internal-registry-overrides.yamlRestricted egress
- Firewall allowlist — allow outbound HTTPS (TCP 443) to
api.stackradar.io. No other StackRadar endpoint is contacted by the scanner. - Egress proxy — the scanner respects standard proxy environment variables. Set
HTTPS_PROXY(andNO_PROXYfor in-cluster traffic) via the chart's environment values. - NetworkPolicy — if you default-deny egress in the
stackradarnamespace, add a policy permitting DNS and HTTPS egress for the scanner pod.
What actually leaves the network
Uploads are CycloneDX SBOM documents: package names, versions, and identifiers (PURLs) for each container image, plus cluster/workload metadata so results are attributable. No source code, no environment variables, no secrets, and no image contents are transmitted — and all data is stored in the EU. Details in architecture & data flow.