Custom IG image
The IG configuration provided in the CDK canonical configuration profile is an example, and is not meant for use in production. Remove this configuration and replace it with your own routes before using IG in your environment.
See the IG Deployment Guide for configuring routes.
Prerequisites
Before starting to build your custom IG image and deploy IG, set up your local environment to write Docker images:
Minikube
Set up your local environment to execute docker commands on Minikube’s Docker engine.
ForgeRock recommends using the built-in Docker engine when developing custom Docker images using Minikube. When you use Minikube’s Docker engine, you don’t have to build Docker images on a local engine and then push the images to a local or cloud-based Docker registry. Instead, you build images using the same Docker engine that Minikube uses. This streamlines development.
To set up your local environment to execute docker commands on Minikube’s Docker engine, run the docker-env command in your shell:
$ eval $(minikube docker-env)
GKE shared cluster
To set up your local computer to push Docker images to your Google Cloud GCR container registry:
-
If it’s not already running, start Docker on your local computer. For more information, see the Docker documentation.
-
Set up a Docker credential helper:
$ gcloud auth configure-docker
EKS shared cluster
To set up your local computer to push Docker images to your Amazon ECR container registry:
-
If it’s not already running, start Docker on your local computer. For more information, see the Docker documentation.
-
Log in to Amazon ECR. Use the Docker registry location you obtained from your cluster administrator:
$ aws ecr get-login-password | \ docker login --username AWS --password-stdin my-docker-registry stdin my-docker-registry Login Succeeded
ECR login sessions expire after 12 hours. Because of this, you’ll need to perform these steps again whenever your login session expires.
AKS shared cluster
To set up your local computer to push Docker images to your Azure ACR container registry:
-
If it’s not already running, start Docker on your local computer. For more information, see the Docker documentation.
-
Install the ACR Docker Credential Helper.
Build a custom IG image and deploy IG
-
Verify that the CDK is up and running.
-
Configure IG by creating, modifying, or deleting rules in the /path/to/forgeops/docker/ig/config-profiles/my-profile/config/routes-service directory.
-
Identify the repository 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.
-
Build a new
ig
image that includes your changes to IG 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:2023.11.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"
-
Uninstall the previously deployed IG from your CDK:
-
Set the active namespace in your local Kubernetes context to the namespace in which you have deployed the IG.
-
Delete IG:
$ ./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
-
-
Deploy IG using your customized IG 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!
-
Run the kubectl get pods command to check the status of the IG pod. Wait until the IG pod is ready before proceeding to the next step.
-
Verify that your IG routes work.