aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/pkg/workflow
Commit message (Collapse)AuthorAgeFilesLines
* syz-cluster: run KMSAN fuzzing in parallel to KASANAleksandr Nogikh2025-10-071-2/+2
| | | | There's no reason to do first one and then another.
* syz-cluster: prefix fuzzing-related stepsAleksandr Nogikh2025-10-011-4/+4
| | | | | Specify a track name for each fuzzing campaign. It will help distinguish them once there are multiple ones.
* syz-cluster: pass fuzz config to the fuzz step as jsonAleksandr Nogikh2025-10-011-14/+16
| | | | | | Instead of passing the values individually, save the FuzzConfig object as JSON and pass it as an artifact. This will simplify adding more new fields.
* syz-cluster: support multiple fuzz tasksAleksandr Nogikh2025-10-011-1/+2
| | | | | Adjut the workflow template and the API to run multiple fuzzing campaigns as a part of single patch series processing.
* syz-cluster: reorder workflow stepsAleksandr Nogikh2025-10-011-18/+22
| | | | | | | | First build and boot test the base kernel, then proceed to the patched kernel. It prevents us from reporting build/boot errors not introduced by the patch.
* syz-cluster: skip coverage checks for some fuzz targetsAleksandr Nogikh2025-08-121-0/+2
| | | | | | | | There are cases when we do not need the "if the patched code is not reached within 30 minutes, abort fuzzing" check. This is e.g. the case of mm/ code that is not fully instrumented by KCOV.
* syz-cluster: always upload triage logsAleksandr Nogikh2025-07-281-1/+1
| | | | | | | | We used to only upload them on triage failure, but let's improve the inspectability even for successfully finished triage jobs. Slightly refactor the controller API around the triage result submission.
* syz-cluster: download latest corpuses from syzbotAleksandr Nogikh2025-03-111-0/+2
|
* syz-cluster: build latest revisions of base kernelsAleksandr Nogikh2025-02-181-0/+4
| | | | | | Once a new kernel revision becomes available, build it to figure out whether it's buildable. This information will be used in the triage step to figure out the right base kernel revision.
* syz-cluster: simplify the triage resultAleksandr Nogikh2025-02-181-24/+3
| | | | | | | | | | | Instead of giving several base commits to try, make the more concrete decision at the triage step and return only one option. This relies on the triager always having the information about the current state of the each tree, which will be added in the following commit. As the result, the workflow script becomes much simpler.
* syz-cluster: configure network policiesAleksandr Nogikh2025-02-171-0/+3
| | | | | Enable egress traffic for all nodes. Configure ingress traffic on the per-need basis.
* syz-cluster: tune workflow parametersAleksandr Nogikh2025-02-042-1/+8
| | | | | Poll the status more often. Configure auto-deletion of pods and workflows.
* syz-cluster: integrate with syz-diffAleksandr Nogikh2025-02-041-12/+17
| | | | Run differential fuzzing as a workflow step.
* syz-cluster: explicitly set the skip reasonAleksandr Nogikh2025-01-271-3/+3
| | | | | | | | It lets immediately distinguish the series that were actually processed from the series that were skipped early on. By storing a string, we also make it apparent why exactly the series was skipped.
* syz-cluster: perform a patched kernel boot testAleksandr Nogikh2025-01-221-0/+24
| | | | Report the findings only for the boot test of the patched kernel.
* syz-cluster: add a boot testAleksandr Nogikh2025-01-221-3/+29
| | | | Run a smoke test on the base kernel build and report back the results.
* syz-cluster: remove submit-testAleksandr Nogikh2025-01-221-30/+8
| | | | | | | It's not necessary - submit the results from the individual steps instead. Report patched kernel build failures as findings.
* syz-cluster: initial codeAleksandr Nogikh2025-01-223-0/+320
The basic code of a K8S-based cluster that: * Aggregates new LKML patch series. * Determines the kernel trees to apply them to. * Builds the basic and the patched kernel. * Displays the results on a web dashboard. This is a very rudimentary version with a lot of TODOs that provides a skeleton for further work. The project makes use of Argo workflows and Spanner DB. Bootstrap is used for the web interface. Overall structure: * syz-cluster/dashboard: a web dashboard listing patch series and their test results. * syz-cluster/series-tracker: polls Lore archives and submits the new patch series to the DB. * syz-cluster/controller: schedules workflows and provides API for them. * syz-cluster/kernel-disk: a cron job that keeps a kernel checkout up to date. * syz-cluster/workflow/*: workflow steps. For the DB structure see syz-cluster/pkg/db/migrations/*.