Repository navigation
ci: container image scan gate with Trivy (spec 013 G2) - #678
ValgulNecron wants to merge 11 commits into
Conversation
Add hack/trivy-scan-images.sh (HIGH/CRITICAL, fixed only, scans every image before failing) and its proof hack/check-image-scan_test.sh, which must see an EOL alpine:3.17.0 rejected with CVE-2023-0286 and the telemetry-receiver e2e image accepted. New job vuln (images) scans every gameplane-test e2e image from the build-images artifact, with a weekly Trivy DB cache. publish-edge and release scan each pushed digest before cosign signs it. G-02 moves to in progress; T031 fixes the first run's findings. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 56 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
The proof passed: the EOL alpine was rejected and reported CVE-2023-0286, and telemetry-receiver was accepted. The scan then failed 8 of 12 images. Every finding has a fix:
T031 covers this: x/net bumps in the six Generated by Claude Code |
CI Report - 5c07acerun 38323442610 - attempt 1 0 failed - 31 passed - 0 skipped - 97m44s elapsed Coverage
Changed
Slowest jobs
e2e buckets run
|
Signed-off-by: Claude <noreply@anthropic.com>
Trivy flagged CVE-2026-78669 (HIGH, fixed in v0.60.0) in the agent, api, mcp-server, operator and sentinel images. capture-sidecar already moved to v0.60.0 on master. go mod tidy pulled x/sync, x/sys, x/term and x/text forward as x/net v0.60.0 requires. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
|
The This PR doesn't change anything under Generated by Claude Code |
|
Generated by Claude Code |
…spec 013 G2, T031) No frp release binary scans clean: 0.70.1 and 0.71.0 are both built with go1.25.12, x/net v0.56.0 and x/crypto v0.54.0, which carry fixed HIGH CVEs. The new tunnel/frpc module pins frp v0.71.0 with x/net v0.60.0 and x/crypto v0.58.0 (go.sum-verified) and mirrors frp's yamux replace; Dockerfile.frp compiles frpc from it with Go 1.27 and the upstream frpc,noweb tags (the supervisor never enables frpc's admin UI). Dependabot watches the new module. valgul chose "Build from source". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
…inistic Two T184 Share polling tests mixed shouldAdvanceTime fake timers with a synchronous advanceTimersByTime and waitFor, so they timed out on busy runners (#677, #678). They now use pure fake timers advanced with advanceTimersByTimeAsync inside act, like the newer T184 test in the same file. The CaptureWidget download-button test asserted the button was enabled before the capabilities query had resolved (#672, #684); it now waits for that. Assertions are unchanged. valgul chose "Fix in #677". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com> # Conflicts: # operator/go.mod # operator/go.sum
Keep the from-source frpc build stage; master's pinned apk and pipefail lines belonged to the release-download stage it replaces. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Before: CI built every component image but never scanned it, and publish-edge and release signed whatever they pushed.
After: a new
vuln (images)job scans everygameplane-test/*:e2eimage (plusapi:e2e-postgres) from the build-images artifact and fails on any HIGH or CRITICAL vulnerability that has a fix. publish-edge and release run the same scan on each pushed digest beforecosign sign, so an image with a fixed HIGH/CRITICAL finding is never signed.How:
hack/trivy-scan-images.shrunstrivy image --severity HIGH,CRITICAL --ignore-unfixed --exit-code 1on each argument and fails after scanning them all.hack/check-image-scan_test.shproves the gate: alpine:3.17.0 pinned by digest must fail and report CVE-2023-0286, and the telemetry-receiver e2e image must pass. Trivy v0.74.0 is installed throughaquasecurity/setup-trivyv0.3.1, SHA-pinned; the Trivy DB is cached per ISO week. The job is registered in the CI report. G-02 moves to in progress; T031 (fixing the first run's findings) follows once this run shows them.Builds on the spec 013 setup PR #671 (includes its commits until it merges).
🤖 Generated with Claude Code
Generated by Claude Code