-
Notifications
You must be signed in to change notification settings - Fork 288
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add design for in-place upgrades in EKS-A (#6893)
- Loading branch information
Showing
6 changed files
with
283 additions
and
0 deletions.
There are no files selected for viewing
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.
42 changes: 42 additions & 0 deletions
42
designs/images/in-place-controller-manager-components.puml
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,42 @@ | ||
@startuml in-place-controller-manager-components | ||
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml | ||
|
||
title Component diagram for In-place upgrades in EKS-A controller manager | ||
|
||
Container(api, "Kubernetes API server", "Go", "Provides read/write access to the kubernetes API objects stored in the etcd server and allows to subscribe to events when they change") | ||
Person(user, "EKS-A user", "Manages EKS-A clusters") | ||
Container_Ext(workloadKubeApiServer, "Workload Cluster Kubernetes API server", "Go", "Provides read/write access to the kubernetes API objects stored in the etcd server") | ||
|
||
Container_Boundary(clusterController, "EKS-A Controller Manager") { | ||
Component(clusterReconciler, "Cluster Reconciler", "Go, controller-runtime", "Validates input and orchestrates Cluster reconcile requests") | ||
Component(cpUpgrade, "ControlPlaneKubeadmUpgrade Reconciler", "Go, controller-runtime", "Reconciles requests to upgrade CP in-place") | ||
Component(workerUpgrade, "WorkersKubeadmUpgrade Reconciler", "Go, controller-runtime", "Reconciles requests to upgrade a group of workers in-place") | ||
Component(nodeUpgrade, "NodeUpgrade Reconciler", "Go, controller-runtime", "Reconciles requests to upgrade a node in-place") | ||
Component(cpHook, "CP External upgrade Hook", "CAPI Runtime Hook, Go", "Implements CAPI CP External upgrade Runtime Extension") | ||
Component(mdHook, "MachineDeployment External upgrade Hook", "CAPI Runtime Hook, Go", "Implements CAPI Machine Deployment upgrade Runtime Extension") | ||
|
||
Rel(clusterReconciler, api, "Polls EKS-A Changes and updates CAPI objects", "HTTPS") | ||
|
||
Rel(cpUpgrade, api, "Polls ControlPlaneKubeadmUpgrade changes and creates NodeUpgrades", "HTTPS") | ||
Rel(workerUpgrade, api, "Polls WorkersKubeadmUpgrade changes and creates NodeUpgrades", "HTTPS") | ||
Rel(nodeUpgrade, api, "Polls NodeUpgrade changes", "HTTPS") | ||
|
||
Rel(cpHook, api, "Creates ControlPlaneKubeadmUpgrade") | ||
Rel(mdHook, api, "Creates WorkersKubeadmUpgrade") | ||
} | ||
|
||
Container(kcp, "KCP controller", "Go, controller-runtime", "Reoncile Control Planes") | ||
Container(md, "Machine Deployment controller", "Go, controller-runtime", "Reoncile Control Planes") | ||
|
||
Rel(user, api, "Writes EKS-A API objects", "JSON/HTTPS") | ||
Rel(kcp, api, "Polls KCP Changes", "HTTPS") | ||
Rel(md, api, "Polls MD Changes", "HTTPS") | ||
|
||
Rel(kcp, cpHook, "Calls", "HTTPS") | ||
Rel(md, mdHook, "Calls", "HTTPS") | ||
|
||
Rel(nodeUpgrade, workloadKubeApiServer, "Schedules upgrader pods", "HTTPS") | ||
|
||
|
||
SHOW_LEGEND() | ||
@enduml |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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,27 @@ | ||
@startuml in-place-eks-a-container | ||
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml | ||
|
||
title Container diagram for EKS-A In-place upgrades | ||
|
||
Person(user, "User", "An EKS-A cluster admin") | ||
|
||
System_Boundary(eksa, "EKS-A") { | ||
Container(manager, "EKS-A controller manager", "Go, controller-runtime", "Reconciles EKS-A Cluster, CPUpgrade, MachineDeploymentUpgrade and NodeUpgrade") | ||
Container(kcp, "KCP Controller", "Go, controller-runtime", "Reconciles Control planes") | ||
Container(md, "MachineDeployment Controller", "Go, controller-runtime", "Reconciles MachineDeployments") | ||
} | ||
|
||
Container(api, "Kube API server", "Go", "Provides read/write access to the kubernetes API objects stored in the etcd server and allows to subscribe to events when they change") | ||
Container_Ext(workloadKubeApiServer, "Workload Cluster Kube API server", "Go", "Provides read/write access to the kubernetes API objects stored in the etcd server") | ||
|
||
Rel(manager, api, "Polls EKS-A Changes and updates CAPI objects", "HTTPS") | ||
Rel(kcp, api, "Polls KCP Changes", "HTTPS") | ||
Rel(kcp, api, "Polls MD Changes", "HTTPS") | ||
|
||
Rel(user, api, "Updates EKS-A objects", "HTTPS") | ||
Rel(kcp, manager, "Calls external strategy webhook", "HTTPS") | ||
Rel(md, manager, "Calls external strategy webhook", "HTTPS") | ||
Rel(manager, workloadKubeApiServer, "Schedules upgrader pods", "HTTPS") | ||
|
||
SHOW_LEGEND() | ||
@enduml |
Oops, something went wrong.