Beaker

What’s New in Beaker 0.18?

Beaker 0.18 brings improved usage reminder emails and a new workflow option for pre-defined host filters. This release also includes a substantial refactoring of Beaker’s internal kickstart templates, to provide better support for custom distros.

Usage reminder emails

A new server side command beaker-usage-reminder is now available, which sends emails to users to help them keep track of their usage. The emails warn about:

  • Reservations which are ending soon
  • Reservations which have been held for a long time and are blocking other jobs
  • Jobs which have been queued for a long time

Beaker administrators can set up a cron job on the Beaker server to send reminders at regular intervals using this program. Refer to beaker-usage-reminder for more details.

This command replaces the previous beaker-nag-mail command.

(Contributed by Matt Jia in #%s994325.)

Pre-defined host filters for workflow commands

A new option --host-filter is available for bkr workflow commands to specify a pre-defined host filter. You can use pre-defined host filters as a short-hand for complicated or difficult to remember XML snippets. A number of host filters are included with the bkr client, and users can also define their own host filters.

(Contributed by Amit Saha in #%s1081390.)

Better support for custom distros

Custom distros (that is, distros which use the Anaconda installer but identify themselves as something other than Fedora, Red Hat Enterprise Linux, or CentOS) are now treated as equivalent to the latest Fedora release by default. Previously it was not possible to use custom distros in Beaker without supplying a custom kickstart template (and in some cases, modifying the Beaker source code).

There are also a number of new kickstart metadata variables relating to distro features. Administrators can override these variables per OS version, and snippet authors can use the variables in conditional blocks to handle distro differences.

(Contributed by Dan Callaghan in #%s1070597 and #%s1132764.)

Notable changes

Some kickstart templates removed

As part of the improved support for custom distros, the RedHatEnterpriseLinux6, RedHatEnterpriseLinux7, and Fedora kickstart templates have been removed from Beaker (the default template is used instead). If you have symlinks in /etc/beaker/kickstarts for custom distros pointing to the RedHatEnterpriseLinux7 or Fedora templates, delete the symlinks and Beaker will use the new default template.

For custom distros which were using the RedHatEnterpriseLinux6 template, refer to Install options for distro features for guidance about the recommended way to handle such distros.

systemd kickstart metadata variable is no longer set

The undocumented systemd kickstart metadata variable is no longer populated by Beaker. If you have custom kickstart templates or snippets using this variable, update them to check if has_systemd is defined instead.

{% if has_systemd is defined %}
systemctl ...
{% endif %}

The has_systemd variable is one of the new variables relating to distro features which were added as part of the improved support for custom distros. See Kickstart metadata (ks_meta).

Other new features and enhancements

When Beaker’s experimental OpenStack integration integration is enabled, the beaker-watchdog daemon now captures and stores the serial console log for recipes running on dynamic VMs. (Contributed by Matt Jia in #%s950903.)

The bkr job-logs command has a new option --size to print the size of each log file in the listing. (Contributed by Dan Callaghan in #%s1128048.)

The scheduler feature which increases the priority of any recipe matching a single system can now be disabled by setting beaker.priority_bumping_enabled = False in /etc/beaker/server.cfg. It remains enabled by default. (Contributed by Dan Callaghan in #%s978904.)

A new query for computing utilization for a particular system (or set of systems) has been added to the supported reporting queries. (Contributed by Amit Saha in #%s1117681.)

Task and harness updates

Version 4.64 of the rhts test development and execution library has been released, with two changes:

  • AVC checking is skipped if SELinux is not enabled. (Contributed by Dan Callaghan in #%s1126266.)
  • When building a task RPM from a git repository, git archive is used to produce a pristine tarball. Uncommitted modifications in the work tree are no longer included in the task RPM. (Contributed by Dan Callaghan #%s1109960.)

Version 1.2-4 of the /distribution/inventory task has been released. The task will now warn if the system’s hardware virtualization features have been disabled in firmware. (Contributed by Dan Callaghan in #%s738881.)

Bug fixes

A number of bug fixes are also included in this release.

  • #%s1108498: The grubport kickstart metadata variable now takes effect on EFI-based systems. (Contributed by Jun’ichi NOMURA)
  • #%s1132730: When a group is deleted, any system access policy rules for that group are also deleted. These rule deletions are now reflected in the system activity log. (Contributed by Amit Saha)
  • #%s1132729: The Remove button on the My Groups page has been re-labelled Delete Group to make its function clearer. (Contributed by Amit Saha)
  • #%s1120052: When the scheduler determines that a multi-host recipe set cannot be satisfied because not enough systems are available, under some circumstances the recipe set would fail to abort and become stuck in the Processed state. Such recipe sets are now correctly aborted by the scheduler. (Contributed by Dan Callaghan)
  • #%s1132763: The beaker-repo-update command now skips symlinks in the harness repo directory, rather than attempting to update them. (Contributed by Dan Callaghan)
  • #%s1121763: The markup on the system page has been adjusted to make it easier to copy the system FQDN from the page header. (Contributed by Matt Jia)

Maintenance updates

The following fixes have been included in Beaker 0.18 maintenance updates.

Beaker 0.18.1

  • #%s1138533: Fixed a regression in kickstart generation, where the distro feature variables were not being correctly populated for guest recipes and recipes running on OpenStack. (Contributed by Dan Callaghan)
  • #%s1139951: OS major install options are now also correctly obeyed by guest recipes and recipes running on OpenStack. (Contributed by Dan Callaghan)
  • #%s1070575: The beaker-import command can now correctly import all CentOS releases, as well as any other distros which have compatible .composeinfo or .treeinfo files, regardless of their product name. (Contributed by Dan Callaghan)
  • #%s1136144: Recipes with <hostRequires force=""/> were being incorrectly dispatched to OpenStack (if configured). These recipes are now limited to run only on the named system in Beaker’s inventory. (Contributed by Dan Callaghan)
  • #%s1127509, #%s1129020: Expanded the documentation for job result waivers (ack/nak) and external watchdog scripts. (Contributed by Dan Callaghan)

Beaker 0.18.2

  • #%s1144106: The beaker-provision daemon now writes GRUB2 netboot configuration files for PowerPC in a number of different locations to work around inconsistencies in GRUB2 behaviour. (Contributed by Amit Saha)
  • #%s1148943: Beaker no longer appends extra kernel options for serial consoles in guest kickstarts. This corrects a regression preventing RHEL7 guest recipes from running on Xen hosts. (Contributed by Dan Callaghan)
  • #%s1140999: The beaker-import command now sets distro tags based on the labels found in .composeinfo, in addition to .treeinfo. (Contributed by Dan Callaghan)
  • #%s1140995: The beaker-import command will ignore repos which are defined in .composeinfo but which do not exist on disk. This matches the existing behaviour for non-existent repos defined in .treeinfo. (Contributed by Dan Callaghan)
  • #%s867561: The bkr job-cancel command shows a more informative usage message. (Contributed by Dan Callaghan)

Version 4.0-85 of the /distribution/virt/install task has also been released. The task has been updated to unconditionally set up a second serial port for KVM guests, instead of checking for the console=ttyS1 kernel option in the guest kickstart (which has been removed as part of fixing #%s1148943).

Beaker 0.18.3

  • #%s1131388, #%s1148673: Beaker now has experimental support for running tests inside a Docker container and provisioning Project Atomic distros based on rpm-ostree. (Contributed by Amit Saha)
  • #%s1142533: The beaker-provision daemon logs a traceback if an unhandled exception occurs during early startup. (Contributed by Dan Callaghan)

Version 0.7.7 of the Beah test harness has also been released:

  • #%s1149988: The beah SELinux policy module is now built and installed on RHEL7. This fixes an intermittent AVC denial triggered by the harness on RHEL7 distros with selinux-policy 3.1.13. (Contributed by Dan Callaghan)

Version 4.65 of the rhts test development and execution library has also been released:

  • #%s1136963: A more informative error is shown if the user runs make rpm on a task which is tracked in git but has never been tagged. (Contributed by Dan Callaghan)

Beaker 0.18.4

  • #%s1155331: Beaker no longer appends extra kernel options for serial consoles in guest kickstarts. This change was released in 0.18.2 but reverted accidentally in 0.18.3. (Contributed by Amit Saha)