60 lines
1.7 KiB
Plaintext
60 lines
1.7 KiB
Plaintext
@startuml
|
|
top to bottom direction
|
|
skinparam linetype ortho
|
|
|
|
node PilotNode as "Pilot Node" {
|
|
database DataStore as "Data Store"
|
|
|
|
component EmissaryServer as "Emissary Server" {
|
|
|
|
component SpecificationRegistry as "Specification Registry" {
|
|
component UCISpecification as "UCI Spec"
|
|
component MDNSSpecification as "mDNS Spec"
|
|
component AppSpecification as "App Spec"
|
|
component ProxySpecification as "Proxy Spec"
|
|
component SysUpgradeSpecification as "SysUpgrade Spec"
|
|
}
|
|
|
|
component HTTPHandler as "HTTP Handler"
|
|
|
|
HTTPHandler .down.> SpecificationRegistry: validates agents data with
|
|
|
|
HTTPHandler .right.> DataStore: saves agent data in
|
|
}
|
|
}
|
|
|
|
node OperatorNode as "Operator Node" {
|
|
component EmissaryClient as "Emissary Client"
|
|
|
|
EmissaryClient -left-> HTTPHandler: administrates
|
|
}
|
|
|
|
node OpenWRTNode as "OpenWRT Node" {
|
|
component EmissaryAgent as "Emissary Agent" {
|
|
|
|
component StateManager as "State Manager"
|
|
|
|
StateManager --up-> HTTPHandler: fetches agent ^*specs from
|
|
|
|
component UCIController as "UCI Controller"
|
|
|
|
UCIController .up.> StateManager: reconciles with
|
|
|
|
component SysUpgradeController as "SysUpgrade Controller"
|
|
|
|
SysUpgradeController .up.> StateManager: reconciles with
|
|
|
|
component ProxyController as "Proxy Controller"
|
|
|
|
ProxyController .up.> StateManager: reconciles with
|
|
|
|
component MDNSController as "mDNS Controller"
|
|
|
|
MDNSController .up.> StateManager: reconciles with
|
|
|
|
component AppController as "App Controller"
|
|
|
|
AppController .up.> StateManager: reconciles with
|
|
}
|
|
}
|