Skip to content

Commit

Permalink
fixup! Add a KEP for graduating PodDisruptionBudget to stable
Browse files Browse the repository at this point in the history
  • Loading branch information
bsalamat committed Mar 19, 2019
1 parent 7adde02 commit d2515ef
Showing 1 changed file with 5 additions and 14 deletions.
19 changes: 5 additions & 14 deletions keps/sig-apps/20190318-PodDisruptionBudget-graduation-to-stable.md
Expand Up @@ -39,7 +39,7 @@ superseded-by:
## Summary

[Pod Disruption Budget (PDB)](https://kubernetes.io/docs/tasks/run-application/configure-pdb/)
is a Kubernete API that limits the number of pods of a collection that are down simultaneously from voluntary disruptions.
is a Kubernetes API that limits the number of pods of a collection that are down simultaneously from voluntary disruptions.
[Kubernetes eviction API](https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/#the-eviction-api)
takes PDB into account when terminating pods. If PDB is
violated, the eviction API returns failure and does not delete the requested pod.
Expand Down Expand Up @@ -70,20 +70,12 @@ long term.

#### Mutable PDBs

A mutable PDB object allows its `MinAvailable` and `MaxUnavailable` fields to be
modified by clients. Components that use PDB must watch such modifications and
use the updated values when making decisions.
A mutable PDB object allows its `MinAvailable`, `MaxUnavailable`, and `Selector`
fields to be modified by clients. Components that use PDB must watch such
modifications and use the updated values when making decisions.

This feature is implemented by [this PR](https://github.com/kubernetes/kubernetes/pull/69867).

#### PDB in Deployment controller

[Rolling update](https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/deployment/rolling.go) of Deployment controller reads `MinAvailable` and `MaxUnavailable` from
the rolling update spec and currently does not take PDB into account. We need to
change the implementation and use
`min(PDB.MinAvailable, RollingUpdate.MinAvailable)` and
`max(PDB.MaxUnavailable, RollingUpdate.MaxUnavailable)` instead.

### Risks and Mitigations

We plan to support mutation of PDB objects that didn't exist in previous versions.
Expand Down Expand Up @@ -131,8 +123,7 @@ for it (this needs to be an e2e test tagged as conformance).
### Graduation Criteria

- [ ] Implement Mutable PDBs
- [ ] Deployment must use PDB in its rolling update
- [ ] Needs a conformance test (if PDB is not an optional feature)
- [ ] Needs a conformance test
- [ ] Update documents to reflect the changes

## Implementation History
Expand Down

0 comments on commit d2515ef

Please sign in to comment.