aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/dashboard
Commit message (Collapse)AuthorAgeFilesLines
* syz-cluster: show series versions in the dashboardPimyn Girgis2026-01-082-1/+16
| | | | | | Display a list of other versions of the same series on the series details page. Fetch all series sharing the same title and render them in a new "Series Versions" table, allowing navigation between different versions of a patch series.
* syz-cluster: add filtering by series and patch namePimyn Girgis2026-01-082-0/+5
| | | | | Update SeriesFilter in pkg/db to include PatchName and SeriesName fields, implement the SQL logic to filter by these fields case-insensitively, and expose these filters in the dashboard UI.
* all: remove unused nolint directivesDmitry Vyukov2026-01-021-1/+0
|
* syz-cluster: refactor DockerfilesAleksandr Nogikh2025-12-311-7/+5
| | | | | | | Copy everything into the build context. Add a .dockerignore file to avoid copying the definitely unnecessary files and folders. Check copyrights presence in Dockerfiles.
* syz-cluster: add pkg/osutil to Docker containersAleksandr Nogikh2025-12-301-0/+1
| | | | It's become necessary after #6533.
* syz-cluster: basic support for finding invalidationAleksandr Nogikh2025-12-011-0/+1
| | | | | | Add some initial #syz invalid support to syz-cluster. For now, mark all findings as invalid and don't display that such series have findings on the web dashboard.
* syz-cluster: add link to download the whole seriesAleksandr Nogikh2025-10-273-1/+54
| | | | | This will simplify debugging of mistriaged patch series that ended up either not applying anywhere or ended up with a build error.
* syz-cluster: extend dashboard testingAleksandr Nogikh2025-10-172-1/+8
| | | | | | | Check a few more URLs. Add a TODO about the problem around template error handling - if we stream the output directly to w, we cannot set the 500 status if a problem happens somewhere mid-template.
* syz-cluster: display the reports count graphAleksandr Nogikh2025-10-172-0/+21
| | | | | | Apart from just the total number of findings (some of which may end up being non-reported), also display specifically the number of reports that have found their way to the mailing lists.
* syz-cluster: explain graphs on the stats pageAleksandr Nogikh2025-08-281-5/+12
| | | | | Add more detailed graph descriptions. Move "Click and drag to zoom into a time range" tips below the graphs.
* syz-cluster: display the session processing timeAleksandr Nogikh2025-08-201-1/+3
|
* syz-cluster: improve the status distribution graphAleksandr Nogikh2025-08-191-2/+4
| | | | Display the share of sessions that have failed and skipped tests.
* syz-cluster/dashboard: don't smooth stats graphsAleksandr Nogikh2025-08-141-1/+0
| | | | They look more natural without it.
* syz-cluster: display statisticsAleksandr Nogikh2025-08-143-8/+158
| | | | | | | Add a web dashboard page with the main statistics concerning patch series fuzzing. Improve the navigation bar on top of the page.
* syz-cluster/dashboard: html escape modal contentAleksandr Nogikh2025-08-141-1/+1
| | | | Otherwise we sometimes display broken data.
* syz-cluster: always upload triage logsAleksandr Nogikh2025-07-281-3/+3
| | | | | | | | 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: update Go version in DockerfilesAleksandr Nogikh2025-07-141-1/+1
| | | | | For some reason, it does not download the newer toolchain versions automatically.
* syz-cluster: upload and share build config and logAleksandr Nogikh2025-07-144-8/+46
|
* syz-cluster: generate web dashboard URLs for reportsAleksandr Nogikh2025-07-142-5/+52
| | | | | Take web dashboard URL from the config and use it to generate links for logs, reproducers, etc.
* syz-cluster: make reports more detailedAleksandr Nogikh2025-07-141-1/+1
| | | | | | | Fill in build details per each finding and display that information in the report email. Extend the test that verifies how api.SessionReport is filled.
* syz-cluster: make the displayed title configurableAleksandr Nogikh2025-07-083-5/+29
|
* syz-cluster: save and display reproducers for findingsAleksandr Nogikh2025-06-232-1/+19
|
* syz-cluster: set proper Service typesAleksandr Nogikh2025-05-211-1/+1
| | | | | | | | As the cluster is private, use the ClusterIP type to only request a cluster-internal IP. Since web dashboard will need to be exposed via Load Balancer, set the necessary metadata annotation.
* syz-cluster: separate global env from global configAleksandr Nogikh2025-04-301-1/+1
| | | | | | | | | 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: display the skipped statusAleksandr Nogikh2025-04-151-0/+1
| | | | | If the series was skipped during triage, show that in the status and let users filter by it.
* syz-cluster: share and display triage logsAleksandr Nogikh2025-04-112-1/+18
| | | | For now, only share it for the skipped series.
* syz-cluster/dashboard: share test step artifactsAleksandr Nogikh2025-04-112-1/+18
| | | | If the test artifacts are present, let the user download them.
* syz-cluster: rename the Submit buttonAleksandr Nogikh2025-04-101-1/+1
| | | | Filter is a more appropriate name.
* syz-cluster: filter by series with findingsAleksandr Nogikh2025-04-102-4/+12
| | | | Add a checkbox to only display the series for which there are findings.
* syz-cluster: display the number of findings per seriesAleksandr Nogikh2025-04-101-1/+1
| | | | It will help identify the series to highlight.
* syz-cluster: add paginationAleksandr Nogikh2025-04-083-4/+56
| | | | | Add simple Previous/Next navigation for the list of series. For now, just rely on SQL's LIMIT/OFFSET functionality.
* syz-cluster: filter by the session statusAleksandr Nogikh2025-04-083-23/+40
| | | | Update the Web UI to have a filter form on top of the index page.
* syz-cluster: display and filter by Cc listAleksandr Nogikh2025-03-113-3/+17
| | | | | For each series, display the Cc'd email list and let users filter the patch series list by those addresses.
* syz-cluter: define a service account for servicesAleksandr Nogikh2025-02-261-0/+1
| | | | | For minikube, it changes nothing, but it will make it easier to plug it into GKE.
* 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: report session resultsAleksandr Nogikh2025-02-141-1/+1
| | | | | | | | | | | | Provide an API to set up the reporting of finished sessions for which syz-cluster collected reportable findings. The actual sending of the results is to be done in a separate component that would: 1) Call Next() to get the next report to send. 2) Call Confirm() to confirm that the report has been sent. 3) Call Upstream() if the report has been moderated and needs to be sent to e.g. public mailing lists.
* syz-cluster: report series/sessions via APIAleksandr Nogikh2025-02-143-9/+21
| | | | | | | | | | | | | | | | | | | | | | 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-042-7/+1
| | | | | | | 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/dashboard: unify http handlersAleksandr Nogikh2025-02-042-82/+76
| | | | | Convert errors to HTTP statuses in a uniform way. Move http routes construction from main.go to handler.go.
* syz-cluster: store session test logsAleksandr Nogikh2025-02-043-1/+19
| | | | Record the logs from the build and fuzzing steps.
* syz-cluster/dashboard: display logs and reports of findingsAleksandr Nogikh2025-02-043-1/+29
|
* syz-cluster/dashboard: add a dynamic modal windowAleksandr Nogikh2025-01-274-1/+48
| | | | | For now, use it to display the raw patch series content. Later it will be used to display the details about findings and builds.
* syz-cluster: use Request.Context()Aleksandr Nogikh2025-01-271-7/+4
|
* syz-cluster: explicitly set the skip reasonAleksandr Nogikh2025-01-272-3/+21
| | | | | | | | 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: add a boot testAleksandr Nogikh2025-01-221-7/+2
| | | | Run a smoke test on the base kernel build and report back the results.
* syz-cluster/dashboard: unexport DashboardHandlerAleksandr Nogikh2025-01-222-9/+9
|
* syz-cluster: add support for findingsAleksandr Nogikh2025-01-222-7/+52
| | | | | Findings are crashes and build/boot/test errors that happened during the patch series processing.
* syz-cluster: initial codeAleksandr Nogikh2025-01-2212-0/+427
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/*.