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.3.0
version: 3.4.0
appVersion: 2.1.0
annotations:
artifacthub.io/category: integration-delivery
Expand Down
7 changes: 5 additions & 2 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.3.0](https://img.shields.io/badge/Version-3.3.0-informational?style=flat-square)
![Version: 3.4.0](https://img.shields.io/badge/Version-3.4.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.3.0
helm install my-rhdh redhat-developer/redhat-developer-hub --version 3.4.0
```

## Introduction
Expand Down Expand Up @@ -276,6 +276,7 @@ Kubernetes: `>= 1.31.0-0`
| intelligentAssistant.plugins | Intelligent Assistant dynamic plugin packages. | list | `[{"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"}]` |
| intelligentAssistant.runtimeVolume | Writable scratch volume for the sidecar (/tmp). | object | `{"emptyDir":{},"persistentVolumeClaim":{},"type":"emptyDir"}` |
| intelligentAssistant.runtimeVolume.type | Volume type: "emptyDir" or "persistentVolumeClaim". | string | `"emptyDir"` |
| lifecycleHooks | Lifecycle hooks for the main RHDH container. Ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/ | object | `{}` |
| livenessProbe | Liveness probe configuration. | object | `{"failureThreshold":3,"httpGet":{"path":"/.backstage/health/v1/liveness","port":"backend","scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":4}` |
| metrics | Prometheus metrics configuration. | object | `{"serviceMonitor":{"annotations":{},"enabled":false,"interval":"","labels":{},"path":"/metrics","port":"http-metrics"}}` |
| nameOverride | Override the chart name used in resource naming. | string | `"developer-hub"` |
Expand All @@ -301,6 +302,7 @@ Kubernetes: `>= 1.31.0-0`
| podSecurityContext | Pod-level security context. | object | `{}` |
| postgresql | Built-in PostgreSQL database (bitnami subchart). | object | `{"auth":{"secretKeys":{"adminPasswordKey":"postgres-password","userPasswordKey":"password"}},"enabled":true,"image":{"digest":"","registry":"quay.io","repository":"fedora/postgresql-18","tag":"latest"},"postgresqlDataDir":"/var/lib/pgsql/data/userdata","primary":{"containerSecurityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"enabled":false},"extraEnvVars":[{"name":"POSTGRESQL_ADMIN_PASSWORD","valueFrom":{"secretKeyRef":{"key":"{{- include \"rhdh.postgresql.adminPasswordKey\" . }}","name":"{{- include \"rhdh.postgresql.secretName\" . }}"}}}],"networkPolicy":{"enabled":false},"persistence":{"enabled":true,"mountPath":"/var/lib/pgsql/data","size":"1Gi"},"podSecurityContext":{"enabled":false},"resources":{"limits":{"cpu":"250m","ephemeral-storage":"20Mi","memory":"1024Mi"},"requests":{"cpu":"250m","memory":"256Mi"}}},"readReplicas":{"networkPolicy":{"enabled":false}},"serviceBindings":{"enabled":true}}` |
| preInitContainers | Init containers to run BEFORE the system init containers (e.g. inject auth credentials before install-dynamic-plugins runs). | list | `[]` |
| priorityClassName | Priority class name for pod scheduling. Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/ | string | `""` |
| readinessProbe | Readiness probe configuration. | object | `{"failureThreshold":3,"httpGet":{"path":"/.backstage/health/v1/readiness","port":"backend","scheme":"HTTP"},"periodSeconds":10,"successThreshold":2,"timeoutSeconds":4}` |
| replicaCount | Number of desired pods. | int | `1` |
| resources | Resource requests and limits for the main RHDH container. | object | `{"limits":{"cpu":"1000m","ephemeral-storage":"5Gi","memory":"2.5Gi"},"requests":{"cpu":"250m","memory":"1Gi"}}` |
Expand All @@ -315,6 +317,7 @@ Kubernetes: `>= 1.31.0-0`
| serviceAccount.name | The name of the service account to use. If not set and create is true, a name is generated using the fullname template. | string | `""` |
| startupProbe | Startup probe configuration. Gives the application time to start before liveness/readiness probes kick in. | object | `{"failureThreshold":3,"httpGet":{"path":"/.backstage/health/v1/liveness","port":"backend","scheme":"HTTP"},"initialDelaySeconds":30,"periodSeconds":20,"successThreshold":1,"timeoutSeconds":4}` |
| strategy | Deployment update strategy. | object | `{}` |
| terminationGracePeriodSeconds | Duration in seconds the pod needs to terminate gracefully before being force killed. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination | string | `nil` |
| test | Test pod configuration for `helm test`. | object | `{"enabled":true,"image":{"digest":"","pullPolicy":"IfNotPresent","registry":"quay.io","repository":"curl/curl","tag":"8.22.0"},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true}}` |
| tolerations | Tolerations for pod assignment. | list | `[]` |
| topologySpreadConstraints | Topology spread constraints for pod scheduling. | list | `[]` |
Expand Down
10 changes: 10 additions & 0 deletions charts/rhdh/templates/_backstage-pod-template.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ spec:
hostAliases:
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 4 }}
{{- end }}
{{- with .Values.priorityClassName }}
priorityClassName: {{ . | quote }}
{{- end }}
{{- if not (kindIs "invalid" .Values.terminationGracePeriodSeconds) }}
terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
{{- end }}
volumes:
# --- System volumes (hardcoded, never replaced) ---
- name: dynamic-plugins-root
Expand Down Expand Up @@ -249,6 +255,10 @@ spec:
securityContext:
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 8 }}
{{- end }}
{{- with .Values.lifecycleHooks }}
lifecycle:
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.commandOverride }}
command:
{{- include "common.tplvalues.render" (dict "value" .Values.commandOverride "context" $) | nindent 8 }}
Expand Down
2 changes: 1 addition & 1 deletion charts/rhdh/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ spec:
{{- include "rhdh.selectorLabels" . | nindent 6 }}
template:
{{- include "rhdh.backstagePodTemplate" . | nindent 4 }}
{{- end }}
{{- end }}
22 changes: 22 additions & 0 deletions charts/rhdh/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -1813,6 +1813,12 @@
"title": "Built-in Intelligent Assistant feature configuration.",
"type": "object"
},
"lifecycleHooks": {
"default": {},
"description": "Ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/",
"title": "Lifecycle hooks for the main RHDH container.",
"type": "object"
},
"livenessProbe": {
"default": {
"failureThreshold": 3,
Expand Down Expand Up @@ -2332,6 +2338,12 @@
"title": "Init containers to run BEFORE the system init containers (e.g. inject auth credentials before install-dynamic-plugins runs).",
"type": "array"
},
"priorityClassName": {
"default": "",
"description": "Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/",
"title": "Priority class name for pod scheduling.",
"type": "string"
},
"readinessProbe": {
"default": {
"failureThreshold": 3,
Expand Down Expand Up @@ -2528,6 +2540,16 @@
"title": "Deployment update strategy.",
"type": "object"
},
"terminationGracePeriodSeconds": {
"default": null,
"description": "Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination",
"minimum": 0,
"title": "Duration in seconds the pod needs to terminate gracefully before being force killed.",
"type": [
"integer",
"null"
]
},
"test": {
"additionalProperties": false,
"properties": {
Expand Down
19 changes: 19 additions & 0 deletions charts/rhdh/values.schema.tmpl.json
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,25 @@
"type": "array",
"default": []
},
"priorityClassName": {
"title": "Priority class name for pod scheduling.",
"description": "Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/",
"type": "string",
"default": ""
},
"terminationGracePeriodSeconds": {
"title": "Duration in seconds the pod needs to terminate gracefully before being force killed.",
"description": "Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination",
"type": ["integer", "null"],
"default": null,
"minimum": 0
},
"lifecycleHooks": {
"title": "Lifecycle hooks for the main RHDH container.",
"description": "Ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/",
"type": "object",
"default": {}
},
"deploymentAnnotations": {
"title": "Annotations for the Deployment resource (not the pod).",
"type": "object",
Expand Down
17 changes: 17 additions & 0 deletions charts/rhdh/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,23 @@ topologySpreadConstraints: []
# -- Host aliases for /etc/hosts entries.
hostAliases: []

# -- Priority class name for pod scheduling.
# Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
priorityClassName: ""

# -- Duration in seconds the pod needs to terminate gracefully before being force killed.
# Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
# @default -- `nil`
terminationGracePeriodSeconds:

# -- Lifecycle hooks for the main RHDH container.
# Ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
lifecycleHooks: {}
# lifecycleHooks:
# preStop:
# exec:
# command: ["/bin/sh", "-c", "sleep 10"]

# -- Annotations for the Deployment resource (not the pod).
deploymentAnnotations: {}

Expand Down
Loading