Blog posts

Category: Release

Cockpit 150

Cockpit is the modern Linux admin interface. We release regularly. Here are the release notes from versions 149 and 150.

Add information about unmet conditions for systemd services

Systemd units can have conditions which must be met in order for the service to start. Cockpit now shows unmet conditions in the details of a service, so that users can see why a service is in active.

Unmet systemd service conditions

Automatically enable and start newly created timers on the Services page

Cockpit allows the user to create custom systemd timers on the Services page, to run commands at particular times or after boot. Previously they had to be explicitly enabled and started to become effective; this now happens automatically.

Support Kubernetes authentication providers in kube config files

Some kubernetes deployments such as Google Compute Engine use Kubernetes authentication providers so that they can automatically regenerate their access token when needed. Cockpit now supports kube config files using this format.

Support sending non-maskable interrupt to VMs

The Shut Down button on the Machines page got a new option “Send Non-Maskable Interrupt”. This normally does not trigger a reaction (other than a kernel message), but the Linux kernel can be configured to react to this with a kernel panic. This allows administrators to debug hung virtual machines.

Machines NMI

Support Dashboard installation into OSTree overlay

The cockpit-dashboard package can now be installed as package overlay into rpm-ostree. This enables managing multiple remote servers through one Cockpit instance on Atomic based systems.

Previously, after logging out (explicitly or due to session timeout) it could happen that revisiting a seen page would show a cached version instead of the login page. This has now been fixed by properly clearing Cockpit’s browser cookie.

Try it out

Cockpit 150 is available now:

Cockpit 148

Cockpit is the modern Linux admin interface. We release regularly. Here are the release notes from version 148.

Support Cockpit in Internet Explorer

When using Microsoft Windows Internet Explorer, navigating between pages and various other operations caused lost state changes, flickering, and lots of JavaScript errors. These have been corrected, and automatic tests now run with Internet Explorer as well.

Update Cluster/Registry design for image streams

The design of the image streams on the Cluster and Registry pages has been updated to match the design of the current OpenShift Web Console.

Image Stream Tag Design

Delete OpenShift session tokens on logout

If the Registry Console or Dashboard creates a new OpenShift session token on login, it will now delete that token again on logout. This behaviour now matches what the OpenShift Web Console does.

Detect unregistered RHEL systems on Software Updates page

On RHEL systems which have not yet been registered or whose registration expired, the Software Page would previously have claimed that “the system is up to date”. Now it detects if the system is unregistered and thus cannot receive updates:

Software Updates on unregistered RHEL system

Try it out

Cockpit 148 is available now:

Cockpit 147

Cockpit is the modern Linux admin interface. We release regularly. Here are the release notes from version 147.

Add configuration of expiry to Accounts page

The Accounts page can now display and change the expiration of user accounts and their passwords. Note that the login page supports changing expired passwords.

See it in action:

Thanks to Fridolin Pokorny for this improvement!

Consistently ignore loopback traffic on all network load graphs

The network load graphics on the System, Networking, and Dashboard pages sometimes accounted traffic on the loopback network device (lo), which in most cases is not interesting for administrators. Now the graphs always ignore the loopback device.

Fix the Kdump page in Internet Exporer

This page previously produced errors when being opened in Internet Explorer due to using unsupported JavaScript functions. These got replaced.

Try it out

Cockpit 147 is available now:

Cockpit 146

Cockpit is the modern Linux admin interface. We release regularly. Here are the release notes from version 146.

Software Updates page shows more information

The Available Updates and Restart recommended pages now show the packages from the previous update run. This makes it easier to see which services to check or to decide whether a restart is really necessary:

Update History

The new Update Log expander shows the previous steps of the running update:

Update Log

Improve available Software Updates layout for small/mobile screens

The Available Updates page now folds all information into a single column on very narrow/mobile screens, to stay readable:

Narrow Updates Page

In addition, updates with a long changelog or a large number of subpackages now get truncated, with a More information… expander. This avoids lots of empty space that makes it difficult browse the updates list.

Support OAuth Kubernetes logins with Google Compute Engine

