Ark setup cluster
Skill mckinsey/agents-at-scale-ark/.claude/skills/ark-setup-cluster
Set up and install the Ark platform in a Kubernetes cluster. Supports default mode (existing cluster) and isolated e2e testing mode (dedicated Kind cluster). Use when the user wants to install, deploy, test, or configure Ark.From its SKILL.md
npx -y skills add mckinsey/agents-at-scale-ark --skill ark-setup-clusterAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
4.2 KB, as published. Nobody here has run it
Ark Setup Cluster
Set up and install the Ark platform using ark-cli. Supports two modes:
- Default: Deploy Ark to an existing cluster
- Isolated e2e: Create a dedicated Kind cluster for testing without affecting existing clusters
When to use this skill
- User wants to install or set up Ark
- Build manager needs an isolated cluster for e2e testing
- User needs to deploy Ark to their local cluster
- User needs to troubleshoot Ark installation issues
Prerequisites
- Docker - Required for Kind cluster creation
- kubectl - Kubernetes CLI
- Helm - For installing Ark components
- Node.js - For building the ark-cli tool
- Kind - For creating local clusters (
which kind)
Step 0: Check existing cluster state
CRITICAL: Always check before creating or modifying clusters.
kubectl cluster-info 2>/dev/null
kubectl get pods -n default 2>/dev/null | head -10
kind get clusters 2>/dev/null
If a cluster is already running
Never silently destroy an existing cluster. It may have user data, demos, or in-progress work. Present options:
- Option A: Reuse existing cluster — deploy Ark into it. Fastest, but overwrites current Ark state.
- Option B: Create isolated cluster (recommended for e2e testing) —
kind create cluster --name ark-e2e-test. Fully isolated, preserves existing cluster. - Option C: Replace existing cluster — delete and recreate. Only if user explicitly confirms.
Wait for user to choose, or if called by the build manager for e2e testing, default to Option B.
Step 1: Create cluster
Default mode (existing cluster or new ark-cluster)
kind create cluster --name ark-cluster
Isolated e2e testing mode
kind create cluster --name ark-e2e-test
kubectl config use-context kind-ark-e2e-test
Configure kubeconfig (if running inside Docker/DinD)
CONTROL_PLANE_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <cluster-name>-control-plane)
kind get kubeconfig --name <cluster-name> --internal | sed "s/<cluster-name>-control-plane/$CONTROL_PLANE_IP/g" > ~/.kube/config
kubectl cluster-info
On Mac with Docker Desktop, the default kubeconfig works without IP replacement.
Step 2: Build ark-cli from source
cd agents-at-scale-ark
npm install
cd tools/ark-cli
npm install
npm run build
Step 3: Install Ark
node tools/ark-cli/dist/index.js install --yes --wait-for-ready 5m
If specific chart versions aren't published yet (e.g., on a feature branch), install components individually:
helm install ark-controller oci://mckinsey-ark-helm.jfrog.io/ark-helm/ark-controller --version <version>
helm install ark-tenant oci://mckinsey-ark-helm.jfrog.io/ark-helm/ark-tenant --version <version>
helm install ark-api oci://mckinsey-ark-helm.jfrog.io/ark-helm/ark-api --version <version>
helm install ark-dashboard oci://mckinsey-ark-helm.jfrog.io/ark-helm/ark-dashboard --version <version>
Step 4: Verify installation
kubectl get pods -n default
kubectl get services -n default
Wait until all pods show Running and Ready.
Step 5: Cleanup (e2e testing mode)
After testing is complete:
kind delete cluster --name ark-e2e-test
Restore original kubectl context if needed:
kubectl config use-context <original-context>
Troubleshooting
Docker not available
If docker info fails, Kind cannot create clusters. Report to user.
Check pod status
kubectl get pods -A -o wide | grep -E '(ark|cert-manager)'
kubectl describe pod <pod-name>
View logs
kubectl logs deployment/ark-api
kubectl logs -n ark-system deployment/ark-controller
Important
- DO NOT use
scripts/quickstart.sh— deprecated. Use ark-cli. - DO NOT use
npm install -g @agents-at-scale/ark— build from source to match the branch being tested. - CI uses K3s (Linux-only). Local Mac testing uses Kind. Generally compatible but minor differences possible.