Guide to Deploy Collate Binaries in AWS
This guide will help you start using Collate Docker Images to run the OpenMetadata Application in Kubernetes on Amazon EKS, 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. Amazon RDS is recommended for production.
- MySQL version 8.0.42 or greater
- Postgres version 17.6 or greater
- Search Engine — OpenSearch 3.4 (Amazon OpenSearch Service recommended). ElasticSearch is not supported in Collate BYOC because Collate AI relies on OpenSearch’s vector capabilities for Semantic and Hybrid Search.
- Workflow Orchestration — We use Argo Workflows as the orchestrator for ingestion pipelines.
Sizing Requirements
Hardware Requirements
A Kubernetes Cluster with at least 1 Master Node and 3 Worker Nodes is the required configuration. Each Worker Node should have at least:- 4 vCPUs
- 16 GiB Memory
- 128 GiB Storage capacity
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 credentials and steps to configure Kubernetes to pull Docker Images from AWS ECR.
- For Argo Workflows, Collate OpenMetadata is currently compatible with application version 3.4+.
Recommended AWS Instance Types
Database Sizing and Capacity
Our recommendation is to configure Amazon RDS PostgreSQL. For 100,000 Data Assets and 1,000 Users:- 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:- 8 vCPUs
- 64 GiB Memory
- 256 GiB Storage Capacity
Argo Workflows Ingestion Runners
The recommended resources are 4 vCPUs and 16 GiB of Memory. Ingestion workloads can be scheduled on spot instances to reduce costs.AWS Prerequisites
Enable EKS OIDC Provider
EKS clusters use an OIDC provider to enable IAM Roles for Service Accounts (IRSA). Check if your cluster already has one:Create an S3 Bucket for Argo Workflows Artifacts
Argo Workflows archives ingestion logs to S3:Create IAM Roles for Service Accounts
We need 4 IAM roles — one for each service account (Collate Server, Collate Ingestion, Argo Controller, Argo Server).IAM Role for Argo Workflows Controller
IAM Role for Argo Workflows Server
IAM Role for Collate Server Application
IAM Role for Collate Ingestion
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.Configure AWS Credentials
Kubernetes Docker Registry Secrets for 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 first with kubectl create namespace <<NAMESPACE_NAME>>.Install Argo Workflows
Add Helm Repository
Create the Argo 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 metrics using:Install OpenMetadata/Collate
Create the Collate Namespace
Kubernetes Service Account for Ingestion
Annotate Service Account with IRSA Role
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: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.0openmetadata.values.yml:
[Optional] Enable Prometheus Metrics
Collate Application exposes Prometheus metrics on port8586. Enable the integration using: