Merge "Add conditional panel for nova-cert"
diff --git a/README.rst b/README.rst
index 4b5f63e..8ff3b85 100644
--- a/README.rst
+++ b/README.rst
@@ -256,7 +256,6 @@
compute:
version: juno
enabled: true
- virtualization: kvm
cross_az_attach: false
disk_cachemodes: network=writeback,block=none
availability_zone: availability_zone_01
@@ -313,6 +312,22 @@
max_processes: 4096
host: node-12.domain.tld
+Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
+Each process should have uniq host identifier. However multiple computes might be running on
+single host. It is not recommended to have multiple computes running on different hosts that
+manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
+
+.. code-block:: yaml
+
+ nova:
+ compute:
+ compute_driver: vmwareapi.VMwareVCDriver
+ vmware:
+ host_username: vmware
+ host_password: vmware
+ cluster_name: vmware_cluster01
+ host_ip: 1.2.3.4
+
Group and user to be used for QEMU processes run by the system instance
.. code-block:: yaml
diff --git a/metadata/service/compute/cluster.yml b/metadata/service/compute/cluster.yml
index 34fbcf8..ba85fbd 100644
--- a/metadata/service/compute/cluster.yml
+++ b/metadata/service/compute/cluster.yml
@@ -4,7 +4,6 @@
- service.nova.support
parameters:
_param:
- nova_compute_virtualization: kvm
openstack_log_appender: false
openstack_fluentd_handler_enabled: false
openstack_ossyslog_handler_enabled: false
@@ -12,7 +11,6 @@
compute:
version: ${_param:nova_version}
enabled: true
- virtualization: ${_param:nova_compute_virtualization}
heal_instance_info_cache_interval: 60
vncproxy_url: http://${_param:cluster_vip_address}:6080
bind:
diff --git a/metadata/service/compute/container.yml b/metadata/service/compute/container.yml
index 145ebcc..51f771d 100644
--- a/metadata/service/compute/container.yml
+++ b/metadata/service/compute/container.yml
@@ -10,7 +10,6 @@
compute:
version: ${_param:nova_version}
enabled: true
- virtualization: kvm
vncproxy_url: http://${_param:nova_service_host}:6080
reserved_host_memory_mb: 32768
libvirt:
@@ -50,4 +49,4 @@
user: neutron
password: ${_param:keystone_neutron_password}
host: ${_param:neutron_service_host}
- port: 9696
\ No newline at end of file
+ port: 9696
diff --git a/metadata/service/compute/kvm.yml b/metadata/service/compute/kvm.yml
index 96176af..2ede8af 100644
--- a/metadata/service/compute/kvm.yml
+++ b/metadata/service/compute/kvm.yml
@@ -11,7 +11,6 @@
compute:
version: ${_param:nova_version}
enabled: true
- virtualization: kvm
heal_instance_info_cache_interval: 60
vncproxy_url: http://${_param:cluster_vip_address}:6080
bind:
diff --git a/nova/compute.sls b/nova/compute.sls
index a6ec4bc..1b8c149 100644
--- a/nova/compute.sls
+++ b/nova/compute.sls
@@ -297,7 +297,7 @@
{%- endfor %}
-{%- if compute.virtualization == 'kvm' %}
+{%- if compute.get('compute_driver', 'libvirt.LibvirtDriver') == 'libvirt.LibvirtDriver' %}
{%- if not salt['user.info']('nova') %}
# MOS9 libvirt fix to create group
diff --git a/nova/files/pike/compute/_vmware.conf b/nova/files/pike/compute/_vmware.conf
new file mode 100644
index 0000000..2ecf3c4
--- /dev/null
+++ b/nova/files/pike/compute/_vmware.conf
@@ -0,0 +1,310 @@
+
+[vmware]
+#
+# Related options:
+# Following options must be set in order to launch VMware-based
+# virtual machines.
+#
+# * compute_driver: Must use vmwareapi.VMwareVCDriver.
+# * vmware.host_username
+# * vmware.host_password
+# * vmware.cluster_name
+
+#
+# From nova.conf
+#
+
+#
+# This option specifies the physical ethernet adapter name for VLAN
+# networking.
+#
+# Set the vlan_interface configuration option to match the ESX host
+# interface that handles VLAN-tagged VM traffic.
+#
+# Possible values:
+#
+# * Any valid string representing VLAN interface name
+# (string value)
+#vlan_interface = vmnic0
+{%- if _data.vlan_interface is defined %}
+vlan_interface = {{ _data.vlan_interface }}
+{%- endif %}
+
+#
+# This option should be configured only when using the NSX-MH Neutron
+# plugin. This is the name of the integration bridge on the ESXi server
+# or host. This should not be set for any other Neutron plugin. Hence
+# the default value is not set.
+#
+# Possible values:
+#
+# * Any valid string representing the name of the integration bridge
+# (string value)
+#integration_bridge = <None>
+{%- if _data.integration_bridge is defined %}
+integration_bridge = {{ _data.integration_bridge }}
+{%- endif %}
+
+#
+# Set this value if affected by an increased network latency causing
+# repeated characters when typing in a remote console.
+# (integer value)
+# Minimum value: 0
+#console_delay_seconds = <None>
+{%- if _data.console_delay_seconds is defined %}
+console_delay_seconds = {{ _data.console_delay_seconds }}
+{%- endif %}
+
+#
+# Identifies the remote system where the serial port traffic will
+# be sent.
+#
+# This option adds a virtual serial port which sends console output to
+# a configurable service URI. At the service URI address there will be
+# virtual serial port concentrator that will collect console logs.
+# If this is not set, no serial ports will be added to the created VMs.
+#
+# Possible values:
+#
+# * Any valid URI
+# (string value)
+#serial_port_service_uri = <None>
+{%- if _data.serial_port_service_uri is defined %}
+serial_port_service_uri = {{ _data.serial_port_service_uri }}
+{%- endif %}
+
+#
+# Identifies a proxy service that provides network access to the
+# serial_port_service_uri.
+#
+# Possible values:
+#
+# * Any valid URI (The scheme is 'telnet' or 'telnets'.)
+#
+# Related options:
+# This option is ignored if serial_port_service_uri is not specified.
+# * serial_port_service_uri
+# (uri value)
+#serial_port_proxy_uri = <None>
+{%- if _data.serial_port_proxy_uri is defined %}
+serial_port_proxy_uri = {{ _data.serial_port_proxy_uri }}
+{%- endif %}
+
+#
+# Hostname or IP address for connection to VMware vCenter host. (unknown value)
+#host_ip = <None>
+host_ip = {{ _data.host_ip }}
+
+# Port for connection to VMware vCenter host. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#host_port = 443
+{%- if _data.host_port is defined %}
+host_port = {{ _data.host_port }}
+{%- endif %}
+
+# Username for connection to VMware vCenter host. (string value)
+#host_username = <None>
+host_username = {{ _data.host_username }}
+
+# Password for connection to VMware vCenter host. (string value)
+#host_password = <None>
+host_password = {{ _data.host_password }}
+
+#
+# Specifies the CA bundle file to be used in verifying the vCenter
+# server certificate.
+# (string value)
+#ca_file = <None>
+{%- if _data.cacert_file is defined %}
+ca_file = {{ _data.cacert_file }}
+{%- endif %}
+
+#
+# If true, the vCenter server certificate is not verified. If false,
+# then the default CA truststore is used for verification.
+#
+# Related options:
+# * ca_file: This option is ignored if "ca_file" is set.
+# (boolean value)
+#insecure = false
+{%- if _data.insecure is defined %}
+insecure = {{ _data.insecure }}
+{%- endif %}
+
+# Name of a VMware Cluster ComputeResource. (string value)
+#cluster_name = <None>
+cluster_name = {{ _data.cluster_name }}
+
+#
+# Regular expression pattern to match the name of datastore.
+#
+# The datastore_regex setting specifies the datastores to use with
+# Compute. For example, datastore_regex="nas.*" selects all the data
+# stores that have a name starting with "nas".
+#
+# NOTE: If no regex is given, it just picks the datastore with the
+# most freespace.
+#
+# Possible values:
+#
+# * Any matching regular expression to a datastore must be given
+# (string value)
+#datastore_regex = <None>
+{%- if _data.datastore_regex is defined %}
+datastore_regex = {{ _data.datastore_regex }}
+{%- endif %}
+
+#
+# Time interval in seconds to poll remote tasks invoked on
+# VMware VC server.
+# (floating point value)
+#task_poll_interval = 0.5
+{%- if _data.task_poll_interval is defined %}
+task_poll_interval = {{ _data.task_poll_interval }}
+{%- endif %}
+
+
+#
+# Number of times VMware vCenter server API must be retried on connection
+# failures, e.g. socket error, etc.
+# (integer value)
+# Minimum value: 0
+#api_retry_count = 10
+{%- if _data.api_retry_count is defined %}
+api_retry_count = {{ _data.api_retry_count }}
+{%- endif %}
+
+#
+# This option specifies VNC starting port.
+#
+# Every VM created by ESX host has an option of enabling VNC client
+# for remote connection. Above option 'vnc_port' helps you to set
+# default starting port for the VNC client.
+#
+# Possible values:
+#
+# * Any valid port number within 5900 -(5900 + vnc_port_total)
+#
+# Related options:
+# Below options should be set to enable VNC client.
+# * vnc.enabled = True
+# * vnc_port_total
+# (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#vnc_port = 5900
+{%- if _data.vnc_port is defined %}
+vnc_port = {{ _data.vnc_port }}
+{%- endif %}
+
+#
+# Total number of VNC ports.
+# (integer value)
+# Minimum value: 0
+#vnc_port_total = 10000
+{%- if _data.vnc_port_total is defined %}
+vnc_port_total = {{ _data.vnc_port_total }}
+{%- endif %}
+
+#
+# This option enables/disables the use of linked clone.
+#
+# The ESX hypervisor requires a copy of the VMDK file in order to boot
+# up a virtual machine. The compute driver must download the VMDK via
+# HTTP from the OpenStack Image service to a datastore that is visible
+# to the hypervisor and cache it. Subsequent virtual machines that need
+# the VMDK use the cached version and don't have to copy the file again
+# from the OpenStack Image service.
+#
+# If set to false, even with a cached VMDK, there is still a copy
+# operation from the cache location to the hypervisor file directory
+# in the shared datastore. If set to true, the above copy operation
+# is avoided as it creates copy of the virtual machine that shares
+# virtual disks with its parent VM.
+# (boolean value)
+#use_linked_clone = true
+{%- if _data.use_linked_clone is defined %}
+use_linked_clone = {{ _data.use_linked_clone }}
+{%- endif %}
+
+#
+# This option enables or disables storage policy based placement
+# of instances.
+#
+# Related options:
+#
+# * pbm_default_policy
+# (boolean value)
+#pbm_enabled = false
+{%- if _data.pbm_enabled is defined %}
+pbm_enabled = {{ _data.pbm_enabled }}
+{%- endif %}
+
+#
+# This option specifies the PBM service WSDL file location URL.
+#
+# Setting this will disable storage policy based placement
+# of instances.
+#
+# Possible values:
+#
+# * Any valid file path
+# e.g file:///opt/SDK/spbm/wsdl/pbmService.wsdl
+# (string value)
+#pbm_wsdl_location = <None>
+{%- if _data.pbm_wsdl_location is defined %}
+pbm_wsdl_location = {{ _data.pbm_wsdl_location }}
+{%- endif %}
+
+#
+# This option specifies the default policy to be used.
+#
+# If pbm_enabled is set and there is no defined storage policy for the
+# specific request, then this policy will be used.
+#
+# Possible values:
+#
+# * Any valid storage policy such as VSAN default storage policy
+#
+# Related options:
+#
+# * pbm_enabled
+# (string value)
+#pbm_default_policy = <None>
+{%- if _data.pbm_default_policy is defined %}
+pbm_default_policy = {{ _data.pbm_default_policy }}
+{%- endif %}
+
+#
+# This option specifies the limit on the maximum number of objects to
+# return in a single result.
+#
+# A positive value will cause the operation to suspend the retrieval
+# when the count of objects reaches the specified limit. The server may
+# still limit the count to something less than the configured value.
+# Any remaining objects may be retrieved with additional requests.
+# (integer value)
+# Minimum value: 0
+#maximum_objects = 100
+{%- if _data.maximum_objects is defined %}
+maximum_objects = {{ _data.maximum_objects }}
+{%- endif %}
+
+#
+# This option adds a prefix to the folder where cached images are stored
+#
+# This is not the full path - just a folder prefix. This should only be
+# used when a datastore cache is shared between compute nodes.
+#
+# Note: This should only be used when the compute nodes are running on same
+# host or they have a shared file system.
+#
+# Possible values:
+#
+# * Any string representing the cache prefix to the folder
+# (string value)
+#cache_prefix = <None>
+{%- if _data.cache_prefix is defined %}
+cache_prefix = {{ _data.cache_prefix }}
+{%- endif %}
diff --git a/nova/files/pike/nova-compute.conf.Debian b/nova/files/pike/nova-compute.conf.Debian
index 4c51e6f..d6589ec 100644
--- a/nova/files/pike/nova-compute.conf.Debian
+++ b/nova/files/pike/nova-compute.conf.Debian
@@ -1,4 +1,5 @@
-{%- from "nova/map.jinja" import compute with context %}
+{%- from "nova/map.jinja" import compute,compute_driver_mapping with context %}
+
[DEFAULT]
#
@@ -9696,274 +9697,11 @@
# Tenant Name (string value)
#tenant_name=<None>
-
-[vmware]
-#
-# Related options:
-# Following options must be set in order to launch VMware-based
-# virtual machines.
-#
-# * compute_driver: Must use vmwareapi.VMwareVCDriver.
-# * vmware.host_username
-# * vmware.host_password
-# * vmware.cluster_name
-
-#
-# From nova.conf
-#
-
-#
-# This option specifies the physical ethernet adapter name for VLAN
-# networking.
-#
-# Set the vlan_interface configuration option to match the ESX host
-# interface that handles VLAN-tagged VM traffic.
-#
-# Possible values:
-#
-# * Any valid string representing VLAN interface name
-# (string value)
-#vlan_interface=vmnic0
-
-#
-# This option should be configured only when using the NSX-MH Neutron
-# plugin. This is the name of the integration bridge on the ESXi server
-# or host. This should not be set for any other Neutron plugin. Hence
-# the default value is not set.
-#
-# Possible values:
-#
-# * Any valid string representing the name of the integration bridge
-# (string value)
-#integration_bridge=<None>
-
-#
-# Set this value if affected by an increased network latency causing
-# repeated characters when typing in a remote console.
-# (integer value)
-# Minimum value: 0
-#console_delay_seconds=<None>
-
-#
-# Identifies the remote system where the serial port traffic will
-# be sent.
-#
-# This option adds a virtual serial port which sends console output to
-# a configurable service URI. At the service URI address there will be
-# virtual serial port concentrator that will collect console logs.
-# If this is not set, no serial ports will be added to the created VMs.
-#
-# Possible values:
-#
-# * Any valid URI
-# (string value)
-#serial_port_service_uri=<None>
-
-#
-# Identifies a proxy service that provides network access to the
-# serial_port_service_uri.
-#
-# Possible values:
-#
-# * Any valid URI
-#
-# Related options:
-# This option is ignored if serial_port_service_uri is not specified.
-# * serial_port_service_uri
-# (string value)
-#serial_port_proxy_uri=<None>
-
-#
-# Hostname or IP address for connection to VMware vCenter host. (string value)
-#host_ip=<None>
-
-# Port for connection to VMware vCenter host. (port value)
-# Minimum value: 0
-# Maximum value: 65535
-#host_port=443
-
-# Username for connection to VMware vCenter host. (string value)
-#host_username=<None>
-
-# Password for connection to VMware vCenter host. (string value)
-#host_password=<None>
-
-#
-# Specifies the CA bundle file to be used in verifying the vCenter
-# server certificate.
-# (string value)
-#ca_file=<None>
-
-#
-# If true, the vCenter server certificate is not verified. If false,
-# then the default CA truststore is used for verification.
-#
-# Related options:
-# * ca_file: This option is ignored if "ca_file" is set.
-# (boolean value)
-#insecure=false
-
-# Name of a VMware Cluster ComputeResource. (string value)
-#cluster_name=<None>
-
-#
-# Regular expression pattern to match the name of datastore.
-#
-# The datastore_regex setting specifies the datastores to use with
-# Compute. For example, datastore_regex="nas.*" selects all the data
-# stores that have a name starting with "nas".
-#
-# NOTE: If no regex is given, it just picks the datastore with the
-# most freespace.
-#
-# Possible values:
-#
-# * Any matching regular expression to a datastore must be given
-# (string value)
-#datastore_regex=<None>
-
-#
-# Time interval in seconds to poll remote tasks invoked on
-# VMware VC server.
-# (floating point value)
-#task_poll_interval=0.5
-
-#
-# Number of times VMware vCenter server API must be retried on connection
-# failures, e.g. socket error, etc.
-# (integer value)
-# Minimum value: 0
-#api_retry_count=10
-
-#
-# This option specifies VNC starting port.
-#
-# Every VM created by ESX host has an option of enabling VNC client
-# for remote connection. Above option 'vnc_port' helps you to set
-# default starting port for the VNC client.
-#
-# Possible values:
-#
-# * Any valid port number within 5900 -(5900 + vnc_port_total)
-#
-# Related options:
-# Below options should be set to enable VNC client.
-# * vnc.enabled = True
-# * vnc_port_total
-# (port value)
-# Minimum value: 0
-# Maximum value: 65535
-#vnc_port=5900
-
-#
-# Total number of VNC ports.
-# (integer value)
-# Minimum value: 0
-#vnc_port_total=10000
-
-#
-# This option enables/disables the use of linked clone.
-#
-# The ESX hypervisor requires a copy of the VMDK file in order to boot
-# up a virtual machine. The compute driver must download the VMDK via
-# HTTP from the OpenStack Image service to a datastore that is visible
-# to the hypervisor and cache it. Subsequent virtual machines that need
-# the VMDK use the cached version and don't have to copy the file again
-# from the OpenStack Image service.
-#
-# If set to false, even with a cached VMDK, there is still a copy
-# operation from the cache location to the hypervisor file directory
-# in the shared datastore. If set to true, the above copy operation
-# is avoided as it creates copy of the virtual machine that shares
-# virtual disks with its parent VM.
-# (boolean value)
-#use_linked_clone=true
-
-# DEPRECATED:
-# This option specifies VIM Service WSDL Location
-#
-# If vSphere API versions 5.1 and later is being used, this section can
-# be ignored. If version is less than 5.1, WSDL files must be hosted
-# locally and their location must be specified in the above section.
-#
-# Optional over-ride to default location for bug work-arounds.
-#
-# Possible values:
-#
-# * http://<server>/vimService.wsdl
-# * file:///opt/stack/vmware/SDK/wsdl/vim25/vimService.wsdl
-# (string value)
-# This option is deprecated for removal since 15.0.0.
-# Its value may be silently ignored in the future.
-# Reason: Only vCenter versions earlier than 5.1 require this option and the
-# current minimum version is 5.1.
-#wsdl_location=<None>
-
-#
-# This option enables or disables storage policy based placement
-# of instances.
-#
-# Related options:
-#
-# * pbm_default_policy
-# (boolean value)
-#pbm_enabled=false
-
-#
-# This option specifies the PBM service WSDL file location URL.
-#
-# Setting this will disable storage policy based placement
-# of instances.
-#
-# Possible values:
-#
-# * Any valid file path
-# e.g file:///opt/SDK/spbm/wsdl/pbmService.wsdl
-# (string value)
-#pbm_wsdl_location=<None>
-
-#
-# This option specifies the default policy to be used.
-#
-# If pbm_enabled is set and there is no defined storage policy for the
-# specific request, then this policy will be used.
-#
-# Possible values:
-#
-# * Any valid storage policy such as VSAN default storage policy
-#
-# Related options:
-#
-# * pbm_enabled
-# (string value)
-#pbm_default_policy=<None>
-
-#
-# This option specifies the limit on the maximum number of objects to
-# return in a single result.
-#
-# A positive value will cause the operation to suspend the retrieval
-# when the count of objects reaches the specified limit. The server may
-# still limit the count to something less than the configured value.
-# Any remaining objects may be retrieved with additional requests.
-# (integer value)
-# Minimum value: 0
-#maximum_objects=100
-
-#
-# This option adds a prefix to the folder where cached images are stored
-#
-# This is not the full path - just a folder prefix. This should only be
-# used when a datastore cache is shared between compute nodes.
-#
-# Note: This should only be used when the compute nodes are running on same
-# host or they have a shared file system.
-#
-# Possible values:
-#
-# * Any string representing the cache prefix to the folder
-# (string value)
-#cache_prefix=<None>
+{%- set compute_driver = compute.get('compute_driver', 'libvirt.LibvirtDriver') %}
+{%- if compute_driver in compute_driver_mapping.keys() %}
+{%- set _data = compute.get(compute_driver_mapping[compute_driver]) %}
+{%- include "nova/files/pike/compute/_" + compute_driver_mapping[compute_driver] + ".conf" %}
+{%- endif %}
[vnc]
diff --git a/nova/files/pike/nova-controller.conf.Debian b/nova/files/pike/nova-controller.conf.Debian
index 682b675..f6979f4 100644
--- a/nova/files/pike/nova-controller.conf.Debian
+++ b/nova/files/pike/nova-controller.conf.Debian
@@ -1,4 +1,4 @@
-{%- from "nova/map.jinja" import controller with context %}
+{%- from "nova/map.jinja" import controller,compute_driver_mapping with context %}
[DEFAULT]
#
@@ -9632,275 +9632,11 @@
# Tenant Name (string value)
#tenant_name=<None>
-
-[vmware]
-#
-# Related options:
-# Following options must be set in order to launch VMware-based
-# virtual machines.
-#
-# * compute_driver: Must use vmwareapi.VMwareVCDriver.
-# * vmware.host_username
-# * vmware.host_password
-# * vmware.cluster_name
-
-#
-# From nova.conf
-#
-
-#
-# This option specifies the physical ethernet adapter name for VLAN
-# networking.
-#
-# Set the vlan_interface configuration option to match the ESX host
-# interface that handles VLAN-tagged VM traffic.
-#
-# Possible values:
-#
-# * Any valid string representing VLAN interface name
-# (string value)
-#vlan_interface=vmnic0
-
-#
-# This option should be configured only when using the NSX-MH Neutron
-# plugin. This is the name of the integration bridge on the ESXi server
-# or host. This should not be set for any other Neutron plugin. Hence
-# the default value is not set.
-#
-# Possible values:
-#
-# * Any valid string representing the name of the integration bridge
-# (string value)
-#integration_bridge=<None>
-
-#
-# Set this value if affected by an increased network latency causing
-# repeated characters when typing in a remote console.
-# (integer value)
-# Minimum value: 0
-#console_delay_seconds=<None>
-
-#
-# Identifies the remote system where the serial port traffic will
-# be sent.
-#
-# This option adds a virtual serial port which sends console output to
-# a configurable service URI. At the service URI address there will be
-# virtual serial port concentrator that will collect console logs.
-# If this is not set, no serial ports will be added to the created VMs.
-#
-# Possible values:
-#
-# * Any valid URI
-# (string value)
-#serial_port_service_uri=<None>
-
-#
-# Identifies a proxy service that provides network access to the
-# serial_port_service_uri.
-#
-# Possible values:
-#
-# * Any valid URI
-#
-# Related options:
-# This option is ignored if serial_port_service_uri is not specified.
-# * serial_port_service_uri
-# (string value)
-#serial_port_proxy_uri=<None>
-
-#
-# Hostname or IP address for connection to VMware vCenter host. (string value)
-#host_ip=<None>
-
-# Port for connection to VMware vCenter host. (port value)
-# Minimum value: 0
-# Maximum value: 65535
-#host_port=443
-
-# Username for connection to VMware vCenter host. (string value)
-#host_username=<None>
-
-# Password for connection to VMware vCenter host. (string value)
-#host_password=<None>
-
-#
-# Specifies the CA bundle file to be used in verifying the vCenter
-# server certificate.
-# (string value)
-#ca_file=<None>
-
-#
-# If true, the vCenter server certificate is not verified. If false,
-# then the default CA truststore is used for verification.
-#
-# Related options:
-# * ca_file: This option is ignored if "ca_file" is set.
-# (boolean value)
-#insecure=false
-
-# Name of a VMware Cluster ComputeResource. (string value)
-#cluster_name=<None>
-
-#
-# Regular expression pattern to match the name of datastore.
-#
-# The datastore_regex setting specifies the datastores to use with
-# Compute. For example, datastore_regex="nas.*" selects all the data
-# stores that have a name starting with "nas".
-#
-# NOTE: If no regex is given, it just picks the datastore with the
-# most freespace.
-#
-# Possible values:
-#
-# * Any matching regular expression to a datastore must be given
-# (string value)
-#datastore_regex=<None>
-
-#
-# Time interval in seconds to poll remote tasks invoked on
-# VMware VC server.
-# (floating point value)
-#task_poll_interval=0.5
-
-#
-# Number of times VMware vCenter server API must be retried on connection
-# failures, e.g. socket error, etc.
-# (integer value)
-# Minimum value: 0
-#api_retry_count=10
-
-#
-# This option specifies VNC starting port.
-#
-# Every VM created by ESX host has an option of enabling VNC client
-# for remote connection. Above option 'vnc_port' helps you to set
-# default starting port for the VNC client.
-#
-# Possible values:
-#
-# * Any valid port number within 5900 -(5900 + vnc_port_total)
-#
-# Related options:
-# Below options should be set to enable VNC client.
-# * vnc.enabled = True
-# * vnc_port_total
-# (port value)
-# Minimum value: 0
-# Maximum value: 65535
-#vnc_port=5900
-
-#
-# Total number of VNC ports.
-# (integer value)
-# Minimum value: 0
-#vnc_port_total=10000
-
-#
-# This option enables/disables the use of linked clone.
-#
-# The ESX hypervisor requires a copy of the VMDK file in order to boot
-# up a virtual machine. The compute driver must download the VMDK via
-# HTTP from the OpenStack Image service to a datastore that is visible
-# to the hypervisor and cache it. Subsequent virtual machines that need
-# the VMDK use the cached version and don't have to copy the file again
-# from the OpenStack Image service.
-#
-# If set to false, even with a cached VMDK, there is still a copy
-# operation from the cache location to the hypervisor file directory
-# in the shared datastore. If set to true, the above copy operation
-# is avoided as it creates copy of the virtual machine that shares
-# virtual disks with its parent VM.
-# (boolean value)
-#use_linked_clone=true
-
-# DEPRECATED:
-# This option specifies VIM Service WSDL Location
-#
-# If vSphere API versions 5.1 and later is being used, this section can
-# be ignored. If version is less than 5.1, WSDL files must be hosted
-# locally and their location must be specified in the above section.
-#
-# Optional over-ride to default location for bug work-arounds.
-#
-# Possible values:
-#
-# * http://<server>/vimService.wsdl
-# * file:///opt/stack/vmware/SDK/wsdl/vim25/vimService.wsdl
-# (string value)
-# This option is deprecated for removal since 15.0.0.
-# Its value may be silently ignored in the future.
-# Reason: Only vCenter versions earlier than 5.1 require this option and the
-# current minimum version is 5.1.
-#wsdl_location=<None>
-
-#
-# This option enables or disables storage policy based placement
-# of instances.
-#
-# Related options:
-#
-# * pbm_default_policy
-# (boolean value)
-#pbm_enabled=false
-
-#
-# This option specifies the PBM service WSDL file location URL.
-#
-# Setting this will disable storage policy based placement
-# of instances.
-#
-# Possible values:
-#
-# * Any valid file path
-# e.g file:///opt/SDK/spbm/wsdl/pbmService.wsdl
-# (string value)
-#pbm_wsdl_location=<None>
-
-#
-# This option specifies the default policy to be used.
-#
-# If pbm_enabled is set and there is no defined storage policy for the
-# specific request, then this policy will be used.
-#
-# Possible values:
-#
-# * Any valid storage policy such as VSAN default storage policy
-#
-# Related options:
-#
-# * pbm_enabled
-# (string value)
-#pbm_default_policy=<None>
-
-#
-# This option specifies the limit on the maximum number of objects to
-# return in a single result.
-#
-# A positive value will cause the operation to suspend the retrieval
-# when the count of objects reaches the specified limit. The server may
-# still limit the count to something less than the configured value.
-# Any remaining objects may be retrieved with additional requests.
-# (integer value)
-# Minimum value: 0
-#maximum_objects=100
-
-#
-# This option adds a prefix to the folder where cached images are stored
-#
-# This is not the full path - just a folder prefix. This should only be
-# used when a datastore cache is shared between compute nodes.
-#
-# Note: This should only be used when the compute nodes are running on same
-# host or they have a shared file system.
-#
-# Possible values:
-#
-# * Any string representing the cache prefix to the folder
-# (string value)
-#cache_prefix=<None>
-
+{%- set compute_driver = controller.get('compute_driver', 'libvirt.LibvirtDriver') %}
+{%- if compute_driver in compute_driver_mapping.keys() %}
+{%- set _data = controller.get(compute_driver_mapping[compute_driver]) %}
+{%- include "nova/files/pike/compute/_" + compute_driver_mapping[compute_driver] + ".conf" %}
+{%- endif %}
[vnc]
#
diff --git a/nova/files/queens/compute/_vmware.conf b/nova/files/queens/compute/_vmware.conf
new file mode 100644
index 0000000..034053b
--- /dev/null
+++ b/nova/files/queens/compute/_vmware.conf
@@ -0,0 +1,332 @@
+
+[vmware]
+#
+# Related options:
+# Following options must be set in order to launch VMware-based
+# virtual machines.
+#
+# * compute_driver: Must use vmwareapi.VMwareVCDriver.
+# * vmware.host_username
+# * vmware.host_password
+# * vmware.cluster_name
+
+#
+# From nova.conf
+#
+
+#
+# This option specifies the physical ethernet adapter name for VLAN
+# networking.
+#
+# Set the vlan_interface configuration option to match the ESX host
+# interface that handles VLAN-tagged VM traffic.
+#
+# Possible values:
+#
+# * Any valid string representing VLAN interface name
+# (string value)
+#vlan_interface = vmnic0
+{%- if _data.vlan_interface is defined %}
+vlan_interface = {{ _data.vlan_interface }}
+{%- endif %}
+
+#
+# This option should be configured only when using the NSX-MH Neutron
+# plugin. This is the name of the integration bridge on the ESXi server
+# or host. This should not be set for any other Neutron plugin. Hence
+# the default value is not set.
+#
+# Possible values:
+#
+# * Any valid string representing the name of the integration bridge
+# (string value)
+#integration_bridge = <None>
+{%- if _data.integration_bridge is defined %}
+integration_bridge = {{ _data.integration_bridge }}
+{%- endif %}
+
+#
+# Set this value if affected by an increased network latency causing
+# repeated characters when typing in a remote console.
+# (integer value)
+# Minimum value: 0
+#console_delay_seconds = <None>
+{%- if _data.console_delay_seconds is defined %}
+console_delay_seconds = {{ _data.console_delay_seconds }}
+{%- endif %}
+
+#
+# Identifies the remote system where the serial port traffic will
+# be sent.
+#
+# This option adds a virtual serial port which sends console output to
+# a configurable service URI. At the service URI address there will be
+# virtual serial port concentrator that will collect console logs.
+# If this is not set, no serial ports will be added to the created VMs.
+#
+# Possible values:
+#
+# * Any valid URI
+# (string value)
+#serial_port_service_uri = <None>
+{%- if _data.serial_port_service_uri is defined %}
+serial_port_service_uri = {{ _data.serial_port_service_uri }}
+{%- endif %}
+
+#
+# Identifies a proxy service that provides network access to the
+# serial_port_service_uri.
+#
+# Possible values:
+#
+# * Any valid URI (The scheme is 'telnet' or 'telnets'.)
+#
+# Related options:
+# This option is ignored if serial_port_service_uri is not specified.
+# * serial_port_service_uri
+# (uri value)
+#serial_port_proxy_uri = <None>
+{%- if _data.serial_port_proxy_uri is defined %}
+serial_port_proxy_uri = {{ _data.serial_port_proxy_uri }}
+{%- endif %}
+
+# Specifies the directory where the Virtual Serial Port Concentrator is
+# storing console log files. It should match the 'serial_log_dir' config
+# value of VSPC.
+# (string value)
+#serial_log_dir = /opt/vmware/vspc
+{%- if _data.serial_port_proxy_uri is defined %}
+serial_port_proxy_uri = {{ _data.serial_port_proxy_uri }}
+{%- endif %}
+
+
+#
+# Hostname or IP address for connection to VMware vCenter host. (unknown value)
+#host_ip = <None>
+host_ip = {{ _data.host_ip }}
+
+# Port for connection to VMware vCenter host. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#host_port = 443
+{%- if _data.host_port is defined %}
+host_port = {{ _data.host_port }}
+{%- endif %}
+
+# Username for connection to VMware vCenter host. (string value)
+#host_username = <None>
+host_username = {{ _data.host_username }}
+
+# Password for connection to VMware vCenter host. (string value)
+#host_password = <None>
+host_password = {{ _data.host_password }}
+
+#
+# Specifies the CA bundle file to be used in verifying the vCenter
+# server certificate.
+# (string value)
+#ca_file = <None>
+{%- if _data.cacert_file is defined %}
+ca_file = {{ _data.cacert_file }}
+{%- endif %}
+
+#
+# If true, the vCenter server certificate is not verified. If false,
+# then the default CA truststore is used for verification.
+#
+# Related options:
+# * ca_file: This option is ignored if "ca_file" is set.
+# (boolean value)
+#insecure = false
+{%- if _data.insecure is defined %}
+insecure = {{ _data.insecure }}
+{%- endif %}
+
+# Name of a VMware Cluster ComputeResource. (string value)
+#cluster_name = <None>
+cluster_name = {{ _data.cluster_name }}
+
+#
+# Regular expression pattern to match the name of datastore.
+#
+# The datastore_regex setting specifies the datastores to use with
+# Compute. For example, datastore_regex="nas.*" selects all the data
+# stores that have a name starting with "nas".
+#
+# NOTE: If no regex is given, it just picks the datastore with the
+# most freespace.
+#
+# Possible values:
+#
+# * Any matching regular expression to a datastore must be given
+# (string value)
+#datastore_regex = <None>
+{%- if _data.datastore_regex is defined %}
+datastore_regex = {{ _data.datastore_regex }}
+{%- endif %}
+
+#
+# Time interval in seconds to poll remote tasks invoked on
+# VMware VC server.
+# (floating point value)
+#task_poll_interval = 0.5
+{%- if _data.task_poll_interval is defined %}
+task_poll_interval = {{ _data.task_poll_interval }}
+{%- endif %}
+
+
+#
+# Number of times VMware vCenter server API must be retried on connection
+# failures, e.g. socket error, etc.
+# (integer value)
+# Minimum value: 0
+#api_retry_count = 10
+{%- if _data.api_retry_count is defined %}
+api_retry_count = {{ _data.api_retry_count }}
+{%- endif %}
+
+#
+# This option specifies VNC starting port.
+#
+# Every VM created by ESX host has an option of enabling VNC client
+# for remote connection. Above option 'vnc_port' helps you to set
+# default starting port for the VNC client.
+#
+# Possible values:
+#
+# * Any valid port number within 5900 -(5900 + vnc_port_total)
+#
+# Related options:
+# Below options should be set to enable VNC client.
+# * vnc.enabled = True
+# * vnc_port_total
+# (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#vnc_port = 5900
+{%- if _data.vnc_port is defined %}
+vnc_port = {{ _data.vnc_port }}
+{%- endif %}
+
+#
+# Total number of VNC ports.
+# (integer value)
+# Minimum value: 0
+#vnc_port_total = 10000
+{%- if _data.vnc_port_total is defined %}
+vnc_port_total = {{ _data.vnc_port_total }}
+{%- endif %}
+
+#
+# This option enables/disables the use of linked clone.
+#
+# The ESX hypervisor requires a copy of the VMDK file in order to boot
+# up a virtual machine. The compute driver must download the VMDK via
+# HTTP from the OpenStack Image service to a datastore that is visible
+# to the hypervisor and cache it. Subsequent virtual machines that need
+# the VMDK use the cached version and don't have to copy the file again
+# from the OpenStack Image service.
+#
+# If set to false, even with a cached VMDK, there is still a copy
+# operation from the cache location to the hypervisor file directory
+# in the shared datastore. If set to true, the above copy operation
+# is avoided as it creates copy of the virtual machine that shares
+# virtual disks with its parent VM.
+# (boolean value)
+#use_linked_clone = true
+{%- if _data.use_linked_clone is defined %}
+use_linked_clone = {{ _data.use_linked_clone }}
+{%- endif %}
+
+# This option sets the http connection pool size
+#
+# The connection pool size is the maximum number of connections from nova to
+# vSphere. It should only be increased if there are warnings indicating that
+# the connection pool is full, otherwise, the default should suffice.
+# (integer value)
+# Minimum value: 10
+#connection_pool_size = 10
+{%- if _data.connection_pool_size is defined %}
+connection_pool_size = {{ _data.connection_pool_size }}
+{%- endif %}
+
+#
+# This option enables or disables storage policy based placement
+# of instances.
+#
+# Related options:
+#
+# * pbm_default_policy
+# (boolean value)
+#pbm_enabled = false
+{%- if _data.pbm_enabled is defined %}
+pbm_enabled = {{ _data.pbm_enabled }}
+{%- endif %}
+
+#
+# This option specifies the PBM service WSDL file location URL.
+#
+# Setting this will disable storage policy based placement
+# of instances.
+#
+# Possible values:
+#
+# * Any valid file path
+# e.g file:///opt/SDK/spbm/wsdl/pbmService.wsdl
+# (string value)
+#pbm_wsdl_location = <None>
+{%- if _data.pbm_wsdl_location is defined %}
+pbm_wsdl_location = {{ _data.pbm_wsdl_location }}
+{%- endif %}
+
+#
+# This option specifies the default policy to be used.
+#
+# If pbm_enabled is set and there is no defined storage policy for the
+# specific request, then this policy will be used.
+#
+# Possible values:
+#
+# * Any valid storage policy such as VSAN default storage policy
+#
+# Related options:
+#
+# * pbm_enabled
+# (string value)
+#pbm_default_policy = <None>
+{%- if _data.pbm_default_policy is defined %}
+pbm_default_policy = {{ _data.pbm_default_policy }}
+{%- endif %}
+
+#
+# This option specifies the limit on the maximum number of objects to
+# return in a single result.
+#
+# A positive value will cause the operation to suspend the retrieval
+# when the count of objects reaches the specified limit. The server may
+# still limit the count to something less than the configured value.
+# Any remaining objects may be retrieved with additional requests.
+# (integer value)
+# Minimum value: 0
+#maximum_objects = 100
+{%- if _data.maximum_objects is defined %}
+maximum_objects = {{ _data.maximum_objects }}
+{%- endif %}
+
+#
+# This option adds a prefix to the folder where cached images are stored
+#
+# This is not the full path - just a folder prefix. This should only be
+# used when a datastore cache is shared between compute nodes.
+#
+# Note: This should only be used when the compute nodes are running on same
+# host or they have a shared file system.
+#
+# Possible values:
+#
+# * Any string representing the cache prefix to the folder
+# (string value)
+#cache_prefix = <None>
+{%- if _data.cache_prefix is defined %}
+cache_prefix = {{ _data.cache_prefix }}
+{%- endif %}
diff --git a/nova/files/queens/nova-compute.conf.Debian b/nova/files/queens/nova-compute.conf.Debian
index 599c04d..d471a26 100644
--- a/nova/files/queens/nova-compute.conf.Debian
+++ b/nova/files/queens/nova-compute.conf.Debian
@@ -1,4 +1,4 @@
-{%- from "nova/map.jinja" import compute with context %}
+{%- from "nova/map.jinja" import compute,compute_driver_mapping with context %}
[DEFAULT]
#
@@ -9629,286 +9629,11 @@
# Tenant Name (string value)
#tenant_name = <None>
-
-[vmware]
-#
-# Related options:
-# Following options must be set in order to launch VMware-based
-# virtual machines.
-#
-# * compute_driver: Must use vmwareapi.VMwareVCDriver.
-# * vmware.host_username
-# * vmware.host_password
-# * vmware.cluster_name
-
-#
-# From nova.conf
-#
-
-#
-# This option specifies the physical ethernet adapter name for VLAN
-# networking.
-#
-# Set the vlan_interface configuration option to match the ESX host
-# interface that handles VLAN-tagged VM traffic.
-#
-# Possible values:
-#
-# * Any valid string representing VLAN interface name
-# (string value)
-#vlan_interface = vmnic0
-
-#
-# This option should be configured only when using the NSX-MH Neutron
-# plugin. This is the name of the integration bridge on the ESXi
-# server
-# or host. This should not be set for any other Neutron plugin. Hence
-# the default value is not set.
-#
-# Possible values:
-#
-# * Any valid string representing the name of the integration bridge
-# (string value)
-#integration_bridge = <None>
-
-#
-# Set this value if affected by an increased network latency causing
-# repeated characters when typing in a remote console.
-# (integer value)
-# Minimum value: 0
-#console_delay_seconds = <None>
-
-#
-# Identifies the remote system where the serial port traffic will
-# be sent.
-#
-# This option adds a virtual serial port which sends console output to
-# a configurable service URI. At the service URI address there will be
-# virtual serial port concentrator that will collect console logs.
-# If this is not set, no serial ports will be added to the created
-# VMs.
-#
-# Possible values:
-#
-# * Any valid URI
-# (string value)
-#serial_port_service_uri = <None>
-
-#
-# Identifies a proxy service that provides network access to the
-# serial_port_service_uri.
-#
-# Possible values:
-#
-# * Any valid URI (The scheme is 'telnet' or 'telnets'.)
-#
-# Related options:
-# This option is ignored if serial_port_service_uri is not specified.
-# * serial_port_service_uri
-# (uri value)
-#serial_port_proxy_uri = <None>
-
-#
-# Specifies the directory where the Virtual Serial Port Concentrator
-# is
-# storing console log files. It should match the 'serial_log_dir'
-# config
-# value of VSPC.
-# (string value)
-#serial_log_dir = /opt/vmware/vspc
-
-#
-# Hostname or IP address for connection to VMware vCenter host.
-# (unknown value)
-#host_ip = <None>
-
-# Port for connection to VMware vCenter host. (port value)
-# Minimum value: 0
-# Maximum value: 65535
-#host_port = 443
-
-# Username for connection to VMware vCenter host. (string value)
-#host_username = <None>
-
-# Password for connection to VMware vCenter host. (string value)
-#host_password = <None>
-
-#
-# Specifies the CA bundle file to be used in verifying the vCenter
-# server certificate.
-# (string value)
-#ca_file = <None>
-
-#
-# If true, the vCenter server certificate is not verified. If false,
-# then the default CA truststore is used for verification.
-#
-# Related options:
-# * ca_file: This option is ignored if "ca_file" is set.
-# (boolean value)
-#insecure = false
-
-# Name of a VMware Cluster ComputeResource. (string value)
-#cluster_name = <None>
-
-#
-# Regular expression pattern to match the name of datastore.
-#
-# The datastore_regex setting specifies the datastores to use with
-# Compute. For example, datastore_regex="nas.*" selects all the data
-# stores that have a name starting with "nas".
-#
-# NOTE: If no regex is given, it just picks the datastore with the
-# most freespace.
-#
-# Possible values:
-#
-# * Any matching regular expression to a datastore must be given
-# (string value)
-#datastore_regex = <None>
-
-#
-# Time interval in seconds to poll remote tasks invoked on
-# VMware VC server.
-# (floating point value)
-#task_poll_interval = 0.5
-
-#
-# Number of times VMware vCenter server API must be retried on
-# connection
-# failures, e.g. socket error, etc.
-# (integer value)
-# Minimum value: 0
-#api_retry_count = 10
-
-#
-# This option specifies VNC starting port.
-#
-# Every VM created by ESX host has an option of enabling VNC client
-# for remote connection. Above option 'vnc_port' helps you to set
-# default starting port for the VNC client.
-#
-# Possible values:
-#
-# * Any valid port number within 5900 -(5900 + vnc_port_total)
-#
-# Related options:
-# Below options should be set to enable VNC client.
-# * vnc.enabled = True
-# * vnc_port_total
-# (port value)
-# Minimum value: 0
-# Maximum value: 65535
-#vnc_port = 5900
-
-#
-# Total number of VNC ports.
-# (integer value)
-# Minimum value: 0
-#vnc_port_total = 10000
-
-#
-# This option enables/disables the use of linked clone.
-#
-# The ESX hypervisor requires a copy of the VMDK file in order to boot
-# up a virtual machine. The compute driver must download the VMDK via
-# HTTP from the OpenStack Image service to a datastore that is visible
-# to the hypervisor and cache it. Subsequent virtual machines that
-# need
-# the VMDK use the cached version and don't have to copy the file
-# again
-# from the OpenStack Image service.
-#
-# If set to false, even with a cached VMDK, there is still a copy
-# operation from the cache location to the hypervisor file directory
-# in the shared datastore. If set to true, the above copy operation
-# is avoided as it creates copy of the virtual machine that shares
-# virtual disks with its parent VM.
-# (boolean value)
-#use_linked_clone = true
-
-#
-# This option sets the http connection pool size
-#
-# The connection pool size is the maximum number of connections from
-# nova to
-# vSphere. It should only be increased if there are warnings
-# indicating that
-# the connection pool is full, otherwise, the default should suffice.
-# (integer value)
-# Minimum value: 10
-#connection_pool_size = 10
-
-#
-# This option enables or disables storage policy based placement
-# of instances.
-#
-# Related options:
-#
-# * pbm_default_policy
-# (boolean value)
-#pbm_enabled = false
-
-#
-# This option specifies the PBM service WSDL file location URL.
-#
-# Setting this will disable storage policy based placement
-# of instances.
-#
-# Possible values:
-#
-# * Any valid file path
-# e.g file:///opt/SDK/spbm/wsdl/pbmService.wsdl
-# (string value)
-#pbm_wsdl_location = <None>
-
-#
-# This option specifies the default policy to be used.
-#
-# If pbm_enabled is set and there is no defined storage policy for the
-# specific request, then this policy will be used.
-#
-# Possible values:
-#
-# * Any valid storage policy such as VSAN default storage policy
-#
-# Related options:
-#
-# * pbm_enabled
-# (string value)
-#pbm_default_policy = <None>
-
-#
-# This option specifies the limit on the maximum number of objects to
-# return in a single result.
-#
-# A positive value will cause the operation to suspend the retrieval
-# when the count of objects reaches the specified limit. The server
-# may
-# still limit the count to something less than the configured value.
-# Any remaining objects may be retrieved with additional requests.
-# (integer value)
-# Minimum value: 0
-#maximum_objects = 100
-
-#
-# This option adds a prefix to the folder where cached images are
-# stored
-#
-# This is not the full path - just a folder prefix. This should only
-# be
-# used when a datastore cache is shared between compute nodes.
-#
-# Note: This should only be used when the compute nodes are running on
-# same
-# host or they have a shared file system.
-#
-# Possible values:
-#
-# * Any string representing the cache prefix to the folder
-# (string value)
-#cache_prefix = <None>
-
+{%- set compute_driver = compute.get('compute_driver', 'libvirt.LibvirtDriver') %}
+{%- if compute_driver in compute_driver_mapping.keys() %}
+{%- set _data = compute.get(compute_driver_mapping[compute_driver]) %}
+{%- include "nova/files/queens/compute/_" + compute_driver_mapping[compute_driver] + ".conf" %}
+{%- endif %}
[vnc]
#
diff --git a/nova/files/queens/nova-controller.conf.Debian b/nova/files/queens/nova-controller.conf.Debian
index de3178f..c413d87 100644
--- a/nova/files/queens/nova-controller.conf.Debian
+++ b/nova/files/queens/nova-controller.conf.Debian
@@ -1,4 +1,4 @@
-{%- from "nova/map.jinja" import controller with context %}
+{%- from "nova/map.jinja" import controller,compute_driver_mapping with context %}
[DEFAULT]
#
@@ -9543,286 +9543,11 @@
# Tenant Name (string value)
#tenant_name = <None>
-
-[vmware]
-#
-# Related options:
-# Following options must be set in order to launch VMware-based
-# virtual machines.
-#
-# * compute_driver: Must use vmwareapi.VMwareVCDriver.
-# * vmware.host_username
-# * vmware.host_password
-# * vmware.cluster_name
-
-#
-# From nova.conf
-#
-
-#
-# This option specifies the physical ethernet adapter name for VLAN
-# networking.
-#
-# Set the vlan_interface configuration option to match the ESX host
-# interface that handles VLAN-tagged VM traffic.
-#
-# Possible values:
-#
-# * Any valid string representing VLAN interface name
-# (string value)
-#vlan_interface = vmnic0
-
-#
-# This option should be configured only when using the NSX-MH Neutron
-# plugin. This is the name of the integration bridge on the ESXi
-# server
-# or host. This should not be set for any other Neutron plugin. Hence
-# the default value is not set.
-#
-# Possible values:
-#
-# * Any valid string representing the name of the integration bridge
-# (string value)
-#integration_bridge = <None>
-
-#
-# Set this value if affected by an increased network latency causing
-# repeated characters when typing in a remote console.
-# (integer value)
-# Minimum value: 0
-#console_delay_seconds = <None>
-
-#
-# Identifies the remote system where the serial port traffic will
-# be sent.
-#
-# This option adds a virtual serial port which sends console output to
-# a configurable service URI. At the service URI address there will be
-# virtual serial port concentrator that will collect console logs.
-# If this is not set, no serial ports will be added to the created
-# VMs.
-#
-# Possible values:
-#
-# * Any valid URI
-# (string value)
-#serial_port_service_uri = <None>
-
-#
-# Identifies a proxy service that provides network access to the
-# serial_port_service_uri.
-#
-# Possible values:
-#
-# * Any valid URI (The scheme is 'telnet' or 'telnets'.)
-#
-# Related options:
-# This option is ignored if serial_port_service_uri is not specified.
-# * serial_port_service_uri
-# (uri value)
-#serial_port_proxy_uri = <None>
-
-#
-# Specifies the directory where the Virtual Serial Port Concentrator
-# is
-# storing console log files. It should match the 'serial_log_dir'
-# config
-# value of VSPC.
-# (string value)
-#serial_log_dir = /opt/vmware/vspc
-
-#
-# Hostname or IP address for connection to VMware vCenter host.
-# (unknown value)
-#host_ip = <None>
-
-# Port for connection to VMware vCenter host. (port value)
-# Minimum value: 0
-# Maximum value: 65535
-#host_port = 443
-
-# Username for connection to VMware vCenter host. (string value)
-#host_username = <None>
-
-# Password for connection to VMware vCenter host. (string value)
-#host_password = <None>
-
-#
-# Specifies the CA bundle file to be used in verifying the vCenter
-# server certificate.
-# (string value)
-#ca_file = <None>
-
-#
-# If true, the vCenter server certificate is not verified. If false,
-# then the default CA truststore is used for verification.
-#
-# Related options:
-# * ca_file: This option is ignored if "ca_file" is set.
-# (boolean value)
-#insecure = false
-
-# Name of a VMware Cluster ComputeResource. (string value)
-#cluster_name = <None>
-
-#
-# Regular expression pattern to match the name of datastore.
-#
-# The datastore_regex setting specifies the datastores to use with
-# Compute. For example, datastore_regex="nas.*" selects all the data
-# stores that have a name starting with "nas".
-#
-# NOTE: If no regex is given, it just picks the datastore with the
-# most freespace.
-#
-# Possible values:
-#
-# * Any matching regular expression to a datastore must be given
-# (string value)
-#datastore_regex = <None>
-
-#
-# Time interval in seconds to poll remote tasks invoked on
-# VMware VC server.
-# (floating point value)
-#task_poll_interval = 0.5
-
-#
-# Number of times VMware vCenter server API must be retried on
-# connection
-# failures, e.g. socket error, etc.
-# (integer value)
-# Minimum value: 0
-#api_retry_count = 10
-
-#
-# This option specifies VNC starting port.
-#
-# Every VM created by ESX host has an option of enabling VNC client
-# for remote connection. Above option 'vnc_port' helps you to set
-# default starting port for the VNC client.
-#
-# Possible values:
-#
-# * Any valid port number within 5900 -(5900 + vnc_port_total)
-#
-# Related options:
-# Below options should be set to enable VNC client.
-# * vnc.enabled = True
-# * vnc_port_total
-# (port value)
-# Minimum value: 0
-# Maximum value: 65535
-#vnc_port = 5900
-
-#
-# Total number of VNC ports.
-# (integer value)
-# Minimum value: 0
-#vnc_port_total = 10000
-
-#
-# This option enables/disables the use of linked clone.
-#
-# The ESX hypervisor requires a copy of the VMDK file in order to boot
-# up a virtual machine. The compute driver must download the VMDK via
-# HTTP from the OpenStack Image service to a datastore that is visible
-# to the hypervisor and cache it. Subsequent virtual machines that
-# need
-# the VMDK use the cached version and don't have to copy the file
-# again
-# from the OpenStack Image service.
-#
-# If set to false, even with a cached VMDK, there is still a copy
-# operation from the cache location to the hypervisor file directory
-# in the shared datastore. If set to true, the above copy operation
-# is avoided as it creates copy of the virtual machine that shares
-# virtual disks with its parent VM.
-# (boolean value)
-#use_linked_clone = true
-
-#
-# This option sets the http connection pool size
-#
-# The connection pool size is the maximum number of connections from
-# nova to
-# vSphere. It should only be increased if there are warnings
-# indicating that
-# the connection pool is full, otherwise, the default should suffice.
-# (integer value)
-# Minimum value: 10
-#connection_pool_size = 10
-
-#
-# This option enables or disables storage policy based placement
-# of instances.
-#
-# Related options:
-#
-# * pbm_default_policy
-# (boolean value)
-#pbm_enabled = false
-
-#
-# This option specifies the PBM service WSDL file location URL.
-#
-# Setting this will disable storage policy based placement
-# of instances.
-#
-# Possible values:
-#
-# * Any valid file path
-# e.g file:///opt/SDK/spbm/wsdl/pbmService.wsdl
-# (string value)
-#pbm_wsdl_location = <None>
-
-#
-# This option specifies the default policy to be used.
-#
-# If pbm_enabled is set and there is no defined storage policy for the
-# specific request, then this policy will be used.
-#
-# Possible values:
-#
-# * Any valid storage policy such as VSAN default storage policy
-#
-# Related options:
-#
-# * pbm_enabled
-# (string value)
-#pbm_default_policy = <None>
-
-#
-# This option specifies the limit on the maximum number of objects to
-# return in a single result.
-#
-# A positive value will cause the operation to suspend the retrieval
-# when the count of objects reaches the specified limit. The server
-# may
-# still limit the count to something less than the configured value.
-# Any remaining objects may be retrieved with additional requests.
-# (integer value)
-# Minimum value: 0
-#maximum_objects = 100
-
-#
-# This option adds a prefix to the folder where cached images are
-# stored
-#
-# This is not the full path - just a folder prefix. This should only
-# be
-# used when a datastore cache is shared between compute nodes.
-#
-# Note: This should only be used when the compute nodes are running on
-# same
-# host or they have a shared file system.
-#
-# Possible values:
-#
-# * Any string representing the cache prefix to the folder
-# (string value)
-#cache_prefix = <None>
-
+{%- set compute_driver = controller.get('compute_driver', 'libvirt.LibvirtDriver') %}
+{%- if compute_driver in compute_driver_mapping.keys() %}
+{%- set _data = controller.get(compute_driver_mapping[compute_driver]) %}
+{%- include "nova/files/queens/compute/_" + compute_driver_mapping[compute_driver] + ".conf" %}
+{%- endif %}
[vnc]
#
diff --git a/nova/map.jinja b/nova/map.jinja
index bc7c9d1..599a75a 100644
--- a/nova/map.jinja
+++ b/nova/map.jinja
@@ -5,6 +5,11 @@
})}
%}
+# TODO(vsaienko) add more drivers settings when they are templatized
+{% set compute_driver_mapping = {
+ 'vmwareapi.VMwareVCDriver': 'vmware',
+} %}
+
{% set compute_bind_defaults = {
'vnc_address': '10.0.0.10',
'vnc_port': '6080',
diff --git a/nova/meta/sphinx.yml b/nova/meta/sphinx.yml
index edf5eae..92e4231 100644
--- a/nova/meta/sphinx.yml
+++ b/nova/meta/sphinx.yml
@@ -10,9 +10,6 @@
version:
name: "Version"
value: {{ compute.version }}
- virtualization:
- name: "Virtualization type"
- value: {{ compute.virtualization }}
{%- if compute.vncproxy_url is defined %}
vncproxy_url:
name: "VNC proxy URL"
diff --git a/tests/pillar/compute_cluster.sls b/tests/pillar/compute_cluster.sls
index 4bbcfba..c057c09 100644
--- a/tests/pillar/compute_cluster.sls
+++ b/tests/pillar/compute_cluster.sls
@@ -6,7 +6,6 @@
hugepages:
mount_points:
- path: /mnt/hugepages_1GB
- virtualization: kvm
disk_cachemodes: network=writeback,block=none
heal_instance_info_cache_interval: 60
vncproxy_url: openstack:6080
diff --git a/tests/pillar/compute_cluster_vmware.sls b/tests/pillar/compute_cluster_vmware.sls
new file mode 100644
index 0000000..ceaf142
--- /dev/null
+++ b/tests/pillar/compute_cluster_vmware.sls
@@ -0,0 +1,78 @@
+nova:
+ compute:
+ version: pike
+ enabled: true
+ bind:
+ vnc_address: 127.0.0.1
+ vnc_port: 6080
+ vnc_name: 0.0.0.0
+ database:
+ engine: mysql
+ host: 127.0.0.1
+ port: 3306
+ name: nova
+ user: nova
+ password: password
+ identity:
+ engine: keystone
+ region: RegionOne
+ host: 127.0.0.1
+ port: 35357
+ user: nova
+ password: password
+ tenant: service
+ logging:
+ log_appender: false
+ log_handlers:
+ watchedfile:
+ enabled: true
+ fluentd:
+ enabled: false
+ ossyslog:
+ enabled: false
+ message_queue:
+ engine: rabbitmq
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.1.1
+ - host: 127.0.2.1
+ user: openstack
+ password: password
+ virtual_host: '/openstack'
+ image:
+ engine: glance
+ host: 127.0.0.1
+ port: 9292
+ network:
+ engine: neutron
+ region: RegionOne
+ host: 127.0.0.1
+ port: 9696
+ extension_sync_interval: 600
+ user: nova
+ password: password
+ tenant: service
+ metadata:
+ password: metadata
+ cache:
+ engine: memcached
+ members:
+ - host: 127.0.0.1
+ port: 11211
+ - host: 127.0.1.1
+ port: 11211
+ - host: 127.0.2.1
+ port: 11211
+ compute_driver: vmwareapi.VMwareVCDriver
+ vmware:
+ host_username: vmware
+ host_password: vmware
+ cluster_name: vmware_cluster01
+ upgrade_levels:
+ compute: liberty
+ libvirt_service_group: libvirtd
+ lvm:
+ ephemeral: yes
+ images_volume_group: nova_vg
+ volume_clear: zero
+ volume_clear_size: 0
diff --git a/tests/pillar/compute_cluster_vmware_queens.sls b/tests/pillar/compute_cluster_vmware_queens.sls
new file mode 100644
index 0000000..1d6b0cf
--- /dev/null
+++ b/tests/pillar/compute_cluster_vmware_queens.sls
@@ -0,0 +1,78 @@
+nova:
+ compute:
+ version: queens
+ enabled: true
+ bind:
+ vnc_address: 127.0.0.1
+ vnc_port: 6080
+ vnc_name: 0.0.0.0
+ database:
+ engine: mysql
+ host: 127.0.0.1
+ port: 3306
+ name: nova
+ user: nova
+ password: password
+ identity:
+ engine: keystone
+ region: RegionOne
+ host: 127.0.0.1
+ port: 35357
+ user: nova
+ password: password
+ tenant: service
+ logging:
+ log_appender: false
+ log_handlers:
+ watchedfile:
+ enabled: true
+ fluentd:
+ enabled: false
+ ossyslog:
+ enabled: false
+ message_queue:
+ engine: rabbitmq
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.1.1
+ - host: 127.0.2.1
+ user: openstack
+ password: password
+ virtual_host: '/openstack'
+ image:
+ engine: glance
+ host: 127.0.0.1
+ port: 9292
+ network:
+ engine: neutron
+ region: RegionOne
+ host: 127.0.0.1
+ port: 9696
+ extension_sync_interval: 600
+ user: nova
+ password: password
+ tenant: service
+ metadata:
+ password: metadata
+ cache:
+ engine: memcached
+ members:
+ - host: 127.0.0.1
+ port: 11211
+ - host: 127.0.1.1
+ port: 11211
+ - host: 127.0.2.1
+ port: 11211
+ compute_driver: vmwareapi.VMwareVCDriver
+ vmware:
+ host_username: vmware
+ host_password: vmware
+ cluster_name: vmware_cluster01
+ upgrade_levels:
+ compute: liberty
+ libvirt_service_group: libvirtd
+ lvm:
+ ephemeral: yes
+ images_volume_group: nova_vg
+ volume_clear: zero
+ volume_clear_size: 0
diff --git a/tests/pillar/compute_single.sls b/tests/pillar/compute_single.sls
index 211a60e..8d752de 100644
--- a/tests/pillar/compute_single.sls
+++ b/tests/pillar/compute_single.sls
@@ -2,7 +2,6 @@
compute:
version: newton
enabled: true
- virtualization: kvm
heal_instance_info_cache_interval: 60
vncproxy_url: openstack:6080
vnc_keymap: en-gb
diff --git a/tests/pillar/compute_single_config_drive_options.sls b/tests/pillar/compute_single_config_drive_options.sls
index a3c03da..f33faca 100644
--- a/tests/pillar/compute_single_config_drive_options.sls
+++ b/tests/pillar/compute_single_config_drive_options.sls
@@ -2,7 +2,6 @@
compute:
version: mitaka
enabled: true
- virtualization: kvm
heal_instance_info_cache_interval: 60
vncproxy_url: openstack:6080
vnc_keymap: en-gb