diff --git a/charts/rhdh/Chart.yaml b/charts/rhdh/Chart.yaml index 30e422c43..704f994db 100644 --- a/charts/rhdh/Chart.yaml +++ b/charts/rhdh/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: redhat-developer-hub type: application -version: 3.5.4 +version: 3.5.5 appVersion: 2.2.0 annotations: artifacthub.io/category: integration-delivery diff --git a/charts/rhdh/README.md b/charts/rhdh/README.md index 6b8943b67..bdf95df59 100644 --- a/charts/rhdh/README.md +++ b/charts/rhdh/README.md @@ -1,7 +1,7 @@ # RHDH Helm Chart for OpenShift and Kubernetes -![Version: 3.5.4](https://img.shields.io/badge/Version-3.5.4-informational?style=flat-square) +![Version: 3.5.5](https://img.shields.io/badge/Version-3.5.5-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. @@ -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.5.4 +helm install my-rhdh redhat-developer/redhat-developer-hub --version 3.5.5 ``` ## Introduction @@ -244,10 +244,12 @@ Kubernetes: `>= 1.31.0-0` | hostAliases | Host aliases for /etc/hosts entries. | list | `[]` | | httpRoute | Gateway API HTTPRoute configuration. | object | `{"annotations":{},"enabled":false,"hostnames":[],"labels":{},"parentRefs":[],"rules":[]}` | | httpRoute.labels | Additional labels for the HTTPRoute resource. | object | `{}` | +| httpRoute.rules | HTTPRoute rules. Each rule may set option `port` (backend service port). Defaults to `service.port` when omitted. | list | `[]` | | image | Container image configuration. | object | `{"digest":"","pullPolicy":"IfNotPresent","registry":"quay.io","repository":"rhdh-community/rhdh","tag":"next"}` | | 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":[]}` | +| ingress.hosts | Ingress hosts. Each path may set option `port` (backend service port). Defaults to `service.port` when omitted (e.g. use `4180` for an oauth2-proxy sidecar). | list | `[{"host":"{{ .Values.host }}","paths":[{"path":"/","pathType":"ImplementationSpecific"}]}]` | | 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.0"},"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":""}}` | diff --git a/charts/rhdh/templates/httproute.yaml b/charts/rhdh/templates/httproute.yaml index a23295956..9ca6f21dd 100644 --- a/charts/rhdh/templates/httproute.yaml +++ b/charts/rhdh/templates/httproute.yaml @@ -47,7 +47,7 @@ spec: {{- end }} backendRefs: - name: {{ $fullName }} - port: {{ $svcPort }} + port: {{ .port | default $svcPort }} weight: 1 {{- end }} {{- end }} diff --git a/charts/rhdh/templates/ingress.yaml b/charts/rhdh/templates/ingress.yaml index 404b24e66..1286153cd 100644 --- a/charts/rhdh/templates/ingress.yaml +++ b/charts/rhdh/templates/ingress.yaml @@ -42,7 +42,7 @@ spec: service: name: {{ include "rhdh.fullname" $ }} port: - number: {{ $.Values.service.port }} + number: {{ .port | default $.Values.service.port }} {{- end }} {{- end }} {{- end }} diff --git a/charts/rhdh/values.schema.json b/charts/rhdh/values.schema.json index a29a1322e..1acd6b2b5 100644 --- a/charts/rhdh/values.schema.json +++ b/charts/rhdh/values.schema.json @@ -687,6 +687,15 @@ }, "rules": { "default": [], + "items": { + "properties": { + "port": { + "title": "Optional backend service port override for this rule.", + "type": "integer" + } + }, + "type": "object" + }, "title": "HTTPRoute rules.", "type": "array" } @@ -774,6 +783,32 @@ ] } ], + "items": { + "properties": { + "host": { + "type": "string" + }, + "paths": { + "items": { + "properties": { + "path": { + "type": "string" + }, + "pathType": { + "type": "string" + }, + "port": { + "title": "Optional backend service port override for this path.", + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, "title": "Ingress hosts.", "type": "array" }, diff --git a/charts/rhdh/values.schema.tmpl.json b/charts/rhdh/values.schema.tmpl.json index 4570e49f7..ac79b7ba0 100644 --- a/charts/rhdh/values.schema.tmpl.json +++ b/charts/rhdh/values.schema.tmpl.json @@ -258,7 +258,33 @@ "hosts": { "title": "Ingress hosts.", "type": "array", - "default": [] + "default": [], + "items": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "paths": { + "type": "array", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "pathType": { + "type": "string" + }, + "port": { + "title": "Optional backend service port override for this path.", + "type": "integer" + } + } + } + } + } + } }, "tls": { "title": "Ingress TLS configuration.", @@ -300,7 +326,16 @@ "rules": { "title": "HTTPRoute rules.", "type": "array", - "default": [] + "default": [], + "items": { + "type": "object", + "properties": { + "port": { + "title": "Optional backend service port override for this rule.", + "type": "integer" + } + } + } } } }, diff --git a/charts/rhdh/values.yaml b/charts/rhdh/values.yaml index f6197c268..d61327f68 100644 --- a/charts/rhdh/values.yaml +++ b/charts/rhdh/values.yaml @@ -420,11 +420,14 @@ ingress: enabled: false className: "" annotations: {} + # -- Ingress hosts. Each path may set option `port` (backend service port). + # Defaults to `service.port` when omitted (e.g. use `4180` for an oauth2-proxy sidecar). hosts: - host: "{{ .Values.host }}" paths: - path: "/" pathType: "ImplementationSpecific" + # port: 4180 tls: [] # -- Gateway API HTTPRoute configuration. @@ -435,6 +438,8 @@ httpRoute: annotations: {} parentRefs: [] hostnames: [] + # -- HTTPRoute rules. Each rule may set option `port` (backend service port). + # Defaults to `service.port` when omitted. rules: [] # ── OpenShift ───────────────────────────────────────────────