Skip to main content

Environment setup

To provision the Azure infrastructure for OpenLM Platform, use Azure Kubernetes Service (AKS) and managed Azure services.

For detailed sizing and service specifications, see Requirements.

Infrastructure components​

The Azure deployment uses the following managed services:

ComponentAzure servicePurpose
KubernetesAzure Kubernetes Service (AKS)Container orchestration
SQL databaseAzure SQL Managed InstanceIdentity, operational, and reporting data
CacheAzure Cache for RedisCaching and session storage
Persistent storageAzure Managed DisksKafka, MongoDB, and other stateful services (about 400 GB)
Note

Kafka and MongoDB run inside the Kubernetes cluster using Helm charts and Azure Managed Disks for persistence, rather than as Azure managed services.

Network provisioning​

Use Azure Container Networking Interface (CNI) networking mode for AKS. The following table lists the network requirements:

ItemRequirement
Virtual network (VNet)Minimum /22 CIDR block (for example, 10.0.0.0/22)
IP capacity1,024 addresses, of which about 400 are needed for pods, nodes, and growth
Planned podsAbout 143
Planned nodes6–7

AKS cluster​

This section covers the node pools and node labels for the AKS cluster.

Node pools​

Create 3 node pools:

Node poolPurposeVM sizeCountMax pods per node
SystemKubernetes system pods4 vCPU, 16 GB RAM (for example, Standard_D4ds_v4)230
MainCore application workloads4 vCPU, 16 GB RAM270
ReportingReporting workloads4 vCPU, 16 GB RAM330

Use Kubernetes version 1.32.9 or another AKS-supported version matching your release policy.

Node labels​

Apply labels to nodes for workload scheduling. The OpenLM Platform chart expects openlm.com/role=main on the main nodes and openlm.com/role=spark on the reporting nodes:

kubectl label node <system-node> openlm.com/role=system
kubectl label node <main-node-1> openlm.com/role=main
kubectl label node <main-node-2> openlm.com/role=main
kubectl label node <report-node-1> openlm.com/role=spark
kubectl label node <report-node-2> openlm.com/role=spark
kubectl label node <report-node-3> openlm.com/role=spark

Managed services​

This section lists the requirements for each managed Azure service.

Azure SQL Managed Instance​

The following table lists the SQL Managed Instance requirements:

SettingRequirement
TierGeneral Purpose
Compute4 vCores minimum
Storage256 GB minimum
ScalingIncrease based on user volume, reporting load, and data retention

Azure Cache for Redis​

The following table lists the Azure Cache for Redis requirements:

SettingRequirement
TierC2
Cache size2.5 GB

Azure Managed Disks​

Managed disks are provisioned automatically by AKS when storage classes are configured. Approximately 400 GB total is needed for Kafka, MongoDB, and other stateful services.

In-cluster infrastructure services​

Kafka and MongoDB are not provisioned as Azure managed services on this path. They run inside the AKS cluster, backed by Azure Managed Disks. Create their namespace first by running this command:

kubectl create namespace openlm-infrastructure

Kafka​

Deploy Kafka from the Helm chart in the deployment package by running this command:

helm install kafka <kafka-chart>.tgz -f values.yaml -n openlm-infrastructure

Set the storage class and per-broker volume size in values.yaml before installing. Allow roughly 250 GB per broker.

Alternatively, use Confluent Cloud through the Azure Marketplace and point OpenLM Platform at its bootstrap servers instead of installing in-cluster. Azure Event Hubs with the Kafka protocol layer isn't supported.

MongoDB​

Deploy MongoDB inside the Kubernetes cluster using the Helm chart provided in the deployment package. Azure Managed Disks provide the underlying persistent storage.

helm install mongodb <mongodb-chart>.tgz -f values.yaml -n openlm-infrastructure

MongoDB Atlas through the Azure Marketplace is a supported managed alternative.

Verify the pods​

Run this command:

kubectl get pods -n openlm-infrastructure

Before you continue, check that all pods show Running.

Next steps​

After you provision the infrastructure:

  1. Configure kubectl to connect to the AKS cluster:
    az aks get-credentials --resource-group <resource-group> --name <cluster-name>
  2. Complete the Prerequisites checklist.
  3. Proceed to Platform installation.

The documentation team might draft this page using a large language model. A technical writer reviews every page and verifies it against the product before publishing it. A human makes the final decision.