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

clarify resource warming docs in xds protocol #22377

Merged
merged 10 commits into from
Aug 10, 2022

Conversation

ramaraochavali
Copy link
Contributor

Clusters expect EDS response even if they do not change so EDS response is mandatory to finish warming. But listener use route configuration that Envoy is aware of and response is only needed for new routes. This PR clarifies that part in resource warming docs.

Commit Message:clarify resource warming docs in xds protocol
Additional Description:clarify resource warming docs in xds protocol
Risk Level:N/A
Testing:N/A
Docs Changes:N/A
Release Notes:N/A
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

@repokitteh-read-only
Copy link

CC @envoyproxy/api-shepherds: Your approval is needed for changes made to (api/envoy/|docs/root/api-docs/).
envoyproxy/api-shepherds assignee is @markdroth
CC @envoyproxy/api-watchers: FYI only for changes made to (api/envoy/|docs/root/api-docs/).

🐱

Caused by: #22377 was opened by ramaraochavali.

see: more, trace.

Signed-off-by: Rama Chavali <[email protected]>
@markdroth
Copy link
Contributor

I'm not sure how much of the current EDS/RDS warming behavior we really want to document, given that we have agreed in #13009 that the current behavior needs to change.

@ramaraochavali
Copy link
Contributor Author

ramaraochavali commented Jul 25, 2022

I'm not sure how much of the current EDS/RDS warming behavior we really want to document, given that we have agreed in #13009 that the current behavior needs to change.

I agree that is is going to change - but having the current state updated is important IMO. We can add a disclaimer that it is going to change.

@alyssawilk
Copy link
Contributor

@envoyproxy/api-shepherds looks like this needs a tie-breaker. @adisuissa as the other reviewer do you have thoughts?

@htuch
Copy link
Member

htuch commented Aug 5, 2022

My $0.02 is that this is implementation specific, not generic xDS protocol documentation. There should be a place for it and we can accept it now and update later. It might be fine to just put it in a Sphinx RST informational box as an implementation consideration. I agree with @markdroth not to conflate the Envoy specifics with desired protocol behavior.

@ramaraochavali
Copy link
Contributor Author

I agree with @markdroth not to conflate the Envoy specifics with desired protocol behaviour

I am not suggesting to conflate the Envoy specifics with the desired protocol behaviour. However I think it is important to document what Envoy does as it caused confusion in Istio on multiple occasions . I thought of this place because we documented resource warming here. But happy to move it over to another place if that helps

@mattklein123
Copy link
Member

I like the idea of just doing some type of "client specific note" box for now. We can move this kind of thing out later, and it will be more obvious that it isn't part of the main spec. So for example somewhere near this do something like:

.. note::

  Envoy specific implementation note: ...

I think that should be OK for now?

Signed-off-by: Rama Chavali <[email protected]>
Signed-off-by: Rama Chavali <[email protected]>
Signed-off-by: Rama Chavali <[email protected]>
@ramaraochavali
Copy link
Contributor Author

@mattklein123 changed as your suggestion. 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.

Thanks a few comments.

/wait


Envoy specific implementation note: Warming of ``Cluster`` is completed only
when a new ``ClusterLoadAssignment`` response is supplied by management server
even though there is no change in endpoints. However, If Envoy is already aware of
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
even though there is no change in endpoints. However, If Envoy is already aware of
even if there is no change in endpoints. However, If Envoy is already aware of

?

Comment on lines 686 to 687
``RouteConfiguration`` referenced by ``Listener``, it will use it otherwise Envoy will
initiate a new RDS request with the new route name referenced by ``Listener``.
Copy link
Member

Choose a reason for hiding this comment

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

I can't parse this. Is this related to Cluster or unrelated and a different note about warming? Can you clarify and if it's different move it to a separate note?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It is about listener warming with route. It is under same resource warming category.

Copy link
Member

Choose a reason for hiding this comment

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

OK then I don't understand this and how it relates to the cluster part. Can you clarify? Thanks.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It is not related to cluster warming. It is related to resource warming only but talks about how listeners are warmed.

Copy link
Member

Choose a reason for hiding this comment

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

Then please split it out into a separate note and/or make it a clearly separate statement. I'm having a hard time parsing what this means. Thank you!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I clarified it. PTAL

@mattklein123 mattklein123 self-assigned this Aug 9, 2022
Signed-off-by: Rama Chavali <[email protected]>
Signed-off-by: Rama Chavali <[email protected]>
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 with small nit. Also please check format, thanks.

/wait

Comment on lines 683 to 690
Envoy specific implementation note: Warming of ``Cluster`` is completed only
when a new ``ClusterLoadAssignment`` response is supplied by management server
even if there is no change in endpoints.
Warming of ``Listener`` is completed even if management server does not send a
response for ``RouteConfiguration`` referenced by ``Listener``. Envoy will use the
previously sent ``RouteConfiguration`` to finish ``Listener`` warming. Management Server
has to send the ``RouteConfiguration`` response only if it has changed or it was never
sent in the past.
Copy link
Member

Choose a reason for hiding this comment

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

nit: split this into 2 notes, or a bulleted list of 2 notes. It's not super clear which parts are related.

Signed-off-by: Rama Chavali <[email protected]>
Signed-off-by: Rama Chavali <[email protected]>
Signed-off-by: Rama Chavali <[email protected]>
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.

Thanks!

@mattklein123 mattklein123 merged commit 691cdf2 into envoyproxy:main Aug 10, 2022
@ramaraochavali ramaraochavali deleted the fix/warming_docs branch August 10, 2022 15:04
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.

6 participants