Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

etcd test complains it etcd isn't installed #3

Open
fcrozat opened this issue Jun 11, 2019 · 2 comments
Open

etcd test complains it etcd isn't installed #3

fcrozat opened this issue Jun 11, 2019 · 2 comments
Assignees

Comments

@fcrozat
Copy link
Contributor

fcrozat commented Jun 11, 2019

When installing health-checker on a transactional server (Leap 15.1), I get errors in logs:

juin 11 14:38:51 kimsufi health-checker[1762]: Failed to get unit file state for etcd.service: No such file or directory

before checking if etcd.service is enabled, the check should ensure it is present (or at least not complain about it missing)

@laenion
Copy link
Contributor

laenion commented Jan 29, 2020

I'm sorry for the late reaction, I didn't have a watch set for this project.

The problem is that we don't have any health-checker plugins for the Transactional Server role yet. On Leap 15.1 the only provider of health-checker-plugins is health-checker-plugins-caasp, which will obviously assume that etcd is installed.

We have multiple options so solve this:

  1. Add a generic health-checker-read-only plugins package, and possibly add more package logic to select the correct package for the distribution (e.g. by conflicting with the release package of other variants).
  2. Get rid of all those distribution variant packages, split all the checks into separate packages and use Boolean Dependencies (https://rpm.org/user_doc/boolean_dependencies.html) to automatically install the check if both the health-checker package and the package the plugin is supposed to test is installed. This would allow to Mix'n'Mojo all the packages freely and is the most dynamic variant.
  3. Change the plugins to check the preconditions first (e.g. by checking if the package is installed). (kubelet.sh and rebootmgr.sh also should be changed then.)

The assumption that the packages would always be installed is a leftover from the time when we only had SUSE CaaS Platform and openSUSE Kubic using this package. Even with openSUSE MicroOS this assumption is not true any more.

It still worked, however, as systemctl is-enabled <service> also returns 1 if the service doesn't exist at all, but that additional error message is printed.

@laenion laenion self-assigned this Jan 30, 2020
@laenion
Copy link
Contributor

laenion commented Jan 30, 2020

Just a thought: Instead of skipping the test if the package is not installed we may also want to intentionally fail the test, otherwise we wouldn't notice if the package was accidentally uninstalled, but that would make the system less flexible again.
Then again the presence of required packages could also be moved into another test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants