aiperf-kube-setup

Installs and configures the aiperf-operator Helm chart on multi-node Kubernetes clusters.

631|166|Updated Apr 16, 2025
One-click install
npx skills add https://github.com/ai-dynamo/aiperf --skill aiperf-kube-setup
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: aiperf-kube-setup
Source: https://github.com/ai-dynamo/aiperf/tree/main/.agents/skills/aiperf-kube-setup
Command: npx skills add https://github.com/ai-dynamo/aiperf --skill aiperf-kube-setup

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Preparing a real multi-node Kubernetes cluster for AIPerf benchmarking involves many failure-prone steps: installing JobSet, wiring registry pull secrets, choosing node placement and storage classes, and scoping operator RBAC. This Skill guides the one-time cluster setup so the aiperf-operator installs correctly the first time instead of leaving every benchmark pod Pending.

Core Features & Use Cases

  • Cluster inventory and prerequisite checks: Verify Kubernetes version, JobSet CRDs, GPU device plugin, storage classes, node taints, and registry access before installing anything.
  • Guided Helm installation: Install JobSet v0.8.0, create operator and benchmark namespaces with pull secrets, and deploy the aiperf-operator chart from a versioned values file.
  • Pitfall avoidance and verification: Documents sharp edges around tolerations, storage classes, Kueue queue routing, RBAC scoping, and mutable image tags, plus helm test and aiperf kube preflight verification steps.
  • Use Case: A platform engineer receives a new DGX cluster with tainted GPU node pools and a private registry, and uses this Skill to install the operator, configure a 1Ti results PVC, and validate the setup with preflight checks before handing the cluster to benchmark users.

Quick Start

Use the aiperf-kube-setup skill to prepare my Kubernetes cluster for AIPerf by inventorying the nodes, installing JobSet and the aiperf-operator Helm chart with a values file, and verifying the install with preflight checks.

Frequently Asked Questions about aiperf-kube-setup

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I install the aiperf-operator on a Kubernetes cluster?▼

Install JobSet v0.8.0 first, create operator and benchmark namespaces with registry pull secrets, then run helm upgrade --install against the chart in deploy/helm/aiperf-operator using a values file. Verify with kubectl get pods, helm test, and aiperf kube preflight.

How do I configure node placement and tolerations for the aiperf-operator?▼

Set operator.nodeSelector to your node pool label and replace the chart's default tolerations with entries matching your cluster's taints, or an empty list on untainted pools. The defaults target dedicated=user-workload taints and are inert on clusters tainted differently.

Does the aiperf-operator Helm chart install JobSet automatically?▼

No, the chart grants RBAC for jobset.x-k8s.io but does not install JobSet. You must apply the JobSet v0.8.0 manifests separately with kubectl apply --server-side before installing the operator.

Why are my AIPerf benchmark pods stuck in ImagePullBackOff?▼

The chart's imagePullSecrets value covers only the operator and helm test pods, not benchmark pods. Benchmark pods take pull secrets from the CR's spec.podTemplate.imagePullSecrets or the --image-pull-secrets flag, and the secret must exist in the benchmark namespace.

Why is the aiperf-operator results PVC pending after install?▼

The storage.storageClassName default is empty, so the PVC falls back to the cluster's default StorageClass; on clusters without one it pends forever. Name a storage class explicitly, or set storage.enabled=false to use an emptyDir for test clusters.

Can I use a local Kind cluster for AIPerf operator testing?▼

Yes, Kind works for correctness and lifecycle testing using kind load with image.pullPolicy=Never, no pull secret, and the default storage class. It is not suitable for validating placement, storage, or performance behavior of a real cluster.