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
@@ -134,9 +134,9 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
134
134
-[x] (R) Graduation criteria is in place
135
135
-[x] (R) Production readiness review completed
136
136
-[x] Production readiness review approved
137
-
-[] "Implementation History" section is up-to-date for milestone
138
-
-[] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
139
-
-[] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
137
+
-[x] "Implementation History" section is up-to-date for milestone
138
+
-[x] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
139
+
-[x] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
140
140
141
141
<!--
142
142
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
@@ -285,9 +285,9 @@ it may train developers to ignore issues.
285
285
Additionally, *because* it is not initially blocking, it risks being overlooked
286
286
as unimportant even when findings are relevant.
287
287
288
-
Should issues reach master, either by the happenstance of a merge, ignored warnings, or analysis flakiness,
288
+
Should issues reach a branch, either by the happenstance of a merge, overridden warnings, or analysis flakiness,
289
289
reported findings may include those out of scope for the change set in a given PR.
290
-
Such incidents are little more than confusing toil for developers.
290
+
Such incidents would provide confusion and toil for developers, but could be quickly corrected, suppressed via configuration, or the offending commit reverted.
291
291
292
292
Changes to `test-infra` carry with them the potential for inconvenience,
293
293
should they introduce any instability to wider testing. While diligent review
@@ -344,11 +344,11 @@ As part of testing of our testing process, these tests should belong to `kuberne
344
344
#### Beta
345
345
- Analysis runs as a non-blocking presubmit check, warning developers of any findings in their changes.
346
346
347
-
#### Beta -> GA Graduation
347
+
#### Beta -> Stable Graduation
348
348
- Test is validated as running soundly at scale.
349
349
- No false positives, test failures, or other concerning issues are raised for 1-2 weeks.
350
350
351
-
#### GA
351
+
#### Stable
352
352
- Analysis runs as a blocking presubmit test.
353
353
354
354
<!--
@@ -536,7 +536,9 @@ communicated clearly such that developer correction can proceed as smoothly as p
536
536
During non-blocking release stages, this should include instructions for reporting false-positives if the PR author believes the findings are incorrect.
537
537
During blocking release stages, this should include instructions for escalating possible false-positives to avoid blocking other PRs and how to contact contributors with `/override` permissions to approve bypass of analysis.
538
538
539
-
Analyzer failures should be reported to [`go-flow-levee` Issues](http://github.com/google/go-flow-levee/issues).
539
+
Assistance in resolving issues identified by the analyzer can be found in the [Verification Tests Documentation](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/verify-tests.md)
540
+
541
+
Analyzer failures or bugs should be reported to [`go-flow-levee` Issues](http://github.com/google/go-flow-levee/issues).
540
542
541
543
## Implementation History
542
544
@@ -554,6 +556,7 @@ Major milestones might include:
554
556
* 2020-08-13: Initial Proposal Merged (#1936)
555
557
* 2020-09-10: Alpha state - Non-blocking, manually triggered test added to Prow (kubernetes/test-infra/pull/19181)
556
558
* 2020-12-16: Beta state - Prow test converted to automatically trigger (kubernetes/test-infra/pull/20164)
559
+
* 2020-02-11: Stable state - Prow test is now blocking (kubernetes/test-infra/pull/20836)
557
560
558
561
## Drawbacks
559
562
@@ -565,11 +568,10 @@ As a blocking test, there is a risk for developer toil in the event of any
565
568
false-positive or test flakiness.
566
569
This can be mitigated by any contributor with `/override` permissions.
567
570
568
-
Similarly, depending the order in which PRs are tested and merged,
569
-
it is theoretically possible that a merge would result in a violation reaching master.
570
-
If this is not properly handled, all PRs made at that time could present as
571
-
failing analysis.
572
-
This can be mitigated by consistent scans of `master` as a baseline.
571
+
In the unexpected event that Prow-bot merges two PR without first rebasing one to the HEAD of the target branch, it could be possible for an analysis violation to reach a given branch.
572
+
Like any other failing test that could reach `master`, all subsequent PRs would be blocked by spurious failure.
573
+
This could be mitigated if analysis first executes a baseline against the target branch without the changes introduced by a PR.
574
+
However, such additional testing has not proven necessary given the rarity of both such Prow-bot misbehavior and the sort of PR diffs necessary to introduce a new violation.
573
575
574
576
As this analysis depends on project-specific considerations of what constitutes
575
577
a secret or a sink, periodic review is required to ensure configuration is kept up-to-date.
@@ -587,8 +589,9 @@ information to express the idea and why it was not acceptable.
587
589
-->
588
590
589
591
[GitHub's CodeQL](https://securitylab.github.com/tools/codeql) includes taint analysis
590
-
and permits general SSA graph queries. I am currently investigating if it is viable for this usecase.
591
-
If so, integration with CodeQL / lgtm.com may be better than embedding analysis into the Prow testing.
592
+
and permits general SSA graph queries. While CodeQL may provide similar testing, [its own documentation](https://lgtm.com/help/lgtm/about-automated-code-review) indicates that any findings would not be blocking.
593
+
Given the intended scope of this KEP as a means to block potential security concerns, blocking on detection is of heightened interest.
594
+
CodeQL could be used to augment coverage in the future, however.
592
595
593
596
While other static analysis tools exist for Go, these tend towards more general linters.
594
597
[`gosec`](https://github.com/securego/gosec), for instance, can be used to detect
0 commit comments