{"id":13509580,"url":"https://github.com/Mirantis/virtlet","last_synced_at":"2025-03-30T13:32:28.588Z","repository":{"id":43879614,"uuid":"66279588","full_name":"Mirantis/virtlet","owner":"Mirantis","description":"Kubernetes CRI implementation for running VM workloads","archived":false,"fork":false,"pushed_at":"2020-04-18T12:57:55.000Z","size":6931,"stargazers_count":748,"open_issues_count":7,"forks_count":128,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-03-28T05:12:21.321Z","etag":null,"topics":["cri","k8s","kubernetes","libvirt","virtualization","vm","vms"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mirantis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-22T14:27:13.000Z","updated_at":"2025-03-23T22:49:43.000Z","dependencies_parsed_at":"2022-09-01T22:31:32.677Z","dependency_job_id":null,"html_url":"https://github.com/Mirantis/virtlet","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mirantis%2Fvirtlet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mirantis%2Fvirtlet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mirantis%2Fvirtlet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mirantis%2Fvirtlet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mirantis","download_url":"https://codeload.github.com/Mirantis/virtlet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245972703,"owners_count":20702722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cri","k8s","kubernetes","libvirt","virtualization","vm","vms"],"created_at":"2024-08-01T02:01:09.888Z","updated_at":"2025-03-30T13:32:28.558Z","avatar_url":"https://github.com/Mirantis.png","language":"Go","readme":"# virtlet [![CircleCI](https://circleci.com/gh/Mirantis/virtlet/tree/master.svg?style=svg)](https://circleci.com/gh/Mirantis/virtlet/tree/master) [![Maintainability](https://api.codeclimate.com/v1/badges/7e40b1e1d7cd78c86a50/maintainability)](https://codeclimate.com/github/Mirantis/virtlet/maintainability) [![Go Report Card](https://goreportcard.com/badge/github.com/Mirantis/virtlet)](https://goreportcard.com/report/github.com/Mirantis/virtlet)\n\nVirtlet is a Kubernetes runtime server which allows you to run VM workloads, based on QCOW2 images.\n\nIt is possible to run Virtlet by following the instructions from either [Setting up the environment](https://docs.virtlet.cloud/dev/setup/) or [Deploying Virtlet as a DaemonSet on kubeadm-dind-cluster](https://docs.virtlet.cloud/user-guide/virtlet-on-kdc/) documents. There's also [separate document](https://docs.virtlet.cloud/user-guide/real-cluster/) describing the process of installing Virtlet on real clusters.\n\n[See here](https://docs.virtlet.cloud/dev/architecture/) for the description of Virtlet architecture.\n\n## Description \u0026 Documentation\n\n[See here](https://docs.virtlet.cloud) for user-facing Virtlet description and documentation.\n\n## Community\n\nYou can join\n[#virtlet](https://kubernetes.slack.com/messages/virtlet/) channel on\n[Kubernetes Slack](https://kubernetes.slack.com/messages)\n(register at [slack.k8s.io](http://slack.k8s.io) if you're not in k8s group already). Both the\nusers and developers are welcome!\n\n## Getting started with Virtlet\n\nTo try out Virtlet follow the instructions from [Setting up the environment](https://docs.virtlet.cloud/dev/setup/) and [try out examples](examples/README.md) documents.\n\n### Virtlet introduction video\n\nYou can watch and listen to Virtlet demo video that was recorded on Kubernetes Community Meeting [here](https://youtu.be/Sl1Y0N-Tj1A?t=94).\n\n### Command line interface\n\nVirtlet comes with a helper tool,\n[virtletctl](https://docs.virtlet.cloud/reference/virtletctl/), that helps managing the VM pods. The binaries are available for Linux and Mac OS X in the [Releases](https://github.com/Mirantis/virtlet/releases) section.\nYou can also install virtletctl as a kubectl plugin:\n```\nvirtletctl install\n```\n\nAfter that you can use `kubectl plugin virt` instead of `virtletctl` (`plugin` subcommand will not be necessary when kubectl plugins become stable):\n```\nkubectl plugin virt ssh cirros@cirros-vm -- -i examples/vmkey\n```\n\n### Virtlet usage demo\n\nYou can watch sample usage session under [this](https://asciinema.org/a/1a6xp5j4o22rnsx9wpvumd4kt) link.\n\nYou can also give Virtlet a quick try using our demo script (requires Docker 1.12+):\n```\nwget https://raw.githubusercontent.com/Mirantis/virtlet/master/deploy/demo.sh\nchmod +x demo.sh\n# './demo.sh --help' displays the description\n./demo.sh\n```\n\nThe demo will start a test cluster, deploy Virtlet on it and then boot a [CirrOS](https://launchpad.net/cirros) VM there. You may access sample nginx server via `curl http://nginx.default.svc.cluster.local` from inside the VM. To disconnect from VM, press `Ctrl-D`. After the VM has booted, you can also use `virtletctl` tool to connect to its SSH server:\n```\nvirtletctl ssh cirros@cirros-vm -- -i examples/vmkey [command...]\n```\n\nBy default, CNI bridge plugin is used for cluster networking. It's also possible to override this with `calico`, `flannel` or `weave` plugin, e.g.:\n```\nCNI_PLUGIN=flannel ./demo.sh\n```\n\nThere's also an option to deploy Virtlet on master node of the DIND\ncluster, which can be handy e.g. if you don't want to use worker nodes\n(i.e. start the cluster with `NUM_NODES=0`):\n```\nVIRTLET_ON_MASTER=1 ./demo.sh\n```\n\nThe demo script will check for KVM support on the host and will make Virtlet use KVM if it's available on Docker host. If KVM is not available, plain QEMU will be used.\n\nThe demo is based on [kubeadm-dind-cluster](https://github.com/kubernetes-sigs/kubeadm-dind-cluster) project. **Docker btrfs storage driver is currently unsupported.** Please refer to `kubeadm-dind-cluster` documentation for more info.\n\nYou can remove the test cluster with `./dind-cluster-v1.14.sh clean` when you no longer need it.\n\n## External projects using Virtlet\nThere are some external projects using Virtlet already.\nOne interesting usecase is that of [MIKELANGELO project](https://www.mikelangelo-project.eu/) that\nruns [OSv unikernels](http://osv.io) on Kubernetes using Virtlet. Unikernels are special case of VMs\nthat are extremely small in size (20MB or so) and can only run a single process each. Nevertheless,\nVirtlet has no problems handling them on Kubernetes as demonstrated in this\n[video](https://www.youtube.com/watch?v=L-QrxDJSZBA). Microservice Demo is available\n[here](https://github.com/mikelangelo-project/osv-microservice-demo#deploying-unikernels-on-kubernetes).\n\n## Need any help with Virtlet?\n\nIf you will encounter any issue when using Virtlet please look into our [issue tracker](http://github.com/Mirantis/virtlet/issues) on github. If your case is not mentioned there - please fill new issue for it. In case of any questions you may also use [#virtlet](https://kubernetes.slack.com/messages/virtlet/) channel on\n[Kubernetes Slack](https://kubernetes.slack.com/messages).\n\n## Contributing\n\nVirtlet is an open source project and any contributions are welcomed. Look into [Contributing guidelines](CONTRIBUTING.md) document for our guidelines and further instructions on how to set up Virtlet development environment.\n\n## Licensing\n\nUnless specifically noted, all parts of this project are licensed under the [Apache 2.0 license](LICENSE).\n\n","funding_links":[],"categories":["Container Support","Go","kubernetes","Runtimes \u0026 Platforms"],"sub_categories":["[Jenkins](#jenkins)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMirantis%2Fvirtlet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMirantis%2Fvirtlet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMirantis%2Fvirtlet/lists"}