Skip to content

Nginx

This add-on installs Nginx Ingress Controller on Amazon EKS. The Nginx ingress controller uses Nginx as a reverse proxy and load balancer.

Other than handling Kubernetes ingress objects, this ingress controller can facilitate multi-tenancy and segregation of workload ingresses based on host name (host-based routing) and/or URL Path (path based routing).

Usage

Nginx Ingress Controller can be deployed by enabling the add-on via the following. Check out the full example to deploy the EKS Cluster with Nginx Ingress Controller.

enable_ingress_nginx = true

To validate that installation is successful run the following command:

$ kubectl get po -n kube-system
NAME                                                              READY   STATUS    RESTARTS   AGE
eks-blueprints-addon-ingress-nginx-78b8567p4q6   1/1     Running   0          4d10h

Note that the ingress controller is deployed in the ingress-nginx namespace.

You can optionally customize the Helm chart that deploys nginx via the following configuration.

  enable_ingress_nginx = true

  # Optional  ingress_nginx_helm_config
  ingress_nginx_helm_config = {
    repository  = "https://kubernetes.github.io/ingress-nginx"
    version     = "4.0.17"
    values      = [file("${path.module}/values.yaml")]
  }

  nginx_irsa_policies = [] # Optional to add additional policies to IRSA

GitOps Configuration

The following properties are made available for use when managing the add-on via GitOps.

Refer to locals.tf for latest config. GitOps with ArgoCD Add-on repo is located here

argocd_gitops_config = {
    enable             = true
    serviceAccountName = local.service_account_name
  }