fix(docs): miscellaneous docs and styling fixes (#11270)

* miscellaneous docs and styling fixes

* fix the review comments

* update upgrade docs

* Update and fix upgrade docs

* Update openmetadata-docs-v1/content/v1.0.0/deployment/upgrade/docker.md

---------

Co-authored-by: Pere Miquel Brull <peremiquelbrull@gmail.com>
This commit is contained in:
Akash Jain 2023-04-26 19:26:38 +05:30 committed by GitHub
parent dfcd7c7029
commit 47cdafe709
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 209 additions and 82 deletions

View File

@ -81,7 +81,7 @@ These settings apply as well when using managed instances, such as RDS or AWS Op
## 1. Download the distribution
Visit the [releases page](https://github.com/open-metadata/OpenMetadata/releases) and download the latest binary release.
Visit the [releases page](https://github.com/open-metadata/OpenMetadata/releases/latest) and download the latest binary release.
Release binaries follow the naming convention of `openmetadata-x.y.z.tar.gz`. Where `x`, `y`, and `z` represent the
major, minor, and patch release numbers.
@ -223,6 +223,30 @@ ELASTICSEARCH_HOST='vpc-<random_characters>.<aws_region>.es.amazonaws.com'
ELASTICSEARCH_PASSWORD='<ES_PASSWORD>'
```
## Troubleshooting
### Java Memory Heap Issue
If your openmetadata application logs speaks about the below issue -
```
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "AsyncAppender-Worker-async-file-appender"
Exception in thread "pool-5-thread-1" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AsyncAppender-Worker-async-file-appender" java.lang.OutOfMemoryError: Java heap space
Exception in thread "dw-46" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AsyncAppender-Worker-async-console-appender" java.lang.OutOfMemoryError: Java heap space
```
This is due to the default JVM Heap Space configuration (1 GiB) being not enough for your workloads. In order to resolve this issue, head over to your openmetadata environment variables list and append the below environment variable
```
# environment variable file (either .bash_profile or .bashrc or add in conf/openmetadata-env.sh in release binaries)
export OPENMETADATA_HEAP_OPTS="-Xmx2G -Xms2G"
```
The flag `Xmx` specifies the maximum memory allocation pool for a Java virtual machine (JVM), while `Xms` specifies the initial memory allocation pool.
Restart the OpenMetadata Application using `./bin/openmetadata.sh start` which will start the service using a linux process.
## Enable Security

View File

@ -63,7 +63,7 @@ Follow the instructions [here](https://docs.docker.com/compose/cli-command/#inst
## Steps for Deploying OpenMetadata using Docker
- First download the docker-compose.yml file from the release page [here](https://github.com/open-metadata/OpenMetadata/releases). The latest version is at the top of the page
- First download the docker-compose.yml file from the release page [here](https://github.com/open-metadata/OpenMetadata/releases/latest). The latest version is at the top of the page
- Deploying with MySQL: Download `docker-compose.yml` file from the above link.
- Deploying with PostgreSQL: Download `docker-compose-postgres.yml` file from the above link.
@ -75,7 +75,7 @@ mkdir -p $PWD/docker-volume/db-data
- Run the below command to deploy the OpenMetadata
```commandline
docker compose up --build -d
docker compose up -d
```
This command will pull the docker images of Openmetadata for MySQL, OpenMetadat-Server, OpenMetadata-Ingestion and Elasticsearch.
@ -97,10 +97,10 @@ You can validate that all containers are up by running with command `docker ps`.
```commandline
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
470cc8149826 openmetadata/server:0.13.2 "./openmetadata-star…" 45 seconds ago Up 43 seconds 3306/tcp, 9200/tcp, 9300/tcp, 0.0.0.0:8585-8586->8585-8586/tcp openmetadata_server
63578aacbff5 openmetadata/ingestion:0.13.2 "./ingestion_depende…" 45 seconds ago Up 43 seconds 0.0.0.0:8080->8080/tcp openmetadata_ingestion
470cc8149826 openmetadata/server:1.0.0 "./openmetadata-star…" 45 seconds ago Up 43 seconds 3306/tcp, 9200/tcp, 9300/tcp, 0.0.0.0:8585-8586->8585-8586/tcp openmetadata_server
63578aacbff5 openmetadata/ingestion:1.0.0 "./ingestion_depende…" 45 seconds ago Up 43 seconds 0.0.0.0:8080->8080/tcp openmetadata_ingestion
9f5ee8334f4b docker.elastic.co/elasticsearch/elasticsearch:7.10.2 "/tini -- /usr/local…" 45 seconds ago Up 44 seconds 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp openmetadata_elasticsearch
08947ab3424b openmetadata/db:0.13.2 "/entrypoint.sh mysq…" 45 seconds ago Up 44 seconds (healthy) 3306/tcp, 33060-33061/tcp openmetadata_mysql
08947ab3424b openmetadata/db:1.0.0 "/entrypoint.sh mysq…" 45 seconds ago Up 44 seconds (healthy) 3306/tcp, 33060-33061/tcp openmetadata_mysql
```
In a few seconds, you should be able to access the OpenMetadata UI at [http://localhost:8585](http://localhost:8585)
@ -238,6 +238,31 @@ Replace the environment variables values with the RDS and OpenSearch Service one
docker compose --env-file ./config/.env.prod up -d openmetadata_server
```
## Troubleshooting
### Java Memory Heap Issue
If your openmetadata Docker Compose logs speaks about the below issue -
```
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "AsyncAppender-Worker-async-file-appender"
Exception in thread "pool-5-thread-1" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AsyncAppender-Worker-async-file-appender" java.lang.OutOfMemoryError: Java heap space
Exception in thread "dw-46" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AsyncAppender-Worker-async-console-appender" java.lang.OutOfMemoryError: Java heap space
```
This is due to the default JVM Heap Space configuration (1 GiB) being not enough for your workloads. In order to resolve this issue, head over to your custom openmetadata environment variable file and append the below environment variable
```
#environment variable file
OPENMETADATA_HEAP_OPTS="-Xmx2G -Xms2G"
```
The flag `Xmx` specifies the maximum memory allocation pool for a Java virtual machine (JVM), while `Xms` specifies the initial memory allocation pool.
Restart the OpenMetadata Docker Compose Application using `docker compose --env-file my-env-file -f docker-compose.yml up -d` which will recreate the containers with new environment variable values you have provided.
# Production Deployment
If you are planning on going to PROD, we also recommend taking a look at the following

View File

@ -10,7 +10,7 @@ Volumes provide the ability to connect specific filesystem paths of the containe
{%note%}
To make changes to the `docker-compose.yaml` file you will need to download it from the release page [here](https://github.com/open-metadata/OpenMetadata/releases). The latest version is at the top of the page
To make changes to the `docker-compose.yaml` file you will need to download it from the release page [here](https://github.com/open-metadata/OpenMetadata/releases/latest). The latest version is at the top of the page
{%/note%}
## Volumes for MYSQL container:
@ -88,7 +88,7 @@ version: "3.9"
services:
mysql:
container_name: openmetadata_mysql
image: openmetadata/db:0.13.0
image: openmetadata/db:1.0.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
@ -101,7 +101,7 @@ services:
ipv4_address: 172.16.240.10
ingestion:
container_name: openmetadata_ingestion
image: openmetadata/ingestion:0.13.0
image: openmetadata/ingestion:1.0.0
depends_on:
- mysql
expose:

View File

@ -212,9 +212,27 @@ airflow:
For more information on airflow helm chart values, please refer to [airflow-helm](https://artifacthub.io/packages/helm/airflow-helm/airflow/8.5.3).
Follow [OpenMetadata Kubernetes Deployment](/deployment/kubernetes) to install and deploy helm charts with EFS volumes.
When deploying openmetadata dependencies helm chart, use the below command -
```commandline
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values values-dependencies.yaml
```
{%note%}
The above command uses configurations defined [here](https://raw.githubusercontent.com/open-metadata/openmetadata-helm-charts/main/charts/deps/values.yaml).
You can modify any configuration and deploy by passing your own `values.yaml`
```commandline
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values <path-to-values-file>
```
{%/note%}
Once the openmetadata dependencies helm chart deployed, you can then run the below command to install the openmetadata helm chart -
```commandline
helm install openmetadata open-metadata/openmetadata
```
Again, this uses the values defined [here](https://github.com/open-metadata/openmetadata-helm-charts/blob/main/charts/openmetadata/values.yaml).
Use the `--values` flag to point to your own YAML configuration if needed.

View File

@ -286,12 +286,29 @@ airflow:
persistence:
enabled: false
```
{%note%}
For more information on airflow helm chart values, please refer to [airflow-helm](https://artifacthub.io/packages/helm/airflow-helm/airflow/8.5.3).
Follow [OpenMetadata Kubernetes Deployment](/deployment/kubernetes) to install and deploy helm charts with nfs volumes.
When deploying openmeteadata dependencies helm chart, use the below command -
```commandline
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values values-dependencies.yaml
```
```
{%/note%}
The above command uses configurations defined [here](https://raw.githubusercontent.com/open-metadata/openmetadata-helm-charts/main/charts/deps/values.yaml).
You can modify any configuration and deploy by passing your own `values.yaml`
```commandline
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values <path-to-values-file>
```
Once the openmetadata dependencies helm chart deployed, you can then run the below command to install the openmetadata helm chart -
```commandline
helm install openmetadata open-metadata/openmetadata
```
Again, this uses the values defined [here](https://github.com/open-metadata/openmetadata-helm-charts/blob/main/charts/openmetadata/values.yaml).
Use the `--values` flag to point to your own YAML configuration if needed.

View File

@ -177,6 +177,30 @@ kubectl logs <POD_NAME> --namespace <NAMESPACE_NAME>
For more information, visit the kubectl logs command line reference documentation [here](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/).
### Java Memory Heap Issue
If your openmetadata pods are not in ready state at any point in time and the openmetadata pod logs speaks about the below issue -
```
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "AsyncAppender-Worker-async-file-appender"
Exception in thread "pool-5-thread-1" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AsyncAppender-Worker-async-file-appender" java.lang.OutOfMemoryError: Java heap space
Exception in thread "dw-46" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AsyncAppender-Worker-async-console-appender" java.lang.OutOfMemoryError: Java heap space
```
This is due to the default JVM Heap Space configuration (1 GiB) being not enough for your workloads. In order to resolve this issue, head over to your custom openmetadata helm values and append the below environment variable
```yaml
extraEnvs:
- name: OPENMETADATA_HEAP_OPTS
value: "-Xmx2G -Xms2G"
```
The flag `Xmx` specifies the maximum memory allocation pool for a Java virtual machine (JVM), while `Xms` specifies the initial memory allocation pool.
Upgrade the helm charts with the above changes using the following command `helm upgrade --install openmetadata open-metadata/openmetadata --values <values.yml> --namespace <namespaceName>`. Update this command your `values.yml` filename and `namespaceName` where you have deployed OpenMetadata in Kubernetes.
### Uninstall OpenMetadata Helm Charts
Use the below command to uninstall OpenMetadata Helm Charts completely.

View File

@ -190,9 +190,28 @@ airflow:
For more information on airflow helm chart values, please refer to [airflow-helm](https://artifacthub.io/packages/helm/airflow-helm/airflow/8.5.3).
Follow [OpenMetadata Kubernetes Deployment](/deployment/kubernetes) to install and deploy helm charts with nfs volumes.
When deploying openmetadata dependencies helm chart, use the below command -
```commandline
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values values-dependencies.yaml
```
```
{%note%}
The above command uses configurations defined [here](https://raw.githubusercontent.com/open-metadata/openmetadata-helm-charts/main/charts/deps/values.yaml).
You can modify any configuration and deploy by passing your own `values.yaml`
```commandline
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values <path-to-values-file>
```
{%/note%}
Once the openmetadata dependencies helm chart deployed, you can then run the below command to install the openmetadata helm chart -
```commandline
helm install openmetadata open-metadata/openmetadata
```
Again, this uses the values defined [here](https://github.com/open-metadata/openmetadata-helm-charts/blob/main/charts/openmetadata/values.yaml).
Use the `--values` flag to point to your own YAML configuration if needed.

View File

@ -29,22 +29,22 @@ version to have all the improvements shipped in the CLI.
{% /note %}
1. Make sure your instance is connected to the Database server
2. Create a virtual environment to install an upgraded `metadata` version to run the backup command:
1. `python -m venv venv`
2. `source venv/bin/activate`
3. `pip install openmetadata-ingestion~=1.0.0`
3. Validate the installed `metadata` version with `python -m metadata --version`, which should tell us that we are
- Make sure your instance is connected to the Database server
- Create a virtual environment to install an upgraded `metadata` version to run the backup command:
- `python -m venv venv`
- `source venv/bin/activate`
- `pip install openmetadata-ingestion~=1.0.0`
- Validate the installed `metadata` version with `python -m metadata --version`, which should tell us that we are
indeed at 1.0.0. Notice the `python -m metadata` vs. `metadata`.
4. Run the backup using the updated `metadata` CLI:
- Run the backup using the updated `metadata` CLI:
```
python -m metadata backup -u openmetadata_user -p openmetadata_password -H mysql -d openmetadata_db --port 3306
```
if using Postgres:
Or if using postgres:
```
python -m metadata backup -u openmetadata_user -p openmetadata_password -H postgresql -d openmetadata_db --port 5432 -s public
```
5. This will generate the .sql file which can be used for the backup
- This will generate the .sql file which can be used for the backup
In our case, the backup file was named `openmetadata_202212201528_backup.sql`. You can copy the name from the backup
command output.
@ -54,10 +54,10 @@ OpenMetadata release binaries are maintained as GitHub releases.
To download a specific release binary:
1. Visit [github.com/open-metadata/OpenMetadata/releases](https://github.com/open-metadata/OpenMetadata/releases). The latest
- Visit [github.com/open-metadata/OpenMetadata/releases](https://github.com/open-metadata/OpenMetadata/releases). The latest
release will be at the top of this page.
2. Locate the Assets' section for the release you want to upgrade to.
3. Download the release binaries. The release binaries will be in a compressed tar file named using the following
- Locate the Assets' section for the release you want to upgrade to.
- Download the release binaries. The release binaries will be in a compressed tar file named using the following
convention, `openmetadata-x.y.z.tar.gz` Where `x`, `y`, `z` are the major, minor, and patch release numbers, respectively.
### 2. Extract the release binaries from the download file

View File

@ -14,9 +14,9 @@ You can find more details about Docker deployment [here](/deployment/docker)
{% /note %}
Below we have highlighted the steps needed to upgrade to the latest version with Docker. Make sure to also look [here](/deployment/upgrade/versions/012-to-013) for the specific details related to upgrading to 0.13
Below we have highlighted the steps needed to upgrade to the latest version with Docker. Make sure to also look [here](/deployment/upgrade/versions/013-to-100) for the specific details related to upgrading to 1.0.0
{% note description="Warning" %}
{% note %}
It is advised to go through [openmetadata release notes](/deployment/upgrade#breaking-changes-from-0130-release) before starting the upgrade process.
@ -28,16 +28,18 @@ Your production deployment should go from stable version to stable version. This
Let's go through the required steps:
### 1. Backup 0.13 data
### 1. Backup Existing OpenMetadata Data using Metadata CLI
1. Make sure your instance is connected to the Database server
2. Create a virtual environment to install an upgraded `metadata` version to run the backup command:
1. `python -m venv venv`
2. `source venv/bin/activate`
3. `pip install openmetadata-ingestion~=1.0.0`
3. Validate the installed `metadata` version with `python -m metadata --version`, which should tell us that we are
- Make sure your instance is connected to the Database server
- Create a virtual environment to install an upgraded `metadata` version to run the backup command:
```
python -m venv venv
source venv/bin/activate
pip install openmetadata-ingestion~=1.0.0
```
- Validate the installed `metadata` version with `python -m metadata --version`, which should tell us that we are
indeed at 1.0.0. Notice the `python -m metadata` vs. `metadata`.
4. Run the backup using the updated `metadata` CLI:
- Run the backup using the updated `metadata` CLI:
```
python -m metadata backup -u openmetadata_user -p openmetadata_password -H mysql -d openmetadata_db --port 3306
```
@ -45,47 +47,43 @@ Let's go through the required steps:
```
python -m metadata backup -u openmetadata_user -p openmetadata_password -H postgresql -d openmetadata_db --port 5432 -s public
```
5. This will generate the .sql file which can be used for the backup
- This will generate the .sql file which can be used for the backup
In our case, the backup file was named `openmetadata_202212201528_backup.sql`. You can copy the name from the backup
command output.
### 2. Update the docker compose file
### 2. Replace the docker compose file
1. Stop the running compose deployment with `docker compose down`.
2. On the compose file we ran the 0.13 version, update the image tag in the `ingestion` and
`openmetadata-server` to 1.0.0. E.g., `image: openmetadata/server:0.13.2`.
3. Start the updated compose file.
4. Run the reindex from the UI.
- Stop the running compose deployment with below command
```
docker compose down
```
- Download the Docker Compose Service File from OpenMetadata Github Release page [here](https://github.com/open-metadata/OpenMetadata/releases/latest)
- Replace the existing Docker Compose Service File with the one downloaded from the above step
{% note %}
### 3. Restore the backup
Please make sure to go through [breaking changes and release highlights](/deployment/upgrade/versions/013-to-100).
We will now use the backup generated in the previous step to repopulate the database.
{% /note %}
1. On your laptop/VM, prepare a virtual environment and install `openmetadata-ingestion==1.0.0`. It is important
that the instance has access to the database.
1. `python -m venv venv`
2. `source venv/bin/activate`
3. `pip install openmetadata-ingestion~=1.0.0`
2. Validate the metadata version with `metadata --version`. it should be 1.0.0.
3. Run the restore with your file name
```
metadata restore -H localhost -u openmetadata_user -p openmetadata_password -d openmetadata_db --port 3306 --input openmetadata_202212201528_backup.sql
```
if using Postgres:
```
metadata restore -H localhost -u openmetadata_user -p openmetadata_password -d openmetadata_db --port 5432 -s public --input openmetadata_202212201528_backup.sql
```
4. Stop the docker compose
- Start the Docker Compose Service with the below command
```
docker compose -f docker-compose.yml up -d
```
### 4. Upgrade OpenMetadata versions
### 3. Re-index all your metadata
1. On the compose file we previously updated the database settings, update the image tag in the `ingestion` and
`openmetadata-server` to 1.0.0. E.g., `image: openmetadata/server:1.0.0`.
2. Start the updated compose file.
3. Run the reindex from the UI.
Go to Settings -> Elasticsearch
Now you should still have all your data with OpenMetadata version 1.0.0.
{% image src="/images/v1.0.0/deployment/upgrade/elasticsearch-re-index.png" alt="create-project" caption="Reindex" /%}
Click on reindex all.
In the dialog box choose Recreate Indexes to All.
{% image src="/images/v1.0.0/deployment/upgrade/reindex-ES.png" alt="create-project" caption="Reindex" /%}
---
## Upgrade ingestion patch versions
@ -104,21 +102,23 @@ server version.
The steps to follow are:
1. Connect to the ingestion container. If using our docker compose files or `metadata docker` CLI, this translates
- Connect to the ingestion container. If using our docker compose files or `metadata docker` CLI, this translates
to `docker exec -it openmetadata_ingestion bash`.
2. Validate your `metadata` version via `metadata --version`. You will get back something like:
- Validate your `metadata` version via `metadata --version`. You will get back something like:
```bash
metadata 0.13.1.5 from /home/airflow/.local/lib/python3.9 (python 3.9)
```
3. Upgrade the `openmetadata-ingestion` package via `pip install "openmetadata-ingestion==0.13.1.X"`, for example,
- Upgrade the `openmetadata-ingestion` package via `pip install "openmetadata-ingestion==0.13.1.X"`, for example,
`pip install "openmetadata-ingestion==0.13.1.7"`. You can find the list of all released versions of
the `openmetadata-ingestion` package [here](https://pypi.org/project/openmetadata-ingestion/#history).
4. Exit the container by typing `exit`.
5. Restart the ingestion container with `docker restart openmetadata_ingestion`. This will need a few minutes to
- Exit the container by typing `exit`.
- Restart the ingestion container with `docker restart openmetadata_ingestion`. This will need a few minutes to
to stop the container and start it again. Now, Airflow will start with the upgraded `metadata` version.
6. Connect to the ingestion container and validate the `metadata` version:
1. `docker exec -it openmetadata_ingestion bash`
2. `metadata version`: where we expect to get the same version that was previously installed.
- Connect to the ingestion container and validate the `metadata` version:
```
docker exec -it openmetadata_ingestion bash
```
- `metadata version`: where we expect to get the same version that was previously installed.
### Troubleshooting

View File

@ -41,11 +41,11 @@ port-forward the MySQL service using `kubectl port-forward service/mysql 3306:33
Then, follow the next steps to create a virtual environment and install the latest OpenMetadata Python package with the backup CLI:
1. `python -m venv venv`
2. `source venv/bin/activate`
3. `pip install openmetadata-ingestion~=0.13.2`
4. Validate the installed `metadata` version with `python -m metadata --version`
5. Run the backup using the updated `metadata` CLI:
- `python -m venv venv`
- `source venv/bin/activate`
- `pip install openmetadata-ingestion~=0.13.2`
- Validate the installed `metadata` version with `python -m metadata --version`
- Run the backup using the updated `metadata` CLI:
```
python -m metadata backup -u openmetadata_user -p openmetadata_password -H mysql -d openmetadata_db --port 3306
```
@ -53,7 +53,7 @@ Then, follow the next steps to create a virtual environment and install the late
```
python -m metadata backup -u openmetadata_user -p openmetadata_password -H postgresql -d openmetadata_db --port 5432 -s public
```
6. The above command will generate a backup file with extension as `.sql`. You can copy the name from the backup
- The above command will generate a backup file with extension as `.sql`. You can copy the name from the backup
command output.
## Get an overview of what has changed in Helm Values

View File

@ -320,7 +320,7 @@ docker compose up -d
This snippet will create a directory named `openmetadata` and download the `docker-compose.yml` file automatically.
Afterwards, it will start the containers. If instead you want to download the file manually to another location,
you can do so from the Releases [page](https://github.com/open-metadata/OpenMetadata/releases).
you can do so from the Releases [page](https://github.com/open-metadata/OpenMetadata/releases/latest).
This will start all the necessary components locally. You can validate that all containers are up
and running with `docker ps`.
@ -359,7 +359,7 @@ So be careful if you want to keep up some (unused) networks from your laptop.
### Connect to a Container from the Host
Do you want to connect to a container from the host [Refer](https://docs.docker.com/desktop/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host)
You can connect Docker containers to communicate with Host Operating System Services. Navigate to the [official docker documentation](https://docs.docker.com/desktop/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host) which will help achieve the same.
### After upgrading OpenMetadata version