Requirements
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. |
| 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. |
| 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. |
| 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). |
| 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 |
| 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. |
| 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 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.
Run these commands. Each one must print a version and no error:
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.
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.