[MIR] make pcs the default management tool for Corosync/Pacemaker clusters
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pcs (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Availability]
pcs is already in universe since Ubuntu Xenial. It is an arch:all package and it builds fine in amd64. Package LP page:
https:/
[Rationale]
Nowadays, pcs is the main tool used to manage Corosync/Pacemaker clusters out there. Redhat is the upstream for most of this stack and they do maintain and use it. Right now, we do recommend the other option which is crmsh (this is still used by Suse), but the Server team has been working to move to pcs which is a more modern and easier tool to use when the subject is managing clusters.
It has a nice CLI to set up a cluster and manage resources and stonith agents, also a nice web UI to manage all of that. Recently, the Server team migrated all the HA testing infrastructure to use pcs instead of crmsh, to validate that the tool is working well in some expected scenarios:
https:/
Those tests are running as Jenkins jobs here:
https:/
Ideally, we expect that pcs will be promoted in the "L" development cycle. The idea is to promote only the pcs binary, and not pcs-snmp binary for now.
[Security]
Required links:
https:/
I looked for pcsd (which is the daemon name) since pcs brings a bunch of unrelated CVEs. As you can see in the CVE database, most of the vulnerabilities were discovered prior 2019. Since then, the project seems more stable.
https:/
In the oss-security mailing list I was able to find only the email above.
https:/
And in the Ubuntu security tracker only 6 results, most of them seems to be considered not too important. Moreover, this is in universe.
pcs does install two executable files in /usr/sbin:
- /usr/sbin/pcs
- /usr/sbin/pcsd
It also installs two systemd service files:
- /lib/systemd/
- /lib/systemd/
It also provides a PAM config file (/etc/pam.d/pcsd) with the following content:
#%PAM-1.0
@include common-auth
@include common-account
@include common-password
@include common-session
And the pcsd daemon runs a service binded to port 2224 by default.
[Quality assurance - function/usage]
Once the package is installed in a system it is ready to use. It configures a single node Pacemaker cluster and one can play with it out-of-the-box.
[Quality assurance - maintenance]
The package is well maintained in Debian and Ubuntu. The Server team has been in touch with the Debian maintainer and working closely in some bug fixes and improvements.
https:/
Only 2 bugs reported in Ubuntu (one there is this MIR bug), both of them against Xenial.
And no bugs reported against Debian:
https:/
Upstream is very responsive. They are moving away from the legacy ruby code, the code base will be python only in the future, which will also ease the maintenance of the package.
[Quality assurance - testing]
Upstream has a good test suite which is executed during package build time:
The package contains some DEP-8 tests which are not superficial, they test the cluster setup and checking its status, and also the pcs-snmp binary feature:
https:/
The tests is being skipped in armhf because it seems to run in unprivileged namespaces. And failing in i386 because some dependencies are not installable. The tests are passing in all other supported architectures.
As explained in the first section, the Server team also does some testing on our own testing infrastructure.
[Quality assurance - packaging]
debian/watch is present and works
debian/control defines a correct Maintainer field
Lintian overrides are not present. Here is the output of `lintian --pedantic` against the latest version in kinetic:
W: pcs source: newer-standards
P: pcs source: very-long-
P: pcs source: very-long-
P: pcs source: very-long-
P: pcs source: very-long-
This package does not rely on obsolete or about to be demoted packages.
The package will not be installed by default
Packaging and build is easy: https:/
[UI standards]
N/A
[Dependencies]
There are further dependencies that are not yet in main, the MIR process for them is handled as part of this bug here (TODO).
The dependencies of the pcs binary only (not considering build and pcs-snmp dependencies) needing promotion (according to check-mir script and apt-cache depends) are:
## Ready to be promoted:
- python3-dacite
+ MIR bug: https:/
- python3-tornado
+ MIR bug: https:/
- ruby-ethon
+ MIR bug: https:/
- ruby-mime-types
+ MIR bug: https:/
- ruby-mime-
+ MIR bug: https:/
- ruby-sinatra
+ MIR bug: https:/
- ruby-rack
+ MIR bug: https:/
- ruby-mustermann
+ MIR bug: https:/
- ruby-ruby2-keywords
+ MIR bug: https:/
- ruby-tilt
+ MIR bug: https:/
- ruby-ffi (ruby-ethon dep)
+ MIR bug: https:/
- ruby-json
+ MIR bug: https:/
- ruby-childprocess
+ MIR bug: https:/
- ruby-nio4r (puma dep)
+ MIR bug: https:/
- puma
+ MIR bug: https:/
[Standards compliance]
This package correctly follows FHS and Debian Policy
[Maintenance/Owner]
Owning Team will be the Server team
Team is not yet, but will subscribe to the package before promotion
This does not use static builds
This does not use vendored code
This package is not rust based
The package has been built in the archive more recently than the last test rebuild
[Background information]
The Package description explains the package well.
Upstream Name is: pcs
Link to upstream project: https:/
[Original description]
Nowadays, crmsh is the default and supported tool to manage Corosync/Pacemaker clusters, but in the future we plan to move to pcs. We need to put some tests in place and make sure the entire stack is sill working fine with it, moreover, we need to update all the docs to tell users about the changes.
Related branches
- Christian Ehrhardt : Approve
- Athos Ribeiro: Approve
- Canonical Server Reporter: Pending requested
-
Diff: 61 lines (+17/-0)1 file modifiedsubscriptions.yaml (+17/-0)
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in pcs (Ubuntu): | |
assignee: | nobody → Ioanna Alifieraki (joalif) |
tags: | added: sec-1414 |
description: | updated |
description: | updated |
description: | updated |
One concern I have is that upstream is moving away from the Ruby versions of packages towards Python versions of packages: will this transition be complete before 24.04 LTS release? Will it be done earlier enough than 24.04 LTS for us to have confidence in it?
I'd like to avoid us shipping software that upstream plans to abandon either shortly after we ship it, or shortly before we ship it.
Thanks