modularity / system-profile

Created 7 years ago
Maintained by asamalik
An early proposal/strawman of a system profile.
Members 1
Adam Samalik committed 7 years ago

System profile

system_profile.yaml represents how a system profile could look like.

Upgrade paths example

The picture presents a LAMP stack in three module streams. Following are examples of ModuleInstallation entries representing a module installed on a system at the time "present", marked on the picture, and their respective upgrade paths described with capital letters matching each module.

![](https://pagure.io/modularity/system-profile/raw/master/f/module-streams.png =300x300)

Example 1: LAMP with specific stream

This will be probably the most used way to install modules.

document: ModuleInstallation
version: 1
metadata:
  description: I want a particular branch of lamp.
data:
  selector:
    name: lamp
    stream: ipsum

Upgrade path: B D G

Example 2: LAMP with PHP 6

document: ModuleInstallation
version: 1
metadata:
  description: I need anything with php 6.
data:
  selector:
    api:
      rpms:
        php: "6"

Upgrade path: B D E F H

Example 3: LAMP with PHP 6.0

document: ModuleInstallation
version: 1
metadata:
  description: I need anything with php 6.0, a more precise choice.
data:
  selector:
    name: lamp
    api:
      rpms:
        php: "6.0"

Upgrade path: B D E G

Example 4: LAMP with PHP 6 and httpd 2.2

document: ModuleInstallation
version: 1
metadata:
  description: I need anything with php 6.0 and httpd 2.2.
data:
  selector:
    name: lamp
    api:
      rpms:
        php: "6"
        httpd: "2.2"

Upgrade path: A C E