Once my requirement was to redirect traffic coming to coffee.abc.com
from coffee.xyz.com
So for this, I used alb redirect annotation for it.
alb.ingress.kubernetes.io/actions.coffee-redirection: '{"Type":"redirect","RedirectConfig":{"Host":"coffee.xyz.com","Port":"443","Protocol":"HTTPS","Query":"#{query}","StatusCode":"HTTP_301"}}'
Below is complete code block for the same issue.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig":{ "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:**********************************************
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80},{"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/subnets: subnet-*******, subnet-********, subnet-**********,subnet-********
service.beta.kubernetes.io/aws-load-balancer-name: coffee-alb-staging
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/ssl-redirect: '443'
alb.ingress.kubernetes.io/group.name: coffee-staging
alb.ingress.kubernetes.io/actions.coffee-redirection: '{"Type":"redirect","RedirectConfig":{"Host":"coffee.xyz.com","Port":"443","Protocol":"HTTPS","Query":"#{query}","StatusCode":"HTTP_301"}}'
name: coffee-alb-staging
namespace: NameSpace
spec:
rules:
- host: coffee.abc.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: coffee-fe
port:
number: 80
- path: /
pathType: Exact
backend:
service:
name: coffee-redirection
port:
name: use-annotation