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

ecds: add dynamic config provider usage in downstream network filters #28477

Merged
merged 20 commits into from
Jul 30, 2023

Conversation

ohadvano
Copy link
Contributor

@ohadvano ohadvano commented Jul 19, 2023

Additional Description: Follow up to #28407, this PR adds dynamic config provider usage in downstream network filters, with relevant integration tests. A follow up PR will add support for upstream network filters. Link: #14696.
Risk Level: low (guarded by config)
Testing: Integration tests
Docs Changes: ECDS API doc, network filter, ECDS config doc
Release Notes: None
Platform Specific Features: None

@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 @lizan
CC @envoyproxy/api-watchers: FYI only for changes made to (api/envoy/|docs/root/api-docs/).

🐱

Caused by: #28477 was opened by ohadvano.

see: more, trace.

ohadvano added 2 commits July 19, 2023 11:32
Signed-off-by: ohadvano <[email protected]>
Signed-off-by: ohadvano <[email protected]>
@ohadvano
Copy link
Contributor Author

ohadvano commented Jul 19, 2023

/assign @kyessenov
I'll appreciate your review on this as a follow-up. The actual source change is very small, this is mostly integration tests.

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

/unassign @kyessenov
Seems like Kuat is out for vacation.
/assign @htuch
Could you please review this as a follow up to the previous PR?
Thanks

@repokitteh-read-only repokitteh-read-only bot assigned htuch and unassigned kyessenov Jul 20, 2023
@htuch
Copy link
Member

htuch commented Jul 21, 2023

I'm also out for the next 1.5 weeks. @adisuissa @mattklein123 do you think you folks could take this one? Thanks.

@ohadvano
Copy link
Contributor Author

ohadvano commented Jul 21, 2023

/unassign @lizan
/unassign @htuch
/assign @adisuissa
/assign @mattklein123
Assigning to you if you could hopefully review this. Thanks

@repokitteh-read-only repokitteh-read-only bot assigned adisuissa and mattklein123 and unassigned lizan and htuch Jul 21, 2023
@mattklein123
Copy link
Member

Sorry I don't have time to review this in detail so will wait for @adisuissa to do a first pass, thanks.

Copy link
Contributor

@adisuissa adisuissa left a comment

Choose a reason for hiding this comment

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

Thanks for working on this! Looks very good!
Mostly nits and some high-level comment about further testing.

cc @yanjunxiang-google as a person who worked on this before.

EXPECT_EQ(4, network_filter_config.bytes_to_drain());
}

} // namespace
Copy link
Contributor

Choose a reason for hiding this comment

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

2 high-level questions:

  1. Are there planned integration tests that test the interaction between listener updates (LDS) and network-filter updates (ECDS)?
  2. Can the HCM be updated? If so I think more tests are needed in that space because of the lifetime of some objects.
  3. Please add tests that have ongoing connections during an ECDS update and show that the "old" config is still used for these filters.

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 added LDS integration and a test that verifies that old config is used for connections that were established before ECDS update. Due to (3), I believe the behavior here would be the same, connections will get the HCM config that is updated at the time of connection establishment. Did you have another behavior in mind which I missed?

@ohadvano ohadvano requested a review from adisuissa July 28, 2023 12:19
@ohadvano
Copy link
Contributor Author

@adisuissa thanks for the thorough review, I addressed your comment and will appreciate another pass

adisuissa
adisuissa previously approved these changes Jul 28, 2023
Copy link
Contributor

@adisuissa adisuissa left a comment

Choose a reason for hiding this comment

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

Thanks, LGTM.
/assign-from @envoyproxy/senior-maintainers

@repokitteh-read-only
Copy link

@envoyproxy/senior-maintainers assignee is @mattklein123

🐱

Caused by: a #28477 (review) was submitted by @adisuissa.

see: more, trace.

// The two filters drain 4 + 5 bytes.
sendDataVerifyResults(9);
}

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it is valuable to add integration test cases for pure static filters as this:

TEST_P(ListenerExtensionDiscoveryIntegrationTest, TwoStaticFilters) {

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@yanjunxiang-google can you please elaborate on the value that you see? Is it not just like not using ECDS at all (which I believe is covered in regular network filter tests)?

@ohadvano
Copy link
Contributor Author

@mattklein123 seems lke Adi approved, could you please take a look?

@ohadvano
Copy link
Contributor Author

@mattklein123 can you merge the PR please?

@mattklein123 mattklein123 merged commit 1b01f90 into envoyproxy:main Jul 30, 2023
@ohadvano ohadvano deleted the ecds_downstream_network branch July 31, 2023 05:08
htuch pushed a commit that referenced this pull request Aug 4, 2023
…ig missing (#28742)

Follow up to #28477, increasing a metric in cases where a downstream connection is missing a network filter configuration.

Risk Level: low
Testing: Unit test
Docs Changes: Changelog, ECDS docs, listener docs

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

7 participants