Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions content/lightspeed/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
title: Lightspeed
linktitle: Lightspeed
description: All about OpenShift Lightspeed
tags: ['ai','lightspeed','v4.20']
icon: redhat/Technology_icon-Red_Hat-Ansible_Lightspeed-Standard-RGB
---
# All about OpenShift Lightspeed

Resources:
* <https://developers.redhat.com/articles/2025/11/05/use-openshift-lightspeed-locally-served-llms>


```yaml
apiVersion: ols.openshift.io/v1alpha1
kind: OLSConfig
metadata:
name: cluster
spec:
llm:
providers:
- credentialsSecretRef:
name: azure-api-keys
deploymentName: gpt-4
models:
- name: gpt-4
name: Azure
type: azure_openai
url: 'https://llm-gpt4-lightspeed.cognitiveservices.azure.com/'
ols:
defaultModel: gpt-4
defaultProvider: Azure
introspectionEnabled: true
logLevel: DEBUG
queryFilters:
- name: ip-address
pattern: '((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}'
replaceWith: <IP-ADDRESS>
rag:
- image: 'quay.io/dialvare/acme-byok:latest'
indexID: ''
indexPath: /rag/vector_db
```



```yaml
apiVersion: ols.openshift.io/v1alpha1
kind: OLSConfig
metadata:
labels:
app.kubernetes.io/created-by: lightspeed-operator
app.kubernetes.io/instance: olsconfig-sample
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: olsconfig
app.kubernetes.io/part-of: lightspeed-operator
name: cluster
spec:
llm:
providers:
- credentialsSecretRef:
name: credentials
models:
- name: granite-8b-code
url: 'https://granite-8b-code-code-assistant.apps.cluster-v7lnz.v7lnz.sandbox5321.opentlc.com/v1'
name: granite-8b-code
type: rhoai_vllm
url: 'https://granite-8b-code-code-assistant.apps.cluster-v7lnz.v7lnz.sandbox5321.opentlc.com/v1'
ols:
conversationCache:
postgres:
credentialsSecret: lightspeed-postgres-secret
dbName: postgres
maxConnections: 2000
sharedBuffers: 256MB
user: postgres
type: postgres
defaultModel: granite-8b-code
defaultProvider: granite-8b-code
deployment:
console:
replicas: 1
replicas: 1
introspectionEnabled: true
logLevel: DEBUG
olsDataCollector:
logLevel: INFO
```


Official documentation:

Tested with:

|Component|Version|
|---|---|
|OpenShift|v4.17.14|
|OpenShift Virt|v4.17.4|


- Cross-cluster VM live migration (TP)
- Light Speed
- anyuid
- Ingress encrypte anntionation
- Deployment - RWO & Node anti afitnity ✅
- Pod Logs permissions denied
Binary file added content/lightspeed/iso-example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 42 additions & 0 deletions content/lightspeed/route-issue/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
kind: Deployment
apiVersion: apps/v1
metadata:
name: route-issue
labels:
app: route-issue
app.kubernetes.io/component: route-issue
app.kubernetes.io/instance: route-issue
app.kubernetes.io/name: route-issue
app.kubernetes.io/part-of: route-issue
app.openshift.io/runtime: nginx
spec:
replicas: 1
selector:
matchLabels:
app: route-issue
template:
metadata:
creationTimestamp: null
labels:
app: route-issue
deployment: route-issue
spec:
containers:
- name: route-issue
image: quay.io/openshift-examples/otq-openshift/fixme-app:202511031025
ports:
- containerPort: 8080
protocol: TCP
resources: {}
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
schedulerName: default-scheduler
imagePullSecrets: []
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
Binary file added content/lightspeed/route-issue/fixme.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions content/lightspeed/route-issue/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml

Check failure on line 4 in content/lightspeed/route-issue/kustomization.yaml

View workflow job for this annotation

GitHub Actions / pre-commit-and-deploy

4:1 [indentation] wrong indentation: expected 2 but found 0
- service.yaml
- route.yaml
3 changes: 3 additions & 0 deletions content/lightspeed/route-issue/lightspeed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
You: The route is not available. Why?

