[openstack-dev] Climate Incubation Application

Russell Bryant rbryant at redhat.com
Thu Mar 13 14:44:54 UTC 2014

On 03/12/2014 12:14 PM, Sylvain Bauza wrote:
> Hi Russell,
> Thanks for replying,
> 2014-03-12 16:46 GMT+01:00 Russell Bryant <rbryant at redhat.com
> <mailto:rbryant at redhat.com>>:
>     The biggest concern seemed to be that we weren't sure whether Climate
>     makes sense as an independent project or not.  We think it may make more
>     sense to integrate what Climate does today into Nova directly.  More
>     generally, we think reservations of resources may best belong in the
>     APIs responsible for managing those resources, similar to how quota
>     management for resources lives in the resource APIs.
>     There is some expectation that this type of functionality will extend
>     beyond Nova, but for that we could look at creating a shared library of
>     code to ease implementing this sort of thing in each API that needs it.
> That's really a good question, so maybe I could give some feedback on
> how we deal with the existing use-cases.
> About the possible integration with Nova, that's already something we
> did for the virtual instances use-case, thanks to an API extension
> responsible for checking if a scheduler hint called 'reservation' was
> spent, and if so, take use of the python-climateclient package to send a
> request to Climate.
> I truly agree with the fact that possibly users should not use a
> separate API for reserving resources, but that would be worth duty for
> the project itself (Nova, Cinder or even Heat). That said, we think that
> there is need for having a global ordonancer managing resources and not
> siloing the resources. Hence that's why we still think there is still a
> need for a Climate Manager.

What we need to dig in to is *why* do you feel it needs to be global?

I'm trying to understand what you're saying here ... do you mean that
since we're trying to get to where there's a global scheduler, that it
makes sense there should be a central point for this, even if the API is
through the existing compute/networking/storage APIs?

If so, I think that makes sense.  However, until we actually have
something for scheduling, I think we should look at implementing all of
this in the services, and perhaps share some code with a Python library.
 So, I'm thinking along the lines of ...

1) Take what Climate does today and work to integrate it into Nova,
using as much of the existing Climate code as makes sense.  Be careful
about coupling in Nova so that we can easily split out the right code
into a library once we're ready to work on integration in another project.

2) In parallel, continue working on decoupling nova-scheduler from the
rest of Nova, so that we can split it out into its own project.

3) Once the scheduler is split out, re-visit what part of reservations
functionality belongs in the new scheduling project and what parts
should remain in each of the projects responsible for managing resources.

> Once I said that, there are different ways to plug in with the Manager,
> our proposal is to deliver a REST API and a python client so that there
> could be still some operator access for managing the resources if
> needed. The other way would be to only expose an RPC interface like the
> scheduler does at the moment but as the move to Pecan/WSME is already
> close to be done (reviews currently in progress), that's still a good
> opportunity for leveraging the existing bits of code.

Yes, I would want to use as much of the existing code as possible.

As I said above, I just think it's premature to make this its own
project on its own, unless we're able to look at scheduling more broadly
as its own project.

Russell Bryant

More information about the OpenStack-dev mailing list