Endpoints like /services/haproxy/configuration/frontends/{parent_name}/binds return cached information that's obtained at initialization and never updated (unless disable_inotify is set to false). This means the information could be out-of-date unless Data Plane API is reloaded every time HAproxy configuration file is changed.
Is it possible to add a parameter to enforce re-reading the file when making calls to the affected endpoints?
Worth noticing that /services/haproxy/configuration/raw endpoint is not affected as it always reads the latest on-disk version of the configuration file when handling it.
This can be easily tested by:
0- disable_inotify must be set to true.
1- Perform a GET /services/haproxy/configuration/frontends/{parent_name}/binds. Store the result.
2- Perform a GET /services/haproxy/configuration/raw. Store the result.
3- Manually modify (add/remove) binds in the haproxy.cfg file for {parent_name} frontend.
4- Repeat step (1) and (2). Notice how the result for (1) was the same as before (not reflecting the latest change). (2) do actually show the most recent configuration.
Endpoints like
/services/haproxy/configuration/frontends/{parent_name}/bindsreturn cached information that's obtained at initialization and never updated (unlessdisable_inotifyis set tofalse). This means the information could be out-of-date unless Data Plane API is reloaded every time HAproxy configuration file is changed.Is it possible to add a parameter to enforce re-reading the file when making calls to the affected endpoints?
Worth noticing that
/services/haproxy/configuration/rawendpoint is not affected as it always reads the latest on-disk version of the configuration file when handling it.This can be easily tested by:
0-
disable_inotifymust be set totrue.1- Perform a GET
/services/haproxy/configuration/frontends/{parent_name}/binds. Store the result.2- Perform a GET
/services/haproxy/configuration/raw. Store the result.3- Manually modify (add/remove) binds in the
haproxy.cfgfile for{parent_name}frontend.4- Repeat step (1) and (2). Notice how the result for (1) was the same as before (not reflecting the latest change). (2) do actually show the most recent configuration.