...
The interface between SM config and Traffic Controller:
TBD
Traffic Controller
Main Function: it acts as main controlling loop/daemon, and receives the request in a form of
REST from external modules e.g. orchestrator. Then it parses these requests and
figures out the exact purposes which these requests want to express
e.g. service creation, DNS update or workload adjust. Afterwards, it invoke corresponding
components like SM config, DNS updater, to fulfill these requirements by creating
and configuring related uServices based on the various mechanisms of istio.
Main steps:
0. Traffic controller need to be registered in orchestrtor by calling the APIs provided by orchestrtor
1. Orchestrtor starts to instantiate the traffic controller
2. Traffic controller finds the config files about various plugins like SM config,
Loadbalancers and DNS updater from some certain locations, and then instantiate
these plugins. Here, these plugins may be defined as istio VirtualService and
their associated yaml files should be provided beforehand.
3. Traffic controller need to have some health-check about the instances of these
plugins and make sure they are up and running well(some heath-check criteria
also need to be defined).
4. Traffic controller may need to notify orchestrator that it, including the plugins,
is ready to serve.
5. At this moment, orchestrator can start to monitor and manage the life-cycle of traffic controller.
And the way/APIs of monitor and manage need to be clarified.
6. The reuqests from users/admin can be sent to traffic controller from now on.
Traffic controller needs to indentify the purpose of various intents, and forward
the intents to various instances of plugins to finish the uSerivce creation/destroy jobs.
7. Traffic controller may need to manage the lifecycle of uServices (or done by orchestrator?)
....
Sequence flows
Test cases
...