ark-setup
Installs and configures the Ark platform in local Kubernetes environments.
Install
mkdir -p .claude/skills/ark-setup && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4367" && unzip -o skill.zip -d .claude/skills/ark-setup && rm skill.zipInstalls to .claude/skills/ark-setup
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
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.Key capabilities
- →Deploy Ark to existing clusters
- →Create isolated Kind clusters for testing
- →Build ark-cli from source
- →Verify pod and service status
- →Perform cluster cleanup
How it works
The tool uses ark-cli to manage Ark lifecycle, supporting both existing cluster deployment and isolated Kind cluster creation for testing.
Inputs & outputs
When to use ark-setup
- →Deploying Ark to local cluster
- →Configuring Ark environment variables
- →Verifying Ark installation
About this skill
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.
When not to use it
- →Do not use deprecated quickstart scripts
- →Do not use global npm installations for testing
Prerequisites
Limitations
- →Requires Docker for Kind cluster creation
- →CI uses K3s while local testing uses Kind, which may cause minor compatibility differences
How it compares
This workflow automates the build and deployment process from source, whereas manual installation requires individual Helm chart management and manual configuration.
Compared to similar skills
ark-setup side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| ark-setup (this skill) | 1 | 4mo | Review | Intermediate |
| storage-networking | 6 | 7mo | Review | Advanced |
| kubernetes-architect | 6 | 4mo | No flags | Advanced |
| gitops-workflow | 5 | 2mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by mckinsey
View all by mckinsey →You might also like
storage-networking
pluginagentmarketplace
Master Kubernetes storage management and networking architecture. Learn persistent storage, network policies, service discovery, and ingress routing.
kubernetes-architect
sickn33
Expert Kubernetes architect specializing in cloud-native infrastructure, advanced GitOps workflows (ArgoCD/Flux), and enterprise container orchestration. Masters EKS/AKS/GKE, service mesh (Istio/Linkerd), progressive delivery, multi-tenancy, and platform engineering. Handles security, observability, cost optimization, and developer experience. Use PROACTIVELY for K8s architecture, GitOps implementation, or cloud-native platform design.
gitops-workflow
sickn33
Implement GitOps workflows with ArgoCD and Flux for automated, declarative Kubernetes deployments with continuous reconciliation. Use when implementing GitOps practices, automating Kubernetes deployments, or setting up declarative infrastructure management.
deployment-engineer
sickn33
Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.
k8s-manifest-generator
wshobson
Create production-ready Kubernetes manifests for Deployments, Services, ConfigMaps, and Secrets following best practices and security standards. Use when generating Kubernetes YAML manifests, creating K8s resources, or implementing production-grade Kubernetes configurations.
devops
mrgoonie
Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI/CD, GitOps, security audit.