Local Kubernetes Deployment

This installation doc will help you start a OpenMetadata standalone instance on your local machine.

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

OpenMetadata ONLY supports Helm 3.

This guide assumes your helm chart release names as openmetadata and openmetadata-dependencies and the kubernetes namespace used is default.

For this guide, we will be using minikube as our local kubernetes cluster. Run the following command to start a minikube cluster with 4 vCPUs and 8 GiB Memory.

If you are using minikube to start a local kubernetes instance on MacOS with M1 chipset, use the following command to start the cluster required for OpenMetadata Helm Charts to install locally (with docker desktop running as container runtime engine).

minikube start --cpus=4 --memory=8192 --cni=bridge --driver=docker

Create kubernetes secrets that contains MySQL and Airflow passwords as secrets.

Run the below command to add OpenMetadata Helm Repository -

To verify, run helm repo list to ensure the OpenMetadata repository was added.

We created a separate chart to configure and install the OpenMetadata Application Dependencies with example configurations.

Deploy the dependencies by running the following command -

Run kubectl get pods to check whether all the pods for the dependencies are running. You should get a result similar to below.

Wait for all the above Pods to be in running status and ready state.

Please note that the pods names above as openmetadata-dependencies-* are part of airflow deployments.

Helm Chart for OpenMetadata Dependencies uses the following helm charts:

Deploy OpenMetadata Application by running the following command -

Run kubectl get pods --selector=app.kubernetes.io/name=openmetadata to check the status of pods running. You should get a result similar to the output below -

Wait for the above Pod to be in running status and ready state.

To expose the OpenMetadata UI on a local Kubernetes Cluster, run the below command -

The above command will port forward traffic from local machine port 8585 to a named port of OpenMetadata kubernetes service http.

Browse the Application with url http://localhost:8585 from your Browser. The default login credentials are admin:admin to log into OpenMetadata Application.

Use the below command to uninstall OpenMetadata Helm Charts Release.

MySQL and ElasticSearch OpenMetadata Dependencies are deployed as StatefulSets and have persistent volumes (pv) and persistent volume claims (pvc). These will need to be manually cleaned after helm uninstall. You can use kubectl delete persistentvolumeclaims mysql-0 elasticsearch-0 CLI command for the same.

Sometimes, kubernetes timeout pulling the docker images. In such cases, you will receive ErrImagePull issue. In order to resolve this, you can manually pull the required docker images in your kubernetes environment.

You can find the docker image name of the failing pods using the command below -

The command docker pull <docker_image_name> will make sure to get the image available for kubernetes and resolve the issue.

Run the below command to list openmetadata kubernetes pods deployed in a namespace:

For example, list pods deployed by helm release name openmetadata in the namespace ometa-dev:

Next, view the logs of pod by running the below command,

For more information, visit the kubectl logs command line reference documentation here.

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