Versions Compared

Key

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

...

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameMulti-cluster K8s
simpleViewerfalse
width
diagramWidth1301
revision68

Multi-cluster Orchestrator micro-service components:

Project Module:  Projects allow multi-tenancy in the application from a user perspective.

Composi Composite App Module:  K8splugin artifacts start in the form of Definitions representing an application. These are nothing but Helm Charts wrapped with some metadata about the application itself.  The Definition is a tar file. If an application is made up of multiple applications then Definition will be made up multiple Helm charts representing each sub-application. The orchestrator decides the placement of each sub-application and their associated Kubernetes resources after considering inputs from the placement controllers like the HPA controller.

Profile Module: Once the Definitions are created, we are ready to create some profiles so that we can customize that definition and instantiate it in Kubernetes. Profile names are unique within a definition and version.

Deployment Intent Group Module: Intent Group API is used to create Intent Groups that can then will be used at instantiation time. Some intents that can be part of an Intent Group are Generic Placement Intent, HPA Intent, and traffic controller Intent.

...

  • Support for metrics that can be retrieved by Prometheus
  • Support for Jaeger distributed tracing by including opentracing operating 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.

...

Composite App API - CreateCompositeApp, GetCompositeApp, DeleteCompositeApp, AddApptoCompositeApp, DeleteAppFromCompositeApp,....

Composite Profile API - .... CreateCompositeProfile, GetCompositeProfile, DeleteCompositeProfile, AddProfiletoCompositeProfile, DeleteProfileFromCompositeProfile

Generic Placement API - CreateGenericPlacement, DeleteGenericPlacement, GetGenericPlacement, AddIntentAddGenericIntent, DeleteIntentDeleteGenericIntent, GetIntent

Deployment Intent API - CreateDeploymentIntent, DeleteDeploymentIntent, GetDeploymentIntent, AddIntent, DeleteIntent, 

Status API -  GetStatus(deploymet)

Runtime Resource Context Library

...

AddResource(contextId, app-name, cluster-name, resourceName)

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..)

....

Sequence flows

...

UpdateResourceField(contextId, app-name, cluster-name, resourceName, fieldName, Value)

Test cases

Composite App with EdgeX, Firewall with Intents