Commit Graph

392 Commits

Author SHA1 Message Date
Jean-Philippe Evrard
240a669727 Add prometheus export metrics functional testing
Without this, we can't know if the exposed prometheus metrics
behave properly.

This is a problem, as the only way we can evaluate the success
(right now), is a compilation success or failure from kured.
While this is a good start, it doesn't translate to what we
claim to offer: A boolean showing if a reboot is required.

This fixes it by creating a new github action workflow testing
if the float64 gauge is properly showing 0 for no reboot, 1 for reboot.
This is done by exposing the metrics endpoint through a node port.
A helm chart change was required to have the ability to expose
the service on a node port. We connect to the kind node through
docker in the `tests/test-metrics.sh`, where we curl the nodeport,
extract the only relevant metric, and compare it to the expected result.
2021-04-13 16:17:42 +02:00
Daniel Holbach
d2c9ef8cba Merge pull request #336 from weaveworks/dependabot/go_modules/github.com/containrrr/shoutrrr-0.4.2
Bump github.com/containrrr/shoutrrr from 0.4.1 to 0.4.2
2021-04-07 11:14:55 +02:00
dependabot[bot]
9030f56648 Bump github.com/containrrr/shoutrrr from 0.4.1 to 0.4.2
Bumps [github.com/containrrr/shoutrrr](https://github.com/containrrr/shoutrrr) from 0.4.1 to 0.4.2.
- [Release notes](https://github.com/containrrr/shoutrrr/releases)
- [Changelog](https://github.com/containrrr/shoutrrr/blob/main/goreleaser.yml)
- [Commits](https://github.com/containrrr/shoutrrr/compare/v0.4.1...v0.4.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-07 08:48:02 +00:00
Jean-Philippe Evrard
1c13476b49 Update deps
This is the result of a go mod tidy.
It should clarify our dependencies.
2021-04-07 10:43:59 +02:00
Jean-Philippe Evrard
cd7976ce4f Add chart-testing target-branch
Without this patch, chart-testing is using the branch named
"master" by default.

This is a problem, as we just renamed our development branch
"main" instead of "master".

This should fix it by pointing to the right branch.
2021-04-07 10:43:43 +02:00
Jean-Philippe Evrard
8dfe5f2486 Merge pull request #340 from dholbach/update-dev-docs
Update dev docs
2021-04-06 17:14:58 +02:00
Daniel Holbach
f1c5608bcd Merge pull request #339 from evrardjp/fix-gh-action-cancelling
Update github actions
2021-04-06 17:12:41 +02:00
Daniel Holbach
c2122f3924 udpate Dev docs to latest
Signed-off-by: Daniel Holbach <daniel@weave.works>
2021-04-06 16:40:41 +02:00
Jean-Philippe Evrard
babc9095ef Update github actions
Without this patch, github actions are lagging behind.
This should improve our coverage.
2021-04-06 15:26:33 +02:00
Daniel Holbach
5305d7b34d Merge pull request #337 from dholbach/change-to-main-branch
Change default branch to 'main'.
2021-04-06 15:00:54 +02:00
Daniel Holbach
56a26a2f25 Change default branch to 'main'.
- Make markdownlint happier in a couple of places.
	- Rename '*-master-*' files
	- Change default branches of some other projects
	  we rely on. They moved to 'main' as well.
	- Standardise version of actions/checkout.
	- Update last release in README to 1.6.1.
	- Bbump chart version.

	Eventually closes: #252

Signed-off-by: Daniel Holbach <daniel@weave.works>
2021-04-06 12:46:12 +02:00
Jean-Philippe Evrard
3fa1f3feec Merge pull request #335 from weaveworks/helm-app-version
Use chart appVersion as default image-tag
2021-04-02 10:06:06 +02:00
Christian Kotzbauer
21fdba4ef0 feat: use chart appVersion as default image-tag
Signed-off-by: Christian Kotzbauer <christian.kotzbauer@gmail.com>
2021-04-02 09:41:37 +02:00
Jean-Philippe Evrard
4d45fa8bdb Fix invoke reboot for custom commands
Without this patch, the rebootCommand passed to invokeReboot is
ignored, and the command used for reboot is always systemctl reboot.

This is a problem, as we are aiming for flexible commands for this
release.

This fixes it by restoring the previous behaviour before commit
[1] happened.

[1]: 694957d56e
2021-04-02 09:15:59 +02:00
Jean-Philippe Evrard
e09359e46c Merge pull request #330 from weaveworks/dependabot/github_actions/guyarb/golang-test-annoations-v0.4.0
Bump guyarb/golang-test-annoations from v0.3.0 to v0.4.0
2021-03-29 15:53:11 +02:00
Daniel Holbach
770eb1e4f8 Merge pull request #315 from atighineanu/master
Implement universal notification mechanism (NEW)
2021-03-29 15:21:12 +02:00
atighineanu
694957d56e Implement universal notification mechanism
This patch gives the possibility to send notifications
 across different technologies. Also, this patch makes
 slack-hook-url, slack-username and slack-channel
 deprecated (informed by a warning).
 Also, updated the documentation (Readme).
2021-03-29 11:26:18 +02:00
dependabot[bot]
85c42fdb81 Bump guyarb/golang-test-annoations from v0.3.0 to v0.4.0
Bumps [guyarb/golang-test-annoations](https://github.com/guyarb/golang-test-annoations) from v0.3.0 to v0.4.0.
- [Release notes](https://github.com/guyarb/golang-test-annoations/releases)
- [Commits](https://github.com/guyarb/golang-test-annoations/compare/v0.3.0...48645c385003e0c362bf954d4018895be76f1d3d)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-29 09:19:36 +00:00
Jean-Philippe Evrard
3671c27e37 Add go tests
Without this patch, go test bugs can appear without getting caught,
neither in periodics, nor in PRs.

This should fix it.
2021-03-29 10:26:38 +02:00
Jean-Philippe Evrard
5930d733f8 Fix the Fatal calls using formatting
Without this, go test will rightfully fail.

This is a problem, as we don't have go test enabled, but we want
to have this in the future.

This should fix it.
2021-03-29 09:50:56 +02:00
Jean-Philippe Evrard
fd63e9a74b Add flexible commands parameters
Without this patch, you cannot configure the reboot
command to use, or the use another command to trigger
a reboot.

This is a problem, as multiple users have asked for
it in the past, and we are lacking flexibility.

This fixes it by introducing two new parameters,
- one to provide a custom reboot command.
  This should help people running kured on
  non systemd OS
- one to provide a custom sentinel command.
  This should help people running non Ubuntu OS,
  as they can directly use their command instead of
  generating a file (useful for CentOS/SUSE)

For this, several refactors had to be done, to
remove global state in some functions. Making those
functions closer to "pure functions" helps us
increase our test coverage here and later.

As commandReboot was very close to rebootCommand,
the function to reboot the node has been renamed
to invokeReboot.
2021-03-29 09:50:56 +02:00
Jean-Philippe Evrard
837bd4eb2a Refactor reboot blocks
Without this patch, we rely on global state in many functions for
which we check the reboot blockers.

This is a problem, as it's harder to test.

This patch fixes it by refactoring the reboot blockers. This also
includes a first series of unit tests for our main.
2021-03-29 09:50:56 +02:00
Jean-Philippe Evrard
2a95f0b6c8 Fix periodic jobs
Without this patch, the version of 1.20 is taken in jobs as 1.2.
This is a problem, as it breaks all jobs, because there is no
file to provision a cluster with kubernetes 1.2 (and we shouldn't
do this!)

This fixes it by ensuring there is no mangling of the version
strings, and therefore the right file is used.
2021-03-24 14:29:26 +01:00
Jean-Philippe Evrard
15c57927c8 Update the deprecated DeleteLocalData
DeleteLocalData was deprecated for users of kubectl in 0.20 [1].
At the same time of the deprecation, the relevant code was also
removed [2] without warning: The DeleteLocalData from the helper
structure was simply renamed DeleteEmptyDirData, without shims
on the exposed pkg.

This is a problem, as it completely breaks kured.

This should fix it, by using the new field name.

[1]:
56ea9621b7
[2]:
56ea9621b7 (diff-041bdcdedca650a38a8d82cf15ab6f3665b7b84a0fb44a8bb5dcdc5cd944c63d)
2021-03-22 14:28:17 +01:00
Jean-Philippe Evrard
20cbf6112d Bouncing go.mod with latest kubernetes packages
Without this patch, go.mod will lag behind for the kubernetes
packages, as it's not automatically tested by dependabot.

We should bump versions with each new minor release of kured.

This should fix it.
2021-03-22 14:28:17 +01:00
Christian Kotzbauer
f668bdb1ba Merge pull request #325 from weaveworks/stale-duration
Extend close-duration for stale issues and prs
2021-03-19 11:36:18 +01:00
Christian Kotzbauer
8209647e69 change comment accordingly
Signed-off-by: Christian Kotzbauer <christian.kotzbauer@gmail.com>
2021-03-19 10:20:32 +01:00
Christian Kotzbauer
46354837f9 extend close-duration for stale issues and prs
Signed-off-by: Christian Kotzbauer <christian.kotzbauer@gmail.com>
2021-03-19 08:26:11 +01:00
Jean-Philippe Evrard
de2e0bb2c8 Merge pull request #321 from dholbach/add-maintainers
Adding a MAINTAINERS file
2021-03-11 14:41:49 +01:00
Daniel Holbach
2b88b72d38 Merge pull request #318 from jackfrancis/node-annotations-chart
update chart definition to include --annotate-nodes
2021-03-11 12:04:39 +01:00
Jack Francis
87e610c25f update chart definition to include --annotate-nodes 2021-03-10 16:03:46 -08:00
Daniel Holbach
fe4ad73c2d Adding a MAINTAINERS file
Signed-off-by: Daniel Holbach <daniel@weave.works>
2021-03-10 18:16:11 +01:00
Daniel Holbach
f6ada05c5d Merge pull request #320 from dholbach/alpine-3.13
update to alpine 3.13
2021-03-10 08:50:42 +01:00
Daniel Holbach
355813de30 update to alpine 3.13
Signed-off-by: Daniel Holbach <daniel@weave.works>
2021-03-10 08:10:36 +01:00
Daniel Holbach
8a5f69480b Merge pull request #319 from weaveworks/dependabot/go_modules/github.com/sirupsen/logrus-1.8.1
Bump github.com/sirupsen/logrus from 1.8.0 to 1.8.1
2021-03-10 08:07:11 +01:00
Daniel Holbach
1e0fc11b01 Merge pull request #316 from weaveworks/dependabot/github_actions/actions/stale-v3.0.18
Bump actions/stale from v3.0.17 to v3.0.18
2021-03-10 07:55:11 +01:00
dependabot[bot]
2218e29504 Bump github.com/sirupsen/logrus from 1.8.0 to 1.8.1
Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.8.0...v1.8.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-10 05:55:36 +00:00
Daniel Holbach
250b9bad05 Merge pull request #296 from jackfrancis/node-annotations
add node annotations to identify kured reboot operations
2021-03-09 10:14:46 +01:00
Daniel Holbach
32e01a8417 Merge pull request #294 from jackfrancis/always-drain
always drain before reboot
2021-03-09 10:13:36 +01:00
Jack Francis
baf83408b8 add node annotations
adds a new --annotate-nodes daemonset runtime argument, which does the following when enabled:

- adds a new node annotation "weave.works/kured-most-recent-reboot-needed" with a value of the current RFC3339 timestamp as soon as kured identifies that a node needs to be rebooted
- adds a new node annotation "weave.works/kured-reboot-in-progress" with a value of the current RFC3339 timestamp as soon as kured identifies that a node needs to be rebooted
- removes the annotation "weave.works/kured-reboot-in-progress" when kured has successfully rebooted the node
2021-03-08 17:22:47 -08:00
Jack Francis
93c8242b89 always drain before reboot
This changes the pre-reboot drain functionality so that it always runs, regardless of the value of the Unschedulable node property.

Because kubectl drain is idempotent, we shouldn't have to worry about whether the node has already been set to Unschedulable (perhaps due to a prior, unsuccessful loop of the kured reboot cycle): we can run it over and over again. And because this drain func actually does a cordon + drain (and it only performs the drain if a cordon is successful), we can be sure that we aren't going to be thrashing this node w/ respect to scheduled pods.

This also fixes an edge case: if the node has been marked Unschedulable out-of-band, but workloads remain Running on this node, kured will no longer reboot the node's underlying VM/machine while it is actively running pods.
2021-03-08 17:20:31 -08:00
dependabot[bot]
c3d4c36493 Bump actions/stale from v3.0.17 to v3.0.18
Bumps [actions/stale](https://github.com/actions/stale) from v3.0.17 to v3.0.18.
- [Release notes](https://github.com/actions/stale/releases)
- [Commits](https://github.com/actions/stale/compare/v3.0.17...3b3c3f03cd4d8e2b61e179ef744a0d20efbe90b4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 06:35:26 +00:00
Daniel Holbach
1fd09dd572 Merge pull request #310 from weaveworks/dependabot/go_modules/github.com/sirupsen/logrus-1.8.0
Bump github.com/sirupsen/logrus from 1.7.0 to 1.8.0
2021-03-02 10:48:41 +01:00
Daniel Holbach
d21a438197 Merge pull request #311 from weaveworks/dependabot/github_actions/actions/stale-v3.0.17
Bump actions/stale from v3.0.16 to v3.0.17
2021-03-02 10:48:15 +01:00
dependabot[bot]
3fdd1cf6f7 Bump actions/stale from v3.0.16 to v3.0.17
Bumps [actions/stale](https://github.com/actions/stale) from v3.0.16 to v3.0.17.
- [Release notes](https://github.com/actions/stale/releases)
- [Commits](https://github.com/actions/stale/compare/v3.0.16...996798eb71ef485dc4c7b4d3285842d714040c4a)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-19 05:49:06 +00:00
dependabot[bot]
48688044d5 Bump github.com/sirupsen/logrus from 1.7.0 to 1.8.0
Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.7.0...v1.8.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-18 05:49:25 +00:00
Daniel Holbach
640613565d Merge pull request #305 from weaveworks/dependabot/go_modules/github.com/spf13/cobra-1.1.3
Bump github.com/spf13/cobra from 1.1.2 to 1.1.3
2021-02-16 12:18:40 +01:00
dependabot[bot]
763695de5c Bump github.com/spf13/cobra from 1.1.2 to 1.1.3
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.1.2 to 1.1.3.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Changelog](https://github.com/spf13/cobra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spf13/cobra/compare/v1.1.2...v1.1.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-11 05:52:43 +00:00
Daniel Holbach
6ff5722728 Merge pull request #304 from weaveworks/dependabot/go_modules/github.com/spf13/cobra-1.1.2
Bump github.com/spf13/cobra from 1.1.1 to 1.1.2
2021-02-10 12:40:27 +01:00
dependabot[bot]
472934e958 Bump github.com/spf13/cobra from 1.1.1 to 1.1.2
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Changelog](https://github.com/spf13/cobra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spf13/cobra/compare/v1.1.1...v1.1.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-10 05:53:05 +00:00