Skip to content

Commit 6cb518d

Browse files
feat: upgrade k8s-sidecar to v2.2.3 with health probes (#515)
* chore(deps): update quay.io/kiwigrid/k8s-sidecar docker tag to v2 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat: upgrade k8s-sidecar to v2.2.3 with health probes - Update k8s-sidecar image from 1.30.5 to 2.2.3 - Add liveness and readiness probes using /healthz endpoint (v2 feature) - Add sidecar.env.skip_init option for SKIP_INIT env var (v2.1.0+) - Update Chart.yaml annotations to reflect new sidecar version - Bump chart version to 0.39.0 - Fix YAML lint issue in values.yaml --------- Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 parent 0f1943f commit 6cb518d

5 files changed

Lines changed: 62 additions & 8 deletions

File tree

charts/node-red/Chart.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ icon: https://nodered.org/about/resources/media/node-red-icon-2.png
99

1010
type: application
1111

12-
version: 0.38.0
12+
version: 0.39.0
1313
appVersion: 4.1.2
1414

1515
keywords:
@@ -30,11 +30,12 @@ annotations:
3030
artifacthub.io/containsSecurityUpdates: "false"
3131
artifacthub.io/changes: |
3232
- Update Node-RED to 4.1.2
33+
- Update k8s-sidecar to 2.2.3 (major version upgrade with health endpoint support)
3334
artifacthub.io/images: |
3435
- name: node-red
3536
image: docker.io/nodered/node-red:4.1.2
3637
- name: node-red-sidecar
37-
image: quay.io/kiwigrid/k8s-sidecar:1.30.5
38+
image: quay.io/kiwigrid/k8s-sidecar:2.2.3
3839
artifacthub.io/license: Apache-2.0
3940
artifacthub.io/links: |
4041
- name: website

charts/node-red/README.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# node-red ⚙
22

3-
![Version: 0.38.0](https://img.shields.io/badge/Version-0.38.0-informational?style=for-the-badge)
3+
![Version: 0.39.0](https://img.shields.io/badge/Version-0.39.0-informational?style=for-the-badge)
44
![Type: application](https://img.shields.io/badge/Type-application-informational?style=for-the-badge)
55
![AppVersion: 4.1.2](https://img.shields.io/badge/AppVersion-4.1.2-informational?style=for-the-badge)
66

@@ -18,7 +18,7 @@ A Helm chart for Node-Red, a low-code programming for event-driven applications
1818
To install the chart using the OCI artifact, run:
1919

2020
```bash
21-
helm install node-red oci://ghcr.io/schwarzit/charts/node-red --version 0.38.0
21+
helm install node-red oci://ghcr.io/schwarzit/charts/node-red --version 0.39.0
2222
```
2323

2424
## Usage
@@ -34,7 +34,7 @@ helm repo update
3434
To install the chart with the release name node-red run:
3535

3636
```bash
37-
helm install node-red node-red/node-red --version 0.38.0
37+
helm install node-red node-red/node-red --version 0.39.0
3838
```
3939

4040
After a few seconds, node-red should be running.
@@ -131,14 +131,17 @@ The command removes all the Kubernetes components associated with the chart and
131131
| sidecar.env.password | string | `""` | Password as key value pair |
132132
| sidecar.env.passwordFromExistingSecret | object | `{}` | Password from existing secret |
133133
| sidecar.env.script | string | `"flow_refresh.py"` | Absolute path to shell script to execute after a configmap got reloaded. |
134+
| sidecar.env.skip_init | bool | `false` | Skip the initial request to REQ_URL when using watch mode (v2.1.0+) |
134135
| sidecar.env.sleep_time_sidecar | string | `"5s"` | Set the sleep time for refresh script |
135136
| sidecar.env.username | string | `""` | |
136137
| sidecar.extraEnv | list | `[]` | Extra Environments for the sidecar |
137138
| sidecar.extraNodeModules | list | `[]` | Extra Node-Modules that will be installed from the sidecar script |
138139
| sidecar.image.pullPolicy | string | `"IfNotPresent"` | The image pull policy, default: `IfNotPresent` |
139140
| sidecar.image.registry | string | `"quay.io"` | The image registry to pull the sidecar from |
140141
| sidecar.image.repository | string | `"kiwigrid/k8s-sidecar"` | The image repository to pull from |
141-
| sidecar.image.tag | string | `"1.30.5"` | The image tag to pull, default: `1.28.4` |
142+
| sidecar.image.tag | string | `"2.2.3"` | The image tag to pull, default: `1.28.4` |
143+
| sidecar.livenessProbe | object | `{"httpGet":{"path":"/healthz","port":8080},"initialDelaySeconds":5,"periodSeconds":10}` | Liveness probe for the sidecar (k8s-sidecar v2+ exposes /healthz on port 8080) |
144+
| sidecar.readinessProbe | object | `{"httpGet":{"path":"/healthz","port":8080},"initialDelaySeconds":5,"periodSeconds":10}` | Readiness probe for the sidecar (reports ready after initial sync completes) |
142145
| sidecar.resources | object | `{}` | Resources for the sidecar |
143146
| sidecar.securityContext | object | `{}` | Security context for the sidecar |
144147
| sidecar.volumeMounts | list | `[]` | The extra volume mounts for the sidecar |
@@ -195,6 +198,17 @@ sidecar:
195198
```
196199
To install the node modules successfully, the node red pod needs access to the `npmrc.registry` to download the declaired modules/packages.
197200

201+
### Sidecar v2 Health Checks
202+
203+
Starting with k8s-sidecar v2.x, the sidecar exposes a `/healthz` endpoint on port 8080 for health monitoring. This chart configures liveness and readiness probes by default:
204+
205+
- **Readiness Probe**: Reports ready (HTTP 200) only after the initial synchronization completes
206+
- **Liveness Probe**: Monitors Kubernetes API connectivity and watcher subprocess status
207+
208+
You can customize or disable these probes via `sidecar.livenessProbe` and `sidecar.readinessProbe` values.
209+
210+
The `sidecar.env.skip_init` option (v2.1.0+) allows skipping the initial request to the Node-RED API when using watch mode.
211+
198212
## Contributing 🤝
199213

200214
### Contributing via GitHub

charts/node-red/README.md.gotmpl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,17 @@ sidecar:
113113
```
114114
To install the node modules successfully, the node red pod needs access to the `npmrc.registry` to download the declaired modules/packages.
115115

116+
### Sidecar v2 Health Checks
117+
118+
Starting with k8s-sidecar v2.x, the sidecar exposes a `/healthz` endpoint on port 8080 for health monitoring. This chart configures liveness and readiness probes by default:
119+
120+
- **Readiness Probe**: Reports ready (HTTP 200) only after the initial synchronization completes
121+
- **Liveness Probe**: Monitors Kubernetes API connectivity and watcher subprocess status
122+
123+
You can customize or disable these probes via `sidecar.livenessProbe` and `sidecar.readinessProbe` values.
124+
125+
The `sidecar.env.skip_init` option (v2.1.0+) allows skipping the initial request to the Node-RED API when using watch mode.
126+
116127
## Contributing 🤝
117128

118129
### Contributing via GitHub

charts/node-red/templates/deployment.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,21 @@ spec:
8585
name: {{ .Values.sidecar.env.passwordFromExistingSecret.name }}
8686
{{- end }}
8787
{{- end }}
88+
{{- if .Values.sidecar.env.skip_init }}
89+
- name: SKIP_INIT
90+
value: "true"
91+
{{- end }}
8892
image: "{{ .Values.sidecar.image.registry }}/{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}"
8993
imagePullPolicy: {{ .Values.sidecar.image.pullPolicy }}
9094
name: node-red-sidecar
95+
{{- if .Values.sidecar.livenessProbe }}
96+
livenessProbe:
97+
{{- toYaml .Values.sidecar.livenessProbe | nindent 12 }}
98+
{{- end }}
99+
{{- if .Values.sidecar.readinessProbe }}
100+
readinessProbe:
101+
{{- toYaml .Values.sidecar.readinessProbe | nindent 12 }}
102+
{{- end }}
91103
{{- if .Values.sidecar.resources }}
92104
resources:
93105
{{- toYaml .Values.sidecar.resources | nindent 12 }}

charts/node-red/values.yaml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ metrics:
131131
# prometheus: kube-prometheus
132132

133133
# -- Prometheus ServiceMonitor namespace
134-
namespace: "" # "monitoring"
134+
namespace: "" # "monitoring"
135135
# -- Prometheus ServiceMonitor labels
136136
additionalLabels: {}
137137

@@ -308,6 +308,8 @@ sidecar:
308308
# name: node-red-api-admin-password
309309
# -- Key of the secret that contains the password
310310
# key: password
311+
# -- Skip the initial request to REQ_URL when using watch mode (v2.1.0+)
312+
skip_init: false
311313
# -- Extra Node-Modules that will be installed from the sidecar script
312314
extraNodeModules: []
313315
# -- Extra Environments for the sidecar
@@ -316,14 +318,28 @@ sidecar:
316318
resources: {}
317319
# -- Security context for the sidecar
318320
securityContext: {}
321+
# -- Liveness probe for the sidecar (k8s-sidecar v2+ exposes /healthz on port 8080)
322+
livenessProbe:
323+
httpGet:
324+
path: /healthz
325+
port: 8080
326+
initialDelaySeconds: 5
327+
periodSeconds: 10
328+
# -- Readiness probe for the sidecar (reports ready after initial sync completes)
329+
readinessProbe:
330+
httpGet:
331+
path: /healthz
332+
port: 8080
333+
initialDelaySeconds: 5
334+
periodSeconds: 10
319335
# Image for the sidecar
320336
image:
321337
# -- The image registry to pull the sidecar from
322338
registry: quay.io
323339
# -- The image repository to pull from
324340
repository: kiwigrid/k8s-sidecar
325341
# -- The image tag to pull, default: `1.28.4`
326-
tag: 1.30.5
342+
tag: 2.2.3
327343
# -- The image pull policy, default: `IfNotPresent`
328344
pullPolicy: IfNotPresent
329345
# -- The extra volume mounts for the sidecar

0 commit comments

Comments
 (0)