Skip to main content

Environment setup

This page covers provisioning the Azure infrastructure for the OpenLM Platform using 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 (~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 CNI networking mode for AKS.

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

AKS cluster

Node pools

Create three 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:

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

Managed services

Azure SQL Managed Instance

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

Azure Cache for Redis

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.

MongoDB

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

Next steps

Once infrastructure is provisioned:

  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