Create RunV + hyperstart

Incorporating input from Hyper Contributors. Ready for TOC Review
This commit is contained in:
Ken Owens 2017-06-13 16:05:07 -05:00 committed by GitHub
parent 5517514b28
commit 397eabe1fd

View file

@ -1,14 +1,20 @@
## Introduction
The process is the same for both existing projects which seek to move into the CNCF, and new projects to be formed within the CNCF.
Project Proposal Requirements. Projects must be proposed via GitHub. Project proposals submitted to the CNCF (see example) must provide the following information to the best of your ability:
name of project (must be unique within CNCF)
## Project description (what it does, why it is valuable, origin and history)
`runV` is a hypervisor-based container runtime implementation for [OCI](https://github.com/opencontainers/runtime-spec).
It uses hypervisors (KVM, Xen, etc.), instead of Cgroup/Namespace to spawn and run containers.
runV is able to launch a container image (Docker, OCI, etc.) into a micro VM in 100ms,
and still keeps the hardware-enforced isolation in virtualization. The combination allows container to replace
traditional VM as the building block for future cloud, which is container-native and application-centric.
`hyperstart` is a independent component for `runV` which is used as init service (PID=1) inside the VM sandbox to handle
commands from outside world. This is the key to hypervisor based container to match the design and behavior of Linux container.
'runV` is integrated with [Kubernetes](https://github.com/kubernetes/features/blob/master/release-1.6/release-notes-draft.md#node-components-1 ) as an plug-able secure CRI runtime to launch micro VM as Pod. Also, `runV` can work with `containerd` to start secure container. Besides security and isolation, `runV` also brings greater workload compatibility (kernel module, kernel version, Bring-Your-Own-Kernel) to multi-tenant environment.
* statement on alignment with CNCF charter mission
`runV` tries to enable native hypervisor-based runtime in Kubernetes and CNCF community in cloud native way. This is a important
supplement to current ecosystem especially considering the coming soon roadmaps including hard multi-tenancy, container security,
and legacy application adoption. By closely working with CNI, CRI, containerd, Prometheus etc, `runV` is looking forward to fostering
the growth of CNCF community to a wider area.
* sponsor from TOC - Ken Owens
@ -17,21 +23,116 @@ name of project (must be unique within CNCF)
* license - Apache 2
* source control - GitHub
https://github.com/hyperhq/runv
https://github.com/hyperhq/hyperstart
* external dependencies (including licenses)
`runV` only has very limited external dependencies which are mostly used as utils:
```
github.com/RoaringBitmap/roaring Apache 2.0
github.com/Sirupsen/logrus MIT
github.com/cloudfoundry/gosigar Apache 2.0
github.com/urfave/cli MIT
github.com/docker/docker/integration-cli/checker Apache 2.0
github.com/docker/docker/pkg/longpath Apache 2.0
github.com/docker/docker/pkg/mount Apache 2.0
github.com/docker/docker/pkg/reexec Apache 2.0
github.com/docker/docker/pkg/symlink Apache 2.0
github.com/docker/docker/pkg/system Apache 2.0
github.com/docker/go-units Apache 2.0
github.com/go-check/check BSD
github.com/golang/glog Apache 2.0
github.com/golang/protobuf BSD
github.com/golang/snappy Apache 2.0
github.com/hyperhq/hypercontainer-utils/hlog Apache 2.0
github.com/kardianos/osext BSD
github.com/kr/pty MIT
github.com/mschoch/smat Apache 2.0
github.com/opencontainers/runc/libcontainer/utils Apache 2.0
github.com/opencontainers/runtime-spec/specs-go Apache 2.0
github.com/philhofer/fwd MIT
github.com/rgbkrk/libvirt-go MIT
github.com/tinylib/msgp/msgp MIT
github.com/vdemeester/shakers Apache 2.0
github.com/vishvananda/netlink Apache 2.0
github.com/vishvananda/netns Apache 2.0
github.com/willf/bitset BSD 3
golang.org/x/net/ BSD 3
golang.org/x/sys/unix BSD 3
google.golang.org/grpc BSD 3
```
`hyperstart` is a tiny C implemented program which have no external dependency except Linux kernel.
* initial committers (how long working on project)
Lai Jiangshan @laijs
Gao Feng @gao-feng
Wang Xu @gnawux
All working on `runV` and `hyperstart` for 1.5+ years, with write permission.
* infrastructure requests (CI / CNCF Cluster)
* infrastructure requests (CI / CNCF Cluster): None
* communication channels (slack, irc, mailing lists)
* Mailing list: [hyper-user](https://groups.google.com/forum/#!forum/hyper-user)
* Slack: https://slack.hyper.sh
* issue tracker (GitHub by default)
* website (current version will move to project.cncf.io)
* issue tracker - GitHub
https://github.com/hyperhq/runv/issues
https://github.com/hyperhq/hyperstart/issues
* website - https://github.com/hyperhq/runv
* release methodology and mechanics
The latest stable release for runV is [0.8.1](https://github.com/hyperhq/runv/releases/tag/v0.8.1), and there have been 8 releases.
We have a 2~3 months scheduled release period, which depends on the changes in 5 main aspects:
1. CRI spec
2. OCI runtime & image spec
3. Notable change in Kubernetes `Node` or `containerd`
4. Notable change in CNI spec
5. Notable change related to hypervisor related library
The release tar file can be downloaded via: https://github.com/hyperhq/runv/releases
The latest stable release for hyperstart is [0.8.1](https://github.com/hyperhq/runv/releases/tag/v0.8.1), and there have been 10 releases.
We also have a 2~3 months scheduled release period, which depends on the changes in 3 main aspects:
1. CRI requirement
2. runV requirement
3. Notable change related to hypervisor related library
* social media accounts
@hyper_sh
* community size and any existing sponsorship
runV:
* 1034 commits
* 50 forks
* 22 Contributors
* 259 Stars
* 8 releases
* 300+ slack members
hyperstart:
* 694 commits
* 44 forks
* 23 Contributors
* 81 Stars
* 10 releases
Huawei contributed engineer time to `runV` and `hyperstart` to integrate them with containerd and Docker.
Kontron AG, a German embedded computer manufacture donated a cluster for `runV` maintainers to test `runV` + Kubernetes + OpenStack for NFV workloads.
Intel OTC contributed engineer time to improve and use `hyperstart`