Added PDC
This commit is contained in:
parent
646a390c9a
commit
5e02768c9f
2 changed files with 82 additions and 0 deletions
81
docs/pdc/index.rst
Normal file
81
docs/pdc/index.rst
Normal file
|
@ -0,0 +1,81 @@
|
|||
PDC
|
||||
========================
|
||||
|
||||
PDC replacement research
|
||||
========================
|
||||
|
||||
`PDC <https://pdc.fedoraproject.org/>`_ is repository and API for storing and querying metadata related to packages and product releases.
|
||||
We rely on information in it to produce Fedora releases, manage retirement of packages and more.
|
||||
|
||||
Our current deployment running on https://pdc.fedoraproject.org/.
|
||||
|
||||
It uses https://github.com/product-definition-center/product-definition-center/tree/python-pdc-1.9.0-2
|
||||
|
||||
The software is orphaned by it's original maintainers with version requiring EOL version of python and EOL version of Django Framework,
|
||||
this means we need to upgrade it or replace it.
|
||||
|
||||
Current users of PDC
|
||||
========================
|
||||
|
||||
Based on conversations with coleagues from Releng and Fedora QA,
|
||||
and cursory investigation of our repositories we use pdc API or through CLI client in:
|
||||
|
||||
- releng scripts
|
||||
- fedpkg
|
||||
- pungi
|
||||
- fedfind
|
||||
- bodhi
|
||||
- pagure
|
||||
- modulebuildservice
|
||||
- mirrormanager scripts in ansible-repo
|
||||
- ODCS
|
||||
- new hotness
|
||||
- fedora messaging
|
||||
- osbs client
|
||||
|
||||
As a part of this investigation we want to create exhaustive list, with analysis of the actual PDC use-case in each application.
|
||||
|
||||
Solutions to be explored
|
||||
========================
|
||||
|
||||
We have sevral options:
|
||||
|
||||
- Upgrade PDC to supported version of Django and take over the maintenance
|
||||
- Use a database with a simple api gateway like Postgrest or Prest in front of it
|
||||
- Create a new bespoke application that better suits our needs
|
||||
- Incorporate the functionality we need to other applications we already have (Pagure/Bodhi/Datagrepper)
|
||||
|
||||
Preliminary notes on maintianing current PDC
|
||||
--------------------------------
|
||||
|
||||
This would require significant investment, as it would require several upgrades of underlying software
|
||||
and probably even a Python 2.x to 3.x migration as well.
|
||||
|
||||
Moreover, based on the discussions within CPE:
|
||||
|
||||
- current PDC is more complex than we need
|
||||
- we want to avoid maintaining another application
|
||||
|
||||
Because of this, we won't focus on this avenue of exploration.
|
||||
|
||||
Preliminary notes on database-derived api for PDC
|
||||
-------------------------------------
|
||||
|
||||
Based on our discussions, we mostly use simple CRUD API,
|
||||
which means that a new database-model that would better suit our needs
|
||||
could be all we need to migrate.
|
||||
|
||||
The biggest advantage of this approach is using off the shelf service,
|
||||
where only thing we need to maintain is the database-model, clients,
|
||||
and keeping the software up-to-date.
|
||||
|
||||
We have chosen two candidates to investigate based on the fact,
|
||||
we probably want to utilize Postgresql on the backend:
|
||||
|
||||
- https://postgrest.org/en/stable/
|
||||
- https://docs.prestd.com/
|
||||
|
||||
Things to investigate:
|
||||
- database model that would suit the needs of our current users
|
||||
- migration path (data import?)
|
||||
- roles and integration with our account system
|
Loading…
Add table
Add a link
Reference in a new issue