Files
R Primus 9095e06aad https://github.com/clearlinux/clear-linux-documentation/issues/857: F… (#885)
* https://github.com/clearlinux/clear-linux-documentation/issues/857: Fix assorted typos

* Update for changes made since initial cloning of repository

* Fix case of word
2019-10-28 16:32:46 -07:00

79 lines
2.7 KiB
ReStructuredText

.. _architect-lifecycle:
Architect the life-cycle of |CL-ATTR|
#####################################
This guide describes the basic, recommended infrastructure and workflow for
maintaining a |CL-ATTR| derivative.
.. contents::
:local:
:depth: 1
Prerequisites
*************
* A repository with software RPM artifacts and a CI/CD system with a |CL|
machine for building `mixes`
* Experience using :ref:`mixer <mixer>` to create a |CL|-based distro
* Experience using :ref:`swupd <swupd-guide>` for maintaining the |CL|
build environment
* Familiarity with |CL| architecture and reuse of its content in releases
Description
***********
Maintaining a |CL| derivative requires:
* Monitoring upstream |CL| for new releases
* Building software packages and staging
* Employing CI/CD automation for building releases
* Integrating Quality Assurance for testing and validation
Coordinated infrastructure is deployed to automate the life-cycle
of your |CL| derivative. We divide deployment of this infrastructure in two
parts: *Content Workflow*; and *Release Workflow*, shown in Figure 1.
.. figure:: figures/architect-lifecycle-1.png
:scale: 100%
:alt: Architect the life-cycle
Figure 1: Architect the life-cycle
Content Workflow
****************
The Content Workflow (Figure 1) orchestrates the processes used to manage
the creation of content for the distribution. This includes everything from
detecting a new release in a custom software repository to generating RPM
package files. The RPM files serve as intermediary artifacts that track software
dependencies and provide file-level data consumed in a Release Workflow. The
`Watcher Pipeline`_ checks |CL| and a content provider, such as Koji, to
determine if a new release is necessary.
Release Workflow
****************
The Release Workflow (Figure 1) gathers the content of the RPMs and
ensures it can be consumed by :ref:`mixer <mixer>`. A content web server
hosts the |CL| derivative, to which targets connect for updating their OSes.
As an integral part of this toolchain, the `Release Pipeline`_ enables these
derivatives to incorporate |CL| content into their own custom
content. The Watcher Pipeline triggers the Release Pipeline to create
new releases.
Implementation
**************
The |CL| Distro Factory manages the Release Workflow. For detailed information
about Distro Factory deployment, refer to the `clr-distro-factory`_ GitHub\* repo.
.. _clr-distro-factory: https://github.com/clearlinux/clr-distro-factory/wiki#clear-linux-distro-factory
.. _Release Pipeline: https://github.com/clearlinux/clr-distro-factory/wiki/Release
.. _Watcher Pipeline: https://github.com/clearlinux/clr-distro-factory/wiki/Watcher