This guide provides DevOps with a model to architect the life-cycle of a Clear Linux OS derivative that integrates custom software and content using distinct workflows.
Maintaining a Clear Linux OS derivative requires:
- Monitoring upstream Clear Linux OS 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.
- A repository with software RPM artifacts and a CI/CD system with a Clear Linux OS machine for building mixes
- Experience using mixer to create a Clear Linux OS-based distro
- Experience using swupd for maintaining the Clear Linux OS build environment
- Familiarity with Clear Linux OS architecture and reuse of its content in releases
Coordinated infrastructure is deployed to automate the life-cycle of your Clear Linux OS 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.
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 Clear Linux OS and a content provider, such as Koji, to determine if a new release is necessary.
The Release Workflow (Figure 1) gathers the content of the RPMs and ensures it can be consumed by mixer. A content web server hosts the Clear Linux OS derivative, to which targets connect for updating their OSes. As an integral part of this toolchain, the Release Pipeline enables these derivatives to incorporate Clear Linux OS content into their own custom content. The Watcher Pipeline triggers the Release Pipeline to create new releases.