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]

Reply via email to