---
title: Ingress-NGINX controller
description: Use the Ingress-NGINX controller when you deploy the CDM.
component: forgeops
version: 7.2
page_id: forgeops::cdm/gke/setup/nginx
canonical_url: https://docs.pingidentity.com/forgeops/7.2/cdm/gke/setup/nginx.html
section_ids:
  next_step: Next step
---

# Ingress-NGINX controller

Use the Ingress-NGINX controller when you deploy the CDM.

Remember, [the CDM is a reference implementation and not for production use](../../../start/start-here.html#cdm-sandbox). When you [create a project plan](../../../start/start-here.html#planning), you'll need to determine which ingress controller to use in production.

After you've finished deploying the CDM, you can use the CDM as a sandbox to explore deployment with a different ingress controller.

To deploy an Ingress-NGINX controller in a GKE cluster:

1. Verify that you initialized your cluster by performing the steps in [Kubernetes cluster creation](cluster.html).

   If you did not set up your cluster using this technique, the cluster might be missing some required configuration.

2. Deploy the Ingress-NGINX controller in your cluster:

   ```
   $ /path/to/forgeops/bin/ingress-controller-deploy.sh --gke
   Deploying Ingress Controller to GKE...
   namespace/nginx created
   Detected cluster of type: small
   Setting ingress pod count to 1
   "ingress-nginx" has been added to your repositories
   Release "ingress-nginx" does not exist. Installing it now.
   NAME: ingress-nginx
   ...
   ```

3. Check the status of the pods in the `nginx` namespace until all the pods are ready:

   ```
   $ kubectl get pods --namespace nginx
   NAME                                          READY  STATUS    RESTARTS  AGE
   ingress-nginx-controller-d794bb476-xxx6j      1/1    Running   0         4m38s
   ```

4. Get the ingress controller's external IP address:

   ```
   $ kubectl get services --namespace nginx
   NAME                                 TYPE           CLUSTER-IP   EXTERNAL-IP      PORT(S)                      AGE
   ingress-nginx-controller             LoadBalancer   10.4.6.154   35.203.145.112   80:30300/TCP,443:30638/TCP   58s
   ingress-nginx-controller-admission   ClusterIP      10.4.4.9     <none>           443/TCP                      58s
   ```

   The ingress controller's IP address should appear in the `EXTERNAL-IP` column. There can be a short delay while the ingress starts before the IP address appears in the `kubectl get services` command's output; you might need to run the command several times.

5. Configure hostname resolution for the ingress controller:

   1. Choose an FQDN (referred to as the *deployment FQDN*) that you'll use when you deploy the Ping Identity Platform, and when you access its GUIs and REST APIs.

      Examples in this documentation use `cdm.example.com` as the deployment FQDN. You are not required to use `cdm.example.com`; you can specify any FQDN you like.

   2. If DNS does not resolve your deployment FQDN, add an entry similar to the following to the /etc/hosts file:

      ```
      ingress-ip-address cdm.example.com
      ```

      For ingress-ip-address, specify the ingress controller's external IP address.

## Next step

* [icon: check-square-o, set=fa][Become familiar with the CDM](../../intro.html)

* [icon: check-square-o, set=fa][Understand CDM architecture](../../architecture.html)

* [icon: check-square-o, set=fa][Set up your local environment and create a cluster](../../setup-cdm.html)

* [icon: square-o, set=fa]*[Deploy the platform](../../deploy.html)*

* [icon: square-o, set=fa][Access platform UIs and APIs](../../access.html)

* [icon: square-o, set=fa][Plan for production deployment](../../next-steps.html)
