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

Replace GRPC server with envoy's go-control-plane #2134

Open
jpeach opened this issue Jan 22, 2020 · 16 comments
Open

Replace GRPC server with envoy's go-control-plane #2134

jpeach opened this issue Jan 22, 2020 · 16 comments
Assignees
Labels
kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Milestone

Comments

@jpeach
Copy link
Contributor

jpeach commented Jan 22, 2020

I looked ad go-control-plane a bit and we ought to be able to use it to replace our custom xDS code. The interfaces are a bit different, but we should be able to bind the DAG in without a lot of trouble. This likely gives us ADS support for free.

Related #1286

@jpeach
Copy link
Contributor Author

jpeach commented Jan 22, 2020

Note that this doesn't solve configuration snapshot consistency issues (see various issues in the go-control-plane repo).

@stevesloka stevesloka self-assigned this Jun 18, 2020
stevesloka added a commit to stevesloka/contour that referenced this issue Jun 22, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 11, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 16, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 17, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 17, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 22, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 22, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 22, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 27, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 27, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 28, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 28, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 28, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 28, 2020
Fixes projectcontour#2134 by replacing the current XDS server implementation with the envoyproxy/go-control-plane impl.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 28, 2020
Fixes projectcontour#2134 by implementing the Envoy go-control-plane to replace Contour's current custom xDS gRPC server.

The change utilizes snapshots as a way to represent a versioned point in time representation of the xDS
resources (RDS, CDS, EDS, LDS, SDS). When the dag is rebuilt or an endpoint changes, a new snapshot is
created with the updated caches for each xDS resource type.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Jul 29, 2020
Fixes projectcontour#2134 by implementing the Envoy go-control-plane to replace Contour's current custom xDS gRPC server.

The change utilizes snapshots as a way to represent a versioned point in time representation of the xDS
resources (RDS, CDS, EDS, LDS, SDS). When the dag is rebuilt or an endpoint changes, a new snapshot is
created with the updated caches for each xDS resource type.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Aug 3, 2020
Fixes projectcontour#2134 by implementing the Envoy go-control-plane to replace Contour's current custom xDS gRPC server.

The change utilizes snapshots as a way to represent a versioned point in time representation of the xDS
resources (RDS, CDS, EDS, LDS, SDS). When the dag is rebuilt or an endpoint changes, a new snapshot is
created with the updated caches for each xDS resource type.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Aug 3, 2020
Fixes projectcontour#2134 by implementing the Envoy go-control-plane to replace Contour's current custom xDS gRPC server.

The change utilizes snapshots as a way to represent a versioned point in time representation of the xDS
resources (RDS, CDS, EDS, LDS, SDS). When the dag is rebuilt or an endpoint changes, a new snapshot is
created with the updated caches for each xDS resource type.

Signed-off-by: Steve Sloka <slokas@vmware.com>
stevesloka added a commit to stevesloka/contour that referenced this issue Aug 4, 2020
Fixes projectcontour#2134 by implementing the Envoy go-control-plane to replace Contour's current custom xDS gRPC server.

The change utilizes snapshots as a way to represent a versioned point in time representation of the xDS
resources (RDS, CDS, EDS, LDS, SDS). When the dag is rebuilt or an endpoint changes, a new snapshot is
created with the updated caches for each xDS resource type.

Signed-off-by: Steve Sloka <slokas@vmware.com>
@skriss skriss modified the milestones: 1.28.0, 1.29.0 Jan 29, 2024
@skriss
Copy link
Member

skriss commented Jan 30, 2024

@davinci26 @clayton-gonsalves @izturn do any of you have non-production environments where you could try switching to using the go-control-plane xDS server instead of the legacy Contour impl and see if you encounter any problems? We've been running E2E's daily with it enabled with success but some more real-world testing (ideally looking at performance/scale in addition to correctness) would be great too before we consider flipping the default in Contour.

Specifically, this involves setting the following in the Contour config file:

server:
  xds-server-type: envoy

For reference here is a PR that changes the default to be envoy: #6146