The Kubernetes pages (Cluster) can now log into Google Compute Engine. Note that there is no way to get information about the user, so they are being displayed as Unknown.

Fix reporting ABRT crashes that are already known to the server

Trying to report a crash (Problems category on the Logs page) that the FAF server already knows previously caused an error message. This has been corrected, and the report is now properly shown as Reported.

Thanks to Matej Marušák for this fix!

Scroll the virtual machine VNC console into view automatically

When opening the builtin VNC console of a virtual machine, the page now automatically gets scrolled to maximize visibility of the console.

Thanks to Marek Libra for this improvement!

Try it out

Cockpit 146 is available now:

Cockpit 145

Cockpit is the modern Linux admin interface. We release regularly. Here are the release notes from version 144 and 145.

Terminal size

The Terminal now uses the full window size and dynamically resizes with it. Previously its size was fixed to 80x24 characters.

Full-window terminal

Machines page reactiveness

The Machines page now listens to libvirt events instead of reading the entire state of all virtual machines every ten seconds. This makes the page much more reactive to state changes and reduces the number of calls to virsh.

Delete VM functionality

A “Delete” button/dialog was added to the Machines page. If the VM is still running, it will be force-stopped first. The dialog also offers you the choice to remove the VM’s disk images as well.

Delete VM

Retire external Machines provider API

Cockpit 132 introduced an external API for the Machines page that allowed third party plugins to dynamically add/manage virtual machines from providers other than libvirt. This was found to be not supportable in the long run and thus was discontinued.

ABRT integration

On Fedora 26 the Logs Page now shows Problem reports from the ABRT crash reporting tool. They appear as new message class “Problem” in the journal view, and their details can be visited when clicking on them:

ABRT list view

ABRT detail view

Thanks to Matej Marusak for this feature!

Always recommend restarting after applying Software Updates

Most supported operating systems in Cockpit don’t provide a reliable detection of whether they require restarting the machine after applying updates for them to fully take effect. This particularly affects updates to the kernel, but also restarting services. For now, Cockpit will always recommend to restart the machine after applying updates:

Restart after Updates

Cancelling Software Updates

The Software Updates page now has a Cancel button that is enabled while it is still safe to abort a running update, i.e. while the updates are still being downloaded.

Try it out

Cockpit 145 is available now:

Cockpit Virtual Hackfest Wrapup

Last week a bunch of us met up in Karlsruhe in Germany to work on virtual machines support in Cockpit. We had some specialists there who helped us get up to speed with VMs. Tons of pull requests opened, designs put together. Some of the changes are already merged and released in Cockpit 144.

Marek helped all of us understand how Redux stores and models data. The oVirt folks are using Redux a lot in front end code and want to be able to share code. Marius managed to reconcile Redux with our dialog and promise code.

Creating virtual machines is hard. There’s a surprising amount of strange little details and corner cases. Andreas, Garrett, Pavel, Dominik and Michal were involved in long discussions about how to make this work. And Dominik opened a pull request.

Create dialog

Create dialog details

Stef and Marek worked on sharing code between the oVirt javascript code based on Cockpit and the more general virtual machines code in Cockpit. Since most of the code is shared, we decided we didn’t want to create any further API here that we had to keep stable, but rather build and develop the two in tandem. In the future some of the specific UI widgets will be factored out into reusable stable javascript NPM components.

Martin refactored Cockpit’s access to libvirt to be more efficient and scalable with the number of VMs. It currently uses virsh.

At the same time Lars and Pavel started a DBus based wrapper for libvirt. This wrapper should be maintained near other libvirt bindings, such as libvirt-python.

Marius added functionality to Delete virtual machines from the Cockpit UI.

Stef wrote code to boot real virtual machines during CI testing. We’re using the same Cirros Linux that oVirt and Openstack use during testing.

And there were more pull requests and discussions, but I’m running out of space.

Cockpit Virtual Hackfest

There’s a Cockpit Hackfest underway in Karlsruhe, Germany. We’re working on the virtual machine functionality in Cockpit.


