Future directions for the Beaker test harness
by Nick Coghlan
A few weeks back, Amit put together a proof of concept for running the
test harness in a container, rather than directly on the host
(http://gerrit.beaker-project.org/#/c/3199).
That proof of concept relies on restraint, the new reference harness,
that is intended to eventually replace beah
(https://beaker-project.org/dev/proposals/reference-harness.html)
At the same time, I don't think restraint is currently getting the level
of review and testing that it needs to mature into a plausible
replacement for beah as the default harness.
I think Amit's proposed patch provides a possible way forward:
1. Accept the initial approach where restraint is the *only* supported
harness when running inside a container. Specifying both
"contained_harness" and "harness" as ks_meta variables should be an
error at this point (side note: 'harness' should also be documented
along with all the other ks_meta variables, with a link to
https://beaker-project.org/docs/alternative-harnesses/).
2. Recommend publishing both beah *and* restraint in the harness repos
for Beaker installations. This will not only make restraint available
for container based testing, but also make it readily available via
"harness=restraint" for normal testing, without needing to add a custom
repo definition.
3. Once we have container based testing working reliably with restraint,
drop the restriction against using alternative harnesses in containers.
The priority at the moment though is to get something working that can
run on an Atomic Host, and still provide a relatively normal execution
environment for the executed tasks. Supporting alternative harnesses
*inside* containers is a nice-to-have that can wait until later - by
flatly disallowing it, we ensure we don't have to spend any time working
on container related issues that don't impact restraint. For the initial
iteration, we can also ignore the question of choosing the base image
used to run the harness, as well as being able to start and stop other
containers on the host.
I've filed an RFE for 0.18 on that basis:
https://bugzilla.redhat.com/show_bug.cgi?id=1131388
As part of this, we may also want to move restraint from Bill's personal
account on GitHub to the main Beaker project account, but I don't think
that's particularly urgent at this point.
Regards,
Nick.
--
Nick Coghlan
Red Hat Hosted & Shared Services
Software Engineering & Development, Brisbane
HSS Provisioning Architect
6 years
Ansible-based hybrid dynamic resource provisioning
by Nick Coghlan
Interesting new project "Linch Pin", focused on using Ansible for
dynamic provisioning of CI resources in a range of different
environments: http://sexysexypenguins.com/posts/introducing-linch-pin/
I mention it here as I think it makes sense to consider three possible
tiers of integration into account for Beaker's system provisioning:
- native system management (i.e. PXE-booting off the lab controllers)
- native OpenStack integration (e.g. using Glance images with Beaker
managed systems, iPXE booting OpenStack managed systems off a Beaker
lab controller)
- external system management with Ansible (e.g. using a hybrid cloud
management system like Linch-Pin)
That last one would be closer to the way provisioning used to work way
back in the Cobbler days, but should still be more transparent when
things go wrong than Cobbler used to be (due to the fact Ansible can
be used without going through a central management service).
Cheers,
Nick.
--
Nick Coghlan
Red Hat Platform Engineering, Brisbane
7 years, 4 months
clean alternatives for rlGetArch
by Martin Korbel
Hi folks,
Does exist any clean alternatives for rlGetArch on Fedora? We are using rlGetPrimaryArch on the RHEL systems, but we get error on Fedora.
version: beakerlib-1.11-1
=== RHEL ===
> rlGetArch
:: [ 08:22:14 ] :: [ WARNING ] :: rlGetArch: This function is deprecated
BEAKERLIB_JOURNAL not defined in the environment
:: [ 08:22:14 ] :: [ WARNING ] :: rlGetArch: Update test to use rlGetPrimaryArch/rlGetSecondaryArch
BEAKERLIB_JOURNAL not defined in the environment
x86_64
> rlGetPrimaryArch
x86_64
=== Fedora ===
> rlGetArch
:: [ 08:23:54 ] :: [ WARNING ] :: rlGetArch: This function is deprecated
BEAKERLIB_JOURNAL not defined in the environment
:: [ 08:23:55 ] :: [ WARNING ] :: rlGetArch: Update test to use rlGetPrimaryArch/rlGetSecondaryArch
BEAKERLIB_JOURNAL not defined in the environment
x86_64
> rlGetPrimaryArch
:: [ 08:23:58 ] :: [ ERROR ] :: rlGetPrimaryArch: Concept of primary and secondary architectures is defined on RHEL only
BEAKERLIB_JOURNAL not defined in the environment
x86_64
7 years, 5 months