docker-archive / deploykit

A toolkit for creating and managing declarative, self-healing infrastructure.
Apache License 2.0
2.25k stars 262 forks source link

Only invoke flavor "Drain" on self during rolling update #869

Closed kaufers closed 6 years ago

kaufers commented 6 years ago

Instead of using a complex policy that defines how the current instance should be handled during a rolling update, this simplifies the logic so that the following occurs if Options.Self is configured:

This allows the newly elected leader to resume the rolling update, destroying the "old" leader instance and provisioning a replacement.

Note that this only affects the rolling update flow; in the group deletion flow the "self" instance will be Drain'd and Destroy'd last.

codecov[bot] commented 6 years ago

Codecov Report

Merging #869 into master will increase coverage by 0.04%. The diff coverage is 85.71%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #869      +/-   ##
==========================================
+ Coverage   48.78%   48.83%   +0.04%     
==========================================
  Files          91       91              
  Lines        8211     8213       +2     
==========================================
+ Hits         4006     4011       +5     
+ Misses       3835     3833       -2     
+ Partials      370      369       -1
Impacted Files Coverage Δ
pkg/controller/group/state.go 83.01% <100%> (ø) :arrow_up:
pkg/controller/group/testplugin.go 77.77% <100%> (+0.76%) :arrow_up:
pkg/controller/group/group.go 51.96% <100%> (+1.7%) :arrow_up:
pkg/controller/group/rollingupdate.go 94.82% <100%> (-0.53%) :arrow_down:
pkg/controller/group/scaled.go 78.84% <42.85%> (-0.96%) :arrow_down:
pkg/rpc/mux/server.go 47.91% <0%> (+5.2%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 7dbae22...f69b983. Read the comment docs.

GordonTheTurtle commented 6 years ago

Please sign your commits following these rules: https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work The easiest way to do this is to amend the last commit:

$ git clone -b "group-self-destroy-drain-only" git@github.com:kaufers/infrakit.git somewhere
$ cd somewhere
$ git rebase -i HEAD~842354052464
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.