That means interacting with libvirt. Although libvirt has remoting functionality it has no API that’s actually remotable and callable from Cockpit javascript code. So Lars and Pavel started working on a DBus wrapper for the API.

At the same time, Martin is working on making the current virsh based access to libvirt more performant, so we don’t block on waiting until the DBus wrapper is done.

Lots of work was done understanding redux. The initial machines code in Cockpit was written using redux, and we needed to map it’s concept of models and state to the Cockpit way of storing state on the server and UI concepts like dialogs. Everyone was involved.

Andreas, Garrett have been working on designs for creating a virtual machine and editing virtual machines. Dominik started work on implementing that code.

Marius worked on deletion of virtual machines, and already has a pull request open.

Stef worked on the integration tests for the virtual machine stuff and is booting nested VMs using nested images.



Cockpit 143

Cockpit is the modern Linux admin interface. We release regularly. Here are the release notes from version 143.

“Software Updates” page for package based operating systems

There is a new “Software Updates” page for classic dnf/yum/apt based systems, to complement the already existing one for OSTree on Atomic. This uses the PackageKit API for platform independence. This feature is shipped in the new cockpit-packagekit sub-package.

See it in action:

Inline VNC consoles

The inline VNC console advertised in Cockpit 142 was not actually working from the released cockpit-machine package due to a packaging problem. Cockpit 143 corrects this problem. Thanks to Marek Libra!

Kubernetes RBAC authorization support

The Kubernetes page can now be used to log into Kubernetes installations that use RBAC authorization.

RPM packages for IBM Z systems

The cockpit-docker RPM package is now being built on the s390x (IBM Z Systems) architecture, as the Fedora Docker package is available there. (#1462113)

Try it out

Cockpit 143 is available now:

Cockpit 142

Cockpit is the modern Linux admin interface. We release regularly. Here are the release notes from versions 141 and 142.

Virtual machines display an interactive console

The Virtual Machines page now offers easy access to graphical consoles in the new “Console” tab. If the VM has a VNC server enabled, then there is now an inline noVNC console:

Machines inline console

If the VM only has a SPICE server, or the inline console is not sufficient, you can use “Switch to Desktop Viewer” and with a single button click open virt-viewer for that VM:

Machines external console

See it in action:

Document how to grant/restrict access via polkit rules

Users who are not administrators can normally not perform actions such as changing the hostname or start/stop systemd services. The Privileges and Permissions section in the guide and the systemd feature page now describe how to use polkit rules allow fine-grained permissions such as “that user can restart this particular service”.

Attempt to tear down used partitions when formatting disks

Trying to format a disk on the “Disks” page which still has partitions which are in use (mounted or used as an LVM physical volume) will now attempt to unmount/remove the physical volume, instead of just failing:

Automatic device teardown

Try it out

Cockpit 142 is available now:

Cockpit 136 and 137

Cockpit is the modern Linux admin interface. We release regularly. Here are the release notes from versions 136 and 137.

Reordered entries in the sidebar menu

As a followup to the new look, the entries in the sidebar menu have now been reordered in a more sensible fashion:

  • System information
  • Logs for troubleshooting
  • Configuring major subsystems: Storage, Networking
  • What’s running: Containers and Virtual Machines
  • Implementation details: Admin accounts, Services/Units

Check out the screenshot below to see how this looks now.

Sidebar order

Storage management is more convenient

In order to make configuring storage more convenient, the Cockpit UI now prevents removing disks from a RAID when removal would lead to data loss due to an insufficient number of remaining volumes in the RAID. Also, when creating a Volume Group (LVM) or adding disk space to a Volume Group, unpartitioned space is now offered as a choice. If selected, Cockpit automatically creates a partition before adding it to the Volume Group. Check out the screenshots below to see how these features look.

Remove RAID disk Add unpartitioned disk

Consider user known_hosts for ssh connections

When managing remote machines, Cockpit now considers known host keys in the user’s ~/.ssh/known_hosts in addition to the system-wide /etc/ssh/ssh_known_hosts. This makes Cockpit behave more like the standard ssh client.

Try it out

Cockpit 137 is available now: