Use /healthz HTTP probes and graceful termination settings - #28
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
S3Proxy has served an unauthenticated
GET /healthzsince 3.2.0, within this chart's appVersion (3.3.0), so the probes can do better than a TCP accept check:tcpSockettohttpGet /healthz, which distinguishes a serving proxy from one that merely holds a listen socket open (a wedged JVM passes a tcpSocket probe indefinitely). Whenconfig.tls.enabled, the probes usescheme: HTTPS; the kubelet does not verify certificates for HTTPS probes, so self-signed keystores keep working — addressing the concern in the originaltcpSocketcomment.preStopsleep 5: endpoint removal propagates asynchronously on pod deletion; serving briefly after the deletion mark keeps late-routed connections from landing on a pod that has already begun shutting down.terminationGracePeriodSeconds: 40(new documented value): covers the preStop sleep plus the up-to-30-second in-flight request drain that S3Proxy performs on SIGTERM starting with releases after 3.3.0 (gaul/s3proxy@d637104f). On those releases a terminating pod also fails readiness while draining, which thehttpGetreadiness probe surfaces — pods leave Service endpoints while transfers finish instead of dropping them.Housekeeping per CONTRIBUTING: chart
versionbumped to 0.4.0, the new value carries a helm-docs# --comment, andREADME.mdis left untouched for the release automation.Validated locally:
helm lintclean;helm templateacross thetest-values/scenarios (including both TLS scenarios, which are the only renders emittingscheme: HTTPS); kubeconform-strictpasses on the rendered default and TLS manifests (12/12 resources).Context: s3proxy recently gained container-focused behavior this chart can lean on — the shutdown drain above and reference manifests at examples/kubernetes, which link this chart as the Helm option. The new
*_FILEcredential variables were considered and are deliberately not used here: the merge-configs initContainer already keeps credentials in mounted files rather than env vars or argv.🤖 Generated with Claude Code