Setting up a full OpenShift cluster for development or learning shouldn’t require cloud spend or a complex multi-node installation. CRC (CodeReady Containers) — distributed by Red Hat as Red Hat OpenShift Local — solves this by delivering a fully functional, single-node OpenShift Container Platform 4 cluster that runs directly on your laptop in minutes.

This guide walks you through the complete setup on macOS (Intel x86_64 and Apple Silicon aarch64)Linux (x86_64 and aarch64), and Windows 10/11.

Prefer to see it in action? Watch the step-by-step video guide on YouTube to follow along in real time.

What is CRC?

CRC brings a minimal OpenShift 4 cluster to your local machine via a lightweight virtual machine managed by the crc CLI. It supports three presets:

  • openshift (default) — Full Red Hat OpenShift Container Platform 4. Requires a free Red Hat pull secret.
  • okd — Community upstream Kubernetes distribution. No pull secret needed. Not available on Apple Silicon.
  • microshift — Lightweight, edge-optimized Kubernetes. Runs on as little as 2 CPUs and 4 GB RAM.

Note: CRC is designed for development and testing only. It runs as a single node, has no supported upgrade path between OpenShift versions, and disables resource-heavy operators such as Cluster Monitoring by default.

System Requirements

PresetMin CPUsMin RAMDisk
openshift4 physical cores10.5 GB35 GB
okd4 physical cores10.5 GB35 GB
microshift2 physical cores4 GB35 GB

Supported operating systems:

  • macOS: 13 Ventura or later (Intel and Apple Silicon)
  • Windows: Windows 10 or 11 (fully updated, Pro/Enterprise/Education only — Home edition is not supported)
  • Linux: RHEL (latest 2 minor releases), CentOS 8/9, Fedora (latest 2 releases). Ubuntu/Debian have community support only.

Architecture and preset compatibility:

Presetx86_64 (Intel/AMD)Apple Silicon (aarch64)Linux ARM64
openshift
okd
microshift

Warning: Nested virtualization is not supported. CRC must run on bare-metal hardware or a hypervisor that exposes hardware virtualization extensions to the guest.

Step 1 — Get Your Pull Secret

The OpenShift preset requires a pull secret to authenticate with the Red Hat container registry. OKD and MicroShift do not.

Step 2 — Install CRC

macOS — Intel (x86_64) and Apple Silicon (aarch64)

Download the .pkg guided installer from the Red Hat OpenShift Local download page. The installer auto-detects your architecture and configures the correct hypervisor backend (HyperKit on Intel, vfkit on Apple Silicon). Run the installer and follow the prompts. No additional packages needed.

Linux — x86_64 and aarch64

Install the required packages first:

# RHEL / CentOS / Fedora
❯ sudo dnf install libvirt NetworkManager
# Ubuntu / Debian (community support only)
❯ sudo apt install qemu-kvm libvirt-daemon libvirt-daemon-system network-manager

Then download and install the CRC binary:

❯ cd ~/Downloads
# Extract — use amd64 or arm64 depending on your architecture
❯ tar xvf crc-linux-amd64.tar.xz # or crc-linux-arm64.tar.xz
mkdir -p ~/bin
❯ cp ~/Downloads/crc-linux-*-amd64/crc ~/bin # or arm64
❯ export PATH=$PATH:$HOME/bin
❯ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

Windows 10 / 11

Download the crc-windows-amd64.zip from the download page, extract it, and run the guided .exe installer with an account that can elevate to Administrator. The installer enables Hyper-V and configures the firewall automatically.

Important: On Windows, CRC must be installed to the local C:\ drive. Running from a network drive is not supported. Windows Home Edition is not supported (Hyper-V is required).

Verify the installation on any platform:

❯ crc version

Step 3 — Configure Your Preset

The default preset is openshift. Skip this step if that’s what you want. To switch to OKD or MicroShift before setup:

# For OKD (x86_64 and Linux ARM64 only — not Apple Silicon)
❯ crc config set preset okd
# For MicroShift (all platforms including Apple Silicon)
❯ crc config set preset microshift

Important: You cannot change the preset of an existing running instance. Delete it first with crc delete, then reconfigure.

