---
title: Custom PingGateway image
description: The default PingGateway configuration provided for use with ForgeOps deployments is an example and is not meant for use in production. Replace this configuration with your own routes before using PingGateway in your environment.
component: forgeops
version: 7.5
page_id: forgeops:prepare:ig/deploy-custom-ig
canonical_url: https://docs.pingidentity.com/forgeops/2026.3/prepare/ig/deploy-custom-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
keywords: ["Internet Gateway", "forgeops Command"]
superseded_by: https://docs.pingidentity.com/forgeops/2026.3/prepare/ig/deploy-custom-ig.html
---

# Custom PingGateway image

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

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

To build a custom PingGateway image and deploy PingGateway:

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

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

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

4. [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.

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

   ```
   $ cd /path/to/forgeops/bin
   $ ./forgeops build ig --config-profile my-profile --push-to my-repo
   Generating tags...
    - ig → ig:0a27bdfea
   Checking cache...
    - ig: Not found. Building
   Starting build...
   Found [minikube] context, using local docker daemon.
   Building [ig]...
   Sending build context to Docker daemon  55.81kB
   Step 1/5 : FROM gcr.io/forgerock-io/ig:2025.9.0
    --→ ba6f8150204e
   Step 2/5 : ARG CONFIG_PROFILE=cdk
   ...
   Step 5/5 : COPY --chown=forgerock:root . /var/ig
    --→ c173995218a3
   Successfully built c173995218a3
   Successfully tagged ig:0a27bdfea

   Updated the image_defaulter with your new image for ig: "ig:c173995218a3c55dbca76fff08588153db0693a51ff0904e6adee34b7163340a"
   ```

6. Uninstall the previously deployed PingGateway from your ForgeOps deployment:

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

   2. Delete PingGateway:

      ```
      $ ./forgeops delete ig
      "cdk" platform detected in namespace: "my-namespace".
      Uninstalling component(s): ['ig'] from namespace: "my-namespace".
      OK to delete components? [Y/N] Y
      secret "openig-secrets-env" deleted
      service "ig" deleted
      deployment.apps "ig" deleted
      ```

7. Deploy PingGateway using your customized PingGateway image:

   ```
   $ ./forgeops install ig --cdk
   Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
   Checking ds-operator and related CRDs: ds-operator CRD found in cluster.

   Installing component(s): ['ig']

   secret/openig-secrets-env created
   service/ig created
   deployment.apps/ig created

   Enjoy your deployment!
   ```

8. 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.

9. Verify that your PingGateway routes work.
