4refael opened a new pull request, #1007: URL: https://github.com/apache/apisix-helm-chart/pull/1007
### Problem During a rolling update in etcd mode, new pods receive traffic before they are ready. For a short time they answer 404. The cause: the readiness probe is only a TCP check on the proxy port. The pod becomes Ready when nginx starts to listen. At that moment, the workers have not loaded the routes from etcd yet. APISIX already has a correct readiness endpoint: `/status/ready`. It returns 200 only after every worker has loaded the configuration. It works in etcd mode too, since APISIX 3.13.0 (apache/apisix#12200). But the chart enables this endpoint only for `role_traditional` + `config_provider: yaml`. There is a second problem, at shutdown. The chart lets you configure a graceful drain (`apisix.nginx.workerShutdownTimeout`), but it does not let you configure `terminationGracePeriodSeconds`. So Kubernetes always kills a stopping pod after 30 seconds, even when the drain timeout is longer. ### Changes - New value `apisix.status.enabled`: enables the status endpoint in every deployment mode. When it is on, the default readiness probe uses `httpGet /status/ready` instead of the TCP check. - New values: `terminationGracePeriodSeconds`, `minReadySeconds`, `progressDeadlineSeconds`, and `livenessProbe` / `readinessProbe` overrides. - Chart version 2.17.0 → 2.18.0. README regenerated with helm-docs. ### Related work Closes #951. Issue #951 and PR #952 ask for a configurable `livenessProbe`. This PR includes one, as a full-map override value instead of a fixed-fields toggle, so users control every probe field. The new values live at the top level of values.yaml, next to the existing `updateStrategy`. ### No change for existing users All defaults keep the current behavior. A render with default values is identical to master, except that `progressDeadlineSeconds: 600` and `terminationGracePeriodSeconds: 30` are now written explicitly — both are the Kubernetes defaults. Note: `terminationGracePeriodSeconds` is part of the pod template, so the first upgrade to this chart version restarts the APISIX pods one time. I verified the renders for the etcd, traditional yaml, DaemonSet, and control_plane modes. `ct lint` passes. -- 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]
