Skip to content

Commit

Permalink
example/centos: qcow2 for x86 and aarch64
Browse files Browse the repository at this point in the history
Implements a bit of deduplication for the centos qcow2 images for x86
and aarch64.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
  • Loading branch information
supakeen committed Sep 23, 2024
1 parent 48c9889 commit ac5bc63
Show file tree
Hide file tree
Showing 15 changed files with 1,397 additions and 154 deletions.
170 changes: 170 additions & 0 deletions example/centos/centos-9-aarch64-qcow2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
otk.version: "1"

otk.define:
filesystem:
modifications:
# empty
kernel:
cmdline: console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0
packages:
build:
otk.external.osbuild-gen-depsolve-dnf4:
architecture: x86_64
module_platform_id: c9s
releasever: "9"
repositories:
otk.include: "common/repositories.yaml"
packages:
include:
- coreutils
- dosfstools
- glibc
- platform-python
- policycoreutils
- python3
- qemu-img
- rpm
- selinux-policy-targeted
- systemd
- xfsprogs
- xz
exclude: []
os:
otk.external.osbuild-gen-depsolve-dnf4:
architecture: x86_64
module_platform_id: c9s
releasever: "9"
repositories:
otk.include: "common/repositories.yaml"
packages:
include:
- "@core"
- authselect-compat
- chrony
- cloud-init
- cloud-utils-growpart
- cockpit-system
- cockpit-ws
- dnf-utils
- dosfstools
- dracut-config-generic
- efibootmgr
- grub2-efi-aa64
- grub2-tools
- kernel
- nfs-utils
- oddjob
- oddjob-mkhomedir
- psmisc
- python3-jsonschema
- qemu-guest-agent
- redhat-release
- redhat-release-eula
- rsync
- selinux-policy-targeted
- shim-aa64
- tar
- tcpdump
- tuned
- xfsprogs
exclude:
- aic94xx-firmware
- alsa-firmware
- alsa-lib
- alsa-tools-firmware
- biosdevname
- dnf-plugin-spacewalk
- dracut-config-rescue
- fedora-release
- fedora-repos
- firewalld
- iprutils
- ivtv-firmware
- iwl100-firmware
- iwl1000-firmware
- iwl105-firmware
- iwl135-firmware
- iwl2000-firmware
- iwl2030-firmware
- iwl3160-firmware
- iwl3945-firmware
- iwl4965-firmware
- iwl5000-firmware
- iwl5150-firmware
- iwl6000-firmware
- iwl6000g2a-firmware
- iwl6000g2b-firmware
- iwl6050-firmware
- iwl7260-firmware
- langpacks-*
- langpacks-en
- libertas-sd8787-firmware
- nss
- plymouth
- rng-tools
- udisks2

otk.include: "common/partition-table/aarch64.yaml"

