OpenMetadata
Search…
Deploy on Kubernetes
OpenMetadata supports Installation and Running of Application on kubernetes through Helm Charts.
​​
​
​

Introduction

​openmetadata-helm-charts houses Kubernetes Helm charts for deploying OpenMetadata and its dependencies (Elasticsearch and MySQL) on a Kubernetes cluster.

Prerequisites

  • A Kubernetes cluster on any cloud
  • ​kubectl to manage Kubernetes resources
  • ​Helm to deploy resources based on Helm charts from the OpenMetadata repository
Note: OpenMetadata only supports Helm 3
This guide assumes your helm chart release names are openmetadata and openmetadata-dependencies and kubernetes namespace used is default.

Quickstart

Assuming Kubernetes setup is done and your Kubernetes context points to a correct Kubernetes cluster, first we create kubernetes secrets that contains MySQL and Airflow passwords as secrets.
1
kubectl create secret generic mysql-secrets --from-literal=openmetadata-mysql-password=openmetadata_password
2
kubectl create secret generic airflow-secrets --from-literal=openmetadata-airflow-password=admin
Copied!
The above commands sets the passwords as an example. Change to any password of choice.
Next, we install OpenMetadata dependencies.
Add the OpenMetadata Helm repository by running the following command.
1
helm repo add open-metadata https://helm.open-metadata.org/
Copied!
Run the command helm repo list to ensure the OpenMetadata repository was added.
1
NAME URL
2
open-metadata https://helm.open-metadata.org/
Copied!
Assuming kubectl context points to the correct kubernetes cluster, first create kubernetes secrets that contain airflow mysql password as secrets.
1
kubectl create secret generic airflow-mysql-secrets --from-literal=airflow-mysql-password=airflow_pass
Copied!
Deploy the dependencies by running the following command.
1
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies
Copied!
Note - The above command uses configurations defined here. You can modify any configuration and deploy by passing your own values.yaml
1
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values <<path-to-values-file>>
Copied!
Run kubectl get pods to check whether all the pods for the dependencies are running. You should get a result similar to below.
1
NAME READY STATUS RESTARTS AGE
2
elasticsearch-0 1/1 Running 0 4m56s
3
mysql-0 1/1 Running 0 4m56s
Copied!
Next, deploy OpenMetadata by running the following command.
1
helm install openmetadata open-metadata/openmetadata
Copied!
Values in values.yaml are preset to match with dependencies deployed using openmetadata-dependencies with release name "openmetadata-dependencies". If you deployed helm chart using different release name, make sure to update values.yaml accordingly before installing.
Run kubectl get pods to check the status of pods running. You should get a result similar to the output below.
1
NAME READY STATUS RESTARTS AGE
2
elasticsearch-0 1/1 Running 0 5m34s
3
mysql-0 1/1 Running 0 5m34s
4
openmetadata-5566f4d8b9-544gb 1/1 Running 0 98s
Copied!
To expose the OpenMetadata UI on a local Kubernetes instance, run this command.
1
kubectl port-forward <openmetadata-front end pod name> 8585:8585
Copied!

Next Steps

  1. 1.
    Visit the Features overview page and explore the OpenMetadata UI.
  2. 2.
    Visit the Connectors documentation to see what services you can integrate with OpenMetadata.
  3. 3.
    Visit the API documentation and explore the OpenMetadata APIs.

Next Steps

  • Visit the Features overview page and explore the OpenMetadata UI.
  • Visit the Connectors documentation to see what services you can integrate with OpenMetadata.
  • Visit the API documentation and explore the OpenMetadata APIs.

Troubleshooting

View helm chart deployment status

Run the below command to view status of openmetadata helm chart deployed -
1
helm status openmetadata
Copied!
For more information, visit helm command line reference here.

View openmetadata kubernetes pod logs

Run the below command to list openmetadata kubernetes pods deployed in a namespace -
1
kubectl get pods --namespace <NAMESPACE_NAME> -l='app.kubernetes.io/managed-by=Helm,app.kubernetes.io/instance=<RELEASE_NAME>'
Copied!
Example, list pods deployed by helm release name 'ometa' in the namespace 'ometa-dev' -
1
kubectl get pods --namespace ometa-dev -l='app.kubernetes.io/managed-by=Helm,app.kubernetes.io/instance=ometa'
Copied!
Next, view the logs of pod by running the below command,
1
kubectl logs <POD_NAME> --namespace <NAMESPACE_NAME>
Copied!
For more information, visit the kubectl logs command line reference documentation here.

Uninstall OpenMetadata Helm Charts

Use the below command to uninstall OpenMetadata Helm Charts completely.
1
helm uninstall openmetadata
2
helm uninstall openmetadata-dependencies
Copied!
MySql and ElasticSearch OpenMetadata Dependencies as deployed as StatefulSets and have persistent volumes (pv) and and persistent volume claims (pvc). These will need to be manually cleaned after helm uninstall. You can use kubectl delete CLI command for the same.

Enable Security

OpenMetadata has support for Google, Okta, Auth0, and Azure SSO as identity providers. Please check Secure OpenMetadata for configuring Single Sign On.

Values

Refer to the supported helm values for OpenMetadata Helm Charts.