Merge pull request #22 from tgerdes/config-fixes
Cleanup nova-compute configs
diff --git a/README.rst b/README.rst
index cc6f92b..7e3b28d 100644
--- a/README.rst
+++ b/README.rst
@@ -399,6 +399,20 @@
glance image-update --property hw_scsi_model=virtio-scsi <image>
glance image-update --property hw_disk_bus=scsi <image>
+libvirt CPU mode
+----------------
+
+Allow setting the model of CPU that is exposed to a VM. This allows better
+support live migration between hypervisors with different hardware, among other
+things. Defaults to host-passthrough.
+
+.. code-block:: yaml
+
+ nova:
+ compute:
+ cpu_mode: host-model
+
+
Documentation and Bugs
======================
diff --git a/nova/controller.sls b/nova/controller.sls
index 2b2fe0f..0a8ac8f 100644
--- a/nova/controller.sls
+++ b/nova/controller.sls
@@ -95,31 +95,27 @@
{%- if not grains.get('noservices', False) %}
-nova_controller_syncdb:
- cmd.run:
- - names:
- - nova-manage db sync
- - require:
- - file: /etc/nova/nova.conf
-
{%- if controller.version in ["mitaka", "newton", "ocata"] %}
nova_controller_sync_apidb:
cmd.run:
- name: nova-manage api_db sync
- require:
- file: /etc/nova/nova.conf
- - require_in:
- - cmd: nova_controller_syncdb
{%- endif %}
{%- if controller.version in ["newton", "ocata"] %}
nova_controller_online_data_migrations:
cmd.run:
- name: nova-manage db online_data_migrations
- - require:
- - cmd: nova_controller_syncdb
{%- endif %}
+nova_controller_syncdb:
+ cmd.run:
+ - names:
+ - nova-manage db sync
+ - require:
+ - file: /etc/nova/nova.conf
+
{%- if controller.version in ["ocata"] %}
nova_controller_map_cell0:
diff --git a/nova/files/mitaka/nova-compute.conf.Debian b/nova/files/mitaka/nova-compute.conf.Debian
index 4c491d5..be66daa 100644
--- a/nova/files/mitaka/nova-compute.conf.Debian
+++ b/nova/files/mitaka/nova-compute.conf.Debian
@@ -104,7 +104,7 @@
{%- endif %}
[libvirt]
-cpu_mode = host-passthrough
+cpu_mode = {{ compute.get('cpu_mode', 'host-passthrough') }}
virt_type = kvm
inject_partition=-2
inject_password=False
diff --git a/nova/files/mitaka/nova-controller.conf.Debian b/nova/files/mitaka/nova-controller.conf.Debian
index ea881bc..0cfc5eb 100644
--- a/nova/files/mitaka/nova-controller.conf.Debian
+++ b/nova/files/mitaka/nova-controller.conf.Debian
@@ -184,7 +184,7 @@
project_domain_name = default
user_domain_name = default
auth_url = http://{{ controller.identity.host }}:35357
-{% if pillar.neutron is defined %}
+{% if pillar.neutron is defined and pillar.neutron.server is defined %}
password={{ pillar.neutron.server.identity.password }}
project_name={{ pillar.neutron.server.identity.tenant }}
username={{ pillar.neutron.server.identity.user }}
diff --git a/nova/files/newton/nova-compute.conf.Debian b/nova/files/newton/nova-compute.conf.Debian
index 690e698..d80f8ec 100644
--- a/nova/files/newton/nova-compute.conf.Debian
+++ b/nova/files/newton/nova-compute.conf.Debian
@@ -118,7 +118,7 @@
{%- endif %}
[libvirt]
-cpu_mode = host-passthrough
+cpu_mode = {{ compute.get('cpu_mode', 'host-passthrough') }}
virt_type = kvm
inject_partition=-2
inject_password=False
diff --git a/nova/files/newton/nova-controller.conf.Debian b/nova/files/newton/nova-controller.conf.Debian
index 6a96361..6bc11cf 100644
--- a/nova/files/newton/nova-controller.conf.Debian
+++ b/nova/files/newton/nova-controller.conf.Debian
@@ -194,7 +194,7 @@
project_domain_name = Default
user_domain_name = Default
auth_url = http://{{ controller.identity.host }}:35357/v3
-{% if pillar.neutron is defined %}
+{% if pillar.neutron is defined and pillar.neutron.server is defined %}
password={{ pillar.neutron.server.identity.password }}
project_name={{ pillar.neutron.server.identity.tenant }}
username={{ pillar.neutron.server.identity.user }}
diff --git a/nova/files/ocata/nova-compute.conf.Debian b/nova/files/ocata/nova-compute.conf.Debian
index aefc3f4..eefa31c 100644
--- a/nova/files/ocata/nova-compute.conf.Debian
+++ b/nova/files/ocata/nova-compute.conf.Debian
@@ -5878,7 +5878,7 @@
#
# From nova.conf
#
-cpu_mode = host-passthrough
+cpu_mode = {{ compute.get('cpu_mode', 'host-passthrough') }}
virt_type = kvm
inject_partition=-2
inject_password=True
diff --git a/nova/files/ocata/nova-controller.conf.Debian b/nova/files/ocata/nova-controller.conf.Debian
index eddcbb3..b002bfa 100644
--- a/nova/files/ocata/nova-controller.conf.Debian
+++ b/nova/files/ocata/nova-controller.conf.Debian
@@ -7070,7 +7070,7 @@
project_domain_name = Default
user_domain_name = Default
auth_url = http://{{ controller.identity.host }}:35357/v3
-{% if pillar.neutron is defined %}
+{% if pillar.neutron is defined and pillar.neutron.server is defined %}
password={{ pillar.neutron.server.identity.password }}
project_name={{ pillar.neutron.server.identity.tenant }}
username={{ pillar.neutron.server.identity.user }}
diff --git a/nova/map.jinja b/nova/map.jinja
index 4d56253..8e19b15 100644
--- a/nova/map.jinja
+++ b/nova/map.jinja
@@ -79,3 +79,14 @@
'heal_instance_info_cache_interval': '60',
},
}, merge=pillar.nova.get('compute', {})) %}
+
+
+
+{% set monitoring = salt['grains.filter_by']({
+ 'default': {
+ 'disk': {
+ 'warn': '15%',
+ 'crit': '5%',
+ },
+ },
+}, grain='os_family', merge=salt['pillar.get']('nova:monitoring')) %}
diff --git a/nova/meta/sensu.yml b/nova/meta/sensu.yml
index a92865e..5497b20 100644
--- a/nova/meta/sensu.yml
+++ b/nova/meta/sensu.yml
@@ -1,5 +1,4 @@
-{%- from "nova/map.jinja" import controller with context %}
-{%- from "nova/map.jinja" import compute with context %}
+{%- from "nova/map.jinja" import controller,compute,monitoring with context %}
{%- if pillar.nova.controller is defined %}
{%- set region = controller.identity.region %}
{%- endif %}
@@ -51,7 +50,7 @@
subscribers:
- local-nova-compute
local_linux_storage_nova_instances_usage:
- command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_disk -w 15% -c 5% -p /var/lib/nova/instances"
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_disk -w {{ monitoring.disk.warn }} -c {{ monitoring.disk.crit }} -p /var/lib/nova/instances"
interval: 60
occurrences: 1
subscribers: