martin-mat opened a new pull request, #1016: URL: https://github.com/apache/apisix-helm-chart/pull/1016
Fixes #1014. In standalone mode the Deployment starts the container with `sh -c 'ln -s ... && /docker-entrypoint.sh docker-start'`. The shell stays PID 1 and runs the entrypoint, and so openresty, as its child. A shell as PID 1 does not forward SIGTERM, so when Kubernetes stops the pod APISIX never learns it should shut down, keeps accepting requests, and is killed at the end of the grace period. **Change** - One word in `charts/apisix/templates/deployment.yaml`: `exec /docker-entrypoint.sh docker-start`. The shell still creates the symlink, then replaces itself with the entrypoint, which in turn `exec`s openresty, as the image intends. Traditional and decoupled modes don't use this command and are unaffected. - Chart version 2.17.0 → 2.17.1, so the fix ships. **Verification** Image `apache/apisix:3.18.0-ubuntu` with the chart's rendered `config.yaml` and `apisix.yaml` mounted as in the chart, stopped with a 30-second grace period: | Start command | PID 1 | Time to stop | Exit code | |---|---|---|---| | before | `sh` | 30.4 s, then SIGKILL | 137 | | after | openresty | 1.0 s | 0 | `helm lint charts/apisix` passes. The standalone render (`mode: standalone`, `role: data_plane`, `etcd.enabled: false`) carries the new command. Related: #1011 and PR #1012 (the `preStop: sleep 30` that uses up the grace period), which together with this decide whether standalone APISIX drains on shutdown. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
