router
router copied to clipboard
Coprocessor health check as part of overall router health
Is your feature request related to a problem? Please describe.
The router currently fails closed if the coprocessor is unavailable/erroring/etc, which leads to situations where a router may be marked as healthy by it's own health check, but not by clients.
Describe the solution you'd like
Ideally coprocessors, when enabled, are used when calculating the overall health of the router. As an example shape of a possible config:
coprocessor:
url: http://localhost:3000/
healthcheck:
enabled: true
endpoint: "/health"
Which would use a user-defined health endpoint for the coprocessor.
Describe alternatives you've considered
Moving all health checks into the coprocessor instead, when running in a sidecar model (i.e. router and coprocessor exist in the same Kubernetes pod).
Indeed is running into issues with deployment/startup due to Router's lack of consideration of coprocessor health before indicating ready for traffic {health_check.path}?ready
Specifically NOT for kubernetes ingress traffic, but to prevent mesh traffic from being routed to a router whose coprocessor has not yet completed starting up.