Step 6: Install OpenLM Platform
Install the openlm-platform Helm release, then follow the pods until every one is running. Load the variables from openlm-install.env, the file you created from the installation worksheet:
source ./openlm-install.env
6.1 Install the release
Install the release with Helm:
helm upgrade --install openlm-platform openlm/openlm-platform \
--version "$OPENLM_VERSION" -n "$NS" -f openlm-values.yaml --timeout 60m
On OpenShift, add your second values file: -f openlm-values.yaml -f openlm-values-openshift.yaml. After the command finishes, follow the Route steps.
The command returns when the chart's topic setup job finishes. That job creates or checks each of OpenLM Platform's Kafka topics, one after the other, and takes 10 to 30 minutes, so the command looks idle for a while. This is expected. Don't press Ctrl+C. The job runs again on every upgrade, even when no topic changes, so always keep --timeout 60m and plan the time into upgrade windows.
A version such as 1.0.0-rc.4 is a pre-release. helm search repo openlm lists it only when you add --devel, but installing it with --version works as shown.
6.2 Follow the progress
To follow the progress, watch the pods in a second terminal:
kubectl -n openlm get pods -w
The pods go through these stages, in order:
- Pods appear and start (first few minutes). Many go through
ContainerCreatingwhile images download. openlm-identitytakes longest to become ready, up to 15 minutes on the first start, because it creates its database tables. Other services might restart a few times while they wait for it. This is expected.openlm-usersandgroupsservicealso has a long first start. Let it run.- The topic setup job (
kafkainitpod) runs and then showsCompleted.
6.3 Check that the installation finished
The installation has finished when the following command prints nothing, and every Running pod shows all containers ready (1/1):
kubectl -n "$NS" get pods --no-headers | grep -vE "Running|Completed"
On a cluster that pulls every image for the first time, plan 20 to 40 minutes.
Fix pods that don't become ready
If a pod stays in an error or waiting status, find its status in the following table:
| Pod status | Most likely cause | Where to look |
|---|---|---|
Pending for more than 5 minutes | No node fits: not enough capacity, or node placement is on but nodes aren't labeled | kubectl -n $NS describe pod <pod>, last lines. Node placement |
ImagePullBackOff | Nodes can't reach public.ecr.aws, or your mirror lacks the image | Networking: registry |
CreateContainerConfigError | A secret is missing | Run step 3 again |
CrashLoopBackOff on many pods | A data service is unreachable or a credential is wrong | kubectl -n $NS logs <pod> --previous |
CrashLoopBackOff with IdentityUnavailable or SSL in the log | Pods can't reach or don't trust https://$DOMAIN/identity | Sign-in and identity |
helm stops with timed out waiting for the condition | The topic setup job didn't finish in time, usually because Kafka is slow or unreachable | kubectl -n $NS logs job/kafka-init-pod, then run the same helm upgrade --install again with --timeout 60m. It continues, and the topics already created stay. |
For more problems and fixes, see Troubleshooting.
Check the release status:
helm -n "$NS" status openlm-platform | grep STATUS
The output must say STATUS: deployed, and the pod check in 6.3 must print nothing.
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.