Skip to content

Commit b0abd71

Browse files
brdelphusclaude
andcommitted
chore: release 0.7.0 — TLS model overhaul and per-Ingress annotations
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0475e0f commit b0abd71

2 files changed

Lines changed: 47 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Changelog
2+
3+
## [0.7.0] - 2026-03-31
4+
5+
### Breaking Changes
6+
7+
- **`caddy.ingress/plain-http` annotation removed** — Ingresses without `spec.tls` are now plain HTTP automatically. No annotation needed; remove it from existing Ingresses.
8+
- **`k8sIngress.enabled` removed** — the chart is the ingress controller; the flag no longer exists. Remove it from your `values.yaml`.
9+
- **Global `:80 → https` redirect removed** from the Caddyfile template — it conflicted with HTTP-only Ingresses. Add an explicit `ssl-redirect` annotation per Ingress if needed.
10+
11+
### TLS Model Overhaul
12+
13+
The TLS model has been completely redesigned around `spec.tls` as the authoritative signal:
14+
15+
- **`spec.tls` is required for HTTPS.** Ingresses without it are served over plain HTTP. There is no automatic TLS.
16+
- New **`caddy.ingress/tls`** annotation declares which handler manages the certificate:
17+
- `certmagic` — CertMagic issues the cert via ACME proactively (within seconds of Ingress creation, no `secretName` needed)
18+
- `cert-manager` — cert-manager creates the Secret in `spec.tls.secretName`; caddy-k8s loads and watches it
19+
- TLS Secrets must exist in the **same namespace as the Ingress**.
20+
21+
### New Features
22+
23+
- **Per-Ingress on-demand TLS** (`caddy.ingress/tls-ondemand: "true"`) — issue the cert on the first TLS connection instead of proactively. Requires `caddy.ingress/tls: certmagic`. Global `ask` URL and rate limits (configured in Helm values) still apply.
24+
- **Per-Ingress custom CA** (`caddy.ingress/tls-ca: "<url>"`) — use a different ACME CA for a specific Ingress (e.g. ZeroSSL, Google Trust Services) while others use the global default.
25+
- **Per-Ingress EAB credentials** (`caddy.ingress/tls-ca-secret: "<name>"`) — reference a K8s Secret (same namespace) containing `key_id` and `mac_key` for CAs that require External Account Binding.
26+
27+
### Improvements
28+
29+
- WAF setup clarified: `plugins.coraza.enabled: true` loads the Coraza module and configures the OWASP ruleset; `k8sIngress.security.waf: true` injects the handler into every Ingress route. Both are required. Per-route override via `caddy.ingress/waf: "off"|"on"|"detection"`.
30+
- New example files: `cert-manager.yaml`, `certmagic.yaml`, `ondemand-tls.yaml`, `zerossl.yaml` — each explains both global and per-Ingress usage.
31+
- All app examples (`nextcloud`, `mailu`, `gitea`, `grafana`, `jellyfin`, `vaultwarden`, `authelia`, `azuracast`) updated with `cert-manager.io/cluster-issuer` annotation and `spec.tls.secretName`.
32+
33+
---
34+
35+
## [0.6.0] - 2026-02-xx
36+
37+
### New Features
38+
39+
- Built-in config reloader (`k8s_config_reloader`) — watches the Caddyfile ConfigMap and calls `POST /load` on change; no pod restart needed.
40+
- Optional Redis store for persistent Ingress → route ID tracking across Caddy restarts.
41+
- `spec.tls` support — caddy-k8s loads `kubernetes.io/tls` Secrets and watches them for renewals.
42+
- `caddy.ingress/plain-http` annotation for HTTP-only Ingresses (superseded in 0.7.0).
43+
- CertMagic ACME with on-demand TLS, EAB, and DNS-01 challenge support added to Helm values.
44+
- `caddy-security` plugin for authentication and SSO.
45+
- `caddyfile.extraGlobalOptions` escape hatch for custom global Caddyfile directives.
46+
- `caddy-kubernetes-storage` and `caddy-storage-redis` for CertMagic cert persistence.

helm/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ 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.6.0
5+
version: 0.7.0
66
appVersion: "2.11.2"
77
icon: https://caddyserver.com/resources/images/caddy-circle-lock.svg
88

0 commit comments

Comments
 (0)