VMware driver discovery service

The VMware driver discovery service discovers the following resources on vCenter and adds the discovered resources into the OpenStack database.

About this task

Table 1. vCenter resources to be discovered
vCenter resources Resources added into OpenStack
Virtual machine Instance
Template Image
Port group Network
Important: Do not delete a port group that is seemingly unused when you create an OpenStack external network. The port group in vCenter has a one-to-one correspondence with the Neutron network in OpenStack including the tenant network and external network. If the port group is deleted, the mismatched Neutron network is detected and removed by VMware driver discovery service.
Note: Updating the attributes of a discovered network from OpenStack is not supported. For example, a discovered network with the attribute shared: true cannot be changed to shared: false.
The following attributes are configured during the deployment of the VMware driver discovery service. After the deployment process, they are located in the /etc/nova/vmware-discovery.conf file.
Note: Resources on Vcenter must be on-boarded in Default domain /admin project as admin user.

Example

Table 2. Discovery service attributes
Attributes Description
[DEFAULT] DEFAULT is the group name.
verbose Logs information messages. Must be a Boolean value.
   
[openstack] openstack is the group name.
auth_url Authentication URL to authenticate with Keystone. Must be a string value.
keystone_version Keystone version. For example: keystone_version = v2.0
admin_tenant_name Tenant name for connecting to Keystone in an administrator context. Must be a string value. For example: admin_tenant_name = admin
admin_user User name for connecting to Keystone in an administrator context. Must be a string value. For example: admin_user = admin
admin_password Password for connecting to Keystone in an administrator context. Must be a string value.
connection_cacert For local SSL connections, specify the path and file name of the cacert file.
http_insecure Explicitly allows the discovery service to perform "insecure" TLS (https) requests. Must be a Boolean value.
   
[vmware_discovery] vmware_discovery is the group name.
discovery_manager

Full class name of the manager for VMware discovery service. Must be a string value.

For example:

discovery_manager = vmware.nova.driver.compute.manager.VMwareDiscoveryManager

staging_project_name The name of the staging project. Must be a string value. You must set the value to admin: staging_project_name = admin.
staging_user The name of the staging user. Must be a string value. Set the field value to admin: staging_user = admin
instance_prefix The prefix that is added to the name of the discovered instances. For example: instance_prefix = Discovered VM
flavor_prefix The prefix that is added to the instance name of the flavors created for discovered instances. For example: flavor_prefix = Flavor for discovered instances
instance_sync_interval Instance periodic sync interval that is specified in seconds. The default value is 20. The minimum value is 10. For example: instance_sync_interval = 20
template_sync_interval Template periodic sync interval that is specified in seconds. The default is 300 seconds. The minimum is the value of the instance_sync_interval parameter. For example: template_sync_interval = 300
portgroup_sync_interval Port group periodic sync interval that is specified in seconds. The default value is 300. The minimum is the value of the instance_sync_interval parameter. For example: portgroup_sync_interval = 300
full_instance_sync_frequency Specifies the number of intervals between full instance syncs. Only instances that are known to be out of sync are synced on the interval except after this many intervals when all instances are synced. For example: full_instance_sync_frequency = 30
image_periodic_sync_interval_in_seconds Image periodic sync interval that is specified in seconds. This interval is the time from the end of one successful image periodic sync operation to the start of the next. For example: image_periodic_sync_interval_in_seconds = 300
image_sync_retry_interval_time_in_seconds The time in seconds between image sync attempts to try again if an error was encountered during an image sync operation. For example: image_sync_retry_interval_time_in_seconds = 60
image_limit The maximum number of images to return. The default is 500 images. If your OpenStack has more than 500 images, this limit must be increased to include all images. For example: image_limit = 500
longrun_loop_interval
longrun_initial_delay
Minimum delay interval and initial delay seconds for long run tasks. For example:
longrun_loop_interval = 7
longrun_initial_delay = 10
vmware_default_image_name Default name of the image for discovered VMware instances. The VMware default image is used when the actual image is unknown that originated an instance in VMware. There must be an actual image reference in Nova, because instance creation requires a valid image reference. For example: vmware_default_image_name = VMware Unknown Image
target_region Target region for discovered templates. Used to select the correct Glance end point. For example: target_region = RegionOne
vm_ignore_regex Regular expression that is used to ignore some virtual machines. For example, if the regular expression is "Management-.*", then all the virtual machines with a name that starts with "Management-" are ignored by the discovery service.
vm_ignore_list Virtual machines to be ignored by the discovery service. For example, if the virtual machine that installs the vCenter software is also in the same vCenter that it is managing to, it is suggested to ignore discovery for this VM. You should also avoid managing it from OpenStack since the vCenter virtual machine is critical and all management for the VMware cloud is through the vCenter. It is also suggested that the vCenter virtual machine is planned outside of the vCenter to which it is being managed.
allow_instance_deletion Allow orphan instance to be deleted from OpenStack when the instance does not exist in managed-to vCenter. The default value is true. For example: allow_instance_deletion = true.
Note: If you decide to update your topology, as described in Updating a deployed topology, note that the default value for this attribute was changed in fix pack 2. If you want to use the new default value, you must update the value manually in the environment file.
allow_template_deletion Allow orphan template to be deleted from OpenStack when the template does not exist in managed-to vCenter. The default value is true. For example: allow_template_deletion = true.
Note: If you decide to update your topology, as described in Updating a deployed topology, note that the default value for this attribute was changed in fix pack 2. If you want to use the new default value, you must update the value manually in the environment file.
property_collector_max How many total managed object browsers (MOBs) might be retrieved from vCenter. For example: property_collector_max = 4000
clusters Names of the VMware cluster compute resource. For example: clusters=cluster1,cluster2
host_resource_pools Names of VMware resource pool. Used together with the host name. If a host name and a resource pool name are specified, it means that the resource pool under the host is the target. For example: host_resource_pools=host1:pool,host2'
cluster_resource_pools Names of VMware resource pool. Used together with cluster name. If the user specifies a cluster name and a resource pool name, it means that the resource pool under the cluster is the target. For example: cluster_resource_pools=cluster1:pool,cluster2:pool
   
[network] network is the group name.
physical_network_mappings Defining network discovery scope. There is no default value. physical_network_mappings is required when a port group is imported from VCenter.
Note: Must have 1 "physnet" map to 1 "vswitch". If "physnet" maps with multiple "vswitch"s, the last "vswitch" takes effect.

The format is <physnet>:<vswitch>. For example: physical_network_mappings=physnet1:vswitch0,physnet2:vswitch1

port_group_filter_list

Defining port group to be imported.

If no value is entered, all port groups are imported.

tenant_name

The tenant ID that the network is imported into.

For example: tenant_name = admin

allow_neutron_deletion

Allow the network to be deleted in Neutron when it does not exist in vCenter.

For example: allow_neutron_deletion = false

neutron_connection
Define database connection (might be encrypted) to Neutron. For example:
  • For MariaDB or MySQL: neutron_connection=mysql://neutron:neutron@localhost:3306/neutron
  • For DB2: neutron_connection=ibm_db_sa://neutron:neutron@localhost:50001/neutron