---
title: Deploy PingGateway
description: Deploy PingGateway in a ForgeOps environment and verify its proxy routes
component: forgeops
version: 2026.3
page_id: forgeops:prepare:ig/deploy-default-ig
canonical_url: https://docs.pingidentity.com/forgeops/2026.3/prepare/ig/deploy-default-ig.html
llms_txt: https://docs.pingidentity.com/forgeops/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: 2025-11-20T12:24:02Z
keywords: ["Internet Gateway", "forgeops Command"]
---

# Deploy PingGateway

ForgeOps deployments don't include PingGateway by default.

To deploy PingGateway after you've performed a ForgeOps deployment:

1. Verify that the ForgeOps deployment is up and running.

2. Set the active namespace in your local Kubernetes context to the namespace in which you've deployed the platform components.

3. Deploy PingGateway:

   > **Collapse: In Kustomize-based deployments (Deprecated)**
   >
   > 1. Add the - ./ig line in the default overlay file, kustomize/overlay/my-env/kustomization.yaml:
   >
   >    ```
   >    kind: Kustomization
   >    apiVersion: kustomize.config.k8s.io/v1beta1
   >    resources:
   >    - ./base
   >    - ./secrets
   >    - ./ds-cts
   >    - ./ds-idrepo
   >    - ./am
   >    - ./amster
   >    - ./idm
   >    - ./ig
   >    - ./ds-set-passwords
   >    - ./admin-ui
   >    - ./end-user-ui
   >    - ./login-ui
   >    ```
   >
   > 2. Add PingGateway Docker image to your ForgeOps deployment configuration:
   >
   >    ```
   >    $ cd /path/to/forgeops/bin/
   >    $ ./forgeops image --release 2026.6.0 ig --env-name my-env
   >    ```
   >
   >    1. Deploy PingGateway:
   >
   >       ```
   >       $ /path/to/forgeops/bin/forgeops apply --env-name my-env ig
   >       ```

   > **Collapse: In Helm-based deployments**
   >
   > 1. Deploy PingGateway using the helm upgrade --install command:
   >
   >    ```
   >    $ cd /path/to/forgeops
   >    $ helm upgrade --install ping-gateway charts/ping-gateway/ \
   >      --values helm/my-env/values.yaml --namespace my-namespace
   >    ```

4. Verify that PingGateway is running:

   ```
   $ curl --insecure -L -X GET https://my-fqdn/ig/openig/ping -v

   ...
   > GET /ig/openig/ping HTTP/2
   > Host: my-fqdn
   > User-Agent: curl/7.64.1
   > Accept: /
   * Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
   < HTTP/2 200
   < date: Thu, 29 Jul 2021 21:07:44 GMT
   <
   * Connection #0 to host my-fqdn left intact
   * Closing connection 0
   ```

5. Verify that the reverse proxy to the IDM pod is running:

   ```
   $ curl --insecure -L -X GET https://my-fqdn/ig/openidm/info/ping -v
   ...
   * Using HTTP2, server supports multi-use
   * Connection state changed (HTTP/2 confirmed)
   * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
   ...
   * Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
   < HTTP/2 200
   ...
   ```
