nova.conf - configuration options

nova.conf - configuration options

For a complete list of all available configuration options for each OpenStack Compute service, run bin/nova-<servicename> --help.

Description of API database configuration options
Configuration option = Default value Description
[api_database]  
connection = None (String) No help text available for this option.
connection_debug = 0 (Integer) No help text available for this option.
connection_trace = False (Boolean) No help text available for this option.
idle_timeout = 3600 (Integer) No help text available for this option.
max_overflow = None (Integer) No help text available for this option.
max_pool_size = None (Integer) No help text available for this option.
max_retries = 10 (Integer) No help text available for this option.
mysql_sql_mode = TRADITIONAL (String) No help text available for this option.
pool_timeout = None (Integer) No help text available for this option.
retry_interval = 10 (Integer) No help text available for this option.
slave_connection = None (String) No help text available for this option.
sqlite_synchronous = True (Boolean) No help text available for this option.
Description of authentication configuration options
Configuration option = Default value Description
[DEFAULT]  
auth_strategy = keystone (String) This determines the strategy to use for authentication: keystone or noauth2. ‘noauth2’ is designed for testing only, as it does no actual credential checking. ‘noauth2’ provides administrative credentials only if ‘admin’ is specified as the username.
Description of availability zones configuration options
Configuration option = Default value Description
[DEFAULT]  
default_availability_zone = nova

(String) Default compute node availability_zone.

This option determines the availability zone to be used when it is not specified in the VM creation request. If this option is not set, the default availability zone ‘nova’ is used.

Possible values:

  • Any string representing an availability zone name
  • ‘nova’ is the default value
default_schedule_zone = None

(String) Availability zone to use when user doesn’t specify one.

This option is used by the scheduler to determine which availability zone to place a new VM instance into if the user did not specify one at the time of VM boot request.

Possible values:

  • Any string representing an availability zone name
  • Default value is None.
internal_service_availability_zone = internal

(String) This option specifies the name of the availability zone for the internal services. Services like nova-scheduler, nova-network, nova-conductor are internal services. These services will appear in their own internal availability_zone.

Possible values:

  • Any string representing an availability zone name
  • ‘internal’ is the default value
Description of Barbican configuration options
Configuration option = Default value Description
[barbican]  
auth_endpoint = http://localhost:5000/v3 (String) Use this endpoint to connect to Keystone
barbican_api_version = None (String) Version of the Barbican API, for example: “v1”
barbican_endpoint = None (String) Use this endpoint to connect to Barbican, for example: “http://localhost:9311/
cafile = None (String) PEM encoded Certificate Authority to use when verifying HTTPs connections.
catalog_info = key-manager:barbican:public (String) DEPRECATED: Info to match when looking for barbican in the service catalog. Format is: separated values of the form: <service_type>:<service_name>:<endpoint_type> This option have been moved to the Castellan library
certfile = None (String) PEM encoded client certificate cert file
endpoint_template = None (String) DEPRECATED: Override service catalog lookup with template for barbican endpoint e.g. http://localhost:9311/v1/%(project_id)s This option have been moved to the Castellan library
insecure = False (Boolean) Verify HTTPS connections.
keyfile = None (String) PEM encoded client certificate key file
number_of_retries = 60 (Integer) Number of times to retry poll for key creation completion
os_region_name = None (String) DEPRECATED: Region name of this node This option have been moved to the Castellan library
retry_delay = 1 (Integer) Number of seconds to wait before retrying poll for key creation completion
timeout = None (Integer) Timeout value for http requests
Description of cell configuration options
Configuration option = Default value Description
[cells]  
call_timeout = 60

(Integer) Call timeout

Cell messaging module waits for response(s) to be put into the eventlet queue. This option defines the seconds waited for response from a call to a cell.

Possible values:

  • Time in seconds.
capabilities = hypervisor=xenserver;kvm, os=linux;windows

(List) Cell capabilities

List of arbitrary key=value pairs defining capabilities of the current cell to be sent to the parent cells. These capabilities are intended to be used in cells scheduler filters/weighers.

Possible values:

  • key=value pairs list for example; hypervisor=xenserver;kvm,os=linux;windows
cell_type = compute

(String) Type of cell

When cells feature is enabled the hosts in the OpenStack Compute cloud are partitioned into groups. Cells are configured as a tree. The top-level cell’s cell_type must be set to api. All other cells are defined as a compute cell by default.

Related options:

  • compute_api_class: This option must be set to cells api driver for the top-level cell (nova.compute.cells_api.ComputeCellsAPI)
  • quota_driver: Disable quota checking for the child cells. (nova.quota.NoopQuotaDriver)
cells_config = None

(String) Optional cells configuration

Configuration file from which to read cells configuration. If given, overrides reading cells from the database.

Cells store all inter-cell communication data, including user names and passwords, in the database. Because the cells data is not updated very frequently, use this option to specify a JSON file to store cells data. With this configuration, the database is no longer consulted when reloading the cells data. The file must have columns present in the Cell model (excluding common database fields and the id column). You must specify the queue connection information through a transport_url field, instead of username, password, and so on.

The transport_url has the following form: rabbit://USERNAME:PASSWORD@HOSTNAME:PORT/VIRTUAL_HOST

Possible values:

The scheme can be either qpid or rabbit, the following sample shows this optional configuration:

