ForgeOps

Ingress

The CDK and CDM use NGINX Ingress Controller.

For the CDK:

  • The cdk-minikube start command installs the ingress add-on in Minikube clusters.

  • Cluster administrators deploy NGINX Ingress Controller in shared GKE, EKS, and AKS clusters.

For the CDM:

  • The tf-apply cluster creation script deploys NGINX Ingress Controller by default when it creates new Kubernetes clusters.

  • Alternatively, you can deploy HAProxy Ingress as your ingress controller.

HAProxy Ingress

This section lists adjustments you’ll need to make if you want to deploy the CDM using HAProxy Ingress as your ingress controller instead of NGINX Ingress Controller.

When you create your GKE, EKS, or AKS cluster:

  1. Before you run the tf-apply script, configure Terraform to deploy HAProxy Ingress in your cluster.

    Modify these values under cluster.tf_cluster_gke_small in the override.auto.tfvars file:

    1. Set the value of the helm.ingress-nginx.deploy variable to false.

    2. Set the value of the helm.ingress-haproxy.deploy variable to false.

  2. After you have run the tf-apply script, deploy HAProxy Ingress Controller by running the bin/ingress-controller-deploy.sh script.

    Be sure to specify the -i haproxy option when you run the script.

  3. To get the ingress controller’s external IP address on your GKE, EKS, or AKS cluster, specify --namespace haproxy-ingress (instead of --namespace nginx-ingress) when you run the kubectl get services command. For example:

    $ kubectl get services --namespace haproxy-ingress
    NAME              TYPE           CLUSTER-IP   EXTERNAL-IP  PORT(S)                      AGE
    haproxy-ingress   LoadBalancer   10.84.6.68   34.82.11.221 80:32288/TCP,443:32325/TCP   38s
    ...

When you deploy the CDM:

  1. Specify the --ingress-class haproxy argument. For example:

    $ cd /path/to/forgeops/bin
    $ ./forgeops install --small --ingress-class haproxy --fqdn cdm.example.com --namespace my-namespace