diff --git a/source/clear-linux/concepts/swupd-about.rst b/source/clear-linux/concepts/swupd-about.rst index 601fb155..99edfa1b 100644 --- a/source/clear-linux/concepts/swupd-about.rst +++ b/source/clear-linux/concepts/swupd-about.rst @@ -57,7 +57,6 @@ multiple compression formats, allowing :command:`swupd` to utilize the most efficiently compressed format for a |CL| system to minimize the cost to update. - Update integrity ---------------- @@ -98,5 +97,5 @@ For more information on bundles, visit: .. [1] The software update technology for |CL-ATTR| was first presented at the Linux Plumbers conference in 2012. -.. _Stateless: https://clearlinux.org/features/stateless .. _swupd man page: https://github.com/clearlinux/swupd-client/blob/master/docs/swupd.1.rst + diff --git a/source/clear-linux/guides/maintenance/architect-lifecycle.rst b/source/clear-linux/guides/maintenance/architect-lifecycle.rst new file mode 100644 index 00000000..5a7805df --- /dev/null +++ b/source/clear-linux/guides/maintenance/architect-lifecycle.rst @@ -0,0 +1,79 @@ +.. architect-lifecycle: + +Architect the life-cycle of |CL-ATTR| +##################################### + +This guide provides DevOps with a model to architect the life-cycle of a |CL| +derivative that integrates custom software and content using distinct +workflows. + +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 + +This guide provides the foundation of the recommended infrastructure. + +How it works +************ + +.. 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 ` to create a |CL|-based distro + +* Experience using :ref:`swupd ` for maintaining the |CL| + build environment + +* Familiarity with |CL| architecture and reuse of its content in releases + +Description +*********** + +Coordinated infrastructure can be deployed to automate the life-cycle +of your |CL| derivative. We divide deployment of this infrastucture in two +parts: *Content Workflow*; and *Release Workflow*, shown in Figure 1. Distro Factory manages the *Release Workflow* while capturing the requirements for +maintaining a long-term release cadence. + +.. figure:: figures/architect-lifecycle-1.png + :scale: 100% + :alt: |CL| maintenance life-cycle + + Figure 1: |CL| maintenance 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 `. 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 +************** + +Distro factory implements the *Release workflow*. To get started on a full implementation, visit |CL| `Distro factory documentation`_. + +.. _Distro factory documentation: 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 diff --git a/source/clear-linux/guides/maintenance/figures/architect-lifecycle-1.png b/source/clear-linux/guides/maintenance/figures/architect-lifecycle-1.png new file mode 100644 index 00000000..294d0f35 Binary files /dev/null and b/source/clear-linux/guides/maintenance/figures/architect-lifecycle-1.png differ diff --git a/source/clear-linux/guides/maintenance/figures/distro-factory-1.png b/source/clear-linux/guides/maintenance/figures/distro-factory-1.png new file mode 100644 index 00000000..49102bac Binary files /dev/null and b/source/clear-linux/guides/maintenance/figures/distro-factory-1.png differ diff --git a/source/clear-linux/guides/maintenance/maintenance.rst b/source/clear-linux/guides/maintenance/maintenance.rst index 8024c6a6..83408940 100644 --- a/source/clear-linux/guides/maintenance/maintenance.rst +++ b/source/clear-linux/guides/maintenance/maintenance.rst @@ -20,6 +20,7 @@ completed. kernel-modules mixer mixin + architect-lifecycle validate-signatures time hostname diff --git a/source/clear-linux/reference/reference.rst b/source/clear-linux/reference/reference.rst index b9f7a8ea..1940355b 100644 --- a/source/clear-linux/reference/reference.rst +++ b/source/clear-linux/reference/reference.rst @@ -18,3 +18,4 @@ features. compatible-kernels system-requirements image-types + openssh-server