Guide to Deploy Collate Binaries in Azure
This guide will help you start using Collate Docker Images to run the Collate OpenMetadata Application in Kubernetes, connecting with Argo Workflows for running ingestion from the Collate OpenMetadata Application itself.Architecture
Collate OpenMetadata requires four components:- Collate Server
- Database: Collate Server stores the metadata in a relational database. Collate supports 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: Collate OpenMetadata requires connectors to be scheduled periodically to fetch metadata, or you can use the Collate OpenMetadata APIs to push metadata directly. This guide uses Argo Workflows as the orchestrator.
Sizing Requirements
Review the following hardware and software sizing recommendations before provisioning the cluster.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, including:- kube-apiserver.
- kube-scheduler.
- kube-controller-manager.
- External DNS.
- Cluster Auto Scaling.
- External logging and monitoring.
- 4 vCPUs
- 16 GiB Memory
- 128 GiB Storage capacity
Note: 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
The cluster and local environment must meet the following software requirements:- Collate OpenMetadata supports Kubernetes Cluster version 1.24 or greater.
- Collate Docker Images are available via private AWS Elastic Container Registry (ECR). The 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
Collate recommends configuring 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, Collate recommends sizing OpenSearch as follows:- 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 following command to check if OIDC Issuer is enabled for the AKS cluster:Enable AKS Workload Identity
Enable a workload identity on an existing AKS cluster:Optional: Terraform for Azure Prerequisites
Terraform code for setting up Azure prerequisites is available in the openmetadata-deployment GitHub repository. Skip the manual Azure CLI steps described earlier if provisioning through 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:Note: 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
This guide uses the official community-maintained Helm chart for 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
This guide targets 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 Collate OpenMetadata
Create a Kubernetes Namespace
Kubernetes Service Account for Ingestion
The Collate 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
Note: 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 Collate OpenMetadata Helm Chart
Create Kubernetes Secrets for the database connection:Note: Replace
<<DATABASE_PASSWORD>> with the password for your Azure SQL Database for Collate OpenMetadata Server.openmetadata.values.yml:
Note: 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.0Optional: Enable Prometheus Metrics
Collate Application exposes Prometheus metrics on port8586. Enable the integration using: