]
Barak Korren reassigned OVIRT-1772:
-----------------------------------
Assignee: Barak Korren (was: infra)
s390x build support for oVirt infra
-----------------------------------
Key: OVIRT-1772
URL:
https://ovirt-jira.atlassian.net/browse/OVIRT-1772
Project: oVirt - virtualization made easy
Issue Type: Improvement
Components: oVirt CI
Reporter: Barak Korren
Assignee: Barak Korren
Labels: s390x, standard-ci
There has been some recent interest in the community lately in building oVirt node
components for the s390x architecture.
Here is a list of things we would need in order to enable s390x builds:
* Bring up some s390x Jenkins slave VMs, this implies:
** Getting s390x VMs up and running
** Getting an operating system for these VMs
** Getting Java running on these VMs, in order to run the Jenkins agent.
* Enable '{{mock_runner.sh}}' to create s390x build environments.
* Create '{{build-artifacts}}' jobs for s390x
The easiest way get s390x slave VMs would be if we could get our hands on some real s390x
machines, just like the ppc64le machines we currently have. But this does not seem to be
likely to happen. An alternative would be to use some kind of s390x emulation. This kind
of emulation seems to be used by the Fedora project for their s390x builds. A version of
qemu that supports s390x is available in EPEL in the '{{qemu-system-s390x}}'
package. Once installed, the package adds the following libvirt capabilities structure:
{code}
<guest>
<os_type>hvm</os_type>
<arch name='s390x'>
<wordsize>64</wordsize>
<emulator>/usr/bin/qemu-system-s390x</emulator>
<machine maxCpus='255'>s390-virtio</machine>
<machine canonical='s390-virtio'
maxCpus='255'>s390</machine>
<machine maxCpus='255'>s390-ccw-virtio</machine>
<machine canonical='s390-ccw-virtio'
maxCpus='255'>s390-ccw</machine>
<domain type='qemu'/>
</arch>
<features>
<cpuselection/>
<deviceboot/>
<disksnapshot default='on' toggle='no'/>
</features>
</guest>
{code}
So it seems we can get s390x VMs running on our x86_64 hardware. The next issue to tackle
would be to get an OS running on these VMs. The seems to be a Fedora s390x release but not
a CentOS one. Neither of these projects release an s390x cloud image, so we may end up
having to make our own using '{{virt-install}}' or try to convince [Richard
Jones|mailto:rjones@redhat.com] to make such images available in
'{{virt-builder}}'.
Once we have VMs up, we need to turn them into Jenkins slaves. Hopefully the s390x Fedora
build includes Java so this may be trivial.
To get '{{mock_runner.sh}}' support we would need an appropriates
'{{mock}}' configuration files. Suitable files for Fedora on s390x package seems
to already be shipped with the '{{mock}}' package, so there is not much to do
there besides copying the file into our '{{jenkins}}' repo and making the usual
adjustments we typically make to enable proxy and mirrors support.
Once we have all of that up and running, adding s390x '{{build-artifacts}}' jobs
would be trivial, we'll just have to add the right tags in the JJB YAML.