Skip to content

perf: APISIX ingress controller pushes config every minute, even if nothing has changed #2692

@ronnybremer

Description

@ronnybremer

Issue Faced

Every minute the APISIX ingress controller logs:

2026-01-05T11:26:32.842Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.842Z INFO controllers.Gateway controller/gateway_controller.go:149 gateway has been accepted {"gateway": "apisix"}
2026-01-05T11:26:32.842Z INFO controllers.Gateway controller/utils.go:1007 found GatewayProxy for Gateway {"namespace": "apisix-ingress", "name": "apisix"}
2026-01-05T11:26:32.843Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.844Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.844Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.845Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.846Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.846Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.847Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.847Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}
2026-01-05T11:26:32.848Z INFO provider.client client/client.go:177 syncing all resources
2026-01-05T11:26:32.848Z INFO status.updater status/updater.go:143 received a status update {"namespace": "apisix-ingress", "name": "apisix", "kind": "Gateway"}

plus additional lines for each deployed HTTPRoute object. Those objects haven't changed, nor did the status or modified values show any new values.

The controller then pushes the config to all APISIX instances, which only show applied, as nothing has changed. This leads to unnecessary pushes of a new config and communication between the instances and the controller.

Logs

APISIX instances every minute:

10.244.4.40 - - [05/Jan/2026:11:26:31 +0000] 10.244.4.27:9180 "PUT /apisix/admin/configs HTTP/1.1" 202 5 0.001 "-" "axios/1.13.2" - - - "http://10.244.4.27:9180"

Steps to Reproduce

  1. deploy the helm chart with APISIX controller version 2.0.0
  2. deploy a single HTTPRoute to a service
  3. observe the logs on the controller showing received a status update every minute
  4. observe the logs of the APISIX instances showing a config push every minute

Environment

  • APISIX Ingress controller version: 2.0.0
  • Kubernetes cluster version:
    Client Version: v1.35.0
    Kustomize Version: v5.7.1
    Server Version: v1.35.0
  • OS version if running APISIX Ingress controller in a bare-metal environment Rocky Linux 9, 6.18.2-2.el9.elrepo.x86_64

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions