ForgeOps

Repositories

The ForgeOps project provides two public GitHub repositories; the forgeops and forgeops-extras repositories.

This page provides a high-level overview of the two repositories.

forgeops repository

The forgeops repository contains files needed for customizing and deploying the Ping Identity Platform on a Kubernetes cluster:

  • Files used to build Docker images for the Ping Identity Platform:

    • Dockerfiles

    • Scripts and configuration files incorporated into ForgeOps-provided Docker images

    • Canonical configuration profiles for the platform

  • Helm charts

  • Kustomize bases and overlays

In addition, the repository contains utility scripts and sample files. The scripts and samples are useful for:

  • Performing ForgeOps deployments quickly and easily

  • Exploring monitoring, alerts, and security customization

Learn more about the files in the repository, recommendations about how to work with them, and the support status for the files in the forgeops repository reference.

Learn about how to configure GitHub notifications here so you can get notified on ForgeOps releases.

forgeops repository updates

New forgeops repository features become available in the 2025.1.0 tag of the main branch from time to time.

When you start working with the forgeops repository, clone the repository. Depending on your organization’s setup, you’ll clone the repository either from the public repository on GitHub, or from a fork. You can find more information in Git clone or Git fork?.

Then, check out the 2025.1.0 tag of the main branch and create a working branch. For example:

$ git checkout 2025.1.0
$ git checkout -b my-working-branch

The ForgeOps team recommends that you regularly incorporate updates to the 2025.1.0 tag into your working branch:

  1. Get emails or subscribe to the ForgeOps RSS feed to be notified when there have been updates to ForgeOps 2025.1.0.

  2. Pull new commits in the 2025.1.0 tag of the main branch into your clone’s 2025.1.0 branch.

  3. Rebase the commits from the new branch into your working branch in your forgeops repository clone.

It’s important to understand the impact of rebasing changes from the forgeops repository into your branches. forgeops repository reference provides advice about which files in the forgeops repository to change, which files not to change, and what to look out for when you rebase. Follow the advice in forgeops repository reference to reduce merge conflicts, and to better understand how to resolve them when you rebase your working branch with updates that the ForgeOps team has made to the 2025.1.0 tag of the main branch.

forgeops repository reference

For more information about support for the forgeops repository, see Support for ForgeOps.

Directories

bin

Example scripts you can use or model for a variety of deployment tasks.

Recommendation: Don’t modify the files in this directory. If you want to add your own scripts to the forgeops repository, create a subdirectory under bin, and store your scripts there.

Support Status: Sample files. Not supported by Ping Identity.

charts

Helm charts.

Recommendation: Don’t modify the files in this directory. If you want to update a values.yaml file, create your deployment environment using the forgeops env command, and edit values.yaml files in the new environment you created. Learn more in forgeops:reference:forgeops-cmd-ref.adoc#_commandforgeops_env.

cluster

Artifacts to configure third-party software such as cert-manager, HAProxy, NGINX, Prometheus, and so on. It also contains an example script for automating Minikube cluster creation.

Recommendation: Don’t modify the files in this directory.

Support Status: Sample file. Not supported by Ping Identity.

docker

Contains three types of files needed to build Docker images for the Ping Identity Platform: Dockerfiles, support files that go into Docker images, and configuration profiles.

Dockerfile

Common deployment customizations require modifications to the Dockerfile in the docker directory.

Recommendation: Expect to encounter merge conflicts when you rebase changes from ForgeOps into your branches. Be sure to track changes you’ve made to Dockerfiles, so that you’re prepared to resolve merge conflicts after a rebase.

Support Status: Dockerfiles. Support is available from Ping Identity.

Support Files Referenced by Dockerfiles

When customizing the default ForgeOps deployments, you might need to add files to the docker directory. For example, to customize the AM WAR file, you might need to add plugin JAR files, user interface customization files, or image files.

Recommendation: If you only add new files to the docker directory, you should not encounter merge conflicts when you rebase changes from ForgeOps into your branches. However, if you need to modify any files from ForgeOps, you might encounter merge conflicts. Be sure to track changes you’ve made to any files in the docker directory, so that you’re prepared to resolve merge conflicts after a rebase.

Support Status:

Scripts and other files from ForgeOps that are incorporated into Docker images for the Ping Identity Platform: Support is available from Ping Identity.

User customizations that are incorporated into custom Docker images for the Ping Identity Platform: Support is not available from Ping Identity.

Configuration Profiles

