Skip to content

Commit d77bf20

Browse files
authored
fix!: Use builtin probe endpoints (#216)
* fix!: Use builtin probe endpoints These are `/.backstage/health/v1/readiness` and `/.backstage/health/v1/liveness` and were added in v1.29 Ref: https://backstage.io/docs/releases/v1.29.0#backend-health-service Signed-off-by: Nikolai Røed Kristiansen <[email protected]> * chore(ci): Fix test failures in v1.31 Techdocs needs to be configured in app config. Point our image-digest test to the v1.31.0 sha Signed-off-by: Nikolai Røed Kristiansen <[email protected]> --------- Signed-off-by: Nikolai Røed Kristiansen <[email protected]>
1 parent d8e2ab8 commit d77bf20

7 files changed

+58
-29
lines changed

charts/backstage/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ sources:
3838
# This is the chart version. This version number should be incremented each time you make changes
3939
# to the chart and its templates, including the app version.
4040
# Versions are expected to follow Semantic Versioning (https://semver.org/)
41-
version: 1.11.0
41+
version: 2.0.0

charts/backstage/README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Backstage Helm Chart
33

44
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/backstage)](https://artifacthub.io/packages/search?repo=backstage)
5-
![Version: 1.11.0](https://img.shields.io/badge/Version-1.11.0-informational?style=flat-square)
5+
![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square)
66
![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
77

88
A Helm chart for deploying a Backstage application
@@ -135,16 +135,16 @@ Kubernetes: `>= 1.19.0-0`
135135
| backstage.image.tag | Backstage image tag (immutable tags are recommended) | string | `"latest"` |
136136
| backstage.initContainers | Backstage container init containers | list | `[]` |
137137
| backstage.installDir | Directory containing the backstage installation | string | `"/app"` |
138-
| backstage.livenessProbe | Liveness Probe Backstage doesn't provide any health endpoints by default. A simple one can be added like this: https://backstage.io/docs/plugins/observability/#health-checks <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. livenessProbe: failureThreshold: 3 httpGet: path: /healthcheck port: 7007 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 2 | object | `{}` |
138+
| backstage.livenessProbe | Liveness Probe Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. livenessProbe: failureThreshold: 3 httpGet: path: /.backstage/health/v1/liveness port: 7007 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 2 | object | `{"httpGet":{"path":"/.backstage/health/v1/liveness","port":7007,"scheme":"HTTP"}}` |
139139
| backstage.nodeSelector | Node labels for pod assignment <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector | object | `{}` |
140140
| backstage.podAnnotations | Annotations to add to the backend deployment pods | object | `{}` |
141141
| backstage.podLabels | Labels to add to the backend deployment pods | object | `{}` |
142142
| backstage.podSecurityContext | Security settings for a Pod. The security settings that you specify for a Pod apply to all Containers in the Pod. <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod | object | `{}` |
143-
| backstage.readinessProbe | Readiness Probe Backstage doesn't provide any health endpoints by default. A simple one can be added like this: https://backstage.io/docs/plugins/observability/#health-checks <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. readinessProbe: failureThreshold: 3 httpGet: path: /healthcheck port: 7007 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 2 timeoutSeconds: 2 | object | `{}` |
143+
| backstage.readinessProbe | Readiness Probe Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. readinessProbe: failureThreshold: 3 httpGet: path: /.backstage/health/v1/readiness port: 7007 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 2 timeoutSeconds: 2 | object | `{"httpGet":{"path":"/.backstage/health/v1/readiness","port":7007,"scheme":"HTTP"}}` |
144144
| backstage.replicas | Number of deployment replicas | int | `1` |
145145
| backstage.resources | Resource requests/limits <br /> Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-requests-and-limits-of-pod-and-container <!-- E.g. resources: limits: memory: 1Gi cpu: 1000m requests: memory: 250Mi cpu: 100m --> | object | `{}` |
146146
| backstage.revisionHistoryLimit | Define the [count of deployment revisions](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy) to be kept. May be set to 0 in case of GitOps deployment approach. | int | `10` |
147-
| backstage.startupProbe | Startup Probe Backstage doesn't provide any health endpoints by default. A simple one can be added like this: https://backstage.io/docs/plugins/observability/#health-checks <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. startupProbe: failureThreshold: 3 httpGet: path: /healthcheck port: 7007 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 2 | object | `{}` |
147+
| backstage.startupProbe | Startup Probe Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. startupProbe: failureThreshold: 3 httpGet: path: /.backstage/health/v1/liveness port: 7007 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 2 | object | `{"httpGet":{"path":"/.backstage/health/v1/liveness","port":7007,"scheme":"HTTP"}}` |
148148
| backstage.tolerations | Node tolerations for server scheduling to nodes with taints <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ | list | `[]` |
149149
| backstage.topologySpreadConstraints | Topology Spread Constraints for pod assignment <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#pod-topology-spread-constraints | list | `[]` |
150150
| clusterDomain | Default Kubernetes cluster domain | string | `"cluster.local"` |

charts/backstage/ci/appConfig-values.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
backstage:
22
appConfig:
3+
techdocs:
4+
builder: "local"
35
app:
46
# Let's test that everything is fine with comments
57
title: The very best Backstage Helm Chart! :D

charts/backstage/ci/image-digest-values.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ backstage:
22
image:
33
registry: ghcr.io
44
repository: backstage/backstage
5-
digest: "sha256:a384ce618232b5d9908df083e43c294119f4efdc66890d2a8e3bcba9ccd955e9"
5+
digest: "sha256:f9ffa809e2c3f351699129d57edd6e64ca9ea5a4d4dd6339fed1ec80a30bc042"

charts/backstage/ci/probes-values.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ backstage:
1515
readinessProbe:
1616
failureThreshold: 3
1717
httpGet:
18-
path: /healthcheck
18+
path: /.backstage/health/v1/readiness
1919
port: 7007
2020
scheme: HTTP
2121
initialDelaySeconds: 30
@@ -25,7 +25,7 @@ backstage:
2525
livenessProbe:
2626
failureThreshold: 3
2727
httpGet:
28-
path: /healthcheck
28+
path: /.backstage/health/v1/liveness
2929
port: 7007
3030
scheme: HTTP
3131
initialDelaySeconds: 60
@@ -35,7 +35,7 @@ backstage:
3535
startupProbe:
3636
failureThreshold: 3
3737
httpGet:
38-
path: /healthcheck
38+
path: /.backstage/health/v1/liveness
3939
port: 7007
4040
scheme: HTTP
4141
initialDelaySeconds: 60

charts/backstage/values.schema.tmpl.json

+24-6
Original file line numberDiff line numberDiff line change
@@ -455,12 +455,18 @@
455455
"title": "Readiness probe",
456456
"description": "Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/",
457457
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Probe",
458-
"default": {},
458+
"default": {
459+
"httpGet": {
460+
"path": "/.backstage/health/v1/readiness",
461+
"port": 7007,
462+
"scheme": "HTTP"
463+
}
464+
},
459465
"examples": [
460466
{
461467
"failureThreshold": 3,
462468
"httpGet": {
463-
"path": "/healthcheck",
469+
"path": "/.backstage/health/v1/readiness",
464470
"port": 7007,
465471
"scheme": "HTTP"
466472
},
@@ -475,12 +481,18 @@
475481
"title": "Liveness probe",
476482
"description": "Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/",
477483
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Probe",
478-
"default": {},
484+
"default": {
485+
"httpGet": {
486+
"path": "/.backstage/health/v1/liveness",
487+
"port": 7007,
488+
"scheme": "HTTP"
489+
}
490+
},
479491
"examples": [
480492
{
481493
"failureThreshold": 3,
482494
"httpGet": {
483-
"path": "/healthcheck",
495+
"path": "/.backstage/health/v1/liveness",
484496
"port": 7007,
485497
"scheme": "HTTP"
486498
},
@@ -495,12 +507,18 @@
495507
"title": "Startup probe",
496508
"description": "Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/",
497509
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Probe",
498-
"default": {},
510+
"default": {
511+
"httpGet": {
512+
"path": "/.backstage/health/v1/liveness",
513+
"port": 7007,
514+
"scheme": "HTTP"
515+
}
516+
},
499517
"examples": [
500518
{
501519
"failureThreshold": 3,
502520
"httpGet": {
503-
"path": "/healthcheck",
521+
"path": "/.backstage/health/v1/liveness",
504522
"port": 7007,
505523
"scheme": "HTTP"
506524
},

charts/backstage/values.yaml

+23-14
Original file line numberDiff line numberDiff line change
@@ -183,52 +183,61 @@ backstage:
183183
resources: {}
184184

185185
# -- Readiness Probe
186-
# Backstage doesn't provide any health endpoints by default. A simple one can be added like this: https://backstage.io/docs/plugins/observability/#health-checks
187-
# <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
186+
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
188187
# <!-- E.g.
189188
# readinessProbe:
190189
# failureThreshold: 3
191190
# httpGet:
192-
# path: /healthcheck
191+
# path: /.backstage/health/v1/readiness
193192
# port: 7007
194193
# scheme: HTTP
195194
# initialDelaySeconds: 30
196195
# periodSeconds: 10
197196
# successThreshold: 2
198197
# timeoutSeconds: 2
199-
readinessProbe: {}
198+
readinessProbe:
199+
httpGet:
200+
path: /.backstage/health/v1/readiness
201+
port: 7007
202+
scheme: HTTP
200203

201204
# -- Liveness Probe
202-
# Backstage doesn't provide any health endpoints by default. A simple one can be added like this: https://backstage.io/docs/plugins/observability/#health-checks
203-
# <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
205+
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
204206
# <!-- E.g.
205207
# livenessProbe:
206208
# failureThreshold: 3
207209
# httpGet:
208-
# path: /healthcheck
210+
# path: /.backstage/health/v1/liveness
209211
# port: 7007
210212
# scheme: HTTP
211213
# initialDelaySeconds: 60
212214
# periodSeconds: 10
213215
# successThreshold: 1
214216
# timeoutSeconds: 2
215-
livenessProbe: {}
216-
217-
# -- Startup Probe
218-
# Backstage doesn't provide any health endpoints by default. A simple one can be added like this: https://backstage.io/docs/plugins/observability/#health-checks
219-
# <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
217+
livenessProbe:
218+
httpGet:
219+
path: /.backstage/health/v1/liveness
220+
port: 7007
221+
scheme: HTTP
222+
223+
# -- Startup Probe
224+
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
220225
# <!-- E.g.
221226
# startupProbe:
222227
# failureThreshold: 3
223228
# httpGet:
224-
# path: /healthcheck
229+
# path: /.backstage/health/v1/liveness
225230
# port: 7007
226231
# scheme: HTTP
227232
# initialDelaySeconds: 60
228233
# periodSeconds: 10
229234
# successThreshold: 1
230235
# timeoutSeconds: 2
231-
startupProbe: {}
236+
startupProbe:
237+
httpGet:
238+
path: /.backstage/health/v1/liveness
239+
port: 7007
240+
scheme: HTTP
232241

233242
# -- Security settings for a Pod.
234243
# The security settings that you specify for a Pod apply to all Containers in the Pod.

0 commit comments

Comments
 (0)