Send EDS response in ADS mode when Envoy reconnect and asks with Empty version #127
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.
We found that Envoy has a cluster in warming state after reconnect to new control-plane.
So let's assume Envoy is connected to
Control-plane1
.Control-plane1
receive information about the new cluster[Cluster1]
and send CDS response to Envoy using ADS.Control-plane1
die and at the same time cluster[Cluster1]
has been removed. Envoy connects to Control-plane2 and send[EDS,LDS,RDS] requests. Because Envoy didn't received response EDS fromControl-plane1
this cluster is in warming state. EDS request from Envoy toControl-plane2
contains resource name of removed cluster[Cluster1]
andControl-plane2
doesn't know about the cluster which was sent byControl-plane1
to Envoy. Because ADS implementation requires to send only response when all requested resources in snapshotControl-plane2
won’t respond. In this situation Envoy stay in warming phase for ever.