xcat-core icon indicating copy to clipboard operation
xcat-core copied to clipboard

[Feature Request] Supporting Installation of AppStream Modules through Package Lists

Open nicolas-tallet opened this issue 3 years ago • 6 comments

RHEL 8 introduced the concept of AppStream Modules, which are basically consistent sets of packages: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/installing_managing_and_removing_user-space_components/introduction-to-modules_using-appstream

AppStream Modules are slightly different than standard YUM groups (which are already supported by xCAT): https://xcat-docs.readthedocs.io/en/stable/guides/admin-guides/manage_clusters/common/deployment/additionalpkg/nonubuntu_os_pkg.html#group-pattern-names

AppStream Modules get installed through a specific yum module install command.

It would be convenient to have AppStream Modules installation supported through regular Package Lists in xCAT.

nicolas-tallet avatar Feb 03 '22 16:02 nicolas-tallet

This is a good feature request. Enhancing xCAT to take better advantage of dnf features has been desirable since dnf replaced yum; this issue will give us a good way to track the specific aspect of AppStream Module support in xCAT.

besawn avatar Feb 03 '22 19:02 besawn

@nicolas-tallet Have you tried just adding a module name to the package list with a @ used for groups ? Something like, @ ruby:2.6 seems to work for me for diskfull node provisioning and for genimage, (fails for updatenode however)

gurevichmark avatar Aug 18 '22 17:08 gurevichmark

@gurevichmark : We haven't performed any recent attempt, but at the time we were working on RHEL8 OS images, it looked to us that just adding the @ symbol for AppStream modules was not working, which was not a surprise given the fact that the actual YUM command is specific to modules (as far as I remember, xCAT generates a simple yum install command while modules require a yum install module command).

nicolas-tallet avatar Aug 31 '22 08:08 nicolas-tallet

@nicolas-tallet Do you remember what error you got when you tried yum install @<module> ?

I tried on RH8.2, RH8.4 and RH8.6:

[root@f6u13k16 ~]# hostnamectl | grep "Operating"
  Operating System: Red Hat Enterprise Linux 8.2 (Ootpa)

[root@f6u13k16 ~]# yum install --assumeno @ruby:2.6 | grep "Enabling module streams" -A1
Enabling module streams:
 ruby                            2.6
[root@c910f03c09k15 ~]# hostnamectl | grep "Operating"
  Operating System: Red Hat Enterprise Linux 8.4 (Ootpa)

[root@c910f03c09k15 ~]# yum install --assumeno @ruby:2.6 | grep "Enabling module streams" -A1
Enabling module streams:
 ruby                            2.6
[root@c910f04x37v05 ~]# hostnamectl | grep "Operating"
  Operating System: Red Hat Enterprise Linux 8.6 (Ootpa)

[root@c910f04x37v05 ~]# yum install --assumeno @ruby:2.6 | grep "Enabling module streams" -A1
Enabling module streams:
 ruby                           2.6

Also, looking at man yum/dnf it seems to indicate that it handles packages, modules and groups:

   Install Command
       dnf [options] install <spec>...
              Makes sure that the given packages and their dependencies are  installed  on  the  system.
              Each  <spec> can be either a <package-spec>, or a @<module-spec>, or a @<group-spec>.  See
              Install Examples.  If a given package or provide cannot be (and is not already) installed,
              the  exit  code  will  be  non-zero.  If the <spec> matches both a @<module-spec> and a @‐
              <group-spec>, only the module is installed.

gurevichmark avatar Aug 31 '22 13:08 gurevichmark

@gurevichmark : To be honest, our attempts date back to several months ago so I don't remember precisely what actually gave us the feeling that this would not work. Please allow us to perform one new test and I'll get back to you with its outcome (be it positive or not). Could you please confirm that generating a stateless OS image is a supported scenario (which is what I understand fro your earlier post, but I would like to be sure we can give it a try in this specific configuration)?

nicolas-tallet avatar Aug 31 '22 14:08 nicolas-tallet

@nicolas-tallet Yes, with changes to ospkgs postscript from #7241, diskless OS images worked for me, specifying groups or modules in the pkglist.

gurevichmark avatar Aug 31 '22 14:08 gurevichmark

@gurevichmark : Tests performed on our side (in a stateless OS images configuration) could confirm that using the suggested ospkgs postscript makes it possible to install AppStream Modules through xCAT Other Packages Lists. Thanks for that.

nicolas-tallet avatar Oct 19 '22 14:10 nicolas-tallet