Kind Installation#

This guide installs AI Factory Operations Agent on a disposable local Kind cluster for development and evaluation. It uses an external OpenAI-compatible LLM and enables the local read-only Kubernetes integration. Base Command Manager, Slurm, Grafana, Prometheus, Research Agent, and Hardware Agent integrations are disabled because a fresh Kind cluster does not provide those services.

1. Prerequisites#

Install Docker, Kind, Helm 3, and kubectl. Confirm each command is available:

docker version
kind version
helm version
kubectl version --client

Ask your NVIDIA contact to invite the email address you will use with NGC to the AI Factory Operations Agent afoa-release team in the private registry. Accept the invitation while signed in with that account; use a private browser window if another NGC account is already signed in. Then create an NGC personal API key from NGC Setup > API Keys, include the Private Registry service, and confirm that the account can pull the required private registry artifacts.

Obtain an API key, /v1/chat/completions base URL, and model name from the same OpenAI-compatible LLM provider.

2. Create The Cluster#

kind create cluster --name mosaic
kubectl config use-context kind-mosaic
kubectl cluster-info

Kind creates the default standard storage class used by AI Factory Operations Agent.

3. Configure Credentials And Dependencies#

The NVIDIA API Catalog uses the public endpoint and model below. Replace the endpoint and model together when using OpenAI or another provider.

export EXTERNAL_LLM_BASE_URL='https://integrate.api.nvidia.com/v1'
export EXTERNAL_LLM_MODEL='nvidia/nemotron-3.5-super-vl-120b-a12b'
MOSAIC_CHART=oci://nvcr.io/0948643769302270/afoa-release/mosaic-stack
read -rsp 'NGC API key: ' NGC_API_KEY; echo
read -rsp 'External LLM API key: ' EXTERNAL_LLM_API_KEY; echo

printf '%s' "$NGC_API_KEY" | helm registry login nvcr.io \
  --username '$oauthtoken' \
  --password-stdin

kubectl create namespace aifoa --dry-run=client -o yaml | kubectl apply -f -
kubectl -n aifoa create secret generic mosaic-external-llm \
  --from-literal=apiKey="$EXTERNAL_LLM_API_KEY" \
  --dry-run=client -o yaml | kubectl apply -f -

4. Install AI Factory Operations Agent#

# Remove --devel for the latest stable release, or replace it with --version 0.0.1 to pin that release.
helm upgrade --install aifoa "$MOSAIC_CHART" \
  --devel \
  -n aifoa \
  --create-namespace \
  --set global.registryCredentials.create=true \
  --set-string global.registryCredentials.password="$NGC_API_KEY" \
  --set llm.mode=external \
  --set-string llm.external.baseUrl="$EXTERNAL_LLM_BASE_URL" \
  --set-string llm.external.model="$EXTERNAL_LLM_MODEL" \
  --set llm.external.existingSecret=mosaic-external-llm \
  --set modules.kubernetes.enabled=true \
  --set modules.bcm.enabled=false \
  --set modules.slurm.enabled=false \
  --set modules.observability.enabled=false \
  --set modules.grafana.enabled=false \
  --set modules.research.enabled=false \
  --set modules.diagnostics.enabled=false \
  --reset-values \
  --atomic \
  --wait \
  --timeout 12m

unset NGC_API_KEY EXTERNAL_LLM_API_KEY

For upgrades, verification, LLM configuration, module reference, UI access, and headless usage, see the shared Helm guide.

5. Delete The Cluster#

kind delete cluster --name mosaic