Somik is actually going to take the lead on this from our end. After talking a bit more, our thinking is to explore just doing the integration against keystone to start, since that is our thinking of what the right long-term approach is. Somik will send out an update once he's looked into this a bit more.
Dan On Tue, Aug 16, 2011 at 1:50 PM, Dan Wendlandt <d...@nicira.com> wrote: > Adding netstack list, as this originally started out as a discussion on a > merge prop. > > Salvatore, I think we have a lot of the same concerns and goals here. > > I would actually love for Keystone obviate the need for this direct path > all together, with the model being that any service that can leverage > Quantum grants a "role/capability" of quantum-iface-attach:<iface-id> to a > particular set of identifies, then all Quantum does is check that a tenant > plugging an interface with id = "foo" has the role/capability > quantum-iface-attach:foo . This way, Quantum does not actually have to > store any of the ownership state, nor worry about details like having stale > ownership info if a user is removed from keystone, etc. Keystone is still > just coming together though, and my sense if that such fine-grained > capabilities are not yet something they are targeting, so I'm not sure how > this would scale. > > If we're using a cloud platform other than nova, either that service either > also needs to talk with Keystone, or make sure that Quantum can talk to > whatever it uses for identity (hand wave, hand wave). > > If we think this is the right long-term path, I would vote for a model with > the same "directionality", even if we are not yet talking to keystone (i.e., > one where nova calls out to a remote entity to report ownership info). In > the short-term, the call that it makes could just be a Quantum Admin API. > > I've gone back and forth on whether this should happen in the vif-plugging > "driver" or in the network manager. For now, I think it seems most > straight-forward to implement this in the Quantum-aware NetworkManager, as > this requires changing only one entity (as opposed to everyone's vif > drivers) but I can definitely see arguments either way. > > I think I'll at least prototype this in the network manager, then we can > see what we think about it. Ideally we can soon revisit this and compare it > against using keystone. > > Dan > > > On Fri, Aug 12, 2011 at 1:14 PM, Salvatore Orlando < > salvatore.orla...@eu.citrix.com> wrote: > >> Hi Dan, **** >> >> ** ** >> >> Thanks for resending me this. Your previous email ended up in the junk >> folder. **** >> >> I’m changing the subject to avoid this happens again.**** >> >> ** ** >> >> My replies are inline. **** >> >> The bottom line is that I don’t have any specific preference; my only goal >> is to keep Quantum and nova enough loosely coupled, in order to fulfil one >> the principles behind the whole NetStack project, which is the ability of >> working with IaaS software stacks different from Openstack. **** >> >> ** ** >> >> Cheers,**** >> >> Salvatore**** >> >> ** ** >> >> *From:* Dan Wendlandt [mailto:d...@nicira.com] >> *Sent:* 12 August 2011 08:03 >> *To:* Salvatore Orlando >> *Subject:* Fwd: [Merge] >> lp:~salvatore-orlando/quantum/quantum-api-alignment into lp:quantum**** >> >> ** ** >> >> Hi Salvatore,**** >> >> ** ** >> >> I've had to be helping with customer deployments all week and haven't >> gotten to this yet, but since you'll be out next week I wanted to check and >> see if you had any thoughts on this, as I'll try to do a first cut of this >> over the weekend. **** >> >> ** ** >> >> Also, is your thinking that the API itself would store this data, or that >> the plugin would store it. Long term I think we agree that ownership info >> should be managed by keystone, so hopefully either decision will just be >> temporary. I think when we last talked, we had planned on having the API >> store the data directly.**** >> >> ** ** >> >> I think you are referring to ownership information here. Looking at the >> plugin interface, ownership information are implicitly stored when you >> create the network. For the simple model we are implementing for Quantum, I >> think this is good enough for ports and networks. As concerns interfaces, >> this really depends on how we design the Admin API. See other comments.** >> ** >> >> ** ** >> >> When we will move to a full RBAC model, we can do two things:**** >> >> **· **Provide data storage in the quantum service layer; we will >> probably have to devise a solution with strict scalability and reliability >> requirements, and I’m pretty sure you guys can help a lot here. **** >> >> **· **Have the Quantum service layer use a database model, with >> the implementation of the database API provided a 3rd party (which could >> be the plugin implementor or somebody else). In this way if a particular >> service provider has a super-scalable, super-fast, super-reliable database, >> such database can be used to store Quantum data. **** >> >> ** ** >> >> Dan**** >> >> ** ** >> >> ---------- Forwarded message ---------- >> From: *Dan Wendlandt* <d...@nicira.com> >> Date: Mon, Aug 8, 2011 at 6:23 PM >> Subject: Re: [Merge] lp:~salvatore-orlando/quantum/quantum-api-alignment >> into lp:quantum >> To: mp+70...@code.launchpad.net >> >> >> >> **** >> >> On Mon, Aug 8, 2011 at 3:13 PM, Salvatore Orlando < >> salvatore.orla...@eu.citrix.com> wrote:**** >> >> > One other question for you: as part of nova + quantum integration, I'm >> > prototyping the "admin API" interfaces to communicate information like >> > interface-ownership (for authenticating attachments) and >> interface-bindings >> > (for knowing where a vif was deployed). >> > >> > My gut says that we should not hold up the 1.0 version while waiting to >> > include these items, but I wanted to get your thoughts there. We >> definitely >> > will need to document these eventually though, as there will be other >> > openstack services that want to integrate with Quantum.**** >> >> Good point. I guess the admin API has a different endpoint, as it should >> be exposed by nova, is that correct?**** >> >> ** ** >> >> I think one could think of doing it in two ways: **** >> >> ** ** >> >> 1) exposing an endpoint on nova, with quantum as the client.**** >> >> 2) exposing an endpoints on quantum, with nova as the client. **** >> >> ** ** >> >> My mental model had always been #2, but I'm not wedded to it. **** >> >> ** ** >> >> I think both models somehow increase the degree of coupling between >> Quantum and nova. In case #1 nova is “passive”, as Quantum asks for >> interface ownership information; where in case #2 nova has an active role, >> as it pushes out interface information to Quantum. **** >> >> ** ** >> >> ** ** >> >> #2 seemed natural to me as the "interface service" (e.g., nova) seemed to >> need to be able to "push" an interface binding to quantum (e.g., in the case >> where a VM migrates, changing the binding). Also, requring "interface >> service" to make a JSON call (ideally with the help of the client lib) >> seemed easier than requiring each interface service to expose and >> authenticate a new API call. **** >> >> ** ** >> >> I agree that a “push” mechanisms for interface information is a rather >> natural solution; we also agreed that these notifications would happen >> through standardized APIs, without “plugin black magic”.**** >> >> On the minus side, I see this as something which increases quite a lot the >> degree of coupling between Quantum and nova, as nova should be aware of the >> fact that it needs to push the interface information to Quantum; I expect a >> rather uncool “if network_manager==’Quantum’:” to be somewhere in the code. >> Another comment I have on approach #2, is that it would be quite hard to >> integrate Quantum with other IaaS stack unless we have the same degree of >> influence that we have with nova. **** >> >> ** ** >> >> For this reason I think maybe we should consider the first approach as >> well. Required APIs on nova could be implemented as an API extension; I >> think this will also keep nova and Quantum rather loose. However, the big >> cons here is that you wouldn’t have “real-time” notifications for events >> regarding interfaces; not sure how that is important, though.**** >> >> ** ** >> >> So let’s say that I slightly lean towards approach #1, but my position is >> rather soft, especially considering the fact that it seems you’ve already >> done a lot of work around approach #2, and the last thing I want is to >> hinder progress.**** >> >> ** ** >> >> This would be particularly true if an interface service was already acting >> as a quantum client for other reasons, which is the case with nova.**** >> >> ** ** >> >> One case where #2 is a bit funky is if quantum is deployed after an >> interface service like nova is already running (and thus has already spun up >> a set of VMs). It would seem that nova would need to support a method where >> it "resends" all of its data. Seems possible, but kind of clunky. **** >> >> ** ** >> >> Do you have a strong feeling on this one? **** >> >> ** ** >> >> IMHO in this scenario, “resending” all the data would only one of the >> problems to be faced. Assuming that this is a use case we aim to support, I >> think what we need here is a migration procedure, which, among the other >> things, will include interfaces as well.**** >> >> ** ** >> >> **** >> >> In that case I'm not entirely sure this should be part of the Quantum API >> at all (for instance if it going to be an Openstack API extension, why >> should it be documented in Quantum API). I can't find a blueprint for >> tracking this piece of work, can you give me a pointer?**** >> >> ** ** >> >> The original blueprint for this work is: >> https://blueprints.launchpad.net/quantum/+spec/quantum-interface-binding-api >> **** >> >> ** ** >> >> There's not a whole lot there. I'm hoping to do this as part of the >> Quantum Manager work in nova: >> https://blueprints.launchpad.net/nova/+spec/implement-network-api**** >> >> ** ** >> >> Just last night I started stubbing out out a possible Controller for this >> admin API. I've decided my first cut wasn't how I wanted it to work, so I'm >> going to tweak it (hopefully tonight), then I will push the branch and see >> what feedback people have. Main goals are: **** >> >> ** ** >> >> **1) **transmit "vif ownership" info to quantum, so we can tell what >> tenant owns a vif (and thus whether they are allowed to plug it in to one of >> their ports). **** >> >> I guess this is information is supposed to be transmitted when the VIF is >> created, is that correct?**** >> >> ** ** >> >> **2) **for plugins that need it, have a channel to report interface >> bindings.**** >> >> ** ** >> >> #2 is somewhat trickier (not clear if it should live in the >> network-manager, in the vif-plug driver, somewhere else), but #1 seems >> pretty straightforward. **** >> >> I need to understand a little bit better what you guys are doing in nova; >> unfortunately I did not have enough spare cycles to have a look at it is. >> I’m particularly intrigued by the “network-manager”: is that a >> network-manager for nova-network which actually turns out to be a proxy for >> Quantum? Or is it something different? **** >> >> ** ** >> >> Anyway I think that the most natural point where plugins should do this is >> the vif-plug driver. **** >> >> >> My plan to lock down the API for this week is motivated by the fact that >> we have to lock down features by Aug 25, and then do bug fixing and system >> testing until diablo release. If you think that we only have two weeks left, >> and given that code review process usually takes a week, this means that the >> best way to ensure a timely completion for the API blueprint is to start >> locking down the spec this week, and then work the week after on the code. >> **** >> >> ** ** >> >> ** ** >> >> Agreed. If we wanted to we could have plugins expose these admin apis as >> extensions for now, if we can't get them locked down in time. **** >> >> **** >> >> >> >> --**** >> >> >> >> https://code.launchpad.net/~salvatore-orlando/quantum/quantum-api-alignment/+merge/70788 >> You are reviewing the proposed merge of >> lp:~salvatore-orlando/quantum/quantum-api-alignment into lp:quantum.**** >> >> >> >> **** >> >> >> -- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> Dan Wendlandt >> Nicira Networks, Inc. >> www.nicira.com | www.openvswitch.org >> Sr. Product Manager >> cell: 650-906-2650 >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~**** >> >> >> >> >> -- >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> Dan Wendlandt >> Nicira Networks, Inc. >> www.nicira.com | www.openvswitch.org >> Sr. Product Manager >> cell: 650-906-2650 >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~**** >> > > > > -- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Dan Wendlandt > Nicira Networks, Inc. > www.nicira.com | www.openvswitch.org > Sr. Product Manager > cell: 650-906-2650 > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dan Wendlandt Nicira Networks, Inc. www.nicira.com | www.openvswitch.org Sr. Product Manager cell: 650-906-2650 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Mailing list: https://launchpad.net/~netstack Post to : netstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~netstack More help : https://help.launchpad.net/ListHelp