---
title: Requirements
description: Check the cluster size, Kubernetes version, data services, network access, and tools you need before you install OpenLM Platform.
product: OpenLM Platform
---

Check every row on this page before you start. Most failed installations come from a missing requirement: the installation itself rarely goes wrong.

## Cluster

Your cluster must meet these requirements:

| Item | Requirement |
|---|---|
| Kubernetes | Version **1.29 or newer**. This guide covers Amazon EKS, Azure AKS, Red Hat OpenShift 4.18+ (including ROSA and ARO), and K3s. |
| Capacity for the standard component set | The pods **request** about **10 vCPU and 22 GiB** of memory together and can grow to about 55 GiB. Plan at least **24 vCPU and 96 GiB** of worker capacity, for example 3 nodes of 8 vCPU / 32 GiB. Sites with 100 license servers or more need more. See [Sizing](https://www.openlm.com/documentation/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/before-you-start/sizing). |
| Pods per node | About 85 pods in total, plus the API gateway and your cluster's own system pods. Check your cluster's pods-per-node limit: on EKS it depends on the instance type. See [EKS](https://www.openlm.com/documentation/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/platforms/eks). |
| Node OS settings | `fs.inotify.max_user_instances` of at least **8192** on every node. The default of 128 is too low when about 85 services start at the same time. |
| Storage | A **StorageClass** that can create `ReadWriteOnce` volumes. OpenLM Platform needs three volumes of 50 MiB each. |
| Ingress | An ingress controller (Traefik, ingress-nginx, or your cloud's controller) or OpenShift Routes. See [Ingress](https://www.openlm.com/documentation/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/concepts/ingress). |
| Permissions | Rights to create Deployments, Services, ConfigMaps, Secrets, Ingresses (or Routes), and PersistentVolumeClaims in the namespace `openlm`. |

## Data services

Provide these four data services:

| Service | Requirement |
|---|---|
| **SQL Server** | SQL Server 2019 or newer, or Azure SQL Database / Amazon RDS for SQL Server. A SQL login that owns four databases (see [Data services](https://www.openlm.com/documentation/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/install/step-2-data-services)). |
| **MongoDB** | MongoDB 6.0 or newer, preferably 7.0, with a user that can create databases. You don't need a replica set. Azure Cosmos DB and Amazon DocumentDB are **not** supported: they aren't fully MongoDB-compatible. |
| **Kafka** | Kafka 3.x or 4.x (KRaft or ZooKeeper). Plaintext or TLS. OpenLM Platform creates its own topics during installation. |
| **Redis** | Redis 7.x or a compatible service (Amazon ElastiCache, Azure Cache / Azure Managed Redis). Plain or TLS, with a password. |

## Network access

Open the following connections:

| From | To | Why |
|---|---|---|
| Cluster nodes | `public.ecr.aws` (HTTPS) | Pull the OpenLM images, unless you use a [registry mirror](https://www.openlm.com/documentation/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/concepts/networking#registry-mirror) |
| Cluster nodes | `docker.tyk.io` (HTTPS) | Pull the API gateway image, unless you use a registry mirror |
| Pods | SQL Server, MongoDB, Kafka, Redis | Data |
| Pods | **Your OpenLM Platform web address**, `https://openlm.example.com` | Services check sign-in tokens there. See [Networking](https://www.openlm.com/documentation/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/concepts/networking). |
| Users' browsers | Your OpenLM Platform web address, port 443 | Use OpenLM Platform |

OpenLM Platform makes no other outbound connections unless you switch on an integration that needs one, for example ServiceNow.

## DNS name and certificate

Prepare a name and a certificate for it:

- **DNS name**: One DNS name for OpenLM Platform, for example `openlm.example.com`. Keep it under 50 characters.
- **TLS certificate**: A certificate for that name. A certificate from a public certificate authority is easiest. A certificate from your company's own CA works too, with one extra step. Read [TLS certificates](https://www.openlm.com/documentation/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/concepts/tls-certificates) before you choose.

## Tools on your workstation

Install these tools on your workstation:

| Tool | Version | Used for |
|---|---|---|
| `kubectl` (or `oc` on OpenShift) | matching your cluster | Everything |
| `helm` | 3.12 or newer | Installing the charts |
| `openssl` | any | Generating passwords, checking certificates |
| `sqlcmd`, or SQL Server Management Studio (SSMS) or another SQL Server client | `sqlcmd` 18 or newer | Creating databases, running the reporting scripts |
| `base64` | any | Encoding the SQL password |

Commands in this guide are written for a Linux or macOS shell (bash or zsh). On Windows, use WSL or a Linux jump host.

:::tip[Check]
Run these commands. Each one must print a version and no error:

```bash
kubectl version
helm version
kubectl auth can-i create deployments -n openlm
```

The last one must print `yes`. If the namespace doesn't exist yet, it can print `no` until you create it in [step 1](https://www.openlm.com/documentation/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/install/step-1-prepare-cluster).
:::
