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
|
fmn/index
|
||||||
badges/index
|
badges/index
|
||||||
|
kerneltest/index
|
||||||
|
|
||||||
Completed review
|
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