Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/odpi/egeria-docs into dev-dojo
Browse files Browse the repository at this point in the history
Signed-off-by: Mandy Chessell <[email protected]>
  • Loading branch information
mandy-chessell committed Oct 11, 2023
2 parents b602a3b + ee9f905 commit a2914b1
Show file tree
Hide file tree
Showing 29 changed files with 1,852 additions and 108 deletions.
6 changes: 3 additions & 3 deletions site/docs/concepts/repository-governance-engine.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ hide:

# Repository Governance Engine

The repository governance engine describes a set of related [repository governace services](/guides/developer/repository-governance-services/overview) that perform governance on open metadata repositories such as dynamically manage [open metadata archives](/concepts/open-metadata-archives) based on changes in the open metadata.
The repository governance engine describes a set of related [repository governance services](/guides/developer/repository-governance-services/overview) that perform governance on open metadata repositories such as dynamically manage [open metadata archives](/concepts/open-metadata-archives) based on changes in the open metadata.

An repository governance engine is hosted in the [Repository Governance Open Metadata Engine Service (OMES)](/services/omes/repository-governance/overview) running on one or more [Engine Host OMAG Servers](/concepts/engine-host).
A repository governance engine is hosted in the [Repository Governance Open Metadata Engine Service (OMES)](/services/omes/repository-governance/overview) running on one or more [Engine Host OMAG Servers](/concepts/engine-host).

When a repository governance engine is called, it is passed a governance request type and request parameters. This is mapped to a call to a repository governance service through the [repository governance engine definition](/concepts/governance-engine-definition).

Expand All @@ -24,4 +24,4 @@ When a repository governance engine is called, it is passed a governance request



--8<-- "snippets/abbr.md"
--8<-- "snippets/abbr.md"
6 changes: 3 additions & 3 deletions site/docs/education/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ We are currently in the process of rewriting our Dojos. There are three dojos av

* [Day 1](/education/egeria-dojo/running-egeria/running-egeria-intro) - How to run Egeria.
* [Day 2](/education/egeria-dojo/developer/overview) - How to build connectors and utilities that use Egeria.
* [Day 3](/education/egeria-dojo/metadata-governance/overview) - How to manage and maintain yor metadata.
* [Day 3](/education/egeria-dojo/metadata-governance/overview) - How to manage and maintain your metadata.

You can still also see the [Original Egeria Dojo](/getting-started/egeria-dojo), but it is not recommended that you rely on it since it is no longer tested. Instead, look for future days of the updated dojo.

## Hands on Labs

The [Hands on Open Metadata Labs](/education/open-metadata-labs/overview) provide an interactive environment that allow you to experiment with different capabilities of Egeria. They are organized by role so you can select the roles of interest to you.
The [Hands on Open Metadata Labs](/education/open-metadata-labs/overview) provide an interactive environment that allows you to experiment with different capabilities of Egeria. They are organized by role so you can select the roles of interest to you.

## Individual tutorials

Expand Down Expand Up @@ -49,4 +49,4 @@ Sometimes it is useful to learn about a new technology by understanding how it c

