Skip to content

Commit 90c31e2

Browse files
committed
Update proposal to specify behaviour in case of conflicting annotation values
1 parent 0ad1d4a commit 90c31e2

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

docs/proposals/machine-preservation.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,15 @@ The rationale behind moving the machine to `Running:Preserved` rather than `Runn
148148
149149
1. During rolling updates MCM will NOT honor preserving Machines. The Machine will be replaced with a healthy one if it moves to Failed phase.
150150
2. Hibernation policy will override machine preservation.
151-
3. If Machine and Node annotation values differ for a particular annotation key, the Node annotation value will override the Machine annotation value.
152-
4. If `autoPreserveFailedMax` is reduced in the Shoot Spec, older machines are moved to `Terminating` phase before newer ones.
153-
5. In case of a scale down of an MCD's replica count, `Preserved` machines will be the last to be scaled down. Replica count will always be honoured.
154-
6. If the value for annotation key `cluster-autoscaler.kubernetes.io/scale-down-disabled` for a machine in `Running:Preserved` is changed to `false` by a user, the value will be overwritten to `true` by MCM.
155-
7. On increase/decrease of timeout, the new value will only apply to machines that go into `Preserved` phase after the change. Operators can always edit `machine.CurrentStatus.PreserveExpiryTime` to prolong the expiry time of existing `Preserved` machines.
156-
8. [Modify CA FAQ](https://github.com/gardener/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-prevent-cluster-autoscaler-from-scaling-down-a-particular-node) once feature is developed to use `node.machine.sapcloud.io/preserve=now` instead of the `cluster-autoscaler.kubernetes.io/scale-down-disabled=true` currently suggested. This would:
151+
3. Consumers (with access to shoot cluster) can annotate Nodes they would like to preserve.
152+
4. Operators (with access to control plane) can additionally annotate Machines that they would like to preserve. This feature can be used when a machine does not have a backing node,
153+
and the operator wishes to preserve the backing VM.
154+
5. However, if a backing Node exists for a Machine and the preservation annotation values differ in the two objects, the Node annotation value will override the Machine annotation value.
155+
6. If `autoPreserveFailedMax` is reduced in the Shoot Spec, older machines are moved to `Terminating` phase before newer ones.
156+
7. In case of a scale down of an MCD's replica count, `Preserved` machines will be the last to be scaled down. Replica count will always be honoured.
157+
8. If the value for annotation key `cluster-autoscaler.kubernetes.io/scale-down-disabled` for a machine in `Running:Preserved` is changed to `false` by a user, the value will be overwritten to `true` by MCM.
158+
9. On increase/decrease of timeout, the new value will only apply to machines that go into `Preserved` phase after the change. Operators can always edit `machine.CurrentStatus.PreserveExpiryTime` to prolong the expiry time of existing `Preserved` machines.
159+
10. [Modify CA FAQ](https://github.com/gardener/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-prevent-cluster-autoscaler-from-scaling-down-a-particular-node) once feature is developed to use `node.machine.sapcloud.io/preserve=now` instead of the `cluster-autoscaler.kubernetes.io/scale-down-disabled=true` currently suggested. This would:
157160
- harmonise machine flow
158161
- shield from CA's internals
159162
- make it generic and no longer CA specific

0 commit comments

Comments
 (0)