# Entando Component Repository
# Introduction
The Entando Component Repository (ECR) is a repository where reusable components can be shared across applications and enterprises.
The following examines some of the nuts and bolts of the ECR.
# Component
An Entando component - simply referred to as component - is an identifiable resource or block of code that can be used in an Entando widget, page or application. Examples of components are widgets, micro frontends, content types, labels, plugins, and static resources.
# ECR Bundle
An ECR bundle is a package containing one or more components and a descriptor.yaml file providing information about the bundle. The bundle is published in a Git registry and shared with an Entando Application using the EntandoDeBundle custom resource.
# EntandoDeBundle Custom Resource
The EntandoDeBundle custom resource is a Kubernetes resource readable by the Entando Operator. It provides information about an ECR bundle and makes the bundle available in Kubernetes for the Entando Component Manager.
# Entando Component Manager (ECM)
The Entando Component Manager is part of the
EntandoApp and communicates with both the entando-core
and Kubernetes cluster via the entando-k8s-service
. The ECM reads the bundles from the cluster and exposes them with an API accessible from the App Builder. It is
also responsible for the installation and removal of components from the entando-core
.
# Entando-K8s-Service
The entando-k8S-service
is part of the platform infrastructure and is
responsible for the low-level communication with the K8s cluster API.
# Architecture
From an architectural point of view, the ECR is composed of:
- The
EntandoDeBundles
which contain the metadata associated with a bundle - The
entando-k8s-service
which reads the bundles from the cluster/namspace(s) and serves them via a consumable API - The ECM which creates the connection between the EntandoApp and the K8s service.
# Example Flow
From the Repository page in the App Builder, the user finds the list of bundles shared in that EntandoApp
App Builder requests a list of available bundles from the ECM
ECM queries the K8s service to retrieve a list of bundles
The
entando-k8s-service
queries the cluster/namespace(s) for available bundles and returns the list to the ECMECM sends the list to App Builder
The user is able to see and install the available bundles