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

Add Gateway API TLS Support #3404

Closed
2 of 3 tasks
danehans opened this issue Feb 24, 2021 · 13 comments
Closed
2 of 3 tasks

Add Gateway API TLS Support #3404

danehans opened this issue Feb 24, 2021 · 13 comments
Labels
area/gateway-api Issues or PRs related to the Gateway (Gateway API working group) API. kind/feature Categorizes issue or PR as related to a new feature.
Milestone

Comments

@danehans
Copy link
Contributor

danehans commented Feb 24, 2021

Please describe the problem you have
Add support for TLSRoute and HTTPRoute configured with TLS. Note: the contour controller may need to read the TLS config, i.e certs, from the gateway TLS config (projectcontour/contour-operator#214).

@danehans danehans added kind/feature Categorizes issue or PR as related to a new feature. lifecycle/needs-triage Indicates that an issue needs to be triaged by a project contributor. labels Feb 24, 2021
@danehans danehans added this to the 1.14.0 milestone Feb 24, 2021
@youngnick youngnick added the area/gateway-api Issues or PRs related to the Gateway (Gateway API working group) API. label Feb 24, 2021
@eloycoto
Copy link

eloycoto commented Mar 2, 2021

Hi,

I checked the current gateway-api implementation, and I think design to be changed to implement this feature, no?

By default, the TLS listener certificate is part of the Gateway object that it's implemented on the Operator. Contour only implements HTTPRoute object, and it translates that to an Envoy Dynamic route, using the internal VirtualHost struct.

Example code:

routes := p.routes(pathPrefixes, services)
for _, vhost := range hosts {
vhost := p.dag.EnsureVirtualHost(vhost)
for _, route := range routes {
vhost.addRoute(route)
}

Also, If I want to implement ext-authz draft, I need to implement the TLS on the Listener, but I think that it's not possible to implement it using only HTTPRoute, that it's translated to VirtualHost, and maybe it should be translated to SecureVirtualHost.

Is there any document/draft about how these things will be implemented? Do you need any help? I would like to build a POC regarding ext-authz, but I need the TLS termination first.

Regards

@stevesloka
Copy link
Member

Hey @eloycoto, you are correct, we haven't implemented that bit yet. If you'd like to contribute that work it would be great, or I think that's probably a logical next step that I was going to take on.

@eloycoto
Copy link

eloycoto commented Mar 2, 2021

Hi,

It's quite a big change, and it might change how the project is structured, so I would like to know what it's your implementation idea, and I can start working on some pieces.

Regards

@stevesloka
Copy link
Member

I poked around a bit and this is what I think will work: main...stevesloka:httpsRoute

This needs all the tests, etc, but a quick dry run its works on my machine.

@stevesloka
Copy link
Member

Is this enough to get started @eloycoto? Or do you want me to finish up? Just let me know. =)

@eloycoto
Copy link

eloycoto commented Mar 2, 2021

I'll have a look and I'll come back to you

@sunjayBhatia sunjayBhatia changed the title Add TLS Support Add Gateway API TLS Support Mar 3, 2021
@sunjayBhatia sunjayBhatia modified the milestones: 1.14.0, 1.15.0 Mar 30, 2021
@sunjayBhatia
Copy link
Member

Moving this to 1.15.0 as we're working out some interactions between the Contour controller and operator still

@sunjayBhatia
Copy link
Member

Seems like TLSRoute will not make it in before 1.15, can we move this to 1.16?

@youngnick youngnick modified the milestones: 1.15.0, 1.16.0 Apr 28, 2021
@youngnick
Copy link
Member

Some TLSRoute support is in (see #3440), but it's not finished yet, moving this to 1.17.

@youngnick youngnick modified the milestones: 1.16.0, 1.17.0 May 25, 2021
@youngnick
Copy link
Member

Bumping this to 1.18.

@youngnick youngnick modified the milestones: 1.17.0, 1.18.0 Jul 1, 2021
@youngnick youngnick modified the milestones: 1.18.0, 1.19.0 Jul 20, 2021
@youngnick youngnick removed the lifecycle/needs-triage Indicates that an issue needs to be triaged by a project contributor. label Jul 20, 2021
@skriss
Copy link
Member

skriss commented Aug 16, 2021

#3440 is just about done, just waiting to merge some additional unit test cases, so I've marked TLSRoute support as done on the task list.

@youngnick
Copy link
Member

As of v1alpha2, TLS on HTTPRoute will be removed, so we probably shouldn't bother implementing for v1alpha1. We can probably call this mostly done.

@skriss
Copy link
Member

skriss commented Aug 17, 2021

As of v1alpha2, TLS on HTTPRoute will be removed, so we probably shouldn't bother implementing for v1alpha1. We can probably call this mostly done.

Sounds good, I'll close this out and we can open new issues as needed if we find any gaps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/gateway-api Issues or PRs related to the Gateway (Gateway API working group) API. kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

6 participants