Table of Contents
Table of Contents |
---|
After EMCO has been installed in a central cluster and some 'edge' clusters have been prepared, this section describes the basic operational sequences that are used to onboard clusters and create and deploy composite applications.
...
PlantUML Macro | ||
---|---|---|
| ||
@startuml
skinparam roundcorner 20
title Register rsync via Controller API
actor Admin
box "Distributed Application Scheduler\n(orchestrator)" #LightBlue
participant Controller_API
participant GRPC_Server_info
participant scheduler
end box
box "Network Configuration Manager\n(ncm)" #LightBlue
participant GRPC_Conns_ncm
participant scheduler_ncm
end box
box "EMCO DB" #LightGreen
database mongo
end box
box "AppContext" #LightGreen
database etcd
end box
box "Resource Synchronizer\n(rsync)" #LightBlue
participant InstallAppAPI
end box
Admin -> Controller_API : POST rsync controller\nregistration information\n(Name:"rsync", Host, Port)
Controller_API -> mongo : Save rsync controller record
Controller_API -> GRPC_Server_info : add a GRPC connection\nto rsync server to\ninternal table
Controller_API -> Admin : Return==
== Some time later - ncm\ncalls rsync to instantiate\nNetwork Intents ==
|||
scheduler_ncm -> etcd : Prepares network intent\nresources in AppContext
scheduler_ncm -> GRPC_Conns_ncm : Retrieve gRPC connection\nto rsync from internal table
GRPC_Conns_ncm -> mongo : if rsync connection not present\nretrieve rsync record\nand create connection
GRPC_Conns_ncm -> scheduler_ncm : return rsync connection
scheduler_ncm -> InstallAppAPI : GRPC InstallApp API call (AppContext identifier)
== Some time later - orchestrator\ncalls rsync to instantiate\nan application ==
|||
scheduler -> etcd : Prepares composite\napplication resources\nin AppContext
scheduler -> GRPC_Server_info : Retrieve gRPC connection\nto rsync from internal table
scheduler -> InstallAppAPI : GRPC InstallApp API call (AppContext identifier)
|||
@enduml |
...
This sequence diagram illustrates how action and placment controllers are registered with orchestrator. Later on, Also shown is the part of the a sequence where the orchestrator is preparing the AppContext for a composite application , and the controllers are invoked in priority order to update the AppContext per their specific function is shown.
PlantUML Macro | ||
---|---|---|
| ||
@startuml skinparam roundcorner 20 title Register placement and action controllers via Controller API actor Admin box "Distributed Application Scheduler\n(orchestrator)" #LightBlue participant Controller_API participant GRPC_Server_info participant scheduler end box box "EMCO DB" #LightGreen database mongo end box box "AppContext" #LightGreen database etcd end box box "Placement Controller(s)" #LightBlue participant UpdateContextAPI_place end box box "Action Controller(s)" #LightBlue participant UpdateContextAPI_action end box loop for all placement and action controllers Admin -> Controller_API : POST controller\nregistration information\n(Name, Host, Port, Type, Priority) Controller_API -> mongo : Save controller record Controller_API -> GRPC_Server_info : add a GRPC connection\nto controller to\ninternal table Controller_API -> Admin : Return end == Some time later - orchestrator\nis preparing an AppContext\nfor deployment == ||| scheduler -> etcd : Prepares initial AppContext\nfor the composite app\nusing the generic\nplacement intents scheduler -> mongo : Retrieve all controllers\nrequired for this AppContext\ndeployment loop for all placement controllers in priority order scheduler -> GRPC_Server_info : Retrieve gRPC connection\nfor controller scheduler -> UpdateContextAPI_place : GRPC UpdateContext API call (AppContext identifier) UpdateContextAPI_place -> etcd : updates AppContext according to\nthis controllers placement function UpdateContextAPI_place -> scheduler : return end ||| loop for all action controllers in priority order scheduler -> GRPC_Server_info : Retrieve gRPC connection\nfor controller scheduler -> UpdateContextAPI_action : GRPC UpdateContext API call (AppContext identifier) UpdateContextAPI_action -> etcd : updates AppContext according to\nthis controllers action function UpdateContextAPI_action -> scheduler : return end ||| @enduml |
Onboard Clusters
(show how clusters are onboarded)
Create Network Intents
(show how network intents are defined and deployed to clusters)
Create Composite Application
(show how composite applications are prepared along with the intents required to deploy them)
Basic Composite Application Lifecycle
(show instantiate, terminate, status operations of a composite application)