Skip to content

Manages deployment services and application lifecycles for cloud-native applications across distributed edge networks.

Notifications You must be signed in to change notification settings

open-edge-platform/app-orch-deployment

Repository files navigation

Application Orchestration Deployment

License ADM Component Test ARM Component Test OpenSSF Scorecard

Overview

Application Orchestration Deployment is a collection of cloud-native applications (microservices) that facilitate the deployment of user applications to clusters on Edge Nodes in the Open Edge Platform. Together with the Application Catalog, these applications constitute the Application Orchestration architecture layer.

Application Orchestration Deployment components work with the Cluster Manager to provide a powerful and flexible platform for deploying applications to the Edge.

Application Orchestration Deployment components are all multi-tenant aware, with each instance able to handle multiple multi-tenancy projects concurrently.

Application Orchestration Deployment components depend on the Edge Orchestrator Platform Services for many support functions such as API Gateway, Authorization, Authentication, etc.

The overall architecture of the Application Orchestration environment is explained in the Edge Orchestrator Application Orchestration Developer Guide.

Get Started

Each of the applications has its own documentation that describes how to get started with them.

Develop

All the applications are developed in the Go language and are built as Docker images. Each application has a Dockerfile in its build folder. The CI integration for this repository will publish container images to the Edge Orchestrator Release Service OCI registry upon merging to the main branch.

Each application has a corresponding Helm chart in its deployment folder. The CI integration for this repository will publish these Helm charts to the Edge Orchestrator Release Service OCI registry upon merging to the main branch. The applications are deployed to the Edge Orchestrator using these Helm charts, whose lifecycle is managed by Argo CD (see Platform Services).

Some of the applications define their own Kubernetes Custom Resource Definitions (CRDs) and controllers to manage the lifecycle of the resources they create. These are defined in the api directory of the application.

Some of the applications interact with the Application Catalog to retrieve information about the applications that are available for deployment.

Some of the applications interact with the Cluster Manager and its Cluster API (CAPI) interface to follow the lifecycle of Edge Node clusters.

Dependencies

This code requires the following tools to be installed on your development machine:

Build

Below are some of important make targets which developer should be aware about.

Build the component binary as follows:

# Build go binary
make build

Unit test checks are run for each PR and developer can run the unit tests locally as follows:

# Run unit tests
make test

Linter checks are run for each PR and developer can run linter check locally as follows:

make lint

Multiple container images are generated from this repository. They are app-service-proxy, app-interconnect-manager, adm-gateway, adm-controller, app-resource-rest-proxy, app-resource-vnc-proxy and app-resource-manager. Command to generate container images is as follows:

make docker-build

If developer has done any helm chart changes then helm charts can be build as follows:

make helm-build

Contribute

We welcome contributions from the community! To contribute, please open a pull request to have your changes reviewed and merged into the main branch. We encourage you to add appropriate unit tests and end-to-end tests if your contribution introduces a new feature. See Contributor Guide for information on how to contribute to the project.

Community and Support

To learn more about the project, its community, and governance, visit the Edge Orchestrator Community. For support, start with Troubleshooting or Contact us.

License

Application Orchestration Deployment is licensed under Apache 2.0 License.

About

Manages deployment services and application lifecycles for cloud-native applications across distributed edge networks.

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 15