OpenShift Lightspeed: The Route `fixme` is not functional because the associated Service `fixme` has a selector `app=fixmy`, but no Pods matching this label exist in the `fixme` namespace. Ensure Pods with the correct label (`app=fixmy`) are running to resolve the issue.
Binary file added content/lightspeed/route-issue/lightspeed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions content/lightspeed/route-issue/route.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
kind: Route
apiVersion: route.openshift.io/v1
metadata:
name: fixme
spec:
to:
kind: Service
name: fixme
weight: 100
port:
targetPort: 8080
tls:
termination: edge
insecureEdgeTerminationPolicy: Redirect
wildcardPolicy: None
11 changes: 11 additions & 0 deletions content/lightspeed/route-issue/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: fixme
spec:
selector:
app: fixmy
ports:
- protocol: TCP
port: 8080
targetPort: 8080
37 changes: 37 additions & 0 deletions content/lightspeed/storage-issue/deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

Check failure on line 1 in content/lightspeed/storage-issue/deployment.yml

View workflow job for this annotation

GitHub Actions / pre-commit-and-deploy

1:1 [empty-lines] too many blank lines (1 > 0)
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: storage-issue
labels:
app: storage-issue
app.openshift.io/runtime: redhat
app.kubernetes.io/part-of: storage-issue
spec:
replicas: 2
strategy:
type: Recreate
selector:
matchLabels:
app: storage-issue
template:
metadata:
labels:
app: storage-issue
spec:
automountServiceAccountToken: false
volumes:
- name: pvc
persistentVolumeClaim:
claimName: storage-issue
containers:
- name: tools
volumeMounts:
- mountPath: /pvc
name: pvc
image: registry.access.redhat.com/ubi9/ubi-micro:latest
command:
- "/bin/sh"
- "-c"
- "sleep infinity"

Check failure on line 37 in content/lightspeed/storage-issue/deployment.yml

View workflow job for this annotation

GitHub Actions / pre-commit-and-deploy

37:31 [new-line-at-end-of-file] no new line character at the end of file
5 changes: 5 additions & 0 deletions content/lightspeed/storage-issue/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yml

Check failure on line 4 in content/lightspeed/storage-issue/kustomization.yaml

View workflow job for this annotation

GitHub Actions / pre-commit-and-deploy

4:1 [indentation] wrong indentation: expected 2 but found 0
- pvc.yaml
10 changes: 10 additions & 0 deletions content/lightspeed/storage-issue/lightspeed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
You: Why is my deployment storage-issue in project demo-app only one of two pods running?

OpenShift Lightspeed: The issue lies with the second pod (`storage-issue-5cb4d5d794-qph6w`) being stuck in `ContainerCreating` state. This is likely due to the `PersistentVolumeClaim` (`storage-issue`) being configured with `ReadWriteOnce` access mode, which restricts the volume to be mounted by only one pod at a time.

### Resolution:
1. **Change Access Mode**: Update the PVC to use `ReadWriteMany` if your storage backend supports it.
2. **Separate PVCs**: Create individual PVCs for each pod if `ReadWriteMany` is not supported.
3. **Verify Storage Backend**: Ensure the storage class (`coe-netapp-san`) supports the required access mode.

Let me know if you need guidance on implementing these changes.
Binary file added content/lightspeed/storage-issue/lightspeed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions content/lightspeed/storage-issue/pvc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: storage-issue
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: coe-netapp-san

Check failure on line 12 in content/lightspeed/storage-issue/pvc.yaml

View workflow job for this annotation

GitHub Actions / pre-commit-and-deploy

12:35 [new-line-at-end-of-file] no new line character at the end of file
3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,9 @@ nav:
- S2I - R shiny: build/s2i-r-shiny.md
- Universal Base Images: build/universal-base-image.md

- Lightspeed:
- lightspeed/index.md

- Deploy:
- deploy/index.md
- Keycloak: deploy/keycloak/index.md
Expand Down
1 change: 1 addition & 0 deletions new-page-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: New Page
linktitle: New Page
description: Some information
tags: ['tagA','tagB','v4.17']
icon: redhat/Technology_icon-Red_Hat-OpenShift_Virtualization-Standard-RGB
---
# Some information

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading