Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proposals: add rkt #33

Merged
merged 4 commits into from
Mar 29, 2017
Merged

proposals: add rkt #33

merged 4 commits into from
Mar 29, 2017

Conversation

jonboulle
Copy link
Contributor

No description provided.


Core: @alban, @philips, @squeed, @dgonyeo, @euank, @iaguis, @jonboulle, @krnowak, @lucab, @s-urbaniak, @steveeJ, @yifan-gu

*Infrastructure requirements*: CI might be useful; currently CI is sponsored by CoreOS <https://jenkins-rkt-public.prod.coreos.systems/#>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any particular reason you use your own hosted Jenkins vs say Travis CI or other systems out there?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, because rkt is complicated :-). Since it's very invasive to a system, we want to do tests in VMs; further, we test on different OS platforms (e.g. Debian/Fedora/etc) and hence spin up EC2 instances for each run.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reference, we use travis-ci + semaphore-ci + jenkins as they cover different testing scenarios. Only the latter is on private infrastructure though.

@caniszczyk
Copy link
Contributor

RFC @cncf/toc


rkt is an application container engine developed for modern production cloud-native environments. It features a pod-native approach, a pluggable execution architecture, and a well-defined surface area that makes it ideal for integration with other systems.

The core execution unit of rkt is the _pod_, a collection of one or more applications executing in a shared context. (rkt's pods are synoymous with the concept in the Kubernetes orchestration system). rkt allows users to apply different configurations (like isolation parameters) at both pod-level and at the more granular per-application level. rkt's architecture means that each pod executes directly in the classic Unix process model (i.e. there is no central daemon), in a self-contained, isolated environment.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"self-contained, isolated environment" a.k.a. containerized?
Other proposals use the phrase "containerized applications" so language should stay consistent. I'm also not sure I understand what "self-contained" means for an application.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is trying to explain that the pod is self-contained, not just the application. Contrast to, say, a pod assembled from multipleindividual runc or systemd-nspawn containers. Open to other wording suggestions here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This probably doesn't matter for this proposal but for the sake of clarification...
I'm not a fan of "pod-native" because it's meaningless without a background and understanding of what a pod means in Kubernetes. Even then, many people who run Kubernetes I don't use multi-container deployments and just think of a pod as a container.

I would probably reword it to say something like multi-container application deployments or multi-container bundles. Something that's more descriptive and not as abstract.

I'm sure everyone reading this proposal knows exactly what is meant by a "pod" but that term caused confusion for the other descriptions of rkt.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, this paragraph does lead with an explanation of what pods are. I've added a link to the Kubernetes pod definition too. Does that help? (I honestly really dislike the pod/container conflation so don't want to repeat it here)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I like the explanation + link. Thanks. 👏


**Orchestration Integrations**

* [Kubernetes](https://kubernetes.io/docs/getting-started-guides/rkt/): an enterprise-grade container orchestration solution. Kubernetes offers rkt support, including via [minikube](https://github.com/kubernetes/minikube#using-rkt-container-engine) which makes it easy to test and run locally. The new rkt integration via Kubernetes's CRI (Container Runtime Interface) is currently passing 84/89 conformance tests; the hope would be to get this to 100% as Kubernetes 1.7 work begins and CRI stabilizes to beta.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just out of curiosity, what are the 5 failing tests?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kubernetes-retired/rktlet#95 (comment) (but likely needs an update since then)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per the above report, the figure is actually "passing 89/94".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, fixed


*External Dependencies*:

The rkt project uses [glide](https://github.com/Masterminds/glide) to maintain dependencie - an up-to-date manifest can be found in the [glide.lock file in the repository](https://github.com/coreos/rkt/blob/master/glide.lock).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dependencie - missed an 's'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, fixed

@caniszczyk
Copy link
Contributor

final RFC on comments @cncf/toc, voting will happen Friday

@caniszczyk
Copy link
Contributor

FYI @cncf/toc rkt vote is out: https://lists.cncf.io/pipermail/cncf-toc/2017-March/000741.html

@caniszczyk caniszczyk merged commit 0dc7042 into cncf:master Mar 29, 2017
@caniszczyk
Copy link
Contributor

rkt passes with 8/9 +1 binding @cncf/toc votes:

https://lists.cncf.io/pipermail/cncf-toc/2017-March/000778.html

Thanks everyone who helped with the proposal and welcome rkt community to the CNCF!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants