kured

Kubernetes Reboot Daemon

APACHE-2.0 License

Stars
2.1K
Committers
61

Bot releases are hidden (Show)

kured - Kured 1.7.0

Published by ckotzbauer over 3 years ago

Features and Improvements

  • Add force-reboot after drain-timeout duration has been exceeded #341
  • Add prefer no schedule taint to avoid double draining of pods #250, #19
  • Implement universal notification mechanism #315
  • Add parameter for delaying release of lock #352
  • Always drain before reboot #294, #18
  • Add node annotations to identify kured reboot operations #296
  • Parametrize reboot commands #297

Bugfixes

  • Retry daemonset get operations #342

Build and Testing

  • extend close-duration for stale issues and prs #325
  • Update helm chart README using Make #293
  • Change default branch to 'main' #337
  • Update to alpine 3.13 #320
  • Increase and update Test-Coverage with Github-Action #339, #355, #354, #365, #349, #328, #326, #344

Helm chart

  • Expose the service name and maxUnavailable for rolling updates in the helm chart #280
  • Use chart appVersion as default image-tag #335
  • Add podLabels parameter #300
  • Update chart definition to include --annotate-nodes #318

Docs

  • Update url for ms teams notifications #366, #362
  • Adding a MAINTAINERS file #321

Notable dependency updates

  • Support für Kubernetes 1.21.x #350, #290
  • github.com/spf13/cobra 1.1.1 => 1.1.3
  • github.com/sirupsen/logrus 1.7.0 => 1.8.1
  • github.com/prometheus/common 0.18.0 => 0.25.0
  • github.com/containrrr/shoutrrr 0.4.1 => 0.4.4
  • github.com/prometheus/client_golang 1.8.0 => 1.10.0

Kubernetes Version Compatibility

The daemon image contains a 1.20.x k8s.io/{client-go,kubectl} for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so this should work on 1.19.x, 1.20.x and 1.21.x

Thanks a lot to everyone who contributed to kured since 1.6.1. Commits from @cnmcavoy, @ckotzbauer, @evrardjp, @dholbach, @atighineanu, @spingel, @papanito, @t3mi, @jackfrancis.

kured - Kured 1.6.1

Published by dholbach almost 4 years ago

This is a follow-up release to 1.6.0, bringing in https://github.com/weaveworks/kured/pull/291 to fix the release automation.

kured - Kured 1.6.0

Published by dholbach almost 4 years ago

From a user perspective, this release will mostly bring you up to date with Kubernetes 1.[18,19,20].x. Behind the scenes Jean-Philippe Evrard (SUSE) put a lot of effort into automated testing, which will give us more confidence in the code we merge.

Improvements

  • add additional parameters to override the drain/reboot slack messages
  • rename message template parameters so they are not related to slack
  • Improve coordinated reboot output
  • Add more logs into gates
  • Added support for time wrap in timewindow.Contains

Build / testing

  • Bump to golang 1.15
  • Add smoke/basic functional test
  • Auto expire issues and PRs
  • Always have latest helm binary installed
  • Increase kubernetes versions test matrix for smoke tests
  • Add kustomize testing
  • Simplify manifest testing
  • Add Shellcheck
  • Cleanup github actions
  • Fix chart linter
  • Simplify action code
  • Do not bump kubernetes with dependabot
  • Force golang version
  • Publish image on tag
  • Point docs to current golang version
  • Publish image on master merged changes
  • Update for kubernetes 1.20 support
  • Fix comment spacing
  • Auto-publish helm chart on master change
  • Do not bump any k8s module
  • Temporarily workaround alpine issue
  • Refresh kind cluster versions

Docs

  • Clarify development process
  • Clarify development process for helm charts
  • Corrected README Setting a schedule configuration example

Kubernetes Version Compatibility

The daemon image contains a 1.18.x k8s.io/{client-go,kubectl} for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so -this should work on 1.1{18,19,20}.x.

Thanks a lot to everyone who contributed to kured since 1.5.1. Commits from @DaniJG, dependabot[bot], @dholbach, @evrardjp, @jack-education, @morancj.

