Skip to content

Commit

Permalink
Merge pull request #822 from openSUSE/split_products
Browse files Browse the repository at this point in the history
Split products
  • Loading branch information
jreidinger committed Oct 31, 2023
2 parents 8ef73b0 + 7be5524 commit e605eb5
Show file tree
Hide file tree
Showing 23 changed files with 609 additions and 684 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ci-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ jobs:
run: podman exec agama bash -c "cd /checkout; ./setup-service.sh"

- name: Set a testing Agama configuration
# copy a simplified ALP config file, it skips the product selection at the beginning
run: podman exec agama bash -c "cp /checkout/playwright/config/agama.yaml /checkout/service/etc/agama.yaml"
# use just one product, it skips the product selection at the beginning
run: podman exec agama bash -c "rm /checkout/products.d/{leap16,ALP-Dolomite}.yaml"

- name: Show NetworkManager log
run: podman exec agama journalctl -u NetworkManager
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/obs-staging-products.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Submit agama-products

on:
# runs on pushes targeting the default branch
push:
branches:
- master
paths:
# run only when a Rust source is changed
- products.d/**

jobs:
update_staging:
uses: ./.github/workflows/obs-staging-shared.yml
# pass all secrets
secrets: inherit
with:
project_name: systemsmanagement:Agama:Staging
package_name: agama-products-opensuse
103 changes: 103 additions & 0 deletions products.d/ALP-Dolomite.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
id: ALP-Dolomite
name: SUSE ALP Dolomite
description: 'SUSE ALP Dolomite is a minimum immutable OS core, focused on
security to provide the bare minimum to run workloads and services as
containers or virtual machines.'
software:
installation_repositories:
- url: https://updates.suse.com/SUSE/Products/ALP-Dolomite/1.0/x86_64/product/
archs: x86_64
- url: https://updates.suse.com/SUSE/Products/ALP-Dolomite/1.0/aarch64/product/
archs: aarch64
- url: https://updates.suse.com/SUSE/Products/ALP-Dolomite/1.0/s390x/product/
archs: s390
- url: https://updates.suse.com/SUSE/Products/ALP-Dolomite/1.0/ppc64le/product/
archs: ppc

mandatory_patterns:
- alp_base_zypper
- alp_cockpit
- alp_hardware
optional_patterns: null # no optional pattern shared
mandatory_packages:
- package: device-mapper # Apparently needed if devices at /dev/mapper are used at boot (eg. FDE)
- package: fde-tools # Needed for FDE with TPM, hardcoded here temporarily
archs: aarch64, x86_64
- package: libtss2-tcti-device0
- package: ppc64-diag # Needed for hardware-based installations
archs: ppc64
optional_packages: null
base_product: ALP-Dolomite

security:
tpm_luks_open: true
lsm: selinux
available_lsms:
# apparmor:
# patterns:
# - apparmor
selinux:
patterns:
- alp_selinux
policy: enforcing
none:
patterns: null

storage:
space_policy: delete
encryption:
method: luks2
pbkd_function: pbkdf2
volumes:
- "/"
volume_templates:
- mount_path: "/"
filesystem: btrfs
btrfs:
snapshots: true
read_only: true
default_subvolume: "@"
subvolumes:
- path: root
- path: home
- path: opt
- path: srv
- path: boot/writable
- path: usr/local
- path: var
copy_on_write: false
# Architecture specific subvolume
- path: boot/grub2/arm64-efi
archs: aarch64
- path: boot/grub2/i386-pc
archs: x86_64
- path: boot/grub2/powerpc-ieee1275
archs: ppc,!board_powernv
- path: boot/grub2/s390x-emu
archs: s390
- path: boot/grub2/x86_64-efi
archs: x86_64
size:
auto: true
outline:
required: true
filesystems:
- btrfs
snapshots_configurable: false
auto_size:
base_min: 5 GiB
base_max: 25 GiB
max_fallback_for:
- "/var"
- mount_path: "/var"
filesystem: btrfs
mount_options:
- "x-initrd.mount"
- "nodatacow"
size:
auto: false
min: 5 GiB
outline:
required: false
filesystems:
- btrfs
5 changes: 5 additions & 0 deletions products.d/agama-products-opensuse.changes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-------------------------------------------------------------------
Mon Oct 30 14:38:51 UTC 2023 - Josef Reidinger <jreidinger@suse.com>

- Initial split of products (gh#openSUSE/agama#602,
gh#openSUSE/agama#822)
66 changes: 66 additions & 0 deletions products.d/agama-products-opensuse.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#
# spec file for package agama-products-opensuse
#
# Copyright (c) 2023 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

Name: agama-products-opensuse
# This will be set by osc services, that will run after this.
Version: 0
Release: 0
Summary: Definition of openSUSE products for the Agama installer
License: GPL-2.0-only
Url: https://github.com/opensuse/agama
BuildArch: noarch
Source0: tumbleweed.yaml
Source1: ALP-Dolomite.yaml
Source2: leap16.yaml

%description
Products definition for Agama installer. This one is for opensuse products.

%package -n agama-products-ALP-Dolomite
# This will be set by osc services, that will run after this.
Version: 0
Release: 0
Summary: Definition of Dolomite product for the Agama installer
License: GPL-2.0-only
Url: https://github.com/opensuse/agama
BuildArch: noarch

%description -n agama-products-ALP-Dolomite
Products definition for Agama installer. This one is for ALP Dolomite product.

%prep

%build

%install
install -D -d -m 0755 %{buildroot}%{_datadir}/agama/products.d
install -m 0644 %{SOURCE0} %{buildroot}%{_datadir}/agama/products.d
install -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/agama/products.d
install -m 0644 %{SOURCE2} %{buildroot}%{_datadir}/agama/products.d

%files
%dir %{_datadir}/agama
%dir %{_datadir}/agama/products.d
%{_datadir}/agama/products.d/tumbleweed.yaml
%{_datadir}/agama/products.d/leap16.yaml

%files -n agama-products-ALP-Dolomite
%dir %{_datadir}/agama
%dir %{_datadir}/agama/products.d
%{_datadir}/agama/products.d/ALP-Dolomite.yaml

%changelog
91 changes: 91 additions & 0 deletions products.d/leap16.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
id: Leap16
name: openSUSE Leap 16.0
archs: x86_64,aarch64
description: '[Experimental project] openSUSE Leap 16 is built on top of the next generation Adaptable Linux Platform (ALP) from SUSE.'
software:
installation_repositories:
- url: https://download.opensuse.org/repositories/openSUSE:/Leap:/16.0/images/repo/Leap-16.0-x86_64-Media1/
archs: x86_64
- url: https://download.opensuse.org/repositories/openSUSE:/Leap:/16.0/images/repo/Leap-16.0-aarch64-Media1/
archs: aarch64
mandatory_patterns:
- alp_base
- alp_base_zypper
- alp_cockpit
- alp-container_runtime
- alp_defaults
optional_patterns: null # no optional pattern shared
mandatory_packages:
- package: device-mapper # Apparently needed if devices at /dev/mapper are used at boot (eg. FDE)
- package: fde-tools # Needed for FDE with TPM, hardcoded here temporarily
archs: aarch64, x86_64
- package: libtss2-tcti-device0
optional_packages: null
base_product: Leap16

security:
tpm_luks_open: true
lsm: selinux
available_lsms:
# apparmor:
# patterns:
# - apparmor
selinux:
patterns:
- alp_selinux
policy: enforcing
none:
patterns: null

storage:
space_policy: delete
encryption:
method: luks2
pbkd_function: pbkdf2
volumes:
- "/"
volume_templates:
- mount_path: "/"
filesystem: btrfs
btrfs:
snapshots: true
read_only: true
default_subvolume: "@"
subvolumes:
- path: root
- path: home
- path: opt
- path: srv
- path: boot/writable
- path: usr/local
- path: boot/grub2/arm64-efi
archs: aarch64
- path: boot/grub2/i386-pc
archs: x86_64
- path: boot/grub2/powerpc-ieee1275
archs: ppc,!board_powernv
- path: boot/grub2/s390x-emu
archs: s390
- path: boot/grub2/x86_64-efi
archs: x86_64
- path: var
copy_on_write: false
size:
auto: false
min: 5 GiB
outline:
required: true
filesystems:
- btrfs
snapshots_configurable: false
- filesystem: xfs
size:
auto: false
outline:
required: false
filesystems:
- btrfs
- ext2
- ext3
- ext4
- xfs
Loading

0 comments on commit e605eb5

Please sign in to comment.