...
Helm provides a hook mechanism to allow the users to specify additional action/logic at certain points in an application's life cycle. Helm supports pre-install, post-install, pre-delete, post-delete, pre-update, and post-update hooks. Add support of these hooks in EMCO. For example, if the user specifies some resources at the pre-install hook in the Helm chart, EMCO will deploy those resources in their appropriate order before deploying the application.
Azure Arc, Google Anthos, AWS GitOps all implement a GitOps way of deploying applications to K8s clusters. That is, when the CI/CD or users write an application in a git repository, the sync agent in a cluster will be notified of the new application and will read the git repository, and will send the app to its local K8s API server. For geo-distributed applications, intelligent and on-demand deployment, as well as automatic setup of network connections between these apps, is needed. EMCO can act as an intelligent entity that adds intelligent deployment decision to the app in the git repository. Selected clusters' sync agents can be notified at the right time to read the app for deployment. In this release, we will support the integration of EMCO with Azure Arc. That is, after EMCO makes the intelligent decision, EMCO will create an Azure k8s configuration that triggers interact with the Azure Arc to program the selected edge cluster's sync agent . EMCO is responsible for monitoring status, customization of the resources based on intents, inter-app dependency, etc.to pull the application to its local cluster.
...
Referential Integrity currently relies on a combined configmap with the schema for all controllers. When integrity for EMCO data resource means the following rules must be satisfied:
- When a data resource is created or updated, any resources referenced by this data resource must already exist.
- A data resource can not be deleted if it is still referenced by another resource
EMCO framework allows the dynamic addition of new controllers to the EMCO control plane (for example, you can add a new GPU capacity-based placement controller). EMCO will support referential integrity associated with any new controller. That is, when a new controller is dynamically added, we need to dynamically incorporate its schema with the existing schema. To support this, EMCO will add a new API for all the new controllers to register their schema and EMCO will automatically merge the new schema with its existing schema. EMCO will automatically build the cross-reference relationship associated with the new data resources created by this new controller and enforce the referential integrity associated with the new data resources.
The Distributed Cloud Manager (DCM) is an integral in EMCO supporting EMCO supports multiple clusters to be grouped as a Logical Cloud. DCM will be overhauled with the introduction of This release will add support for Logical Cloud labels (which will support K8s namespace labels), JSON-based logical cloud API validation and the ability to query its status using a Status API, allowing deployments to be more easily enrolled and monitored., and logical cloud status query API.
These features have been created and tracked in GitLab: https://gitlab.com/project-emco/core/emco-base/-/issues
...