Commit Graph

38 Commits

Author SHA1 Message Date
Romain Geissler
d16b188a4d Introduce a new "fedora-init" image, which is fedora + systemd.
This is similar to "ubi-init" on UBI/RHEL side.

Fixes BZ 2278884.
2024-07-01 07:58:26 +00:00
Pavel Raiskup
0f501932e7 Add dnf5-plugins into the generic container
[root@ba1ab1388008 /]# dnf5 install dnf5-plugins  --setopt=install_weak_deps=False
...
Total size of inbound packages is 2 MiB. Need to download 2 MiB.
After this operation 13 MiB will be used (install 13 MiB, remove 0 B).
...

Fixes: https://pagure.io/releng/issue/12105
Fixes: https://pagure.io/releng/issue/12106
2024-07-01 09:22:08 +02:00
Dan Horák
dcc4f3c6f9 cloud: updates for s390x
updates for "virtual image" usable under KVM
- don't use 4k block size
- don't use CDL partitioning
- don't use DASD related kernel parameters
2024-06-03 15:36:44 +00:00
Dan Horák
7ba0ead9bd cloud: don't use 4k block size on ppc64le 2024-06-03 16:02:34 +02:00
Adam Williamson
47dd0aa761 Disable systemd-firstboot on Cloud images via cmdline (#2282195)
systemd 256 added a new feature which wants to create users on
boot if none exist yet:
3ccadbce33
We don't want that, cloud-init handles this situation. So let's
disable it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-22 08:15:12 -07:00
Major Hayden
60ddd0e466 AmazonEC2: Add more helpful packages
The amazon-ec2-utils package includes udev rules that make it easier to
identify block storage devices and sets some configuration for other
storage devices.

Users can run awscli2 to manage their AWS cloud resources.

The ec2-instance-connect package allows one click console access to a
Fedora instance from the AWS console (website).

Signed-off-by: Major Hayden <major@redhat.com>
2024-05-10 11:39:20 +00:00
Adam Williamson
678ee6243c Adjust configs for SwitchToDnf5 Change
dnf5 (in obsoleting-dnf mode) provides /usr/bin/yum and obsoletes
yum, so we should drop the 'dnf-yum' entries (which installed
yum). dnf5 also appears to provide and obsolete microdnf, so we
should replace microdnf with dnf5 in the minimal image, I guess.
dnf5-plugins seems the logical replacement for dnf-plugins-core
(which is not removed yet, but is specific to dnf4).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-09 06:10:06 +00:00
Clement Verna
9e7435cee5 Add the container=oci environment variable
This variable was dropped when switching to kiwi.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2278652

Signed-off-by: Clement Verna <cverna@tutanota.com>
2024-05-07 13:27:54 +02:00
Adam Williamson
391d65ff7f Add btrfs-progs to Cloud images
It was previously being pulled in via weak dependencies of fwupd,
but we removed fwupd in #47 and now it's not there any more. It
is needed for the first boot resize by cloud-init to work, since
we use a btrfs filesystem.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-03 13:22:57 -07:00
Dusty Mabe
848b29bfaf container: add back util-linux-core package
The F39 minimal and generic container both had util-linux-core in
them. If this wasn't an intentional change, let's add it back.

Also note that util-linux wasn't actually removed in the change linked
in https://bugzilla.redhat.com/show_bug.cgi?id=1951111#c1
2024-05-01 12:45:07 +00:00
Yanko Kaneti
aa89e5e004 cloud: exclude fwupd from cloud images 2024-05-01 15:08:25 +03:00
Major Hayden
72083f7ba0
cloud: Consistent device naming
Use consistent network device names for network devices instead of
forcing the old "ethX" names from pre-2017. This ensures that
specialized network devices, such as SR-IOV devices, are easy to
recognize and configure inside a Fedora instance on a public cloud or
OpenStack cloud.

FESCo ticket: https://pagure.io/fesco/issue/3190
Change proposal: https://fedoraproject.org/wiki/Changes/EnableConsistentDeviceNamingCloud

Signed-off-by: Major Hayden <major@redhat.com>
2024-04-15 10:09:41 -05:00
František Zatloukal
3668bfa9c6 teams/cloud/cloud: add console="serial" to grub2
Fixes booting the Generic image on systems without any video device.

ref. https://github.com/teemtee/tmt/issues/2771
2024-04-03 22:55:58 +02:00
Debarshi Ray
7316ac278f teams/cloud/container: Remove dracut from Toolbx
The dracut package contains tools to create bootable initramfses for the
Linux kernel.  Historically, neither the Container/Dockerfile nor the
Kickstart equivalents of the fedora-toolbox OCI images contained dracut.
The KIWI description of the image was including dracut because it's
listed as a Requires(pre) of the grub2-tools package [1].

Unless someone comes forward and says that they are using Toolbx to hack
on the boot stack, it's better to retain the status quo for the sake of
a smaller image.

Since an RPM's %pre scriptlet is run before a package is installed [2],
it should be safe to remove dracut after the grub2-tools package has
been installed.

[1] https://src.fedoraproject.org/rpms/grub2

[2] https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/

https://pagure.io/fedora-kiwi-descriptions/pull-request/40
2024-04-02 13:56:37 +00:00
Debarshi Ray
5c131992d0 teams/cloud/container: Add cpio and file to Toolbx
They are currently being pulled in as dependencies of dracut and
grub2-tools respectively.  However, since they are explicitly mentioned
in the list of default RPMs on Fedora Silverblue and Workstation [1],
they should be mentioned here too, especially since packages like dracut
and grub2-tools are related to booting the host operating system and
might not be useful in a container.

[1] https://pagure.io/fedora-comps/

https://pagure.io/fedora-kiwi-descriptions/pull-request/40
2024-04-02 13:56:37 +00:00
Debarshi Ray
875d1c3dd1 teams/cloud/container: Add langpacks-en to Toolbx
Fedora Silverblue and Workstation, and so the Kickstart equivalent of
the fedora-toolbox OCI image, contain langpacks-en by default.  It's
absence leads to a significant difference in the list of RPMs, which is
better to avoid so close to the Fedora 40 final release:
  -abattis-cantarell-vf-fonts-0.301-12.fc40.noarch
  -default-fonts-core-sans-4.0-12.fc40.noarch
  -fonts-filesystem-2.0.5-14.fc40.noarch
  -google-noto-fonts-common-20240301-3.fc41.noarch
  -google-noto-sans-mono-vf-fonts-20240301-3.fc41.noarch
  -google-noto-sans-vf-fonts-20240301-3.fc41.noarch
  -google-noto-serif-vf-fonts-20240301-3.fc41.noarch
  -hunspell-1.7.2-7.fc40.x86_64
  -hunspell-en-0.20201207-9.fc40.noarch
  -hunspell-en-GB-0.20201207-9.fc40.noarch
  -hunspell-en-US-0.20201207-9.fc40.noarch
  -hunspell-filesystem-1.7.2-7.fc40.x86_64
  -langpacks-core-en-4.0-12.fc40.noarch
  -langpacks-fonts-en-4.0-12.fc40.noarch
  -liberation-fonts-common-2.1.5-9.fc40.noarch
  -liberation-mono-fonts-2.1.5-9.fc40.noarch
  -liberation-sans-fonts-2.1.5-9.fc40.noarch
  -liberation-serif-fonts-2.1.5-9.fc40.noarch
  -sil-mingzat-fonts-1.100-5.fc40.noarch

The plan is to investigate if Toolbx containers can use some of these
packages from the host.  However, that needs to be co-ordinated with the
toolbox(1) binary, and has to be a done in a way that works across a
wide variety of container and host combinations.

Until then, it's safer to retain the status quo.

https://pagure.io/fedora-kiwi-descriptions/pull-request/37
2024-04-02 13:06:19 +02:00
Michal Hlavinka
64e5cf610e remove passwd, it was retired
passwd was retired, it's function was replaced by shadow-utils,
which is already included
see https://fedoraproject.org/wiki/Changes/LibuserDeprecation
2024-03-25 23:53:21 +01:00
Adam Williamson
08243564f3 cloud: set Google root size to 10 GB and EC2 back to 5 GB
It's the *Google* image that's required to have a 10 GB root
for performance reasons, not the EC2 image, as the comment says,
but the change was inadvertently applied to the EC2 image not
the Google one. This means our Google image is slow and our EC2
images are failing to be published as AMIs.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-03-20 09:10:53 -07:00
Jeremy Cline
319e5e8153 container: update package list to match f39 more closely
Gary Buhrmaster noticed gzip was missing from the Fedora 40 container.
An extremely quick and gross diff produced by doing:

podman run -it --rm --entrypoint /usr/bin/rpm fedora:39 -qa \
  | sort | uniq | awk '{ split($0,a,"-[0-9]"); print a[1] }' > f39.txt

shows the following for Fedora Minimal 39 -> 40:

-abattis-cantarell-vf-fonts
+audit-libs
-default-fonts-core-sans
-fonts-filesystem
-google-noto-fonts-common
-google-noto-sans-mono-vf-fonts
-google-noto-sans-vf-fonts
-google-noto-serif-vf-fonts
-gpg-pubkey
+gpg-pubkey-a15b79cc
+json-c
-langpacks-core-en
-langpacks-en
-langpacks-fonts-en
+libcap-ng
+libeconf
-libsigsegv
+libtool-ltdl
+pam-libs
-systemd-libs
-util-linux-core
-zlib
+zlib-ng-compat

For Fedora 39 -> 40:

-authselect
-authselect-libs
-cracklib
-gpg-pubkey
+gpg-pubkey-a15b79cc
-gzip
-libdb
-libpwquality
-libsigsegv
+libtool-ltdl
-pam
-sudo
-systemd-libs
-util-linux-core
-zlib
+zlib-ng-compat

This adds gzip and sudo back to the non-minimal container, as well as
bzip2, xz, and zstd to round out the set of [de]compression tools.
2024-03-18 11:57:38 -04:00
Kevin Fenzi
92b028992c Keep kbd-misc for now
On ppc64le, power-utils is pulled in by being default in Core group.
This in turn pulls in power-utils-core, which pulls in systemd-udev.
When kiwi goes to remove kbd-misc on ppc64le only, it fails because
systemd-udev is a protected package. On other arches since it's not
installed, it works.

So, we are going to just drop this for now and revisit solutions after
Beta is out the door.

Signed-off-by: Kevin Fenzi <kevin@scrye.com>
2024-03-13 17:41:55 -07:00
Neal Gompa
ac559c73fd teams/cloud/container: Add name labels for the containers
These were accidentally omitted when they were ported over.
2024-03-12 22:13:14 -04:00
Neal Gompa
ff7affb890 teams/cloud/container: Filter out mesa-va-drivers for s390x for Toolbox
VA-API does not exist in s390x, so we need this filtered out for
that architecture.
2024-03-12 07:14:11 -04:00
Neal Gompa
12cb853ad9 Add s390x variant for Cloud-Base-Generic
This allows building cloud images for Z systems.
2024-03-11 21:36:23 -04:00
Debarshi Ray
734e5d0679 teams/cloud/container: Use vim-minimal, not vim-enhanced, for Toolbx
Fedora Silverblue and Workstation [1], and so the Container/Dockerfile
and Kickstart [2] equivalents of the fedora-toolbox OCI images, contain
vim-minimal by default, not vim-enhanced.  This is because the default
editor is GNU nano, not Vim [3].

[1] https://pagure.io/fedora-comps/

[2] fedora-kickstarts commit d6aac886a01ae625
    https://pagure.io/fedora-kickstarts/c/d6aac886a01ae625
    https://pagure.io/fedora-kickstarts/pull-request/1003

[3] https://fedoraproject.org/wiki/Changes/UseNanoByDefault

https://pagure.io/fedora-kiwi-descriptions/pull-request/24
2024-03-11 17:36:58 +01:00
Debarshi Ray
5eddb74619 teams/cloud/container: Use 'toolbx' as VARIANT_ID in os-release(5)
The same change was made to the Kickstart equivalent of the
fedora-toolbox:41 OCI image recently [1].

This is meant to distinguish OCI containers and images that are designed
specifically for Toolbx from others.  Toolbx containers are long-lasting
pet containers for interactive command line use, which makes them
substantially different from short-lived containers running services.

Therefore, it can be useful to be able to identify Toolbx containers and
images when generating statistics about Fedora usage.

[1] fedora-kickstarts commit 0d99c64eb2721c5b
    https://pagure.io/fedora-kickstarts/c/0d99c64eb2721c5b
    https://pagure.io/fedora-kickstarts/pull-request/1015

https://pagure.io/Fedora-Council/tickets/issue/449
2024-03-11 16:03:20 +01:00
Debarshi Ray
4a5017422f teams/cloud/container: Drop zstd from Toolbx
The zstd RPM is neither part of the default Fedora Silverblue
and Workstation installation [1], nor the Container/Dockerfile and
Kickstart equivalents of the fedora-toolbox images [2,3].  Therefore,
there's no need to need to include it in the KIWI description.

Fallout from d27e4c3f6c

[1] https://pagure.io/fedora-comps/

[2] https://src.fedoraproject.org/container/fedora-toolbox
    https://github.com/containers/toolbox/tree/main/images/fedora

[3] https://pagure.io/fedora-kickstarts/blob/main/f/fedora-container-toolbox.ks

https://pagure.io/fedora-kiwi-descriptions/pull-request/21
2024-03-11 15:51:30 +01:00
Debarshi Ray
e44856603d teams/cloud/container: Install languages & weak dependencies for Toolbx
The Container/Dockerfile and Kickstart equivalents of the fedora-toolbox
OCI images installed all locale definitions, translations, and weak
dependencies (barring exceptions) [1,2].  In fact, the Containerfile
tried very hard to restore any content that was stripped out by the
fedora base image.  Hence, the KIWI descriptions should do the same.

Sometimes, like in the case of the gawk and gawk-all-langpacks RPMs,
skipping weak dependencies also strips out translations.

The Kickstart files did this by decoupling fedora-container-common.ks
from fedora-container-common.ks [3], and this is the KIWI equivalent of
the same change.

The separate 'packages' elements of types 'bootstrap' and 'image' [4]
are no longer needed and have been fused into one.  This avoids the need
to specify the 'ignore' child elements separately.

This change has two workarounds that deserve mention.

First, enabling weak dependencies for the packages that used to come
from the ContainerCore profile pulls in systemd, and config.xml
specifies a keytable for all the KIWI descriptions.  These two combined
makes KIWI try to set the keymap/keytable using systemd-firstboot(1),
and it fails the build with:
  [ INFO    ]: Setting up keytable:
  [ DEBUG   ]: EXEC: [chroot /path/to/image-root systemd-firstboot --help]
  [ DEBUG   ]: EXEC: [chroot /path/to/image-root systemd-firstboot --keymap=us]
  [ DEBUG   ]: EXEC: Failed with stderr: Keymap us is not installed.
  , stdout: (no output on stdout)
  [ ERROR   ]: KiwiCommandError: chroot: stderr: Keymap us is not installed.
  , stdout: (no output on stdout)

This has been worked around by making the keymaps available during the
image build through the kbd-misc RPM, which is later uninstalled.

Second, KIWI isn't passing the 'ignore' child elements to DNF [5], and
hence they currently have no effect.  This has been worked around by
uninstalling the RPMs later.

Some noteworthy changes in the list of RPMs in the fedora-toolbox image
after this change:
   ...
  +gawk-all-langpacks-5.3.0-3.fc40.x86_64
   ...
  -glibc-2.39.9000-5.fc41.i686
  -glibc-gconv-extra-2.39.9000-5.fc41.i686
  -glibc-minimal-langpack-2.39.9000-5.fc41.x86_64
   ...
  -libgcc-14.0.1-0.8.fc41.i686
   ...
  +python-unversioned-command-3.12.2-2.fc41.noarch

They are all in line with the latest Kickstart equivalent of the image.

[1] https://src.fedoraproject.org/container/fedora-toolbox
    https://github.com/containers/toolbox/tree/main/images/fedora

[2] https://pagure.io/fedora-kickstarts/blob/main/f/fedora-container-toolbox.ks

[3] fedora-kickstarts commit 30f76d387d9e7f5c
    https://pagure.io/fedora-kickstarts/c/30f76d387d9e7f5c
    https://pagure.io/fedora-kickstarts/pull-request/1002

[4] https://osinside.github.io/kiwi/concept_and_workflow/packages.html

[5] https://github.com/OSInside/kiwi/issues/2499

https://pagure.io/fedora-kiwi-descriptions/pull-request/21
2024-03-11 15:27:09 +01:00
Neal Gompa
0becdd4d43 teams/cloud/container, tmt: Build the container images as OCI images
This incorporates the labels that are expected for Fedora images.
2024-03-06 17:41:28 -05:00
Neal Gompa
31d0b2a70f teams/cloud/cloud: Bump the Google Cloud image to 10G
Anything lower than that causes performance problems.
2024-03-06 13:51:35 -05:00
Neal Gompa
b558e172c1 Install fedora-release-* at bootstrap phase for various images
This ensures that the correct variant packages are installed.
2024-03-04 20:18:11 -05:00
Neal Gompa
12275dff55 Add ppc64le variant for Cloud-Base-Generic
This allows building cloud images for POWER systems.
2024-02-24 14:57:26 -05:00
Neal Gompa
3ac0ae9240 teams/cloud: Define compatible architectures for existing profiles
Most of the Fedora Cloud-owned profiles are limited to a subset of
architectures, generally x86_64 and aarch64 (with the exception of
the VirtualBox Vagrant image, which is x86_64 only).
2024-02-24 14:57:26 -05:00
Neal Gompa
7cc5101bcc Rename MATE desktop snippets from MATE-Compiz to MATE
This prepares for the future change to another compositor with Wayland.
2024-02-24 14:29:39 -05:00
Neal Gompa
7235c1e6f4 teams/cloud: Reformat profile image types for readability
This makes it easier to read what all the settings are.
2024-02-23 05:15:15 -05:00
Jeremy Cline
9322f54b49 azure: install the hyperv-daemons package
This pulls in a number of services to integrate a guest running under
Hyper-V. These services are all automatically activated via udev rules.
2024-02-23 00:31:35 +00:00
Jeremy Cline
83a43059d3 azure: support accelerated networking feature
Azure provides an optional "Accelerated Networking" feature. Enabling
this feature when creating a VM enables SR-IOV and provides the guest
with a virtual function.

Supporting this requires two changes. Firstly, the kernel-modules
package is required as it contains the Mellanox drivers required for the
VF provided to the guest. Secondly, the interface needs to be ignored by
NetworkManager or it'll try and fail to bring up the device and the VM
will be unreachable except by serial console. If this is observed, it's
likely new hardware has been deployed and additional drivers need to be
added to the NetworkManager config.

See https://learn.microsoft.com/en-us/azure/virtual-network/accelerated-networking-overview
for details.
2024-02-23 00:31:35 +00:00
Jeremy Cline
d9584ccd70 azure: ensure early boot messages are directed to the serial console
In the event that there's an issue with early boot, setting
earlyprintk=ttyS0 ensures that the messages are routed to the serial
console so it can be debugged.

This particular option is documented as required in the Azure VM
certification FAQ[0].

[0] https://learn.microsoft.com/en-us/partner-center/marketplace/azure-vm-certification-faq#linux-test-cases
2024-02-23 00:31:35 +00:00
Neal Gompa
7497716476 Reorganize configuration around Fedora teams
This realigns the configuration into separate files/folders that
would be modified by specific teams (e.g. WGs and SIGs).
2024-02-22 19:15:21 -05:00