diff --git a/charts/ingress-nginx/templates/TargetGroupBinding.yaml b/charts/ingress-nginx/templates/TargetGroupBinding.yaml new file mode 100644 index 000000000..ad02d3d5a --- /dev/null +++ b/charts/ingress-nginx/templates/TargetGroupBinding.yaml @@ -0,0 +1,16 @@ +{{- if and (eq .Values.controller.service.type "NodePort") (.Values.controller.service.awsTargetGroupBinding.enabled) }} +{{- range $key, $value := .Values.controller.service.awsTargetGroupBinding.arnMapping }} +--- +apiVersion: elbv2.k8s.aws/v1beta1 +kind: TargetGroupBinding +metadata: + name: {{ include "ingress-nginx.controller.fullname" $ }}-{{ $key }} + namespace: {{ include "ingress-nginx.namespace" $ }} +spec: + serviceRef: + name: {{ include "ingress-nginx.controller.fullname" $ }} + port: {{ index $.Values.controller.service.targetPorts $key }} + targetType: instance + targetGroupARN: {{ $value }} +{{- end }} +{{- end }} diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 3741323c4..9fe751402 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -545,6 +545,12 @@ controller: # udp: # 53: 30053 udp: {} + # -- If want to use an existing AWS LoadBalancer, write the arn of the Target Group. + awsTargetGroupBinding: + enabled: false + arnMapping: + http: "" + https: "" internal: # -- Enable the internal controller service or not. Remember to configure `controller.service.internal.annotations` when enabling this. enabled: false