If the notification url configuration is known to be not working,
this should be raised as an error, not a warning.
Without this, it would be easy to miss a misconfiguration.
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
Without this, the main loop is in need of 3 functions to simply
parse flags and env variables (excluding input validation).
This is a bit more complex than it should, especially since
we only need to parse command line flags and env vars.
This fixes it by simply using pflags (which we were already
using) instead of pflags + viper + cobra (for which we
do not have any benefit), and removing all the methods
outside the mapping of env var with cli flag.
The main code is now far simpler: It handles the reading,
parsing, and returning in case of error.
As we do not bubble up errors from rebootasRequired yet,
this is good enough at this moment.
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
Without this, we have no validation of the data in command/signal
reboot.
This was not a problem in the first refactor, as the constructor
was a dummy one, without validation.
However, as we refactoed, we now have code in the root method
that is validation for the reboot command. This can now be
encompassed in the constructor.
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
Without this patch, the rebooter interface has data which is
not related to the rebooter interface. This should get removed
to make it easier to maintain.
The loss comes from the logging, which mentioned the node.
In order to not have a regression compared to [1], this ensures
that at least the node to be rebooted appears in the main.
[1]: https://github.com/kubereboot/kured/pull/134
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
Without this, the checkers are only shell calls: test -f
sentinelFile, or sentinelCommand.
This changes the behaviour of existing code to test file for
sentinelFile checker, and to keep the sentinel command as
a command.
However, to avoid having validation in the root loop, it moves
to use a constructor to cleanup the code.
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
Without this, the variable name is hard to follow.
This fixes it by cleaning up the var name.
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
Without this, validations are all over the place.
This moves some validations directly into the function, to
make the code simpler to read.
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
Without this, it makes the code a bit harder to read.
This fixes it by extracting the method.
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
Without this, the interface and the code to reboot is
a bit more complex than it should be.
We do not need setters and getters, as we are just
instanciating a single instance of a rebooter interface.
We create it based on user input, then pass the object
around. This should cleanup the code.
Signed-off-by: Jean-Philippe Evrard <open-source@a.spamming.party>
* feat: sentinel-command without nsenter by default
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* fix: no readonly mount
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* fix: mount at different folder
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* feat: add signal-reboot
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* feat: make signal configurable and add tests
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* build: rename job
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* cleanup: linter
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* build: also adjust signal manifest
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* test: add e2e-tests
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* fix: small code restructure
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* fix: adjust version-range
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
---------
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* Add ability to have multiple nodes get a lock
Currently in kured a single node can get a lock with Acquire. There
could be situations where multiple nodes might want a lock in the event
that a cluster can handle multiple nodes being rebooted. This adds the
side-by-side implementation for a multiple node lock situation.
Signed-off-by: Thomas Stringer <thomas@trstringer.com>
* Refactor to use the same code path for a single lock and a multilock
Signed-off-by: Thomas Stringer <thomas@trstringer.com>
* test: force rebuild
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* build: log pod-logs
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* fix: change condition
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* build: fix test-script
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* build: add concurrent test
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
* fix: final changes
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
---------
Signed-off-by: Thomas Stringer <thomas@trstringer.com>
Signed-off-by: Christian Kotzbauer <git@ckotzbauer.de>
Co-authored-by: Christian Kotzbauer <git@ckotzbauer.de>
* Replaces flag --metrics-port with --metrics-addresss
Signed-off-by: Nathan Kinkade <kinkade@measurementlab.net>
* Revert "Replaces flag --metrics-port with --metrics-addresss"
This reverts commit 528c7bb14b.
Signed-off-by: Nathan Kinkade <kinkade@measurementlab.net>
* Adds new --metrics-host flag
The flag --metrics-port already exists. While not as clean, to avoid
introducing a backward incompatible change to flags, this commit adds a
new --metrics-host flag, which in combination with the existing
--metrics-port flag can define a complete listen address for the metrics
server as "<metrics-host>:<metrics-port>"
Signed-off-by: Nathan Kinkade <kinkade@measurementlab.net>
* Adds new, commented flags --metrics-{port,host}
Signed-off-by: Nathan Kinkade <kinkade@measurementlab.net>
---------
Signed-off-by: Nathan Kinkade <kinkade@measurementlab.net>
Areas I did not touch:
- bot name, secrets
- image name
- LICENSE (would need to ask how/if that gets changed...?)
- one mention in the Dev docs that we used to do some
pre-release smoke-testing on the Weave Dev cluster
Signed-off-by: Daniel Holbach <daniel@weave.works>
* added notification when uncordoning
when reboot & uncordoning is succ
essful -> notification will be se
nt
* added uncordon message tmpl
added message template for
announcing successful uncor-
doning and reboot.
* added proper documentation about new flag
added readme note about new flag
* Added support for multi-arch image build
* Requested changes to multi-arch build
* Further optimizations of multi build
* multi needs QEMU for some pieces
* change main push for all platforms
* Update Dockerfile to call Makefile
* Remove manual workflow