Skip to content

Redirect rule is not being created on aws load balancer by the controller #4251

Open
@paulob122

Description

@paulob122

Bug Description

Previously for several environments we had already set up redirect rules, using custom actions annotation, for some ingresses. The following configuration is an example:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/backend-protocol: HTTPS
    alb.ingress.kubernetes.io/healthcheck-path: /
    alb.ingress.kubernetes.io/listen-ports: '[{ "HTTPS": 443 }]'
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/actions.redirect-to-sso: > 
      {"type":"redirect","redirectConfig":{"host":"app.domain","port":"443","protocol":"HTTPS","statusCode":"HTTP_302"}}
  name: app-ingress
  namespace: harbor
spec:
  ingressClassName: alb-external
  rules:
  - host: app.domain
    http:
      paths:
      - backend:
          service:
            name: redirect-to-sso
            port:
              name: use-annotation
        path: /account/sign-in
        pathType: Prefix
  tls:
  - hosts:
    - app.domain

With the above configuration, you would expect the aws-load-balancer controller to create the redirect rule in the specified load balancer (as before).

After creating the ingress described above, you can see that it has been successfully reconciled via the controller, however the following output appears:

/account/sign-in   redirect-to-sso:use-annotation (<error: services "redirect-to-sso" not found>)

Controller logs/error messages while reproducing the issue: In the controller logs, with the debug flag enabled, we can only see successful status code 200 requests during the reconciliation phase. Nothing else indicates another source of errors or misbehaviour.

Expected Behavior

Controller create redirect rule on load balancer aws resource.

Actual Behavior

Controller does not create redirect rule on load balancer aws resource.

Regression
Was the functionality working correctly in a previous version ? [Yes / No]
If yes, specify the last version where it worked as expected
Yes. In the aws-load-balancer-controller version 2.11.0 for the kubernetes version 1.32.x

Current Workarounds

Environment

  • AWS Load Balancer controller version: 2.13.3
  • Kubernetes version: 1.33.0
  • Using EKS (yes/no), if so version?: yes, eks.6
  • Using Service or Ingress: Ingress

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions