...
- Client creates logical cloud using logical cloud creation API and the following documents are created in the DCM collection
- The core module parses the Json and creates a new document for the logical cloud in the mongodb DCM collection.
- The core module also creates a cluster document in the DCM collection
- The user module parses the Json and creates a new document for user
- The namespace module parses the Json and creates a new document for namespace
- Associates logical cloud with clusters (this API is called multiple times)
- The core module uses the traffic controller library to get the kubeconfig of the cluster added to the logical cloud
- Updates the cluster document with the cluster name, loadbalancer ip and kubeconfig of the cluster
- Add quota for logical cloud
- The quota module creates a quota document containing the quota details
- Apply API is called
- Service mesh module gets CA bundle from CA controller via gRPC
- Service mesh module gets names of logical cloud and creates a new namespace name using name of logical cloud name
- Service mesh module creates helm template/istioctl manifest
- Service mesh module creates service mesh document in the DCM collection and stores the above (CA bundle contents, istio namespace, istioctl manifest) in the document
- DCM informs the resource synchronizer to start the logical cloud creation via gRPC and the resource synchronizer starts reading from the DB
- The DCM gets status from the resource synchronizer via gRPC
The details of the DCM Data Model can be found in the link below;
DCM MongoDB Data Model
DCM Source Code Directory Structure
...