Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update xDS docs to clarify ordering #206

Merged
merged 44 commits into from
Oct 26, 2017
Merged

Conversation

rshriram
Copy link
Member

No description provided.

Shriram Rajagopalan added 30 commits October 13, 2017 16:14
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
nit
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
nit
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
fix
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
fix
Signed-off-by: Shriram Rajagopalan <[email protected]>
fix
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
fix
Signed-off-by: Shriram Rajagopalan <[email protected]>
Shriram Rajagopalan added 6 commits October 24, 2017 18:28
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
* CDS updates (if any) must always be pushed first.
* EDS updates (if any) must arrive after CDS updates for the respective clusters.
* LDS updates must arrive after corresponding CDS/EDS updates.
* RDS updates related to the newly added listeners must arrive in the end.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should explain the "break" bit afterwards, where you clean up the old clusters (for example).

XDS_PROTOCOL.md Outdated
* RDS updates related to the newly added listeners must arrive in the end.

xDS updates can be pushed independently if no new clusters/routes/listeners
are added.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or if it's acceptable to temporarily drop traffic during updates (this is after all the whole point of the eventual consistency model, some folks don't mind dropping traffic or inconsistent routing across nodes if it makes management simpler).

XDS_PROTOCOL.md Outdated
* LDS updates must arrive after corresponding CDS/EDS updates.
* RDS updates related to the newly added listeners must arrive in the end.

xDS updates can be pushed independently if no new clusters/routes/listeners
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too strong and not accurate I think. You can add a route that refers to existing clusters, for example, with a completely independent RDS update. Also, if you modify a cluster, it will need to go out and fetch its corresponding EDS update, see https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/envoy-users/jn3VJJBGoPo/Z_EpNSk2BgAJ. We probably need CDS/EDS warming to be implemented to make updates safe from dropping traffic (otherwise, you probably need to do a full RDS/CDS/EDS update sequence with new cluster name to avoid drops).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should i remove it altogether?

Shriram Rajagopalan added 2 commits October 25, 2017 13:14
Signed-off-by: Shriram Rajagopalan <[email protected]>
@rshriram rshriram closed this Oct 25, 2017
@rshriram rshriram reopened this Oct 25, 2017
Shriram Rajagopalan added 3 commits October 25, 2017 13:30
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
Signed-off-by: Shriram Rajagopalan <[email protected]>
exit 1
fi
mkdir -p ${BUILD_DIR}
# if [[ ! -d "${BUILD_DIR}" ]]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please just delete this vs. comment.

XDS_PROTOCOL.md Outdated
* EDS updates (if any) must arrive after CDS updates for the respective clusters.
* LDS updates must arrive after corresponding CDS/EDS updates.
* RDS updates related to the newly added listeners must arrive in the end.
* Stale CDS clusters (ones no longer being referenced) can then be removed.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.. and also related EDS.

Signed-off-by: Shriram Rajagopalan <[email protected]>
XDS_PROTOCOL.md Outdated
referenced) can then be removed.

xDS updates can be pushed independently if no new clusters/routes/listeners
are added or or if it's acceptable to temporarily drop traffic during updates.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo "or or"

Signed-off-by: Shriram Rajagopalan <[email protected]>
* CDS/EDS resources corresponding to routes in LDS/RDS should be available at
update.
In general, to avoid traffic drop, sequencing of updates should follow a
`make before break` model, wherein
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't use verbatim quotes here, but instead MD emphasis. Not worth changing unless you need another revision though.

* Stale CDS clusters and related EDS endpoints (ones no longer being
referenced) can then be removed.

xDS updates can be pushed independently if no new clusters/routes/listeners
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My previous comment on this wasn't reflected in the text here; there are some nuances that should be communicated that were there, in particular around the lack of CDS/EDS warming and the safety of independent updates for new clusters/routes that have no relationship with existing ones.

@rshriram
Copy link
Member Author

Is there a rough text that I can use as base?

@mattklein123
Copy link
Member

@rshriram I think @htuch is looking for a short description around the fact that a) we do warm listeners (https://www.envoyproxy.io/envoy/configuration/listeners/lds), but we don't currently warm clusters (envoyproxy/envoy#1930). You should be able to craft a short statement from both of those and/or link. It's unclear to me how high priority warming CDS actually is. I think it's actually pretty uncommon use case that people update clusters. Add/remove is much more common.

Signed-off-by: Shriram Rajagopalan <[email protected]>
@rshriram
Copy link
Member Author

I added some text. PTAL.

Copy link
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks.

@htuch htuch merged commit b085af2 into envoyproxy:master Oct 26, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants