Skip to content
Merged
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
2 changes: 1 addition & 1 deletion charts/rhdh/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v2
name: redhat-developer-hub
type: application
version: 3.1.0
version: 3.2.0
appVersion: 2.1.0
annotations:
artifacthub.io/category: integration-delivery
Expand Down
8 changes: 4 additions & 4 deletions charts/rhdh/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# RHDH Helm Chart for OpenShift and Kubernetes

![Version: 3.1.0](https://img.shields.io/badge/Version-3.1.0-informational?style=flat-square)
![Version: 3.2.0](https://img.shields.io/badge/Version-3.2.0-informational?style=flat-square)
![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)

A Helm chart for deploying Red Hat Developer Hub, which is a Red Hat supported version of Backstage.
Expand Down Expand Up @@ -36,7 +36,7 @@ For the **Generally Available** version of this chart, see:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add redhat-developer https://redhat-developer.github.io/rhdh-chart

helm install my-rhdh redhat-developer/redhat-developer-hub --version 3.1.0
helm install my-rhdh redhat-developer/redhat-developer-hub --version 3.2.0
```

## Introduction
Expand Down Expand Up @@ -247,7 +247,7 @@ Kubernetes: `>= 1.31.0-0`
| image.digest | Overrides the image tag with an image digest. | string | `""` |
| imagePullSecrets | Secrets for pulling images from private registries (merged with global.imagePullSecrets). | list | `[]` |
| ingress | Kubernetes Ingress configuration. | object | `{"annotations":{},"className":"","enabled":false,"hosts":[{"host":"{{ .Values.host }}","paths":[{"path":"/","pathType":"ImplementationSpecific"}]}],"tls":[]}` |
| intelligentAssistant | Built-in Intelligent Assistant feature configuration. | object | `{"config":{"profile":{"existingConfigMap":{"key":"","name":""}},"stack":{"existingConfigMap":{"key":"","name":""}}},"core":{"argsOverride":[],"commandOverride":[],"extraArgs":[],"extraEnv":[],"extraVolumeMounts":[],"image":{"digest":"","registry":"quay.io","repository":"lightspeed-core/lightspeed-stack","tag":"dev-20260824-cbd182b"},"imagePullPolicy":"IfNotPresent","resources":{"limits":{"cpu":"1000m","memory":"2Gi"},"requests":{"cpu":"100m","memory":"512Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}}},"enabled":true,"existingSecret":"","okp":{"affinity":{},"enabled":false,"httpd":{"compressed":"true","encrypt":"false","serverName":"localhost"},"image":{"digest":"","pullPolicy":"IfNotPresent","registry":"registry.redhat.io","repository":"offline-knowledge-portal/rhokp-rhel9","tag":"1.2.12-1788274041"},"imagePullSecrets":[],"ingress":{"annotations":{},"className":"","enabled":true,"host":"","tls":{"enabled":false,"secretName":""}},"livenessProbe":{"initialDelaySeconds":30,"periodSeconds":30},"nodeSelector":{},"readinessProbe":{"initialDelaySeconds":10,"periodSeconds":10},"replicaCount":1,"resources":{"limits":{"cpu":"2","memory":"4Gi"},"requests":{"cpu":"200m","memory":"2Gi"}},"route":{"enabled":true,"tls":{"insecureEdgeTerminationPolicy":"Redirect","termination":"edge"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}},"service":{"type":"ClusterIP"},"solr":{"hostBind":"0.0.0.0","memory":"1g"},"tolerations":[],"topologySpreadConstraints":[]},"plugins":[{"enabled":true,"package":"ref://red-hat-developer-hub-backstage-plugin-intelligent-assistant"},{"enabled":true,"package":"ref://red-hat-developer-hub-backstage-plugin-intelligent-assistant-backend"}],"runtimeVolume":{"emptyDir":{},"persistentVolumeClaim":{},"type":"emptyDir"}}` |
| intelligentAssistant | Built-in Intelligent Assistant feature configuration. | object | `{"config":{"profile":{"existingConfigMap":{"key":"","name":""}},"stack":{"existingConfigMap":{"key":"","name":""}}},"core":{"argsOverride":[],"commandOverride":[],"extraArgs":[],"extraEnv":[],"extraVolumeMounts":[],"image":{"digest":"","registry":"quay.io","repository":"lightspeed-core/lightspeed-stack","tag":"0.7.0rc3"},"imagePullPolicy":"IfNotPresent","resources":{"limits":{"cpu":"1000m","memory":"2Gi"},"requests":{"cpu":"100m","memory":"512Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}}},"enabled":true,"existingSecret":"","okp":{"affinity":{},"enabled":false,"httpd":{"compressed":"true","encrypt":"false","serverName":"localhost"},"image":{"digest":"","pullPolicy":"IfNotPresent","registry":"registry.redhat.io","repository":"offline-knowledge-portal/rhokp-rhel9","tag":"1.2.12-1788274041"},"imagePullSecrets":[],"ingress":{"annotations":{},"className":"","enabled":true,"host":"","tls":{"enabled":false,"secretName":""}},"livenessProbe":{"initialDelaySeconds":30,"periodSeconds":30},"nodeSelector":{},"readinessProbe":{"initialDelaySeconds":10,"periodSeconds":10},"replicaCount":1,"resources":{"limits":{"cpu":"2","memory":"4Gi"},"requests":{"cpu":"200m","memory":"2Gi"}},"route":{"enabled":true,"tls":{"insecureEdgeTerminationPolicy":"Redirect","termination":"edge"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}},"service":{"type":"ClusterIP"},"solr":{"hostBind":"0.0.0.0","memory":"1g"},"tolerations":[],"topologySpreadConstraints":[]},"plugins":[{"enabled":true,"package":"ref://red-hat-developer-hub-backstage-plugin-intelligent-assistant"},{"enabled":true,"package":"ref://red-hat-developer-hub-backstage-plugin-intelligent-assistant-backend"}],"runtimeVolume":{"emptyDir":{},"persistentVolumeClaim":{},"type":"emptyDir"}}` |
| intelligentAssistant.config | Configuration files mounted into the sidecar. By default, the chart creates ConfigMaps from bundled source files. Set existingConfigMap to use a pre-existing ConfigMap instead. | object | `{"profile":{"existingConfigMap":{"key":"","name":""}},"stack":{"existingConfigMap":{"key":"","name":""}}}` |
| intelligentAssistant.config.profile | Python profile with prompt templates (rhdh-profile.py). | object | `{"existingConfigMap":{"key":"","name":""}}` |
| intelligentAssistant.config.profile.existingConfigMap | Use an existing ConfigMap instead of the bundled default. | object | Created from bundled rhdh-profile.py |
Expand All @@ -257,7 +257,7 @@ Kubernetes: `>= 1.31.0-0`
| intelligentAssistant.config.stack.existingConfigMap | Use an existing ConfigMap instead of the bundled default. | object | Created from bundled lightspeed-stack.yaml |
| intelligentAssistant.config.stack.existingConfigMap.key | Key within the ConfigMap that holds the file content. Defaults to the bundled filename (lightspeed-stack.yaml) if not set. | string | `""` |
| intelligentAssistant.config.stack.existingConfigMap.name | Name of the existing ConfigMap. | string | `""` |
| intelligentAssistant.core | Lightspeed Core sidecar container. | object | `{"argsOverride":[],"commandOverride":[],"extraArgs":[],"extraEnv":[],"extraVolumeMounts":[],"image":{"digest":"","registry":"quay.io","repository":"lightspeed-core/lightspeed-stack","tag":"dev-20260824-cbd182b"},"imagePullPolicy":"IfNotPresent","resources":{"limits":{"cpu":"1000m","memory":"2Gi"},"requests":{"cpu":"100m","memory":"512Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}}}` |
| intelligentAssistant.core | Lightspeed Core sidecar container. | object | `{"argsOverride":[],"commandOverride":[],"extraArgs":[],"extraEnv":[],"extraVolumeMounts":[],"image":{"digest":"","registry":"quay.io","repository":"lightspeed-core/lightspeed-stack","tag":"0.7.0rc3"},"imagePullPolicy":"IfNotPresent","resources":{"limits":{"cpu":"1000m","memory":"2Gi"},"requests":{"cpu":"100m","memory":"512Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}}}` |
| intelligentAssistant.core.argsOverride | Override the container's default args. Leave empty to use the chart defaults. | list | `[]` |
| intelligentAssistant.core.commandOverride | Override the container's default command. Leave empty to use the image entrypoint. | list | `[]` |
| intelligentAssistant.core.extraArgs | Extra arguments appended after the default arguments. Ignored when argsOverride is set. | list | `[]` |
Expand Down
15 changes: 11 additions & 4 deletions charts/rhdh/files/intelligent-assistant/secret.example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,23 @@
# Then set in your values override:
# intelligentAssistant:
# existingSecret: "my-lightspeed-secret"

#
# Set to question_validity to enable question validation.
Comment thread
michael-valdron marked this conversation as resolved.
ENABLE_VALIDATION: ""
KV_STORE_PATH: "/tmp/kvstore.db"
SQL_STORE_PATH: "/tmp/sql_store.db"
SQLITE_STORE_DIR: "/tmp/llama-stack-files"
VLLM_URL: ""
VLLM_API_KEY: ""
VLLM_MAX_TOKENS: ""
VLLM_TLS_VERIFY: ""
OPENAI_API_KEY: ""
VERTEX_AI_PROJECT: ""
VERTEX_AI_LOCATION: ""
GOOGLE_APPLICATION_CREDENTIALS: ""
VERTEX_AI_LOCATION: "global"
GOOGLE_APPLICATION_CREDENTIALS_HOST_PATH: ""
GOOGLE_APPLICATION_CREDENTIALS: "/app-root/gcp-credentials.json"
ENABLE_VALIDATION: ""
VALIDATION_PROVIDER: ""
VALIDATION_MODEL_NAME: ""
OKP_ACCESS_KEY: ""
LLAMA_STACK_LOGGING: ""
OTEL_SDK_DISABLED: "true"
2 changes: 1 addition & 1 deletion charts/rhdh/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@
"digest": "",
"registry": "quay.io",
"repository": "lightspeed-core/lightspeed-stack",
"tag": "dev-20260824-cbd182b"
"tag": "0.7.0rc3"
},
"imagePullPolicy": "IfNotPresent",
"resources": {
Expand Down
2 changes: 1 addition & 1 deletion charts/rhdh/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ intelligentAssistant:
image:
registry: "quay.io"
repository: "lightspeed-core/lightspeed-stack"
tag: "dev-20260824-cbd182b"
tag: "0.7.0rc3"
digest: ""
imagePullPolicy: "IfNotPresent"
# -- Override the container's default command. Leave empty to use the image entrypoint.
Expand Down
1 change: 0 additions & 1 deletion docs/intelligent-assistant.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,6 @@ Key environment variables in the secret:
| `OPENAI_API_KEY` | OpenAI inference key | If using OpenAI provider |
| `VLLM_URL`, `VLLM_API_KEY` | vLLM inference endpoint | If using vLLM provider |
| `VERTEX_AI_PROJECT`, `VERTEX_AI_LOCATION` | Google Vertex AI | If using Vertex AI |
| `OLLAMA_URL` | Ollama endpoint | If using Ollama |
| `ENABLE_VALIDATION`, `VALIDATION_PROVIDER`, `VALIDATION_MODEL_NAME` | Input validation | Optional |

## HTTPS and TLS
Expand Down
21 changes: 20 additions & 1 deletion hack/sync-lightspeed-configs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,25 @@ strip_okp_config() {
render_secret_yaml_from_env() {
local source_file=$1
local destination_file=$2

cat > "${destination_file}" << 'EOF'
# This file is a reference template — it is NOT deployed by the chart.
#
# Use it as a starting point to create a Kubernetes Secret containing credentials
# and settings for providers configured in lightspeed-stack.yaml. The Secret does
# not enable a provider. Supply a provider-enabled stack through
# intelligentAssistant.config.stack.existingConfigMap.
#
# Example:
# kubectl create secret generic my-lightspeed-secret \
# --from-env-file=<(grep -v '^#' secret.example.yaml | grep -v '^$')
#
# Then set in your values override:
# intelligentAssistant:
# existingSecret: "my-lightspeed-secret"
#
# Set to question_validity to enable question validation.
EOF

awk '
/^[[:space:]]*$/ { next }
Expand All @@ -55,7 +74,7 @@ render_secret_yaml_from_env() {
gsub(/"/, "\\\"", value)
printf "%s: \"%s\"\n", key, value
}
' "${source_file}" > "${destination_file}"
' "${source_file}" >> "${destination_file}"
}

usage() {
Expand Down
Loading