Merge lp:~sberg-l/charms/trusty/nova-compute/next into lp:~openstack-charmers-archive/charms/trusty/nova-compute/next

Proposed by Skyler Berg on 2015-08-21
Status: Superseded
Proposed branch: lp:~sberg-l/charms/trusty/nova-compute/next
Merge into: lp:~openstack-charmers-archive/charms/trusty/nova-compute/next
Diff against target: 69 lines (+18/-1)
6 files modified
config.yaml (+4/-0)
hooks/nova_compute_context.py (+4/-0)
revision (+1/-1)
templates/icehouse/nova.conf (+3/-0)
templates/juno/nova.conf (+3/-0)
templates/kilo/nova.conf (+3/-0)
To merge this branch: bzr merge lp:~sberg-l/charms/trusty/nova-compute/next
Reviewer Review Type Date Requested Status
Billy Olsen 2015-08-21 Needs Fixing on 2015-08-31
Review via email: mp+268680@code.launchpad.net

This proposal has been superseded by a proposal from 2015-09-02.

Description of the Change

Add a configuration option for nfs-mount-options. This is necessary for nova to work after configuring cinder to use Tintri as a backend.

To post a comment you must log in.

charm_lint_check #8427 nova-compute-next for sberg-l mp268680
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/8427/

charm_unit_test #7821 nova-compute-next for sberg-l mp268680
    UNIT OK: passed

Build: http://10.245.162.77:8080/job/charm_unit_test/7821/

charm_amulet_test #5934 nova-compute-next for sberg-l mp268680
    AMULET OK: passed

Build: http://10.245.162.77:8080/job/charm_amulet_test/5934/

Ryan Beisner (1chb1n) wrote :

Thank you for your work on this.

Since we had been talking in #juju, I wanted to chime in with a few thoughts to help make your project reviews go as smoothly as possible.

I think that my colleagues will like to see and review this in a batch along side any other proposed changes to other charms, so that we can understand and review the changes in full context.

Until a more official review, some things to double-check as potential blockers:

# Config
While I've not taken a deep dive into this, I know that (generally speaking) many config options have been relocated or deprecated, depending on which OpenStack version is in use. So I'd recommend double-checking all of the relevant config options and template placement against the upstream docs, such as:
http://docs.openstack.org/kilo/config-reference/content/list-of-compute-config-options.html
http://docs.openstack.org/juno/config-reference/content/list-of-compute-config-options.html
http://docs.openstack.org/icehouse/config-reference/content/list-of-compute-config-options.html

A couple of questions that jumped out at me after having a quick peek:
Will you also need to enable a volume_driver for nfs in nova.conf?
Will you also need to specify a nfs_mount_point_base in nova.conf?

# Supported Releases
Take note that with each OpenStack charm, we develop and test with the expectation that each charm will succeed on all currently-supported releases. Currently, that is Icehouse, Juno, Kilo, with Liberty up next in active development. As a handy reference, this page has a chart that shows the supported release timeline:
https://wiki.ubuntu.com/ServerTeam/CloudArchive

# Contacts
As you know, you can generally reach one of us in #juju. For a-sync questions, the juju mailing list is also effective in drawing input/feedback with regard to general design questions or issues. I highly recommend joining that, as it's fairly low-traffic, and definitely has the right audience.

https://lists.ubuntu.com/mailman/listinfo/juju

Thanks again!

Skyler Berg (sberg-l) wrote :

Thanks for the feedback, Ryan!

nfs_mount_options was added to the [libvirt] section of nova.conf in Icehouse and has continued to exist in the all subsequent releases. As such, I added to the templates for all Icehouse, Juno, and Kilo.

I do not need any additional options other than nfs_mount_options.

As for other changes, I do not anticipate any. This change should be isolated. Soon I will be uploading my cinder-tintri charm. In that charm's README I will instruct users to set this option appropriately. However, the code in my charm will not touch nova-compute at all.

Billy Olsen (billy-olsen) wrote :

Ah this is where you were going with the general config options? From our discussions on IRC, I understood you wanted general config settings set rather than ultimately seeing it this way.

Although, this is certainly one option of solving it, I think you are probably better going down the path of creating a subordinate charm and adding a tintri relation interface. As a simple subordinate charm, it could easily relate to both the nova-compute charm (which would react to tintri-relation-* hooks) and to cinder (also reacting to tintri-relation-* hooks).

