blob: 0563049c8a4bce321936d5cb0bcc059ebfd5e607 [file] [log] [blame]
{%- from "nova/map.jinja" import compute with context %}
[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
connection_type=libvirt
rootwrap_config=/etc/nova/rootwrap.conf
verbose=True
api_paste_config=/etc/nova/api-paste.ini
volumes_path=/var/lib/nova/volumes
compute_manager=nova.compute.manager.ComputeManager
network_device_mtu=65000
use_neutron = True
config_drive_format={{ compute.get('config_drive_format', compute.get('config_drive', {}).get('format', 'vfat')) }}
force_config_drive={{ compute.get('config_drive', {}).get('forced', True)|lower }}
config_drive_inject_password={{ compute.get('config_drive', {}).get('inject_password', False)|lower }}
security_group_api=neutron
vif_plugging_is_fatal=True
vif_plugging_timeout=300
dhcp_domain={{ compute.get('dhcp_domain', 'novalocal') }}
{%- if compute.get('sriov', false) %}
{%- for nic_name, sriov in compute.sriov.iteritems() %}
pci_passthrough_whitelist = {"devname":"{{ sriov.devname }}","physical_network":"{{ sriov.physical_network }}"}
{%- endfor %}
{%- endif %}
{%- if compute.image.use_cow is defined %}
use_cow_images = {{ compute.image.use_cow }}
{%- endif %}
force_raw_images={{ compute.get('image', {}).get('force_raw', True)|lower }}
{%- if compute.my_ip is defined %}
my_ip={{ compute.my_ip }}
{%- endif %}
{%- if compute.host is defined %}
host={{ compute.host }}
{%- endif %}
{%- if compute.ram_allocation_ratio is defined %}
ram_allocation_ratio = {{ compute.ram_allocation_ratio }}
{%- endif %}
{%- if compute.cpu_allocation_ratio is defined %}
cpu_allocation_ratio = {{ compute.cpu_allocation_ratio }}
{%- endif %}
remove_unused_original_minimum_age_seconds=86400
image_service=nova.image.glance.GlanceImageService
reserved_host_memory_mb = {{ compute.get('reserved_host_memory_mb', '512') }}
{%- if compute.max_concurrent_live_migrations is defined %}
max_concurrent_live_migrations = {{ compute.max_concurrent_live_migrations }}
{%- endif %}
{%- if compute.vcpu_pin_set is defined %}
vcpu_pin_set={{ compute.vcpu_pin_set }}
{%- endif %}
allow_resize_to_same_host=True
auth_strategy = keystone
neutron_url_timeout = 300
compute_driver = nova.virt.libvirt.LibvirtDriver
heal_instance_info_cache_interval = {{ compute.heal_instance_info_cache_interval }}
image_cache_manager_interval = 0
firewall_driver = nova.virt.firewall.NoopFirewallDriver
rpc_cast_timeout = 30
{%- if compute.message_queue.rpc_response_timeout is defined %}
rpc_response_timeout = {{ compute.message_queue.rpc_response_timeout }}
{%- endif %}
executor_thread_pool_size = 70
report_interval = {{ compute.get('report_interval', '60') }}
block_device_allocate_retries={{ compute.get('block_device_allocate_retries', '600') }}
block_device_allocate_retries_interval={{ compute.get('block_device_allocate_retries_interval', '10') }}
resume_guests_state_on_host_boot = {{ compute.get('resume_guests_state_on_host_boot', True) }}
service_down_time = 90
{% if pillar.ceilometer is defined %}
instance_usage_audit = True
instance_usage_audit_period = hour
{%- endif %}
instances_path = {{ compute.instances_path }}
{%- if compute.get('notification', {}).notify_on is defined %}
{%- for key, value in compute.notification.notify_on.iteritems() %}
notify_on_{{ key }} = {{ value }}
{%- endfor %}
{%- elif pillar.ceilometer is defined %}
notify_on_state_change = vm_and_task_state
{%- endif %}
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
[oslo_messaging_notifications]
{%- if compute.notification is mapping %}
driver = {{ compute.notification.get('driver', 'messagingv2') }}
{%- if compute.notification.topics is defined %}
topics = {{ compute.notification.topics }}
{%- endif %}
{%- elif compute.notification %}
driver = messagingv2
{%- endif %}
[vnc]
enabled = true
novncproxy_base_url={{ compute.vncproxy_url }}/vnc_auto.html
novncproxy_port={{ compute.bind.vnc_port }}
{%- if compute.bind.vnc_address is defined %}
vncserver_listen={{ compute.bind.vnc_address }}
{%- else %}
vncserver_listen=0.0.0.0
{%- endif %}
vncserver_proxyclient_address={{ compute.bind.vnc_address }}
keymap = {{ compute.get('vnc_keymap', 'en-us') }}
[spice]
enabled = false
html5proxy_base_url = {{ compute.vncproxy_url }}/spice_auto.html
[cache]
{%- if compute.cache is defined %}
backend = oslo_cache.memcache_pool
enabled = true
memcache_servers={%- for member in compute.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
{%- endif %}
[libvirt]
cpu_mode = {{ compute.get('cpu_mode', 'host-passthrough') }}
{%- if compute.libvirt.virt_type is defined %}
virt_type = {{ compute.libvirt.virt_type }}
{%- else %}
virt_type = kvm
{%- endif%}
inject_partition={{ compute.libvirt.inject_partition }}
{%- if compute.libvirt.get('inject_partition', '-2')|string == '-2' %}
inject_password=False
{%- else %}
inject_password={{ compute.libvirt.inject_password }}
{%- endif %}
disk_cachemodes="{{ compute.get('disk_cachemodes', 'network=writeback,block=none') }}"
libvirt_inject_password=True
block_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_NON_SHARED_INC
live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST
{%- if compute.libvirt.migration_inbound_addr is defined %}
live_migration_inbound_addr = {{ compute.libvirt.migration_inbound_addr }}
{%- endif %}
libvirt_inject_key=True
inject_key=False
vif_driver=nova.virt.libvirt.vif.LibvirtGenericVIFDriver
{%- if compute.get('ceph', {}).ephemeral is defined %}
images_type=rbd
images_rbd_pool={{ compute.ceph.rbd_pool }}
images_rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user={{ compute.ceph.rbd_user }}
rbd_secret_uuid={{ compute.ceph.secret_uuid }}
libvirt_inject_password=false
libvirt_inject_key=false
{%- elif compute.get('lvm', {}).ephemeral is defined %}
images_type=lvm
images_volume_group={{ compute.lvm.images_volume_group }}
{%- if compute.lvm.volume_clear is defined %}
volume_clear={{ compute.lvm.volume_clear }}
{%- endif %}
{%- if compute.lvm.volume_clear_size is defined %}
volume_clear_size={{ compute.lvm.volume_clear_size }}
{%- endif %}
{%- endif %}
{%- if compute.libvirt.hw_disk_discard is defined %}
hw_disk_discard={{ compute.libvirt.hw_disk_discard }}
{%- endif %}
{%- if compute.get('libvirt', {}).uri is defined %}
connection_uri={{ compute.libvirt.uri }}
{%- endif %}
[keystone_authtoken]
signing_dirname=/tmp/keystone-signing-nova
revocation_cache_time = 10
auth_type = password
user_domain_id = {{ compute.identity.get('domain', 'default') }}
project_domain_id = {{ compute.identity.get('domain', 'default') }}
project_name = {{ compute.identity.tenant }}
username = {{ compute.identity.user }}
password = {{ compute.identity.password }}
auth_uri=http://{{ compute.identity.host }}:5000
auth_url=http://{{ compute.identity.host }}:35357
{%- if compute.cache is defined %}
memcached_servers={%- for member in compute.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
{%- endif %}
{%- set rabbit_port = compute.message_queue.get('port', 5671 if compute.message_queue.get('ssl',{}).get('enabled', False) else 5672) %}
[oslo_messaging_rabbit]
{%- if compute.message_queue.members is defined %}
rabbit_hosts = {% for member in compute.message_queue.members -%}
{{ member.host }}:{{ member.get('port', rabbit_port) }}
{%- if not loop.last -%},{%- endif -%}
{%- endfor -%}
{%- else %}
rabbit_host = {{ compute.message_queue.host }}
rabbit_port = {{ rabbit_port}}
{%- endif %}
rabbit_userid = {{ compute.message_queue.user }}
rabbit_password = {{ compute.message_queue.password }}
rabbit_virtual_host = {{ compute.message_queue.virtual_host }}
rpc_conn_pool_size = 300
rabbit_retry_interval = 1
rabbit_retry_backoff = 2
{# rabbitmq ssl configuration #}
{%- if compute.message_queue.get('ssl',{}).get('enabled', False) %}
[oslo_messaging_rabbit]
rabbit_use_ssl=true
{%- if compute.message_queue.ssl.version is defined %}
kombu_ssl_version = {{ compute.message_queue.ssl.version }}
{%- elif salt['grains.get']('pythonversion') > [2,7,8] %}
kombu_ssl_version = TLSv1_2
{%- endif %}
kombu_ssl_ca_certs = {{ compute.message_queue.ssl.get('cacert_file', compute.cacert_file) }}
{%- endif %}
[glance]
api_servers=http://{{ compute.image.host }}:9292
[neutron]
username={{ compute.network.user }}
password={{ compute.network.password }}
project_name={{ compute.identity.tenant }}
auth_url=http://{{ compute.identity.host }}:{{ compute.identity.port }}
url=http://{{ compute.network.host }}:{{ compute.network.port }}
region_name= {{ compute.network.region }}
extension_sync_interval={{ compute.network.get('extension_sync_interval', '600') }}
auth_type = password
project_domain_name = default
user_domain_name = default
timeout=30
[cinder]
os_region_name = {{ compute.identity.region }}
catalog_info=volumev2:cinderv2:internalURL
{%- if compute.cross_az_attach is defined %}
cross_az_attach={{ compute.cross_az_attach }}
{%- endif %}
{%- if compute.workaround is defined %}
[workarounds]
disable_libvirt_livesnapshot={{ compute.workaround.get('disable_libvirt_livesnapshot', True)|lower }}
{%- endif %}
{%- if compute.upgrade_levels is defined %}
[upgrade_levels]
{%- for key, value in compute.upgrade_levels.iteritems() %}
{{ key }}={{ value }}
{%- endfor %}
{%- endif %}
[hyperv]
config_drive_cdrom={{ compute.get('config_drive', {}).get('cdrom', False)|lower }}