From 903ae0bd5635661fcabba25217597979e11307fc Mon Sep 17 00:00:00 2001 From: Dan Farrelly Date: Tue, 7 Jul 2026 11:49:44 -0400 Subject: [PATCH] Make probe path configurable; document maildev 3.x opt-in maildev 3.x is a rewrite that removed the /healthz endpoint the liveness/readiness probes use, so a 3.x image would crashloop against the hardcoded path. Expose the probe path as `probePath` (default /healthz, unchanged for 2.x) so users can point it at "/" when running 3.x. Keep the stable 2.2.1 as the chart default (a published chart shouldn't default to a release candidate) and document how to opt into the 3.0.0-rc.1 image in the README and values.yaml. Chart version 0.2.0 -> 0.3.0. Co-Authored-By: Claude Opus 4.8 (1M context) --- charts/maildev/Chart.yaml | 2 +- charts/maildev/README.md | 17 +++++++++++++++++ charts/maildev/templates/deployment.yaml | 4 ++-- charts/maildev/values.yaml | 9 ++++++++- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/charts/maildev/Chart.yaml b/charts/maildev/Chart.yaml index cab8044..6683c74 100644 --- a/charts/maildev/Chart.yaml +++ b/charts/maildev/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: maildev -version: 0.2.0 +version: 0.3.0 appVersion: 2.2.1 type: application description: SMTP Server + Web Interface for viewing and testing emails during development. diff --git a/charts/maildev/README.md b/charts/maildev/README.md index 57e194e..b77130b 100644 --- a/charts/maildev/README.md +++ b/charts/maildev/README.md @@ -23,6 +23,8 @@ Not listing here the more general paramaters such as tolerations, nodeSelectors, | Parameter | Description | Default | |-------------------------------------:|:--------------------------------------------------------------------------------------------------|:--------------------------------------------| +| **image.tag** | maildev image tag; defaults to the chart appVersion. Set to a 3.x tag to opt in (see below). | `""` (appVersion) | +| **probePath** | HTTP path for the liveness/readiness probes. Use `/` for maildev 3.x (which removed `/healthz`). | `/healthz` | | **verbose** | Enable verbose logging, `--verbose`. | `false` | | **extraArgs** | Extra CLI args appended after the chart-generated flags, for options not modelled below. | `[]` | | **extraEnv** | Extra container env vars (list of `name`/`value` or `valueFrom` entries), for options not modelled below. | `[]` | @@ -45,6 +47,21 @@ Not listing here the more general paramaters such as tolerations, nodeSelectors, | **incoming.user** | SMTP user for incoming emails, `MAILDEV_INCOMING_USER`. | | | **incoming.pass** | SMTP password for incoming emails, `MAILDEV_INCOMING_PASS`. | | +## Trying maildev 3.x + +The chart defaults to the latest stable maildev (2.x). maildev 3.x is a +rewrite and currently only ships a release candidate, so it is not the +default. It removed the `/healthz` endpoint the probes use, so opting in +requires pointing the probes at `/`: + +```yaml +image: + tag: "3.0.0-rc.1" +probePath: "/" +``` + +The chart's flags and env vars are otherwise compatible with 3.x. + ## Test it Open a shell into the pod. diff --git a/charts/maildev/templates/deployment.yaml b/charts/maildev/templates/deployment.yaml index 35212de..867f23f 100644 --- a/charts/maildev/templates/deployment.yaml +++ b/charts/maildev/templates/deployment.yaml @@ -109,11 +109,11 @@ spec: {{- end }} livenessProbe: httpGet: - path: /healthz + path: {{ .Values.probePath }} port: {{ .Values.ports.web }} readinessProbe: httpGet: - path: /healthz + path: {{ .Values.probePath }} port: {{ .Values.ports.web }} resources: {{- toYaml .Values.resources | nindent 12 }} diff --git a/charts/maildev/values.yaml b/charts/maildev/values.yaml index 90f115d..e67312f 100644 --- a/charts/maildev/values.yaml +++ b/charts/maildev/values.yaml @@ -3,7 +3,9 @@ replicaCount: 1 image: repository: maildev/maildev pullPolicy: IfNotPresent - # Overrides the image tag whose default is the chart appVersion. + # Overrides the image tag whose default is the chart appVersion (2.2.1). + # To try the 3.x release candidate, set tag: "3.0.0-rc.1" and probePath: "/" + # (3.x is a rewrite that removed the /healthz endpoint). tag: "" # Enable verbose logging (--verbose). @@ -58,6 +60,11 @@ ports: # MAILDEV_WEB_PORT web: 1080 +# HTTP path used by the liveness/readiness probes. maildev 2.x serves +# "/healthz"; the 3.x rewrite removed it, so set this to "/" when running a +# 3.x image (see image.tag). +probePath: /healthz + # MAILDEV_HTTPS https: enabled: false