otk.target.osbuild:
pipelines:
- otk.include: "pipeline/build.yaml"
- name: os
build: name:build
stages:
- type: org.osbuild.kernel-cmdline
options:
root_fs_uuid: ${filesystem.const.partition_map.root.uuid}
kernel_opts: ${kernel.cmdline}
- otk.external.osbuild-make-depsolve-dnf4-rpm-stage:
packageset: ${packages.os}
gpgkeys:
otk.include: "common/gpgkeys.yaml"
- type: org.osbuild.fix-bls
options:
prefix: ''
- type: org.osbuild.locale
options:
language: C.UTF-8
- type: org.osbuild.timezone
options:
zone: America/New_York
- type: org.osbuild.sysconfig
options:
kernel:
update_default: true
default_kernel: kernel
network:
networking: true
no_zero_conf: true
- otk.external.otk-make-fstab-stage:
${filesystem}
- otk.include: fragment/grub2/aarch64.yaml
- type: org.osbuild.systemd
options:
default_target: multi-user.target
- type: org.osbuild.selinux
options:
file_contexts: etc/selinux/targeted/contexts/files/file_contexts
- otk.include: pipeline/image/aarch64.yaml
- name: qcow2
build: name:build
stages:
- type: org.osbuild.qemu
inputs:
image:
type: org.osbuild.files
origin: org.osbuild.pipeline
references:
name:image:
file: disk.img
options:
filename: disk.qcow2
format:
type: qcow2
compat: '1.1'
sources:
otk.external.osbuild-make-depsolve-dnf4-curl-source:
packagesets:
- ${packages.build}
- ${packages.os}
57 changes: 8 additions & 49 deletions example/centos/centos-9-x86_64-qcow2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ otk.define:
module_platform_id: c9s
releasever: "9"
repositories:
- id: "AppStream"
baseurl: "https://rpmrepo.osbuild.org/v2/mirror/public/el9/cs9-x86_64-appstream-20240901"
- id: "BaseOS"
baseurl: "https://rpmrepo.osbuild.org/v2/mirror/public/el9/cs9-x86_64-baseos-20240901"
otk.include: "common/repositories.yaml"
packages:
include:
- coreutils
Expand All @@ -39,10 +36,7 @@ otk.define:
module_platform_id: c9s
releasever: "9"
repositories:
- id: "AppStream"
baseurl: "https://rpmrepo.osbuild.org/v2/mirror/public/el9/cs9-x86_64-appstream-20240901"
- id: "BaseOS"
baseurl: "https://rpmrepo.osbuild.org/v2/mirror/public/el9/cs9-x86_64-baseos-20240901"
otk.include: "common/repositories.yaml"
packages:
include:
- "@core"
Expand Down Expand Up @@ -111,33 +105,22 @@ otk.define:
- rng-tools
- udisks2

otk.include: "common/gen-partition-table-x86_64.yaml"
otk.include: "common/partition-table/x86_64.yaml"

