F24 Self Contained Change: Product Definition Center

Jan Kurik jkurik at redhat.com
Wed Nov 4 03:21:31 UTC 2015


= Proposed Self Contained Change: Product Definition Center =
https://fedoraproject.org/wiki/Changes/ProductDefinitionCenter

Change owner(s): Ralph Bean <rbean at redhat dot com>

The Product Definition Center (PDC) is a webapp and API designed for
storing and querying product metadata. We want to stand up an instance
in Fedora Infrastructure and automatically populate it with data from
our existing releng tools/processes. It will enable us to develop more
sane tooling down the road for future releases.

== Detailed Description ==
We need something more sophisticated than we have now to model releng
processes. Right now, we have a collection of shell scripts, python
bits, and koji tasks that all know "how to do" whatever it is that
needs to be done. Whatever artifacts they produce, is what we produce.

When we introduced new types of artifacts (server/cloud/workstation,
vagrant, docker, atomic, etc..) as requirements for releng in the past
few years, we started to strain the existing processes. Those scripts
became much more complicated and difficult to debug.

Long term, we would like to move to a more structured architecture for
releng workflow, one that uses basic software engineering paradigms,
like MVC. To start on that journey, we're looking to deploy something
which can serve just as the M there (the Model).

With such a thing, we could rewrite some of our scripts to behave
dynamically in response to state of the model. In the best case
scenario (read: utopia), we would simply define a new variant of a
deliverable in the model, and our tools would produce it. (Of course,
things will involve more work than that).

== Scope ==
Note that this change should not affect any other development efforts.
It does not require new instrumentation of any of our existing tools
and so, should it fail as a project, there is no need for a
contingency plan to back things out -- we can just abandon it.

* Proposal owners:
  - Set up a devel instance of PDC (already done here).
  - Write pdc-updater, the daemon that updates PDC with data from our
existing toolchain (via fedmsg).
  - Write an audit script that checks that PDC's data is consistent.
  - Set up and deploy staging and production instances of PDC and
pdc-updater in fedora-infra.
  - Run the audit scripts to ensure that PDC's knowledge is consistent
with the actual state of our release infra.
  - Install the audit script in cron (or something) and attach it to a
nagios alert, so we're made aware of inconsistencies.
* Other developers: N/A (not a System Wide Change)
* Release engineering: N/A (not a System Wide Change)
* List of deliverables: N/A (not a System Wide Change)
* Policies and guidelines: N/A (not a System Wide Change)
* Trademark approval: N/A (not needed for this Change)

-- 
Jan Kuřík
Platform & Fedora Program Manager
Red Hat Czech s.r.o., Purkynova 99/71, 612 45 Brno, Czech Republic
_______________________________________________
devel-announce mailing list
devel-announce at lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel-announce


More information about the devel mailing list