Cockpit 171 released
by Martin Pitt
http://cockpit-project.org/blog/cockpit-171.html
Cockpit is the modern Linux admin interface. We release regularly. Here
are the release notes from version 171.
Machines: Add virtual CPU configuration
---------------------------------------
The Machines page can now flexibly configure the number and layout of virtual CPUs:
When changing the values for an already running VM, they become effective after
stopping and restarting it.
Screenshot: https://cockpit-project.org/images/machines-vcpu-config.png
Thanks to Bohdan Iakymets!
Kubernetes: Add KubeVirt pod metrics
------------------------------------
The details page of a KubeVirt VM now shows the current CPU, memory, and
network usage. This is similar to the libvirt VM on the Machines page.
Screenshot: https://cockpit-project.org/images/kubernetes-kubevirt-pod-metrics.png
Thanks to suomiy!
Docker: Show container volumes
------------------------------
The details page of a running Docker container now shows its volumes and their
mode (like "read only"):
Screenshot: https://cockpit-project.org/images/docker-volumes-list.png
Thanks to Katerina Koukiou!
Fix broken actions for non-administrators
-----------------------------------------
The tuned, system time, and host name links on the System page, as well as the
unit and service buttons on the Services page now check if the user is actually
allowed to carry out the action. If not, the elements now get disabled and show
a proper tooltip.
Screenshot: https://cockpit-project.org/images/system-tuned-permission.png
Networking: Handle non-running NetworkManager
---------------------------------------------
The Networking page now hides the non-functional network graphs and action
buttons while NetworkManager is not running, and shows an appropriate
notification. If NetworkManager is enabled, this usually indicates a crash or
otherwise unexpected situation:
Scresnshot: https://cockpit-project.org/images/network-nm-stopped-enabled.png
If NetworkManager is disabled, this usually just means that some other
software manages the network, or that this might be a fresh installation where
NetworkManager is not configured yet:
Screenshot: https://cockpit-project.org/images/network-nm-stopped-disabled.png
Accounts: User role improvements
--------------------------------
The Accounts page now offers adding an "Image Builder" role to a user, which
puts that user into the weldr Unix group. It also points out that this does not
become immediately effective but only applies to new logins:
Screenshot: https://cockpit-project.org/images/accounts-weldr-notification.png
Localize times
--------------
Dates and times on all affected pages (System, Storage, and Docker) now use the
format matching the selected Display Language instead of the U.S.format.
Screenshot: https://cockpit-project.org/images/moment-i18n.png
Get it
------
You can get Cockpit here:
http://cockpit-project.org/running.html
Cockpit 171 is available in Fedora 28:
https://bodhi.fedoraproject.org/updates/cockpit-171-1.fc28
Or download the tarball here:
https://github.com/cockpit-project/cockpit/releases/tag/171
Take care,
Martin Pitt
5 years, 3 months
Podman integration into cockpit
by Daniel Walsh
I would like to set up a meeting to discuss cockpit and podman
integration to match the docker integration that we currently have.
podman has grown a `remote` API via varlink, and this should allow us to
integrate very much the way Docker does right now.
What do we need to do to make this happen?
Dan
5 years, 3 months
Pass value to cockpit.spawn that can be retrieved in done()/fail() ?
by Mark Reynolds
Hello,
So I need to loop over a bunch of cockpit.spawns, but after each one is
done I need to print a success message
for (var attr in mods){
var cmd = [DSCONF, '-j', 'ldapi://%2fvar%2frun%2f' + server_id +
'.socket','config', 'replace'];
cmd.push(attr + "=" + mods[attr]);
cockpit.spawn(cmd, { superuser: true, "err":
"message"}).done(function() {
// Success update config_value dict
config_values[attr] = mods[attr];
console.log("Success for: " + attr); // But attr is now
different!!!!!!
}).fail(function(data) {
// Log error and reset the html
popup_err("Error", "Failed to update attribute: " + attr +
"\n\n" + data);
$("#" + attr).val(config_values[attr]);
});
}
The problem is that when the first promise finishes "attr" has already
changed. Is there a way to pass/store a copy of "attr" to the spawn()
command so that it can be accessed in done() & fail()? I'm not seeing
anything in the docs to do this, but figured I'd ask.
Thanks,
Mark
5 years, 3 months
Integration testing with cockpit, how to deal with authentication?
by Daniel Hilst Selli
Hi everybody.
I have been playing with cockpit for some time. Now I have a little library that
create processes in the backend, which keep running until I stop then, so I
start wondering about how to do integration testing with cockpit, ...
In cockpit I have these constraints:
- cockpit.js is served by cockpit-ws,
- A pam session is created when user login on web interface,
At the most what I have is some function calls that have side effects on
backend. My testing would be checking for these side effects on the backend,
like checking if some process started, or finished, or if some file was created,
or if a database table was populated.. Usually we would execute tests over
nodejs but I don't now how to deal with pam session ...
Cheers,
Daniel
5 years, 3 months
How to build cockpit rpms?
by Daniel Hilst Selli
Hi everybody, I see the cockpit.spec at tools folder, is there a Makefile target
for creating cockpit rpms or I need to setup rpm dev tree, and create rpm by my
own?
Regards,
5 years, 3 months
Menu index URL
by Edoardo Spadoni
Hi,
I would like to handle a menu item URL like this (in manifest.json), the
second one:
"menu": {
"index": {
"label": "System",
"order": 10
},
"../my-module#/path": {
"label": "Applications",
"order": 20
}
}
The URL is handled, but the # is escaped into %23 then the module is not
available. Is there a way to unescape that and keep the URL as in the
manifest?
Thanks,
Edoardo Spadoni
5 years, 3 months
new privacy policy for the Cockpit project
by Garrett LeSage
Hi everyone!
You've probably noticed how everyone else is updating their privacy
policy. The Cockpit Project is updating our own too.
There are manymore details in the privacy policy, but here's a quick
summary:
1. In most circumstances, the Cockpit Project does not actively collect
your information.
2. We do, however, use mailing lists, IRC, and GitHub — and all of these
third party services require at least a little bit of your personal
informationto function.
3. The website is static, doesn't track, and does not set cookies.
4. The website makes use of embedded videos, especially in blog posts.
These videos are hosted by YouTube, a Google company, which would see
your IP address when the videos are loaded. We have turned off cookies
for these videos.
5. We may collect some small amounts of personal information from people
at conferences, during usability tests, or to respond back to someone
over email. This information usually consists of names, email addresses,
and sometimes a fewother personal details.
We have a new page that outlines the above and goes into more detail
(including a large helping of legalese) on our website at:
https://cockpit-project.org/privacy.html
On the privacy page, there are links to contact third parties (and to
read their own privacy policies too), as well as a lot of details that
could cover all sorts of situations.
Thanks for reading!
Garrett
5 years, 3 months
Call for feedback: Seamless Single Sign On with Cockpit
by Marius Vollmer
Hi,
I have been learning about how to intergrate Cockpit with management
systems like ManageIQ, oVirt, and Foreman.
Such integration already exists for ManageIQ and oVirt, but the one for
Foreman isn't as seamless as the rest. So I have been digging through
the code and asked around, and produced this:
https://github.com/mvollmer/seamless-cockpit/
This should be the starting point for improving the seamlessness of
Cockpit in Foreman, and maybe for other such integrations.
If you are interested, it would be great if you could have a look and
try to run the code. There are likely a lot of details that work for me
but not for everyone. Any feedback is welcome!
Thanks!
5 years, 3 months