Skip to content

Commit

Permalink
expand concepts section
Browse files Browse the repository at this point in the history
  • Loading branch information
Arvind Thirumurugan committed Jan 6, 2025
1 parent 72f2493 commit 4c51a87
Showing 1 changed file with 20 additions and 4 deletions.
24 changes: 20 additions & 4 deletions docs/concepts/EvictionAndDisruptionBudget/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

## Overview

In the context of fleet,

`Eviction` pertains to act to removing resources from a target cluster propagated by a resource placement object from the hub cluster.

`Placement Disruption Budget` object protects against voluntary disruption and in case of fleet the only allowed voluntary disruption as of now is eviction.
Expand All @@ -16,7 +14,7 @@ As mentioned the creation of an eviction object indicates that resources need to

To successfully evict resources from a cluster the user needs to specify,

- The name of the `ClusterResourcePlacement` which propagated resources to target cluster
- The name of the `Placement` object which propagated resources to target cluster
- The name of the target cluster from which we need to evict resources.

When specifying `ClusteResourcePlacement` object in eviction's spec the user needs to consider the following cases,
Expand All @@ -27,5 +25,23 @@ When specifying `ClusteResourcePlacement` object in eviction's spec the user nee
> **Note:** After an eviction is executed there is no guarantee that the cluster won't be picked again by the scheduler to propagate resources for a `ClusterResorucePlacement`.
> The user needs to specify a taint on the cluster in order to prevent the scheduler from picking the cluster again.
## Disruption Budget
## ClusterResourcePlacementDisruptionBudget

The `ClusterResourcePlacementDisruptionBudget` is used protect resources propagated by a `ClusterResourcePlacement` to a target cluster from voluntary disruption i.e. `eviction`.

> **Note:** When specifying a `ClusterResourcePlacementDisruptionBudget` the name should be the same as the `ClusterResourcePlacement` that it's trying to protect.
Users are allowed to specify one of two fields in `ClusterResourcePlacementDisruptionBudget` spec since they are mutually exclusive,

- MaxUnavailable - specifies the maximum number of clusters in which a placement can be unavailable due to voluntary disruptions.
- MinAvailable - specifies the minimum number of cluster in which placements are available despite voluntary disruptions.

> **Note:** For both MaxUnavailable and MinAvailable involuntary disruption are not subject to the disruption budget but will still count against it.
When specifying a disruption budget for a particular `ClusterResourcePlacement` the user needs to consider the following cases,

- For `PickFixed` CRP, if a `ClusterResourcePlacementDisruptionBudget` is specified or not, if an eviction is carried out the user will receive an invalid eviction error message in the eviction status
- For `PickAll` CRP, if a `ClusterResourcePlacementDisruptionBudget` is specified and `MaxUnavailable` field is set the user will receive a misconfigured placement disruption budget error message in the eviction status
- For `PickN` CRP, if a `ClusterResourcePlacementDisruptionBudget` is specified the user can either set `MaxUnavailable` or `MinAvailable`


0 comments on commit 4c51a87

Please sign in to comment.