Advanced Cluster Management Workshop
Overview
This workshop provides hands-on exercises for Red Hat Advanced Cluster Management (RHACM) 2.15 on OpenShift 4.20.
You will learn to manage a multicluster fleet, deploy applications with ArgoCD, enforce governance policies, and integrate AI-powered operations — all from a single ACM hub.
Target versions: OpenShift 4.20 / RHACM 2.15
Base Environment
This workshop was built on top of the Advanced Cluster Management for Kubernetes Demo from the Red Hat Demo Platform. Order this catalog item to get a pre-configured hub cluster with ACM already installed, then follow the modules below.
Prerequisites
-
A running OpenShift 4.20+ cluster with RHACM 2.15 installed (see Base Environment above)
-
The
ocCLI tool installed (the setup script will attempt to install it if missing) -
The
kubectlCLI tool installed (the setup script will attempt to install it if missing) -
The
gitCLI tool installed -
A GitHub account
-
AWS credentials (for provisioning managed clusters via Hive)
Platform Compatibility
| Platform | Status |
|---|---|
RHEL 9 (Red Hat Demo Platform bastion) |
Fully tested |
macOS |
Supported, not fully tested. Scripts detect your OS and install tools via Homebrew. Some module exercises use GNU |
Windows |
Not supported. Use WSL2 or the RHEL bastion. |
Quick Start
Clone the repository and run the setup validation script:
git clone https://github.com/tosin2013/rhacm-workshop.git
cd rhacm-workshop
./setup.sh
The setup script will:
-
Detect your platform (Linux or macOS) and check for required CLI tools (
oc,kubectl,git). -
Attempt to auto-install any missing tools via
dnf(RHEL/Fedora) orbrew(macOS). -
Validate your OpenShift cluster, ACM installation, managed clusters, storage, and APIs.
-
Check AWS credentials if provisioning managed clusters (skip with
--skip-aws).
Workshop Architecture
Hub Cluster (OCP 4.20, ACM 2.15, SNO)
├── local-cluster (self-managed, labels: environment=hub)
├── standard-cluster (Hive AWS SNO, labels: environment=dev)
└── gpu-cluster (Hive AWS SNO g6.4xlarge, labels: gpu=true, accelerator=nvidia-l4)
Troubleshooting
"Too many pods" / FailedScheduling
If you see pods stuck in Pending with an event like 0/1 nodes are available: 1 Too many pods, the node has hit the Kubernetes maxPods limit (default 250 on SNO clusters). This commonly happens during Exercise 3 (Observability) or Exercise 4 (ArgoCD) when many pods are deployed.
Fix: Run the included script to raise the limit to 350. This creates a KubeletConfig and triggers a node reboot (~10-15 minutes):
bash scripts/bump-max-pods.sh 350
Monitor the rollout with oc get mcp master -w. After the node returns, pending pods will schedule automatically.
switch-to-grafana-admin.sh errors (Exercise 3)
This script lives in the multicluster-observability-operator repo, not this workshop repo. You must:
-
Clone the repo:
git clone --depth 1 https://github.com/stolostron/multicluster-observability-operator.git -
Log into the Dev Grafana URL in your browser first (the script looks up your user in the Grafana database — if you haven’t logged in, the user doesn’t exist yet)
-
Run from the
toolsdirectory:cd multicluster-observability-operator/tools && bash switch-to-grafana-admin.sh kube:admin