AgentStack
SKILL verified MIT Self-run

Kata On Kind

skill-vinnie357-claude-skills-kata-on-kind · by vinnie357

Install Kata Containers on a local kind cluster via the kata-deploy DaemonSet, registering the kata-qemu RuntimeClass so agent-sandbox SandboxTemplates can request microVM isolation. Use when standing up a Linux dev loop for microVM-isolated pods, verifying nested-KVM prerequisites, or pairing kind with kubernetes-sigs/agent-sandbox for local hacking.

No reviews yet
0 installs
3 views
0.0% view→install

Install

$ agentstack add skill-vinnie357-claude-skills-kata-on-kind

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README — it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-vinnie357-claude-skills-kata-on-kind)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Kata On Kind? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

kata-on-kind

kind runs Kubernetes nodes as Docker containers. kata-deploy is a DaemonSet that installs the Kata Containers runtime + VM artifacts onto every node it lands on and reconfigures containerd to register the kata-qemu, kata-clh, and kata-fc RuntimeClasses. Combining the two on a Linux host gives microVM-isolated pods for local development.

When to use

  • Setting up a local microVM dev loop for kubernetes-sigs/agent-sandbox workloads.
  • Verifying that /dev/kvm is exposed and nested virtualization works.
  • Reproducing a GKE Standard + Kata production setup on a laptop before pushing to GKE.

Host prerequisites — Linux only

Kata-on-kind requires the host to expose /dev/kvm to the kind node container. macOS hosts (Apple Silicon or Intel) cannot do this — Hypervisor.framework does not expose nested KVM to a guest Linux VM. For macOS, use kina-microvm (Apple Container nodes) instead.

Linux host checklist:

# Kernel supports KVM
ls /dev/kvm

# Current user can use KVM (or run kind under sudo)
groups | grep -E '\b(kvm|libvirt)\b'

# Nested virt enabled on the CPU (Intel)
cat /sys/module/kvm_intel/parameters/nested  # expect Y or 1
# or AMD
cat /sys/module/kvm_amd/parameters/nested

# QEMU available on host (kata-deploy copies its own qemu into the node, but
# host-side qemu helps with debugging)
qemu-system-x86_64 --version

If /dev/kvm is missing, install KVM:

sudo apt-get install -y qemu-kvm libvirt-clients libvirt-daemon-system
sudo usermod -aG kvm $USER
# log out and back in for the group to take effect

Step 1 — create the kind cluster

cat kind-kata.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
    extraMounts:
      - hostPath: /dev/kvm
        containerPath: /dev/kvm
        propagation: HostToContainer
EOF

kind create cluster --name kata --config kind-kata.yaml --image kindest/node:v1.31.0
kubectl cluster-info --context kind-kata

The extraMounts block passes /dev/kvm from the host into the kind node container. Without it, kata-deploy will install but pods will fail to start with qemu errors about KVM access.

Step 2 — install kata-deploy

# Canonical manifest from the kata-containers repo
kubectl apply -k "github.com/kata-containers/kata-containers/tools/packaging/kata-deploy/kata-deploy/overlays/k3s"

# Or the base (works on most distros including kind):
kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml

# Wait for the DaemonSet to install Kata on every node
kubectl rollout status -n kube-system ds/kata-deploy --timeout=10m

kata-deploy mounts the host root and writes:

  • /opt/kata/ — Kata binaries, kernel, initrd, default config.
  • /etc/containerd/config.toml — adds containerd runtime entries.
  • Restarts containerd on the node.

Once the rollout completes, label-gates the node:

kubectl label node kata-control-plane katacontainers.io/kata-runtime=true --overwrite

Step 3 — verify RuntimeClasses

kubectl get runtimeclass
# Expect: kata-qemu, kata-clh, kata-fc

If only kata-qemu is needed, the others can stay registered without cost.

Step 4 — smoke test

kubectl run kata-test --image=busybox \
  --overrides='{"spec":{"runtimeClassName":"kata-qemu"}}' \
  -- sh -c "uname -a; sleep 5"

kubectl logs kata-test
# Expect: Linux   ...
# Kata kernel will differ from the kind node kernel — that proves microVM isolation.

kubectl delete pod kata-test

If the pod stays in ContainerCreating and kubectl describe pod kata-test shows qemu: failed to access /dev/kvm, the extraMounts step was missed.

Step 5 — install agent-sandbox on top

VERSION=v0.4.6
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${VERSION}/manifest.yaml
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${VERSION}/extensions.yaml

kubectl get crd | grep agents.x-k8s.io

Apply a SandboxTemplate that pins runtimeClassName: kata-qemu (see the templates/SandboxTemplate.kata.yaml template in this plugin). Then apply a SandboxClaim per the k8s-agent-sandbox skill.

Three RuntimeClass variants

| RuntimeClass | Hypervisor | Use case | |---|---|---| | kata-qemu | QEMU/KVM | Default. Most compatible, slowest. | | kata-clh | Cloud Hypervisor | Lighter than QEMU; faster boot. | | kata-fc | Firecracker | Minimal attack surface. Skips some Kata features (no GPU, limited devices). |

For Claude Code-as-agent workloads, kata-qemu is the default. Switch to kata-fc for hardened production if the workload doesn't need the broader QEMU device support.

Teardown

kind delete cluster --name kata

The cluster + containerd + Kata install are all inside the kind node container, so deleting the cluster removes everything.

See also

  • references/verify-kvm.md — fuller checklist for the host KVM prereqs.
  • k8s-agent-sandbox — the controller-side install + CRD model.
  • claude-code-on-sandbox — workload packaging.
  • kata-on-gke — production GKE variant of the same pattern.
  • Upstream: https://github.com/kata-containers/kata-containers

Anti-fabrication

  • Don't claim a pod is running in Kata without kubectl exec showing a kernel version that differs from the host's. Same kernel == not Kata.
  • Don't paste these commands on macOS. They won't work; the user needs kina-microvm.
  • The kata-deploy URL pattern occasionally moves between branches. Verify the link resolves before pasting in a script.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.