Installation Guide
===================
This page covers prerequisites, installing the operator, setting up LLM
credentials, and deploying ``OpenStackLightspeed``. No cluster yet? See
:ref:`dont-have-a-cluster-yet-crc`
Prerequisites
-------------
* An OpenShift cluster (4.16+).
.. warning::
Known issue: the console UI does not currently work on OpenShift 4.20
or newer. Stick to 4.18 until this is resolved.
* An LLM endpoint and API key — any provider from
:ref:`supported-providers` works.
* A free Red Hat Developer account, to pull some images from
``registry.redhat.io`` — see :ref:`redhat-registry-access` below.
* Optional: RHOSO installed, only needed for the experimental
cluster-introspection feature (:doc:`usage`).
.. _redhat-registry-access:
Access to registry.redhat.io images
------------------------------------
The console plugin and OKP images (both always deployed) come from
``registry.redhat.io`` rather than ``quay.io``. This requires a **free**
account you can create by following these steps:
#. Create a free account at `developers.redhat.com
`_.
#. Download a pull secret from the `Hybrid Cloud Console
`_.
#. Add it to your cluster:
* **CRC**: pass it as ``PULL_SECRET`` when creating the cluster — see
:ref:`dont-have-a-cluster-yet-crc`.
* **Existing cluster**: merge it into the cluster-wide pull secret:
.. code-block:: bash
oc get secret/pull-secret -n openshift-config -o jsonpath='{.data.\.dockerconfigjson}' \
| base64 -d > pull-secret.json
# merge the downloaded auths into pull-secret.json, then:
oc set data secret/pull-secret -n openshift-config \
--from-file=.dockerconfigjson=pull-secret.json
#. Verify the cluster itself can pull, using its own pull secret:
.. code-block:: console
$ oc run registry-pull-test --image=registry.redhat.io/openshift-lightspeed/lightspeed-console-plugin-pf5-rhel9:1.0.12 --restart=Never
$ oc get pod registry-pull-test
Any status other than ``ImagePullBackOff``/``ErrImagePull`` means it's
working — clean up with ``oc delete pod registry-pull-test``. If you do
see it, the secret from the previous step didn't propagate — see
:ref:`console-widget-not-appearing`.
.. _installing-the-operator:
Installing the operator
------------------------
#. **Operators → OperatorHub**, search for **"OpenStack Lightspeed
(Community)"**.
#. Click **Install**, choosing the ``openstack-lightspeed`` namespace.
#. Track progress under **Operators → Installed Operators**, or:
.. code-block:: console
$ oc get -n openstack-lightspeed pods
NAME READY STATUS RESTARTS AGE
openstack-lightspeed-operator-controller-manager-76df7fbfb5wggr 1/1 Running 0 72s
.. note::
Currently published for OpenShift 4.16 and 4.18 specifically — on
other versions it won't appear in OperatorHub search. Use the
alternative below instead.
**Alternative — deploy from source** (for testing an unreleased build, or
if your OpenShift version isn't in the catalog yet):
.. code-block:: bash
git clone https://github.com/openstack-k8s-operators/lightspeed-operator.git
cd lightspeed-operator
make openstack-lightspeed-deploy
This sets up its own ``CatalogSource``, namespace, and ``Subscription`` —
bypassing OperatorHub entirely.
Setting up LLM credentials
----------------------------
You need an API key, endpoint URL, and model name.
Create the API key secret — the key **must** be named ``apitoken``:
.. code-block:: bash
oc apply -f - <
EOF
Using a self-hosted endpoint with a self-signed certificate (e.g. vLLM,
Ollama)? Add its CA bundle too — any key name works, PEM data is all
that's parsed:
.. code-block:: bash
oc apply -f - <:/v1
llmEndpointType:
llmCredentials: openstack-lightspeed-apitoken
modelName:
tlsCACertBundle: openstack-lightspeed-certs # optional
This deploys the full stack: the AI engine (lightspeed-stack and
llama-stack/OGX), PostgreSQL, OKP, and the console plugin.
Verifying the deployment
---------------------------
.. code-block:: bash
oc describe -n openstack-lightspeed openstacklightspeed
oc get -n openstack-lightspeed deployments,pods
Not reaching ``Ready``? See :doc:`troubleshooting`.
Accessing the assistant
---------------------------
.. code-block:: bash
oc whoami --show-console
Open that URL and use the Lightspeed widget (lower-right corner). First
time activating the plugin, you may need to click **refresh** on the
console notification that appears.