ForgeOps

Minikube

forgeops repository

Before you can perform a ForgeOps deployment, you must first get the forgeops repository and check out the release/7.5-20240618 branch:

  1. Clone the forgeops repository. For example:

    $ git clone https://github.com/ForgeRock/forgeops.git

    The forgeops repository is a public Git repository. You do not need credentials to clone it.

  2. Check out the release/7.5-20240618 branch:

    $ cd forgeops
    $ git checkout release/7.5-20240618

Depending on your organization’s repository strategy, you might need to clone the repository from a fork. You might also need to create a working branch from the release/7.5-20240618 branch. Learn more in Repository Updates.

Third-party software

Before performing a ForgeOps deployment, obtain third-party software and install it on your local computer.

ForgeOps team recommends that you install third-party software using Homebrew on macOS and Linux’[1]' .

The versions listed in this section have been validated for ForgeOps deployments on minikube. Earlier and later versions will probably work. If you want to try using versions that are not in the table, it is your responsibility to validate them.

Software Version Homebrew package

On all platforms

  • Python 3

3.12.4

python@3.12

  • Bash

5.2.26

bash

  • Docker client

26.1.4

docker

  • Kubernetes client (kubectl)

1.30.2

kubernetes-cli

  • Kubernetes context switcher (kubectx)

0.9.5

kubectx

  • Kustomize

5.4.2

kustomize

  • Helm

3.15.2

helm

  • JSON processor jq

1.7.1

jq

  • Setup tools (Python)

70.1.1

python-setuptools

Additionally on minikube

  • minikube

1.33.1

minikube

Docker engine

In addition to the software listed in the preceding table, you’ll need to start a virtual machine that runs Docker engine.

For more information about using Colima when performing ForgeOps deployments, refer to this article.

Minimum requirements for the virtual machine:

  • 4 CPUs

  • 10 GB RAM

  • 60 GB disk space

For users running Microsoft Windows

ForgeOps deployments are supported on macOS and Linux. If you have a Windows computer, you’ll need to create a Linux VM. We tested the following configurations:

  • Hypervisor: Hyper-V, VMWare Player, or VMWare Workstation

  • Guest OS: Current Ubuntu LTS release with 12 GB memory and 60 GB disk space

  • Nested virtualization enabled in the Linux VM.

Perform all the procedures in this documentation within the Linux VM. In this documentation, the local computer refers to the Linux VM for Windows users.

The minikube implementation on Windows Subsystem for Linux (WSL2) has networking issues. As a result, consistent access to the ingress controller or the apps deployed on minikube is not possible. This issue is tracked here. Do not attempt to perform ForgeOps deployments on WSL2 until this issue is resolved.

minikube cluster

The minikube software runs a single-node Kubernetes cluster in a virtual machine.

The minikube start command creates a minikube cluster with a configuration that’s adequate for a ForgeOps deployment.

  1. Determine which virtual machine driver you want minikube to use.

    The commands in this documentation show the use of the Docker driver. If you want to use a driver other than the default driver, specify the --driver option.

    For more information about minikube virtual machine drivers, refer to Drivers in the minikube documentation.

  2. Set up a minikube cluster:

    $ minikube start --cpus=3 --memory=9g --disk-size=40g --cni=true \
      --kubernetes-version=stable --addons=ingress,volumesnapshots,metrics-server \
      --driver=docker
    
    😄  minikube v1.35.0 on Darwin 15.5
    🎉  minikube 1.36.0 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.36.0
    💡  To disable this notice, run: 'minikube config set WantUpdateNotification false'
    
    ✨  Using the docker driver based on user configuration
    📌  Using Docker Desktop driver with root privileges
    👍  Starting "minikube" primary control-plane node in "minikube" cluster
    🚜  Pulling base image v0.0.46 …​
    🔥  Creating docker container (CPUs=3, Memory=9216MB) ...
    🐳  Preparing Kubernetes v1.32.0 on Docker 27.4.1 ...
        ▪ Generating certificates and keys ...
        ▪ Booting up control plane ...
        ▪ Configuring RBAC rules ...
    🔗  Configuring CNI (Container Networking Interface) ...
    🔎  Verifying Kubernetes components...
        ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
    💡  After the addon is enabled, please run "minikube tunnel" and your ingress resources would be available at "127.0.0.1"
        ▪ Using image registry.k8s.io/sig-storage/snapshot-controller:v6.1.0
        ▪ Using image registry.k8s.io/metrics-server/metrics-server:v0.7.2
        ▪ Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.4
        ▪ Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.4
        ▪ Using image registry.k8s.io/ingress-nginx/controller:v1.11.3
    🔎  Verifying ingress addon...
    🌟  Enabled addons: storage-provisioner, default-storageclass, metrics-server, volumesnapshots, ingress
    🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
  3. Verify your minikube cluster is using the expected driver. For example:

    ...
    ✨  Using the docker driver based on user configuration
    📌  Using Docker Desktop driver with root privileges
    ...

Hostname resolution

Set up hostname resolution for the Ping Identity Platform servers you’ll deploy in your namespace:

  1. Determine the minikube ingress controller’s IP address:

    • If minikube is running using the Docker driver on a macOS system, set 127.0.0.1 as the IP address.

    • If minikube is running using other drivers on an x86-based macOS system or on a Linux system, get the IP address by running the minikube ip command:

      $ minikube ip
      192.168.64.2
  2. Choose an FQDN (referred to as the deployment FQDN) that you’ll use to deploy the Ping Identity Platform, and when you access its GUIs and REST APIs. Ensure that the FQDN is unique in the cluster you deploy the Ping Identity Platform.

    Examples in this documentation use forgeops.example.com as the deployment FQDN. You’re not required to use forgeops.example.com. You can specify any FQDN you like.

  3. Add an entry to the /etc/hosts file to resolve the deployment FQDN:

    ingress-ip-address forgeops.example.com

    For ingress-ip-address, specify the IP address from step 1.


1. The Linux version of Homebrew doesn’t support installing software it maintains as casks. Because of this, you won’t be able to use Homebrew to install such software on a Linux system. You’ll need to refer to the software’s documentation for information about how to install the software on a Linux system.