Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
titleRegister rsync
@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