[Egeria's webinars](/education/webinar-program/overview) run each month and provide a deep dive into a particular topic. All webinars are recorded and are available on YouTube.

--8<-- "snippets/abbr.md"
--8<-- "snippets/abbr.md"
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ At the end of this tutorial you will be able to perform the following tasks.

## Prerequisite Tasks

* [Download and build Egeria](../building-egeria-tutorial)
* [Download and build Egeria](/education/tutorials/building-egeria-tutorial/overview)
* [Familiarize yourself with the Postman test tool](/education/tutorials/postman-tutorial/overview)

## Tutorial Tasks
Expand Down
3 changes: 2 additions & 1 deletion site/docs/guides/operations/kubernetes/charts/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@ See [Helm](../helm.md) for information on configuring Helm to be able to access

## Available Charts

* [base](base.md) - creates a simple Egeria environment with a single metadata server. Includes the Ecosystem UI so that metadata can be searched, browsed.
* [base](base.md) - Creates a simple Egeria environment with a single metadata server. Includes the Ecosystem UI so that metadata can be searched, browsed.
* [odpi-egeria-lab](lab.md) - Demo scenario for 'Coco Pharmaceuticals'. Multiple platorms, metadata repositories, cohorts. Demonstration script via Juypter notebooks. Includes both the Ecosystem UI & business UI .
* [cts](cts.md) - Supports testing repository connectors using our Conformance Test Suite. Can be configured to support other repositories via simple values.
* [pts](pts.md) - Performance test suite to aid in measuring the performance of repository connectors.
* [server](server.md) - Demonstrates simple OMAG Server Starter configuration and deployment.

## Issues & Advanced usage:

Expand Down
118 changes: 118 additions & 0 deletions site/docs/guides/operations/kubernetes/charts/server.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project. -->

# Egeria Server Starter chart (egeria-server)

Egeria Server Starter helm chart defines minimal deployment resources to demonstrate simple single OMAG Server Kubernetes deployment scenario.

It produces following resources:

- Deployment resource to describe the containers and related resources such as volumes;
- Configuration resources to describe environment configuration and application configuration files;
- Volumes to mapping configuration files to the container;
- Service that exposes the container port for external consumption.

The chart can be used as a base to build more complex deployment topologies.

## Configuration

The container application is configured using standard deployment and config map resources customized by setting the values in 'app' map. See [values.yaml](https://github.com/odpi/egeria-charts/blob/main/charts/egeria-server/values.yaml){ target=gh }

``````yaml
app:
jarPath: "/deployments/server"
jarName: "omag-server"
loaderPath: "/deployments/server/lib"
configPath: "/deployments/server/conf"
configName: "cocoMDS1.yml"
livenessProbe: "/actuator/health/livenessState"
readinessProbe: "/actuator/health/readinessState"
``````

| Name | Description |
|------|-------------|
|`app.jarPath` | The path where the boot jar application is located inside the image.|
|`app.jarName` | The name of the boot jar available on the `app.jarPath` location in the image. |
|`app.loaderPath` | The spring boot application `LOADER_PATH`. This is the classpath location for Egeria connector libraries and additional third party libraries to be loaded at runtime. |
|`app.configPath` | The location where configuration files will be located. Note this location is used as volume mount path inside the container. |
|`app.configName` | The name of the configuration file (json or yaml) that will be loaded from `app.configPath` by the OMAG server instance on start-up. |
|`app.livenessProbe` and `app.readinessProbe` | Standard kubernetes pod [probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/){ target=_blank } representing liveness and readiness states respectively. |

For demo purpose, the chart contains example configuration files located in the [files](https://github.com/odpi/egeria-charts/tree/main/charts/egeria-server/files){ target=gh } directory. The files placed here will be always copied as config map resources and mounted inside the container at location defined by `app.configPath`. From here, the server is trying to load the file defined by `app.configName` value.

For more technical details check out the [config.yaml](https://github.com/odpi/egeria-charts/blob/main/charts/egeria-server/templates/config.yaml){ target=gh } and [deployment.yaml](https://github.com/odpi/egeria-charts/blob/main/charts/egeria-server/templates/deployment.yaml){ target=gh } resources.

The container is configured to use Egeria main docker image. By modifying the default container entry point variable we are able to create new runtime environment similar to the standard OMAG platform deployment. The main [docker image](/guides/operations/kubernetes/container-images/) contains full egeria project assembly making it convenient for demo and testing.

## Installation

From helm repository:

```bash
helm repo add egeria https://github.com/odpi/egeria-charts.git
helm repo update
helm install mds1 egeria/egeria-server
```

or locally, using git clone:

```bash
git clone https://github.com/odpi/egeria-charts.git
cd egeria-charts
helm install mds1 charts/egeria-server -f charts/egeria-server/values.yaml
```

If installation for application instance with name `mds1` is successful, helm produces following output:

```bash
NAME: mds1
LAST DEPLOYED: Thu Sep 21 10:55:30 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the Egeria project.
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=egeria-server,app.kubernetes.io/instance=mds1" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
```

!!! tip "Copy/paste the output above to your bash terminal to create port-forwarding rule to the container port instantly"

To uninstall run:

```bash
helm uninstall mds1
```

## Accessing the OMAG Server

To access the OMAG server via HTTP in a local kubernetes deployment, you can leverage `kubectl port-forward` steps described in the output info above.

Or following the example steps:

```bash
> kubectl get pods
NAME READY STATUS RESTARTS AGE
mds1-egeria-server-56fd5cb898-nzdx5 0/1 Running 0 8s
```

```bash
> kubectl port-forward mds1-egeria-server-56fd5cb898-nzdx5 8080
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080
```

At this point, the OMAG server should already be responding via HTTP host address/port:

```bash
> curl http://localhost:8080/actuator/health
{"status":"UP","components":{"livenessState":{"status":"UP"},"readinessState":{"status":"UP"}},"groups":["liveness","readiness"]}
```

For real production deployments, depending on what is available for your K8S environment you will probably leverage different mechanism to expose the service like ingress or static routes.
Loading

0 comments on commit a2914b1

Please sign in to comment.