Foreman Installer issue on s390x

Hey Foreman Crew,

I am going to try and port the Foreman Installer and subsequently the other components of Foreman to s390x. This is to prep for the work to be done with the help of @pcreech regarding integrating the s390x architecture into Foreman’s existing CICD ecoystem through the power of Koji builders now available on s390x

For more information on an overal gameplan for the s390x see IBM Mainframe s390x RPM Binaries for RHEL6 and RHEL7 - Development - TheForeman

I am running the port using a whole bunch of compiled SRPMS and puppet version 5.5.10. In terms of foreman-specific packages here is what I have so far.

foreman-1.22.0-1.fc30.noarch.rpm
foreman-assets-1.22.0-1.fc30.noarch.rpm
foreman-build-1.22.0-1.fc30.noarch.rpm
foreman-cli-1.22.0-1.fc30.noarch.rpm
foreman-console-1.22.0-1.fc30.noarch.rpm
foreman-debug-1.22.0-1.fc30.noarch.rpm
foreman-ec2-1.22.0-1.fc30.noarch.rpm
foreman-gce-1.22.0-1.fc30.noarch.rpm
foreman-installer-1.22.0-1.fc30.noarch.rpm
foreman-installer-katello-1.22.0-1.fc30.noarch.rpm
foreman-journald-1.22.0-1.fc30.noarch.rpm
foreman-libvirt-1.22.0-1.fc30.noarch.rpm
foreman-mysql2-1.22.0-1.fc30.noarch.rpm
foreman-openstack-1.22.0-1.fc30.noarch.rpm
foreman-ovirt-1.22.0-1.fc30.noarch.rpm
foreman-plugin-1.22.0-1.fc30.noarch.rpm
foreman-postgresql-1.22.0-1.fc30.noarch.rpm
foreman-rackspace-1.22.0-1.fc30.noarch.rpm
foreman-service-1.22.0-1.fc30.noarch.rpm
foreman-sqlite-1.22.0-1.fc30.noarch.rpm
foreman-telemetry-1.22.0-1.fc30.noarch.rpm
foreman-vmware-1.22.0-1.fc30.noarch.rpm

On top of this there is about ~300 other packages that have been needed to be ported and compiled - some Foreman custom gems, others needed due to currently a lack of EPEL 7/8 s390x trees.

When trying to run the installer I am running into an issue however. Anyone have an idea of what might be going wrong?

See the log from the foreman-installer

Hello,

from quickly looking at the trace, the Facter: error while resolving custom fact "apache_version": undefined method [] seems like facter has some issues. Given the installer heavily relies on puppet and facter, it may be also related to all the warnings above.

How did you install puppet/facter in this environment? I’m not a puppet expert, so ccing @ekohl, but I know he’s busy with 1.23 release, so it may take a while before he can take a look.

It appears there was a patch to puppetlabs-apache that made the fact more robust. There’s a good chance that would fix your issue:

The next one you see is because in puppetlabs-postgresql lacking Fedora 30:

Looking at this I’m wondering if you should be attempting to build Foreman 1.23 which is very close to RC1. It should be more flexible and there have been quite a few EL8 fixes that weren’t in 1.22. We’d also have more chance to actually include fixes if you need them.

How did you install puppet/facter in this environment? I’m not a puppet expert, so ccing @ekohl, but I know he’s busy with 1.23 release, so it may take a while before he can take a look.

So I am using the puppet provided by Fedora upstream found here which in turn is using facter version 3.9.3

yum list installed | grep facter
facter.s390x                                            3.9.3-6.fc30                           @fedora
ruby-facter.s390x                                       3.9.3-6.fc30                           @fedora
yum list installed | grep puppet
puppet.noarch                                           5.5.10-4.fc30                          @fedora
puppet-headless.noarch                                  5.5.10-4.fc30                          @fedora

Looking at this I’m wondering if you should be attempting to build Foreman 1.23 which is very close to RC1

I did see that a 1.23 branch was created, I would be open to picking that up if it is going to have some good fixes (and give us the opportunity to fix other things if needed like you said)

What is the process for me picking up the RC1? Will the corresponding rubygems found here and here be deployed in parallel?

@ekohl I’m thinking maybe it would be helpful for us to have a sandbox s390x environment to collaborate on. Thoughts?