From be2027fbb3cfba5b3732d455e1d5c7c7aab3f3f5 Mon Sep 17 00:00:00 2001 From: louisgls <11679637+louisgls@users.noreply.github.com> Date: Wed, 21 Oct 2026 18:01:46 +0200 Subject: [PATCH 1/2] fix(chart): readiness probe timeout 1s -> 3s MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /readyz pings the upstream with ListBuckets under a 2s budget (readinessProbeTimeout), but the chart left the probe at the Kubernetes default timeoutSeconds: 1. Any upstream call between 1s and 2s was cut by the kubelet and logged as "Readiness probe failed ... context canceled". Seen on kube02 on both 1.9.1 and 1.9.2 pods, several pods failing in the same second (upstream latency, not the proxy). Single failures stayed under failureThreshold, so no traffic was lost — only noise. Co-Authored-By: Claude Opus 5.5 (1M context) --- README.md | 2 +- charts/s3proxy/values.yaml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d370645..18c1d05 100644 --- a/README.md +++ b/README.md @@ -280,7 +280,7 @@ Top-level value keys: | `service.type` / `service.port` | `ClusterIP` / `4433` | Standard k8s Service. | | `ingress.enabled` | `false` | Optional Ingress. | | `resources` | `cpu: 250m/500m`, `mem: 128Mi/256Mi` | k8s requests/limits. | -| `livenessProbe` / `readinessProbe` | `/healthz` / `/readyz` on `4433` (HTTPS) | Standard probes. | +| `livenessProbe` / `readinessProbe` | `/healthz` / `/readyz` on `4433` (HTTPS); readiness `timeoutSeconds: 3` | Standard probes. `/readyz` checks the upstream (ListBuckets, 2s budget), so keep its timeout above 2s. | | `autoscaling` | disabled | HPA on CPU/memory. | | `serviceMonitor` | disabled | Prometheus Operator scrape config. | | `prometheusRule` | disabled | Alert bundle. | diff --git a/charts/s3proxy/values.yaml b/charts/s3proxy/values.yaml index df55c2b..622fcf7 100644 --- a/charts/s3proxy/values.yaml +++ b/charts/s3proxy/values.yaml @@ -128,6 +128,10 @@ readinessProbe: path: /readyz # Readiness endpoint port: 4433 scheme: HTTPS + # /readyz issues a ListBuckets against the upstream and waits up to 2s for + # it. Keep the probe timeout above that, or a slow upstream call is cut by + # the kubelet at the 1s default and logged as a failed probe. + timeoutSeconds: 3 autoscaling: enabled: false From 8aab8c3acaa8adc031ac7ce364bd5359386ffcaf Mon Sep 17 00:00:00 2001 From: louisgls <11679637+louisgls@users.noreply.github.com> Date: Wed, 21 Oct 2026 18:01:46 +0200 Subject: [PATCH 2/2] chore(release): v1.9.3 + chart 1.10.3 Re-cut of 1.9.2 so the Release workflow publishes its signed binaries: the v1.9.2 run stopped on the stale golangci-lint pin in release.yml (fixed in this branch). Application code is unchanged from 1.9.2. Chart 1.10.3 follows appVersion to 1.9.3 and carries the readiness probe timeout fix. Co-Authored-By: Claude Opus 5.5 (1M context) --- CHANGELOG.md | 14 ++++++++++++++ charts/s3proxy/Chart.yaml | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0af0ef1..03ce0ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,20 @@ Two version streams move independently: ## [Unreleased] +## [1.9.3] — 2026-10-21 + +Re-cut of 1.9.2 so its signed binaries get published: the release pipeline +stopped on a tooling version check before building them. The application is +unchanged from 1.9.2. Chart `1.10.3` accompanies this release. + +### Chart + +- **`chart/1.10.3`** — `appVersion` follows the app to `1.9.3`. The readiness + probe now waits up to 3s (was the 1s Kubernetes default). `/readyz` checks + the upstream S3 with a 2s budget, so a slightly slow upstream used to show + up as sporadic `Readiness probe failed` events even though the proxy was + fine. + ## [1.9.2] — 2026-10-21 Security maintenance. No functional change over 1.9.1 — same behaviour, patched diff --git a/charts/s3proxy/Chart.yaml b/charts/s3proxy/Chart.yaml index 644654e..bf13825 100644 --- a/charts/s3proxy/Chart.yaml +++ b/charts/s3proxy/Chart.yaml @@ -18,5 +18,5 @@ maintainers: annotations: org.opencontainers.image.source: "https://github.com/intrinsec/s3proxy/" type: application -version: 1.10.2 -appVersion: "1.9.2" +version: 1.10.3 +appVersion: "1.9.3"