I have an EKS cluster created with terraform-aws-modules/eks/aws and then I used helm to install the latest aws-load-balancer-controller:
✗ helm ls -n default
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
ingress default 1 2023-05-22 12:18:13.099657 -0600 MDT deployed aws-load-balancer-controller-1.4.8 v2.4.7
From there, I am using the helm create xx
command to create a helm chart for a node.js application.
When I specify the load balancer class as alb
it is creating a Classic load balancer in AWS (with warnings to migrate).
service:
type: LoadBalancer
port: 3000
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS-1-2-2017-01
alb.ingress.kubernetes.io/actions.ssl-redirect: |
{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}
Does the load balancer controller not support creating Application load balancers instead of Classic load balancers? I believe I could accomplish all of the same in building the load balancer with Terraform but that doesn't feel like the right way to do things.