KubeVirt website screenshot

KubeVirt

KubeVirt is a CNCF incubating project that extends Kubernetes to run traditional virtual machines alongside containers. It allows users to create, manage, and run VMs using the same Kubernetes APIs and tools used for containers. KubeVirt is ideal for migrating legacy workloads to Kubernetes without requiring application rewriting.

2 APIs 0 Features
Cloud NativeIncubatingKubernetesMigrationVirtual MachinesVirtualization

APIs

KubeVirt VM Management API

KubeVirt extends the Kubernetes API with custom resources for virtual machine management. VirtualMachine resources define VM specifications including CPU, memory, disks, and net...

KubeVirt Containerized Data Importer API

REST API for the Containerized Data Importer (CDI), which provides facilities for importing and cloning virtual machine disk images into PersistentVolumeClaims for use as KubeVi...

Collections

Pricing Plans

Kubevirt Plans Pricing

3 plans

PLANS

Rate Limits

Kubevirt Rate Limits

5 limits

RATE LIMITS

FinOps

Semantic Vocabularies

Kubevirt Context

0 classes · 10 properties

JSON-LD

Resources

🔗
Website
Website
🔗
JSONLD
JSONLD
🔗
JSONSchema
JSONSchema
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
📰
Blog
Blog
🔗
Community
Community

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: KubeVirt VM Management API
  version: 1.3.0
items:
- info:
    name: VirtualMachines
    type: folder
  items:
  - info:
      name: KubeVirt List VirtualMachines in a namespace
      type: http
    http:
      method: GET
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: labelSelector
        value: ''
        type: query
        description: Label selector to filter resources.
      - name: fieldSelector
        value: ''
        type: query
        description: Field selector to filter resources.
      - name: limit
        value: ''
        type: query
        description: Maximum number of results per page.
      - name: continue
        value: ''
        type: query
        description: Pagination continuation token.
    docs: Returns all VirtualMachine resources in the specified namespace. Each VirtualMachine defines a desired VM configuration
      and controls whether the VM is running or stopped.
  - info:
      name: KubeVirt Create a VirtualMachine
      type: http
    http:
      method: POST
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      body:
        type: json
        data: '{}'
    docs: Creates a new VirtualMachine resource defining the VM's CPU, memory, disk, network configuration, and run strategy.
      KubeVirt will create a VirtualMachineInstance when the VM is started.
  - info:
      name: KubeVirt Get a VirtualMachine
      type: http
    http:
      method: GET
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines/:name
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Returns the specified VirtualMachine resource including its current status, run strategy, and associated VirtualMachineInstance
      reference.
  - info:
      name: KubeVirt Replace a VirtualMachine
      type: http
    http:
      method: PUT
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines/:name
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
      body:
        type: json
        data: '{}'
    docs: Replaces the entire VirtualMachine resource. Changes to the template take effect on the next VM start or restart.
  - info:
      name: KubeVirt Partially update a VirtualMachine
      type: http
    http:
      method: PATCH
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines/:name
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
      body:
        type: json
        data: '{}'
    docs: Applies a partial update to the VirtualMachine using JSON Merge Patch or Strategic Merge Patch.
  - info:
      name: KubeVirt Delete a VirtualMachine
      type: http
    http:
      method: DELETE
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines/:name
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Deletes the VirtualMachine resource. If the VM is running, it will be stopped first.
- info:
    name: VMLifecycle
    type: folder
  items:
  - info:
      name: KubeVirt Start a VirtualMachine
      type: http
    http:
      method: PUT
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines/:name/start
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
      body:
        type: json
        data: '{}'
    docs: Starts a stopped VirtualMachine by creating a VirtualMachineInstance. The VM must be in the Stopped state. Optionally
      accepts a start options body to control start behavior such as pausing immediately after start.
  - info:
      name: KubeVirt Stop a VirtualMachine
      type: http
    http:
      method: PUT
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines/:name/stop
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
      body:
        type: json
        data: '{}'
    docs: Stops a running VirtualMachine by deleting its VirtualMachineInstance. Optionally accepts stop options including
      a grace period for shutdown.
  - info:
      name: KubeVirt Restart a VirtualMachine
      type: http
    http:
      method: PUT
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines/:name/restart
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
      body:
        type: json
        data: '{}'
    docs: Restarts a running VirtualMachine by stopping and starting it. The VM must currently be running.
  - info:
      name: KubeVirt Migrate a VirtualMachine
      type: http
    http:
      method: PUT
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachines/:name/migrate
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Initiates a live migration of the running VirtualMachine to another node. Creates a VirtualMachineInstanceMigration
      resource to track the migration.
  - info:
      name: KubeVirt Pause a VirtualMachineInstance
      type: http
    http:
      method: PUT
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstances/:name/pause
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Pauses the CPU execution of a running VirtualMachineInstance. The VMI remains in memory but no CPU cycles are consumed.
  - info:
      name: KubeVirt Unpause a VirtualMachineInstance
      type: http
    http:
      method: PUT
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstances/:name/unpause
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Resumes CPU execution of a paused VirtualMachineInstance.
- info:
    name: VirtualMachineInstances
    type: folder
  items:
  - info:
      name: KubeVirt List VirtualMachineInstances
      type: http
    http:
      method: GET
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstances
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: labelSelector
        value: ''
        type: query
        description: Label selector to filter resources.
      - name: fieldSelector
        value: ''
        type: query
        description: Field selector to filter resources.
      - name: limit
        value: ''
        type: query
        description: Maximum number of results per page.
    docs: Returns all running VirtualMachineInstance resources in the specified namespace. Each VMI represents an active virtual
      machine process.
  - info:
      name: KubeVirt Get a VirtualMachineInstance
      type: http
    http:
      method: GET
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstances/:name
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Returns the specified VirtualMachineInstance including its phase, network interfaces, volumes, node assignment,
      and guest OS information.
