apache / apache/apisix-helm-chart

[apisix] Standalone API driven mode tries to connect to etcd

Open Beginner friendly
#974 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.