---
title: Custom PingGateway image
description: The default PingGateway configuration provided for use with ForgeOps deployments is an example. Replace this configuration with your own routes before using PingGateway in your environment.
component: forgeops
version: 2026.1
page_id: forgeops:prepare:ig/deploy-custom-ig
canonical_url: https://docs.pingidentity.com/forgeops/2026.1/prepare/ig/deploy-custom-ig.html
keywords: ["PingGateway", "forgeops Command"]
section_ids:
  deploy_custom_pinggateway_image: Deploy custom PingGateway image
  customize_the_am_url_in_pinggateway: Customize the AM URL in PingGateway
---

# Custom PingGateway image

The default PingGateway configuration provided for use with ForgeOps deployments is an example. Replace this configuration with your own routes before using PingGateway in your environment.

Refer to the [PingGateway Deployment Guide](https://docs.pingidentity.com/pinggateway/2026.3/devops-guide/preface.html) for configuring routes.

## Deploy custom PingGateway image

To build a custom PingGateway image and deploy PingGateway:

1. Verify you've already set up ForgeOps deployment environment using the forgeops env command.

2. Verify that your ForgeOps deployment is up and running.

3. [Set up your environment to push to your Docker registry](../../customize/setup.html#docker-push).

4. Configure PingGateway by creating, modifying, or deleting rules in the /path/to/forgeops/docker/ig/config-profiles/my-profile/config/routes-service directory.

5. [Identify the repository](../../customize/setup.html#push-to) to which you'll push the Docker image. You'll use this location in the next step to specify the --push-to argument's value.

6. Build a new `ig` image that includes your changes to PingGateway static configuration:

   ```
   $ cd /path/to/forgeops/bin
   ...
   $ forgeops image --release 2026.3.0 --release-name my-ig-release ig
   ...
   $ ./forgeops build ig --env-name my-env \
     --config-profile my-profile --push-to my-repo
   ```

7. If PingGateway hadn't already been deployed in the existing ForgeOps deployment, 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
   ```

8. Uninstall previously deployed PingGateway from your ForgeOps deployment:

   1. Set the active namespace in your local Kubernetes context to the namespace in which you've deployed the PingGateway.

   2. Delete PingGateway:

      ```
      $ ./forgeops delete --env-name my-env ig
      ...
      secret "openig-secrets-env" deleted
      service "ig" deleted
      deployment.apps "ig" deleted
      ```

9. Deploy PingGateway using your customized PingGateway image:

   1. In a Kustomize-based deployment:

      ```
      $ /path/to/forgeops/bin/forgeops apply --env-name my-env ig
      ```

   2. In a Helm-based deployment:

      ```
      $ cd /path/to/forgeops
      $  helm upgrade --install ping-gateway charts/ping-gateway/ \
        --values helm/my-env/values.yaml --namespace my-namespace
      ```

10. Run the kubectl get pods command to check the status of the PingGateway pod. Wait until the PingGateway pod is ready before proceeding to the next step.

11. Verify that your PingGateway routes work.

## Customize the AM URL in PingGateway

To customize the AM URL in PingGateway and deploy using Helm:

1. Edit the configuration file in your ForgeOps deployment environment (`helm/my-env/values.yaml`) and add PingGateway configuration lines. For example:

   ```
   ig:
     env:
       - name: AM_URL
         value: "\http://am/my-am"
   ```

2. Redeploy PingGateway:

   ```
   $ helm upgrade --install ping-gateway charts/ping-gateway/ \
     --values helm/my-env/values.yaml --namespace my-namespace
   ```

3. Verify that the new AM URL has been set up:

   ```
   $ kubectl get pod ig-75f8f95bbf-hk9b7 -o json |grep  -A1 -i AM_URL

        "name": "AM_URL",
        "value": "\http://am/my-am"
   ```
