You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#627 adds vulnerability scanning of the released images, but deliberately lands it report-only: the weekly workflow uploads findings and never fails, and no release is blocked.
That is the right starting state and the wrong end state. Report-only means nothing stops a release that carries an untriaged HIGH+ finding, so the scan informs without ever protecting. The reason it ships that way is empirical rather than philosophical: at the time #627 was written the released agent image carried 58 HIGH+ findings (#628) and the released operator image carried 2 (#629). Turning on a gate then would have blocked every release of both components on day one.
Feature description
Once #628 and #629 are resolved and the scan is quiet, turn on both gates agreed during #627's design:
Fresh scan at tag time. The same grype invocation with the same .grype.yaml and .openvex.json, but fail-build: true, on the refs/tags/operator/ and refs/tags/agent/ paths. Catches a CVE disclosed since the last weekly run.
Open-alert check at tag time. Fail the release if an open code scanning alert with tool_name of Grype exists. Catches a finding that was seen, could not be honestly suppressed, and has not been fixed, so that clearing it is an explicit human act rather than a side effect of scan timing.
They are deliberately separate. The first is about what is true right now; the second is about whether anybody dealt with what we already knew.
Describe your ideal solution
Both gates land together, in one PR, after the scan has been quiet for at least one weekly cycle.
docs/contributing/release-process.md gains a short section on what fails a release and how to clear it, since this is maintainer-visible behavior.
The gate is a required check only on the tag paths, so ordinary PRs are unaffected.
Gate on open alerts only. Avoids an overnight CVE blocking an unrelated release, but leaves a window between disclosure and the next weekly scan in which a release ships unexamined.
Never gate. Rejected: the whole point of triage is that somebody has to act on it.
Additional context
Blocked on #628 and #629. Depends on #627 landing first.
Note for whoever picks this up: a finding on a released image can mean "already fixed on main, not yet shipped" rather than "unfixed" (#629 is exactly that case). A gate should not push people toward writing a VEX statement when the real remedy is cutting a release.
Is this a new feature, an improvement, or a change to existing functionality?
Improvement, and the second half of #627.
Component
CI / release tooling
Problem description
#627 adds vulnerability scanning of the released images, but deliberately lands it report-only: the weekly workflow uploads findings and never fails, and no release is blocked.
That is the right starting state and the wrong end state. Report-only means nothing stops a release that carries an untriaged HIGH+ finding, so the scan informs without ever protecting. The reason it ships that way is empirical rather than philosophical: at the time #627 was written the released agent image carried 58 HIGH+ findings (#628) and the released operator image carried 2 (#629). Turning on a gate then would have blocked every release of both components on day one.
Feature description
Once #628 and #629 are resolved and the scan is quiet, turn on both gates agreed during #627's design:
.grype.yamland.openvex.json, butfail-build: true, on therefs/tags/operator/andrefs/tags/agent/paths. Catches a CVE disclosed since the last weekly run.tool_nameof Grype exists. Catches a finding that was seen, could not be honestly suppressed, and has not been fixed, so that clearing it is an explicit human act rather than a side effect of scan timing.They are deliberately separate. The first is about what is true right now; the second is about whether anybody dealt with what we already knew.
Describe your ideal solution
docs/contributing/release-process.mdgains a short section on what fails a release and how to clear it, since this is maintainer-visible behavior.Alternatives you have considered
Additional context
Blocked on #628 and #629. Depends on #627 landing first.
Note for whoever picks this up: a finding on a released image can mean "already fixed on
main, not yet shipped" rather than "unfixed" (#629 is exactly that case). A gate should not push people toward writing a VEX statement when the real remedy is cutting a release.