kubernetes-sigs / aws-load-balancer-controller

A Kubernetes controller for Elastic Load Balancers
https://kubernetes-sigs.github.io/aws-load-balancer-controller/
Apache License 2.0
3.93k stars 1.46k forks source link

The ssl-redirect doesn't add a target group redirect. Instead, it copies rules to both 80 and 443 ports #3254

Closed nitrocode closed 1 year ago

nitrocode commented 1 year ago

Describe the bug The ssl-redirect doesn't add a target group redirect. Instead, it copies rules to both 80 and 443 ports

Steps to reproduce

✗ k get ingress <redacted> -o yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/actions.ssl-redirect: "443"
    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:<redacted>:certificate/<redacted>
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS": 443},{"HTTP": 80}]'
    alb.ingress.kubernetes.io/scheme: internet-facing
    external-dns.alpha.kubernetes.io/hostname: <redacted>
    kubernetes.io/ingress.class: alb
  creationTimestamp: "2023-06-22T14:51:27Z"
  finalizers:
  - ingress.k8s.aws/resources
  generation: 4
  name: <redacted>
  namespace: default
  resourceVersion: "<redacted>"
  uid: <redacted>
spec:
  rules:
  - http:
      paths:
      - backend:
          service:
            name: <redacted>
            port:
              number: 4141
        path: /*
        pathType: ImplementationSpecific
status:
  loadBalancer:
    ingress:
    - hostname: <redacted>

image

image

Expected outcome An ssl redirect from port 80 to 443 should be shown as a default and only rule.

image

All the rules should be in the 443 listener.

Environment

Additional Context:

nitrocode commented 1 year ago

Looks like I had an incorrect annotation

-    alb.ingress.kubernetes.io/actions.ssl-redirect: "443"
+    alb.ingress.kubernetes.io/ssl-redirect: '443'