From 397eabe1fd8890fbbc16f309ce147758a9875131 Mon Sep 17 00:00:00 2001 From: Ken Owens Date: Tue, 13 Jun 2017 16:05:07 -0500 Subject: [PATCH] Create RunV + hyperstart Incorporating input from Hyper Contributors. Ready for TOC Review --- proposals/RunV + hyperstart | 123 ++++++++++++++++++++++++++++++++---- 1 file changed, 112 insertions(+), 11 deletions(-) diff --git a/proposals/RunV + hyperstart b/proposals/RunV + hyperstart index c5bfe5f..79fc39f 100644 --- a/proposals/RunV + hyperstart +++ b/proposals/RunV + hyperstart @@ -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` +