# Entando Local Hub
The Entando Local Hub is a repository of modular components accessible from an Entando App Builder. The Entando Bundles available to the Entando Application are represented in the Local Hub and can be deployed, installed, updated or versioned using the App Builder UI.
The functional blocks and services of the Local Hub are examined below in further detail.
# Entando Component
Entando defines a component as an identifiable resource or block of code that can be used in an Entando Application. Examples of components are widgets, micro frontends, content types, labels, plugins, and static resources.
# Entando Bundle
An Entando Bundle is a package containing one or more components, the required descriptor files, and bundle metadata.
A git-based bundle requires a
descriptor.yaml and is published in a Git registry. A docker-based bundle requires an
entando.json and is published to Docker. Both git-based and docker-based bundles are shared with an Entando Application using the EntandoDeBundle custom resource.
# EntandoDeBundle Custom Resource
The EntandoDeBundle custom resource is a Kubernetes resource read by the Entando Operator. It provides information about an Entando Bundle and makes the bundle available to the Entando Component Manager in Kubernetes.
# Entando Component Manager
The Entando Component Manager creates the connection between the EntandoApp
and the Entando Kubernetes integration service. It is part of the EntandoApp and communicates with both the
entando-core and the Kubernetes cluster. It is also responsible for the installation and removal of components from the
# Entando Kubernetes Integration Service
The Entando Kubernetes integration service, or
entando-k8S-service, is part of the platform infrastructure and responsible for the low-level communication with the K8s cluster API. It reads the bundles in an Entando Cluster and serves them with an API accessible from the App Builder.
The following flow describes how the App Builder, Entando Kubernetes integration service and Entando Component Manager interact to populate the Local Hub with available bundles.
# Example Flow
The user navigates to the Hub page in the App Builder to view the bundles shared with that EntandoApp
The App Builder requests a list of bundles available to the EntandoApp from the Entando Component Manager
The Entando Component Manager queries the
entando-k8S-serviceto retrieve the list of bundles
entando-k8s-servicequeries the cluster/namespace(s) and returns the list of available bundles to the Entando Component Manager
The Entando Component Manager sends the list of bundles to the App Builder
The available bundles appear in the Hub page of the App Builder, where they can be installed and managed by the user