k8s-kubevirt
Tools for lifecycle management, migration, and monitoring of VMs on a K8s cluster.
Install
mkdir -p .claude/skills/k8s-kubevirt && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7303" && unzip -o skill.zip -d .claude/skills/k8s-kubevirt && rm skill.zipInstalls to .claude/skills/k8s-kubevirt
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.
Virtual machine management with KubeVirt on Kubernetes. Use when creating, managing, or troubleshooting VMs running on Kubernetes clusters.Key capabilities
- →Detect KubeVirt installation
- →List and start virtual machines
- →Perform live migration of VMs
- →Pause and restart virtual machine instances
- →Manage data volumes and instance types
How it works
The skill utilizes KubeVirt-specific tools to manage the lifecycle of virtual machines running on Kubernetes, including migration and volume management.
Inputs & outputs
When to use k8s-kubevirt
- →Starting VMs on K8s
- →Live migrating virtual machines
- →Troubleshooting VM status
About this skill
KubeVirt VM Management
Manage virtual machines on Kubernetes using kubectl-mcp-server's KubeVirt tools (13 tools).
When to Apply
Use this skill when:
- User mentions: "KubeVirt", "virtual machine", "VM", "VirtualMachineInstance", "VMI"
- Operations: starting/stopping VMs, live migration, managing VM lifecycle
- Keywords: "VM on Kubernetes", "virtualization", "data volume", "instance type"
Priority Rules
| Priority | Rule | Impact | Tools |
|---|---|---|---|
| 1 | Detect KubeVirt installation first | CRITICAL | kubevirt_detect_tool |
| 2 | Check VM status before operations | HIGH | kubevirt_vm_get_tool |
| 3 | List VMIs for running VMs | HIGH | kubevirt_vmis_list_tool |
| 4 | Use instance types for consistency | MEDIUM | kubevirt_instancetypes_list_tool |
Quick Reference
| Task | Tool | Example |
|---|---|---|
| Detect KubeVirt | kubevirt_detect_tool | kubevirt_detect_tool() |
| List VMs | kubevirt_vms_list_tool | kubevirt_vms_list_tool(namespace) |
| Start VM | kubevirt_vm_start_tool | kubevirt_vm_start_tool(name, namespace) |
| Live migrate VM | kubevirt_vm_migrate_tool | kubevirt_vm_migrate_tool(name, namespace) |
Check Installation
kubevirt_detect_tool()
List VMs
# List VirtualMachines
kubevirt_vms_list_tool(namespace="default")
# List VirtualMachineInstances (running VMs)
kubevirt_vmis_list_tool(namespace="default")
Get VM Details
# Get VM definition
kubevirt_vm_get_tool(name="my-vm", namespace="default")
# Shows:
# - Spec (CPU, memory, disks)
# - Running status
# - Conditions
VM Lifecycle
Start VM
kubevirt_vm_start_tool(name="my-vm", namespace="default")
Stop VM
kubevirt_vm_stop_tool(name="my-vm", namespace="default")
Restart VM
kubevirt_vm_restart_tool(name="my-vm", namespace="default")
Pause/Unpause VM
# Pause (freeze CPU)
kubevirt_vm_pause_tool(name="my-vm", namespace="default")
# Unpause
kubevirt_vm_unpause_tool(name="my-vm", namespace="default")
Live Migration
# Migrate VM to another node
kubevirt_vm_migrate_tool(name="my-vm", namespace="default")
# Check migration status
kubevirt_vmis_list_tool(namespace="default")
# Look for: migrationState
Instance Types
# List available instance types
kubevirt_instancetypes_list_tool()
# Instance types define:
# - CPU count
# - Memory size
# - GPU allocation
Data Volumes
# List data volumes (persistent VM disks)
kubevirt_datavolumes_list_tool(namespace="default")
# List data sources (golden images)
kubevirt_datasources_list_tool(namespace="default")
Create VM
kubectl_apply(manifest="""
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: my-vm
namespace: default
spec:
running: true
template:
metadata:
labels:
kubevirt.io/vm: my-vm
spec:
domain:
cpu:
cores: 2
memory:
guest: 4Gi
devices:
disks:
- name: rootdisk
disk:
bus: virtio
- name: cloudinitdisk
disk:
bus: virtio
volumes:
- name: rootdisk
containerDisk:
image: quay.io/kubevirt/fedora-cloud-container-disk-demo
- name: cloudinitdisk
cloudInitNoCloud:
userData: |
#cloud-config
password: fedora
chpasswd: { expire: False }
""")
Create VM with DataVolume
kubectl_apply(manifest="""
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: vm-with-pvc
namespace: default
spec:
running: true
dataVolumeTemplates:
- metadata:
name: vm-with-pvc-disk
spec:
source:
http:
url: https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
template:
spec:
domain:
cpu:
cores: 2
memory:
guest: 4Gi
devices:
disks:
- name: rootdisk
disk:
bus: virtio
volumes:
- name: rootdisk
dataVolume:
name: vm-with-pvc-disk
""")
Troubleshooting
VM Not Starting
1. kubevirt_vm_get_tool(name, namespace) # Check status/conditions
2. kubevirt_vmis_list_tool(namespace) # Check VMI exists
3. get_events(namespace) # Check events
4. get_pods(namespace, label_selector="kubevirt.io/vm=<name>") # Check virt-launcher
Migration Failed
1. kubevirt_vmis_list_tool(namespace) # Check migrationState
2. get_events(namespace) # Check events
3. # Common issues:
# - No suitable target node
# - Insufficient resources
# - Shared storage required
Related Skills
- k8s-storage - Persistent storage
- k8s-operations - kubectl operations
When not to use it
- →Managing standard Kubernetes pods
- →Non-virtualized container workloads
Prerequisites
Limitations
- →Requires KubeVirt installed in the cluster
How it compares
It provides a dedicated interface for VM-specific operations like live migration that are not native to standard Kubernetes pod management.
Compared to similar skills
k8s-kubevirt side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| k8s-kubevirt (this skill) | 1 | 6mo | No flags | Advanced |
| 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 rohitg00
View all by rohitg00 →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.
devops-iac-engineer
davila7
Implements infrastructure as code using Terraform, Kubernetes, and cloud platforms. Designs scalable architectures, CI/CD pipelines, and observability solutions. Provides security-first DevOps practices and site reliability engineering guidance.
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.
dstack
dstackai
dstack is an open-source control plane for GPU provisioning and orchestration across GPU clouds, Kubernetes, and on-prem clusters.