...
draw.io Diagram | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
RESTful North API (with examples)
Onboarding
Profiles
Deployment Intent
Interface API to Controllers (with examples)
Replication controller interface
Placement controller interface for internal controllers
Placement controller interface for external controllers
Resource modifier controller interface for internal controllers
Resource modifier controller interface for external controllers
Action controller interface for internal controllers
Action controller interface for external controllers
Restful South API (to Resource installer service, with examples)
|
Multi-cluster Orchestrator micro-service components:
Project Module:
Definition Module:
Profile Module:
Day 2 Config Module:
Intent Group Module:
Generic Placement Module:
Instantiation Module:
Cluster Registration Module
Resource sync micro-service components:
Resource Sync Module:
Status Update Module:
Internal Design details
Guidelines that need to kept in mind
- Support for metrics that can be retrieved by Prometheus
- Support for Jaeger distributed tracing by including opentracing libraries around HTTP calls.
- Support for logging that is understood by fluentd
- Mutual exclusion of database operations (keeping internal modules accessing database records simultaneously and also by replication entities of the scheduler micro-service).
- Resilience - ensure that the information returned by controllers is not lost as the synchronization of resources to remote edge clouds can take hours or even days when the edge is not up and running and possibility of restart of scheduler micro service in the meantime.
- Concurrency - Support multiple operations at a time and even synchronizing resources in various edge clouds in parallel.
- Performance - Avoiding file system operations as much as possible.
RESTful North API (with examples)
Onboarding
Profiles
Deployment Intent
Interface API to Controllers (with examples)
Replication controller interface
Placement controller interface for internal controllers
Placement controller interface for external controllers
Resource modifier controller interface for internal controllers
Resource modifier controller interface for external controllers
Action controller interface for internal controllers
Action controller interface for external controllers
Restful South API (to Resource installer service, with examples)
Modules (Description, internal structures etc..)
...