fix(healthchecks) ensure health posted via cluster_events can be read #3464
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The problem was that when an upstream health update in propagated via cluster events, only the upstream name (and not the id) was being forwarded. This resulted in
post_health
having the correct behavior in the Kong node where the/healthy
or/unhealthy
endpoint was used, but the information wasn't propagated to the cluster as advertised.(The problem doesn't happen at worker level because the healthchecker objects coordinate among themselves.)
This PR changes the
balancer:post_health
cluster events message to include upstream id data.This PR includes a regression test. Also, replaced hardcoded port numbers with variables in the multi-node tests.