16:00:04 #startmeeting containers 16:00:05 Meeting started Tue Aug 19 16:00:04 2014 UTC and is due to finish in 60 minutes. The chair is adrian_otto. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:06 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:00:09 The meeting name has been set to 'containers' 16:00:10 #link https://wiki.openstack.org/wiki/Meetings/Containers#Agenda_for_2014-08-19_1600_UTC Our Agenda 16:00:15 #topic Roll Call 16:00:17 Adrian Otto 16:00:28 Andrew Melton 16:00:29 Thomas Maddox 16:00:51 hi guys 16:00:59 Hi 16:01:18 Hi 16:01:27 howdy 16:01:35 o/ 16:01:45 o/ 16:02:28 looks like we have a niced size group in attendance today. 16:02:53 let's begin 16:02:59 #topic Announcements 16:03:34 First of all, we have an agenda item to cover the details and progress on our spec submission for an OpenStack containers service, so we will get to that in just a moment. 16:03:56 are there any other announcements from team members? 16:04:19 Hello guys, this is first meeting on containers for openstack 16:04:23 we had no action items assigned last week, so I will skip that point in our agenda 16:04:28 diga: welcome!! 16:04:46 do you want to take a moment to introduce yourself to the team? Totally optional. 16:04:56 working in docker since a month & interested to contribute to nova-docker 16:05:24 excellent. We are happy to have you, diga! 16:05:32 yeah 16:05:40 ok, so to the main event 16:05:44 #topic Discuss Specs for OpenStack Containers Service 16:05:47 Thanks you adrian 16:06:07 so for anyone who missed the email to openstack-dev, it is here: 16:06:09 #link http://lists.openstack.org/pipermail/openstack-dev/2014-August/043113.html Email Thread 16:06:43 the proposal was initially submitted to nova-specs (in accordance from guidacne from the Nova team) 16:06:55 it is here, and I would appreciate your review and input to refine it: 16:06:56 #link https://review.openstack.org/114044 Spec Proposal 16:07:03 o/ 16:07:13 we do have a couple of open questions, from Mr. Herve, which we can discuss today. 16:07:20 erw: welcome! 16:07:39 I also submitted a request for a Stackforge repo. That is here: 16:07:40 adrian_otto: I added a bit to the spec etherpad, will move those over to the spec review 16:07:40 #link https://review.openstack.org/115328 Stackforge Repo Review 16:07:50 apmelton: thanks! 16:08:29 so, I'd like to get impressions for the team about how we are doing, and get a sense if you agree we are on the right track, or if we should do some steering. 16:09:22 thoughts? 16:09:25 Good 16:09:51 guys i'll go through all our specs 16:10:14 for the start 16:10:22 digatx 16:10:28 diga: tx 16:10:38 Welcome 16:11:02 I'll give you all a moment to scan through as I know I just dumped a bunch of text on you. 16:11:02 Will it be possible to create privileged container using containers service? 16:11:19 dguryanov: yes. 16:11:31 Yes, that's currently the only way that works since we can't nest unprivileged yet, afaik. 16:11:33 Thanks 16:11:39 the only short term caveat is that if you choose to use nova-docker as your virt driver 16:12:03 in that case. we need additional kernel features for container nesting that are in flight 16:12:30 erw, do you have additional comments on this subject? 16:12:46 adrian_otto: not really. 16:12:56 adrian_otto: I concur ? :) 16:13:00 :-) 16:13:04 fair enough 16:13:25 we're able to nest plain old lxc containers in unprivileged containers 16:13:30 just not docker containers 16:13:53 sew: Oh, right! Thanks for the correction. :) 16:13:59 sew, yeah, the difference is the filesystem mount requiring CAP_SYS_ADMIN right? 16:15:09 we got past that, but john hopper was not able to solve permission issues wrt auplink 16:15:16 if anyone has a link to patches that change the capabilities code in the Linux kernel to allow for the unprivileged nesting, I would like to record that somewhere for the Team so we can keep track of it, and advocate for getting it in. 16:15:49 sew… humm. 16:16:06 we see behavior like this user: https://gist.github.com/garthk/8555808 16:17:20 ok. 16:17:35 adrian_otto: sorry, got caught up in some other stuff 16:17:47 do we know anyone who understands auplink well enough to address that? 16:17:54 hi funzo 16:18:28 What about interacting with cinder using containers API? I think we should add a call to mount cinder volume to a given mountpoint 16:19:12 So the one could use baremetal host as instances and request mounting cinder volumes to containers 16:19:41 dguryanov: good question. That's something we could probably do using the agent. 16:19:52 actually wait 16:20:03 maybe not, depending on how the network topology is set up 16:20:20 dguryanov: the way I see it, the cinder volume would need to be exposed to the container group and from there the container 16:20:43 we might need to have something in nova-compute add it to the host, and then find a way to expose them to containers 16:20:59 right 16:21:24 we should capture this on a backlog. 16:21:42 we should have a wishlist bug queue where we can land stuff like this. 16:21:51 So first you should use attach_volume from nova api - cinder volume appear as /dev/sdb, for example 16:21:52 * adrian_otto feels an action item swelling 16:22:20 #action adrian_otto to create an LP project, and bug tracker for containers. 16:22:32 so use the ironic driver, then use nova attach-volume, then have the containers API be able to use the attached volume? 16:22:33 And how to mount it to /my_storage inside a container ? 16:24:44 ok, let's table this for now, and come back to it 16:25:03 #link https://review.openstack.org/#/c/114044/2/specs/kilo/containers-service.rst review comments 16:25:17 line 212 16:26:01 my thoughts on the API are that it would be really great to have compatibility with existing tools for containers 16:26:39 and because we will have different backends, that having a way to run some variants of the API on the front-end would be handy 16:26:50 Heat had this same concern 16:27:18 when it was struggling with whether to have the Heat native API, or the AWS one, or both, and others 16:27:43 the solution chosen in that case was that we'd have a common base API that other variants could be bound to. 16:28:09 I am not suggesting that we pin the base API to Docker's API 16:28:15 It'd just be an easier translation for Docker. 16:28:26 but I'd like us to consider having that as the first top-level API that we expose for clients 16:28:49 and tool makers can select the API option that makes the most sense 16:29:10 if we get too opinionated about this, we risk getting bypassed completely 16:29:29 I don't think it's possible to have the same API as docker 16:29:40 because containers will use resources from openstack 16:29:41 so I'd like to find a way to strike a healthy balance, where we are providing additional value and simplicity 16:29:47 like images, volumes, networking 16:30:18 dguryanov: I think image integration can be done, as evidenced by recent work in nova-docker 16:30:19 So there should be an API call to connect container to openstack 16:30:33 even if it was possible to use the same API, maintaining compatibility is going to be a huge pain 16:30:35 to openstack's virtual network with given ID 16:30:44 and I am not convinced that differences in networking or volumes would influence the API much 16:30:47 and maintaining all of the cruft that already exists in the docker api 16:31:19 ^^ that's one concern. I would prefer we didn't inherit like deprecated things 16:31:48 In an effort to support tooling that requires older versions 16:31:56 apmelton: I acknowledge that trying to keep API's synchronized for compatibility is a chore. The question is if it's worth it. 16:32:52 I originally thought Docker's API was to be used as a reference point... a starting point, but not the ultimate API to implement for a v1.0 or something. 16:33:13 thomasem: consider if we just invent a new API, our interoperability challenges are worse. 16:33:35 adrian_otto: our interoperability challenges with docker are worse 16:33:42 thomasem: my idea is that it be our first implementation, and that we iterate on a base API from taht 16:33:55 keeping the Docker implementation as a binding to that more complete base API 16:34:24 my issue with that is the docker implementation has a ton of cruft that we have to maintain 16:34:45 apmelton: ok, I recognize that there is stuff you don't like in there 16:34:55 let's consider for a moment that we catalog, and address that stuff 16:35:05 I'd rather set the expectation immediately that the container service API won't always adhere to the existing Docker API. 16:35:24 and that we make no attempt to do backward compatibility to old clients, just whatever the recent release is of prevailing popular tools. 16:35:40 I think we should explicitly list all API calls, which we are going to implement in containers service 16:35:59 and if we hear "it does not work with docker 0.0.0.0.1" we can respond with "upgrade to 1.1.x" or whatever 16:36:33 And how will we handle features that other technologies provide that docker doesn't in the future? 16:36:50 thomasem: add them to the base API 16:36:57 the coker binding does not implement them 16:37:04 s/coker/docker/ 16:37:12 Okay. So, really we're not following the Docker API around, just using it as a starting 'sane' point. 16:37:35 but perhaps an LXC centric user can use another binding, or the tooling can just integrate with the base API directly 16:38:00 my issue is this, the docker api is not a base API, it is very opinionated 16:38:05 thomasem: yes, I'm suggesting we use that as the starting point 16:38:19 apmelton: agreed 16:38:30 the base API will iterate considerable away from that 16:38:53 my advice is not to get too deep into engineering a grand unification API at step 1. 16:41:21 at the mid-cycle it was discussed that docker cli support would be provided by plugins to docker that could talk to our api 16:41:35 * adrian_otto1 was disconnected for a moment there 16:42:09 I hope the other idles off before I need to do the endmeeting command 16:42:16 Lol 16:42:35 Oh, yes. apmelton, I was just thinking of the REST endpoints, but the datatypes and what-not - I didn't think about that. 16:43:15 apmelton: yes, we could do that regardless 16:43:27 wrt apmelton's comment on the spec 16:43:36 I thought the question is what should be the first version of the base API 16:44:09 from my understanding at the mid-cycle, our first version was going to be very simple 16:44:24 yes. 16:44:32 that it was not going to support many of the things that docker supported 16:45:03 do you have a sense of which things make sense to omit? 16:45:54 I think we are in complete agreement that we want an iterative approach starting simple, and building on that. 16:46:17 for a beta release, everything except create container and delete container 16:46:49 create container should contain simple things like environment variables 16:47:00 and maybe process listing and signals 16:48:01 ok 16:48:27 so what should our next steps be with respect to an API proposal? 16:49:36 or maybe asking another way, what would you like to see in the proposal that would cause you to vote +1 on it 16:50:16 I'd like to see the beginnings of an api definition 16:50:25 REST endpoints and data types 16:50:32 Let's create etherpad page for it 16:50:45 Is there already and etherpad for collaborating on the API spec? 16:50:59 Like we had for container service, agent, host relay 16:51:00 let's make one now. one sec 16:51:28 I found an old one at https://etherpad.openstack.org/p/containers-service-api 16:52:04 hmmm 16:52:35 Apparently the Nova team disliked this approach a year ago 16:52:47 I don't have specifics about what the actual objections were 16:53:14 Yeah, I don't know either. 16:53:45 I'd be interested to know if they disliked the idea of the service, or the api itself 16:53:57 but let's each look at this, and share our thoughts. Should we use it, or do we need to start again? 16:54:02 back then, the containers service was proposed as something completely separate right? 16:54:13 I am going to proceed to open discussion 16:54:25 we can continue this discussion, or take new topics 16:54:34 #topic Open Discussion 16:57:26 crickets 16:57:30 This would need some changes to support the nested nature of the service. Also, some top-level attributes probably need to be deeper to group appropriate things together 16:57:35 * apmelton is looking over the etherpad 16:58:25 thomasem: do you mean containers nested in container groups? 16:58:30 yeah 16:59:20 i'm not sure that's necessary, especially considering we'd like the end user to not have to worry about container groups if they don't want to 16:59:42 So, we wouldn't return to them the container group UUID? 16:59:49 to use if they want it? 17:00:03 ok, we timed out for today 17:00:13 let's continue in #openstack-containers 17:00:16 thanks everyone 17:00:20 #endmeeting