-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3833 from wfernandes/mgmt-cluster-operator-caep
📖 Add CAPI Provider Operator CAEP
- Loading branch information
Showing
7 changed files
with
1,183 additions
and
0 deletions.
There are no files selected for viewing
1,075 changes: 1,075 additions & 0 deletions
1,075
docs/proposals/20201020-capi-provider-operator.md
Large diffs are not rendered by default.
Oops, something went wrong.
46 changes: 46 additions & 0 deletions
46
docs/proposals/images/capi-provider-operator/fig1.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
@startuml | ||
title Upgrade Provider without changing contract version | ||
actor User | ||
participant APIServer | ||
participant "Management Cluster\nController" as MgmtClusterController | ||
|
||
note over APIServer | ||
Current State: | ||
A core provider exists with version | ||
v0.3.10 abiding by contract v1alpha3 | ||
end note | ||
==== | ||
User -> APIServer: kubectl apply -f updated-provider.yaml | ||
|
||
activate APIServer | ||
APIServer --> MgmtClusterController: upgrade core provider to v0.3.11 | ||
activate MgmtClusterController | ||
MgmtClusterController -> MgmtClusterController: Reconcile | ||
|
||
MgmtClusterController -> APIServer: Get existing Core provider | ||
APIServer --> MgmtClusterController: Response | ||
|
||
note over MgmtClusterController | ||
- Verify if the Core provider exists | ||
- Get the Status.Contract of existing provider | ||
end note | ||
|
||
MgmtClusterController -> APIServer: Get metadata from ConfigMap for v0.3.11 | ||
APIServer --> MgmtClusterController: Response | ||
|
||
note over MgmtClusterController | ||
- Verify that v0.3.11 abides by existing contract | ||
end note | ||
|
||
MgmtClusterController -> APIServer: Pause core provider\nto avoid reconciliation | ||
|
||
MgmtClusterController -> APIServer: Delete old core provider | ||
MgmtClusterController -> APIServer: Install new core provider | ||
|
||
|
||
MgmtClusterController -> APIServer: Unpause core provider | ||
|
||
|
||
deactivate APIServer | ||
deactivate MgmtClusterController | ||
@enduml |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions
62
docs/proposals/images/capi-provider-operator/fig2.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
@startuml | ||
title Upgrade Provider and change contract version | ||
actor User | ||
participant APIServer | ||
participant "Management Cluster\nController" as Controller | ||
|
||
note over APIServer | ||
Current State: | ||
A core provider exists with version | ||
v0.3.10 abiding by contract v1alpha3 | ||
end note | ||
==== | ||
User -> APIServer: kubectl apply -f updated-provider.yaml | ||
|
||
activate APIServer | ||
APIServer --> Controller: upgrade core provider to v0.4.0\nwhich abides by contract v1alpha4 | ||
activate Controller | ||
Controller -> Controller: Reconcile | ||
|
||
Controller -> APIServer: Get existing Core provider | ||
APIServer --> Controller: Response | ||
|
||
note over Controller | ||
- Verify if the Core provider exists | ||
- Get the Status.Contract of existing provider | ||
end note | ||
|
||
Controller -> APIServer: Get metadata from ConfigMap for v0.4.0 | ||
APIServer --> Controller: Response | ||
|
||
note over Controller | ||
Identify that we are upgrading | ||
the contract of the providers. | ||
end note | ||
|
||
Controller -> APIServer: Get all providers | ||
APIServer --> Controller: Response | ||
|
||
note over Controller | ||
For each existing provider, | ||
fetch version that abides by new contract. | ||
If there is a provider that doesn't have a | ||
version that abides by new contract, | ||
then set condition, notify user of error? | ||
Else continue... | ||
end note | ||
|
||
Controller -> APIServer: Pause all providers\nto avoid reconciliation | ||
|
||
Controller -> APIServer: Delete each provider | ||
Controller -> APIServer: Install new provider | ||
|
||
note over Controller | ||
Confirm all health checks, | ||
providers are running. | ||
end note | ||
|
||
Controller -> APIServer: Unpause all providers | ||
|
||
deactivate APIServer | ||
deactivate Controller | ||
@enduml |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.