Guide to Deploy Collate Binaries in Azure
This guide will help you start using Collate Docker Images to run the OpenMetadata Application in Kubernetes, connecting with Argo Workflows for running ingestion from the OpenMetadata Application itself.Architecture
Collate OpenMetadata requires 4 components:- Collate Server
- Database — Collate Server stores the metadata in a relational database. We support MySQL or Postgres. Any Cloud provider SaaS Database service (AWS RDS, GCP Cloud SQL, Azure SQL) will also work.
- MySQL version 8.0.42 or greater
- Postgres version 17.6 or greater
- Search Engine — OpenSearch 3.4. ElasticSearch is not supported in Collate BYOC because Collate AI relies on OpenSearch’s vector capabilities for Semantic and Hybrid Search.
- Workflow Orchestration — OpenMetadata requires connectors to be scheduled periodically to fetch metadata, or you can use the OpenMetadata APIs to push metadata directly. We will use Argo Workflows as the orchestrator here.
Sizing Requirements
Hardware Requirements
A Kubernetes Cluster with at least 1 Master Node and 3 Worker Nodes is the required configuration. Master Nodes should run all Kubernetes essential workloads (kube-apiserver, kube-scheduler, kube-controller-manager, external DNS, Cluster Auto Scaling, external logging and monitoring). Each Worker Node should have at least:- 4 vCPUs
- 16 GiB Memory
- 128 GiB Storage capacity
If you want to make sure the Collate workloads are scheduled over dedicated worker nodes, Kubernetes provides a way to schedule pods to the right nodes using taints and tolerations. Collate OpenMetadata also supports usage of tolerations as a way to let Kubernetes schedule pods on desired nodes using custom Helm values and application configurations.
Software Requirements
- Collate OpenMetadata supports Kubernetes Cluster version 1.24 or greater.
- Collate Docker Images are available via private AWS Elastic Container Registry (ECR). Collate Team will share the credentials as well as steps to configure Kubernetes to pull Docker Images from AWS ECR.
- For Argo Workflows compatibility, Collate OpenMetadata is currently compatible with application version 3.4. View the compatibility matrix for details.
Recommended Cloud Instances
Database Sizing and Capacity
Our recommendation is to configure Postgres as your database. For 100,000 Data Assets and 1,000 Users, the recommended sizing is:- 8 vCPUs
- 64 GiB Memory
- 256 GiB Storage Capacity
- 3,500 IOPS storage
Search Client Sizing and Capacity
For 100,000 Data Assets and 1,000 Users, we recommend OpenSearch to be:- 8 vCPUs
- 64 GiB Memory
- 256 GiB Storage Capacity
Argo Workflows Ingestion Runners
The recommended resources for Argo Workflows to run Collate ingestions are 4 vCPUs and 16 GiB of Memory. Ingestion workloads can be scheduled on spot instances to reduce cloud expenses.Azure Prerequisites
Make sure AKS is enabled for OIDC Issuer and Workload Identity.Enable AKS OIDC Issuer
Use the below command to check if OIDC Issuer is enabled for the AKS Cluster:Enable AKS Workload Identity
Enable a workload identity on existing AKS Cluster:[Optional] Terraform for Azure Prerequisites
Terraform code for setting up Azure prerequisites is available in the openmetadata-deployment GitHub repository. You can skip the manual Azure CLI steps below if provisioning via Terraform.Storage Account and Blob Store for Argo Workflows Artifacts
Create a new Azure Storage Account:Create Azure User Managed Identities
Create 4 User Managed Identities (2 for Argo Workflows, 1 for Collate Server, 1 for Collate Ingestion):Create the Federated Identity Credential
Create the federated identity credential between the managed identity, the service account issuer, and the subject:Grant User Managed Identity Access to Storage Account
Setup AWS ECR
Collate will provide the credentials to pull Docker Images from a private registry located in AWS ECR.Install AWS CLI
Follow the AWS CLI installation guide to install AWS CLI on your machine. This is required to connect to AWS ECR and configure Kubernetes Docker Registry Secrets.Configure AWS Credentials
Run the following command to configure AWS CLI:Kubernetes Docker Registry Secrets for AWS ECR
Create a Docker Registry Kubernetes secret to pull images from AWS ECR:Replace
<<NAMESPACE_NAME>> with the namespace where you want to deploy Collate OpenMetadata Server. If the namespace does not exist yet, create it with kubectl create namespace <<NAMESPACE_NAME>>.Install Argo Workflows
We will use the official community-maintained Helm Chart of Argo Workflows.Add Helm Repository
Create a Kubernetes Namespace
Kubernetes Secret for Argo Workflows DB Credentials
Create Custom Helm Values for Argo Workflows
Create a file namedargo-workflows.values.yml:
Deploy Argo Workflows
We target application version 3.7.1 using Helm chart version 0.45.23 (Artifact Hub):[Optional] Enable Prometheus Metrics
If you have a Prometheus Application running on your cluster, enable Argo Workflows metrics using:Setup Azure Container Registry
Collate will provide credentials to pull Docker Images from the private registry in AWS ECR.Install Azure CLI
Follow the Azure CLI installation guide to install AZ CLI on your machine.Configure Azure Credentials
Create a Service Principal and log in:Install OpenMetadata/Collate
Create a Kubernetes Namespace
Kubernetes Service Account for Ingestion
The OpenMetadata Application communicates with Argo Workflows to dynamically trigger ephemeral pods that run ingestion workloads. Create a dedicated Kubernetes Service Account in the same namespace:Label and Annotate the Service Account for Azure Managed Identity
Replace
<<COLLATE_APPLICATION_MANAGED_IDENTITY_CLIENT_ID>> with the Azure User Managed Identity Client ID for Collate OpenMetadata Server.Create Long-Lived API Token for the ServiceAccount
Configure Kubernetes Roles for the Service Account
Create a fileom-argo-role.yml:
Install OpenMetadata Helm Chart
Create Kubernetes Secrets for the database connection:Replace
<<DATABASE_PASSWORD>> with the password for your Azure SQL Database for Collate OpenMetadata Server.openmetadata.values.yml:
If you plan to use the DeltaLake connector, the
ARGO_INGESTION_IMAGE value should be:
118146679784.dkr.ecr.eu-west-1.amazonaws.com/collate-customers-ingestion-eu-west-1:om-1.13.0-cl-1.13.0[Optional] Enable Prometheus Metrics
Collate Application exposes Prometheus metrics on port8586. Enable the integration using: