|
|
3 weeks ago | |
|---|---|---|
| .. | ||
| charts | 3 weeks ago | |
| files | 3 weeks ago | |
| templates | 3 weeks ago | |
| .helmignore | 3 weeks ago | |
| BUILD-README.md | 3 weeks ago | |
| CUSTOM-README.md | 3 weeks ago | |
| Chart.lock | 3 weeks ago | |
| Chart.yaml | 3 weeks ago | |
| README.md | 3 weeks ago | |
| custom-values.yaml | 3 weeks ago | |
| values.yaml | 3 weeks ago | |
README.md
Open Metadata Helm Dependencies
A Helm chart for installing components required to run Open Metadata.
Components
This chart installs the following dependencies:
- MySQL 8.0 - Database for OpenMetadata and Airflow
- Apache Airflow 3 (via official Apache Airflow Helm chart) - Workflow orchestration for data ingestion
- OpenSearch - Search and indexing engine
Airflow 3 Compatibility
This chart uses Apache Airflow 3 with the official Apache Airflow Helm chart. Key configurations for Airflow 3:
- KubernetesExecutor: Configured by default to use KubernetesExecutor for production deployments with scalable task execution across multiple worker pods
- MySQL Backend: Airflow 3 with MySQL requires downgrading the FAB provider to v2.4.4 to avoid
CREATE INDEX IF NOT EXISTSsyntax incompatibility - Shared DAGs Volume: The api-server and scheduler pods share the same PVC for dynamic DAG generation by OpenMetadata
- Static Secret Key: A static
webserverSecretKeyis configured by default to ensure JWT token authentication works correctly between Airflow components. While not strictly mandatory, it's strongly recommended to prevent authentication failures
Install OpenMetadata Dependencies
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
Next, we run the following command to install openmetadata with default configuration.
helm repo add open-metadata https://helm.open-metadata.org
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies
If the default configuration is not applicable, you can update the values listed below in a values.yaml file and run
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values <<path-to-values-file>>
Configuration for Different Environments
For Local Development (Docker Desktop/Minikube)
If you're running on Docker Desktop or Minikube, you need to use LocalExecutor because these environments don't support ReadWriteMany (RWX) PersistentVolumeClaims. Create a custom values file:
# local-values.yaml
airflow:
executor: "LocalExecutor"
workers:
replicas: 0
Then install with:
helm install openmetadata-dependencies open-metadata/openmetadata-dependencies --values local-values.yaml
For Production Deployments
The default configuration uses KubernetesExecutor, which is recommended for production. Important considerations:
-
Change the
webserverSecretKey: Generate a new secret key for production:openssl rand -hex 32Update
airflow.webserverSecretKeyin your values file with the generated key. -
Configure RWX Storage: KubernetesExecutor requires ReadWriteMany (RWX) storage for DAGs:
- Update
airflow.dags.persistence.storageClassNameto a storage class that supports RWX (e.g.,efs-scon AWS,azurefileon Azure,nfs-clienton GKE) - Most cloud providers support RWX storage classes
- Update
-
Adjust Worker Replicas: Set
airflow.workers.replicasbased on your workload (default is 2) -
Update Database Passwords: Change the default MySQL passwords in your production values file
Example production values:
airflow:
webserverSecretKey: "<your-generated-key>"
executor: "KubernetesExecutor"
workers:
replicas: 3
dags:
persistence:
storageClassName: "efs-sc" # Or your RWX storage class
mysql:
auth:
rootPassword: "<strong-password>"