The starter configuration profiles provided with ForgeOps. To create your own configuration profiles, use the forgeops config command in your ForgeOps deployment environment. Add your own configuration profiles to the docker directory using the export command. Don’t modify the internal-use only idm-only and ig-only configuration profiles provided by ForgeOps.

Recommendation: You should not encounter merge conflicts when you rebase changes from ForgeOps into your branches.

Support Status: Configuration profiles. Support is available from Ping Identity.

etc

Files used to support ForgeOps deployments.

Recommendation: Don’t modify the files in this directory (or its subdirectories).

Support Status: Sample files. Not supported by Ping Identity.

helm

Helm values files for each client environment (env) for use with Helm charts. The Helm values files are created and managed by the forgeops env command.

Files in each ForgeOps deployment environment
File Description

env.log

Log of forgeops env runs.

values.yaml

Configuration of components in ForgeOps deployment using Helm.

values-images.yaml

Docker image used in ForgeOps deployment.

values-ingress.yaml

Ingress configuration, such as FQDN.

values-size.yaml

Component size information such as number of replicas, cpu, and memory

Support Status: Environment specific files. Support is available from ForgeRock.

how-tos

Description and usage of various utilities provided with ForgeOps.

Recommendation: Don’t change these files.

Support Status: Description files. Support is available from ForgeRock.

intezer

For ForgeRock internal use only. Don’t modify or use.

jenkins-scripts

For ForgeRock internal use only. Don’t modify or use.

kustomize

Artifacts for orchestrating the Ping Identity Platform using Kustomize.

Recommendation: Common deployment customizations, such as changing the deployment namespace and providing a customized FQDN, require modifications to files in the kustomize/overlay directory. You’ll probably change, at minimum, the kustomize/overlay/all/kustomization.yaml file.

Expect to encounter merge conflicts when you rebase changes into your branches. Be sure to track changes you’ve made to the files in the kustomize directory, so that you’re prepared to resolve merge conflicts after a rebase.

Support Status: Kustomize bases and overlays. Support is available from Ping Identity.

legacy-docs

Documentation for performing ForgeOps deployments using older versions. Includes documentation for supported and deprecated versions of the forgeops repository.

Recommendation: Don’t modify the files in this directory.

Support Status:

Documentation for supported versions of the forgeops repository: Support is available from Ping Identity.

Documentation for deprecated versions of the forgeops repository: Not supported by Ping Identity.

lib

Python and shell library files used internally. Don’t modify.

releases

For ForgeRock internal use only. Don’t modify or use.

Files in the top-level directory

.gcloudignore, .gitchangelog.rc, .gitignore, forgeops.conf.example

For ForgeOps internal use only. Don’t modify.

LICENSE

Software license for artifacts in the forgeops repository. Don’t modify.

Makefile

For ForgeOps internal use only. Don’t modify.

notifications.json

For ForgeOps internal use only. Don’t modify.

README.md

The top-level forgeops repository README file. Don’t modify.

forgeops-extras repository

Use the forgeops-extras repository to create sample Kubernetes clusters in which you can deploy the Ping Identity Platform.

forgeops-extras repository reference

For more information about support for the forgeops-extras repository, see Support for ForgeOps.

Directories

terraform

Example Terraform artifacts that automate cluster creation and deletion.

Recommendation: Don’t modify the files in this directory. If you want to add your own cluster creation support files to the forgeops repository, copy the terraform.tfvars file to a new file and make changes there.

Support Status: Sample files. Not supported by Ping Identity.

Git clone or Git fork?

For the simplest use cases—a single user in an organization performing a ForgeOps deployment for a proof of concept, or exploration of the platform—cloning the ForgeOps public repositories from GitHub provides a quick and adequate way to access the repositories.

If, however, your use case is more complex, you might want to fork the repositories, and use the forks as your common upstream repositories. For example:

  • Multiple users in your organization need to access a common version of the repository and share changes made by other users.

  • Your organization plans to incorporate forgeops and forgeops-extras repository changes from ForgeOps.

  • Your organization wants to use pull requests when making repository updates.

If you’ve forked the forgeops and forgeops-extras repositories:

  • You’ll need to synchronize your forks with ForgeOps repositories on GitHub when ForgeOps releases new branches.

  • Your users will need to clone your forks before they start working instead of cloning the public repositories from GitHub. Because procedures in the documentation tell users to clone the public repositories, you’ll need to make sure your users follow different procedures to clone the forks instead.

  • The steps to initially get and update your repository clones will differ from the steps provided in the documentation. You’ll need to let users know how to work with the forks as the upstream repositories instead of following the steps in the documentation.