Skip to content

Commit

Permalink
Add CAPI Provider Operator CAEP
Browse files Browse the repository at this point in the history
  • Loading branch information
Warren Fernandes committed Jan 20, 2021
1 parent be5ff75 commit 2955368
Show file tree
Hide file tree
Showing 7 changed files with 1,183 additions and 0 deletions.
1,075 changes: 1,075 additions & 0 deletions docs/proposals/20201020-capi-provider-operator.md

Large diffs are not rendered by default.

46 changes: 46 additions & 0 deletions docs/proposals/images/capi-provider-operator/fig1.plantuml
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 docs/proposals/images/capi-provider-operator/fig2.plantuml
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.

0 comments on commit 2955368

Please sign in to comment.