Versions Compared

Key

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

...


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 (which API provided by orchestrator should be invoked).

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 requests 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 jobsusers/admin are allowed to send their request to running uServices directly by REST.

7. Traffic controller may need to manage the lifecycle of uServices (or done by orchestrator?)
    by detecting the heartbeat from various uServices periodically e.g. one check per 10 seconds.

8. Considering the HA, traffic controller should instantiate at least 2 of those plugins, and should be
    able to monitor the health of those instances of plugins. when any of instances is down, traffic controller
    can restart/recreate one for it again.

....


Sequence flows


Test cases

...