{ “parent”: { “name”: “parent”, “api_url”: “http://api.example.com:8774”, “transport_url”: “rabbit://rabbit.example.com”, “weight_offset”: 0.0, “weight_scale”: 1.0, “is_parent”: true }, “cell1”: { “name”: “cell1”, “api_url”: “http://api.example.com:8774”, “transport_url”: “rabbit://rabbit1.example.com”, “weight_offset”: 0.0, “weight_scale”: 1.0, “is_parent”: false }, “cell2”: { “name”: “cell2”, “api_url”: “http://api.example.com:8774”, “transport_url”: “rabbit://rabbit2.example.com”, “weight_offset”: 0.0, “weight_scale”: 1.0, “is_parent”: false } }
db_check_interval = 60

(Integer) DB check interval

Cell state manager updates cell status for all cells from the DB only after this particular interval time is passed. Otherwise cached status are used. If this value is 0 or negative all cell status are updated from the DB whenever a state is needed.

Possible values:

  • Interval time, in seconds.
driver = nova.cells.rpc_driver.CellsRPCDriver

(String) DEPRECATED: Cells communication driver

Driver for cell<->cell communication via RPC. This is used to setup the RPC consumers as well as to send a message to another cell. ‘nova.cells.rpc_driver.CellsRPCDriver’ starts up 2 separate servers for handling inter-cell communication via RPC. The only available driver is the RPC driver.

enable = False

(Boolean) Enable cell functionality

When this functionality is enabled, it lets you to scale an OpenStack Compute cloud in a more distributed fashion without having to use complicated technologies like database and message queue clustering. Cells are configured as a tree. The top-level cell should have a host that runs a nova-api service, but no nova-compute services. Each child cell should run all of the typical nova-* services in a regular Compute cloud except for nova-api. You can think of cells as a normal Compute deployment in that each cell has its own database server and message queue broker.

Related options:

  • name: A unique cell name must be given when this functionality is enabled.
  • cell_type: Cell type should be defined for all cells.
instance_update_num_instances = 1

(Integer) Instance update num instances

On every run of the periodic task, nova cells manager will attempt to sync instance_updated_at_threshold number of instances. When the manager gets the list of instances, it shuffles them so that multiple nova-cells services do not attempt to sync the same instances in lockstep.

Possible values:

  • Positive integer number

Related options:

  • This value is used with the instance_updated_at_threshold value in a periodic task run.
instance_update_sync_database_limit = 100

(Integer) Instance update sync database limit

Number of instances to pull from the database at one time for a sync. If there are more instances to update the results will be paged through.

Possible values:

  • Number of instances.
instance_updated_at_threshold = 3600

(Integer) Instance updated at threshold

Number of seconds after an instance was updated or deleted to continue to update cells. This option lets cells manager to only attempt to sync instances that have been updated recently. i.e., a threshold of 3600 means to only update instances that have modified in the last hour.

Possible values:

  • Threshold in seconds

Related options:

  • This value is used with the instance_update_num_instances value in a periodic task run.
max_hop_count = 10

(Integer) Maximum hop count

When processing a targeted message, if the local cell is not the target, a route is defined between neighbouring cells. And the message is processed across the whole routing path. This option defines the maximum hop counts until reaching the target.

Possible values:

  • Positive integer value
mute_child_interval = 300

(Integer) Mute child interval

Number of seconds after which a lack of capability and capacity update the child cell is to be treated as a mute cell. Then the child cell will be weighed as recommend highly that it be skipped.

Possible values:

  • Time in seconds.
mute_weight_multiplier = -10000.0

(Floating point) Mute weight multiplier

Multiplier used to weigh mute children. Mute children cells are recommended to be skipped so their weight is multiplied by this negative value.

Possible values:

  • Negative numeric number
name = nova

(String) Name of the current cell

This value must be unique for each cell. Name of a cell is used as its id, leaving this option unset or setting the same name for two or more cells may cause unexpected behaviour.

Related options:

  • enabled: This option is meaningful only when cells service is enabled
offset_weight_multiplier = 1.0

(Floating point) Offset weight multiplier

Multiplier used to weigh offset weigher. Cells with higher weight_offsets in the DB will be preferred. The weight_offset is a property of a cell stored in the database. It can be used by a deployer to have scheduling decisions favor or disfavor cells based on the setting.

Possible values:

  • Numeric multiplier
reserve_percent = 10.0

(Floating point) Reserve percentage

Percentage of cell capacity to hold in reserve, so the minimum amount of free resource is considered to be; min_free = total

  • (reserve_percent / 100.0) This option affects both memory and disk utilization. The primary purpose of this reserve is to ensure some space is available for users who want to resize their instance to be larger. Note that currently once the capacity expands into this reserve space this option is ignored.
rpc_driver_queue_base = cells.intercell

(String) RPC driver queue base

When sending a message to another cell by JSON-ifying the message and making an RPC cast to ‘process_message’, a base queue is used. This option defines the base queue name to be used when communicating between cells. Various topics by message type will be appended to this.

Possible values:

  • The base queue name to be used when communicating between cells.
topic = cells

(String) Topic

This is the message queue topic that cells nodes listen on. It is used when the cells service is started up to configure the queue, and whenever an RPC call to the scheduler is made.

Possible values:

  • cells: This is the recommended and the default value.
Description of cloudpipe configuration options
Configuration option = Default value Description
[cloudpipe]  
boot_script_template = $pybasedir/nova/cloudpipe/bootscript.template

(String) Template for cloudpipe instance boot script.

Possible values:

  • Any valid path to a cloudpipe instance boot script template

Related options:

The following options are required to configure cloudpipe-managed OpenVPN server.

  • dmz_net
  • dmz_mask
  • cnt_vpn_clients
dmz_mask = 255.255.255.0

(IP) Netmask to push into OpenVPN config.

Possible values:

  • Any valid IPv4/IPV6 netmask

Related options:

  • dmz_net - dmz_net and dmz_mask is pushed into bootscript.template to configure cloudpipe-managed OpenVPN server
  • boot_script_template
dmz_net = 10.0.0.0

(IP) Network to push into OpenVPN config.

Note: Above mentioned OpenVPN config can be found at /etc/openvpn/server.conf.

Possible values:

  • Any valid IPv4/IPV6 address

Related options:

  • boot_script_template - dmz_net is pushed into bootscript.template to configure cloudpipe-managed OpenVPN server
vpn_flavor = m1.tiny

(String) Flavor for VPN instances.

Possible values:

  • Any valid flavor name
vpn_image_id = 0

(String) Image ID used when starting up a cloudpipe VPN client.

An empty instance is created and configured with OpenVPN using boot_script_template. This instance would be snapshotted and stored in glance. ID of the stored image is used in ‘vpn_image_id’ to create cloudpipe VPN client.

Possible values:

  • Any valid ID of a VPN image
vpn_key_suffix = -vpn

(String) Suffix to add to project name for VPN key and secgroups

Possible values:

  • Any string value representing the VPN key suffix
Description of common configuration options
Configuration option = Default value Description
[DEFAULT]  
bindir = /usr/local/bin

(String) The directory where the Nova binaries are installed.

This option is only relevant if the networking capabilities from Nova are used (see services below). Nova’s networking capabilities are targeted to be fully replaced by Neutron in the future. It is very unlikely that you need to change this option from its default value.

Possible values:

  • The full path to a directory.
compute_topic = compute

(String) This is the message queue topic that the compute service ‘listens’ on. It is used when the compute service is started up to configure the queue, and whenever an RPC call to the compute service is made.

  • Possible values:
Any string, but there is almost never any reason to ever change this value from its default of ‘compute’.
  • Services that use this:
nova-compute
  • Related options:
None
console_topic = console

(String) Represents the message queue topic name used by nova-console service when communicating via the AMQP server. The Nova API uses a message queue to communicate with nova-console to retrieve a console URL for that host.

Possible values

  • ‘console’ (default) or any string representing topic exchange name.
consoleauth_topic = consoleauth

(String) This option allows you to change the message topic used by nova-consoleauth service when communicating via the AMQP server. Nova Console Authentication server authenticates nova consoles. Users can then access their instances through VNC clients. The Nova API service uses a message queue to communicate with nova-consoleauth to get a VNC console.

Possible Values:

  • ‘consoleauth’ (default) or Any string representing topic exchange name.
executor_thread_pool_size = 64 (Integer) Size of executor thread pool.
fatal_exception_format_errors = False

(Boolean) DEPRECATED: When set to true, this option enables validation of exception message format.

This option is used to detect errors in NovaException class when it formats error messages. If True, raise an exception; if False, use the unformatted message. This is only used for internal testing.

host = localhost

(String) Hostname, FQDN or IP address of this host. Must be valid within AMQP key.

Possible values:

  • String with hostname, FQDN or IP address. Default is hostname of this host.
my_ip = 10.0.0.1

(String) The IP address which the host is using to connect to the management network.

Possible values:

  • String with valid IP address. Default is IPv4 address of this host.

Related options:

  • metadata_host
  • my_block_storage_ip
  • routing_source_ip
  • vpn_ip
notify_api_faults = False (Boolean) If enabled, send api.fault notifications on caught exceptions in the API service.
notify_on_state_change = None

(String) If set, send compute.instance.update notifications on instance state changes.

Please refer to https://wiki.openstack.org/wiki/SystemUsageData for additional information on notifications.

Possible values:

  • None - no notifications
  • “vm_state” - notifications on VM state changes
  • “vm_and_task_state” - notifications on VM and task state changes
pybasedir = /usr/lib/python/site-packages/nova

(String) The directory where the Nova python modules are installed.

This directory is used to store template files for networking and remote console access. It is also the default path for other config options which need to persist Nova internal data. It is very unlikely that you need to change this option from its default value.

Possible values:

  • The full path to a directory.

Related options:

  • state_path
report_interval = 10 (Integer) Seconds between nodes reporting state to datastore
rootwrap_config = /etc/nova/rootwrap.conf

(String) Path to the rootwrap configuration file.

Goal of the root wrapper is to allow a service-specific unprivileged user to run a number of actions as the root user in the safest manner possible. The configuration file used here must match the one defined in the sudoers entry.

service_down_time = 60 (Integer) Maximum time since last check-in for up service
state_path = $pybasedir

(String) The top-level directory for maintaining Nova’s state.

This directory is used to store Nova’s internal state. It is used by a variety of other config options which derive from this. In some scenarios (for example migrations) it makes sense to use a storage location which is shared between multiple compute hosts (for example via NFS). Unless the option instances_path gets overwritten, this directory can grow very large.

Possible values:

  • The full path to a directory. Defaults to value provided in pybasedir.
tempdir = None (String) Explicitly specify the temporary working directory.
use_rootwrap_daemon = False (Boolean) Start and use a daemon that can run the commands that need to be run with root privileges. This option is usually enabled on nodes that run nova compute processes.
[workarounds]  
disable_libvirt_livesnapshot = True

(Boolean) Disable live snapshots when using the libvirt driver.

Live snapshots allow the snapshot of the disk to happen without an interruption to the guest, using coordination with a guest agent to quiesce the filesystem.

When using libvirt 1.2.2 live snapshots fail intermittently under load (likely related to concurrent libvirt/qemu operations). This config option provides a mechanism to disable live snapshot, in favor of cold snapshot, while this is resolved. Cold snapshot causes an instance outage while the guest is going through the snapshotting process.

For more information, refer to the bug report:

Possible values:

  • True: Live snapshot is disabled when using libvirt
  • False: Live snapshots are always used when snapshotting (as long as there is a new enough libvirt and the backend storage supports it)
disable_rootwrap = False

(Boolean) Use sudo instead of rootwrap.

Allow fallback to sudo for performance reasons.

For more information, refer to the bug report:

Possible values:

  • True: Use sudo instead of rootwrap
  • False: Use rootwrap as usual

Interdependencies to other options:

  • Any options that affect ‘rootwrap’ will be ignored.
handle_virt_lifecycle_events = True

(Boolean) Enable handling of events emitted from compute drivers.

Many compute drivers emit lifecycle events, which are events that occur when, for example, an instance is starting or stopping. If the instance is going through task state changes due to an API operation, like resize, the events are ignored.

This is an advanced feature which allows the hypervisor to signal to the compute service that an unexpected state change has occurred in an instance and that the instance can be shutdown automatically. Unfortunately, this can race in some conditions, for example in reboot operations or when the compute service or when host is rebooted (planned or due to an outage). If such races are common, then it is advisable to disable this feature.

Care should be taken when this feature is disabled and ‘sync_power_state_interval’ is set to a negative value. In this case, any instances that get out of sync between the hypervisor and the Nova database will have to be synchronized manually.

For more information, refer to the bug report:

Interdependencies to other options:

  • If sync_power_state_interval is negative and this feature is disabled, then instances that get out of sync between the hypervisor and the Nova database will have to be synchronized manually.
Description of Compute configuration options
Configuration option = Default value Description
[DEFAULT]  
compute_available_monitors = None (Multi-valued) DEPRECATED: Monitor classes available to the compute which may be specified more than once. This option is DEPRECATED and no longer used. Use setuptools entry points to list available monitor plugins. stevedore and setuptools entry points now allow a set of plugins to be specified without this config option.
compute_driver = None

(String) Defines which driver to use for controlling virtualization.

Possible values:

  • libvirt.LibvirtDriver
  • xenapi.XenAPIDriver
  • fake.FakeDriver
  • ironic.IronicDriver
  • vmwareapi.VMwareVCDriver
  • hyperv.HyperVDriver
compute_manager = nova.compute.manager.ComputeManager (String) DEPRECATED: Full class name for the Manager for compute
compute_monitors =

(List) A list of monitors that can be used for getting compute metrics. You can use the alias/name from the setuptools entry points for nova.compute.monitors.* namespaces. If no namespace is supplied, the “cpu.” namespace is assumed for backwards-compatibility.

Possible values:

  • An empty list will disable the feature(Default).
  • An example value that would enable both the CPU and NUMA memory bandwidth monitors that used the virt driver variant: [“cpu.virt_driver”, “numa_mem_bw.virt_driver”]
compute_stats_class = nova.compute.stats.Stats

(String) DEPRECATED: Abstracts out managing compute host stats to pluggable class. This class manages and updates stats for the local compute host after an instance is changed. These configurable compute stats may be useful for a particular scheduler implementation.

Possible values

  • A string representing fully qualified class name.
console_host = socket.gethostname()

(String) Console proxy host to be used to connect to instances on this host. It is the publicly visible name for the console host.

Possible values:

  • Current hostname (default) or any string representing hostname.
console_manager = nova.console.manager.ConsoleProxyManager (String) DEPRECATED: Full class name for the Manager for console proxy
default_flavor = m1.small (String) DEPRECATED: Default flavor to use for the EC2 API only. The Nova API does not support a default flavor. The EC2 API is deprecated
default_notification_level = INFO (String) Default notification level for outgoing notifications.
enable_instance_password = True (Boolean) Enables returning of the instance password by the relevant server API calls such as create, rebuild, evacuate, or rescue. If the hypervisor does not support password injection, then the password returned will not be correct, so if your hypervisor does not support password injection, set this to False.
heal_instance_info_cache_interval = 60 (Integer) Number of seconds between instance network information cache updates
image_cache_manager_interval = 2400 (Integer) Number of seconds to wait between runs of the image cache manager. Set to -1 to disable. Setting this to 0 will run at the default rate.
image_cache_subdirectory_name = _base (String) Where cached images are stored under $instances_path. This is NOT the full path - just a folder name. For per-compute-host cached images, set to _base_$my_ip
instance_build_timeout = 0

(Integer) Maximum time in seconds that an instance can take to build.

If this timer expires, instance status will be changed to ERROR. Enabling this option will make sure an instance will not be stuck in BUILD state for a longer period.

Possible values:

  • 0: Disables the option (default)
  • Any positive integer in seconds: Enables the option.
instance_delete_interval = 300 (Integer) Interval in seconds for retrying failed instance file deletes. Set to -1 to disable. Setting this to 0 will run at the default rate.
instance_usage_audit = False (Boolean) This option enables periodic compute.instance.exists notifications. Each compute node must be configured to generate system usage data. These notifications are consumed by OpenStack Telemetry service.
instance_usage_audit_period = month

(String) Time period to generate instance usages for. It is possible to define optional offset to given period by appending @ character followed by a number defining offset.

Possible values:

  • period, example: hour, day, month` or ``year
  • period with offset, example: month@15 will result in monthly audits starting on 15th day of month.
instances_path = $state_path/instances

(String) Specifies where instances are stored on the hypervisor’s disk. It can point to locally attached storage or a directory on NFS.

Possible values:

  • $state_path/instances where state_path is a config option that specifies the top-level directory for maintaining nova’s state. (default) or Any string representing directory path.
max_concurrent_builds = 10

(Integer) Limits the maximum number of instance builds to run concurrently by nova-compute. Compute service can attempt to build an infinite number of instances, if asked to do so. This limit is enforced to avoid building unlimited instance concurrently on a compute node. This value can be set per compute node.

Possible Values:

  • 0 : treated as unlimited.
  • Any positive integer representing maximum concurrent builds.
maximum_instance_delete_attempts = 5 (Integer) The number of times to attempt to reap an instance’s files.
reboot_timeout = 0

(Integer) Time interval after which an instance is hard rebooted automatically.

When doing a soft reboot, it is possible that a guest kernel is completely hung in a way that causes the soft reboot task to not ever finish. Setting this option to a time period in seconds will automatically hard reboot an instance if it has been stuck in a rebooting state longer than N seconds.

Possible values:

  • 0: Disables the option (default).
  • Any positive integer in seconds: Enables the option.
reclaim_instance_interval = 0 (Integer) Interval in seconds for reclaiming deleted instances. It takes effect only when value is greater than 0.
rescue_timeout = 0

(Integer) Interval to wait before un-rescuing an instance stuck in RESCUE.

Possible values:

  • 0: Disables the option (default)
  • Any positive integer in seconds: Enables the option.
resize_confirm_window = 0

(Integer) Automatically confirm resizes after N seconds.

Resize functionality will save the existing server before resizing. After the resize completes, user is requested to confirm the resize. The user has the opportunity to either confirm or revert all changes. Confirm resize removes the original server and changes server status from resized to active. Setting this option to a time period (in seconds) will automatically confirm the resize if the server is in resized state longer than that time.

Possible values:

  • 0: Disables the option (default)
  • Any positive integer in seconds: Enables the option.
resume_guests_state_on_host_boot = False (Boolean) This option specifies whether to start guests that were running before the host rebooted. It ensures that all of the instances on a Nova compute node resume their state each time the compute node boots or restarts.
running_deleted_instance_action = reap

(String) The compute service periodically checks for instances that have been deleted in the database but remain running on the compute node. The above option enables action to be taken when such instances are identified.

Possible values:

  • reap: Powers down the instances and deletes them(default)
  • log: Logs warning message about deletion of the resource
  • shutdown: Powers down instances and marks them as non- bootable which can be later used for debugging/analysis
  • noop: Takes no action

Related options:

  • running_deleted_instance_poll
  • running_deleted_instance_timeout
running_deleted_instance_poll_interval = 1800

(Integer) Time interval in seconds to wait between runs for the clean up action. If set to 0, above check will be disabled. If “running_deleted_instance _action” is set to “log” or “reap”, a value greater than 0 must be set.

Possible values:

  • Any positive integer in seconds enables the option.
  • 0: Disables the option.
  • 1800: Default value.

Related options:

  • running_deleted_instance_action
running_deleted_instance_timeout = 0

(Integer) Time interval in seconds to wait for the instances that have been marked as deleted in database to be eligible for cleanup.

Possible values:

  • Any positive integer in seconds(default is 0).

Related options:

  • “running_deleted_instance_action”
shelved_offload_time = 0 (Integer) Time in seconds before a shelved instance is eligible for removing from a host. -1 never offload, 0 offload immediately when shelved
shelved_poll_interval = 3600 (Integer) Interval in seconds for polling shelved instances to offload. Set to -1 to disable.Setting this to 0 will run at the default rate.
shutdown_timeout = 60

(Integer) Total time to wait in seconds for an instance toperform a clean shutdown.

It determines the overall period (in seconds) a VM is allowed to perform a clean shutdown. While performing stop, rescue and shelve, rebuild operations, configuring this option gives the VM a chance to perform a controlled shutdown before the instance is powered off. The default timeout is 60 seconds.

The timeout value can be overridden on a per image basis by means of os_shutdown_timeout that is an image metadata setting allowing different types of operating systems to specify how much time they need to shut down cleanly.

Possible values:

  • Any positive integer in seconds (default value is 60).
sync_power_state_interval = 600 (Integer) Interval to sync power states between the database and the hypervisor. Set to -1 to disable. Setting this to 0 will run at the default rate.
sync_power_state_pool_size = 1000

(Integer) Number of greenthreads available for use to sync power states.

This option can be used to reduce the number of concurrent requests made to the hypervisor or system with real instance power states for performance reasons, for example, with Ironic.

Possible values:

  • Any positive integer representing greenthreads count.
update_resources_interval = 0 (Integer) Interval in seconds for updating compute resources. A number less than 0 means to disable the task completely. Leaving this at the default of 0 will cause this to run at the default periodic interval. Setting it to any positive value will cause it to run at approximately that number of seconds.
vif_plugging_is_fatal = True

(Boolean) Determine if instance should boot or fail on VIF plugging timeout.

Nova sends a port update to Neutron after an instance has been scheduled, providing Neutron with the necessary information to finish setup of the port. Once completed, Neutron notifies Nova that it has finished setting up the port, at which point Nova resumes the boot of the instance since network connectivity is now supposed to be present. A timeout will occur if the reply is not received after a given interval.

This option determines what Nova does when the VIF plugging timeout event happens. When enabled, the instance will error out. When disabled, the instance will continue to boot on the assumption that the port is ready.

Possible values:

  • True: Instances should fail after VIF plugging timeout
  • False: Instances should continue booting after VIF plugging timeout
vif_plugging_timeout = 300

(Integer) Timeout for Neutron VIF plugging event message arrival.

Number of seconds to wait for Neutron vif plugging events to arrive before continuing or failing (see ‘vif_plugging_is_fatal’).

Interdependencies to other options:

  • vif_plugging_is_fatal - If vif_plugging_timeout is set to zero and vif_plugging_is_fatal is False, events should not be expected to arrive at all.
Description of conductor configuration options
Configuration option = Default value Description
[DEFAULT]  
migrate_max_retries = -1

(Integer) Number of times to retry live-migration before failing.

Possible values:

  • If == -1, try until out of hosts (default)
  • If == 0, only try once, no retries
  • Integer greater than 0
[conductor]  
manager = nova.conductor.manager.ConductorManager

(String) DEPRECATED: Full class name for the Manager for conductor.

Removal in 14.0

topic = conductor (String) Topic exchange name on which conductor nodes listen.
use_local = False

(Boolean) DEPRECATED: Perform nova-conductor operations locally. This legacy mode was introduced to bridge a gap during the transition to the conductor service. It no longer represents a reasonable alternative for deployers.

Removal may be as early as 14.0.

workers = None (Integer) Number of workers for OpenStack Conductor service. The default will be the number of CPUs available.
Description of config drive configuration options
Configuration option = Default value Description
[DEFAULT]  
config_drive_format = iso9660

(String) Configuration drive format

Configuration drive format that will contain metadata attached to the instance when it boots.

Possible values:

  • iso9660: A file system image standard that is widely supported across operating systems. NOTE: Mind the libvirt bug (https://bugs.launchpad.net/nova/+bug/1246201) - If your hypervisor driver is libvirt, and you want live migrate to work without shared storage, then use VFAT.
  • vfat: For legacy reasons, you can configure the configuration drive to use VFAT format instead of ISO 9660.

Related options:

  • This option is meaningful when one of the following alternatives occur: 1. force_config_drive option set to ‘true’ 2. the REST API call to create the instance contains an enable flag for config drive option 3. the image used to create the instance requires a config drive, this is defined by img_config_drive property for that image.
  • A compute node running Hyper-V hypervisor can be configured to attach configuration drive as a CD drive. To attach the configuration drive as a CD drive, set config_drive_cdrom option at hyperv section, to true.
config_drive_skip_versions = 1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01

(String) When gathering the existing metadata for a config drive, the EC2-style metadata is returned for all versions that don’t appear in this option. As of the Liberty release, the available versions are:

  • 1.0
  • 2007-01-19
  • 2007-03-01
  • 2007-08-29
  • 2007-10-10
  • 2007-12-15
  • 2008-02-01
  • 2008-09-01
  • 2009-04-04

The option is in the format of a single string, with each version separated by a space.

Possible values:

  • Any string that represents zero or more versions, separated by spaces.
force_config_drive = False

(Boolean) Force injection to take place on a config drive

When this option is set to true configuration drive functionality will be forced enabled by default, otherwise user can still enable configuration drives via the REST API or image metadata properties.

Possible values:

  • True: Force to use of configuration drive regardless the user’s input in the REST API call.
  • False: Do not force use of configuration drive. Config drives can still be enabled via the REST API or image metadata properties.

Related options:

  • Use the ‘mkisofs_cmd’ flag to set the path where you install the genisoimage program. If genisoimage is in same path as the nova-compute service, you do not need to set this flag.
  • To use configuration drive with Hyper-V, you must set the ‘mkisofs_cmd’ value to the full path to an mkisofs.exe installation. Additionally, you must set the qemu_img_cmd value in the hyperv configuration section to the full path to an qemu-img command installation.
mkisofs_cmd = genisoimage

(String) Name or path of the tool used for ISO image creation

Use the mkisofs_cmd flag to set the path where you install the genisoimage program. If genisoimage is on the system path, you do not need to change the default value.

To use configuration drive with Hyper-V, you must set the mkisofs_cmd value to the full path to an mkisofs.exe installation. Additionally, you must set the qemu_img_cmd value in the hyperv configuration section to the full path to an qemu-img command installation.

Possible values:

  • Name of the ISO image creator program, in case it is in the same directory as the nova-compute service
  • Path to ISO image creator program

Related options:

  • This option is meaningful when config drives are enabled.
  • To use configuration drive with Hyper-V, you must set the qemu_img_cmd value in the hyperv configuration section to the full path to an qemu-img command installation.
[hyperv]  
config_drive_cdrom = False

(Boolean) Configuration drive cdrom

OpenStack can be configured to write instance metadata to a configuration drive, which is then attached to the instance before it boots. The configuration drive can be attached as a disk drive (default) or as a CD drive.

Possible values:

  • True: Attach the configuration drive image as a CD drive.
  • False: Attach the configuration drive image as a disk drive (Default).

Related options:

  • This option is meaningful with force_config_drive option set to ‘True’ or when the REST API call to create an instance will have ‘–config-drive=True’ flag.
  • config_drive_format option must be set to ‘iso9660’ in order to use CD drive as the configuration drive image.
  • To use configuration drive with Hyper-V, you must set the mkisofs_cmd value to the full path to an mkisofs.exe installation. Additionally, you must set the qemu_img_cmd value to the full path to an qemu-img command installation.
  • You can configure the Compute service to always create a configuration drive by setting the force_config_drive option to ‘True’.
config_drive_inject_password = False

(Boolean) Configuration drive inject password

Enables setting the admin password in the configuration drive image.

Related options:

  • This option is meaningful when used with other options that enable configuration drive usage with Hyper-V, such as force_config_drive.
  • Currently, the only accepted config_drive_format is ‘iso9660’.
Description of console configuration options
Configuration option = Default value Description
[DEFAULT]  
console_allowed_origins =

(List) Adds list of allowed origins to the console websocket proxy to allow connections from other origin hostnames. Websocket proxy matches the host header with the origin header to prevent cross-site requests. This list specifies if any there are values other than host are allowed in the origin header.

Possible values

  • An empty list (default) or list of allowed origin hostnames.
console_public_hostname = localhost

(String) Publicly visible name for this console host.

Possible values

  • Current hostname (default) or any string representing hostname.
console_token_ttl = 600 (Integer) This option indicates the lifetime of a console auth token. A console auth token is used in authorizing console access for a user. Once the auth token time to live count has elapsed, the token is considered expired. Expired tokens are then deleted.
consoleauth_manager = nova.consoleauth.manager.ConsoleAuthManager (String) DEPRECATED: Manager for console auth
[mks]  
enabled = False (Boolean) Enables graphical console access for virtual machines.
mksproxy_base_url = http://127.0.0.1:6090/

(String) Location of MKS web console proxy

The URL in the response points to a WebMKS proxy which starts proxying between client and corresponding vCenter server where instance runs. In order to use the web based console access, WebMKS proxy should be installed and configured

Possible values:

  • Must be a valid URL of the form:http://host:port/
Description of crypto configuration options
Configuration option = Default value Description
[crypto]  
ca_file = cacert.pem

(String) Filename of root CA (Certificate Authority). This is a container format and includes root certificates.

Possible values:

  • Any file name containing root CA, cacert.pem is default

Related options:

  • ca_path
ca_path = $state_path/CA

(String) Directory path where root CA is located.

Related options:

  • ca_file
crl_file = crl.pem

(String) Filename of root Certificate Revocation List (CRL). This is a list of certificates that have been revoked, and therefore, entities presenting those (revoked) certificates should no longer be trusted.

Related options:

  • ca_path
key_file = private/cakey.pem

(String) Filename of a private key.

Related options:

  • keys_path
keys_path = $state_path/keys

(String) Directory path where keys are located.

Related options:

  • key_file
project_cert_subject = /C=US/ST=California/O=OpenStack/OU=NovaDev/CN=project-ca-%.16s-%s (String) Subject for certificate for projects, %s for project, timestamp
use_project_ca = False (Boolean) Option to enable/disable use of CA for each project.
user_cert_subject = /C=US/ST=California/O=OpenStack/OU=NovaDev/CN=%.16s-%.16s-%s (String) Subject for certificate for users, %s for project, user, timestamp
[ssl]  
ca_file = None (String) CA certificate file to use to verify connecting clients.
cert_file = None (String) Certificate file to use when starting the server securely.
ciphers = None (String) Sets the list of available ciphers. value should be a string in the OpenSSL cipher list format.
key_file = None (String) Private key file to use when starting the server securely.
version = None (String) SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some distributions.
Description of logging configuration options
Configuration option = Default value Description
[guestfs]  
debug = False

(Boolean) Enable/disables guestfs logging.

This configures guestfs to debug messages and push them to Openstack logging system. When set to True, it traces libguestfs API calls and enable verbose debug messages. In order to use the above feature, “libguestfs” package must be installed.

Related options: Since libguestfs access and modifies VM’s managed by libvirt, below options should be set to give access to those VM’s.

  • libvirt.inject_key
  • libvirt.inject_partition
  • libvirt.inject_password
[remote_debug]  
host = None

(String) Debug host (IP or name) to connect to. This command line parameter is used when you want to connect to a nova service via a debugger running on a different host.

Note that using the remote debug option changes how Nova uses the eventlet library to support async IO. This could result in failures that do not occur under normal operation. Use at your own risk.

Possible Values:

  • IP address of a remote host as a command line parameter to a nova service. For Example:
/usr/local/bin/nova-compute –config-file /etc/nova/nova.conf –remote_debug-host <IP address where the debugger is running>
port = None

(Port number) Debug port to connect to. This command line parameter allows you to specify the port you want to use to connect to a nova service via a debugger running on different host.

Note that using the remote debug option changes how Nova uses the eventlet library to support async IO. This could result in failures that do not occur under normal operation. Use at your own risk.

Possible Values:

  • Port number you want to use as a command line parameter to a nova service. For Example:
/usr/local/bin/nova-compute –config-file /etc/nova/nova.conf –remote_debug-host <IP address where the debugger is running> –remote_debug-port <port> it’s listening on>.
Description of ephemeral storage encryption configuration options
Configuration option = Default value Description
[ephemeral_storage_encryption]  
cipher = aes-xts-plain64

(String) Cipher-mode string to be used

The cipher and mode to be used to encrypt ephemeral storage. The set of cipher-mode combinations available depends on kernel support.

Possible values:

  • aes-xts-plain64 (Default), see /proc/crypto for available options.
enabled = False (Boolean) Enables/disables LVM ephemeral storage encryption.
key_size = 512

(Integer) Encryption key length in bits

The bit length of the encryption key to be used to encrypt ephemeral storage (in XTS mode only half of the bits are used for encryption key).

Description of fping configuration options
Configuration option = Default value Description
[DEFAULT]  
fping_path = /usr/sbin/fping (String) The full path to the fping binary.
Description of glance configuration options
Configuration option = Default value Description
[DEFAULT]  
osapi_glance_link_prefix = None

(String) This string is prepended to the normal URL that is returned in links to Glance resources. If it is empty (the default), the URLs are returned unchanged.

Possible values:

  • Any string, including an empty string (the default).
[glance]  
allowed_direct_url_schemes = (List) A list of url scheme that can be downloaded directly via the direct_url. Currently supported schemes: [file].
api_insecure = False (Boolean) Allow to perform insecure SSL (https) requests to glance
api_servers = None (List) A list of the glance api servers endpoints available to nova. These should be fully qualified urls of the form “scheme://hostname:port[/path]” (i.e. “http://10.0.1.0:9292” or “https://my.glance.server/image”)
debug = False (Boolean) Enable or disable debug logging with glanceclient.
num_retries = 0 (Integer) Number of retries when uploading / downloading an image to / from glance.
use_glance_v1 = False

(Boolean) DEPRECATED: This flag allows reverting to glance v1 if for some reason glance v2 doesn’t work in your environment. This will only exist in Newton, and a fully working Glance v2 will be a hard requirement in Ocata.

  • Possible values:
True or False
  • Services that use this:
nova-api nova-compute nova-conductor
  • Related options:
None Glance v1 support will be removed in Ocata
verify_glance_signatures = False (Boolean) Require Nova to perform signature verification on each image downloaded from Glance.
[image_file_url]  
filesystems = (List) DEPRECATED: List of file systems that are configured in this file in the image_file_url:<list entry name> sections The feature to download images from glance via filesystem is not used and will be removed in the future.
Description of HyperV configuration options
Configuration option = Default value Description
[hyperv]  
dynamic_memory_ratio = 1.0

(Floating point) Dynamic memory ratio

Enables dynamic memory allocation (ballooning) when set to a value greater than 1. The value expresses the ratio between the total RAM assigned to an instance and its startup RAM amount. For example a ratio of 2.0 for an instance with 1024MB of RAM implies 512MB of RAM allocated at startup.

Possible values:

  • 1.0: Disables dynamic memory allocation (Default).
  • Float values greater than 1.0: Enables allocation of total implied RAM divided by this value for startup.
enable_instance_metrics_collection = False

(Boolean) Enable instance metrics collection

Enables metrics collections for an instance by using Hyper-V’s metric APIs. Collected data can by retrieved by other apps and services, e.g.: Ceilometer.

enable_remotefx = False

(Boolean) Enable RemoteFX feature

This requires at least one DirectX 11 capable graphics adapter for Windows / Hyper-V Server 2012 R2 or newer and RDS-Virtualization feature has to be enabled.

Instances with RemoteFX can be requested with the following flavor extra specs:

os:resolution. Guest VM screen resolution size. Acceptable values:

1024x768, 1280x1024, 1600x1200, 1920x1200, 2560x1600, 3840x2160

3840x2160 is only available on Windows / Hyper-V Server 2016.

os:monitors. Guest VM number of monitors. Acceptable values:

[1, 4] - Windows / Hyper-V Server 2012 R2 [1, 8] - Windows / Hyper-V Server 2016

os:vram. Guest VM VRAM amount. Only available on Windows / Hyper-V Server 2016. Acceptable values:

64, 128, 256, 512, 1024
instances_path_share =

(String) Instances path share

The name of a Windows share mapped to the “instances_path” dir and used by the resize feature to copy files to the target host. If left blank, an administrative share (hidden network share) will be used, looking for the same “instances_path” used locally.

Possible values:

  • “”: An administrative share will be used (Default).
  • Name of a Windows share.

Related options:

  • “instances_path”: The directory which will be used if this option here is left blank.
limit_cpu_features = False

(Boolean) Limit CPU features

This flag is needed to support live migration to hosts with different CPU features and checked during instance creation in order to limit the CPU features used by the instance.

mounted_disk_query_retry_count = 10

(Integer) Mounted disk query retry count

The number of times to retry checking for a disk mounted via iSCSI. During long stress runs the WMI query that is looking for the iSCSI device number can incorrectly return no data. If the query is retried the appropriate data can then be obtained. The query runs until the device can be found or the retry count is reached.

Possible values:

  • Positive integer values. Values greater than 1 is recommended (Default: 10).

Related options:

  • Time interval between disk mount retries is declared with “mounted_disk_query_retry_interval” option.
mounted_disk_query_retry_interval = 5

(Integer) Mounted disk query retry interval

Interval between checks for a mounted iSCSI disk, in seconds.

Possible values:

  • Time in seconds (Default: 5).

Related options:

  • This option is meaningful when the mounted_disk_query_retry_count is greater than 1.
  • The retry loop runs with mounted_disk_query_retry_count and mounted_disk_query_retry_interval configuration options.
power_state_check_timeframe = 60

(Integer) Power state check timeframe

The timeframe to be checked for instance power state changes. This option is used to fetch the state of the instance from Hyper-V through the WMI interface, within the specified timeframe.

Possible values:

  • Timeframe in seconds (Default: 60).
power_state_event_polling_interval = 2

(Integer) Power state event polling interval

Instance power state change event polling frequency. Sets the listener interval for power state events to the given value. This option enhances the internal lifecycle notifications of instances that reboot themselves. It is unlikely that an operator has to change this value.

Possible values:

  • Time in seconds (Default: 2).
qemu_img_cmd = qemu-img.exe

(String) qemu-img command

qemu-img is required for some of the image related operations like converting between different image types. You can get it from here: (http://qemu.weilnetz.de/) or you can install the Cloudbase OpenStack Hyper-V Compute Driver (https://cloudbase.it/openstack-hyperv-driver/) which automatically sets the proper path for this config option. You can either give the full path of qemu-img.exe or set its path in the PATH environment variable and leave this option to the default value.

Possible values:

  • Name of the qemu-img executable, in case it is in the same directory as the nova-compute service or its path is in the PATH environment variable (Default).
  • Path of qemu-img command (DRIVELETTER:PATHTOQEMU-IMGCOMMAND).

Related options:

  • If the config_drive_cdrom option is False, qemu-img will be used to convert the ISO to a VHD, otherwise the configuration drive will remain an ISO. To use configuration drive with Hyper-V, you must set the mkisofs_cmd value to the full path to an mkisofs.exe installation.
vswitch_name = None

(String) External virtual switch name

The Hyper-V Virtual Switch is a software-based layer-2 Ethernet network switch that is available with the installation of the Hyper-V server role. The switch includes programmatically managed and extensible capabilities to connect virtual machines to both virtual networks and the physical network. In addition, Hyper-V Virtual Switch provides policy enforcement for security, isolation, and service levels. The vSwitch represented by this config option must be an external one (not internal or private).

Possible values:

  • If not provided, the first of a list of available vswitches is used. This list is queried using WQL.
  • Virtual switch name.
wait_soft_reboot_seconds = 60

(Integer) Wait soft reboot seconds

Number of seconds to wait for instance to shut down after soft reboot request is made. We fall back to hard reboot if instance does not shutdown within this window.

Possible values:

  • Time in seconds (Default: 60).
Description of hypervisor configuration options
Configuration option = Default value Description
[DEFAULT]  
default_ephemeral_format = None

(String) The default format an ephemeral_volume will be formatted with on creation.

Possible values:

  • ext2
  • ext3
  • ext4
  • xfs
  • ntfs (only for Windows guests)
force_raw_images = True

(Boolean) Force conversion of backing images to raw format.

Possible values:

  • True: Backing image files will be converted to raw image format
  • False: Backing image files will not be converted

Interdependencies to other options:

  • compute_driver: Only the libvirt driver uses this option.
pointer_model = usbtablet

(String) Generic property to specify the pointer type.

Input devices allow interaction with a graphical framebuffer. For example to provide a graphic tablet for absolute cursor movement.

If set, the ‘hw_pointer_model’ image property takes precedence over this configuration option.

Possible values:

  • None: Uses default behavior provided by drivers (mouse on PS2 for libvirt x86)
  • ps2mouse: Uses relative movement. Mouse connected by PS2
  • usbtablet: Uses absolute movement. Tablet connect by USB

Interdependencies to other options:

  • usbtablet must be configured with VNC enabled or SPICE enabled and SPICE agent disabled. When used with libvirt the instance mode should be configured as HVM.
preallocate_images = none

(String) The image preallocation mode to use. Image preallocation allows storage for instance images to be allocated up front when the instance is initially provisioned. This ensures immediate feedback is given if enough space isn’t available. In addition, it should significantly improve performance on writes to new blocks and may even improve I/O performance to prewritten blocks due to reduced fragmentation.

Possible values:

  • “none” => no storage provisioning is done up front
  • “space” => storage is fully allocated at instance start
timeout_nbd = 10 (Integer) Amount of time, in seconds, to wait for NBD device start up.
use_cow_images = True

(Boolean) Enable use of copy-on-write (cow) images.

QEMU/KVM allow the use of qcow2 as backing files. By disabling this, backing files will not be used.

vcpu_pin_set = None

(String) Defines which physical CPUs (pCPUs) can be used by instance virtual CPUs (vCPUs).

Possible values:

  • A comma-separated list of physical CPU numbers that virtual CPUs can be allocated to by default. Each element should be either a single CPU number, a range of CPU numbers, or a caret followed by a CPU number to be excluded from a previous range. For example:
vcpu_pin_set = “4-12,^8,15”
virt_mkfs = [] (Multi-valued) Name of the mkfs commands for ephemeral device. The format is <os_type>=<mkfs command>
Description of bare metal configuration options
Configuration option = Default value Description
[ironic]  
admin_password = None (String) DEPRECATED: Ironic keystone admin password. Use password instead.
admin_tenant_name = None (String) DEPRECATED: Ironic keystone tenant name. Use project_name instead.
admin_url = None (String) DEPRECATED: Keystone public API endpoint. Use auth_url instead.
admin_username = None (String) DEPRECATED: Ironic keystone admin name. Use username instead.
api_endpoint = http://ironic.example.org:6385/ (String) URL override for the Ironic API endpoint.
api_max_retries = 60

(Integer) The number of times to retry when a request conflicts. If set to 0, only try once, no retries.

Related options:

  • api_retry_interval
api_retry_interval = 2

(Integer) The number of seconds to wait before retrying the request.

Related options:

  • api_max_retries
auth_section = None (Unknown) Config Section from which to load plugin specific options
auth_type = None (Unknown) Authentication type to load
cafile = None (String) PEM encoded Certificate Authority to use when verifying HTTPs connections.
certfile = None (String) PEM encoded client certificate cert file
insecure = False (Boolean) Verify HTTPS connections.
keyfile = None (String) PEM encoded client certificate key file
timeout = None (Integer) Timeout value for http requests
Description of IPv6 configuration options
Configuration option = Default value Description
[DEFAULT]  
fixed_range_v6 = fd00::/48

(String) This option determines the fixed IPv6 address block when creating a network.

Please note that this option is only used when using nova-network instead of Neutron in your deployment.

Possible values:

Any valid IPv6 CIDR. The default value is “fd00::/48”.

Related options:

use_neutron
gateway_v6 = None

(String) This is the default IPv6 gateway. It is used only in the testing suite.

Please note that this option is only used when using nova-network instead of Neutron in your deployment.

Possible values:

Any valid IP address.

Related options:

use_neutron, gateway
ipv6_backend = rfc2462

(String) Abstracts out IPv6 address generation to pluggable backends.

nova-network can be put into dual-stack mode, so that it uses both IPv4 and IPv6 addresses. In dual-stack mode, by default, instances acquire IPv6 global unicast addresses with the help of stateless address auto-configuration mechanism.

Related options:

  • use_neutron: this option only works with nova-network.
  • use_ipv6: this option only works if ipv6 is enabled for nova-network.
use_ipv6 = False

(Boolean) Assign IPv6 and IPv4 addresses when creating instances.

Related options:

  • use_neutron: this only works with nova-network.
Description of key manager configuration options
Configuration option = Default value Description
[key_manager]  
api_class = castellan.key_manager.barbican_key_manager.BarbicanKeyManager (String) The full class name of the key manager API class
fixed_key = None

(String) Fixed key returned by key manager, specified in hex.

Possible values:

  • Empty string or a key in hex value
Description of LDAP configuration options
Configuration option = Default value Description
[DEFAULT]  
ldap_dns_base_dn = ou=hosts,dc=example,dc=org (String) Base DN for DNS entries in LDAP
ldap_dns_password = password (String) Password for LDAP DNS
ldap_dns_servers = ['dns.example.org'] (Multi-valued) DNS Servers for LDAP DNS driver
ldap_dns_soa_expiry = 86400 (String) Expiry interval (in seconds) for LDAP DNS driver Statement of Authority
ldap_dns_soa_hostmaster = hostmaster@example.org (String) Hostmaster for LDAP DNS driver Statement of Authority
ldap_dns_soa_minimum = 7200 (String) Minimum interval (in seconds) for LDAP DNS driver Statement of Authority
ldap_dns_soa_refresh = 1800 (String) Refresh interval (in seconds) for LDAP DNS driver Statement of Authority
ldap_dns_soa_retry = 3600 (String) Retry interval (in seconds) for LDAP DNS driver Statement of Authority
ldap_dns_url = ldap://ldap.example.com:389 (String) URL for LDAP server which will store DNS entries
ldap_dns_user = uid=admin,ou=people,dc=example,dc=org (String) User for LDAP DNS
Description of Libvirt configuration options
Configuration option = Default value Description
[DEFAULT]  
remove_unused_base_images = True (Boolean) Should unused base images be removed?
remove_unused_original_minimum_age_seconds = 86400 (Integer) Unused unresized base images younger than this will not be removed
[libvirt]  
checksum_base_images = False (Boolean) DEPRECATED: Write a checksum for files in _base to disk The image cache no longer periodically calculates checksums of stored images. Data integrity can be checked at the block or filesystem level.
checksum_interval_seconds = 3600 (Integer) DEPRECATED: How frequently to checksum base images The image cache no longer periodically calculates checksums of stored images. Data integrity can be checked at the block or filesystem level.
connection_uri =

(String) Overrides the default libvirt URI of the chosen virtualization type.

If set, Nova will use this URI to connect to libvirt.

Possible values:

  • An URI like qemu:///system or xen+ssh://oirase/ for example. This is only necessary if the URI differs to the commonly known URIs for the chosen virtualization type.

Related options:

  • virt_type: Influences what is used as default value here.
cpu_mode = None

(String) Is used to set the CPU mode an instance should have.

If virt_type=”kvm|qemu”, it will default to “host-model”, otherwise it will default to “none”.

Possible values:

  • host-model: Clones the host CPU feature flags.
  • host-passthrough: Use the host CPU model exactly;
  • custom: Use a named CPU model;
  • none: Not set any CPU model.

Related options:

  • cpu_model: If custom is used for cpu_mode, set this config option too, otherwise this would result in an error and the instance won’t be launched.
cpu_model = None

(String) Set the name of the libvirt CPU model the instance should use.

Possible values:

  • The names listed in /usr/share/libvirt/cpu_map.xml

Related options:

  • cpu_mode: Don’t set this when cpu_mode is NOT set to custom. This would result in an error and the instance won’t be launched.
  • virt_type: Only the virtualization types kvm and qemu use this.
disk_cachemodes = (List) Specific cachemodes to use for different disk types e.g: file=directsync,block=none
disk_prefix = None

(String) Override the default disk prefix for the devices attached to an instance.

If set, this is used to identify a free disk device name for a bus.

Possible values:

  • Any prefix which will result in a valid disk device name like ‘sda’ or ‘hda’ for example. This is only necessary if the device names differ to the commonly known device name prefixes for a virtualization type such as: sd, xvd, uvd, vd.

Related options:

  • virt_type: Influences which device type is used, which determines the default disk prefix.
enabled_perf_events =

(List) This is a performance event list which could be used as monitor. These events will be passed to libvirt domain xml while creating a new instances. Then event statistics data can be collected from libvirt. The minimum libvirt version is 2.0.0. For more information about Performance monitoring events, refer https://libvirt.org/formatdomain.html#elementsPerf .

  • Possible values: A string list. For example: enabled_perf_events = cmt, mbml, mbmt
The supported events list can be found in https://libvirt.org/html/libvirt-libvirt-domain.html , which you may need to search key words VIR_PERF_PARAM_*
  • Services that use this:
nova-compute
  • Related options: None
gid_maps = (List) List of guid targets and ranges.Syntax is guest-gid:host-gid:countMaximum of 5 allowed.
hw_disk_discard = None (String) Discard option for nova managed disks. Need Libvirt(1.0.6) Qemu1.5 (raw format) Qemu1.6(qcow2 format)
hw_machine_type = None (List) For qemu or KVM guests, set this option to specify a default machine type per host architecture. You can find a list of supported machine types in your environment by checking the output of the “virsh capabilities”command. The format of the value for this config option is host-arch=machine-type. For example: x86_64=machinetype1,armv7l=machinetype2
image_info_filename_pattern = $instances_path/$image_cache_subdirectory_name/%(image)s.info (String) DEPRECATED: Allows image information files to be stored in non-standard locations Image info files are no longer used by the image cache
images_rbd_ceph_conf = (String) Path to the ceph configuration file to use
images_rbd_pool = rbd (String) The RADOS pool in which rbd volumes are stored
images_type = default (String) VM Images format. If default is specified, then use_cow_images flag is used instead of this one.
images_volume_group = None (String) LVM Volume Group that is used for VM images, when you specify images_type=lvm.
inject_key = False

(Boolean) Allow the injection of an SSH key at boot time.

There is no agent needed within the image to do this. If libguestfs is available on the host, it will be used. Otherwise nbd is used. The file system of the image will be mounted and the SSH key, which is provided in the REST API call will be injected as SSH key for the root user and appended to the authorized_keys of that user. The SELinux context will be set if necessary. Be aware that the injection is not possible when the instance gets launched from a volume.

This config option will enable directly modifying the instance disk and does not affect what cloud-init may do using data from config_drive option or the metadata service.

Related options:

  • inject_partition: That option will decide about the discovery and usage of the file system. It also can disable the injection at all.
inject_partition = -2

(Integer) Determines the way how the file system is chosen to inject data into it.

libguestfs will be used a first solution to inject data. If that’s not available on the host, the image will be locally mounted on the host as a fallback solution. If libguestfs is not able to determine the root partition (because there are more or less than one root partition) or cannot mount the file system it will result in an error and the instance won’t be boot.

Possible values:

  • -2 => disable the injection of data.
  • -1 => find the root partition with the file system to mount with libguestfs
  • 0 => The image is not partitioned
  • >0 => The number of the partition to use for the injection

Related options:

  • inject_key: If this option allows the injection of a SSH key it depends on value greater or equal to -1 for inject_partition.
  • inject_password: If this option allows the injection of an admin password it depends on value greater or equal to -1 for inject_partition.
  • guestfs You can enable the debug log level of libguestfs with this config option. A more verbose output will help in debugging issues.
  • virt_type: If you use lxc as virt_type it will be treated as a single partition image
inject_password = False

(Boolean) Allow the injection of an admin password for instance only at create and rebuild process.

There is no agent needed within the image to do this. If libguestfs is available on the host, it will be used. Otherwise nbd is used. The file system of the image will be mounted and the admin password, which is provided in the REST API call will be injected as password for the root user. If no root user is available, the instance won’t be launched and an error is thrown. Be aware that the injection is not possible when the instance gets launched from a volume.

Possible values:

  • True: Allows the injection.
  • False (default): Disallows the injection. Any via the REST API provided admin password will be silently ignored.

Related options:

  • inject_partition: That option will decide about the discovery and usage of the file system. It also can disable the injection at all.
iscsi_iface = None (String) The iSCSI transport iface to use to connect to target in case offload support is desired. Default format is of the form <transport_name>.<hwaddress> where <transport_name> is one of (be2iscsi, bnx2i, cxgb3i, cxgb4i, qla4xxx, ocs) and <hwaddress> is the MAC address of the interface and can be generated via the iscsiadm -m iface command. Do not confuse the iscsi_iface parameter to be provided here with the actual transport name.
iser_use_multipath = False (Boolean) Use multipath connection of the iSER volume
mem_stats_period_seconds = 10 (Integer) A number of seconds to memory usage statistics period. Zero or negative value mean to disable memory usage statistics.
realtime_scheduler_priority = 1 (Integer) In a realtime host context vCPUs for guest will run in that scheduling priority. Priority depends on the host kernel (usually 1-99)
remove_unused_resized_minimum_age_seconds = 3600 (Integer) Unused resized base images younger than this will not be removed
rescue_image_id = None

(String) The ID of the image to boot from to rescue data from a corrupted instance.

If the rescue REST API operation doesn’t provide an ID of an image to use, the image which is referenced by this ID is used. If this option is not set, the image from the instance is used.

Possible values:

  • An ID of an image or nothing. If it points to an Amazon Machine Image (AMI), consider to set the config options rescue_kernel_id and rescue_ramdisk_id too. If nothing is set, the image of the instance is used.

Related options:

  • rescue_kernel_id: If the chosen rescue image allows the separate definition of its kernel disk, the value of this option is used, if specified. This is the case when Amazon‘s AMI/AKI/ARI image format is used for the rescue image.
  • rescue_ramdisk_id: If the chosen rescue image allows the separate definition of its RAM disk, the value of this option is used if, specified. This is the case when Amazon‘s AMI/AKI/ARI image format is used for the rescue image.
rescue_kernel_id = None

(String) The ID of the kernel (AKI) image to use with the rescue image.

If the chosen rescue image allows the separate definition of its kernel disk, the value of this option is used, if specified. This is the case when Amazon‘s AMI/AKI/ARI image format is used for the rescue image.

Possible values:

  • An ID of an kernel image or nothing. If nothing is specified, the kernel disk from the instance is used if it was launched with one.

Related options:

  • rescue_image_id: If that option points to an image in Amazon‘s AMI/AKI/ARI image format, it’s useful to use rescue_kernel_id too.
rescue_ramdisk_id = None

(String) The ID of the RAM disk (ARI) image to use with the rescue image.

If the chosen rescue image allows the separate definition of its RAM disk, the value of this option is used, if specified. This is the case when Amazon‘s AMI/AKI/ARI image format is used for the rescue image.

Possible values:

  • An ID of a RAM disk image or nothing. If nothing is specified, the RAM disk from the instance is used if it was launched with one.

Related options:

  • rescue_image_id: If that option points to an image in Amazon‘s AMI/AKI/ARI image format, it’s useful to use rescue_ramdisk_id too.
rng_dev_path = None (String) A path to a device that will be used as source of entropy on the host. Permitted options are: /dev/random or /dev/hwrng
snapshot_compression = False (Boolean) Compress snapshot images when possible. This currently applies exclusively to qcow2 images
snapshot_image_format = None (String) Snapshot image format. Defaults to same as source image
snapshots_directory = $instances_path/snapshots (String) Location where libvirt driver will store snapshots before uploading them to image service
sparse_logical_volumes = False (Boolean) Create sparse logical volumes (with virtualsize) if this flag is set to True.
sysinfo_serial = auto (String) The data source used to the populate the host “serial” UUID exposed to guest in the virtual BIOS.
uid_maps = (List) List of uid targets and ranges.Syntax is guest-uid:host-uid:countMaximum of 5 allowed.
use_usb_tablet = True

(Boolean) DEPRECATED: Enable a mouse cursor within a graphical VNC or SPICE sessions.

This will only be taken into account if the VM is fully virtualized and VNC and/or SPICE is enabled. If the node doesn’t support a graphical framebuffer, then it is valid to set this to False.

Related options:

  • [vnc]enabled: If VNC is enabled, use_usb_tablet will have an effect.
  • [spice]enabled + [spice].agent_enabled: If SPICE is enabled and the spice agent is disabled, the config value of use_usb_tablet will have an effect. This option is being replaced by the ‘pointer_model’ option.
use_virtio_for_bridges = True (Boolean) Use virtio for bridge interfaces with KVM/QEMU
virt_type = kvm

(String) Describes the virtualization type (or so called domain type) libvirt should use.

The choice of this type must match the underlying virtualization strategy you have chosen for this host.

Possible values:

  • See the predefined set of case-sensitive values.

Related options:

  • connection_uri: depends on this
  • disk_prefix: depends on this
  • cpu_mode: depends on this
  • cpu_model: depends on this
volume_clear = zero (String) Method used to wipe old volumes.
volume_clear_size = 0 (Integer) Size in MiB to wipe at start of old volumes. 0 => all
volume_use_multipath = False (Boolean) Use multipath connection of the iSCSI or FC volume
vzstorage_cache_path = None

(String) Path to the SSD cache file.

You can attach an SSD drive to a client and configure the drive to store a local cache of frequently accessed data. By having a local cache on a client’s SSD drive, you can increase the overall cluster performance by up to 10 and more times. WARNING! There is a lot of SSD models which are not server grade and may loose arbitrary set of data changes on power loss. Such SSDs should not be used in Vstorage and are dangerous as may lead to data corruptions and inconsistencies. Please consult with the manual on which SSD models are known to be safe or verify it using vstorage-hwflush-check(1) utility.

This option defines the path which should include “%(cluster_name)s” template to separate caches from multiple shares.

  • Services that use this:
nova-compute
  • Related options:
vzstorage_mount_opts may include more detailed cache options.
vzstorage_log_path = /var/log/pstorage/%(cluster_name)s/nova.log.gz

(String) Path to vzstorage client log.

This option defines the log of cluster operations, it should include “%(cluster_name)s” template to separate logs from multiple shares.

  • Services that use this:
nova-compute
  • Related options:
vzstorage_mount_opts may include more detailed logging options.
vzstorage_mount_group = qemu

(String) Mount owner group name.

This option defines the owner group of Vzstorage cluster mountpoint.

  • Services that use this:
nova-compute
  • Related options:
vzstorage_mount_* group of parameters
vzstorage_mount_opts =

(List) Extra mount options for pstorage-mount

For full description of them, see https://static.openvz.org/vz-man/man1/pstorage-mount.1.gz.html Format is a python string representation of arguments list, like: “[‘-v’, ‘-R’, ‘500’]” Shouldn’t include -c, -l, -C, -u, -g and -m as those have explicit vzstorage_* options.

  • Services that use this:
nova-compute
  • Related options:
All other vzstorage_* options
vzstorage_mount_perms = 0770

(String) Mount access mode.

This option defines the access bits of Vzstorage cluster mountpoint, in the format similar to one of chmod(1) utility, like this: 0770. It consists of one to four digits ranging from 0 to 7, with missing lead digits assumed to be 0’s.

  • Services that use this:
nova-compute
  • Related options:
vzstorage_mount_* group of parameters
vzstorage_mount_point_base = $state_path/mnt

(String) Directory where the Virtuozzo Storage clusters are mounted on the compute node.

This option defines non-standard mountpoint for Vzstorage cluster.

  • Services that use this:
nova-compute
  • Related options:
vzstorage_mount_* group of parameters
vzstorage_mount_user = stack

(String) Mount owner user name.

This option defines the owner user of Vzstorage cluster mountpoint.

  • Services that use this:
nova-compute
  • Related options:
vzstorage_mount_* group of parameters
wait_soft_reboot_seconds = 120 (Integer) Number of seconds to wait for instance to shut down after soft reboot request is made. We fall back to hard reboot if instance does not shutdown within this window.
Description of live migration configuration options
Configuration option = Default value Description
[DEFAULT]  
live_migration_retry_count = 30

(Integer) Maximum number of 1 second retries in live_migration. It specifies number of retries to iptables when it complains. It happens when an user continously sends live-migration request to same host leading to concurrent request to iptables.

Possible values:

  • Any positive integer representing retry count.
max_concurrent_live_migrations = 1

(Integer) Maximum number of live migrations to run concurrently. This limit is enforced to avoid outbound live migrations overwhelming the host/network and causing failures. It is not recommended that you change this unless you are very sure that doing so is safe and stable in your environment.

Possible values:

  • 0 : treated as unlimited.
  • Negative value defaults to 0.
  • Any positive integer representing maximum number of live migrations to run concurrently.
[libvirt]  
live_migration_bandwidth = 0 (Integer) Maximum bandwidth(in MiB/s) to be used during migration. If set to 0, will choose a suitable default. Some hypervisors do not support this feature and will return an error if bandwidth is not 0. Please refer to the libvirt documentation for further details
live_migration_completion_timeout = 800

(Integer) Time to wait, in seconds, for migration to successfully complete transferring data before aborting the operation. Value is per GiB of guest RAM + disk to be transferred, with lower bound of a minimum of 2 GiB. Should usually be larger than downtime delay

  • downtime steps. Set to 0 to disable timeouts.

Mutable

This option can be changed without restarting.

live_migration_downtime = 500 (Integer) Maximum permitted downtime, in milliseconds, for live migration switchover. Will be rounded up to a minimum of 100ms. Use a large value if guest liveness is unimportant.
live_migration_downtime_delay = 75 (Integer) Time to wait, in seconds, between each step increase of the migration downtime. Minimum delay is 10 seconds. Value is per GiB of guest RAM + disk to be transferred, with lower bound of a minimum of 2 GiB per device
live_migration_downtime_steps = 10 (Integer) Number of incremental steps to reach max downtime value. Will be rounded up to a minimum of 3 steps
live_migration_inbound_addr = None (String) Live migration target ip or hostname (if this option is set to None, which is the default, the hostname of the migration target compute node will be used)
live_migration_permit_auto_converge = False

(Boolean) This option allows nova to start live migration with auto converge on. Auto converge throttles down CPU if a progress of on-going live migration is slow. Auto converge will only be used if this flag is set to True and post copy is not permitted or post copy is unavailable due to the version of libvirt and QEMU in use. Auto converge requires libvirt>=1.2.3 and QEMU>=1.6.0.

Related options:

  • live_migration_permit_post_copy
live_migration_permit_post_copy = False

(Boolean) This option allows nova to switch an on-going live migration to post-copy mode, i.e., switch the active VM to the one on the destination node before the migration is complete, therefore ensuring an upper bound on the memory that needs to be transferred. Post-copy requires libvirt>=1.3.3 and QEMU>=2.5.0.

When permitted, post-copy mode will be automatically activated if a live-migration memory copy iteration does not make percentage increase of at least 10% over the last iteration.

The live-migration force complete API also uses post-copy when permitted. If post-copy mode is not available, force complete falls back to pausing the VM to ensure the live-migration operation will complete.

When using post-copy mode, if the source and destination hosts loose network connectivity, the VM being live-migrated will need to be rebooted. For more details, please see the Administration guide.

Related options:

  • live_migration_permit_auto_converge
live_migration_progress_timeout = 150

(Integer) Time to wait, in seconds, for migration to make forward progress in transferring data before aborting the operation. Set to 0 to disable timeouts.

Mutable

This option can be changed without restarting.

live_migration_tunnelled = False (Boolean) Whether to use tunnelled migration, where migration data is transported over the libvirtd connection. If True, we use the VIR_MIGRATE_TUNNELLED migration flag, avoiding the need to configure the network to allow direct hypervisor to hypervisor communication. If False, use the native transport. If not set, Nova will choose a sensible default based on, for example the availability of native encryption support in the hypervisor.
live_migration_uri = None (String) Override the default libvirt live migration target URI (which is dependent on virt_type) (any included “%s” is replaced with the migration target hostname)
Description of metadata configuration options
Configuration option = Default value Description
[DEFAULT]  
metadata_cache_expiration = 15 (Integer) This option is the time (in seconds) to cache metadata. When set to 0, metadata caching is disabled entirely; this is generally not recommended for performance reasons. Increasing this setting should improve response times of the metadata API when under heavy load. Higher values may increase memory usage, and result in longer times for host metadata changes to take effect.
metadata_host = $my_ip

(String) This option determines the IP address for the network metadata API server.

Possible values:

  • Any valid IP address. The default is the address of the Nova API server.

Related options:

  • metadata_port
metadata_listen = 0.0.0.0 (String) The IP address on which the metadata API will listen.
metadata_listen_port = 8775 (Port number) The port on which the metadata API will listen.
metadata_manager = nova.api.manager.MetadataManager (String) DEPRECATED: OpenStack metadata service manager
metadata_port = 8775

(Port number) This option determines the port used for the metadata API server.

Related options:

  • metadata_host
metadata_workers = None (Integer) Number of workers for metadata service. The default will be the number of CPUs available.
vendordata_driver = nova.api.metadata.vendordata_json.JsonFileVendorData

(String) DEPRECATED: When returning instance metadata, this is the class that is used for getting vendor metadata when that class isn’t specified in the individual request. The value should be the full dot-separated path to the class to use.

Possible values:

  • Any valid dot-separated class path that can be imported.
vendordata_dynamic_connect_timeout = 5

(Integer) Maximum wait time for an external REST service to connect.

Possible values:

  • Any integer with a value greater than three (the TCP packet retransmission timeout). Note that instance start may be blocked during this wait time, so this value should be kept small.

Related options:

  • vendordata_providers
  • vendordata_dynamic_targets
  • vendordata_dynamic_ssl_certfile
  • vendordata_dynamic_read_timeout
vendordata_dynamic_read_timeout = 5

(Integer) Maximum wait time for an external REST service to return data once connected.

Possible values:

  • Any integer. Note that instance start is blocked during this wait time, so this value should be kept small.

Related options:

  • vendordata_providers
  • vendordata_dynamic_targets
  • vendordata_dynamic_ssl_certfile
  • vendordata_dynamic_connect_timeout
vendordata_dynamic_ssl_certfile =

(String) Path to an optional certificate file or CA bundle to verify dynamic vendordata REST services ssl certificates against.

Possible values:

  • An empty string, or a path to a valid certificate file

Related options:

  • vendordata_providers
  • vendordata_dynamic_targets
  • vendordata_dynamic_connect_timeout
  • vendordata_dynamic_read_timeout
vendordata_dynamic_targets =

(List) A list of targets for the dynamic vendordata provider. These targets are of the form <name>@<url>.

The dynamic vendordata provider collects metadata by contacting external REST services and querying them for information about the instance. This behaviour is documented in the vendordata.rst file in the nova developer reference.

vendordata_jsonfile_path = None

(String) Cloud providers may store custom data in vendor data file that will then be available to the instances via the metadata service, and to the rendering of config-drive. The default class for this, JsonFileVendorData, loads this information from a JSON file, whose path is configured by this option. If there is no path set by this option, the class returns an empty dictionary.

Possible values:

  • Any string representing the path to the data file, or an empty string (default).
vendordata_providers =

(List) A list of vendordata providers.

vendordata providers are how deployers can provide metadata via configdrive and metadata that is specific to their deployment. There are currently two supported providers: StaticJSON and DynamicJSON.

StaticJSON reads a JSON file configured by the flag vendordata_jsonfile_path and places the JSON from that file into vendor_data.json and vendor_data2.json.

DynamicJSON is configured via the vendordata_dynamic_targets flag, which is documented separately. For each of the endpoints specified in that flag, a section is added to the vendor_data2.json.

For more information on the requirements for implementing a vendordata dynamic endpoint, please see the vendordata.rst file in the nova developer reference.

Possible values:

  • A list of vendordata providers, with StaticJSON and DynamicJSON being current options.

Related options:

  • vendordata_dynamic_targets
  • vendordata_dynamic_ssl_certfile
  • vendordata_dynamic_connect_timeout
  • vendordata_dynamic_read_timeout
Description of network configuration options
Configuration option = Default value Description
[DEFAULT]  
allow_same_net_traffic = True

(Boolean) Determine whether to allow network traffic from same network.

When set to true, hosts on the same subnet are not filtered and are allowed to pass all types of traffic between them. On a flat network, this allows all instances from all projects unfiltered communication. With VLAN networking, this allows access between instances within the same project.

This option only applies when using the nova-network service. When using another networking services, such as Neutron, security groups or other approaches should be used.

Possible values:

  • True: Network traffic should be allowed pass between all instances on the same network, regardless of their tenant and security policies
  • False: Network traffic should not be allowed pass between instances unless it is unblocked in a security group

Interdependencies to other options:

  • use_neutron: This must be set to False to enable nova-network networking
  • firewall_driver: This must be set to nova.virt.libvirt.firewall.IptablesFirewallDriver to ensure the libvirt firewall driver is enabled.
auto_assign_floating_ip = False

(Boolean) Autoassigning floating IP to VM

When set to True, floating IP is auto allocated and associated to the VM upon creation.

cnt_vpn_clients = 0

(Integer) This option represents the number of IP addresses to reserve at the top of the address range for VPN clients. It also will be ignored if the configuration option for network_manager is not set to the default of ‘nova.network.manager.VlanManager’.

Possible values:

Any integer, 0 or greater. The default is 0.

Related options:

use_neutron, network_manager
create_unique_mac_address_attempts = 5

(Integer) This option determines how many times nova-network will attempt to create a unique MAC address before giving up and raising a VirtualInterfaceMacAddressException error.

Possible values:

Any positive integer. The default is 5.

Related options:

use_neutron
default_access_ip_network_name = None

(String) Name of the network to be used to set access IPs for instances. If there are multiple IPs to choose from, an arbitrary one will be chosen.

Possible values:

  • None (default)
  • Any string representing network name.
default_floating_pool = nova

(String) Default pool for floating IPs.

This option specifies the default floating IP pool for allocating floating IPs.

While allocating a floating ip, users can optionally pass in the name of the pool they want to allocate from, otherwise it will be pulled from the default pool.

If this option is not set, then ‘nova’ is used as default floating pool.

Possible values:

  • Any string representing a floating IP pool name
defer_iptables_apply = False (Boolean) Whether to batch up the application of IPTables rules during a host restart and apply all at the end of the init phase.
dhcp_domain = novalocal

(String) This option allows you to specify the domain for the DHCP server.

Possible values:

Any string that is a valid domain name.

Related options:

use_neutron
dhcp_lease_time = 86400

(Integer) The lifetime of a DHCP lease, in seconds. The default is 86400 (one day).

Possible values:

Any positive integer value.
dhcpbridge = $bindir/nova-dhcpbridge

(String) The location of the binary nova-dhcpbridge. By default it is the binary named ‘nova-dhcpbridge’ that is installed with all the other nova binaries.

Possible values:

Any string representing the full path to the binary for dhcpbridge
dhcpbridge_flagfile = ['/etc/nova/nova-dhcpbridge.conf']

(Multi-valued) This option is a list of full paths to one or more configuration files for dhcpbridge. In most cases the default path of ‘/etc/nova/nova-dhcpbridge.conf’ should be sufficient, but if you have special needs for configuring dhcpbridge, you can change or add to this list.

Possible values

A list of strings, where each string is the full path to a dhcpbridge configuration file.
dns_server = []

(Multi-valued) Despite the singular form of the name of this option, it is actually a list of zero or more server addresses that dnsmasq will use for DNS nameservers. If this is not empty, dnsmasq will not read /etc/resolv.conf, but will only use the servers specified in this option. If the option use_network_dns_servers is True, the dns1 and dns2 servers from the network will be appended to this list, and will be used as DNS servers, too.

Possible values:

A list of strings, where each string is either an IP address or a FQDN.

Related options:

use_network_dns_servers
dns_update_periodic_interval = -1

(Integer) This option determines the time, in seconds, to wait between refreshing DNS entries for the network.

Possible values:

Either -1 (default), or any positive integer. A negative value will disable the updates.

Related options:

use_neutron
dnsmasq_config_file =

(String) The path to the custom dnsmasq configuration file, if any.

Possible values:

The full path to the configuration file, or an empty string if there is no custom dnsmasq configuration file.
ebtables_exec_attempts = 3

(Integer) This option determines the number of times to retry ebtables commands before giving up. The minimum number of retries is 1.

Possible values:

  • Any positive integer

Related options:

  • ebtables_retry_interval
ebtables_retry_interval = 1.0

(Floating point) This option determines the time, in seconds, that the system will sleep in between ebtables retries. Note that each successive retry waits a multiple of this value, so for example, if this is set to the default of 1.0 seconds, and ebtables_exec_attempts is 4, after the first failure, the system will sleep for 1

  • 1.0 seconds, after the second failure it will sleep 2
  • 1.0 seconds, and after the third failure it will sleep 3
  • 1.0 seconds.

Possible values:

  • Any non-negative float or integer. Setting this to zero will result in no waiting between attempts.

Related options:

  • ebtables_exec_attempts
firewall_driver = None

(String) Firewall driver to use with nova-network service.

This option only applies when using the nova-network service. When using another networking services, such as Neutron, this should be to set to the nova.virt.firewall.NoopFirewallDriver.

If unset (the default), this will default to the hypervisor-specified default driver.

Possible values:

  • nova.virt.firewall.IptablesFirewallDriver
  • nova.virt.firewall.NoopFirewallDriver
  • nova.virt.libvirt.firewall.IptablesFirewallDriver
  • [...]

Interdependencies to other options:

  • use_neutron: This must be set to False to enable nova-network networking
fixed_ip_disassociate_timeout = 600

(Integer) This is the number of seconds to wait before disassociating a deallocated fixed IP address. This is only used with the nova-network service, and has no effect when using neutron for networking.

Possible values:

Any integer, zero or greater. The default is 600 (10 minutes).

Related options:

use_neutron
flat_injected = False (Boolean) This option determines whether the network setup information is injected into the VM before it is booted. While it was originally designed to be used only by nova-network, it is also used by the vmware and xenapi virt drivers to control whether network information is injected into a VM.
flat_interface = None

(String) This option is the name of the virtual interface of the VM on which the bridge will be built. While it was originally designed to be used only by nova-network, it is also used by libvirt for the bridge interface name.

Possible values:

Any valid virtual interface name, such as ‘eth0’
flat_network_bridge = None

(String) This option determines the bridge used for simple network interfaces when no bridge is specified in the VM creation request.

Please note that this option is only used when using nova-network instead of Neutron in your deployment.

Possible values:

Any string representing a valid network bridge, such as ‘br100’

Related options:

use_neutron
flat_network_dns = 8.8.4.4

(String) This is the address of the DNS server for a simple network. If this option is not specified, the default of ‘8.8.4.4’ is used.

Please note that this option is only used when using nova-network instead of Neutron in your deployment.

Possible values:

Any valid IP address.

Related options:

use_neutron
floating_ip_dns_manager = nova.network.noop_dns_driver.NoopDNSDriver

(String) Full class name for the DNS Manager for floating IPs.

This option specifies the class of the driver that provides functionality to manage DNS entries associated with floating IPs.

When a user adds a DNS entry for a specified domain to a floating IP, nova will add a DNS entry using the specified floating DNS driver. When a floating IP is deallocated, its DNS entry will automatically be deleted.

Possible values:

  • Full Python path to the class to be used
force_dhcp_release = True

(Boolean) When this option is True, a call is made to release the DHCP for the instance when that instance is terminated.

Related options:

use_neutron
force_snat_range = []

(Multi-valued) This is a list of zero or more IP ranges that traffic from the routing_source_ip will be SNATted to. If the list is empty, then no SNAT rules are created.

Possible values:

A list of strings, each of which should be a valid CIDR.

Related options:

routing_source_ip
forward_bridge_interface = ['all']

(Multi-valued) One or more interfaces that bridges can forward traffic to. If any of the items in this list is the special keyword ‘all’, then all traffic will be forwarded.

Possible values:

A list of zero or more interface names, or the word ‘all’.
gateway = None

(String) This is the default IPv4 gateway. It is used only in the testing suite.

Please note that this option is only used when using nova-network instead of Neutron in your deployment.

Possible values:

Any valid IP address.

Related options:

use_neutron, gateway_v6
injected_network_template = $pybasedir/nova/virt/interfaces.template (String) Template file for injected network
instance_dns_domain = (String) If specified, Nova checks if the availability_zone of every instance matches what the database says the availability_zone should be for the specified dns_domain.
instance_dns_manager = nova.network.noop_dns_driver.NoopDNSDriver

(String) Full class name for the DNS Manager for instance IPs.

This option specifies the class of the driver that provides functionality to manage DNS entries for instances.

On instance creation, nova will add DNS entries for the instance name and id, using the specified instance DNS driver and domain. On instance deletion, nova will remove the DNS entries.

Possible values:

  • Full Python path to the class to be used
iptables_bottom_regex =

(String) This expression, if defined, will select any matching iptables rules and place them at the bottom when applying metadata changes to the rules.

Possible values:

  • Any string representing a valid regular expression, or an empty string

Related options:

  • iptables_top_regex
iptables_drop_action = DROP

(String) By default, packets that do not pass the firewall are DROPped. In many cases, though, an operator may find it more useful to change this from DROP to REJECT, so that the user issuing those packets may have a better idea as to what’s going on, or LOGDROP in order to record the blocked traffic before DROPping.

Possible values:

  • A string representing an iptables chain. The default is DROP.
iptables_top_regex =

(String) This expression, if defined, will select any matching iptables rules and place them at the top when applying metadata changes to the rules.

Possible values:

  • Any string representing a valid regular expression, or an empty string

Related options:

  • iptables_bottom_regex
l3_lib = nova.network.l3.LinuxNetL3

(String) This option allows you to specify the L3 management library to be used.

Possible values:

Any dot-separated string that represents the import path to an L3 networking library.

Related options:

use_neutron
linuxnet_interface_driver = nova.network.linux_net.LinuxBridgeInterfaceDriver

(String) This is the class used as the ethernet device driver for linuxnet bridge operations. The default value should be all you need for most cases, but if you wish to use a customized class, set this option to the full dot-separated import path for that class.

Possible values:

Any string representing a dot-separated class path that Nova can import.
linuxnet_ovs_integration_bridge = br-int

(String) The name of the Open vSwitch bridge that is used with linuxnet when connecting with Open vSwitch.”

Possible values:

Any string representing a valid bridge name.
multi_host = False (Boolean) Default value for multi_host in networks. Also, if set, some rpc network calls will be sent directly to host.
network_allocate_retries = 0

(Integer) Number of times to retry network allocation. It is required to attempt network allocation retries if the virtual interface plug fails.

Possible values:

  • Any positive integer representing retry count.
network_driver = nova.network.linux_net (String) Driver to use for network creation
network_manager = nova.network.manager.VlanManager (String) Full class name for the Manager for network
network_size = 256

(Integer) This option determines the number of addresses in each private subnet.

Please note that this option is only used when using nova-network instead of Neutron in your deployment.

Possible values:

Any positive integer that is less than or equal to the available network size. Note that if you are creating multiple networks, they must all fit in the available IP address space. The default is 256.

Related options:

use_neutron, num_networks
network_topic = network (String) The topic network nodes listen on
networks_path = $state_path/networks

(String) The location where the network configuration files will be kept. The default is the ‘networks’ directory off of the location where nova’s Python module is installed.

Possible values

A string containing the full path to the desired configuration directory
num_networks = 1

(Integer) This option represents the number of networks to create if not explicitly specified when the network is created. The only time this is used is if a CIDR is specified, but an explicit network_size is not. In that case, the subnets are created by diving the IP address space of the CIDR by num_networks. The resulting subnet sizes cannot be larger than the configuration option network_size; in that event, they are reduced to network_size, and a warning is logged.

Please note that this option is only used when using nova-network instead of Neutron in your deployment.

Possible values:

Any positive integer is technically valid, although there are practical limits based upon available IP address space and virtual interfaces. The default is 1.

Related options:

use_neutron, network_size
ovs_vsctl_timeout = 120

(Integer) This option represents the period of time, in seconds, that the ovs_vsctl calls will wait for a response from the database before timing out. A setting of 0 means that the utility should wait forever for a response.

Possible values:

  • Any positive integer if a limited timeout is desired, or zero if the calls should wait forever for a response.
public_interface = eth0

(String) This is the name of the network interface for public IP addresses. The default is ‘eth0’.

Possible values:

Any string representing a network interface name
routing_source_ip = $my_ip

(String) This is the public IP address of the network host. It is used when creating a SNAT rule.

Possible values:

Any valid IP address

Related options:

force_snat_range
send_arp_for_ha = False

(Boolean) When True, when a device starts up, and upon binding floating IP addresses, arp messages will be sent to ensure that the arp caches on the compute hosts are up-to-date.

Related options:

send_arp_for_ha_count
send_arp_for_ha_count = 3

(Integer) When arp messages are configured to be sent, they will be sent with the count set to the value of this option. Of course, if this is set to zero, no arp messages will be sent.

Possible values:

Any integer greater than or equal to 0

Related options:

send_arp_for_ha
share_dhcp_address = False

(Boolean) DEPRECATED: THIS VALUE SHOULD BE SET WHEN CREATING THE NETWORK.

If True in multi_host mode, all compute hosts share the same dhcp address. The same IP address used for DHCP will be added on each nova-network node which is only visible to the VMs on the same host.

The use of this configuration has been deprecated and may be removed in any release after Mitaka. It is recommended that instead of relying on this option, an explicit value should be passed to ‘create_networks()’ as a keyword argument with the name ‘share_address’.

teardown_unused_network_gateway = False

(Boolean) Determines whether unused gateway devices, both VLAN and bridge, are deleted if the network is in nova-network VLAN mode and is multi-hosted.

Related options:

use_neutron, vpn_ip, fake_network
update_dns_entries = False

(Boolean) When this option is True, whenever a DNS entry must be updated, a fanout cast message is sent to all network hosts to update their DNS entries in multi-host mode.

Related options:

use_neutron
use_network_dns_servers = False

(Boolean) When this option is set to True, the dns1 and dns2 servers for the network specified by the user on boot will be used for DNS, as well as any specified in the dns_server option.

Related options:

dns_server
use_neutron = False (Boolean) Whether to use Neutron or Nova Network as the back end for networking. Defaults to False (indicating Nova network).Set to True to use neutron.
use_neutron_default_nets = False

(Boolean) When True, the TenantNetworkController will query the Neutron API to get the default networks to use.

Related options:

  • neutron_default_tenant_id
use_single_default_gateway = False (Boolean) When set to True, only the firt nic of a VM will get its default gateway from the DHCP server.
vlan_interface = None

(String) This option is the name of the virtual interface of the VM on which the VLAN bridge will be built. While it was originally designed to be used only by nova-network, it is also used by libvirt and xenapi for the bridge interface name.

Please note that this setting will be ignored in nova-network if the configuration option for network_manager is not set to the default of ‘nova.network.manager.VlanManager’.

Possible values:

Any valid virtual interface name, such as ‘eth0’
vlan_start = 100

(Integer) This is the VLAN number used for private networks. Note that the when creating the networks, if the specified number has already been assigned, nova-network will increment this number until it finds an available VLAN.

Please note that this option is only used when using nova-network instead of Neutron in your deployment. It also will be ignored if the configuration option for network_manager is not set to the default of ‘nova.network.manager.VlanManager’.

Possible values:

Any integer between 1 and 4094. Values outside of that range will raise a ValueError exception. Default = 100.

Related options:

network_manager, use_neutron
[libvirt]  
remote_filesystem_transport = ssh (String) Use ssh or rsync transport for creating, copying, removing files on the remote host.
[os_vif_linux_bridge]  
flat_interface = None (String) FlatDhcp will bridge into this interface if set
forward_bridge_interface = ['all'] (Multi-valued) An interface that bridges can forward to. If this is set to all then all traffic will be forwarded. Can be specified multiple times.
iptables_bottom_regex = (String) Regular expression to match the iptables rule that should always be on the bottom.
iptables_drop_action = DROP (String) The table that iptables to jump to when a packet is to be dropped.
iptables_top_regex = (String) Regular expression to match the iptables rule that should always be on the top.
network_device_mtu = 1500 (Integer) MTU setting for network interface.
use_ipv6 = False (Boolean) Use IPv6
vlan_interface = None (String) VLANs will bridge into this interface if set
[os_vif_ovs]  
network_device_mtu = 1500 (Integer) MTU setting for network interface.
ovs_vsctl_timeout = 120 (Integer) Amount of time, in seconds, that ovs_vsctl should wait for a response from the database. 0 is to wait forever.
[vif_plug_linux_bridge_privileged]  
capabilities = [] (Unknown) List of Linux capabilities retained by the privsep daemon.
group = None (String) Group that the privsep daemon should run as.
helper_command = None (String) Command to invoke to start the privsep daemon if not using the “fork” method. If not specified, a default is generated using “sudo privsep-helper” and arguments designed to recreate the current configuration. This command must accept suitable –privsep_context and –privsep_sock_path arguments.
user = None (String) User that the privsep daemon should run as.
[vif_plug_ovs_privileged]  
capabilities = [] (Unknown) List of Linux capabilities retained by the privsep daemon.
group = None (String) Group that the privsep daemon should run as.
helper_command = None (String) Command to invoke to start the privsep daemon if not using the “fork” method. If not specified, a default is generated using “sudo privsep-helper” and arguments designed to recreate the current configuration. This command must accept suitable –privsep_context and –privsep_sock_path arguments.
user = None (String) User that the privsep daemon should run as.
[vmware]  
vlan_interface = vmnic0

(String) 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
Description of neutron configuration options
Configuration option = Default value Description
[DEFAULT]  
neutron_default_tenant_id = default

(String) Tenant ID for getting the default network from Neutron API (also referred in some places as the ‘project ID’) to use.

Related options:

  • use_neutron_default_nets
[neutron]  
auth_section = None (Unknown) Config Section from which to load plugin specific options
auth_type = None (Unknown) Authentication type to load
cafile = None (String) PEM encoded Certificate Authority to use when verifying HTTPs connections.
certfile = None (String) PEM encoded client certificate cert file
extension_sync_interval = 600 (Integer) Integer value representing the number of seconds to wait before querying Neutron for extensions. After this number of seconds the next time Nova needs to create a resource in Neutron it will requery Neutron for the extensions that it has loaded. Setting value to 0 will refresh the extensions with no wait.
insecure = False (Boolean) Verify HTTPS connections.
keyfile = None (String) PEM encoded client certificate key file
metadata_proxy_shared_secret =

(String) This option holds the shared secret string used to validate proxy requests to Neutron metadata requests. In order to be used, the ‘X-Metadata-Provider-Signature’ header must be supplied in the request.

Related options:

  • service_metadata_proxy
ovs_bridge = br-int

(String) Specifies the name of an integration bridge interface used by OpenvSwitch. This option is used only if Neutron does not specify the OVS bridge name.

Possible values:

  • Any string representing OVS bridge name.
region_name = RegionOne

(String) Region name for connecting to Neutron in admin context.

This option is used in multi-region setups. If there are two Neutron servers running in two regions in two different machines, then two services need to be created in Keystone with two different regions and associate corresponding endpoints to those services. When requests are made to Keystone, the Keystone service uses the region_name to determine the region the request is coming from.

service_metadata_proxy = False

(Boolean) When set to True, this option indicates that Neutron will be used to proxy metadata requests and resolve instance ids. Otherwise, the instance ID must be passed to the metadata request in the ‘X-Instance-ID’ header.

Related options:

  • metadata_proxy_shared_secret
timeout = None (Integer) Timeout value for http requests
url = http://127.0.0.1:9696

(URI) This option specifies the URL for connecting to Neutron.

Possible values:

  • Any valid URL that points to the Neutron API service is appropriate here. This typically matches the URL returned for the ‘network’ service type from the Keystone service catalog.
Description of osbrick configuration options
Configuration option = Default value Description
[privsep_osbrick]  
capabilities = [] (Unknown) List of Linux capabilities retained by the privsep daemon.
group = None (String) Group that the privsep daemon should run as.
helper_command = None (String) Command to invoke to start the privsep daemon if not using the “fork” method. If not specified, a default is generated using “sudo privsep-helper” and arguments designed to recreate the current configuration. This command must accept suitable –privsep_context and –privsep_sock_path arguments.
user = None (String) User that the privsep daemon should run as.
Description of PCI configuration options
Configuration option = Default value Description
[DEFAULT]  
pci_alias = []

(Multi-valued) An alias for a PCI passthrough device requirement.

This allows users to specify the alias in the extra_spec for a flavor, without needing to repeat all the PCI property requirements.

Possible Values:

  • A list of JSON values which describe the aliases. For example:

pci_alias = { “name”: “QuickAssist”, “product_id”: “0443”, “vendor_id”: “8086”, “device_type”: “type-PCI” }

defines an alias for the Intel QuickAssist card. (multi valued). Valid key values are :

  • “name”: Name of the PCI alias.
  • “product_id”: Product ID of the device in hexadecimal.
  • “vendor_id”: Vendor ID of the device in hexadecimal.
  • “device_type”: Type of PCI device. Valid values are: “type-PCI”, “type-PF” and “type-VF”.
pci_passthrough_whitelist = []

(Multi-valued) White list of PCI devices available to VMs.

Possible values:

  • A JSON dictionary which describe a whitelisted PCI device. It should take the following format:

[“vendor_id”: “<id>”,] [“product_id”: “<id>”,] [“address”: “[[[[<domain>]:]<bus>]:][<slot>][.[<function>]]” | “devname”: “<name>”,] {“<tag>”: “<tag_value>”,}

Where ‘[‘ indicates zero or one occurrences, ‘{‘ indicates zero or multiple occurrences, and ‘|’ mutually exclusive options. Note that any missing fields are automatically wildcarded.

Valid key values are :

  • “vendor_id”: Vendor ID of the device in hexadecimal.
  • “product_id”: Product ID of the device in hexadecimal.
  • “address”: PCI address of the device.
  • “devname”: Device name of the device (for e.g. interface name). Not all PCI devices have a name.
  • “<tag>”: Additional <tag> and <tag_value> used for matching PCI devices. Supported <tag>: “physical_network”.

Valid examples are:

pci_passthrough_whitelist = {“devname”:”eth0”, “physical_network”:”physnet”} pci_passthrough_whitelist = {“address”:”:0a:00.“} pci_passthrough_whitelist = {“address”:”:0a:00.”, “physical_network”:”physnet1”} pci_passthrough_whitelist = {“vendor_id”:”1137”, “product_id”:”0071”} pci_passthrough_whitelist = {“vendor_id”:”1137”, “product_id”:”0071”, “address”: “0000:0a:00.1”, “physical_network”:”physnet1”}

The following are invalid, as they specify mutually exclusive options:

pci_passthrough_whitelist = {“devname”:”eth0”, “physical_network”:”physnet”, “address”:”:0a:00.“}

  • A JSON list of JSON dictionaries corresponding to the above format. For example:
pci_passthrough_whitelist = [{“product_id”:”0001”, “vendor_id”:”8086”}, {“product_id”:”0002”, “vendor_id”:”8086”}]
Description of periodic configuration options
Configuration option = Default value Description
[DEFAULT]  
periodic_enable = True (Boolean) Enable periodic tasks
periodic_fuzzy_delay = 60 (Integer) Range of seconds to randomly delay when starting the periodic task scheduler to reduce stampeding. (Disable by setting to 0)
Description of policy configuration options
Configuration option = Default value Description
[DEFAULT]  
allow_instance_snapshots = True (Boolean) Operators can turn off the ability for a user to take snapshots of their instances by setting this option to False. When disabled, any attempt to take a snapshot will result in a HTTP 400 response (“Bad Request”).
allow_resize_to_same_host = False (Boolean) Allow destination machine to match source for resize. Useful when testing in single-host environments. By default it is not allowed to resize to the same host. Setting this option to true will add the same host to the destination options.
max_age = 0

(Integer) The number of seconds between subsequent usage refreshes. This defaults to 0 (off) to avoid additional load but it is useful to turn on to help keep quota usage up-to-date and reduce the impact of out of sync usage issues. Note that quotas are not updated on a periodic task, they will update on a new reservation if max_age has passed since the last reservation.

Possible values:

  • 0 (default) or any positive integer representing number of seconds.
max_local_block_devices = 3

(Integer) Maximum number of devices that will result in a local image being created on the hypervisor node.

A negative number means unlimited. Setting max_local_block_devices to 0 means that any request that attempts to create a local disk will fail. This option is meant to limit the number of local discs (so root local disc that is the result of –image being used, and any other ephemeral and swap disks). 0 does not mean that images will be automatically converted to volumes and boot instances from volumes - it just means that all requests that attempt to create a local disk will fail.

Possible values:

  • 0: Creating a local disk is not allowed.
  • Negative number: Allows unlimited number of local discs.
  • Positive number: Allows only these many number of local discs. (Default value is 3).
osapi_compute_unique_server_name_scope =

(String) Sets the scope of the check for unique instance names.

The default doesn’t check for unique names. If a scope for the name check is set, a launch of a new instance or an update of an existing instance with a duplicate name will result in an ‘’InstanceExists’’ error. The uniqueness is case-insensitive. Setting this option can increase the usability for end users as they don’t have to distinguish among instances with the same name by their IDs.

Possible values:

  • ‘’: An empty value means that no uniqueness check is done and duplicate names are possible.
  • “project”: The instance name check is done only for instances within the same project.
  • “global”: The instance name check is done for all instances regardless of the project.
osapi_max_limit = 1000 (Integer) As a query can potentially return many thousands of items, you can limit the maximum number of items in a single response by setting this option.
password_length = 12 (Integer) Length of generated instance admin passwords.
reservation_expire = 86400

(Integer) The number of seconds until a reservation expires. It represents the time period for invalidating quota reservations.

Possible values:

  • 86400 (default) or any positive integer representing number of seconds.
resize_fs_using_block_device = False (Boolean) If enabled, attempt to resize the filesystem by accessing the image over a block device. This is done by the host and may not be necessary if the image contains a recent version of cloud-init. Possible mechanisms require the nbd driver (for qcow and raw), or loop (for raw).
until_refresh = 0

(Integer) The count of reservations until usage is refreshed. This defaults to 0 (off) to avoid additional load but it is useful to turn on to help keep quota usage up-to-date and reduce the impact of out of sync usage issues.

Possible values:

  • 0 (default) or any positive integer.
Description of Quobyte USP volume driver configuration options
Configuration option = Default value Description
[libvirt]  
quobyte_client_cfg = None (String) Path to a Quobyte Client configuration file.
quobyte_mount_point_base = $state_path/mnt (String) Directory where the Quobyte volume is mounted on the compute node
Description of quota configuration options
Configuration option = Default value Description
[DEFAULT]  
bandwidth_poll_interval = 600 (Integer) Interval to pull network bandwidth usage info. Not supported on all hypervisors. Set to -1 to disable. Setting this to 0 will run at the default rate.
enable_network_quota = False

(Boolean) DEPRECATED: This option is used to enable or disable quota checking for tenant networks.

Related options:

  • quota_networks CRUD operations on tenant networks are only available when using nova-network and nova-network is itself deprecated.
quota_cores = 20

(Integer) The number of instance cores or VCPUs allowed per project.

Possible values:

  • 20 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_driver = nova.quota.DbQuotaDriver

(String) DEPRECATED: Provides abstraction for quota checks. Users can configure a specific driver to use for quota checks.

Possible values:

  • nova.quota.DbQuotaDriver (default) or any string representing fully qualified class name.
quota_fixed_ips = -1

(Integer) The number of fixed IPs allowed per project (this should be at least the number of instances allowed). Unlike floating IPs, fixed IPs are allocated dynamically by the network component when instances boot up.

Possible values:

  • -1 (default) : treated as unlimited.
  • Any positive integer.
quota_floating_ips = 10

(Integer) The number of floating IPs allowed per project. Floating IPs are not allocated to instances by default. Users need to select them from the pool configured by the OpenStack administrator to attach to their instances.

Possible values:

  • 10 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_injected_file_content_bytes = 10240

(Integer) The number of bytes allowed per injected file.

Possible values:

  • 10240 (default) or any positive integer representing number of bytes.
  • -1 : treated as unlimited.
quota_injected_file_path_length = 255

(Integer) The maximum allowed injected file path length.

Possible values:

  • 255 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_injected_files = 5

(Integer) The number of injected files allowed. It allow users to customize the personality of an instance by injecting data into it upon boot. Only text file injection is permitted. Binary or zip files won’t work. During file injection, any existing files that match specified files are renamed to include .bak extension appended with a timestamp.

Possible values:

  • 5 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_instances = 10

(Integer) The number of instances allowed per project.

Possible Values

  • 10 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_key_pairs = 100

(Integer) The maximum number of key pairs allowed per user. Users can create at least one key pair for each project and use the key pair for multiple instances that belong to that project.

Possible values:

  • 100 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_metadata_items = 128

(Integer) The number of metadata items allowed per instance. User can associate metadata while instance creation in the form of key-value pairs.

Possible values:

  • 128 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_networks = 3

(Integer) DEPRECATED: This option controls the number of private networks that can be created per project (or per tenant).

Related options:

  • enable_network_quota CRUD operations on tenant networks are only available when using nova-network and nova-network is itself deprecated.
quota_ram = 51200

(Integer) The number of megabytes of instance RAM allowed per project.

Possible values:

  • 51200 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_security_group_rules = 20

(Integer) The number of security rules per security group. The associated rules in each security group control the traffic to instances in the group.

Possible values:

  • 20 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_security_groups = 10

(Integer) The number of security groups per project.

Possible values:

  • 10 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_server_group_members = 10

(Integer) Add quota values to constrain the number of servers per server group.

Possible values:

  • 10 (default) or any positive integer.
  • -1 : treated as unlimited.
quota_server_groups = 10

(Integer) Add quota values to constrain the number of server groups per project. Server group used to control the affinity and anti-affinity scheduling policy for a group of servers or instances. Reducing the quota will not affect any existing group, but new servers will not be allowed into groups that have become over quota.

Possible values:

  • 10 (default) or any positive integer.
  • -1 : treated as unlimited.
[cells]  
bandwidth_update_interval = 600

(Integer) Bandwidth update interval

Seconds between bandwidth usage cache updates for cells.

Possible values:

  • Time in seconds.
Description of RDP configuration options
Configuration option = Default value Description
[rdp]  
enabled = False

(Boolean) Enable Remote Desktop Protocol (RDP) related features.

Hyper-V, unlike the majority of the hypervisors employed on Nova compute nodes, uses RDP instead of VNC and SPICE as a desktop sharing protocol to provide instance console access. This option enables RDP for graphical console access for virtual machines created by Hyper-V.

Note: RDP should only be enabled on compute nodes that support the Hyper-V virtualization platform.

Related options:

  • compute_driver: Must be hyperv.
html5_proxy_base_url = http://127.0.0.1:6083/

(String) The URL an end user would use to connect to the RDP HTML5 console proxy. The console proxy service is called with this token-embedded URL and establishes the connection to the proper instance.

An RDP HTML5 console proxy service will need to be configured to listen on the address configured here. Typically the console proxy service would be run on a controller node. The localhost address used as default would only work in a single node environment i.e. devstack.

An RDP HTML5 proxy allows a user to access via the web the text or graphical console of any Windows server or workstation using RDP. RDP HTML5 console proxy services include FreeRDP, wsgate. See https://github.com/FreeRDP/FreeRDP-WebConnect

Possible values:

  • <scheme>://<ip-address>:<port-number>/

The scheme must be identical to the scheme configured for the RDP HTML5 console proxy service.

The IP address must be identical to the address on which the RDP HTML5 console proxy service is listening.

The port must be identical to the port on which the RDP HTML5 console proxy service is listening.

Related options:

  • rdp.enabled: Must be set to True for html5_proxy_base_url to be effective.
Description of Redis configuration options
Configuration option = Default value Description
[matchmaker_redis]  
check_timeout = 20000 (Integer) Time in ms to wait before the transaction is killed.
host = 127.0.0.1 (String) DEPRECATED: Host to locate redis. Replaced by [DEFAULT]/transport_url
password = (String) DEPRECATED: Password for Redis server (optional). Replaced by [DEFAULT]/transport_url
port = 6379 (Port number) DEPRECATED: Use this port to connect to redis host. Replaced by [DEFAULT]/transport_url
sentinel_group_name = oslo-messaging-zeromq (String) Redis replica set name.
sentinel_hosts = (List) DEPRECATED: List of Redis Sentinel hosts (fault tolerance mode) e.g. [host:port, host1:port ... ] Replaced by [DEFAULT]/transport_url
socket_timeout = 10000 (Integer) Timeout in ms on blocking socket operations
wait_timeout = 2000 (Integer) Time in ms to wait between connection attempts.
Description of S3 configuration options
Configuration option = Default value Description
[DEFAULT]  
image_decryption_dir = /tmp (String) DEPRECATED: Parent directory for tempdir used for image decryption EC2 API related options are not supported.
s3_access_key = notchecked (String) DEPRECATED: Access key to use S3 server for images EC2 API related options are not supported.
s3_affix_tenant = False (Boolean) DEPRECATED: Whether to affix the tenant id to the access key when downloading from S3 EC2 API related options are not supported.
s3_host = $my_ip (String) DEPRECATED: Hostname or IP for OpenStack to use when accessing the S3 API EC2 API related options are not supported.
s3_port = 3333 (Port number) DEPRECATED: Port used when accessing the S3 API. It should be in the range of 1 - 65535 EC2 API related options are not supported.
s3_secret_key = notchecked (String) DEPRECATED: Secret key to use for S3 server for images EC2 API related options are not supported.
s3_use_ssl = False (Boolean) DEPRECATED: Whether to use SSL when talking to S3 EC2 API related options are not supported.
Description of serial console configuration options
Configuration option = Default value Description
[serial_console]  
base_url = ws://127.0.0.1:6083/

(String) The URL an end user would use to connect to the nova-serialproxy service.

The nova-serialproxy service is called with this token enriched URL and establishes the connection to the proper instance.

Possible values:

  • <scheme><IP-address><port-number>

Services which consume this:

  • nova-compute

Interdependencies to other options:

  • The IP address must be identical to the address to which the nova-serialproxy service is listening (see option serialproxy_host in this section).
  • The port must be the same as in the option serialproxy_port of this section.
  • If you choose to use a secured websocket connection, then start this option with wss:// instead of the unsecured ws://. The options cert and key in the [DEFAULT] section have to be set for that.
enabled = False

(Boolean) Enable the serial console feature.

In order to use this feature, the service nova-serialproxy needs to run. This service is typically executed on the controller node.

Possible values:

  • True: Enables the feature
  • False: Disables the feature

Services which consume this:

  • nova-compute

Interdependencies to other options:

  • None
port_range = 10000:20000

(String) A range of TCP ports a guest can use for its backend.

Each instance which gets created will use one port out of this range. If the range is not big enough to provide another port for an new instance, this instance won’t get launched.

Possible values:

Each string which passes the regex \d+:\d+ For example 10000:20000. Be sure that the first port number is lower than the second port number.

Services which consume this:

  • nova-compute

Interdependencies to other options:

  • None
proxyclient_address = 127.0.0.1

(String) The IP address to which proxy clients (like nova-serialproxy) should connect to get the serial console of an instance.

This is typically the IP address of the host of a nova-compute service.

Possible values:

  • An IP address

Services which consume this:

  • nova-compute

Interdependencies to other options:

  • None
serialproxy_host = 0.0.0.0

(String) The IP address which is used by the nova-serialproxy service to listen for incoming requests.

The nova-serialproxy service listens on this IP address for incoming connection requests to instances which expose serial console.

Possible values:

  • An IP address

Services which consume this:

  • nova-serialproxy

Interdependencies to other options:

  • Ensure that this is the same IP address which is defined in the option base_url of this section or use 0.0.0.0 to listen on all addresses.
serialproxy_port = 6083

(Port number) The port number which is used by the nova-serialproxy service to listen for incoming requests.

The nova-serialproxy service listens on this port number for incoming connection requests to instances which expose serial console.

Possible values:

  • A port number

Services which consume this:

  • nova-serialproxy

Interdependencies to other options:

  • Ensure that this is the same port number which is defined in the option base_url of this section.
Description of SPICE configuration options
Configuration option = Default value Description
[spice]  
agent_enabled = True (Boolean) Enable the spice guest agent support.
enabled = False (Boolean) Enable spice related features.
html5proxy_base_url = http://127.0.0.1:6082/spice_auto.html (String) Location of spice HTML5 console proxy, in the form “http://127.0.0.1:6082/spice_auto.html
html5proxy_host = 0.0.0.0 (String) Host on which to listen for incoming requests
html5proxy_port = 6082 (Port number) Port on which to listen for incoming requests
keymap = en-us (String) Keymap for spice
server_listen = 127.0.0.1 (String) IP address on which instance spice server should listen
server_proxyclient_address = 127.0.0.1 (String) The address to which proxy clients (like nova-spicehtml5proxy) should connect
Description of testing configuration options
Configuration option = Default value Description
[DEFAULT]  
fake_network = False (Boolean) This option is used mainly in testing to avoid calls to the underlying network utilities.
monkey_patch = False

(Boolean) Determine if monkey patching should be applied.

Related options:

  • monkey_patch_modules: This must have values set for this option to have any effect
monkey_patch_modules = nova.compute.api:nova.notifications.notify_decorator

(List) List of modules/decorators to monkey patch.

This option allows you to patch a decorator for all functions in specified modules.

Possible values:

  • nova.compute.api:nova.notifications.notify_decorator
  • nova.api.ec2.cloud:nova.notifications.notify_decorator
  • [...]

Related options:

  • monkey_patch: This must be set to True for this option to have any effect
Description of trusted computing configuration options
Configuration option = Default value Description
[trusted_computing]  
attestation_api_url = /OpenAttestationWebServices/V1.0

(String) The URL on the attestation server to use. See the attestation_server help text for more information about host verification.

This value must be just that path portion of the full URL, as it will be joined to the host specified in the attestation_server option.

This option is only used by the FilterScheduler and its subclasses; if you use a different scheduler, this option has no effect. Also note that this setting only affects scheduling if the ‘TrustedFilter’ filter is enabled.

  • Related options:
attestation_server attestation_server_ca_file attestation_port attestation_auth_blob attestation_auth_timeout attestation_insecure_ssl
attestation_auth_blob = None

(String) Attestation servers require a specific blob that is used to authenticate. The content and format of the blob are determined by the particular attestation server being used. There is no default value; you must supply the value as specified by your attestation service. See the attestation_server help text for more information about host verification.

This option is only used by the FilterScheduler and its subclasses; if you use a different scheduler, this option has no effect. Also note that this setting only affects scheduling if the ‘TrustedFilter’ filter is enabled.

  • Related options:
attestation_server attestation_server_ca_file attestation_port attestation_api_url attestation_auth_timeout attestation_insecure_ssl
attestation_auth_timeout = 60

(Integer) This value controls how long a successful attestation is cached. Once this period has elapsed, a new attestation request will be made. See the attestation_server help text for more information about host verification.

The value is in seconds. Valid values must be positive integers for any caching; setting this to zero or a negative value will result in calls to the attestation_server for every request, which may impact performance.

This option is only used by the FilterScheduler and its subclasses; if you use a different scheduler, this option has no effect. Also note that this setting only affects scheduling if the ‘TrustedFilter’ filter is enabled.

  • Related options:
attestation_server attestation_server_ca_file attestation_port attestation_api_url attestation_auth_blob attestation_insecure_ssl
attestation_insecure_ssl = False

(Boolean) When set to True, the SSL certificate verification is skipped for the attestation service. See the attestation_server help text for more information about host verification.

Valid values are True or False. The default is False.

This option is only used by the FilterScheduler and its subclasses; if you use a different scheduler, this option has no effect. Also note that this setting only affects scheduling if the ‘TrustedFilter’ filter is enabled.

  • Related options:
attestation_server attestation_server_ca_file attestation_port attestation_api_url attestation_auth_blob attestation_auth_timeout
attestation_port = 8443

(String) The port to use when connecting to the attestation server. See the attestation_server help text for more information about host verification.

Valid values are strings, not integers, but must be digits only.

This option is only used by the FilterScheduler and its subclasses; if you use a different scheduler, this option has no effect. Also note that this setting only affects scheduling if the ‘TrustedFilter’ filter is enabled.

  • Related options:
attestation_server attestation_server_ca_file attestation_api_url attestation_auth_blob attestation_auth_timeout attestation_insecure_ssl
attestation_server = None

(String) The host to use as the attestation server.

Cloud computing pools can involve thousands of compute nodes located at different geographical locations, making it difficult for cloud providers to identify a node’s trustworthiness. When using the Trusted filter, users can request that their VMs only be placed on nodes that have been verified by the attestation server specified in this option.

The value is a string, and can be either an IP address or FQDN.

This option is only used by the FilterScheduler and its subclasses; if you use a different scheduler, this option has no effect. Also note that this setting only affects scheduling if the ‘TrustedFilter’ filter is enabled.

  • Related options:
attestation_server_ca_file attestation_port attestation_api_url attestation_auth_blob attestation_auth_timeout attestation_insecure_ssl
attestation_server_ca_file = None

(String) The absolute path to the certificate to use for authentication when connecting to the attestation server. See the attestation_server help text for more information about host verification.

The value is a string, and must point to a file that is readable by the scheduler.

This option is only used by the FilterScheduler and its subclasses; if you use a different scheduler, this option has no effect. Also note that this setting only affects scheduling if the ‘TrustedFilter’ filter is enabled.

  • Related options:
attestation_server attestation_port attestation_api_url attestation_auth_blob attestation_auth_timeout attestation_insecure_ssl
Description of upgrade levels configuration options
Configuration option = Default value Description
[cells]  
scheduler = nova.cells.scheduler.CellsScheduler

(String) Cells scheduler

The class of the driver used by the cells scheduler. This should be the full Python path to the class to be used. If nothing is specified in this option, the CellsScheduler is used.

[upgrade_levels]  
baseapi = None (String) Set a version cap for messages sent to the base api in any service
cells = None

(String) Cells version

Cells client-side RPC API version. Use this option to set a version cap for messages sent to local cells services.

Possible values:

  • None: This is the default value.
  • grizzly: message version 1.6.
  • havana: message version 1.24.
  • icehouse: message version 1.27.
  • juno: message version 1.29.
  • kilo: message version 1.34.
  • liberty: message version 1.37.

Services which consume this:

  • nova-cells

Related options:

  • None
cert = None

(String) Specifies the maximum version for messages sent from cert services. This should be the minimum value that is supported by all of the deployed cert services.

Possible values:

Any valid OpenStack release name, in lower case, such as ‘mitaka’ or ‘liberty’. Alternatively, it can be any string representing a version number in the format ‘N.N’; for example, possible values might be ‘1.12’ or ‘2.0’.

Services which consume this:

  • nova-cert

Related options:

  • None
compute = None (String) Set a version cap for messages sent to compute services. Set this option to “auto” if you want to let the compute RPC module automatically determine what version to use based on the service versions in the deployment. Otherwise, you can set this to a specific version to pin this service to messages at a particular level. All services of a single type (i.e. compute) should be configured to use the same version, and it should be set to the minimum commonly-supported version of all those services in the deployment.
conductor = None (String) Set a version cap for messages sent to conductor services
console = None (String) Set a version cap for messages sent to console services
consoleauth = None (String) Set a version cap for messages sent to consoleauth services
intercell = None

(String) Intercell version

Intercell RPC API is the client side of the Cell<->Cell RPC API. Use this option to set a version cap for messages sent between cells services.

Possible values:

  • None: This is the default value.
  • grizzly: message version 1.0.

Services which consume this:

  • nova-cells

Related options:

  • None
network = None (String) Set a version cap for messages sent to network services
scheduler = None

(String) Sets a version cap (limit) for messages sent to scheduler services. In the situation where there were multiple scheduler services running, and they were not being upgraded together, you would set this to the lowest deployed version to guarantee that other services never send messages that any of your running schedulers cannot understand.

This is rarely needed in practice as most deployments run a single scheduler. It exists mainly for design compatibility with the other services, such as compute, which are routinely upgraded in a rolling fashion.

Services that use this:

  • nova-compute, nova-conductor

Related options:

  • None
Description of VMware configuration options
Configuration option = Default value Description
[vmware]  
api_retry_count = 10 (Integer) Number of times VMware vCenter server API must be retried on connection failures, e.g. socket error, etc.
ca_file = None (String) Specifies the CA bundle file to be used in verifying the vCenter server certificate.
cache_prefix = None

(String) 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
cluster_name = None (String) Name of a VMware Cluster ComputeResource.
console_delay_seconds = None (Integer) Set this value if affected by an increased network latency causing repeated characters when typing in a remote console.
datastore_regex = None

(String) 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
host_ip = None (String) Hostname or IP address for connection to VMware vCenter host.
host_password = None (String) Password for connection to VMware vCenter host.
host_port = 443 (Port number) Port for connection to VMware vCenter host.
host_username = None (String) Username for connection to VMware vCenter host.
insecure = False

(Boolean) 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.
integration_bridge = None

(String) 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
maximum_objects = 100

(Integer) 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.

pbm_default_policy = None

(String) 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
pbm_enabled = False

(Boolean) This option enables or disables storage policy based placement of instances.

Related options:

  • pbm_default_policy
pbm_wsdl_location = None

(String) This option specifies the PBM service WSDL file location URL.

Setting this will disable storage policy based placement of instances.

Possible values:

serial_port_proxy_uri = None

(String) 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
serial_port_service_uri = None

(String) 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
task_poll_interval = 0.5 (Floating point) Time interval in seconds to poll remote tasks invoked on VMware VC server.
use_linked_clone = True

(Boolean) 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.

wsdl_location = None

(String) 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:

Description of VNC configuration options
Configuration option = Default value Description
[DEFAULT]  
daemon = False (Boolean) Run as a background process.
key = None (String) SSL key file (if separate from cert).
record = None (String) Filename that will be used for storing websocket frames received and sent by a proxy service (like VNC, spice, serial) running on this host. If this is not set, no recording will be done.
source_is_ipv6 = False (Boolean) Set to True if source host is addressed with IPv6.
ssl_only = False (Boolean) Disallow non-encrypted connections.
web = /usr/share/spice-html5 (String) Path to directory with content which will be served by a web server.
[vmware]  
vnc_port = 5900

(Port number) 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
vnc_port_total = 10000 (Integer) Total number of VNC ports.
[vnc]  
enabled = True

(Boolean) Enable VNC related features.

Guests will get created with graphical devices to support this. Clients (for example Horizon) can then establish a VNC connection to the guest.

keymap = en-us

(String) Keymap for VNC.

The keyboard mapping (keymap) determines which keyboard layout a VNC session should use by default.

Possible values:

  • A keyboard layout which is supported by the underlying hypervisor on this node. This is usually an ‘IETF language tag’ (for example ‘en-us’). If you use QEMU as hypervisor, you should find the list of supported keyboard layouts at /usr/share/qemu/keymaps.
novncproxy_base_url = http://127.0.0.1:6080/vnc_auto.html

(URI) Public address of noVNC VNC console proxy.

The VNC proxy is an OpenStack component that enables compute service users to access their instances through VNC clients. noVNC provides VNC support through a websocket-based client.

This option sets the public base URL to which client systems will connect. noVNC clients can use this address to connect to the noVNC instance and, by extension, the VNC sessions.

Related options:

  • novncproxy_host
  • novncproxy_port
novncproxy_host = 0.0.0.0

(String) IP address that the noVNC console proxy should bind to.

The VNC proxy is an OpenStack component that enables compute service users to access their instances through VNC clients. noVNC provides VNC support through a websocket-based client.

This option sets the private address to which the noVNC console proxy service should bind to.

Related options:

  • novncproxy_port
  • novncproxy_base_url
novncproxy_port = 6080

(Port number) Port that the noVNC console proxy should bind to.

The VNC proxy is an OpenStack component that enables compute service users to access their instances through VNC clients. noVNC provides VNC support through a websocket-based client.

This option sets the private port to which the noVNC console proxy service should bind to.

Related options:

  • novncproxy_host
  • novncproxy_base_url
vncserver_listen = 127.0.0.1 (String) The IP address or hostname on which an instance should listen to for incoming VNC connection requests on this node.
vncserver_proxyclient_address = 127.0.0.1

(String) Private, internal IP address or hostname of VNC console proxy.

The VNC proxy is an OpenStack component that enables compute service users to access their instances through VNC clients.

This option sets the private address to which proxy clients, such as nova-xvpvncproxy, should connect to.

xvpvncproxy_base_url = http://127.0.0.1:6081/console

(URI) Public URL address of XVP VNC console proxy.

The VNC proxy is an OpenStack component that enables compute service users to access their instances through VNC clients. Xen provides the Xenserver VNC Proxy, or XVP, as an alternative to the websocket-based noVNC proxy used by Libvirt. In contrast to noVNC, XVP clients are Java-based.

This option sets the public base URL to which client systems will connect. XVP clients can use this address to connect to the XVP instance and, by extension, the VNC sessions.

Related options:

  • xvpvncproxy_host
  • xvpvncproxy_port
xvpvncproxy_host = 0.0.0.0

(String) IP address or hostname that the XVP VNC console proxy should bind to.

The VNC proxy is an OpenStack component that enables compute service users to access their instances through VNC clients. Xen provides the Xenserver VNC Proxy, or XVP, as an alternative to the websocket-based noVNC proxy used by Libvirt. In contrast to noVNC, XVP clients are Java-based.

This option sets the private address to which the XVP VNC console proxy service should bind to.

Related options:

  • xvpvncproxy_port
  • xvpvncproxy_base_url
xvpvncproxy_port = 6081

(Port number) Port that the XVP VNC console proxy should bind to.

The VNC proxy is an OpenStack component that enables compute service users to access their instances through VNC clients. Xen provides the Xenserver VNC Proxy, or XVP, as an alternative to the websocket-based noVNC proxy used by Libvirt. In contrast to noVNC, XVP clients are Java-based.

This option sets the private port to which the XVP VNC console proxy service should bind to.

Related options:

  • xvpvncproxy_host
  • xvpvncproxy_base_url
Description of volumes configuration options
Configuration option = Default value Description
[DEFAULT]  
block_device_allocate_retries = 60

(Integer) Number of times to retry block device allocation on failures. Starting with Liberty, Cinder can use image volume cache. This may help with block device allocation performance. Look at the cinder image_volume_cache_enabled configuration option.

Possible values:

  • 60 (default)
  • If value is 0, then one attempt is made.
  • Any negative value is treated as 0.
  • For any value > 0, total attempts are (value + 1)
block_device_allocate_retries_interval = 3 (Integer) Waiting time interval (seconds) between block device allocation retries on failures
my_block_storage_ip = $my_ip

(String) The IP address which is used to connect to the block storage network.

Possible values:

  • String with valid IP address. Default is IP address of this host.

Related options:

  • my_ip - if my_block_storage_ip is not set, then my_ip value is used.
volume_usage_poll_interval = 0 (Integer) Interval in seconds for gathering volume usages
[cinder]  
cafile = None (String) PEM encoded Certificate Authority to use when verifying HTTPs connections.
catalog_info = volumev2:cinderv2:publicURL

(String) Info to match when looking for cinder in the service catalog.

Possible values:

  • Format is separated values of the form: <service_type>:<service_name>:<endpoint_type>

Related options:

  • endpoint_template - Setting this option will override catalog_info
certfile = None (String) PEM encoded client certificate cert file
cross_az_attach = True

(Boolean) Allow attach between instance and volume in different availability zones.

If False, volumes attached to an instance must be in the same availability zone in Cinder as the instance availability zone in Nova. This also means care should be taken when booting an instance from a volume where source is not “volume” because Nova will attempt to create a volume using the same availability zone as what is assigned to the instance. If that AZ is not in Cinder (or allow_availability_zone_fallback=False in cinder.conf), the volume create request will fail and the instance will fail the build request. By default there is no availability zone restriction on volume attach.

endpoint_template = None

(String) If this option is set then it will override service catalog lookup with this template for cinder endpoint

Possible values:

Related options:

  • catalog_info - If endpoint_template is not set, catalog_info will be used.
http_retries = 3

(Integer) Number of times cinderclient should retry on any failed http call. 0 means connection is attempted only once. Setting it to any positive integer means that on failure connection is retried that many times e.g. setting it to 3 means total attempts to connect will be 4.

Possible values:

  • Any integer value. 0 means connection is attempted only once
insecure = False (Boolean) Verify HTTPS connections.
keyfile = None (String) PEM encoded client certificate key file
os_region_name = None

(String) Region name of this node. This is used when picking the URL in the service catalog.

Possible values:

  • Any string representing region name
timeout = None (Integer) Timeout value for http requests
[hyperv]  
force_volumeutils_v1 = False (Boolean) DEPRECATED: Force V1 volume utility class
volume_attach_retry_count = 10

(Integer) Volume attach retry count

The number of times to retry to attach a volume. This option is used to avoid incorrectly returned no data when the system is under load. Volume attachment is retried until success or the given retry count is reached. To prepare the Hyper-V node to be able to attach to volumes provided by cinder you must first make sure the Windows iSCSI initiator service is running and started automatically.

Possible values:

  • Positive integer values (Default: 10).

Related options:

  • Time interval between attachment attempts is declared with volume_attach_retry_interval option.
volume_attach_retry_interval = 5

(Integer) Volume attach retry interval

Interval between volume attachment attempts, in seconds.

Possible values:

  • Time in seconds (Default: 5).

Related options:

  • This options is meaningful when volume_attach_retry_count is greater than 1.
  • The retry loop runs with volume_attach_retry_count and volume_attach_retry_interval configuration options.
[libvirt]  
glusterfs_mount_point_base = $state_path/mnt (String) Directory where the glusterfs volume is mounted on the compute node
nfs_mount_options = None (String) Mount options passed to the NFS client. See section of the nfs man page for details
nfs_mount_point_base = $state_path/mnt (String) Directory where the NFS volume is mounted on the compute node
num_aoe_discover_tries = 3 (Integer) Number of times to rediscover AoE target to find volume
num_iscsi_scan_tries = 5 (Integer) Number of times to rescan iSCSI target to find volume
num_iser_scan_tries = 5 (Integer) Number of times to rescan iSER target to find volume
qemu_allowed_storage_drivers = (List) Protocols listed here will be accessed directly from QEMU. Currently supported protocols: [gluster]
rbd_secret_uuid = None (String) The libvirt UUID of the secret for the rbd_uservolumes
rbd_user = None (String) The RADOS client name for accessing rbd volumes
scality_sofs_config = None (String) Path or URL to Scality SOFS configuration file
scality_sofs_mount_point = $state_path/scality (String) Base dir where Scality SOFS shall be mounted
smbfs_mount_options = (String) Mount options passed to the SMBFS client. See mount.cifs man page for details. Note that the libvirt-qemu uid and gid must be specified.
smbfs_mount_point_base = $state_path/mnt (String) Directory where the SMBFS shares are mounted on the compute node
[xenserver]  
block_device_creation_timeout = 10 (Integer) Time in secs to wait for a block device to be created
Description of VPN configuration options
Configuration option = Default value Description
[DEFAULT]  
dmz_cidr =

(List) This option is a list of zero or more IP address ranges in your network’s DMZ that should be accepted.

Possible values:

A list of strings, each of which should be a valid CIDR.
vpn_ip = $my_ip

(String) This is the public IP address for the cloudpipe VPN servers. It defaults to the IP address of the host.

Please note that this option is only used when using nova-network instead of Neutron in your deployment. It also will be ignored if the configuration option for network_manager is not set to the default of ‘nova.network.manager.VlanManager’.

Possible values:

Any valid IP address. The default is $my_ip, the IP address of the VM.

Related options:

network_manager, use_neutron, vpn_start
vpn_start = 1000

(Port number) This is the port number to use as the first VPN port for private networks.

Please note that this option is only used when using nova-network instead of Neutron in your deployment. It also will be ignored if the configuration option for network_manager is not set to the default of ‘nova.network.manager.VlanManager’, or if you specify a value the ‘vpn_start’ parameter when creating a network.

Possible values:

Any integer representing a valid port number. The default is 1000.

Related options:

use_neutron, vpn_ip, network_manager
Description of WSGI configuration options
Configuration option = Default value Description
[wsgi]  
api_paste_config = api-paste.ini

(String) This option represents a file name for the paste.deploy config for nova-api.

Possible values:

  • A string representing file name for the paste.deploy config.
client_socket_timeout = 900 (Integer) This option specifies the timeout for client connections’ socket operations. If an incoming connection is idle for this number of seconds it will be closed. It indicates timeout on individual read/writes on the socket connection. To wait forever set to 0.
default_pool_size = 1000 (Integer) This option specifies the size of the pool of greenthreads used by wsgi. It is possible to limit the number of concurrent connections using this option.
keep_alive = True

(Boolean) This option allows using the same TCP connection to send and receive multiple HTTP requests/responses, as opposed to opening a new one for every single request/response pair. HTTP keep-alive indicates HTTP connection reuse.

Possible values:

  • True : reuse HTTP connection.
  • False : closes the client socket connection explicitly.

Related options:

  • tcp_keepidle
max_header_line = 16384

(Integer) This option specifies the maximum line size of message headers to be accepted. max_header_line may need to be increased when using large tokens (typically those generated by the Keystone v3 API with big service catalogs).

Since TCP is a stream based protocol, in order to reuse a connection, the HTTP has to have a way to indicate the end of the previous response and beginning of the next. Hence, in a keep_alive case, all messages must have a self-defined message length.

secure_proxy_ssl_header = None

(String) This option specifies the HTTP header used to determine the protocol scheme for the original request, even if it was removed by a SSL terminating proxy.

Possible values:

  • None (default) - the request scheme is not influenced by any HTTP headers.
  • Valid HTTP header, like HTTP_X_FORWARDED_PROTO
ssl_ca_file = None

(String) This option allows setting path to the CA certificate file that should be used to verify connecting clients.

Possible values:

  • String representing path to the CA certificate file.

Related options:

  • enabled_ssl_apis
ssl_cert_file = None

(String) This option allows setting path to the SSL certificate of API server.

Possible values:

  • String representing path to the SSL certificate.

Related options:

  • enabled_ssl_apis
ssl_key_file = None

(String) This option specifies the path to the file where SSL private key of API server is stored when SSL is in effect.

Possible values:

  • String representing path to the SSL private key.

Related options:

  • enabled_ssl_apis
tcp_keepidle = 600

(Integer) This option sets the value of TCP_KEEPIDLE in seconds for each server socket. It specifies the duration of time to keep connection active. TCP generates a KEEPALIVE transmission for an application that requests to keep connection active. Not supported on OS X.

Related options:

  • keep_alive
wsgi_log_format = %(client_ip)s "%(request_line)s" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f

(String) It represents a python format string that is used as the template to generate log lines. The following values can be formatted into it: client_ip, date_time, request_line, status_code, body_length, wall_seconds.

This option is used for building custom request loglines.

Possible values:

  • ‘%(client_ip)s “%(request_line)s” status: %(status_code)s’ ‘len: %(body_length)s time: %(wall_seconds).7f’ (default)
  • Any formatted string formed by specific values.
Description of Xen configuration options
Configuration option = Default value Description
[DEFAULT]  
console_driver = nova.console.xvp.XVPConsoleProxy

(String) Nova-console proxy is used to set up multi-tenant VM console access. This option allows pluggable driver program for the console session and represents driver to use for the console proxy.

Possible values

  • ‘nova.console.xvp.XVPConsoleProxy’ (default) or a string representing fully classified class name of console driver.
[libvirt]  
xen_hvmloader_path = /usr/lib/xen/boot/hvmloader (String) Location where the Xen hvmloader is kept
[xenserver]  
agent_path = usr/sbin/xe-update-networking

(String) Path to locate guest agent on the server.

Specifies the path in which the XenAPI guest agent should be located. If the agent is present, network configuration is not injected into the image.

Related options: For this option to have an effect:

  • flat_injected should be set to True
  • compute_driver should be set to xenapi.XenAPIDriver
agent_resetnetwork_timeout = 60

(Integer) Number of seconds to wait for agent’s reply to resetnetwork request.

This indicates the amount of time xapi ‘agent’ plugin waits for the agent to respond to the ‘resetnetwork’ request specifically. The generic timeout for agent communication agent_timeout is ignored in this case.

agent_timeout = 30

(Integer) Number of seconds to wait for agent’s reply to a request.

Nova configures/performs certain administrative actions on a server with the help of an agent that’s installed on the server. The communication between Nova and the agent is achieved via sharing messages, called records, over xenstore, a shared storage across all the domains on a Xenserver host. Operations performed by the agent on behalf of nova are: ‘version’,’ key_init’, ‘password’,’resetnetwork’,’inject_file’, and ‘agentupdate’.

To perform one of the above operations, the xapi ‘agent’ plugin writes the command and its associated parameters to a certain location known to the domain and awaits response. On being notified of the message, the agent performs appropriate actions on the server and writes the result back to xenstore. This result is then read by the xapi ‘agent’ plugin to determine the success/failure of the operation.

This config option determines how long the xapi ‘agent’ plugin shall wait to read the response off of xenstore for a given request/command. If the agent on the instance fails to write the result in this time period, the operation is considered to have timed out.

Related options:

  • agent_version_timeout
  • agent_resetnetwork_timeout
agent_version_timeout = 300

(Integer) Number of seconds to wait for agent’t reply to version request.

This indicates the amount of time xapi ‘agent’ plugin waits for the agent to respond to the ‘version’ request specifically. The generic timeout for agent communication agent_timeout is ignored in this case.

During the build process the ‘version’ request is used to determine if the agent is available/operational to perform other requests such as ‘resetnetwork’, ‘password’, ‘key_init’ and ‘inject_file’. If the ‘version’ call fails, the other configuration is skipped. So, this configuration option can also be interpreted as time in which agent is expected to be fully operational.

cache_images = all

(String) Cache glance images locally.

The value for this option must be choosen from the choices listed here. Configuring a value other than these will default to ‘all’.

Note: There is nothing that deletes these images.

Possible values:

  • all: will cache all images.
  • some: will only cache images that have the image_property cache_in_nova=True.
  • none: turns off caching entirely.
check_host = True

(Boolean) Ensure compute service is running on host XenAPI connects to. This option must be set to false if the ‘independent_compute’ option is set to true.

Possible values:

  • Setting this option to true will make sure that compute service is running on the same host that is specified by connection_url.
  • Setting this option to false, doesn’t perform the check.

Related options:

  • independent_compute
connection_concurrent = 5 (Integer) Maximum number of concurrent XenAPI connections. Used only if compute_driver=xenapi.XenAPIDriver
connection_password = None (String) Password for connection to XenServer/Xen Cloud Platform
connection_url = None

(String) URL for connection to XenServer/Xen Cloud Platform. A special value of unix://local can be used to connect to the local unix socket.

Possible values:

  • Any string that represents a URL. The connection_url is generally the management network IP address of the XenServer.
  • This option must be set if you chose the XenServer driver.
connection_username = root (String) Username for connection to XenServer/Xen Cloud Platform
default_os_type = linux (String) Default OS type used when uploading an image to glance
disable_agent = False

(Boolean) Disables the use of XenAPI agent.

This configuration option suggests whether the use of agent should be enabled or not regardless of what image properties are present. Image properties have an effect only when this is set to True. Read description of config option use_agent_default for more information.

Related options:

  • use_agent_default
image_compression_level = None

(Integer) Compression level for images.

By setting this option we can configure the gzip compression level. This option sets GZIP environment variable before spawning tar -cz to force the compression level. It defaults to none, which means the GZIP environment variable is not set and the default (usually -6) is used.

Possible values:

  • Range is 1-9, e.g., 9 for gzip -9, 9 being most compressed but most CPU intensive on dom0.
  • Any values out of this range will default to None.
image_upload_handler = nova.virt.xenapi.image.glance.GlanceStore (String) Dom0 plugin driver used to handle image uploads.
independent_compute = False

(Boolean) Used to prevent attempts to attach VBDs locally, so Nova can be run in a VM on a different host.

Related options:

  • CONF.flat_injected (Must be False)
  • CONF.xenserver.check_host (Must be False)
  • CONF.default_ephemeral_format (Must be unset or ‘ext3’)
  • Joining host aggregates (will error if attempted)
  • Swap disks for Windows VMs (will error if attempted)
  • Nova-based auto_configure_disk (will error if attempted)
introduce_vdi_retry_wait = 20

(Integer) Number of seconds to wait for SR to settle if the VDI does not exist when first introduced.

Some SRs, particularly iSCSI connections are slow to see the VDIs right after they got introduced. Setting this option to a time interval will make the SR to wait for that time period before raising VDI not found exception.

ipxe_boot_menu_url = None

(String) URL to the iPXE boot menu.

An iPXE ISO is a specially crafted ISO which supports iPXE booting. This feature gives a means to roll your own image.

By default this option is not set. Enable this option to boot an iPXE ISO.

Related Options:

  • ipxe_network_name
  • ipxe_mkisofs_cmd
ipxe_mkisofs_cmd = mkisofs

(String) Name and optionally path of the tool used for ISO image creation.

An iPXE ISO is a specially crafted ISO which supports iPXE booting. This feature gives a means to roll your own image.

Note: By default mkisofs is not present in the Dom0, so the package can either be manually added to Dom0 or include the mkisofs binary in the image itself.

Related Options:

  • ipxe_network_name
  • ipxe_boot_menu_url
ipxe_network_name = None

(String) Name of network to use for booting iPXE ISOs.

An iPXE ISO is a specially crafted ISO which supports iPXE booting. This feature gives a means to roll your own image.

By default this option is not set. Enable this option to boot an iPXE ISO.

Related Options:

  • ipxe_boot_menu_url
  • ipxe_mkisofs_cmd
login_timeout = 10 (Integer) Timeout in seconds for XenAPI login.
max_kernel_ramdisk_size = 16777216

(Integer) Maximum size in bytes of kernel or ramdisk images.

Specifying the maximum size of kernel or ramdisk will avoid copying large files to dom0 and fill up /boot/guest.

num_vbd_unplug_retries = 10 (Integer) Maximum number of retries to unplug VBD. If set to 0, should try once, no retries.
ovs_integration_bridge = xapi1

(String) The name of the integration Bridge that is used with xenapi when connecting with Open vSwitch.

Note: The value of this config option is dependent on the environment, therefore this configuration value must be set accordingly if you are using XenAPI.

Possible options:

  • Any string that represents a bridge name(default is xapi1).
remap_vbd_dev = False (Boolean) Used to enable the remapping of VBD dev. (Works around an issue in Ubuntu Maverick)
remap_vbd_dev_prefix = sd

(String) Specify prefix to remap VBD dev to (ex. /dev/xvdb -> /dev/sdb).

Related options:

  • If remap_vbd_dev is set to False this option has no impact.
running_timeout = 60 (Integer) Number of seconds to wait for instance to go to running state
sparse_copy = True (Boolean) Whether to use sparse_copy for copying data on a resize down. (False will use standard dd). This speeds up resizes down considerably since large runs of zeros won’t have to be rsynced.
sr_base_path = /var/run/sr-mount (String) Base path to the storage repository on the XenServer host.
sr_matching_filter = default-sr:true

(String) Filter for finding the SR to be used to install guest instances on.

Possible values:

  • To use the Local Storage in default XenServer/XCP installations set this flag to other-config:i18n-key=local-storage.
  • To select an SR with a different matching criteria, you could set it to other-config:my_favorite_sr=true.
  • To fall back on the Default SR, as displayed by XenCenter, set this flag to: default-sr:true.
target_host = None

(String) The iSCSI Target Host.

This option represents the hostname or ip of the iSCSI Target. If the target host is not present in the connection information from the volume provider then the value from this option is taken.

Possible values:

  • Any string that represents hostname/ip of Target.
target_port = 3260

(String) The iSCSI Target Port.

This option represents the port of the iSCSI Target. If the target port is not present in the connection information from the volume provider then the value from this option is taken.

torrent_base_url = None (String) Base URL for torrent files; must contain a slash character (see RFC 1808, step 6)
torrent_download_stall_cutoff = 600 (Integer) Number of seconds a download can remain at the same progress percentage w/o being considered a stall
torrent_images = none

(String) Whether or not to download images via Bit Torrent.

The value for this option must be choosen from the choices listed here. Configuring a value other than these will default to ‘none’.

Possible values:

  • all: will download all images.
  • some: will only download images that have the image_property bittorrent=true.
  • none: will turnoff downloading images via Bit Torrent.
torrent_listen_port_end = 6891 (Port number) End of port range to listen on
torrent_listen_port_start = 6881 (Port number) Beginning of port range to listen on
torrent_max_last_accessed = 86400 (Integer) Cached torrent files not accessed within this number of seconds can be reaped
torrent_max_seeder_processes_per_host = 1 (Integer) Maximum number of seeder processes to run concurrently within a given dom0. (-1 = no limit)
torrent_seed_chance = 1.0 (Floating point) Probability that peer will become a seeder. (1.0 = 100%)
torrent_seed_duration = 3600 (Integer) Number of seconds after downloading an image via BitTorrent that it should be seeded for other peers.
use_agent_default = False

(Boolean) Whether or not to use the agent by default when its usage is enabled but not indicated by the image.

The use of XenAPI agent can be disabled altogether using the configuration option disable_agent. However, if it is not disabled, the use of an agent can still be controlled by the image in use through one of its properties, xenapi_use_agent. If this property is either not present or specified incorrectly on the image, the use of agent is determined by this configuration option.

Note that if this configuration is set to True when the agent is not present, the boot times will increase significantly.

Related options:

  • disable_agent
use_join_force = True

(Boolean) When adding new host to a pool, this will append a –force flag to the command, forcing hosts to join a pool, even if they have different CPUs.

Since XenServer version 5.6 it is possible to create a pool of hosts that have different CPU capabilities. To accommodate CPU differences, XenServer limited features it uses to determine CPU compatibility to only the ones that are exposed by CPU and support for CPU masking was added. Despite this effort to level differences between CPUs, it is still possible that adding new host will fail, thus option to force join was introduced.

vhd_coalesce_max_attempts = 20

(Integer) Max number of times to poll for VHD to coalesce.

This option determines the maximum number of attempts that can be made for coalescing the VHD before giving up.

Related opitons:

  • vhd_coalesce_poll_interval
vhd_coalesce_poll_interval = 5.0

(Floating point) The interval used for polling of coalescing vhds.

This is the interval after which the task of coalesce VHD is performed, until it reaches the max attempts that is set by vhd_coalesce_max_attempts.

Related options:

  • vhd_coalesce_max_attempts
vif_driver = nova.virt.xenapi.vif.XenAPIBridgeDriver (String) The XenAPI VIF driver using XenServer Network APIs.
[xvp]  
console_xvp_conf = /etc/xvp.conf (String) Generated XVP conf file
console_xvp_conf_template = $pybasedir/nova/console/xvp.conf.template (String) XVP conf template
console_xvp_log = /var/log/xvp.log (String) XVP log file
console_xvp_multiplex_port = 5900 (Port number) Port for XVP to multiplex VNC connections on
console_xvp_pid = /var/run/xvp.pid (String) XVP master process pid file
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.