otk.target.osbuild:
pipelines:
- name: build
runner: org.osbuild.centos9
stages:
- otk.external.osbuild-make-depsolve-dnf4-rpm-stage:
packageset: ${packages.build}
gpgkeys:
- "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBFzMWxkBEADHrskpBgN9OphmhRkc7P/YrsAGSvvl7kfu+e9KAaU6f5MeAVyn\nrIoM43syyGkgFyWgjZM8/rur7EMPY2yt+2q/1ZfLVCRn9856JqTIq0XRpDUe4nKQ\n8BlA7wDVZoSDxUZkSuTIyExbDf0cpw89Tcf62Mxmi8jh74vRlPy1PgjWL5494b3X\n5fxDidH4bqPZyxTBqPrUFuo+EfUVEqiGF94Ppq6ZUvrBGOVo1V1+Ifm9CGEK597c\naevcGc1RFlgxIgN84UpuDjPR9/zSndwJ7XsXYvZ6HXcKGagRKsfYDWGPkA5cOL/e\nf+yObOnC43yPUvpggQ4KaNJ6+SMTZOKikM8yciyBwLqwrjo8FlJgkv8Vfag/2UR7\nJINbyqHHoLUhQ2m6HXSwK4YjtwidF9EUkaBZWrrskYR3IRZLXlWqeOi/+ezYOW0m\nvufrkcvsh+TKlVVnuwmEPjJ8mwUSpsLdfPJo1DHsd8FS03SCKPaXFdD7ePfEjiYk\nnHpQaKE01aWVSLUiygn7F7rYemGqV9Vt7tBw5pz0vqSC72a5E3zFzIIuHx6aANry\nGat3aqU3qtBXOrA/dPkX9cWE+UR5wo/A2UdKJZLlGhM2WRJ3ltmGT48V9CeS6N9Y\nm4CKdzvg7EWjlTlFrd/8WJ2KoqOE9leDPeXRPncubJfJ6LLIHyG09h9kKQARAQAB\ntDpDZW50T1MgKENlbnRPUyBPZmZpY2lhbCBTaWduaW5nIEtleSkgPHNlY3VyaXR5\nQGNlbnRvcy5vcmc+iQI3BBMBAgAhBQJczFsZAhsDBgsJCAcDAgYVCAIJCgsDFgIB\nAh4BAheAAAoJEAW1VbOEg8ZdjOsP/2ygSxH9jqffOU9SKyJDlraL2gIutqZ3B8pl\nGy/Qnb9QD1EJVb4ZxOEhcY2W9VJfIpnf3yBuAto7zvKe/G1nxH4Bt6WTJQCkUjcs\nN3qPWsx1VslsAEz7bXGiHym6Ay4xF28bQ9XYIokIQXd0T2rD3/lNGxNtORZ2bKjD\nvOzYzvh2idUIY1DgGWJ11gtHFIA9CvHcW+SMPEhkcKZJAO51ayFBqTSSpiorVwTq\na0cB+cgmCQOI4/MY+kIvzoexfG7xhkUqe0wxmph9RQQxlTbNQDCdaxSgwbF2T+gw\nbyaDvkS4xtR6Soj7BKjKAmcnf5fn4C5Or0KLUqMzBtDMbfQQihn62iZJN6ZZ/4dg\nq4HTqyVpyuzMXsFpJ9L/FqH2DJ4exGGpBv00ba/Zauy7GsqOc5PnNBsYaHCply0X\n407DRx51t9YwYI/ttValuehq9+gRJpOTTKp6AjZn/a5Yt3h6jDgpNfM/EyLFIY9z\nV6CXqQQ/8JRvaik/JsGCf+eeLZOw4koIjZGEAg04iuyNTjhx0e/QHEVcYAqNLhXG\nrCTTbCn3NSUO9qxEXC+K/1m1kaXoCGA0UWlVGZ1JSifbbMx0yxq/brpEZPUYm+32\no8XfbocBWljFUJ+6aljTvZ3LQLKTSPW7TFO+GXycAOmCGhlXh2tlc6iTc41PACqy\nyy+mHmSv\n=kkH7\n-----END PGP PUBLIC KEY BLOCK-----"
- type: org.osbuild.selinux
options:
file_contexts: etc/selinux/targeted/contexts/files/file_contexts
labels:
/usr/bin/cp: system_u:object_r:install_exec_t:s0
- otk.include: "pipeline/build.yaml"
- name: os
build: name:build
stages:
- type: org.osbuild.kernel-cmdline
options:
root_fs_uuid: ${filesystem.const.partition_map.root.uuid}
kernel_opts: console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0
kernel_opts: ${kernel.cmdline}
- otk.external.osbuild-make-depsolve-dnf4-rpm-stage:
packageset: ${packages.os}
gpgkeys:
- "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBFzMWxkBEADHrskpBgN9OphmhRkc7P/YrsAGSvvl7kfu+e9KAaU6f5MeAVyn\nrIoM43syyGkgFyWgjZM8/rur7EMPY2yt+2q/1ZfLVCRn9856JqTIq0XRpDUe4nKQ\n8BlA7wDVZoSDxUZkSuTIyExbDf0cpw89Tcf62Mxmi8jh74vRlPy1PgjWL5494b3X\n5fxDidH4bqPZyxTBqPrUFuo+EfUVEqiGF94Ppq6ZUvrBGOVo1V1+Ifm9CGEK597c\naevcGc1RFlgxIgN84UpuDjPR9/zSndwJ7XsXYvZ6HXcKGagRKsfYDWGPkA5cOL/e\nf+yObOnC43yPUvpggQ4KaNJ6+SMTZOKikM8yciyBwLqwrjo8FlJgkv8Vfag/2UR7\nJINbyqHHoLUhQ2m6HXSwK4YjtwidF9EUkaBZWrrskYR3IRZLXlWqeOi/+ezYOW0m\nvufrkcvsh+TKlVVnuwmEPjJ8mwUSpsLdfPJo1DHsd8FS03SCKPaXFdD7ePfEjiYk\nnHpQaKE01aWVSLUiygn7F7rYemGqV9Vt7tBw5pz0vqSC72a5E3zFzIIuHx6aANry\nGat3aqU3qtBXOrA/dPkX9cWE+UR5wo/A2UdKJZLlGhM2WRJ3ltmGT48V9CeS6N9Y\nm4CKdzvg7EWjlTlFrd/8WJ2KoqOE9leDPeXRPncubJfJ6LLIHyG09h9kKQARAQAB\ntDpDZW50T1MgKENlbnRPUyBPZmZpY2lhbCBTaWduaW5nIEtleSkgPHNlY3VyaXR5\nQGNlbnRvcy5vcmc+iQI3BBMBAgAhBQJczFsZAhsDBgsJCAcDAgYVCAIJCgsDFgIB\nAh4BAheAAAoJEAW1VbOEg8ZdjOsP/2ygSxH9jqffOU9SKyJDlraL2gIutqZ3B8pl\nGy/Qnb9QD1EJVb4ZxOEhcY2W9VJfIpnf3yBuAto7zvKe/G1nxH4Bt6WTJQCkUjcs\nN3qPWsx1VslsAEz7bXGiHym6Ay4xF28bQ9XYIokIQXd0T2rD3/lNGxNtORZ2bKjD\nvOzYzvh2idUIY1DgGWJ11gtHFIA9CvHcW+SMPEhkcKZJAO51ayFBqTSSpiorVwTq\na0cB+cgmCQOI4/MY+kIvzoexfG7xhkUqe0wxmph9RQQxlTbNQDCdaxSgwbF2T+gw\nbyaDvkS4xtR6Soj7BKjKAmcnf5fn4C5Or0KLUqMzBtDMbfQQihn62iZJN6ZZ/4dg\nq4HTqyVpyuzMXsFpJ9L/FqH2DJ4exGGpBv00ba/Zauy7GsqOc5PnNBsYaHCply0X\n407DRx51t9YwYI/ttValuehq9+gRJpOTTKp6AjZn/a5Yt3h6jDgpNfM/EyLFIY9z\nV6CXqQQ/8JRvaik/JsGCf+eeLZOw4koIjZGEAg04iuyNTjhx0e/QHEVcYAqNLhXG\nrCTTbCn3NSUO9qxEXC+K/1m1kaXoCGA0UWlVGZ1JSifbbMx0yxq/brpEZPUYm+32\no8XfbocBWljFUJ+6aljTvZ3LQLKTSPW7TFO+GXycAOmCGhlXh2tlc6iTc41PACqy\nyy+mHmSv\n=kkH7\n-----END PGP PUBLIC KEY BLOCK-----"
otk.include: "common/gpgkeys.yaml"
- type: org.osbuild.fix-bls
options:
prefix: ''
Expand All @@ -157,38 +140,14 @@ otk.target.osbuild:
no_zero_conf: true
- otk.external.otk-make-fstab-stage:
${filesystem}
- otk.include: fragment/grub2.yaml
- otk.include: fragment/grub2/x86_64.yaml
- type: org.osbuild.systemd
options:
default_target: multi-user.target
- type: org.osbuild.selinux
options:
file_contexts: etc/selinux/targeted/contexts/files/file_contexts
- name: image
build: name:build
stages:
otk.op.join:
values:
- otk.external.otk-make-partition-stages:
${filesystem}
- - type: org.osbuild.copy
inputs:
root-tree:
type: org.osbuild.tree
origin: org.osbuild.pipeline
references:
- name:os
options:
paths:
- from: input://root-tree/
to: mount://-/
devices:
${fs_options.devices}
mounts:
${fs_options.mounts}
- otk.external.otk-make-grub2-inst-stage:
platform: i386-pc
filesystem: ${filesystem}
- otk.include: pipeline/image/x86_64.yaml
- name: qcow2
build: name:build
stages:
Expand Down
1 change: 1 addition & 0 deletions example/centos/common/gpgkeys.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBFzMWxkBEADHrskpBgN9OphmhRkc7P/YrsAGSvvl7kfu+e9KAaU6f5MeAVyn\nrIoM43syyGkgFyWgjZM8/rur7EMPY2yt+2q/1ZfLVCRn9856JqTIq0XRpDUe4nKQ\n8BlA7wDVZoSDxUZkSuTIyExbDf0cpw89Tcf62Mxmi8jh74vRlPy1PgjWL5494b3X\n5fxDidH4bqPZyxTBqPrUFuo+EfUVEqiGF94Ppq6ZUvrBGOVo1V1+Ifm9CGEK597c\naevcGc1RFlgxIgN84UpuDjPR9/zSndwJ7XsXYvZ6HXcKGagRKsfYDWGPkA5cOL/e\nf+yObOnC43yPUvpggQ4KaNJ6+SMTZOKikM8yciyBwLqwrjo8FlJgkv8Vfag/2UR7\nJINbyqHHoLUhQ2m6HXSwK4YjtwidF9EUkaBZWrrskYR3IRZLXlWqeOi/+ezYOW0m\nvufrkcvsh+TKlVVnuwmEPjJ8mwUSpsLdfPJo1DHsd8FS03SCKPaXFdD7ePfEjiYk\nnHpQaKE01aWVSLUiygn7F7rYemGqV9Vt7tBw5pz0vqSC72a5E3zFzIIuHx6aANry\nGat3aqU3qtBXOrA/dPkX9cWE+UR5wo/A2UdKJZLlGhM2WRJ3ltmGT48V9CeS6N9Y\nm4CKdzvg7EWjlTlFrd/8WJ2KoqOE9leDPeXRPncubJfJ6LLIHyG09h9kKQARAQAB\ntDpDZW50T1MgKENlbnRPUyBPZmZpY2lhbCBTaWduaW5nIEtleSkgPHNlY3VyaXR5\nQGNlbnRvcy5vcmc+iQI3BBMBAgAhBQJczFsZAhsDBgsJCAcDAgYVCAIJCgsDFgIB\nAh4BAheAAAoJEAW1VbOEg8ZdjOsP/2ygSxH9jqffOU9SKyJDlraL2gIutqZ3B8pl\nGy/Qnb9QD1EJVb4ZxOEhcY2W9VJfIpnf3yBuAto7zvKe/G1nxH4Bt6WTJQCkUjcs\nN3qPWsx1VslsAEz7bXGiHym6Ay4xF28bQ9XYIokIQXd0T2rD3/lNGxNtORZ2bKjD\nvOzYzvh2idUIY1DgGWJ11gtHFIA9CvHcW+SMPEhkcKZJAO51ayFBqTSSpiorVwTq\na0cB+cgmCQOI4/MY+kIvzoexfG7xhkUqe0wxmph9RQQxlTbNQDCdaxSgwbF2T+gw\nbyaDvkS4xtR6Soj7BKjKAmcnf5fn4C5Or0KLUqMzBtDMbfQQihn62iZJN6ZZ/4dg\nq4HTqyVpyuzMXsFpJ9L/FqH2DJ4exGGpBv00ba/Zauy7GsqOc5PnNBsYaHCply0X\n407DRx51t9YwYI/ttValuehq9+gRJpOTTKp6AjZn/a5Yt3h6jDgpNfM/EyLFIY9z\nV6CXqQQ/8JRvaik/JsGCf+eeLZOw4koIjZGEAg04iuyNTjhx0e/QHEVcYAqNLhXG\nrCTTbCn3NSUO9qxEXC+K/1m1kaXoCGA0UWlVGZ1JSifbbMx0yxq/brpEZPUYm+32\no8XfbocBWljFUJ+6aljTvZ3LQLKTSPW7TFO+GXycAOmCGhlXh2tlc6iTc41PACqy\nyy+mHmSv\n=kkH7\n-----END PGP PUBLIC KEY BLOCK-----"
40 changes: 40 additions & 0 deletions example/centos/common/partition-table/aarch64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
otk.define:
filesystem:
otk.external.otk-gen-partition-table:
modifications:
${filesystem.modifications}
properties:
type: gpt
bios: true
default_size: "10 GiB"
uuid: D209C89E-EA5E-4FBD-B161-B461CCE297E0
create:
bios_boot_partition: false
esp_partition: true
esp_partition_size: "200 MiB"
partitions:
- name: boot
mountpoint: /boot
label: boot
size: "1 GiB"
type: "xfs"
fs_mntops: defaults
# XXX: should we derive this automatically from the mountpoint?
part_type: BC13C2FF-59E6-4262-A352-B275FD6F7172
# we use hardcoded uuids for compatibility with "images"
part_uuid: CB07C243-BC44-4717-853E-28852021225B
- name: root
mountpoint: /
label: root
type: "xfs"
size: "2 GiB"
fs_mntops: defaults
# XXX: should we derive this automatically from the mountpoint?
part_type: 0FC63DAF-8483-4772-8E79-3D69D8477DE4
# we use hardcoded uuids for compatibility with "images"
part_uuid: 6264D520-3FB9-423F-8AB8-7A0A8E3D3562
# XXX: it would be nicer if the "fs_options" could be part of their
# stages directly without this indirection.
fs_options:
otk.external.otk-make-partition-mounts-devices:
${filesystem}
40 changes: 40 additions & 0 deletions example/centos/common/partition-table/x86_64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
otk.define:
filesystem:
otk.external.otk-gen-partition-table:
modifications:
${filesystem.modifications}
properties:
type: gpt
bios: true
default_size: "10 GiB"
uuid: D209C89E-EA5E-4FBD-B161-B461CCE297E0
create:
bios_boot_partition: true
esp_partition: true
esp_partition_size: "200 MiB"
partitions:
- name: boot
mountpoint: /boot
label: boot
size: "1 GiB"
type: "xfs"
fs_mntops: defaults
# XXX: should we derive this automatically from the mountpoint?
part_type: BC13C2FF-59E6-4262-A352-B275FD6F7172
# we use hardcoded uuids for compatibility with "images"
part_uuid: CB07C243-BC44-4717-853E-28852021225B
- name: root
mountpoint: /
label: root
type: "xfs"
size: "2 GiB"
fs_mntops: defaults
# XXX: should we derive this automatically from the mountpoint?
part_type: 0FC63DAF-8483-4772-8E79-3D69D8477DE4
# we use hardcoded uuids for compatibility with "images"
part_uuid: 6264D520-3FB9-423F-8AB8-7A0A8E3D3562
# XXX: it would be nicer if the "fs_options" could be part of their
# stages directly without this indirection.
fs_options:
otk.external.otk-make-partition-mounts-devices:
${filesystem}
4 changes: 4 additions & 0 deletions example/centos/common/repositories.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- id: "AppStream"
baseurl: "https://rpmrepo.osbuild.org/v2/mirror/public/el9/cs9-x86_64-appstream-20240901"
- id: "BaseOS"
baseurl: "https://rpmrepo.osbuild.org/v2/mirror/public/el9/cs9-x86_64-baseos-20240901"
12 changes: 12 additions & 0 deletions example/centos/fragment/grub2/aarch64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
type: org.osbuild.grub2
options:
root_fs_uuid: ${filesystem.const.partition_map.root.uuid}
boot_fs_uuid: ${filesystem.const.partition_map.boot.uuid}
kernel_opts: ${kernel.cmdline}
uefi:
vendor: centos
unified: true
saved_entry: ffffffffffffffffffffffffffffffff-0-0.noarch
write_cmdline: false
config:
default: saved
13 changes: 13 additions & 0 deletions example/centos/fragment/grub2/x86_64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
type: org.osbuild.grub2
options:
root_fs_uuid: ${filesystem.const.partition_map.root.uuid}
boot_fs_uuid: ${filesystem.const.partition_map.boot.uuid}
kernel_opts: ${kernel.cmdline}
legacy: i386-pc
uefi:
vendor: centos
unified: true
saved_entry: ffffffffffffffffffffffffffffffff-0-0.noarch
write_cmdline: false
config:
default: saved
Loading

0 comments on commit ac5bc63

Please sign in to comment.