Skip to main content

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
OpenShift

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.

Pre-release versions

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:

  1. Pods appear and start (first few minutes). Many go through ContainerCreating while images download.
  2. openlm-identity takes 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.
  3. openlm-usersandgroupsservice also has a long first start. Let it run.
  4. The topic setup job (kafkainitpod) runs and then shows Completed.

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 statusMost likely causeWhere to look
Pending for more than 5 minutesNo node fits: not enough capacity, or node placement is on but nodes aren't labeledkubectl -n $NS describe pod <pod>, last lines. Node placement
ImagePullBackOffNodes can't reach public.ecr.aws, or your mirror lacks the imageNetworking: registry
CreateContainerConfigErrorA secret is missingRun step 3 again
CrashLoopBackOff on many podsA data service is unreachable or a credential is wrongkubectl -n $NS logs <pod> --previous
CrashLoopBackOff with IdentityUnavailable or SSL in the logPods can't reach or don't trust https://$DOMAIN/identitySign-in and identity
helm stops with timed out waiting for the conditionThe topic setup job didn't finish in time, usually because Kafka is slow or unreachablekubectl -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

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.