commit 9355e784a0e7ac3ba25eaa6c95a493ebcb12486f Author: Shoaib Nasir Date: Fri Dec 8 15:21:58 2017 -0500 WRS: 0006-Create-Nova-ironic-conf.patch diff --git a/lib/puppet/provider/nova_ironic_config/openstackconfig.rb b/lib/puppet/provider/nova_ironic_config/openstackconfig.rb new file mode 100644 index 0000000..d600c13 --- /dev/null +++ b/lib/puppet/provider/nova_ironic_config/openstackconfig.rb @@ -0,0 +1,10 @@ +Puppet::Type.type(:nova_ironic_config).provide( + :openstackconfig, + :parent => Puppet::Type.type(:openstack_config).provider(:ruby) +) do + + def self.file_path + '/etc/nova/nova-ironic.conf' + end + +end diff --git a/lib/puppet/type/nova_ironic_config.rb b/lib/puppet/type/nova_ironic_config.rb new file mode 100644 index 0000000..07ffbc1 --- /dev/null +++ b/lib/puppet/type/nova_ironic_config.rb @@ -0,0 +1,61 @@ +Puppet::Type.newtype(:nova_ironic_config) do + + ensurable + + newparam(:name, :namevar => true) do + desc 'Section/setting name to manage from nova.conf' + newvalues(/\S+\/\S+/) + end + + newproperty(:value, :array_matching => :all) do + desc 'The value of the setting to be defined.' + def insync?(is) + return true if @should.empty? + return false unless is.is_a? Array + return false unless is.length == @should.length + return ( + is & @should == is or + is & @should.map(&:to_s) == is + ) + end + munge do |value| + value = value.to_s.strip + value.capitalize! if value =~ /^(true|false)$/i + value + end + + def is_to_s( currentvalue ) + if resource.secret? + return '[old secret redacted]' + else + return currentvalue + end + end + + def should_to_s( newvalue ) + if resource.secret? + return '[new secret redacted]' + else + return newvalue + end + end + end + + newparam(:secret, :boolean => true) do + desc 'Whether to hide the value from Puppet logs. Defaults to `false`.' + + newvalues(:true, :false) + + defaultto false + end + + newparam(:ensure_absent_val) do + desc 'A value that is specified as the value property will behave as if ensure => absent was specified' + defaultto('') + end + + autorequire(:package) do + 'nova-common' + end + +end diff --git a/manifests/cache.pp b/manifests/cache.pp index 9befa4f..a55b0de 100644 --- a/manifests/cache.pp +++ b/manifests/cache.pp @@ -114,4 +114,20 @@ class nova::cache ( memcache_pool_unused_timeout => $memcache_pool_unused_timeout, memcache_pool_connection_get_timeout => $memcache_pool_connection_get_timeout, } + + oslo::cache { 'nova_ironic_config': + config_prefix => $config_prefix, + expiration_time => $expiration_time, + backend => $backend, + backend_argument => $backend_argument, + proxies => $proxies, + enabled => $enabled, + debug_cache_backend => $debug_cache_backend, + memcache_servers => $memcache_servers, + memcache_dead_retry => $memcache_dead_retry, + memcache_socket_timeout => $memcache_socket_timeout, + memcache_pool_maxsize => $memcache_pool_maxsize, + memcache_pool_unused_timeout => $memcache_pool_unused_timeout, + memcache_pool_connection_get_timeout => $memcache_pool_connection_get_timeout, + } } diff --git a/manifests/cells.pp b/manifests/cells.pp index 5649633..857388e 100644 --- a/manifests/cells.pp +++ b/manifests/cells.pp @@ -169,9 +169,12 @@ class nova::cells ( 'parent': { nova_config { 'DEFAULT/compute_api_class': value => 'nova.compute.cells_api.ComputeCellsAPI' } nova_config { 'cells/cell_type': value => 'api' } + nova_ironic_config { 'DEFAULT/compute_api_class': value => 'nova.compute.cells_api.ComputeCellsAPI' } + nova_ironic_config { 'cells/cell_type': value => 'api' } } 'child': { nova_config { 'cells/cell_type': value => 'compute' } + nova_ironic_config { 'cells/cell_type': value => 'compute' } } default: { fail("Unsupported cell_type parameter value: '${cell_type}'. Should be 'parent' or 'child'.") } } @@ -198,6 +201,22 @@ class nova::cells ( 'cells/scheduler': value => $scheduler; 'cells/scheduler_weight_classes': value => $scheduler_weight_classes; } + nova_ironic_config { + 'cells/bandwidth_update_interval': value => $bandwidth_update_interval; + 'cells/call_timeout': value => $call_timeout; + 'cells/capabilities': value => join($capabilities, ','); + 'cells/db_check_interval': value => $db_check_interval; + 'cells/enable': value => $enabled; + 'cells/instance_updated_at_threshold': value => $instance_updated_at_threshold; + 'cells/instance_update_num_instances': value => $instance_update_num_instances; + 'cells/max_hop_count': value => $max_hop_count; + 'cells/mute_child_interval': value => $mute_child_interval; + 'cells/mute_weight_multiplier': value => $mute_weight_multiplier; + 'cells/mute_weight_value': value => $mute_weight_value; + 'cells/name': value => $cell_name; + 'cells/reserve_percent': value => $reserve_percent; + 'cells/rpc_driver_queue_base': value => $rpc_driver_queue_base; + } nova::generic_service { 'cells': enabled => $enabled, diff --git a/manifests/compute.pp b/manifests/compute.pp index 4c81d2b..36d2e7a 100644 --- a/manifests/compute.pp +++ b/manifests/compute.pp @@ -237,6 +237,22 @@ class nova::compute ( 'DEFAULT/shared_pcpu_map': value => join(any2array($shared_pcpu_map), ','); } + nova_ironic_config { + 'DEFAULT/reserved_host_memory_mb': value => '0'; + 'DEFAULT/heal_instance_info_cache_interval': value => $heal_instance_info_cache_interval; + 'DEFAULT/resize_confirm_window': value => $resize_confirm_window; + 'DEFAULT/vcpu_pin_set': value => $vcpu_pin_set_real; + 'DEFAULT/resume_guests_state_on_host_boot': value => $resume_guests_state_on_host_boot; + 'key_manager/api_class': value => $keymgr_api_class; + 'barbican/auth_endpoint': value => $barbican_auth_endpoint; + 'barbican/barbican_endpoint': value => $barbican_endpoint; + 'barbican/barbican_api_version': value => $barbican_api_version; + 'DEFAULT/max_concurrent_live_migrations': value => $max_concurrent_live_migrations; + 'compute/consecutive_build_service_disable_threshold': + value => $consecutive_build_service_disable_threshold; + 'DEFAULT/shared_pcpu_map': value => join(any2array($shared_pcpu_map), ','); + } + ## Only override build default if value is provided at runtime. ## Setting to () has effect of calculating maximum 2M hugepages. if ($compute_reserved_vm_memory_2M and ($compute_reserved_vm_memory_2M != '()')) { @@ -266,15 +282,27 @@ class nova::compute ( $vncserver_proxyclient_address; 'vnc/keymap': value => $vnc_keymap; } + nova_ironic_config { + 'vnc/vncserver_proxyclient_address': value => + $vncserver_proxyclient_address; + 'vnc/keymap': value => $vnc_keymap; + } } else { nova_config { 'vnc/vncserver_proxyclient_address': ensure => absent; 'vnc/keymap': ensure => absent; } + nova_ironic_config { + 'vnc/vncserver_proxyclient_address': ensure => absent; + 'vnc/keymap': ensure => absent; + } } nova_config { 'vnc/enabled': value => $vnc_enabled; } + nova_ironic_config { + 'vnc/enabled': value => $vnc_enabled; + } if $neutron_enabled != true and $install_bridge_utils { # Install bridge-utils if we use nova-network @@ -295,13 +323,16 @@ class nova::compute ( if $force_config_drive { nova_config { 'DEFAULT/force_config_drive': value => true } + nova_ironic_config { 'DEFAULT/force_config_drive': value => true } } else { nova_config { 'DEFAULT/force_config_drive': ensure => absent } + nova_ironic_config { 'DEFAULT/force_config_drive': ensure => absent } } if $virtio_nic { # Enable the virtio network card for instances nova_config { 'DEFAULT/libvirt_use_virtio_for_bridges': value => true } + nova_ironic_config { 'DEFAULT/libvirt_use_virtio_for_bridges': value => true } } if $instance_usage_audit and $instance_usage_audit_period in ['hour', 'day', 'month', 'year'] { @@ -309,16 +340,27 @@ class nova::compute ( 'DEFAULT/instance_usage_audit': value => $instance_usage_audit; 'DEFAULT/instance_usage_audit_period': value => $instance_usage_audit_period; } + nova_ironic_config { + 'DEFAULT/instance_usage_audit': value => $instance_usage_audit; + 'DEFAULT/instance_usage_audit_period': value => $instance_usage_audit_period; + } } else { nova_config { 'DEFAULT/instance_usage_audit': ensure => absent; 'DEFAULT/instance_usage_audit_period': ensure => absent; } + nova_ironic_config { + 'DEFAULT/instance_usage_audit': ensure => absent; + 'DEFAULT/instance_usage_audit_period': ensure => absent; + } } nova_config { 'DEFAULT/force_raw_images': value => $force_raw_images; } + nova_ironic_config { + 'DEFAULT/force_raw_images': value => $force_raw_images; + } if is_service_default($config_drive_format) or $config_drive_format == 'iso9660' { ensure_packages($::nova::params::genisoimage_package_name, { @@ -329,5 +371,8 @@ class nova::compute ( nova_config { 'DEFAULT/config_drive_format': value => $config_drive_format; } + nova_ironic_config { + 'DEFAULT/config_drive_format': value => $config_drive_format; + } } diff --git a/manifests/compute/ironic.pp b/manifests/compute/ironic.pp index 747436e..8f856d5 100644 --- a/manifests/compute/ironic.pp +++ b/manifests/compute/ironic.pp @@ -25,4 +25,10 @@ class nova::compute::ironic ( 'DEFAULT/compute_driver': value => $compute_driver; 'DEFAULT/max_concurrent_builds': value => $max_concurrent_builds; } + + nova_ironic_config { + 'DEFAULT/compute_driver': value => $compute_driver; + 'DEFAULT/max_concurrent_builds': value => $max_concurrent_builds; + 'DEFAULT/reserved_host_memory_mb': value => '0'; + } } diff --git a/manifests/compute/neutron.pp b/manifests/compute/neutron.pp index 7932792..c135dbc 100644 --- a/manifests/compute/neutron.pp +++ b/manifests/compute/neutron.pp @@ -33,6 +33,9 @@ class nova::compute::neutron ( nova_config { 'libvirt/vif_driver': value => $libvirt_vif_driver; } + nova_ironic_config { + 'libvirt/vif_driver': value => $libvirt_vif_driver; + } if $libvirt_vif_driver == 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver' and $force_snat_range { # Validate ip and mask for force_snat_range @@ -41,6 +44,9 @@ class nova::compute::neutron ( nova_config { 'DEFAULT/force_snat_range': value => $force_snat_range; } + nova_ironic_config { + 'DEFAULT/force_snat_range': value => $force_snat_range; + } } else { fail('force_snat_range should be IPv4 or IPv6 CIDR notation') } @@ -48,16 +54,25 @@ class nova::compute::neutron ( nova_config { 'DEFAULT/force_snat_range': ensure => absent; } + nova_ironic_config { + 'DEFAULT/force_snat_range': ensure => absent; + } } if $libvirt_qemu_dpdk_options != undef { nova_config { 'libvirt/qemu_dpdk_options': value => $libvirt_qemu_dpdk_options; } + nova_ironic_config { + 'libvirt/qemu_dpdk_options': value => $libvirt_qemu_dpdk_options; + } } else { nova_config { 'libvirt/qemu_dpdk_options': ensure => absent; } + nova_ironic_config { + 'libvirt/qemu_dpdk_options': ensure => absent; + } } } diff --git a/manifests/compute/pci.pp b/manifests/compute/pci.pp index c0c62d4..30b4dba 100644 --- a/manifests/compute/pci.pp +++ b/manifests/compute/pci.pp @@ -28,4 +28,8 @@ class nova::compute::pci( nova_config { 'pci/passthrough_whitelist': value => $passthrough_real; } -} \ No newline at end of file + + nova_ironic_config { + 'pci/passthrough_whitelist': value => $passthrough_real; + } +} diff --git a/manifests/compute/rbd.pp b/manifests/compute/rbd.pp index 6ad9907..6743cb6 100644 --- a/manifests/compute/rbd.pp +++ b/manifests/compute/rbd.pp @@ -89,12 +89,19 @@ class nova::compute::rbd ( nova_config { 'libvirt/rbd_user': value => $libvirt_rbd_user; } + nova_ironic_config { + 'libvirt/rbd_user': value => $libvirt_rbd_user; + } if $libvirt_rbd_secret_uuid { nova_config { 'libvirt/rbd_secret_uuid': value => $libvirt_rbd_secret_uuid; } + nova_ironic_config { + 'libvirt/rbd_secret_uuid': value => $libvirt_rbd_secret_uuid; + } + file { '/etc/nova/secret.xml': content => template('nova/secret.xml-compute.erb'), require => Anchor['nova::config::begin'], @@ -131,11 +138,20 @@ class nova::compute::rbd ( 'libvirt/images_rbd_pool': value => $libvirt_images_rbd_pool; 'libvirt/images_rbd_ceph_conf': value => $libvirt_images_rbd_ceph_conf; } + nova_ironic_config { + 'libvirt/images_type': value => 'rbd'; + 'libvirt/images_rbd_pool': value => $libvirt_images_rbd_pool; + 'libvirt/images_rbd_ceph_conf': value => $libvirt_images_rbd_ceph_conf; + } } else { nova_config { 'libvirt/images_rbd_pool': ensure => absent; 'libvirt/images_rbd_ceph_conf': ensure => absent; } + nova_ironic_config { + 'libvirt/images_rbd_pool': ensure => absent; + 'libvirt/images_rbd_ceph_conf': ensure => absent; + } } } diff --git a/manifests/compute/serial.pp b/manifests/compute/serial.pp index 422c0af..83d1526 100644 --- a/manifests/compute/serial.pp +++ b/manifests/compute/serial.pp @@ -31,4 +31,11 @@ class nova::compute::serial( 'serial_console/base_url': value => $base_url; 'serial_console/proxyclient_address': value => $proxyclient_address; } + + nova_ironic_config { + 'serial_console/enabled': value => true; + 'serial_console/port_range': value => $port_range; + 'serial_console/base_url': value => $base_url; + 'serial_console/proxyclient_address': value => $proxyclient_address; + } } diff --git a/manifests/compute/spice.pp b/manifests/compute/spice.pp index cdfc739..06746b3 100644 --- a/manifests/compute/spice.pp +++ b/manifests/compute/spice.pp @@ -55,6 +55,9 @@ class nova::compute::spice( nova_config { 'spice/html5proxy_base_url': value => $html5proxy_base_url; } + nova_ironic_config { + 'spice/html5proxy_base_url': value => $html5proxy_base_url; + } } nova_config { @@ -64,4 +67,12 @@ class nova::compute::spice( 'spice/server_proxyclient_address': value => $server_proxyclient_address; 'spice/keymap': value => $keymap; } + + nova_ironic_config { + 'spice/enabled': value => true; + 'spice/agent_enabled': value => $agent_enabled; + 'spice/server_listen': value => $server_listen; + 'spice/server_proxyclient_address': value => $server_proxyclient_address; + 'spice/keymap': value => $keymap; + } } diff --git a/manifests/compute/vmware.pp b/manifests/compute/vmware.pp index 53586d2..31289e9 100644 --- a/manifests/compute/vmware.pp +++ b/manifests/compute/vmware.pp @@ -102,6 +102,21 @@ class nova::compute::vmware( 'vmware/datastore_regex': value => $datastore_regex; } + nova_ironic_config { + 'DEFAULT/compute_driver': value => $compute_driver; + 'vmware/host_ip': value => $host_ip; + 'vmware/host_username': value => $host_username; + 'vmware/host_password': value => $host_password; + 'vmware/cluster_name': value => $cluster_name; + 'vmware/api_retry_count': value => $api_retry_count; + 'vmware/maximum_objects': value => $maximum_objects; + 'vmware/task_poll_interval': value => $task_poll_interval; + 'vmware/use_linked_clone': value => $use_linked_clone; + 'vmware/insecure': value => $insecure; + 'vmware/ca_file': value => $ca_file; + 'vmware/datastore_regex': value => $datastore_regex; + } + package { 'python-suds': ensure => present, tag => ['openstack', 'nova-support-package'], diff --git a/manifests/config.pp b/manifests/config.pp index d138b33..806b474 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -30,13 +30,16 @@ class nova::config ( $nova_config = {}, $nova_paste_api_ini = {}, + $nova_ironic_config = {}, ) { include ::nova::deps validate_hash($nova_config) + validate_hash($nova_ironic_config) validate_hash($nova_paste_api_ini) create_resources('nova_config', $nova_config) + create_resources('nova_ironic_config', $nova_ironic_config) create_resources('nova_paste_api_ini', $nova_paste_api_ini) } diff --git a/manifests/init.pp b/manifests/init.pp index 66e16a8..0154fe1 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -642,10 +642,14 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") resources { 'nova_config': purge => $purge_config, } + resources { 'nova_ironic_config': + purge => $purge_config, + } if $image_service == 'nova.image.glance.GlanceImageService' { if $glance_api_servers { nova_config { 'glance/api_servers': value => $glance_api_servers } + nova_ironic_config { 'glance/api_servers': value => $glance_api_servers } } } @@ -658,6 +662,15 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") 'DEFAULT/disk_allocation_ratio': value => $disk_allocation_ratio; } + nova_ironic_config { + 'api/auth_strategy': value => $auth_strategy; + 'DEFAULT/image_service': value => $image_service; + 'DEFAULT/host': value => 'controller'; + 'DEFAULT/cpu_allocation_ratio': value => $cpu_allocation_ratio; + 'DEFAULT/ram_allocation_ratio': value => $ram_allocation_ratio; + 'DEFAULT/disk_allocation_ratio': value => $disk_allocation_ratio; + } + oslo::messaging::rabbit {'nova_config': rabbit_password => $rabbit_password, rabbit_userid => $rabbit_userid, @@ -678,6 +691,26 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") rabbit_ha_queues => $rabbit_ha_queues, } + oslo::messaging::rabbit {'nova_ironic_config': + rabbit_password => $rabbit_password, + rabbit_userid => $rabbit_userid, + rabbit_virtual_host => $rabbit_virtual_host, + rabbit_use_ssl => $rabbit_use_ssl, + heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold, + heartbeat_rate => $rabbit_heartbeat_rate, + kombu_reconnect_delay => $kombu_reconnect_delay, + amqp_durable_queues => $amqp_durable_queues, + kombu_compression => $kombu_compression, + kombu_ssl_ca_certs => $kombu_ssl_ca_certs, + kombu_ssl_certfile => $kombu_ssl_certfile, + kombu_ssl_keyfile => $kombu_ssl_keyfile, + kombu_ssl_version => $kombu_ssl_version, + rabbit_hosts => $rabbit_hosts, + rabbit_host => $rabbit_host, + rabbit_port => $rabbit_port, + rabbit_ha_queues => $rabbit_ha_queues, + } + oslo::messaging::amqp { 'nova_config': server_request_prefix => $amqp_server_request_prefix, broadcast_prefix => $amqp_broadcast_prefix, @@ -697,6 +730,25 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") password => $amqp_password, } + oslo::messaging::amqp { 'nova_ironic_config': + server_request_prefix => $amqp_server_request_prefix, + broadcast_prefix => $amqp_broadcast_prefix, + group_request_prefix => $amqp_group_request_prefix, + container_name => $amqp_container_name, + idle_timeout => $amqp_idle_timeout, + trace => $amqp_trace, + ssl_ca_file => $amqp_ssl_ca_file, + ssl_cert_file => $amqp_ssl_cert_file, + ssl_key_file => $amqp_ssl_key_file, + ssl_key_password => $amqp_ssl_key_password, + allow_insecure_clients => $amqp_allow_insecure_clients, + sasl_mechanisms => $amqp_sasl_mechanisms, + sasl_config_dir => $amqp_sasl_config_dir, + sasl_config_name => $amqp_sasl_config_name, + username => $amqp_username, + password => $amqp_password, + } + # SSL Options if $use_ssl { nova_config { @@ -706,6 +758,14 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") 'wsgi/ssl_cert_file' : value => $cert_file; 'wsgi/ssl_key_file' : value => $key_file; } + nova_ironic_config { + 'DEFAULT/enabled_ssl_apis' : value => join($enabled_ssl_apis, ','); + 'ssl/cert_file' : value => $cert_file; + 'ssl/key_file' : value => $key_file; + 'wsgi/ssl_cert_file' : value => $cert_file; + 'wsgi/ssl_key_file' : value => $key_file; + } + if $ca_file { nova_config { 'ssl/ca_file' : value => $ca_file, @@ -713,10 +773,20 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") nova_config { 'wsgi/ssl_ca_file' : value => $ca_file, } + + nova_ironic_config { 'ssl/ca_file' : + value => $ca_file, + } + nova_ironic_config { 'wsgi/ssl_ca_file' : + value => $ca_file, + } } else { nova_config { 'ssl/ca_file' : ensure => absent, } + nova_ironic_config { 'ssl/ca_file' : + ensure => absent, + } } } else { nova_config { @@ -725,6 +795,12 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") 'ssl/key_file' : ensure => absent; 'ssl/ca_file' : ensure => absent; } + nova_ironic_config { + 'DEFAULT/enabled_ssl_apis' : ensure => absent; + 'ssl/cert_file' : ensure => absent; + 'ssl/key_file' : ensure => absent; + 'ssl/ca_file' : ensure => absent; + } } oslo::messaging::default { 'nova_config': @@ -732,12 +808,22 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") rpc_response_timeout => $rpc_response_timeout, control_exchange => $control_exchange, } + oslo::messaging::default { 'nova_ironic_config': + transport_url => $default_transport_url, + rpc_response_timeout => $rpc_response_timeout, + control_exchange => $control_exchange, + } oslo::messaging::notifications { 'nova_config': transport_url => $notification_transport_url, driver => $notification_driver, topics => $notification_topics, } + oslo::messaging::notifications { 'nova_ironic_config': + transport_url => $notification_transport_url, + driver => $notification_driver, + topics => $notification_topics, + } nova_config { 'cinder/catalog_info': value => $cinder_catalog_info; @@ -751,15 +837,32 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") 'DEFAULT/block_device_allocate_retries': value => $block_device_allocate_retries; 'DEFAULT/block_device_allocate_retries_interval': value => $block_device_allocate_retries_interval; } + nova_ironic_config { + 'cinder/catalog_info': value => $cinder_catalog_info; + 'os_vif_linux_bridge/use_ipv6': value => $use_ipv6; + 'notifications/notify_api_faults': value => $notify_api_faults; + # Following may need to be broken out to different nova services + 'DEFAULT/state_path': value => $state_path; + 'DEFAULT/service_down_time': value => $service_down_time; + 'DEFAULT/rootwrap_config': value => $rootwrap_config; + 'DEFAULT/report_interval': value => $report_interval; + 'DEFAULT/block_device_allocate_retries': value => $block_device_allocate_retries; + 'DEFAULT/block_device_allocate_retries_interval': value => $block_device_allocate_retries_interval; + } oslo::concurrency { 'nova_config': lock_path => $lock_path } + oslo::concurrency { 'nova_ironic_config': lock_path => $lock_path } if $notify_on_state_change and $notify_on_state_change in ['vm_state', 'vm_and_task_state'] { nova_config { 'notifications/notify_on_state_change': value => $notify_on_state_change; } + nova_ironic_config { + 'notifications/notify_on_state_change': value => $notify_on_state_change; + } } else { nova_config { 'notifications/notify_on_state_change': ensure => absent; } + nova_ironic_config { 'notifications/notify_on_state_change': ensure => absent; } } nova_config { @@ -774,11 +877,27 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.") 'upgrade_levels/network': value => $upgrade_level_network; 'upgrade_levels/scheduler': value => $upgrade_level_scheduler; } + nova_ironic_config { + 'cinder/os_region_name': value => $os_region_name; + 'upgrade_levels/cells': value => $upgrade_level_cells; + 'upgrade_levels/cert': value => $upgrade_level_cert; + 'upgrade_levels/compute': value => $upgrade_level_compute; + 'upgrade_levels/conductor': value => $upgrade_level_conductor; + 'upgrade_levels/console': value => $upgrade_level_console; + 'upgrade_levels/consoleauth': value => $upgrade_level_consoleauth; + 'upgrade_levels/intercell': value => $upgrade_level_intercell; + 'upgrade_levels/network': value => $upgrade_level_network; + 'upgrade_levels/scheduler': value => $upgrade_level_scheduler; + } # WRS:extension: nova_config { # WRS extension: default flavor extra-spec hw:mem_page_size 'DEFAULT/default_mempages_size': value => '2048'; } + nova_ironic_config { + # WRS extension: default flavor extra-spec hw:mem_page_size + 'DEFAULT/default_mempages_size': value => '2048'; + } } diff --git a/manifests/ironic/common.pp b/manifests/ironic/common.pp index f38393a..e2d53f8 100644 --- a/manifests/ironic/common.pp +++ b/manifests/ironic/common.pp @@ -62,7 +62,7 @@ class nova::ironic::common ( include ::nova::deps - nova_config { + nova_ironic_config { 'ironic/auth_plugin': value => $auth_plugin; 'ironic/username': value => $username; 'ironic/password': value => $password; diff --git a/manifests/keystone/authtoken.pp b/manifests/keystone/authtoken.pp index e2db1a0..fcf65d4 100644 --- a/manifests/keystone/authtoken.pp +++ b/manifests/keystone/authtoken.pp @@ -266,4 +266,42 @@ class nova::keystone::authtoken( revocation_cache_time => $revocation_cache_time, token_cache_time => $token_cache_time, } + + keystone::resource::authtoken { 'nova_ironic_config': + username => $username, + password => $password, + project_name => $project_name, + auth_url => $auth_url, + auth_uri => $auth_uri, + auth_version => $auth_version, + auth_type => $auth_type, + auth_section => $auth_section, + user_domain_name => $user_domain_name, + project_domain_name => $project_domain_name, + insecure => $insecure, + cache => $cache, + cafile => $cafile, + certfile => $certfile, + check_revocations_for_cached => $check_revocations_for_cached, + delay_auth_decision => $delay_auth_decision, + enforce_token_bind => $enforce_token_bind, + hash_algorithms => $hash_algorithms, + http_connect_timeout => $http_connect_timeout, + http_request_max_retries => $http_request_max_retries, + include_service_catalog => $include_service_catalog, + keyfile => $keyfile, + memcache_pool_conn_get_timeout => $memcache_pool_conn_get_timeout, + memcache_pool_dead_retry => $memcache_pool_dead_retry, + memcache_pool_maxsize => $memcache_pool_maxsize, + memcache_pool_socket_timeout => $memcache_pool_socket_timeout, + memcache_secret_key => $memcache_secret_key, + memcache_security_strategy => $memcache_security_strategy, + memcache_use_advanced_pool => $memcache_use_advanced_pool, + memcache_pool_unused_timeout => $memcache_pool_unused_timeout, + memcached_servers => $memcached_servers, + manage_memcache_package => $manage_memcache_package, + region_name => $region_name, + revocation_cache_time => $revocation_cache_time, + token_cache_time => $token_cache_time, + } } diff --git a/manifests/logging.pp b/manifests/logging.pp index 4bdaef5..75703e2 100644 --- a/manifests/logging.pp +++ b/manifests/logging.pp @@ -133,4 +133,23 @@ class nova::logging( log_date_format => $log_date_format, } + oslo::log { 'nova_ironic_config': + debug => $debug_real, + use_stderr => $use_stderr_real, + use_syslog => $use_syslog_real, + log_dir => $log_dir_real, + syslog_log_facility => $log_facility_real, + logging_context_format_string => $logging_context_format_string, + logging_default_format_string => $logging_default_format_string, + logging_debug_format_suffix => $logging_debug_format_suffix, + logging_exception_prefix => $logging_exception_prefix, + log_config_append => $log_config_append, + default_log_levels => $default_log_levels, + publish_errors => $publish_errors, + fatal_deprecations => $fatal_deprecations, + instance_format => $instance_format, + instance_uuid_format => $instance_uuid_format, + log_date_format => $log_date_format, + } + } diff --git a/manifests/network.pp b/manifests/network.pp index 64c696f..a00d481 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -124,11 +124,18 @@ class nova::network( 'DEFAULT/floating_range': value => $floating_range; 'DEFAULT/auto_assign_floating_ip': value => $auto_assign_floating_ip; } + nova_ironic_config { + 'DEFAULT/floating_range': value => $floating_range; + 'DEFAULT/auto_assign_floating_ip': value => $auto_assign_floating_ip; + } } nova_config { 'DEFAULT/multi_host': value => $multi_host; } + nova_ironic_config { + 'DEFAULT/multi_host': value => $multi_host; + } if has_key($config_overrides, 'vlan_start') { $vlan_start = $config_overrides['vlan_start'] diff --git a/manifests/network/flat.pp b/manifests/network/flat.pp index ad2870e..ca50dd7 100644 --- a/manifests/network/flat.pp +++ b/manifests/network/flat.pp @@ -30,9 +30,19 @@ class nova::network::flat ( if $public_interface { nova_config { 'DEFAULT/public_interface': value => $public_interface } + nova_ironic_config { 'DEFAULT/public_interface': value => $public_interface } } nova_config { + rk/flat.pp + 'DEFAULT/network_manager': value => 'nova.network.manager.FlatManager'; + 'DEFAULT/fixed_range': value => $fixed_range; + 'DEFAULT/flat_interface': value => $flat_interface; + 'DEFAULT/flat_network_bridge': value => $flat_network_bridge; + } + + nova_ironic_config { + rk/flat.pp 'DEFAULT/network_manager': value => 'nova.network.manager.FlatManager'; 'DEFAULT/fixed_range': value => $fixed_range; 'DEFAULT/flat_interface': value => $flat_interface; diff --git a/manifests/network/flatdhcp.pp b/manifests/network/flatdhcp.pp index 73d89d7..794e2be 100644 --- a/manifests/network/flatdhcp.pp +++ b/manifests/network/flatdhcp.pp @@ -62,6 +62,7 @@ class nova::network::flatdhcp ( if $public_interface { nova_config { 'DEFAULT/public_interface': value => $public_interface } + nova_ironic_config { 'DEFAULT/public_interface': value => $public_interface } } nova_config { @@ -76,4 +77,16 @@ class nova::network::flatdhcp ( 'DEFAULT/dhcpbridge_flagfile': value => $dhcpbridge_flagfile; } + nova_ironic_config { + 'DEFAULT/network_manager': value => 'nova.network.manager.FlatDHCPManager'; + 'DEFAULT/fixed_range': value => $fixed_range; + 'DEFAULT/flat_interface': value => $flat_interface; + 'DEFAULT/flat_network_bridge': value => $flat_network_bridge; + 'DEFAULT/force_dhcp_release': value => $force_dhcp_release; + 'DEFAULT/flat_injected': value => $flat_injected; + 'DEFAULT/dhcp_domain': value => $dhcp_domain; + 'DEFAULT/dhcpbridge': value => $dhcpbridge; + 'DEFAULT/dhcpbridge_flagfile': value => $dhcpbridge_flagfile; + } + } diff --git a/manifests/network/neutron.pp b/manifests/network/neutron.pp index 8a2c28b..20b0c00 100644 --- a/manifests/network/neutron.pp +++ b/manifests/network/neutron.pp @@ -171,4 +171,24 @@ class nova::network::neutron ( 'neutron/auth_type': value => $neutron_auth_type; } + nova_ironic_config { + 'DEFAULT/dhcp_domain': value => $dhcp_domain; + 'DEFAULT/firewall_driver': value => $firewall_driver; + 'DEFAULT/vif_plugging_is_fatal': value => false; + 'DEFAULT/vif_plugging_timeout': value => $vif_plugging_timeout; + 'neutron/default_floating_pool': value => $default_floating_pool_real; + 'neutron/url': value => $neutron_url; + 'neutron/timeout': value => $neutron_url_timeout; + 'neutron/project_name': value => $neutron_project_name; + 'neutron/project_domain_name': value => $neutron_project_domain_name; + 'neutron/region_name': value => $neutron_region_name; + 'neutron/username': value => $neutron_username; + 'neutron/user_domain_name': value => $neutron_user_domain_name; + 'neutron/password': value => $neutron_password, secret => true; + 'neutron/auth_url': value => $neutron_auth_url; + 'neutron/ovs_bridge': value => $neutron_ovs_bridge; + 'neutron/extension_sync_interval': value => $neutron_extension_sync_interval; + 'neutron/auth_type': value => $neutron_auth_type; + } + } diff --git a/manifests/network/vlan.pp b/manifests/network/vlan.pp index f3261b8..aa76196 100644 --- a/manifests/network/vlan.pp +++ b/manifests/network/vlan.pp @@ -56,6 +56,7 @@ class nova::network::vlan ( if $public_interface { nova_config { 'DEFAULT/public_interface': value => $public_interface } + nova_ironic_config { 'DEFAULT/public_interface': value => $public_interface } } nova_config { @@ -69,4 +70,15 @@ class nova::network::vlan ( 'DEFAULT/dhcpbridge_flagfile': value => $dhcpbridge_flagfile; } + nova_ironic_config { + 'DEFAULT/network_manager': value => 'nova.network.manager.VlanManager'; + 'DEFAULT/fixed_range': value => $fixed_range; + 'DEFAULT/vlan_interface': value => $vlan_interface; + 'DEFAULT/vlan_start': value => $vlan_start; + 'DEFAULT/force_dhcp_release': value => $force_dhcp_release; + 'DEFAULT/dhcp_domain': value => $dhcp_domain; + 'DEFAULT/dhcpbridge': value => $dhcpbridge; + 'DEFAULT/dhcpbridge_flagfile': value => $dhcpbridge_flagfile; + } + } diff --git a/manifests/placement.pp b/manifests/placement.pp index 1ed8ec0..7903dc7 100644 --- a/manifests/placement.pp +++ b/manifests/placement.pp @@ -73,4 +73,16 @@ class nova::placement( 'placement/os_interface': value => $os_interface; } + nova_ironic_config { + 'placement/auth_type': value => $auth_type; + 'placement/auth_url': value => $auth_url; + 'placement/password': value => $password, secret => true; + 'placement/project_domain_name': value => $project_domain_name; + 'placement/project_name': value => $project_name; + 'placement/user_domain_name': value => $user_domain_name; + 'placement/username': value => $username; + 'placement/os_region_name': value => $os_region_name; + 'placement/os_interface': value => $os_interface; + } + } diff --git a/manifests/policy.pp b/manifests/policy.pp index 238ca04..2ab9530 100644 --- a/manifests/policy.pp +++ b/manifests/policy.pp @@ -41,5 +41,6 @@ class nova::policy ( create_resources('openstacklib::policy::base', $policies, $policy_defaults) oslo::policy { 'nova_config': policy_file => $policy_path } + oslo::policy { 'nova_ironic_config': policy_file => $policy_path } } diff --git a/manifests/quota.pp b/manifests/quota.pp index f4b1682..f71895d 100644 --- a/manifests/quota.pp +++ b/manifests/quota.pp @@ -116,4 +116,24 @@ class nova::quota( 'DEFAULT/max_age': value => $max_age; } + nova_ironic_config { + 'DEFAULT/quota_instances': value => $quota_instances; + 'DEFAULT/quota_cores': value => $quota_cores; + 'DEFAULT/quota_ram': value => $quota_ram; + 'DEFAULT/quota_floating_ips': value => $quota_floating_ips; + 'DEFAULT/quota_fixed_ips': value => $quota_fixed_ips; + 'DEFAULT/quota_metadata_items': value => $quota_metadata_items; + 'DEFAULT/quota_injected_files': value => $quota_injected_files; + 'DEFAULT/quota_injected_file_content_bytes': value => $quota_injected_file_content_bytes; + 'DEFAULT/quota_injected_file_path_length': value => $quota_injected_file_path_length; + 'DEFAULT/quota_security_groups': value => $quota_security_groups; + 'DEFAULT/quota_security_group_rules': value => $quota_security_group_rules; + 'DEFAULT/quota_key_pairs': value => $quota_key_pairs; + 'DEFAULT/quota_server_groups': value => $quota_server_groups; + 'DEFAULT/quota_server_group_members': value => $quota_server_group_members; + 'DEFAULT/reservation_expire': value => $reservation_expire; + 'DEFAULT/until_refresh': value => $until_refresh; + 'DEFAULT/max_age': value => $max_age; + } + } diff --git a/manifests/serialproxy.pp b/manifests/serialproxy.pp index fe1b617..f52b128 100644 --- a/manifests/serialproxy.pp +++ b/manifests/serialproxy.pp @@ -39,6 +39,10 @@ class nova::serialproxy( 'serial_console/serialproxy_port': value => $serialproxy_port; 'serial_console/serialproxy_host': value => $serialproxy_host; } + nova_ironic_config { + 'serial_console/serialproxy_port': value => $serialproxy_port; + 'serial_console/serialproxy_host': value => $serialproxy_host; + } nova::generic_service { 'serialproxy': enabled => $enabled, diff --git a/manifests/vncproxy.pp b/manifests/vncproxy.pp index 23b102f..507e522 100644 --- a/manifests/vncproxy.pp +++ b/manifests/vncproxy.pp @@ -51,6 +51,11 @@ class nova::vncproxy( 'vnc/novncproxy_port': value => $port; } + nova_ironic_config { + 'vnc/novncproxy_host': value => $host; + 'vnc/novncproxy_port': value => $port; + } + nova::generic_service { 'vncproxy': enabled => $enabled, manage_service => $manage_service, diff --git a/manifests/vncproxy/common.pp b/manifests/vncproxy/common.pp index 7a6a2ff..d6e26d8 100644 --- a/manifests/vncproxy/common.pp +++ b/manifests/vncproxy/common.pp @@ -80,5 +80,8 @@ class nova::vncproxy::common ( nova_config { 'vnc/novncproxy_base_url': value => $vncproxy_base_url; } + nova_ironic_config { + 'vnc/novncproxy_base_url': value => $vncproxy_base_url; + } } }