kured - Kured 1.5.1

Published by dholbach almost 4 years ago

Commits since 1.5.0 by @bboreham, @dholbach, @evrardjp, @mvisonneau, @smueller18. Thanks a lot for your help everyone!

Breaking changes

--annotationTTL was renamed to --lockTTL (Helm chart values accordingly). Unfortunately this feature didn't quite work in the past release (see #213 etc.), so the breaking change is not as bad as it sounds.

Bug fixes

  • #213 and #238: Replaced --annotationTTL with --lockTTL and made it work correctly
  • #237: Drain: allow pods grace period to terminate
  • #166: Remove quote for parameter alert-filter-regexp

Clean Up

  • #217: Clean up deps, update docs to explain state post-210
  • #210: feature: Remove kubectl bin
  • #198: fix: Follow DKL-DI-0004 guideline
  • #194: add missing quote - thanks Karan Arora for reporting

Release automation

  • #185: Release helper
  • #221: Add Lint job in github actions
  • #222: Make go lint on pkg folder happier
  • #215: Make go lint on cmd folder happier

Kubernetes Version Compatibility

The daemon image contains a 1.18.x k8s.io/client-go and k8s.io/kubectl for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so this should work on 1.1[789].x.

kured - Kured 1.5.0

Published by dholbach about 4 years ago

If you have been upgrading through the 1.4.x releases, 1.5.0 mostly just adds support for newer k8s client tools and updates other internal build components.

Since 1.4.0 we landed quite a few improvements though.

Improvements

  • #119: Adding --annotation-ttl for automatic unlock
  • #150: Move kured Helm Chart from /helm/charts/stable
  • reapply #134: print node id when commanding reboot

Updates

  • Many improvements and modernisation for chart and documentation
  • #139: Update to work for match k8s 1.1[789].x

Thanks a lot to @audunsolemdal, @bboreham, @ckotzbauer, @davidkarlsen, @dholbach, @evrardjp and @michalschott who contributed to this release.

Kubernetes Version Compatibility

The daemon image contains a 1.18.x k8s.io/client-go and kubectl binary for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so this should work on 1.1[789].x.

kured - Kured 1.4.5

Published by dholbach about 4 years ago

This release is part of the 1.4.x series and adds

  • Chart: Support extraEnvVars
  • documentation updates

Thanks a lot to @audunsolemdal, @ckotzbauer and @dholbach who contributed to this release.

kured - Kured 1.4.4

Published by dholbach over 4 years ago

Thanks @davidkarlsen and @ckotzbauer for figuring out issues with the Helm chart.

We are just about to resolve #140 and thus be able to deprecate the charts in /helm/charts this way.

kured - Kured 1.4.3

Published by dholbach over 4 years ago

Another release to help us get https://github.com/weaveworks/kured/issues/140 resolved.

Thanks @ckotzbauer.

kured - Kured 1.4.2

Published by dholbach over 4 years ago

This is a brown paper-bag release for 1.4.1, adding no new functionality - hopefully this time just getting the Chart deployment right.

Thanks @ckotzbauer for figuring this out with me.

kured - Kured 1.4.1

Published by dholbach over 4 years ago

This release adds to the previous 1.4.0 release.

Expect a 1.5.0 release some time after k8s 1.19.0 gets out.

Features

  • Adding --annotation-ttl for automatic unlock #119

kured Helm chart

We intend to take over the kured chart from helm/charts/stable. Please consult https://github.com/weaveworks/kured/tree/master/charts/kured for upgrading from the previous chart.

  • make sure Circle CI ignores the 'gh-pages' branch #149
  • Initial Kured Helm-Chart #150

Thanks a lot everyone who helped with this release, in particular @bboreham, @ckotzbauer, @dholbach, @michalschott and others who helped with testing!

Kubernetes Version Compatibility

As 1.4.0 did, the daemon image contains a 1.17.x k8s.io/client-go and kubectl binary for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so this should work on 1.1[678].x.

Tested in minikube on 1.16.12, 1.17.8, 1.18.5.

