terraform-kubernetes-nginx-ingress-controller

This fork improve https://github.com/sanarena/terraform-kubernetes-nginx-ingress-controller by adding greater control to nginx ingress controller, enabling allowing extra TCP and UDP services to be added to Load balancer port.

In AWS, this will trigger kubernetes ingress to create target groups required to not only provide ingress for port 80 and 443, also allow additional ports.

Sample usage

module nginx-ingress-controller {
  source  = "github.com/danhab99/terraform-kubernetes-nginx-ingress-controller"
  # however recommended way is to add this repository as a submodule

  namespace = ""

  # optional
  nginx_ingress_controller_version = "0.33.0"
  name = "ingress-nginx"
  nginx_config {
    "ssl-protocols"     = "TLSv1.2" # Only Support TLSv1.2
	"proxy-buffer-size" = "16k"
  }
  load_balancer_source_ranges = ["1.2.3.4/32"]
  tcp_services = {
    "panel" = {
      namespace="default"
      service_name="controlpanel"
      container_port="80"
      ingress_port="8081"
    },
    "mysql" = {
      namespace="default"
      service_name="mysql"
      container_port="3306"
      ingress_port="3306"
    }
  }
  udp_services = {
    "openvpn" = {
      namespace="default"
      service_name="openvpn"
      container_port="1194"
      ingress_port="1194"
    }
  }
  lb_annotations = {
    "service.beta.kubernetes.io/aws-load-balancer-type" = "nlb"
    "service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout": 360
    "service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags": "environment=test,name=kubernetes-ingress"
  }
}