question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Feature Request] Add ALB controller

See original GitHub issue

Hi! 👋 GCP has an add-on to enable their load balancer ingress controller directly from the API and console. It allows us to create an ingress using multiple paths and hosts, enable health checking, etc.

By default, the Kubernetes LoadBalancer service in EKS creates a classic load balancer, which lacks a lot of great features, like WebSockets and path mapping. It’s also possible to enable the Network Load Balacing using a service annotation, but not the application load balancer.

AWS also has it’s own ingress controller, which cannot be enabled in cluster creation, it requires some additional steps to be installed. A tutorial can be found here.

Since this package is all about simplifying the experience of using EKS and creating a load balancer is potentially a very common task, i believe this functionality could be added here, maybe behind a flag like enableAlbController, since it adds new resources to the cluster. 😅

Implementation Details

To enable the ALB ingress controller, it’s necessary to:

  1. Add a lot of IAM permissions to the node workers IAM role.
  2. Add some RBAC roles and it’s service account.
  3. Add the ingress controller.
  4. Create an ingress setting the annotation kubernetes.io/ingress.class to alb. More annotations can be found here.

Most of these steps can be done directly to the cluster through this Helm Chart or by adding it to the cluster using @pulumi/kubernetes, but i’ve struggled to implement the iam roles. @pulumi/eks already creates it’s own instance role, so i’m not sure how i can implement a custom instance role without replacing the one created by the package or forking the package.

Alternatives

An alternative is to add a new option that allows the instance role to be customized, something like instanceRole to replace the default instance role created by the package or something like additionalInstanceRolePolicies to add more policies to the default instance role.

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:3
  • Comments:8 (5 by maintainers)

github_iconTop GitHub Comments

6reactions
lukehobancommented, Dec 19, 2018

I just hit the need for this myself this morning, and it does seem like out of the box support for this would be really nice. I can imagine offering this as either a flag ok EKS cluster or as a separate resource that can be created separately if desired.

3reactions
seivancommented, Dec 19, 2019

Any updates on this? Is there a way to upload a controller and define an ingress using eks or do we need to supply the ALB controller yaml manifest files?

Read more comments on GitHub >

github_iconTop Results From Across the Web

[Feature Request ] Features for AWS ALB / NLB #1571 - GitHub
Track features that need support from AWS ALB / NLB service before we can support them in this controller ALB Manipulate HTTP Request...
Read more >
Installing the AWS Load Balancer Controller add-on
Learn how to install the AWS Load Balancer Controller add-on to your cluster.
Read more >
Ingress annotations - AWS Load Balancer Controller
IngressGroup feature enables you to group multiple Ingress resources together. The controller will automatically merge Ingress rules for all Ingresses within ...
Read more >
AWS Load Balancer Controller on EKS Cluster
The alb-ingress-controller creates the AWS Application Load Balancer based on the annotations added in the ingress resource.
Read more >
aws-load-balancer-controller 1.4.6 · helm/aws - Artifact Hub
The new controller is backwards compatible with the existing ingress objects. However, it will not coexist with the older aws-alb-ingress-controller. The old ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found