kured - Kured 1.4.0

Published by dholbach over 4 years ago

This release adds support for newer k8s client tools and updates other internal build components.

Improvements

  • Update Alpine base image (#114)
  • We're in the #kured channel on Slack (#118)
  • We're having monthly meetings (#126)
  • Updated kubectl, client-go, etc to k8s 1.17 (#127, #135)
  • Update to go 1.13 (#130)
  • Unpin specific Alpine image (#131)
  • print node id when commanding reboot (#134)
  • Update compatbility matrix (#133)
  • Check links as part of CI (#138)

Thanks a lot everyone who helped with this release, in particular @crgarcia12, @dholbach, @evrardjp, @pgroene and others who helped with testing!

Kubernetes Version Compatibility

The daemon image contains a 1.17.x k8s.io/client-go and kubectl binary for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so this should work on 1.1[678].x.

Tested in minikube on 1.16.9, 1.17.5, 1.18.2.

kured - Kured 1.3.0

Published by dholbach over 4 years ago

This release has been a longer while coming - thanks for hanging in there everyone. Most importantly it adds support for newer k8s client tools and updates other internal build builds, adds Slack channel name configuration (#87) and an option to only reboot within a configured time window (#66).

Improvements

  • Use newer version of k8s client tools (#111)
  • add development docs (#112)
  • Update go.mod and go.sum after 'go mod vendor' (#86)
  • Upgrade to latest alpine (#100)
  • Ad Slack channel name configuration (#87)
  • Reboot only within time window specified on commandline (#66)
  • Support k8s 1.14 (#75)
  • Build with golang 1.12 and modules (#74)

Thanks a lot everyone who helped with this release, in particular @Nighthawk22, @adusumillipraveen, @awh, @bboreham, @dholbach, @pgroene, @stealthybox, @jrryjcksn, @jjjordanmsft and many others who helped with testing!

Kubernetes Version Compatibility

The daemon image contains a 1.15.x k8s.io/client-go and kubectl binary for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so this should work on 1.15.x and 1.17.x.

Tested in minikube on 1.15.10, 1.16.7 and 1.17.3.

kured - Kured 1.2.0

Published by awh over 5 years ago

Improvements

  • Support for blocking reboot of individual nodes based on the presence of pods with specific labels

Kubernetes Version Compatibility

The daemon image contains a 1.13.x k8s.io/client-go and kubectl binary for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so this should work on 1.12.x and 1.14.x.

Tested in minikube on 1.12.8, 1.13.6 & 1.14.1.

kured - Kured 1.1.0

Published by awh almost 6 years ago

Improvements

  • RBAC support
  • Use the systemctl in the host mount namespace to effect reboots, reducing image size and eliminating the potential for incompatibility
  • Notify Slack on drain in addition to reboot
  • Pass through log output from invoked kubectl commands
  • Tolerate NoSchedule taint on node-role.kubernetes.io/master
  • Fixed reversal of daemonset name/namespace arguments and comments in the manifest

Kubernetes Version Compatibility

The daemon image contains a 1.12.x k8s.io/client-go and kubectl binary for the purposes of maintaining the lock and draining worker nodes. Kubernetes aims to provide forwards & backwards compatibility of one minor version between client and server, so this should work on 1.11.x and 1.13.x.

Tested in minikube on 1.11.4, 1.12.1 & 1.13.0-alpha.2.
Tested in production on 1.11.2 & 1.12.2.

kured - Kured 1.0.0

Published by awh almost 7 years ago

Kubernetes Version Compatibility

The daemon image contains a 1.7.x k8s.io/client-go and kubectl binary for the purposes of maintaining the lock and draining worker nodes. Whilst it has only been tested on a 1.7.x cluster, Kubernetes typically has good forwards/backwards compatibility so there is a reasonable chance it will work on adjacent versions; please file an issue if this is not the case.

Package Rankings
Top 4.65% on Proxy.golang.org
Badges
Extracted from project README
Artifact HUB FOSSA Status CLOMonitor OpenSSF Best Practices FOSSA Status
Related Projects