---
title: minikube
description: Before you can perform a ForgeOps deployment on a Kubernetes cluster running on minikube, you must complete these prerequisite tasks:
component: forgeops
version: 2026.1
page_id: forgeops:setup:minikube
canonical_url: https://docs.pingidentity.com/forgeops/2026.1/setup/minikube.html
section_ids:
  repository: forgeops repository
  minikube-third-party-software: Third-party software
  python_venv: Python venv
  docker-mini: Docker engine
  for_users_running_microsoft_windows: For users running Microsoft Windows
  minikube-cluster: minikube cluster
  minikube-ingress: Hostname resolution
---

# minikube

Before you can [perform a ForgeOps deployment on a Kubernetes cluster running on minikube](../deploy/overview.html), you must complete these prerequisite tasks:

* [Clone the `forgeops` repository](#repository)

* [Install third-party software on your local computer](#minikube-third-party-software)

* [Start a virtual machine that runs Docker engine on your local computer](#docker-mini)

* [Create a Kubernetes cluster on minikube](#minikube-cluster)

* [Set up your local computer to access the cluster's ingress controller](#minikube-ingress)

## `forgeops` repository

|   |                                                                                                                                                                                                                                                              |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|   | Learn more about configuring GitHub notifications [here](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications) so you can get notified on ForgeOps releases. |

Before you can perform a ForgeOps deployment, you must first get the `forgeops` repository and check out the `2026.1.0` tag you want to use:

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 `2026.1.0` tag:

   ```
   $ cd forgeops
   $ git checkout 2026.1.0
   ```

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 `2026.1.0` tag. Learn more in [Repository Updates](../start/repositories.html#forgeops-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](https://brew.sh/) on macOS and Linux'\[[1](#_footnotedef_1 "View footnote.")]' .

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.13.12 | `python@3.13`       |
| - Bash                                  | 5.3.9   | `bash`              |
| * Docker client                         | 28.4.0  | `docker`            |
| - Kubernetes client (kubectl)           | 1.35.2  | `kubernetes-cli`    |
| * Kubernetes context switcher (kubectx) | 0.9.5   | `kubectx`           |
| - Kustomize                             | 5.7.1   | `kustomize`         |
| * Helm                                  | 4.1.3   | `helm`              |
| - JSON processor jq                     | 1.8.1   | `jq`                |
| * Setup tools (Python)                  | 80.9.0  | `python-setuptools` |
| **Additionally on minikube**            |         |                     |
| - minikube                              | 1.36.0  | `minikube`          |

### Python `venv`

The new `forgeops` utility is built on Python3. Some of the Python3 packages used by `forgeops` must be installed using `pip`. To separate such Python3 specific packages, Python recommends the use of the `venv` Python virtual environment. Learn more about Python `venv` in [venv - virtual environments](https://docs.python.org/3/library/venv.html).

1. Create a `venv` for using the `forgeops` utility.

   ```
   $ python3 -m venv .venv
   ```

2. Set up Python3 dependencies for `forgeops` utility.

   ```
   $ source .venv/bin/activate
   $ /path/to/forgeops/bin/forgeops configure
   ```

### Docker engine

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

* On macOS systems, use [Docker Desktop](https://docs.docker.com/desktop/install/mac-install) or an alternative, such as [Colima](https://github.com/abiosoft/colima).

* On Linux systems, use [Docker Desktop for Linux](https://docs.docker.com/desktop/install/linux-install/), install Docker machine from your Linux distribution, or use an alternative, such as [Colima](https://github.com/abiosoft/colima).

For more information about using Colima when performing ForgeOps deployments, refer to [this article](https://community.forgerock.com/t/deploying-forgeops-to-minikube-on-an-m1-mac-with-colima/3305/2).

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've 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](https://github.com/kubernetes/minikube/issues/7879). Do not attempt to perform ForgeOps deployments on WSL2 until this issue is resolved. |

## minikube cluster

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

The minikube start command example shown in the doc creates a minikube cluster with a configuration that's adequate for a ForgeOps deployment.

The default driver option is fine for most users. For more information about minikube virtual machine drivers, refer to [Drivers](https://minikube.sigs.k8s.io/docs/drivers) in the minikube documentation.

If you want to use a driver other than the default driver, specify the `--driver` option when you run the minikube start command in the next step.

1. Set up minikube:

   ```
   $ minikube start --cpus=3 --memory=9g --disk-size=40g --cni=true \
     --kubernetes-version=stable --addons=ingress,volumesnapshots,metrics-server \
     --driver=docker
   😄  minikube v1.36.0 on Darwin 15.6
   ✨  Using the docker driver based on existing profile
   👍  Starting "minikube" primary control-plane node in "minikube" cluster...
   🚜  Pulling base image v0.0.47 ...
   🐳  Preparing Kubernetes v1.33.1 on Docker 28.1.1 ...
   🔎  Verifying Kubernetes components...
       ▪ Using image registry.k8s.io/metrics-server/metrics-server:v0.7.2
       ▪ Using image registry.k8s.io/sig-storage/snapshot-controller:v6.1.0
       ▪ 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"
   ...
   🔎  Verifying ingress addon…​
   🌟  Enabled addons: volumesnapshots, metrics-server, storage-provisioner,
   default-storageclass, ingress
   🏄  Done! kubectl is now configured to use "minikube" cluster and "default"
   namespace by default
   ```

   |   |                                                                                                                                                                                                             |
   | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   |   | If you are running minikube on an ARM-based macOS system and the minikube output indicates that you are using the qemu driver, you probably did not start the virtual machine that runs your Docker engine. |

2. Run the minikube docker-env command to set up your local computer to use the minikube's Docker engine:

   ```
   $ eval $(minikube docker-env)
   ```

## 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 using the Docker driver on macOS system'\[[2](#_footnotedef_2 "View footnote.")]' , use `127.0.0.1` as the ingress IP address.

   * If minikube is running the Hyperkit driver on Intel-based macOS system or on a Linux system, get the IP address by running the minikube ip command:

     ```
     $ minikube ip
     ...
     ```

2. Choose an FQDN (referred to as the *deployment FQDN*) that you'll use when you deploy the Ping Identity Platform, and when you access its GUIs and REST APIs. Ensure that the FQDN is unique in the cluster you will be deploying the Ping Identity Platform.

   Some examples in this documentation use `forgeops.example.com` as the deployment FQDN. You are 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. For example:

   ```
   127.0.0.1 forgeops.example.com
   ```

***

[1](#_footnoteref_1). The Linux version of Homebrew doesn't support installing software it maintains as casks. Because of this, if you're setting up an environment on Linux, you won't be able to use Homebrew to install software in several cases. You'll need to refer to the software's documentation for information about how to install the software on a Linux system.[2](#_footnoteref_2). For example, systems based on M1 or M2 chipsets.
