Skip to content

Commit c183303

Browse files
Address feedback
1 parent 4a86eef commit c183303

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

docs/proposals/20240807-in-place-updates-implementation-notes.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
# In-place updates in Cluster API - Implementations notes
22

3-
This document is an collection of notes about implementation details for the in-place update proposal.
3+
This document is a collection of notes about implementation details for the in-place update proposal.
44

5-
As soon as the implementation will be completed, some of the notes in this document will be moved back
6-
into the proposal or moved to the user facing documentation about this feature.
5+
As soon as the implementation will be completed, some of the notes in this document will be moved back
6+
into the proposal or into the user-facing documentation for this feature.
77

88
## Notes about in-place update implementation for machine deployments
99

1010
- In place is always considered as potentially disruptive
1111
- in place must respect maxUnavailable
12-
- if maxUnavailable is zero, a new machine must be created, then as soon as there is “buffer” for in-place, in-place update is done
12+
- if maxUnavailable is zero, a new machine must be created first, then as soon as there is “buffer” for in-place, in-place update can proceed
1313
- when in-place is possible, the system should try to in-place update as many machines as possible.
1414
- maxSurge is not fully used (it is used only for scale up by one if maxUnavailable =0)
1515

1616
- No in-place updates are performed when using rollout strategy on delete.
1717

18-
- The implementation respects the existing set of responsibilities of each controller
19-
- MD controller manages MS
18+
- The implementation respects the existing set of responsibilities of each controller:
19+
- MD controller manages MS:
2020
- MD controller enforces maxUnavailable, maxSurge
2121
- MD controller decides when to scale up newMS, when to scale down oldMS
22-
- When there is a decision to scale down, MD controller should check if this can be done via in-place vs delete/recreate. If in-place is possible:
23-
- Old MS will be informed to move machines to the newMS, and newMS will be informed it will receive machines from oldMS.
22+
- When scaling down, the MD controller checks whether the operation can be performed in-place instead of delete/recreate. If in-place is possible:
23+
- Old MS is instructed to move machines to the newMS, and newMS is informed to receive machines from oldMS.
2424
- MS controller manages a subset of Machines
2525
- When scaling down the old MS, if required to move, MS controller is responsible for moving a Machine to newMS
26-
- MS controller, when reconciling the newMS, will take over the moved machine and start the actual in-place upgrade operation
26+
- When reconciling the new MachineSet, the MS controller takes ownership of the moved machine and begins the actual in-place upgrade.
2727

28-
- Orchestration of in-place upgrades between MD controller, MS controller, and Machine controller is implemented using annotations.
29-
Following schemas provide a overview of how new annotation are used
28+
- Orchestration of in-place upgrades between MD controller, MS controller, and Machine controller is implemented using annotations.
29+
Following schemas provide an overview of how new annotations are used.
3030

31-
Workflow #1: MD controller detects an in-place update is possible and it informs oldMS and newMS about how to perform this operation
31+
Workflow #1: MD controller detects an in-place update is possible and it informs oldMS and newMS about how to perform this operation.
3232

3333
```mermaid
3434
sequenceDiagram
@@ -43,7 +43,7 @@ sequenceDiagram
4343
MD Controller->>MS2 (NewMS): Apply annotation ".../receive-machines-from-machinesets": "MS1"
4444
```
4545

46-
Workflow #2: MS controller, when reconciling oldMS, move machines to the newMS
46+
Workflow #2: MS controller, when reconciling oldMS, move machines to the newMS.
4747

4848
```mermaid
4949
sequenceDiagram
@@ -61,7 +61,7 @@ sequenceDiagram
6161
MS Controller->>M1: Move M1 to MS2 (NewMS)<br/>Apply annotation ".../pending-acknowledge-move": ""<br/>Apply annotation ".../update-in-progress": ""
6262
```
6363

64-
Workflow #3: MD controller recongnizes the newMS being moved to the newMS and it scales up newMS to acknowledge the operation
64+
MD controller recognizes that a Machine has been moved to the new MachineSet and scales up the new MachineSet to acknowledge the operation.
6565

6666
```mermaid
6767
sequenceDiagram
@@ -71,17 +71,17 @@ sequenceDiagram
7171
participant M1 as M1<br/>now controlled by<br/>MS2 (NewMS)
7272
MD Controller-->>M1: Are you pending acknowledge?
7373
M1-->>MD Controller: Yes!
74-
MD Controller->>MS2 (NewMS): Scale up to acknowledge M1<br/>Apply annotation ".../acknowledged-move": "M1"
74+
MD Controller->>MS2 (NewMS): Scale up to acknowledge receipt of M1<br/>Apply annotation ".../acknowledged-move": "M1"
7575
```
7676

77-
Workflow #4: MS controller, when reconciling newMS, detects a machine has been acknoledged; it cleanups annotation on the machine and this unblocks the in-place upgrade to start
77+
Workflow #4: MS controller, when reconciling newMS, detects that a machine has been acknowledged; it cleans up annotations on the machine, allowing the in-place upgrade to begin.
7878

7979
```mermaid
8080
sequenceDiagram
8181
autonumber
8282
participant MS Controller as MS Controller<br/>when reconciling<br/>MS2 (NewMS)
8383
participant MS2 (NewMS)
84-
participant M1 as M1<br/>now controller by<br/>MS2 (NewMS)
84+
participant M1 as M1<br/>now controlled by<br/>MS2 (NewMS)
8585
MS Controller-->>MS2 (NewMS): Is there some newly acknowledged replicas?
8686
MS2 (NewMS)-->>MS Controller: Yes, M1!
8787
MS Controller->>M1: Remove annotation ".../pending-acknowledge-move": ""

0 commit comments

Comments
 (0)