aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/series-tracker
Commit message (Collapse)AuthorAgeFilesLines
* syz-cluster: refactor DockerfilesAleksandr Nogikh2025-12-311-8/+2
| | | | | | | Copy everything into the build context. Add a .dockerignore file to avoid copying the definitely unnecessary files and folders. Check copyrights presence in Dockerfiles.
* pkg/email/lore: wrap the Email objectAleksandr Nogikh2025-10-211-1/+1
| | | | | Wrapping the email.Email object will let us add lore-specific fields to it at a later point.
* syz-cluster/series-tracker: use simpler lore linksAleksandr Nogikh2025-07-232-1/+15
| | | | | Trim away angle brackets because otherwise email clients do not recognize the resulting links.
* syz-cluster: remember LKML series tagsAleksandr Nogikh2025-07-221-1/+1
| | | | | Sometimes the patch series directly hint at the kernel tree they should be applied to. Extract and remember this information.
* syz-cluster: update Go version in DockerfilesAleksandr Nogikh2025-07-142-2/+2
| | | | | For some reason, it does not download the newer toolchain versions automatically.
* pkg/vcs: extend ListCommitHashesAleksandr Nogikh2025-05-131-1/+4
| | | | | | | | | | Rename the method to LatestCommit and make it more flexible: 1) Return the commit date alongside the commit hash. 2) Rename the time filter to highlight that it's non-inclusive. 3) Make it possible to query the commits newer than the specified commit hash. It will let us poll lore archives more efficiently.
* syz-cluster: separate global env from global configAleksandr Nogikh2025-04-302-19/+11
| | | | | | | | | Environment variables are convenient for storing values like DB or GCS bucket names, but structured formats are more convenient for the actual service configuration. Separate global-config from global-config-env and add the functionality that queries and parses the config options.
* syz-cluster: make polled lore archives configurableAleksandr Nogikh2025-03-112-5/+27
|
* syz-cluster: make image prefix and tag configurableAleksandr Nogikh2025-02-261-1/+1
| | | | | | | | | Accept IMAGE_PREFIX and IMAGE_TAG parameters that allow to reuse the Makefile and a lot of k8s configurations both for local and prod environments. Refactor Makefile: define build-* and push-* rules, use templates to avoid repetition.
* syz-cluster/series-tracker: collect Cc addressesAleksandr Nogikh2025-02-192-2/+81
| | | | Extract Cc addresses for the processed patch series.
* syz-cluster: report series/sessions via APIAleksandr Nogikh2025-02-141-41/+31
| | | | | | | | | | | | | | | | | | | | | | In the previous version of the code, series-tracker was directly pushing patch series into the DB and the controller auto-created fuzzing sessions. Mediate these via the controller API instead. Instead of creating Session objects on the fly, pre-create them and let processor take them one by one. The approach has multiple benefits: 1) The same API might be used for the patch series sources other than LKML. 2) If the existence of Session objects is not a sign that we have started working on it, it allows for a more precise status display (not created/waiting/running/finished). 3) We could manually push older patch series and manually trigger fuzzing sessions to experimentally measure the bug detection rates. 4) The controller tests could be organized only by relying on the API offered by the component.
* syz-cluster: set resource limitsAleksandr Nogikh2025-02-041-0/+7
| | | | | It will be important once we deploy to GKE. For now, let's set just some limits, we'll adjust them over time.
* syz-cluster: use GCS as blob storageAleksandr Nogikh2025-02-041-5/+0
| | | | | | | We already use a GCS emulator for the dev environment, use a separate bucket for blobs. Keep using the local storage driver for unit tests.
* syz-cluster: initial codeAleksandr Nogikh2025-01-228-0/+505
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/*.