juju behaviour in multi-hypervisor OpenStack clouds
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Fix Released
|
High
|
Anastasia |
Bug Description
Hi
I'm working on enabling deployment of OpenStack Clouds using Juju with mixed hypervisors; specifically LXD and KVM.
This means that the cloud can support instances of two different types, which has some impact on Juju and we have a few options on how this might get setup so that Juju can consume different types of resources.
a) Glance image properties
Right now, we don't by default set the 'hypervisor_type' property on a glance image; in a multi-hypervisor cloud, we'll have to maintainer different images for KVM and LXD, and this property would be set to indicate which type of hypervisor and instance using the image must be scheduled on.
The images are query-able using simplestreams data published in the cloud - Juju could use this to pick the right image for LXD or KVM instance, and then Nova would take care of the rest:
juju deploy mysql --constraints=
juju deploy mysql --constraints=
This provides flexibility as constraints are not tied to specific instances types (see b).
b) Extra specifications on flavors
Alternatively (or as well), we can setup a default set of flavors in the OpenStack cloud with extra specifications that set the hypervisor type using extra specs (a feature of nova's scheduler that ensures that a specific flavor gets scheduled on the right hypervisor) - for example (type naming TBD - these are just for example).
juju deploy mysql --constraints=
juju deploy mysql --constraints=
this obviously depends on the cloud being setup with the right flavor mappings, and it makes constraints potentially not portable across openstack clouds.
The above describes the two mechanisms by which we can configure the OpenStack cloud to support multiple hypervisors; I think that how juju exposes this to end users is still up for discussion.
Related branches
- James Page (community): Needs Resubmitting
- Scott Moser: Pending requested
-
Diff: 102 lines (+51/-2)2 files modifiedsimplestreams/mirrors/glance.py (+44/-1)
tools/sstream-mirror-glance (+7/-1)
Changed in juju-core: | |
milestone: | none → 2.0-beta1 |
importance: | Wishlist → High |
assignee: | nobody → Cheryl Jennings (cherylj) |
Changed in juju-core: | |
milestone: | 2.0-beta1 → 2.0-beta2 |
Changed in juju-core: | |
status: | Triaged → In Progress |
assignee: | Cheryl Jennings (cherylj) → Anastasia (anastasia-macmood) |
Changed in juju-core: | |
milestone: | 2.0-beta2 → 2.0-beta3 |
Changed in juju-core: | |
status: | Fix Committed → Fix Released |
tags: | added: 2.0-count |
affects: | juju-core → juju |
Changed in juju: | |
milestone: | 2.0-beta3 → none |
milestone: | none → 2.0-beta3 |
Adding in an extra constraint type for openstack shouldn't be too hard. Is "virt-type" something that exists in simplestreams already?
What's the timeframe you were looking at for this?