Skip to content

feat(apisix): expose more config options and document all values - #989

Merged
nic-6443 merged 4 commits into
apache:masterfrom
nic-6443:feat/expose-more-config
Jul 6, 2026
Merged

feat(apisix): expose more config options and document all values#989
nic-6443 merged 4 commits into
apache:masterfrom
nic-6443:feat/expose-more-config

Conversation

@nic-6443

@nic-6443 nic-6443 commented Jul 6, 2026

Copy link
Copy Markdown
Member

While comparing the chart against APISIX 3.17.0's built-in defaults (apisix/cli/config.lua), I found a bunch of config options that users can't set through values.yaml — some are hardcoded in the configmap template, some are not rendered at all. This PR exposes them, keeping every default identical to APISIX's own defaults so a render with default values produces the same effective config as before.

Newly configurable: apisix.showUpstreamStatusInResponseHeader, apisix.proxyProtocol.* (the commented-out block is now a real conditional block, including listen_http_port/listen_https_port), apisix.proxyCache (was hardcoded; the default zones now also include the memory_cache zone from APISIX defaults, which the hardcoded block dropped — that silently broke the proxy-cache plugin's memory strategy), apisix.deleteURITailSlash, apisix.normalizeURILikeServlet, apisix.lru.secret.*, apisix.tracing, apisix.dns.enableResolvSearchOpt, apisix.ssl.sslSessionTickets, apisix.nginx.workerShutdownTimeout / maxPendingTimers / maxRunningTimers, stream access log settings (apisix.nginx.logs.stream.*), a new apisix.nginx.http.* block (client timeouts, client_max_body_size, real_ip_* including the previously missing real_ip_recursive, proxy_ssl_server_name, upstream keepalive settings, charset, variables_hash_max_size), apisix.graphql.maxSize, and etcd.watchTimeout / etcd.startupRetry.

One behavior fix worth calling out: apisix.dns.resolvers was rendered as a comment in the configmap, so setting it never had any effect. It now renders dns_resolver when non-empty, and the default changed from a hardcoded public-DNS list to [] (read /etc/resolv.conf), which matches the actual behavior today and is what you want in Kubernetes anyway.

Also added helm-docs descriptions to every value that was missing one (~60 of them rendered with an empty description column), so the generated README now documents all parameters, and fixed a couple of misplaced comments (hostNetwork, extraVolumeMounts).

Verified by rendering the chart with default values and with the new options set, and running apisix init config validation against the apache/apisix:3.17.0-ubuntu image — all pass. Chart version bumped to 2.16.0.

Expose config options that were previously hardcoded or not configurable
through the chart (proxy_protocol, proxy_cache zones, dns_resolver,
ssl_session_tickets, real_ip_recursive, upstream keepalive, nginx timers,
worker_shutdown_timeout, client_max_body_size, graphql.max_size,
etcd watch_timeout/startup_retry, etc.), defaults unchanged from APISIX
3.17.0 defaults, and add helm-docs descriptions to every value so the
generated README documents all parameters.
Copilot AI review requested due to automatic review settings July 6, 2026 08:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the APISIX Helm chart to expose additional APISIX/NGINX/etcd configuration knobs through values.yaml (and render them into the generated config.yaml ConfigMap), while also filling in previously-missing helm-docs descriptions so the generated README documents all chart values. It also bumps the chart version to reflect these template/value changes.

Changes:

  • Expose additional APISIX configuration via values.yaml (e.g., upstream status header behavior, PROXY protocol, proxy-cache zones/TTL, DNS resolver behavior, SSL session tickets, nginx timer limits + new nginx.http.* block, GraphQL max size, etcd watch/startup retry settings).
  • Render the newly exposed values into charts/apisix/templates/configmap.yaml so settings take effect at runtime (not just documented).
  • Regenerate/expand charts/apisix/README.md value descriptions and bump chart version to 2.16.0.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
charts/apisix/values.yaml Adds new configurable values and improves/extends inline documentation for helm-docs.
charts/apisix/templates/configmap.yaml Renders the newly configurable options into APISIX config.yaml output.
charts/apisix/README.md Updates generated values table to include missing descriptions/new parameters.
charts/apisix/Chart.yaml Bumps chart version to 2.16.0.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread charts/apisix/values.yaml
Comment thread charts/apisix/values.yaml
Comment thread charts/apisix/templates/configmap.yaml Outdated
nic-6443 added 2 commits July 6, 2026 16:22
- don't render HPA when useDaemonSet is true (it targets a Deployment)
- expose PROXY protocol listen ports on the gateway Service when set
- fix grammar in show_upstream_status_in_response_header comment
@nic-6443
nic-6443 merged commit 873c9db into apache:master Jul 6, 2026
2 checks passed
@nic-6443
nic-6443 deleted the feat/expose-more-config branch July 6, 2026 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants