Initial version of kerneltest ARC investigation
This is an initial version of the ARC investigation document for kerneltest initiative. It contains: * index document with info, requirements for the project and what this initiative needs to address * repository enhancement investigation - what is missing in the repository itself * Complete rewrite stub - needs to be updated * V2 reuse investigation - thorough investigation what is available in current codebase, which wasn't released Signed-off-by: Michal Konečný <mkonecny@redhat.com>
This commit is contained in:
parent
59d2375847
commit
ed89fe6173
5 changed files with 171 additions and 0 deletions
|
@ -11,6 +11,7 @@ Drafts
|
|||
|
||||
fmn/index
|
||||
badges/index
|
||||
kerneltest/index
|
||||
|
||||
Completed review
|
||||
----------------
|
||||
|
|
59
docs/kerneltest/continue_from_v2.rst
Normal file
59
docs/kerneltest/continue_from_v2.rst
Normal file
|
@ -0,0 +1,59 @@
|
|||
.. _continue_from_v2:
|
||||
|
||||
Use v2 Code Of kerneltest Application
|
||||
=====================================
|
||||
|
||||
There is already a work in progress rewrite of kerneltest application started by Jeremy Cline,
|
||||
which was never finished. This document is investigating if this option is feasible
|
||||
and we should continue on the code already written.
|
||||
From meeting with Justin Forbes this code is not 100% ready, which is the reason it was never
|
||||
been released.
|
||||
|
||||
What is in v2
|
||||
-------------
|
||||
|
||||
* Some unit tests in `kerneltest/tests` (not covering everything,
|
||||
but at least part of the code is covered) using tox
|
||||
* API calls for `/api/v1/results`
|
||||
|
||||
* GET method to retrieve tests information
|
||||
* POST method to add new test run to db
|
||||
(authentication scopes doesn't seem to be set correctly)
|
||||
* Sending Fedora message when adding a new test run
|
||||
|
||||
* Basic OIDC implementation using `flask_oidc` library
|
||||
* Configuration file loading and defaults
|
||||
* Forms for updating/creating release and submitting logs are in place
|
||||
* Web routes implemented
|
||||
|
||||
* `/index`
|
||||
* `/login`
|
||||
* `/logout`
|
||||
* `/release/<release>` - information about specific fedora release
|
||||
* `/kernel/<kernel>` - information about specific kernel version
|
||||
* `/results/<test_run_id>` - information about specific test
|
||||
* `/upload` - test result uploading
|
||||
* `/stats`
|
||||
* `/admin/new` - add new release (does emit fedora message)
|
||||
* `/admin/<release>/edit` - edit existing release (does emit fedora message)
|
||||
|
||||
* DB models for Test, TestRun and Release
|
||||
|
||||
What is missing in v2
|
||||
---------------------
|
||||
|
||||
* Documentation
|
||||
* No support for uploading logs yet
|
||||
* Web interface revitalization
|
||||
* Code itself more than 3 years old, there could be some issue with newer libraries
|
||||
|
||||
The Good Points
|
||||
---------------
|
||||
|
||||
1. Not starting from scratch = less work
|
||||
|
||||
|
||||
The Bad points
|
||||
--------------
|
||||
|
||||
1. Make familiar with existing code = more time needed
|
18
docs/kerneltest/enhancement_of_repository.rst
Normal file
18
docs/kerneltest/enhancement_of_repository.rst
Normal file
|
@ -0,0 +1,18 @@
|
|||
.. _enhancement_of_repository:
|
||||
|
||||
Enhancement of dev env for kerneltest
|
||||
=====================================
|
||||
|
||||
There is plenty of tech debt regarding the kerneltest repository. This document
|
||||
will try to address all the current tech debt tied to kerneltest repository.
|
||||
|
||||
Investigation
|
||||
-------------
|
||||
|
||||
* CI - Currently using Travis CI, which is no longer working. Recommending to switch
|
||||
to either GitHub action or use Zuul CI
|
||||
* Development environment - There is a vagrant using F25, needs to be updated (
|
||||
issues encountered with ansible when trying to just use newer Fedora version)
|
||||
* Automatic dependency updater - recommending renovate
|
||||
* When moving to OpenShift we can consolidate adding automatic deployment with
|
||||
GitHub webhooks
|
70
docs/kerneltest/index.rst
Normal file
70
docs/kerneltest/index.rst
Normal file
|
@ -0,0 +1,70 @@
|
|||
kerneltest
|
||||
==========
|
||||
|
||||
Purpose
|
||||
-------
|
||||
|
||||
This investigation's goal is to address tech debt of kerneltest application.
|
||||
kerneltest applications is used by Fedora QA for submitting test logs for
|
||||
kernel builds in Fedora. It also provides web interface for users to access
|
||||
and upload logs.
|
||||
Currently there is a partial rewrite v2 in repository, which is not functionality
|
||||
complete and was never released.
|
||||
|
||||
Resources
|
||||
---------
|
||||
|
||||
* kerneltest repo: https://github.com/jmflinuxtx/kerneltest-harness
|
||||
* kerneltest web: https://apps.fedoraproject.org/kerneltest/
|
||||
* kerneltest ansible: https://pagure.io/fedora-infra/ansible/blob/main/f/roles/kerneltest
|
||||
* kerneltest wiki: http://fedoraproject.org/wiki/KernelTestingInitiative
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
* Be able to upload logs anonymously, authenticated, super user
|
||||
* Be able to view logs on front page showing super user ones
|
||||
* When clicking on the release it should show all logs for a release
|
||||
* Stats: https://apps.fedoraproject.org/kerneltest/stats (currently stored in postgres)
|
||||
* Logs needs to be saved in persistent volume
|
||||
* Send Fedora Messages for badges
|
||||
* Size limitation on the uploaded logs (currently hardcoded in code)
|
||||
|
||||
|
||||
What Needs To Be Addressed?
|
||||
---------------------------
|
||||
|
||||
* Update authentication library
|
||||
* Switch CI
|
||||
* fedmsg -> fedora messaging (some v2 parts could be used)
|
||||
* python2 -> python3
|
||||
* migration to OpenShift
|
||||
* Documentation - Fedora QA has some
|
||||
* Users don't receive any badges
|
||||
* Update development environment
|
||||
* Web interface (should be revitalized)
|
||||
|
||||
Investigation
|
||||
-------------
|
||||
|
||||
Here is the list of ideas/things we discussed/looked at:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
rewrite_of_kerneltest_app
|
||||
continue_from_v2
|
||||
enhancement_of_repository
|
||||
|
||||
|
||||
Conclusions
|
||||
-----------
|
||||
|
||||
|
||||
|
||||
Proposed Roadmap
|
||||
----------------
|
||||
|
||||
* Step 1 - Address tech debt in kerneltest application
|
||||
* Step 2 - ???
|
||||
* Step 3 - Profit!
|
23
docs/kerneltest/rewrite_of_kerneltest_app.rst
Normal file
23
docs/kerneltest/rewrite_of_kerneltest_app.rst
Normal file
|
@ -0,0 +1,23 @@
|
|||
.. _rewrite_of_kerneltest_app:
|
||||
|
||||
Complete Rewrite Of kerneltest Application
|
||||
==========================================
|
||||
|
||||
One of the options is to completely rewrite the current solution and start from scratch.
|
||||
This will allow us to address all the requirements and get rid of all the existing tech debt.
|
||||
We can also reuse some code from v2 rewrite.
|
||||
|
||||
|
||||
The Good Points
|
||||
---------------
|
||||
|
||||
1. Good knowledge of the codebase = easier to do any future changes
|
||||
2. More freedom in implementation
|
||||
3. It will be easier to write documentation
|
||||
|
||||
|
||||
The Bad points
|
||||
--------------
|
||||
|
||||
1. More work for us
|
||||
2. Existing code will be thrown away
|
Loading…
Add table
Add a link
Reference in a new issue