apache / apache/apisix-helm-chart
[apisix] Standalone API driven mode tries to connect to etcd
- Dominant language
- Go Template
- Stars
- 289
- Forks
- 282
- Avg merge
- 15h 55m
- Merged PRs (30d)
- 3
Description
I have the following config:
```
apisix:
# standalone api driven mode: enable etcd free configuration via ingress-controller
# taken from https://apisix.apache.org/docs/apisix/deployment-modes/#api-driven
deployment:
# mode: standalone this runs `ln -s /apisix-config/apisix.yaml /usr/local/apisix/conf/apisix.yaml`
role: traditional # deploy dataplane and control plane in the same pod
role_traditional:
config_provider: yaml
etcd:
enabled: false
...
```
Everything is working fine. However, apisix logs are full of this error:
```
2026/06/08 13:38:39 [warn] 52#52: *433281 [lua] health_check.lua:114: report_failure(): update endpoint: http://etcd.host:2379 to unhealthy, client: , server: , request: "PUT /apisix/admin/configs HTTP/1.1", host: ":9180", request_id: "a1549ed0d3602e27359a72b189752699"´
2026/06/08 13:38:39 [warn] 52#52: *433281 [lua] v3.lua:247: _request_uri(): http://etcd.host:2379: failed to parse domain: failed to query the DNS server: dns server error: 3 name error. Retrying, client: , server: , request: "PUT /apisix/admin/configs HTTP/1.1", host: ":9180", request_id: "a1549ed0d3602e27359a72b189752699"
```
Why is apisix trying to connect to etcd in standalone mode?
After having a look at the deployment.yml of the chart I noticed that the `etcd` config is only omitted from the config map when `mode: standalone`:
https://github.com/apache/apisix-helm-chart/blob/46c3862bd8cbc8b254024c8354b559a01406dab0/charts/apisix/templates/configmap.yaml#L377-L407
However in api driven standalone mode, we have `mode: traditional` (as documented [here](https://apisix.apache.org/docs/apisix/deployment-modes/#configuration)).
Contributor guide
No contributing guide indexed for this repository
Research direction
Inspect charts/apisix/templates/configmap.yaml around lines 377-407 and compare its etcd condition with the documented API-driven deployment modes. Render the chart with traditional mode, YAML config_provider, and etcd disabled; done means the generated configuration no longer causes standalone API-driven mode to attempt an etcd connection.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100