Step 4 — Set Up and Start the Cluster

Run crc setup to prepare your host machine. This configures the hypervisor, downloads the cluster bundle, and sets up DNS resolution for *.crc.testing and *.apps-crc.testing. Run it as your regular user — not root or Administrator.

❯ crc setup

Then start the cluster:

❯ crc start

For the OpenShift preset, you will be prompted to paste your pull secret. The first start takes 4–8 minutes. On success, the output prints the web console URL and login credentials.

Warning: Disconnect from VPN before starting CRC. VPN software frequently overrides DNS and breaks cluster networking.

Step 5 — Access Your Cluster

Web Console

❯ crc console

This opens https://console-openshift-console.apps-crc.testing in your browser. Log in as developer (password: developer) for application work, or as kubeadmin (generated password shown in crc start output) for admin tasks.

OpenShift CLI (oc)

# Add the bundled oc binary to your shell PATH
❯ eval $(crc oc-env)
# Log in as developer
❯ oc login -u developer https://api.crc.testing:6443
# Log in as admin
❯ oc config use-context crc-admin

To retrieve credentials at any time:

❯ crc console --credentials

The default 4 vCPUs and 10.5 GB RAM are the absolute minimums. For heavier workloads, increase these before starting the cluster:

# Values in MiB (1 GiB = 1024 MiB)
❯ crc config set cpus 6
❯ crc config set memory 16384 # 16 GiB
# Or pass flags directly at startup
❯ crc start --cpus 6 --memory 16384

To enable cluster monitoring (requires at least 14 GiB):


❯ crc config set memory 14336
❯ crc config set enable-cluster-monitoring true
❯ crc start

Deploy a Sample Application

Once the cluster is running, deploy a quick test app to confirm everything works:


❯ eval $(crc oc-env)
❯ oc login -u developer https://api.crc.testing:6443

# Deploy a simple HTTP server
❯ oc create deployment hello-crc \
  --image=registry.access.redhat.com/ubi8/httpd24

❯ oc expose deployment hello-crc --type=NodePort --port=8080
❯ oc expose svc/hello-crc

# Wait for the pod to become ready, then check the route
❯ oc get routes
❯ curl http://hello-crc-default.apps-crc.testing

Cluster Lifecycle

ActionCommand
Stop the clustercrc stop
Start the clustercrc start
Delete the clustercrc delete
Check statuscrc status
View configurationcrc config view

To upgrade CRC: download the new release, crc delete, replace the binary, then crc setup and crc start. There is no in-place upgrade.

Troubleshooting

Most issues are resolved by a clean reset:


❯ crc stop
❯ crc delete
❯ crc cleanup   # reverts DNS and host changes made by crc setup
❯ crc setup
❯ crc start

Common issues and fixes:

  • DNS not resolving: Disconnect from VPN. Ensure NetworkManager is running on Linux.
  • Expired certificates: Download the latest CRC release, crc delete, then re-setup and restart. CRC bundles expire 1 year after their release date; crc start attempts auto-renewal but may add up to 5 minutes.
  • Bundle version mismatch error on start: Run crc delete then crc start.
  • Logs for issue reporting: Attach ~/.crc/crc.log when filing a GitHub issue at github.com/crc-org/crc.

Conclusion

CRC is the fastest way to get hands-on with OpenShift 4 without a cloud account or a complex cluster setup. Three commands — crc setupcrc start, and an oc login — give you a real, production-faithful OpenShift environment on any modern laptop or desktop, including Apple Silicon Macs.

From here, explore Operators via OperatorHub, set up Tekton Pipelines, or experiment with GitOps using ArgoCD — all installable directly into your local CRC cluster. Happy shipping.

For the full official documentation, start at crc.dev/docs/introducing/.

One response to “Run OpenShift 4 Locally on Any OS Using CRC (CodeReady Containers)”

  1. […] the underlying technology, start with What is Tekton — The Kubernetes-Native CI/CD Engine and Running OpenShift 4 Locally with CRC before continuing. Everything in this guide runs on the same local CRC setup described […]

Leave a Reply

Discover more from Art of Exploitation

Subscribe now to keep reading and get access to the full archive.

Continue reading