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

[Feature Request] Add Support for k8s gateway APIs (formerly Service APIs) #1338

Open
danehans opened this issue Aug 3, 2020 · 41 comments
Open
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@danehans
Copy link

danehans commented Aug 3, 2020

SIG-NETWORK created the Service APIs project to evolve service-related APIs for Kubernetes. This issue is a request for aws-alb-ingress-controller to add support for Service APIs.

@M00nF1sh
Copy link
Collaborator

M00nF1sh commented Aug 7, 2020

/kind feature-request
Thanks for creating this issue. It's already planned :D.
We are going to release a new version and rename this controller to aws-load-balancer-controller.
The new version will contain the functionalities in a single controller.

  • ALB Ingress Controller(v2)
  • NLB Service with direct pod targeting support(IP mode)
    After the initial release(Q3), we'll add support for service-API into it as well.

@k8s-ci-robot
Copy link
Contributor

@M00nF1sh: The label(s) kind/feature-request cannot be applied, because the repository doesn't have them

In response to this:

/kind feature-request
Thanks for creating this issue. It's already planned :D.
We are going to release a new version and rename this controller to aws-load-balancer-controller.
The new version will contain the functionalities in a single controller.

  • ALB Ingress Controller(v2)
  • NLB Service with direct pod targeting support(IP mode)
    After the initial release(Q3), we'll add support for service-API into it as well.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@M00nF1sh M00nF1sh changed the title Add Support for Service APIs [Feature Request] Add Support for Service APIs Oct 27, 2020
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 25, 2021
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Feb 24, 2021
@fejta-bot
Copy link

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-contributor-experience at kubernetes/community.
/close

@k8s-ci-robot
Copy link
Contributor

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-contributor-experience at kubernetes/community.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@kishorj kishorj removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Mar 29, 2021
@kishorj
Copy link
Collaborator

kishorj commented Mar 29, 2021

/reopen

@k8s-ci-robot
Copy link
Contributor

@kishorj: Reopened this issue.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot reopened this Mar 29, 2021
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 27, 2021
@kishorj kishorj removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 28, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 26, 2021
@kishorj kishorj removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 27, 2021
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 26, 2021
@kishorj kishorj removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 21, 2022
@bryantbiggs
Copy link
Member

this is available here https://github.com/aws/aws-application-networking-k8s

@kahirokunn
Copy link
Member

@bryantbiggs
vpc lattice is a great service.
But, WAF is not available on vpc lattice, and if you want to use WAF, you need to set ALB as a listener for vpc lattice, which is not available on aws-application-networking-k8s.
Even if it becomes possible to specify an ALB as a backend for vpc lattice, it will probably not be supported in the future, although it may be possible if you let aws-application-networking-k8s do the ALB configuration.
Also, vpc lattice is still only available in Oregon.

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 20, 2023
@kahirokunn
Copy link
Member

Keep

@aaroniscode
Copy link

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 20, 2023
@johngmyers
Copy link
Contributor

Some comments on requirements, from looking over #3146:

The Gateway code shouldn't support annotations for things that can be expressed in GatewayClassParams or within the various *Route specs. Don't reimplement legacy ways of doing things.

We will probably need to implement two GatewayController values, one supporting TCPRoute, TLSRoute, and UDPRoute backed by NLB and another supporting HTTPRoute and GRPCRoute backed by ALB.

@jdoylei
Copy link

jdoylei commented Dec 6, 2023

Is PR #3146 still being actively developed? Any updates are appreciated!

Support for controlling ALBs via Gateway API and HTTPRoute, rather than just via Ingress, would be really beneficial to our apps. In our Kubernetes clusters on other providers, we are adopting Gateway API for specifying ingress into the cluster, based on its improved persona-based model and its promotion by the Kubernetes community as a successor to Ingress resources. It would be good to have a uniform approach where apps can rely on Gateway API in both EKS and other K8s providers, rather than asking developers to use Gateway in one place and Ingress in another.

@shraddhabang shraddhabang added the kind/feature Categorizes issue or PR as related to a new feature. label Feb 12, 2024
@seifrajhi
Copy link
Member

+1

As per kubernetes documentation, Ingress is frozen and new features are being added to the Gateway API.
So it would be very beneficial to add Gateway API support in ALBC, and It would make it easier to switch our deployments to Gateway API and simplify development especially for our developers.
Any updates on when this might be added?

@Str33tWalk3r
Copy link

+1

I'm excited about the potential of Kubernetes Gateway API, it's such a powerful tool for managing ingress traffic. ALB is a widely used AWS service, and without support for this, many users might hesitate to adopt Gateway API, which would be a shame considering its potential. Adding support for ALB would greatly enhance the usability and adoption of Gateway API, opening it up to a broader audience of Kubernetes users who rely on AWS infrastructure.

@geowalrus4gh
Copy link

geowalrus4gh commented May 6, 2024

If AWS's advice is to use Gateway Controller (https://www.gateway-api-controller.eks.aws.dev/) could you please share with us some best practices or guidelines on how to migrate to that with the least disruption and requirements like Load balancing, security, SSL ?

@jdoylei
Copy link

jdoylei commented May 6, 2024

@geowalrus4gh - I'm not sure I understand it right, and it would be great to get feedback from someone affiliated with AWS, but I think that "AWS Gateway API Controller" serves a different purpose. I don't think it manages AWS Load Balancers for you, because its docs only reference creating AWS VPC Lattice objects. I guess your application could create different Gateway objects and have them observed by different controllers - the "AWS Load Balancer Controller" would create/update a Load Balancer for your K8s Gateway while the "AWS Gateway API Controller" would create/update VPC Lattice for your K8s Gateway. I'm not very familiar with VPC Lattice, but I think Load Balancer is more for external users accessing your service while VPC Lattice is more for service-to-service traffic.

@geowalrus4gh
Copy link

geowalrus4gh commented May 6, 2024

@jdoylei Your points are valid. "AWS Gateway API Controller" creates and manages only AWS VPC services. "AWS Load Balancer Controller" would only create/update a Load Balancer.

I was referring to the comment from @bryantbiggs. Missed out on to comment as a reply.

this is available here https://github.com/aws/aws-application-networking-k8s

I also agree with your comment

Support for controlling ALBs via Gateway API and HTTPRoute, rather than just via Ingress, would be really beneficial to our apps. In our Kubernetes clusters on other providers, we are adopting Gateway API for specifying ingress into the cluster, based on its improved persona-based model and its promotion by the Kubernetes community as a successor to Ingress resources. It would be good to have a uniform approach where apps can rely on Gateway API in both EKS and other K8s providers, rather than asking developers to use Gateway in one place and Ingress in another.

K8s Gateway API is designed to support both North-South and East-West Traffic. So naturally, we would expect that one single controller supports both.

Now I can see the same question is asked in the other gateway controller github.
aws/aws-application-networking-k8s#535

@Brightside56
Copy link

I would like to Gateway API implementation on my choice to support AWS ALB, for example Cilium Gateway API, and AWS Load Balancer controller only can help with this

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 15, 2024
@aaroniscode
Copy link

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 15, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 14, 2024
@kahirokunn
Copy link
Member

Keep

@jcogilvie
Copy link

jcogilvie commented Dec 14, 2024 via email

@aaroniscode
Copy link

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 15, 2024
@zac-nixon zac-nixon self-assigned this Jan 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests