Lab 1.2 — Install Platform Operators

In this lab, you will install all six platform operators your workshop infrastructure needs using local Kustomize manifests bundled with the workshop repository.

Declaring operator subscriptions as Kustomize manifests — rather than clicking through OperatorHub — is how a Platform Engineer manages operator lifecycle at scale: reproducible, auditable, and GitOps-friendly.

Estimated time: 5 minutes active + ~20 minutes background installation
Persona: Platform Engineer
Fire and forget: Trigger all installs, then move immediately to Lab 3 while they complete.

What Gets Installed

Operator Purpose

Red Hat OpenShift AI (RHOAI)

Manages AI/ML workloads; provides KServe for LLM serving.

NVIDIA GPU Operator

Installs NVIDIA drivers, container toolkit, and device plugin on GPU nodes.

Node Feature Discovery (NFD)

Labels nodes with hardware features (nvidia.com/gpu.present=true). Required by GPU Operator.

Red Hat OpenShift Dev Spaces

Manages developer workspaces (cloud IDEs).

OpenShift GitOps (Argo CD)

Installs the operator so developers can create their own Argo CD instance per project.

OpenShift Pipelines (Tekton)

Container image build engine — each developer runs Tekton pipelines in their own namespace.

Developers deploy their own Argo CD instance inside their project namespace — they never touch openshift-gitops. Your only job here is to ensure the operators are available cluster-wide.

Step 1: Install All Operators

All operator manifests are bundled locally in the workshop repository. Apply them in a single command:

oc apply -k deploy/operators
Sample Output
namespace/openshift-nfd created
namespace/nvidia-gpu-operator created
namespace/redhat-ods-operator created
namespace/openshift-gitops-operator created
operatorgroup.operators.coreos.com/openshift-nfd created
operatorgroup.operators.coreos.com/nvidia-gpu-operator created
operatorgroup.operators.coreos.com/rhods-operator created
operatorgroup.operators.coreos.com/openshift-gitops-operator created
subscription.operators.coreos.com/devspaces created
subscription.operators.coreos.com/nfd created
subscription.operators.coreos.com/gpu-operator-certified created
subscription.operators.coreos.com/rhods-operator created
subscription.operators.coreos.com/openshift-gitops-operator created
subscription.operators.coreos.com/openshift-pipelines-operator-rh created

Step 2: Start Background Health Checks

Kick off watches for all six operators in the background, then move on immediately:

for check in \
  "openshift-operators:devspaces-operator:Dev Spaces" \
  "openshift-nfd:nfd-controller-manager:NFD" \
  "nvidia-gpu-operator:gpu-operator:GPU Operator" \
  "redhat-ods-operator:rhods-operator:OpenShift AI" \
  "openshift-gitops:openshift-gitops-server:GitOps (Argo CD)" \
  "openshift-pipelines:tekton-pipelines-controller:Pipelines (Tekton)"; do
  IFS=: read ns dep label <<< "$check"
  (
    oc wait deployment/${dep} -n ${ns} \
      --for=condition=Available --timeout=600s 2>/dev/null &&
    echo "  ✅  ${label} ready"
  ) &
done

echo "All operator checks running in background — move on to Lab 3."

What is Happening Under the Hood

OLM (Operator Lifecycle Manager) resolves each Subscription against the operator registry, generates an InstallPlan, installs CRDs and RBAC, then deploys the operator pod:

Subscription → InstallPlan → CRDs → RBAC → Operator Pod → Succeeded

Each operator registers new Kubernetes resource types you will use in subsequent labs: InferenceService, CheCluster, ClusterPolicy, NodeFeatureDiscovery, ArgoCD, TektonConfig.

➡️ Move immediately to Lab 3: Discover OpenShift AI while operators install in the background.