KubeVirt KubeVirt is a virtual machine management add-on for Kubernetes. The aim is to provide a common ground for virtualization solutions on top of Kubernetes. Introduction Virtualization extension for Kubernetes…
KubeVirt







KubeVirt is a virtual machine management add-on for Kubernetes.
The aim is to provide a common ground for virtualization solutions on top of
Kubernetes.
Introduction
Virtualization extension for Kubernetes
At its core, KubeVirt extends [Kubernetes][k8s] by adding
additional virtualization resource types (especially the VM type) through
[Kubernetes's Custom Resource Definitions API][crd].
By using this mechanism, the Kubernetes API can be used to manage these VM
resources alongside all other resources Kubernetes provides.
The resources themselves are not enough to launch virtual machines.
For this to happen the _functionality and business logic_ needs to be added to
the cluster. The functionality is not added to Kubernetes itself, but rather
added to a Kubernetes cluster by _running_ additional controllers and agents
on an existing cluster.
The necessary controllers and agents are provided by KubeVirt.
As of today KubeVirt can be used to declaratively
* Create a predefined VM
* Schedule a VM on a Kubernetes cluster
* Launch a VM
* Stop a VM
* Delete a VM
[](https://asciinema.org/a/497168)
To start using KubeVirt
Try our quickstart at kubevirt.io.
See our user documentation at kubevirt.io/docs.
Once you have the basics, you can learn more about how to run KubeVirt and its newest features by taking a look at:
* KubeVirt blog
* KubeVirt Youtube channel
To start developing KubeVirt
To set up a development environment please read our
[Getting Started Guide](docs/getting-started.md). To learn how to contribute, please read our contribution guide.
You can learn more about how KubeVirt is designed (and why it is that way),
and learn more about the major components by taking a look at
[our developer documentation](docs/):
* [Architecture](docs/architecture.md) - High-level view on the architecture
* [Components](docs/components.md) - Detailed look at all components
* API Reference
Useful links
The KubeVirt SIG-release repo is responsible for information regarding upcoming and previous releases.
* KubeVirt to Kubernetes version support matrix - Verify the versions of KubeVirt that are built and supported for your version of Kubernetes
* Noteworthy changes for the next KubeVirt release - Pre-release notes for the upcoming release
* Release schedule - For our current and previous releases
Community
If you got enough of code and want to speak to people, then you got a couple
of options:
- Follow us on Twitter
- Chat with us on Slack via #virtualization @ kubernetes.slack.com
- Discuss with us on the kubevirt-dev Google Group
- Stay informed about designs and upcoming events by watching our community content
Related resources
* [Kubernetes][k8s]
* [Libvirt][libvirt]
* [Cockpit][cockpit]
* [kubevirt.core][kubevirt.core] Ansible collection
Submitting patches
When sending patches to the project, the submitter is required to certify that
they have the legal right to submit the code. This is achieved by adding a line
Signed-off-by: Real Name
to the bottom of every commit message. Existence of such a line certifies
that the submitter has complied with the Developer's Certificate of Origin 1.1,
(as defined in the file docs/developer-certificate-of-origin).
This line can be automatically added to a commit in the correct format, by
using the '-s' option to 'git commit'.
License
KubeVirt is distributed under the
Apache License, Version 2.0.
This file is part of the KubeVirt project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright The KubeVirt Authors.
[//]: # (Reference links)
[k8s]: https://kubernetes.io
[crd]: https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/
[ovirt]: https://www.ovirt.org
[cockpit]: https://cockpit-project.org/
[libvirt]: https://www.libvirt.org
[kubevirt.core]: https://github.com/kubevirt/kubevirt.core
FOSSA Status

Members
-
kubevirt ★ PINNED
Kubernetes Virtualization API and runtime in order to define and manage virtual machines.
Go ★ 6.9k 9h agoExplain → -
enhancements ★ PINNED
Tracking KubeVirt related enhancements and issues
★ 14 1mo agoExplain → -
user-guide ★ PINNED
This user guide will walk you through installation and various features.
Makefile ★ 73 5d agoExplain → -
community ★ PINNED
Community content
Go ★ 62 12d agoExplain → -
api-reference ★ PINNED
API documentation
HTML ★ 9 23h agoExplain → -
project-infra ★ PINNED
Project infrastructure administrative tools
Go ★ 41 12h agoExplain → -
containerized-data-importer
Data Import Service for kubernetes, designed with kubevirt in mind.
Go ★ 522 2d agoExplain → -
hyperconverged-cluster-operator
Operator pattern for managing multi-operator products
Go ★ 184 1h agoExplain → -
demo ▣
Easy to use KubeVirt demo based on minikube.
Shell ★ 110 1y agoExplain → -
kubevirtci
Contains cluster definitions and client tools to quickly spin up and destroy ephemeral and scalable k8s and ocp clusters for testing
Shell ★ 96 3d agoExplain → -
kubevirt-ansible ▣
Set of Ansible roles & playbooks for KubeVirt deployment
Go ★ 92 3y agoExplain → -
cluster-network-addons-operator
Deploy additional networking components on top of your Kubernetes cluster
Go ★ 91 2d agoExplain → -
common-templates
Templates for running VMs on KubeVirt
Shell ★ 90 1mo agoExplain → -
cloud-provider-kubevirt
Kubernetes cloud-provider for KubeVirt
Go ★ 87 13d agoExplain → -
hostpath-provisioner
No description.
Go ★ 85 3d agoExplain → -
csi-driver
KubeVirt CSI driver
Go ★ 60 2h agoExplain → -
hostpath-provisioner-operator
No description.
Go ★ 56 8d agoExplain → -
macvtap-cni
A CNI + device plugin combo for virtualization workloads on Kubernetes.
Go ★ 55 2mo agoExplain → -
client-go
Go client for kubevirt
Go ★ 48 23h agoExplain → -
containerdisks
Officially built and maintained containerdisks of the KubeVirt project
Go ★ 48 2d agoExplain → -
kubevirt-velero-plugin
Plugin to Velero which automates backing up and restoring KubeVirt/CDI objects
Go ★ 47 3d agoExplain → -
kubernetes-device-plugins ▣
Incubating: A number of Kubernetes device-plugins developed and useful for KubeVirt
Go ★ 47 6y agoExplain → -
node-maintenance-operator
A Kubernetes Operator to manage node maintenance through NodeMaintenance custom resources
Go ★ 45 1mo agoExplain → -
kubevirt-tekton-tasks
VM specific tasks for Tekton Pipelines
Go ★ 42 1d agoExplain → -
common-instancetypes
Instancetypes and preferences for running VMs on KubeVirt
Go ★ 42 3d agoExplain → -
ssp-operator
Operator that deploys additional KubeVirt resources
Go ★ 40 3d agoExplain → -
libvirt ▣
DEPRECATED Vanilla dockerized libvirt image, used as a base for kubevirt
Shell ★ 40 4y agoExplain → -
client-python
An auto-generated python SDK to interact with KubeVirt resources
Python ★ 35 23h agoExplain → -
kubevirt.github.io
KubeVirt website repo, documentation at https://kubevirt.io/user-guide/
HTML ★ 35 13d agoExplain → -
device-plugin-manager
Incubating: A framework for writing Kubernetes Device Plugins
Go ★ 34 1mo agoExplain → -
kubevirt-tutorial ▣
Demo that guides users through an end to end KubeVirt experience.
HCL ★ 33 1y agoExplain → -
terraform-provider-kubevirt
Terraform provider for Kubevirt platform
Go ★ 30 2mo agoExplain → -
monitoring
KubeVirt monitoring dashboards
Go ★ 29 4h agoExplain → -
web-ui ⑂ ▣
OpenShift Cluster Console UI
TypeScript ★ 27 6y agoExplain → -
kubevirt.core
Lean Ansible bindings for KubeVirt
Python ★ 20 5d agoExplain → -
vm-import-operator ▣
Operator for importing VMs from RHV to KubeVirt
Go ★ 16 2y agoExplain → -
kubectl-virt-plugin
Holds all scripts to create packages and manifest file required for publishing the virtctl binary as a krew package for kubectl.
Shell ★ 15 11d agoExplain → -
api
KubeVirt API definition
Go ★ 14 23h agoExplain → -
must-gather
A client tool for gathering KubeVirt informations in a Kubernetes or OpenShift cluster
Shell ★ 14 1mo agoExplain → -
vAdvisor ▣
VM monitoring application based on WSGI, libvirt, flask and gevent, inspired by cAdvisor.
Python ★ 14 9y agoExplain → -
application-aware-quota
Empower users to customize and manage resource quotas per component in Kubernetes, utilizing the scheduling gates feature.
Go ★ 13 3d agoExplain → -
vm-console-proxy
Proxy for VM console connection.
Go ★ 13 6d agoExplain → -
web-ui-operator ▣
Operator for web-ui
Go ★ 12 1y agoExplain → -
ci-health
Metrics about CI performance in repositories using Prow
Go ★ 11 53m agoExplain → -
kubesecondarydns
DNS for KubeVirt VirtualMachines secondary interfaces
Go ★ 10 10d agoExplain → -
machine-remediation ▣
Incubating: Deploy all components to recognize unhealthy machines and apply different remediation strategies on it
Go ★ 10 1y agoExplain → -
bridge-marker
No description.
Shell ★ 9 10d agoExplain → -
web-ui-components ▣
https://kubevirt.io/web-ui-components
JavaScript ★ 8 6y agoExplain → -
cloud-image-builder ▣
Scripts and playbooks for creating and testing cloud images containing Kubernetes and KubeVirt
Shell ★ 7 1y agoExplain → -
managed-tenant-quota
No description.
Go ★ 7 1y agoExplain → -
cluster-api-provider-external ▣
The external provider implementation of the Cluster Management API.
Go ★ 7 1y agoExplain → -
ansible-kubevirt-modules ▣
Ansible modules for managing KubeVirt objects in Kubernetes clusters
Shell ★ 7 1y agoExplain → -
kubevirt-ssp-operator ▣
No description.
Shell ★ 7 3y agoExplain → -
virt-template
A KubeVirt add-on providing native, user-friendly templating workflows for KubeVirt virtual machines.
Go ★ 6 2d agoExplain → -
charts
Helm charts for KubeVirt
★ 6 1y agoExplain → -
redfish-controller
A Redfish-compatible API server for KubeVirt/OpenShift Virtualization that enables out-of-band management of virtual machines through standard Redfish protocols.
Go ★ 5 1mo agoExplain → -
containerized-data-importer-api
Containerized Data Importer API definitions
Go ★ 5 5d agoExplain → -
k8s-seccomp-generator
Generates seccomp profile for kubernetes pods
Go ★ 5 2y agoExplain → -
katacoda-scenarios
Training scenarios for https://katacoda.com/kubevirt
Shell ★ 5 1y agoExplain → -
run ▣
This repository is backing run.kubevirt.io.
Shell ★ 5 1y agoExplain → -
ipam-extensions
A KubeVirt extension to create (and manage the lifecycle of) `IPAMClaim`s on behalf of KubeVirt virtual machines.
Go ★ 4 19d agoExplain → -
tekton-tasks-operator
Operator which deploys kubevirt-tekton-tasks in cluster
Go ★ 4 2y agoExplain → -
controller-lifecycle-operator-sdk
No description.
Go ★ 4 1y agoExplain → -
v2v-job ▣
A job to allow importing a VM from a support virt-v2v source into KubeVirt.
Shell ★ 4 8y agoExplain → -
kubevirt-operator ▣
Incubating: The KubeVirt Operator
Go ★ 4 7y agoExplain → -
kubevirt-migration-controller
No description.
Go ★ 3 1mo agoExplain → -
libguestfs-appliance
Builds libguestfs appliances and container images to be consumed by other kubevirt projects
Dockerfile ★ 3 1y agoExplain → -
web-ui-design ▣
Images and Markdown documenting proposed user workflows for the UI
HTML ★ 3 1y agoExplain → -
qe-tools ▣
Different Ginkgo reporters for QE purposes
Go ★ 3 1y agoExplain → -
kubevirt-template-validator ▣
validating webhook to check templates sent to the cluster.
Go ★ 3 4y agoExplain → -
sig-release
A repo to hold and organize all the information required for KubeVirt releases
Go ★ 2 9h agoExplain → -
cdi-api-reference
Containerized Data Importer API Reference
HTML ★ 2 5d agoExplain → -
kubevirt-migration-operator
No description.
Go ★ 2 7d agoExplain → -
dra-pci-driver
DRA device driver for PCI passthrough devices
Go ★ 2 1y agoExplain → -
cluster-api-provider-kubevirt ⑂ ▣
Cluster API Provider for KubeVirt
Go ★ 2 4y agoExplain → -
cdi-operator ▣
No description.
Makefile ★ 2 1y agoExplain → -
test-infra-containers ▣
All containers which are useful for testing (tgtd, cinder, ceph, gluster, ...)
Dockerfile ★ 2 1y agoExplain → -
test-benchmarks ▣
setup to create reproducible benchmarks tests with containers and KubeVirt VMs
Go ★ 2 1y agoExplain → -
cockpit-demo ▣
This is a demonstration of how KubeVirt could be displayed in Cockpit
JavaScript ★ 2 9y agoExplain → -
virt-template-client-go
client-go package for kubevirt.io/virt-template
Go ★ 1 1d agoExplain → -
ci-performance-benchmarks
Store for performance results of perf-report-creator
HTML ★ 1 2d agoExplain → -
kubevirt-aie
A temporary KubeVirt fork aligned with the CentOS Stream Accelerated Infrastructure Enablement SIG.
Go ★ 1 1d agoExplain → -
virt-template-api
api package for kubevirt.io/virt-template
Go ★ 1 2d agoExplain → -
.github
Default Community health files.
★ 1 2y agoExplain → -
node-labeller ▣
Node-Labeller is deprecated and is moved to kubevirt repository
Go ★ 1 3y agoExplain → -
virt-template-engine
template engine package for kubevirt.io/virt-template
Go ★ 0 1d agoExplain → -
kubevirt-observability-controller
No description.
Go ★ 0 1d agoExplain → -
vm-file-restore-operator
A Kubernetes operator for KubeVirt that enables file-level restore operations for virtual machines from various backup sources.
Go ★ 0 4d agoExplain → -
vdpa-network-binding-plugin
KubeVirt network binding plugin providing network vhost-vdpa interface support to VMs.
Go ★ 0 12d agoExplain → -
kubevirt-aie-webhook
A webhook to inject virt-launcher images produced by the kubevirt-aie project
Go ★ 0 1mo agoExplain → -
iommufd-device-plugin
A Kubernetes device plugin for iommufd devices
Go ★ 0 1mo agoExplain → -
alpine-make-vm-image
No description.
Shell ★ 0 2mo agoExplain → -
application-aware-quota-api
Application Aware Quota API definition
Go ★ 0 5d agoExplain → -
origin-web-console ⑂ ▣
Web Console for the OpenShift Application Platform
JavaScript ★ 0 1y agoExplain → -
irsa-mutation-webhook
Webhook to mutate virt-launcher pods by injecting a virtiofs container for IRSA token sharing
Go ★ 0 1y agoExplain → -
k8s-start ▣
k8s playground
★ 0 2y agoExplain → -
gluster-kubernetes ⑂ ▣
GlusterFS Native Storage Service for Kubernetes
Shell ★ 0 1y agoExplain → -
origin-web-console-server ⑂ ▣
No description.
Go ★ 0 1y agoExplain → -
external-storage ⑂ ▣
External storage plugins, provisioners, and helper libraries
Go ★ 0 1y agoExplain → -
cpu-nfd-plugin ▣
NFD plugin, which list all supported cpu models on host.
Go ★ 0 1y agoExplain → -
storage-demo ▣
Incubating: Container images for a kubevirt storage demo environment
Shell ★ 0 1y agoExplain → -
krew-index ⑂ ▣
Plugin index for https://github.com/kubernetes-sigs/krew. This repo is for plugin maintainers.
★ 0 1y agoExplain → -
blog ⑂ ▣
A web application to build your blog on GitHub
HTML ★ 0 8y agoExplain → -
cockpit ⑂ ▣
There's code a goin' on
JavaScript ★ 0 8y agoExplain → -
manageiq-providers-kubevirt ⑂ ▣
ManageIQ plugin for the Kubevirt provider.
Ruby ★ 0 8y agoExplain →
No repos match these filters.