Skip to content

Commit b19634e

Browse files
brdelphusclaude
andcommitted
release: v1.0.3 / helm 0.9.5 — fix startup and liveness probes
- admin binds 0.0.0.0 (was localhost) so kubelet probes reach it when using hostPorts (non-hostNetwork); pods were dying at ~70s - remove host: localhost from readiness/liveness httpGet probes - bump VERSION → 1.0.3, Chart.yaml → 0.9.5, image.tag → 1.0.3 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 29fb1b1 commit b19634e

5 files changed

Lines changed: 19 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Changelog
22

3+
## [1.0.3] - 2026-04-16
4+
5+
### Bug Fixes
6+
7+
- **Caddy container no longer exits immediately on startup** — Dockerfile was missing `CMD`; the binary printed help text and exited. Added `CMD ["run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]` to the Dockerfile and matching `args` to the DaemonSet template so both the image default and the chart are self-consistent.
8+
- **Liveness/readiness probes now reach the admin API**`admin` was bound to `localhost` and probes used `host: localhost`, which the kubelet resolves to the *node's* loopback rather than the pod's. Changed `admin.host` default to `""` (binds `0.0.0.0`) and removed the `host:` override from both probes. Affected all deployments using `hostPorts` (non-`hostNetwork`); pods were killed after ~70 s by the failing liveness probe.
9+
10+
### Helm chart: 0.9.5
11+
12+
---
13+
314
## [1.0.2] - 2026-04-02
415

516
### New Features

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.0.2
1+
1.0.3

helm/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: v2
22
name: caddy
33
description: Caddy ingress with WAF, TCP/UDP, CertMagic ACME (HTTP/TLS-ALPN/DNS/On-Demand), cert-manager CSI, CrowdSec, GeoIP, authentication/SSO, rate limiting and caching
44
type: application
5-
version: 0.9.4
6-
appVersion: "1.0.2"
5+
version: 0.9.5
6+
appVersion: "1.0.3"
77
icon: https://caddyserver.com/resources/images/caddy-circle-lock.svg
88

99
keywords:

helm/templates/daemonset.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,15 +153,13 @@ spec:
153153
httpGet:
154154
path: /
155155
port: admin
156-
host: localhost
157156
initialDelaySeconds: 5
158157
periodSeconds: 10
159158

160159
livenessProbe:
161160
httpGet:
162161
path: /
163162
port: admin
164-
host: localhost
165163
initialDelaySeconds: 15
166164
periodSeconds: 20
167165

helm/values.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ fullnameOverride: ""
66

77
image:
88
repository: ghcr.io/brdelphus/ingress-caddy
9-
tag: "1.0.2"
9+
tag: "1.0.3"
1010
pullPolicy: IfNotPresent
1111

1212
# Image pull secrets for private registries.
@@ -416,8 +416,10 @@ caddyfile:
416416
# ── Admin API ──────────────────────────────────────────────────────────────────
417417

418418
admin:
419-
# Bind to localhost only — the metrics service exposes it via ClusterIP
420-
host: localhost
419+
# Bind to all interfaces so kubelet liveness/readiness probes can reach the
420+
# admin API when using hostPorts (not hostNetwork). The metrics ClusterIP
421+
# service gates external access; pod network is already cluster-internal.
422+
host: ""
421423
port: 2019
422424

423425
# ── LoadBalancer service ───────────────────────────────────────────────────────

0 commit comments

Comments
 (0)