...
The EMCO rsync microservice also exposes it's API via gRPC to the EMCO microservices. So, while rsync is not a placement or action controller, it is also registered with the controller API so that EMCO microservices that interact with rsync as a gRPC client can obtain the gRPC connections details in the same manner as with other controllers.
The sequence diagram illustrates the process of registering rsync with the orchestrator via the Controller API. It also shows a detail segement of the Composite Application instantiation sequence where the rsync gRPC client connection is retrieved.
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 |
Controller Registration
As mentioned above, EMCO provides for the addition of controllers to perform specific placement and action operations on a Composite Application prior to it being deployed to a set of clusters.
This sequence diagram illu