- info:
    name: VMConsole
    type: folder
  items:
  - info:
      name: KubeVirt Access VM VNC console
      type: http
    http:
      method: GET
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstances/:name/vnc
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Opens a WebSocket connection to the VNC console of the specified VirtualMachineInstance for graphical console access.
  - info:
      name: KubeVirt Access VM serial console
      type: http
    http:
      method: GET
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstances/:name/console
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Opens a WebSocket connection to the serial console of the specified VirtualMachineInstance for text-based console
      access.
- info:
    name: VirtualMachineInstanceMigrations
    type: folder
  items:
  - info:
      name: KubeVirt List VirtualMachineInstanceMigrations
      type: http
    http:
      method: GET
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstancemigrations
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: labelSelector
        value: ''
        type: query
        description: Label selector to filter resources.
      - name: limit
        value: ''
        type: query
        description: Maximum number of results per page.
    docs: Returns all VirtualMachineInstanceMigration resources in the specified namespace. Each migration resource tracks
      the state of a live migration.
  - info:
      name: KubeVirt Create a VirtualMachineInstanceMigration
      type: http
    http:
      method: POST
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstancemigrations
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      body:
        type: json
        data: '{}'
    docs: Initiates a live migration by creating a VirtualMachineInstanceMigration resource. The migration moves the VMI to
      another node while it continues running.
  - info:
      name: KubeVirt Get a VirtualMachineInstanceMigration
      type: http
    http:
      method: GET
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstancemigrations/:name
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Returns the specified migration resource including its current phase, source and target node information, and completion
      status.
  - info:
      name: KubeVirt Cancel a VirtualMachineInstanceMigration
      type: http
    http:
      method: DELETE
      url: https://{kubernetes-api-server}/apis/kubevirt.io/v1/namespaces/:namespace/virtualmachineinstancemigrations/:name
      params:
      - name: namespace
        value: ''
        type: path
        description: The Kubernetes namespace of the resource.
      - name: name
        value: ''
        type: path
        description: The name of the resource.
    docs: Cancels an in-progress migration by deleting the VirtualMachineInstanceMigration resource.
bundled: true