For example, let's go with the idea of a tintri-storage charm which is a subordinate. The subordinate means it will be colocated with each unit it is paired with. In this charm, there would be the options for connecting to the tintri storage device (e.g. username, password, ip address, etc). It would provide the tintri interface, which shares access information to the related service (e.g. on the relation it would share the ip, password, etc). Then the nova-compute charm would be augmented to understand the tintri interface. On the tintri-changed-* hook it would read the relation values and configure the local storage access and any nova-compute parameters needed (ideally a new TintriContext or NFSContext etc would be created here), which would also include the NFS mount options etc.

I'm going to mark this as needs fixing as I think you really (ultimately) want what I've outlined here. That is to give the user one place to configure the tintri settings for the environment, and then let the charm relations handle the rest for you.

Ping me (wolsen) on irc if you want to discuss this any further or have questions. I'll be more than happy to help out!

review: Needs Fixing
Billy Olsen (billy-olsen) wrote :

btw, when it is ready for re-review/re-submission - change the status and add the openstack-charmers to make sure it goes into the general review queue and not just to me.

Unmerged revisions

154. By Skyler Berg on 2015-08-20

Add nfs-mount-options options configuration option

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'config.yaml'
2--- config.yaml 2015-07-17 08:28:10 +0000
3+++ config.yaml 2015-08-21 00:04:45 +0000
4@@ -250,3 +250,7 @@
5 stipulated by nova-cloud-controller. The option is only available for
6 backward compatibility for deployments which do not use the neutron-api
7 charm. Please do not enable this on new deployments.
8+ nfs-mount-options:
9+ default:
10+ type: string
11+ description: Mount options passed to the NFS client
12
13=== modified file 'hooks/nova_compute_context.py'
14--- hooks/nova_compute_context.py 2015-07-15 08:27:44 +0000
15+++ hooks/nova_compute_context.py 2015-08-21 00:04:45 +0000
16@@ -124,6 +124,10 @@
17 if config('disk-cachemodes'):
18 ctxt['disk_cachemodes'] = config('disk-cachemodes')
19
20+ if config('nfs-mount-options'):
21+ # nova.conf
22+ ctxt['nfs_mount_options'] = config('nfs-mount-options')
23+
24 ctxt['host_uuid'] = '%s' % uuid.uuid4()
25 return ctxt
26
27
28=== modified file 'revision'
29--- revision 2014-06-02 18:37:32 +0000
30+++ revision 2015-08-21 00:04:45 +0000
31@@ -1,1 +1,1 @@
32-133
33+134
34
35=== modified file 'templates/icehouse/nova.conf'
36--- templates/icehouse/nova.conf 2015-04-13 12:22:05 +0000
37+++ templates/icehouse/nova.conf 2015-08-21 00:04:45 +0000
38@@ -152,4 +152,7 @@
39 {% if disk_cachemodes -%}
40 disk_cachemodes = {{ disk_cachemodes }}
41 {% endif -%}
42+{% if nfs_mount_options -%}
43+nfs_mount_options = {{ nfs_mount_options }}
44+{% endif -%}
45
46
47=== modified file 'templates/juno/nova.conf'
48--- templates/juno/nova.conf 2015-07-07 12:06:07 +0000
49+++ templates/juno/nova.conf 2015-08-21 00:04:45 +0000
50@@ -156,3 +156,6 @@
51 {% if disk_cachemodes -%}
52 disk_cachemodes = {{ disk_cachemodes }}
53 {% endif -%}
54+{% if nfs_mount_options -%}
55+nfs_mount_options = {{ nfs_mount_options }}
56+{% endif -%}
57
58=== modified file 'templates/kilo/nova.conf'
59--- templates/kilo/nova.conf 2015-07-07 12:06:07 +0000
60+++ templates/kilo/nova.conf 2015-08-21 00:04:45 +0000
61@@ -161,6 +161,9 @@
62 {% if disk_cachemodes -%}
63 disk_cachemodes = {{ disk_cachemodes }}
64 {% endif -%}
65+{% if nfs_mount_options -%}
66+nfs_mount_options = {{ nfs_mount_options }}
67+{% endif -%}
68
69 {% include "parts/section-database" %}
70

Subscribers

People subscribed via source and target branches