@skriss
Copy link
Member

skriss commented Feb 13, 2024

@davinci26 @clayton-gonsalves @izturn (or anyone else) just a gentle nudge here, is this change something you could test in a non-prod environment?

@davinci26
Copy link
Contributor

@skriss sorry had this message on draft.

We are working on a bunch of items to improve the operational stability of Contour so we are not taking many upstream changes but I think we should be able to take it and test it out in a couple of weeks from now.

Does this work?

@skriss
Copy link
Member

skriss commented Feb 13, 2024

@skriss sorry had this message on draft.

We are working on a bunch of items to improve the operational stability of Contour so we are not taking many upstream changes but I think we should be able to take it and test it out in a couple of weeks from now.

Does this work?

That'd be great, thanks! We may make the change upstream soon-ish anyway to let CI start running regularly on it. It has already been running in our nightly tests and seems pretty stable.

@skriss
Copy link
Member

skriss commented Feb 13, 2024

selfnote: consider effects of Endpoint updates

@izturn
Copy link
Member

izturn commented Feb 22, 2024

@skriss, we have some non-prod environments, but we don't put a lot of payloads on them, we will try it later

@izturn
Copy link
Member

izturn commented Mar 1, 2024

@skriss Based on our limited testing, everything is fine

skriss added a commit to skriss/contour that referenced this issue Mar 7, 2024
The default xDS server implementation is
now `envoy`, i.e. the go-control-plane
implementation.

Updates projectcontour#2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
skriss added a commit that referenced this issue Mar 7, 2024
- Triggers only EDS updates when endpoints change
- Does not trigger EDS updates when only non-endpoints change

Updates #2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
skriss added a commit to skriss/contour that referenced this issue Mar 7, 2024
The default xDS server implementation is
now `envoy`, i.e. the go-control-plane
implementation.

Updates projectcontour#2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
@sunjayBhatia sunjayBhatia assigned skriss and unassigned sunjayBhatia Mar 7, 2024
skriss added a commit that referenced this issue Mar 12, 2024
Updates #2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
skriss added a commit that referenced this issue Mar 12, 2024
The default xDS server implementation is
now `envoy`, i.e. the go-control-plane
implementation.

Updates #2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
lubronzhan pushed a commit to lubronzhan/contour that referenced this issue Mar 13, 2024
- Triggers only EDS updates when endpoints change
- Does not trigger EDS updates when only non-endpoints change

Updates projectcontour#2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
lubronzhan pushed a commit to lubronzhan/contour that referenced this issue Mar 13, 2024
Updates projectcontour#2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
lubronzhan pushed a commit to lubronzhan/contour that referenced this issue Mar 13, 2024
The default xDS server implementation is
now `envoy`, i.e. the go-control-plane
implementation.

Updates projectcontour#2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
@skriss skriss modified the milestones: 1.29.0, 1.30.0 May 2, 2024
@skriss
Copy link
Member

skriss commented May 6, 2024

Remaining work here is to fully remove the Contour xDS server option and implementation, can plan to do this for the 1.31 release assuming no major issues post-1.29. release.

@skriss skriss modified the milestones: 1.30.0, 1.31.0 May 6, 2024
skriss added a commit to skriss/contour that referenced this issue Jul 17, 2024
Fields are planned to be removed in the 1.31 release.

Updates projectcontour#2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
skriss added a commit that referenced this issue Jul 17, 2024
Fields are planned to be removed in the 1.31 release.

Updates #2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
geomacy pushed a commit to chaosbox/contour that referenced this issue Aug 22, 2024
Fields are planned to be removed in the 1.31 release.

Updates projectcontour#2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
Signed-off-by: Geoff Macartney <geoff.macartney@sky.uk>
SamMHD pushed a commit to SamMHD/contour that referenced this issue Sep 8, 2024
Fields are planned to be removed in the 1.31 release.

Updates projectcontour#2134.

Signed-off-by: Steve Kriss <stephen.kriss@gmail.com>
Signed-off-by: Saman Mahdanian <saman@mahdanian.xyz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

6 participants