Skip to content

Commit

Permalink
Merge pull request #559 from entando/ENDOC-515
Browse files Browse the repository at this point in the history
ENDOC-515 Replace ECR with Local Hub
  • Loading branch information
Lyd1aCla1r3 authored Sep 1, 2022
2 parents 7adcce3 + f87802e commit a8b4d9a
Show file tree
Hide file tree
Showing 37 changed files with 130 additions and 134 deletions.
24 changes: 12 additions & 12 deletions vuepress/docs/.vuepress/next.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,32 +78,32 @@ module.exports = {
title: 'Curate and Share Components',
children: [
{
title: 'Bundle Details',
path: path + 'curate/ecr-bundle-details.md'
title: 'Bundle and Component Descriptors',
path: path + 'curate/bundle-details.md'
},
{
title: 'Filtering Bundles',
path: path + 'curate/ecr-bundle-filters.md'
path: path + 'curate/bundle-filters.md'
},
{
title: 'Customize Bundle Info in App Builder',
path: path + 'curate/ecr-bundle-presentation-config.md'
path: path + 'curate/bundle-presentation-config.md'
},
{
title: 'Bundle Version and Updates - FAQ',
path: path + 'curate/ecr-bundle-versions-faq.md'
path: path + 'curate/bundle-versions-faq.md'
},
{
title: 'How Microservices connect to Entando Apps',
path: path + 'curate/ecr-how-microservices-connect-to-apps.md'
path: path + 'curate/how-microservices-connect-to-apps.md'
},
{
title: 'Bundle Upgrade, Downgrade, Uninstall',
path: path + 'curate/ecr-uninstall-flow.md'
path: path + 'curate/uninstall-flow.md'
},
{
title: 'Troubleshooting ECR',
path: path + 'curate/ecr-troubleshooting-guide.md'
path: path + 'curate/troubleshooting-guide.md'
}
]
},
Expand All @@ -119,8 +119,8 @@ module.exports = {
path: path + 'compose/app-builder.md'
},
{
title: 'Entando Component Repository',
path: path + 'compose/ecr-overview.md'
title: 'Local Hub',
path: path + 'compose/local-hub-overview.md'
},
{
title: 'Entando Component Manager',
Expand Down Expand Up @@ -358,8 +358,8 @@ module.exports = {
{
title: 'Curate and Share Applications',
children: [
path + 'curate/ecr-private-git-repo.md',
path + 'curate/ecr-private-images.md',
path + 'curate/private-git-repo.md',
path + 'curate/private-images.md',
]
},
{
Expand Down
14 changes: 7 additions & 7 deletions vuepress/docs/next/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,20 +32,20 @@ On the Entando Platform, Curate and Share means development teams can bundle and

| Documentation | Tutorials |
| :------------ | :-------- |
| [Bundle and Component Descriptors](./curate/ecr-bundle-details.md) | [Install Bundles from a Private Git Repository](../tutorials/curate/ecr-private-git-repo.md) |
| [Filtering Bundles](./curate/ecr-bundle-filters.md) | [Install Bundle Plugins from a Private Image Repo](../tutorials/curate/ecr-private-images.md) |
| [Customize Bundle Info in App Builder](./curate/ecr-bundle-presentation-config.md) | |
| [Bundle Version and Updates FAQ](./curate/ecr-bundle-versions-faq.md) | |
| [Bundle Uninstall](./curate/ecr-uninstall-flow.md) | |
| [Bundle and Component Descriptors](./curate/bundle-details.md) | [Install Bundles from a Private Git Repository](../tutorials/curate/private-git-repo.md) |
| [Filtering Bundles](./curate/bundle-filters.md) | [Install Bundle Plugins from a Private Image Repo](../tutorials/curate/private-images.md) |
| [Customize Bundle Info in App Builder](./curate/bundle-presentation-config.md) | |
| [Bundle Version and Updates FAQ](./curate/bundle-versions-faq.md) | |
| [Bundle Uninstall](./curate/uninstall-flow.md) | |


## Compose an Application
The Compose stage is centered around the [Entando App Builder](./compose/app-builder.md), a low-code composition user interface. In the App Builder, application owners can assemble new components or upgrade existing ones with templates, widgets and PBCs. The [Entando Component Manager](./compose/ecm-overview.md) and [Entando Component Repository](./compose/ecr-overview.md) are integrated into the App Builder to manage your components, making the process flexible and agile.
The Compose stage is centered around the [Entando App Builder](./compose/app-builder.md), a low-code composition user interface. In the App Builder, application owners can assemble new components or upgrade existing ones with templates, widgets and PBCs. The [Entando Component Manager](./compose/ecm-overview.md) and [Local Hub](./compose/local-hub-overview.md) are integrated into the App Builder to manage your components, making the process flexible and agile.

| Documentation | Tutorials |
| :------------ | :-------- |
| [Welcome Wizard](./compose/welcome-wizard.md) | [Page Management](../tutorials/compose/page-management.md) |
| [Entando Component Repository](./compose/ecr-overview.md) | [Widgets and Fragments](../tutorials/compose/widgets-fragments.md) |
| [Local Hub](./compose/local-hub-overview.md) | [Widgets and Fragments](../tutorials/compose/widgets-fragments.md) |
| [Entando App Builder](./compose/app-builder.md) | [Content Creation](../tutorials/compose/content-tutorial.md) |
| [Entando Component Manager](./compose/ecm-overview.md) | [Content Templates](../tutorials/compose/content-templates-tutorial.md) |
| | [Digital Assets](../tutorials/compose/digital-assets-tutorial.md) |
Expand Down
2 changes: 1 addition & 1 deletion vuepress/docs/next/docs/community/contributing.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# Contributing to Entando

There are many ways to contribute to Entando including participating in the [Entando Forum](https://forum.entando.org), opening issues on GitHub, [updating documentation](https://github.com/entando/entando-docs/tree/master/vuepress), building bundles using the [Entando Component Repository](../compose/ecr-overview.md), and contributing directly to the source.
There are many ways to contribute to Entando including participating in the [Entando Forum](https://forum.entando.org), opening issues on GitHub, [updating documentation](https://github.com/entando/entando-docs/tree/master/vuepress), building bundles using the [Local Hub](../compose/local-hub-overview.md), and contributing directly to the source.

## Contributing to the Source

Expand Down
4 changes: 2 additions & 2 deletions vuepress/docs/next/docs/compose/app-builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The Entando App Builder plays a key role in the composition of Entando Applicati

![app-builder](./img/app-builder.png)

The App Builder allows you to create pages and content, configure widgets and plugins, and interact with the [Entando Component Repository](ecr-overview.md) (ECR). It also interfaces with the [Entando Hub](https://hub.entando.com), where you can share components and collaborate.
The App Builder allows you to create pages and content, configure widgets and plugins, and interact with the [Local Hub](local-hub-overview.md). It also interfaces with the [Entando Cloud Hub](https://hub.entando.com), where you can share components and collaborate.

Pages are designed and embedded with functionality via drag-and-drop:

Expand All @@ -19,7 +19,7 @@ In the default deployment, the App Builder is a React JS application served by N
### Key Features:


* Install component bundles from the Entando Component Repository
* Install component bundles from the Local Hub

* Deploy standalone packaged business capabilities

Expand Down
10 changes: 5 additions & 5 deletions vuepress/docs/next/docs/compose/ecm-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ sidebarDepth: 2

​​An Entando Application is composed of the [Entando App Builder](app-builder.md), [Entando App Engine](../getting-started/concepts-overview.md#entando-app-engine), and Entando Component Manager. The Entando Component Manager (ECM) provides functionality to build and organize micro frontends and widgets from within the App Builder. It also manages the connections between an application and the installed plugins.

The Component Manager is a service that links the [Entando Component Repository](ecr-overview.md) (ECR) of the App Builder to the core application instance. It appears as `quickstart-cm-deployment` in the Kubernetes pod list:
The Component Manager is a service that links the [Local Hub](local-hub-overview.md) of the App Builder to the core application instance. It appears as `quickstart-cm-deployment` in the Kubernetes pod list:

![pods.png](./img/pods.png)

The ECM communicates with the Kubernetes service to populate the ECR with the bundles available as [Custom Resources](../consume/custom-resources.md) in the Entando namespace. These bundles can be installed in the application and managed from within the ECR.
The ECM communicates with the Kubernetes service to populate the Local Hub with the bundles available as [Custom Resources](../consume/custom-resources.md) in the Entando namespace. These bundles can be installed in the application and managed from within the Local Hub.

![ecm-flow.png](./img/ecm-flow.png)

In the flow pictured above:
1. A user visits the ECR page in the App Builder
2. The ECR makes a REST call to the `digital-exchange` endpoint
1. A user visits the Hub page in the App Builder
2. The Hub makes a REST call to the `digital-exchange` endpoint
3. The Component Manager receives the `digital-exchange` request
4. The Component Manager calls the `k8s-service` to return the list of available `EntandoDeBundles` in the namespace

Expand All @@ -26,6 +26,6 @@ A similar process occurs when bundles are installed or uninstalled. The [Entando

* Manages the installation and removal of project bundles

* Makes components available in the App Builder through the Component Repository
* Makes components available in the App Builder through the Local Hub

* Handles versioning of component bundles for sharing and collaborating
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
---
sidebarDepth: 2
---
# Entando Component Repository
# Local Hub

## Introduction

The Entando Component Repository (ECR) is a repository where
reusable components can be shared across applications and enterprises.
The Local Hub is a repository of modular components that can be reused within an Entando Application.

The following examines some of the nuts and bolts of the ECR.
The following examines some of the nuts and bolts of the Local Hub.

### Component

Expand All @@ -17,18 +16,15 @@ 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
### Entando 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.
An Entanto Bundle is a package containing one or more components and descriptor files that provide information about the bundle. 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
readable by the Entando Operator. It provides information
about an ECR bundle and makes the bundle available in Kubernetes for the
about an Entando Bundle and makes the bundle available in Kubernetes for the
Entando Component Manager.

### Entando Component Manager (ECM)
Expand All @@ -46,16 +42,16 @@ responsible for the low-level communication with the K8s cluster API.

![ECR Architecture](./img/ecr-architecture.png)

From an architectural point of view, the ECR is composed of:
1. The `EntandoDeBundles` which contain the metadata associated with a bundle
2. The `entando-k8s-service` which reads the bundles from the
From an architectural point of view, the Entando Component Repository (ECR) is composed of:
1. The `EntandoDeBundles`, which contain the metadata associated with a bundle. The list of EntandoDeBundles (or Entando Bundles) is displayed as the "Local Hub" in the App Builder.
2. The `entando-k8s-service`, which reads the bundles from the
cluster/namspace(s) and serves them via a consumable API
3. The ECM which creates the connection between the EntandoApp
3. The ECM, which creates the connection between the EntandoApp
and the K8s service.

### Example Flow

1. From the Repository page in the App Builder, the user finds the
1. From the Hub page in the App Builder, the user finds the
list of bundles shared in that EntandoApp

2. App Builder requests a list of available bundles from the ECM
Expand Down
2 changes: 1 addition & 1 deletion vuepress/docs/next/docs/consume/entandoapp-cr.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ spec:
| :- | :- |
| `spec.customServerImage`| Used to deploy the Docker image containing your custom Entando App. Follow these instructions on how to [build your own image](../../tutorials/devops/build-core-image.md). This property and the `spec.standardServerImage` are mutually exclusive.|
|`spec.dbms` | Allowed values are: MySQL, PostgreSQL (default), Oracle, or embedded. Oracle is only supported as an external database.|
|`spec.ecrGitSshSecretName`| The configuration used by the Entando Component Repository to download bundles from authenticated Git repositories. It's a Secret containing a private key file named `rsa_id` that matches a public key configured in the authenticated Git repository.|
|`spec.ecrGitSshSecretName`| The configuration used by the Entando Component Manager to download bundles from authenticated Git repositories. It's a Secret containing a private key file named `rsa_id` that matches a public key configured in the authenticated Git repository.|
|`spec.environmentVariables`| A map of environment variables to pass to the EntandoApp Docker image. This can be used to provide connection details of custom datasources or message queues as discussed in the [custom datasources tutorial](../../tutorials/devops/change-default-datasource.md). These variables can sometimes be used as a mechanism to override any of the default environment variables that need customization.|
|`spec.ingressPath`| Specifies the web context of the EntandoApp to be deployed. |
|`spec.ingressHostName`| The hostname of the Kubernetes ingress to be created for the EntandoApp. EntandoPlugins linked to this app will also be made available on the host.|
Expand Down
8 changes: 4 additions & 4 deletions vuepress/docs/next/docs/create/component-gen-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ This section provides an overview of the component generation process. If you wa
2. Define bundle and deploy assets
- The Entando blueprint includes scripts and tools to automatically generate a bundle ready for deployment to the ECR. The bundle will include your microservice, generated microfrontends, and any microfrontends that you have created manually under the `ui` folder
- The generated Spring Boot microservice can be built and deployed to a Docker registry using the provided maven Jib plugin
- Generated bundles can be pushed to a git repository of the users choice
- Generated bundles can be pushed to a Git repository of the user's choice

3. Deploy bundles to [Entando Component Repository (ECR)](../compose/ecr-overview.md)
3. Deploy bundles to the [Local Hub](../compose/local-hub-overview.md)
- Once your Docker images are pushed to your registry and your bundle is available in Git you can generate an Entando bundle descriptor and push the bundles to the ECR
- The bundles can be versioned and updated using tags in the git repository
- The bundles can be versioned and updated using tags in the Git repository

4. Install in Entando Apps
- Once the bundles are in the ECR they are available for deployment in any Entando application that has access to the ECR in the cluster
- Once the bundles are in the Local Hub, they are available for deployment within the Entando Application
2 changes: 1 addition & 1 deletion vuepress/docs/next/docs/create/component-gen-tech.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ When generating a microservice using the Entando Component Generator there are a
* Microservice code
* The Component Generator currently only supports the generation of Spring Boot microservices but will support the generation of Quarkus based services soon.
* If you're interested in using Quarkus in your Entando app, contact us on the [Forum](https://forum.entando.org/) or [Community Slack](https://join.slack.com/t/entandocommunity/shared_invite/zt-g609owdv-2K~YRh8zrI6lqlWo4aFWUw) and we'll help you get started.
* If you're considering non-Java based microservices, [here is a definition of an Entando plugin](../curate/ecr-bundle-details.md#plugin), including information on the runtime contract required to use them.
* If you're considering non-Java based microservices, [here is a definition of an Entando plugin](../curate/bundle-details.md#plugin), including information on the runtime contract required to use them.
* Database type
* Entando recommends standardizing your choice of database to simplify operational maintenance but you do have the ability to use different databases for different microservices if you choose.
* Supported choices are none, MySQL, and Postgres. Enterprise customers can choose Oracle but should contact Entando Support for details.
Expand Down
Loading

0 comments on commit a8b4d9a

Please sign in to comment.