idea/rfc: device screen in cockpit
by Martin Polednik
Hello,
I have an idea for cockpit, but before thinking it further, I'm
interested in hearing your opinions. I am oVirt developer mostly
dealing with system stuff and this is something that could be useful
in virtualization while also providing utility for administrators
using cockpit.
The idea is about new tab/plugin (not sure of the terminology) called
'devices', that would allow access to (hardware) devices as exposed by
sysfs. The interface could be similar to 'Services' tab/plugin,
showing a list of device names created from their physical location,
similarly to libvirt's nodedev-list.
After clicking on the name, new screen would be presented, showing
additional information such as
* physical address,
* driver in use,
* special capabilities (SR-IOV numvfs and totalvfs, NPIV max_vports,
vports),
* iommu group (possibly clickable to reveal all devices in given
group),
* vendor, vendor id, product, product id.
Additionally, it makes sense to allow some basic operations:
* unbinding from host driver, binding it to specific one (useful for
local vfio-pci testing),
* reattaching it back (one use case is that
oVirt does not reattach devices automatically due to possible
issues, needs user intervention),
* setting numvfs, vports,
* ... ?
Do you find ideas above reasonable for cockpit? It is mostly in idea
phase, and builds on development and requirements of oVirt. I
personally believe that this could be useful for broader audience.
Thanks,
mpolednik
6 years, 9 months
Dependencies vs. splitting plugin builds
by Marek Libra
Hi,
I was further thinking about splitting the core cockpit and the recent 'pkg' plugins to allow independent build for each of them.
I would expect that plugins will share same set of run/build dependencies and I don't think the 'first class' plugins shall maintain their dependencies on its own.
I think it would be beneficial to define (and further maintain) shared set of nodejs/bower deps as separate .rpms (or .debs), like
cockpit-nodejs-...rpm - just nodejs
cockpit-nodejs-modules-...rpm - all node_modules
cockpit-bower-...rpm - tentative, probably deprecating in favour of nodejs/webpack
The build will require these packages.
The resulting source tarball(s) will be much smaller since just the sources and not dependencies will be included.
Potential licence issues can be solved just once.
There will be still control over dependencies but with more flexibility.
Any ideas?
Thanks,
Marek
7 years, 3 months
Cockpit module for ABRT
by Jakub Filak
Hello Cockpit crew,
I am working on ABRT and I am the author of the 'org.freedesktop.Problems'
support idea [1].
I would like to let you that we have developed a Cockpit module [2] showing
problems detected by ABRT and allowing users to report them. The module is
still rather a proof of concept (especially the reporting part) but we wanted to
make you aware of its existence.
I have prepared a demonstration video:
https://plus.google.com/106984072939419636032/posts/C95w9HZWCh6
and a Fedora COPR with the packages:
https://copr.fedorainfracloud.org/coprs/jfilak/cockpit-abrt-devel/
I know Cockpit development is driven by user stories but I didn't want to write
a hypothetical case. Last week I got a lot of luck, because I found a crash of
realmd [3] which was reproducible using Cockpit. So, here is our user story:
Charles King, an administrator at Czechlands, wants to add John's work
station to Romanum Active Directory Domain. Charles logs in to Cockpit on
John's work station, clicks the 'Join Domain' button, fills in required
information and hits return. After a while, "Message recipient disconnected
from message bus without replying" error message appears. Charles tries to
sort out the problem so he looks into the system logs and discovers a
message about realmd crash. He opens "Tools" menu and goes to "Problems"
item where he finds an entry for the crash. He reviews the data presented
and decides to report the problem. The report reply includes a link to a
Bugzilla bug which is already fixed. Charles updates John's box and
successfully adds the box to Romanum domain.
The module uses some experimental work and it is definitely not production
ready. However, we would love to hear any feedback from you before we spend too
much time doing wrong things.
Kind regards,
Jakub
ABRT
1: https://github.com/cockpit-project/cockpit/wiki/Ideas
2: https://github.com/abrt/cockpit-abrt/tree/problems2
3: https://bugzilla.redhat.com/show_bug.cgi?id=1330766
7 years, 3 months
VM Management - initial pull request
by Marek Libra
Hi,
I created pull request containing initial implementation of VM Monitoring and Management for Cockpit, joint effort of Martin Betak and me.
The plugin is far from being finished, but it shows main ideas regarding UI structure, transitions and code design.
I'm pushing present code to hear feedback and ideas regarding UI and ongoing functional priorities.
In general, the goal is to have sort of virt-manager in Cockpit some day in the future.
In the short-term, I strive for a VM monitoring and basic troubleshooting tool.
Since defining new VM is a very complex task, let's start from the VM monitoring and add VM definition afterwards.
== What Is Done
Please have a look at attached screenshots.
The plugin lists VMs defined on the host. The user can see their status, basic properties and initiate basic actions (start, stop, restart).
By clicking on a VM, its detail is displayed.
The VM Detail shows additional properties, actions and history charts.
The VM Detail page can be invoked via URL '.../vms#/vm/[VMNAME]', as it might be useful for embedding.
== Internals
Recent implementation is based on polling of libvirt (virsh).
The plugin is open to add additional data/action providers, i.e. the oVirt is planed.
On the plugin's initialization, host capabilities are checked and so the appropriate provider is selected.
Added value of the oVirt provider will be in
- guest agents (monitoring and actions)
- migration
- performance (once the VDSM is already installed)
- DBus once implemented (maybe)
- access to the oVirt's engine managing whole cluster, so additional complex functionality is available and host-local changes are not in contrary to the cluster manager effort
A very first implementation was based on machined/dbus, but there was no added value, so I dropped that code.
== Code
The plugin is based on React/Redux.
React-lite is being reused, since it's already part of the Cockpit's bower.json.
The Redux part can become 'an example' for ongoing more complex plugins.
The Plugin follows ES6 syntax, so Babel has to be used.
In general, we can see a big benefit in use of webpack for the JavaScript in Cockpit.
Anyway, we tried to keep dependencies on third-party JavaScript libraries/tools at minimum and we follow recent Cockpit build conventions.
Does it make sense for Cockpit to move to webpack? We want to check beforehand whether it's worth of making effort...
== Ongoing Work
Enhance the VMs List for
- charts showing actual cpu, mem, net and disk utilization
- screenshot of a running VM
- get console
- sorting and searching
- initiate VM migration (complex task, not to be implemented in the short-term)
- dashboard-like view: show aggregated statistics
- running VMs count
- total resource consumption by VMs
- button to shut down all vms (before host maintenance)
Enhance the VM Detail page for
- VM's cpu, mem, net, disk utilization history charts (since plugin start)
- show more VM properties
- get console
Allow VM definition - since it's complex, let's start simple
- wrap basic options of 'qemu-img create' and virt-install
- accept copy&paste libvirt XML definition
- ongoing work can concentrate on related more complex topics
Add 'oVirt' as an optional provider
- use VDSM if running on the host
- use oVirt engine if accessible (add SSO or login form)
- leverage VM definition, migration and complex configuration
== How to play
I've updated the Vagrantfile to allow nested virtualization for libvirt.
The qemu and libvirt are added to the 'dnf install'.
As mentioned above, recently the plugin does not support new VM definition.
To add a testing nested-vm, you can:
$ sudo vagrant ssh
In the vagrant:
$ sudo su
$ cd /tmp
$ NAME=subVmTest1 && qemu-img create -f qcow2 ${NAME}.img 256M && virt-install -r 128 --pxe --force --nographics --noautoconsole -f ${NAME}.img -n ${NAME}
Log into Cockpit as the 'root' user (pwd 'foobar').
Please note, the created VM is for vms plugin testing only, it provides no real OS. It's purpose is 'just to be listed by the libvirt'.
--
Marek
7 years, 4 months
Feature Suggestion: Send syslog to external log management tool
by Eduardo Hernacki
Hello!
Since I haven't seen another place to put it, I'd like to make a feature
suggestion in this list...
Based on the growing demand for log management and big data, I think it
would be interesting if Cockpit could provide a method to configure log
shipping to an external log management tool. It could also include Docker
and Kubernetes container logs as well...
This would avoid the need to manually configure rsyslog or another log
collector to ship syslogs.
What do you guys think?
Regards,
Eduardo Hernacki
7 years, 4 months
Re: Feature Suggestion: Send syslog to external log management tool
by Subhendu Ghosh
That requires the sytemd HTTP transport encoding. Not std syslog format.
________________________________
From: fche(a)redhat.com
Sent: May 8, 2016 16:57
To: Development discussion for the Cockpit Project
Subject: Re: Feature Suggestion: Send syslog to external log management tool
stefw wrote:
> [...] FWIW the log display functionality is based on the journal,
> since it allows querying, filtering, etc. [...]
See also the native systemd-journal-remote & systemd-journal-gatewayd
capabilities.
- FChE
_______________________________________________
cockpit-devel mailing list
cockpit-devel(a)lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/cockpit-devel@lists.fedorahost...
7 years, 4 months
Cockpit 0.105
by Stef Walter
A summary of the Cockpit weekly release. There’s a new release every
week. Here are the highlights from this weeks 0.105 release.
Strict Content-Security-Policy enforced everywhere
--------------------------------------------------
All of the Cockpit components now ship strict Content-Security-Policy.
This is like SELinux in your browser, where you declare the kind of
things the application is permitted to do and anything else is blocked.
Cockpit now only allows talking to and loading code from the server(s)
that it's running on. Everything else is blocked, including inline
scripts, evaluating javascript code, and using inline styles.
Change:
https://trello.com/c/JDZB3T4M/251-0-105-implement-content-security-policy
Timeout for Cockpit Authentication
----------------------------------
Cockpit uses PAM for authenticating local users. It now expects that
authentication process to complete within a certain timeout.
Details:
https://github.com/cockpit-project/cockpit/blob/master/doc/authentication.md
Change: https://github.com/cockpit-project/cockpit/pull/4339
Cluster Users can be Added and Removed from Groups
--------------------------------------------------
In the Cluster admin interface, users can be added to groups and remove
them with a few clicks.
Demo: https://www.youtube.com/TzvqNj9VywM
Change: https://github.com/cockpit-project/cockpit/pull/4066
Registry Mirroring from Insecure Registries
-------------------------------------------
In the Registry user interface http://www.projectatomic.io/registry/
there's now a checkbox that allows you to choose whether the registry
from which you're mirroring container images is insecure or not.
Aaron has been working on further changes to the mirroring views, such
as reporting errors, and syncing on demand.
Screenshot: http://stef.thewalter.net/images/cockpit-insecure-registry.png
Change: https://github.com/cockpit-project/cockpit/pull/4307
Deletion of Kubernetes Nodes
----------------------------
In the Cluster admin interface you can now delete Nodes from the
cluster, and select which ones to delete. Andreas has also done design
work to allow upgrading the node operating system as well as cordoning
nodes, which makes them unavailable for scheduling containers.
Screenshot: http://stef.thewalter.net/images/cockpit-delete-nodes.png
Change: https://github.com/cockpit-project/cockpit/pull/4344
Get it
------
You can get Cockpit here:
http://cockpit-project.org/running.html
Cockpit 0.105 is available in Fedora 24:
https://bodhi.fedoraproject.org/updates/cockpit-0.105-1.fc24
Or download the tarball here:
https://github.com/cockpit-project/cockpit/releases/tag/0.105
Take care,
Stef
7 years, 4 months