This Repository houses Kubernetes Helm charts for deploying Open Metadata and it's dependencies (Elastic Search and MySQL) on a Kubernetes Cluster.
Set up a Kubernetes Cluster
- In a cloud platform of your choice like Amazon EKS, Google Kubernetes Engine or Azure Kubernetes Service
OR - On Local Environment using Minikube or Docker Desktop. Note, atleast 4 GB of RAM is required to run Open Metadata and it's dependencies.
Install the below tools:
- Kubectl to manage Kubernetes Resources
- Helm to deploy resources based on Helm Charts from this repository. Note, we only support Helm 3
Assuming kubectl context points to the correct kubernetes cluster, first create kubernetes secrets that contain MySQL and Airflow passwords as secrets.
kubectl create secret generic mysql-secrets --from-literal=openmetadata-mysql-password=openmetadata_password
kubectl create secret generic airflow-secrets --from-literal=openmetadata-airflow-password=admin
The above commands sets the passwords as an example. Change to any password of choice.
Next, we install Open Metadata dependencies.
Add openmetadata helm repo by running the following -
helm repo add open-metadata https://helm.open-metadata.org/
Run the command helm repo list
to list the addition of openmetadata helm repo -
NAME URL
open-metadata https://helm.open-metadata.org/
Assuming kubectl context points to the correct kubernetes cluster, first create kubernetes secrets that contain airflow mysql password as secrets.
kubectl create secret generic airflow-mysql-secrets --from-literal=airflow-mysql-password=airflow_pass
Deploy the dependencies by running
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies
Note - The above command uses configurations defined here. You can modify any configuration and deploy by passing your own values.yaml
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values <<path-to-values-file>>
Run kubectl get pods
to check whether all the pods for the dependencies are running. You should get a result similar to below.
NAME READY STATUS RESTARTS AGE
elasticsearch-0 1/1 Running 0 3m56s
mysql-0 1/1 Running 0 3m56s
Next, deploy the openmetadata by running the following
helm install openmetadata open-metadata/openmetadata
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
command to check the statuses of pods running you should get a result similar to below.
NAME READY STATUS RESTARTS AGE
elasticsearch-0 1/1 Running 0 5m34s
mysql-0 1/1 Running 0 5m34s
openmetadata-5566f4d8b9-544gb 1/1 Running 0 98s
To expose the Openmetadata UI locally, run the below command -
kubectl port-forward deployment/openmetadata 8585:8585
Check out OpenMetadata documentation for a complete description of OpenMetadata's features.
Join our Slack Community if you get stuck, want to chat, or are thinking of a new feature.
Or join the group at https://groups.google.com/g/openmetadata-users
We're here to help - and make OpenMetadata even better!
We ❤️ all contributions, big and small!
Read Build Code and Run Tests for how to setup your local development environment. Get started with our Good first issues.
If you want to, you can reach out via Slack or email and we'll set up a pair programming session to get you started.
OpenMetadata is released under Apache License, Version 2.0