[RFE] boot instances from a volume instead of openstack's configured default
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Fix Released
|
High
|
Christian Muirhead |
Bug Description
An OpenStack cloud can be configured to use different backends[0] for the VMs, in some situations a cloud user may want to use a different type for the rootfs
A common setup private clouds is to set the default to qcow2[1] and let users decide when to create a VM where the rootfs should be created in a volume (in Ubuntu OpenStack this is Ceph), this is called "boot from volume"[2] and that will allow the user to preserve their data.
Juju should allow users to decide which kind of instances will be provisioned, I think extending the constraints for the openstack provider could allow this and fit in the UI
juju deploy cs:ubuntu --constraints=
[0] https:/
[1] ephemeral storage, the rootfs is living in a qcow2 file in the nova-compute local storage, if the instance is migrated to another nova-compute node the rootfs may be rebuilt from the base image. See more details about this at http://
[2]
tags: | added: openstack-provider sts |
Changed in juju: | |
status: | New → Triaged |
importance: | Undecided → Wishlist |
Changed in juju: | |
status: | Triaged → Incomplete |
Changed in juju: | |
status: | New → Triaged |
Changed in juju: | |
milestone: | none → 2.6.4 |
importance: | Wishlist → High |
assignee: | nobody → Christian Muirhead (2-xtian) |
Changed in juju: | |
status: | Fix Committed → Fix Released |
I've checked the juju code. We would need to run something similar to 'openstack boot'. The juju code uses a nova client from gopkg.in [1]. The only function, I saw available looks to be the one that juju code uses[2]. This function is 'RunServer'[3]. It accepts different sort of options [4], and none of them seem to be helpful here,they are more related to 'openstack server create' command. I've read the nova client API from GoPkg and couldn't find what we need.
[1] Nova client API: https:/ /godoc. org/gopkg. in/goose. v2/nova /github. com/wallyworld/ juju-snap/ blob/master/ provider/ openstack/ provider. go#L986 /godoc. org/gopkg. in/goose. v2/nova# Client. RunServer /godoc. org/gopkg. in/goose. v2/nova# RunServerOpts
[2] https:/
[3] https:/
[4] https:/