diff --git a/example-puppet.py b/example-puppet.py index a934b3ee..1f09f039 100644 --- a/example-puppet.py +++ b/example-puppet.py @@ -279,7 +279,7 @@ def deploy(): signals.connect(cinder_puppet, cinder_volume_puppet) # NOVA - nova_api = vr.create('nova_api', 'resources/nova_api_puppet', {})[0] + nova_puppet = vr.create('nova_puppet', 'resources/nova_puppet', {})[0] nova_db = vr.create('nova_db', 'resources/mariadb_db/', { 'db_name': 'nova_db', 'login_user': 'root'})[0] @@ -303,7 +303,7 @@ def deploy(): 'internal_port': 8774, 'admin_port': 8774})[0] - signals.connect(node1, nova_api) + signals.connect(node1, nova_puppet) signals.connect(node1, nova_db) signals.connect(node1, nova_db_user) signals.connect(mariadb_service1, nova_db, { @@ -314,38 +314,37 @@ def deploy(): signals.connect(mariadb_service1, nova_db_user, { 'port': 'login_port', 'root_password': 'login_password'}) + signals.connect(admin_user, nova_puppet, {'user_name': 'keystone_user', 'user_password': 'keystone_password', 'tenant_name': 'keystone_tenant'}) #? + signals.connect(openstack_vhost, nova_puppet, {'vhost_name': 'rabbit_virtual_host'}) signals.connect(nova_db, nova_db_user, {'db_name', 'db_host'}) signals.connect(services_tenant, nova_keystone_user) signals.connect(nova_keystone_user, nova_keystone_role) - signals.connect(keystone_puppet, nova_api, { + signals.connect(keystone_puppet, nova_puppet, { 'ip': 'keystone_host', 'admin_port': 'keystone_port'}) - signals.connect(nova_keystone_user, nova_api, { - 'user_name': 'keystone_user_name', - 'tenant_name': 'keystone_tenant_name', + signals.connect(nova_keystone_user, nova_puppet, { + 'user_name': 'keystone_user', + 'tenant_name': 'keystone_tenant', 'user_password': 'keystone_password'}) - signals.connect(rabbitmq_service1, nova_api, { - 'ip': 'rabbitmq_host'}) - signals.connect(openstack_rabbitmq_user, nova_api, { - 'user_name': 'rabbitmq_user', - 'password': 'rabbitmq_password'}) + signals.connect(rabbitmq_service1, nova_puppet, { + 'ip': 'rabbit_host', 'port': 'rabbit_port'}) + signals.connect(openstack_rabbitmq_user, nova_puppet, { + 'user_name': 'rabbit_userid', + 'password': 'rabbit_password'}) signals.connect(keystone_puppet, nova_keystone_service_endpoint, { 'ip': 'keystone_host', 'admin_port': 'keystone_admin_port', 'admin_token': 'admin_token'}) - signals.connect(mariadb_service1, nova_api, { + signals.connect(mariadb_service1, nova_puppet, { 'ip':'db_host'}) - signals.connect(nova_db_user, nova_api, { + signals.connect(nova_db_user, nova_puppet, { 'user_name':'db_user', 'db_name':'db_name', 'user_password':'db_password', 'db_host' : 'db_host'}) - signals.connect(nova_api, nova_keystone_service_endpoint, { - 'ip': ['ip', 'public_ip', 'internal_ip', 'admin_ip'], - 'ssh_key': 'ssh_key', - 'ssh_user': 'ssh_user'}) - signals.connect(nova_api, nova_keystone_service_endpoint, { - 'ip': 'ip', + signals.connect(nova_puppet, nova_keystone_service_endpoint, { + 'ip': ['ip', 'keystone_host', 'public_ip', 'internal_ip', 'admin_ip'], + 'port': ['admin_port', 'internal_port', 'public_port'], 'ssh_key': 'ssh_key', 'ssh_user': 'ssh_user'}) @@ -468,11 +467,12 @@ def deploy(): actions.resource_action(cinder_api_puppet, 'run') actions.resource_action(cinder_scheduler_puppet, 'run') actions.resource_action(cinder_volume_puppet, 'run') + actions.resource_action(nova_db, 'run') actions.resource_action(nova_db_user, 'run') actions.resource_action(nova_keystone_user, 'run') actions.resource_action(nova_keystone_role, 'run') - actions.resource_action(nova_api, 'run') + actions.resource_action(nova_puppet, 'run') actions.resource_action(nova_keystone_service_endpoint, 'run') actions.resource_action(glance_db, 'run') @@ -503,7 +503,7 @@ def undeploy(): 'nova_db', 'nova_db_user', 'nova_keystone_service_endpoint', - 'nova_api', + 'nova_puppet', 'cinder_volume_puppet', 'cinder_scheduler_puppet', 'cinder_api_puppet', @@ -541,37 +541,6 @@ def undeploy(): except errors.SolarError as e: print 'WARNING: %s' % str(e) - #actions.resource_action(resources['nova_keystone_service_endpoint'], 'remove' ) - # actions.resource_action(resources['nova_network_puppet'], 'remove' ) - - # actions.resource_action(resources['nova_keystone_role'], 'remove') - # actions.resource_action(resources['nova_keystone_user'], 'remove') - - # actions.resource_action(resources['neutron_keystone_service_endpoint'], 'remove' ) - # actions.resource_action(resources['neutron_puppet'], 'remove' ) - - # actions.resource_action(resources['cinder_puppet'], 'remove' ) - # actions.resource_action(resources['cinder_keystone_role'], 'remove') - # actions.resource_action(resources['cinder_keystone_user'], 'remove') - - # actions.resource_action(resources['neutron_keystone_role'], 'remove') - # actions.resource_action(resources['neutron_keystone_user'], 'remove') - # actions.resource_action(resources['services_tenant'], 'remove') - - # actions.resource_action(resources['admin_role'], 'remove') - # actions.resource_action(resources['admin_user'], 'remove') - # actions.resource_action(resources['admin_tenant'], 'remove') - - # actions.resource_action(resources['keystone_puppet'], 'remove') - # actions.resource_action(resources['keystone_db_user'], 'remove') - # actions.resource_action(resources['keystone_db'], 'remove') - - # actions.resource_action(resources['mariadb_service1'], 'remove') - - # actions.resource_action(resources['openstack_rabbitmq_user'], 'remove') - # actions.resource_action(resources['openstack_vhost'], 'remove') - # actions.resource_action(resources['rabbitmq_service1'], 'remove') - db.clear() signals.Connections.clear() diff --git a/resources/nova_puppet/README.md b/resources/nova_puppet/README.md new file mode 100644 index 00000000..57dc11f3 --- /dev/null +++ b/resources/nova_puppet/README.md @@ -0,0 +1,275 @@ +# Cinder resource for puppet handler + +Controlls a live cycle of the nova entities, +like the main puppet class, auth, DB, AMQP, packages, +keystone user, role and endpoint. + +# Parameters + +source https://github.com/openstack/puppet-nova/blob/5.1.0/manifests/init.pp + + ``ensure_package`` + (optional) The state of nova packages + Defaults to 'present' + + ``nova_cluster_id`` + (optional) Deprecated. This parameter does nothing and will be removed. + Defaults to 'localcluster' + + ``sql_connection`` + (optional) Deprecated. Use database_connection instead. + Defaults to false + + ``sql_idle_timeout`` + (optional) Deprecated. Use database_idle_timeout instead + Defaults to false + + ``database_connection`` + (optional) Connection url to connect to nova database. + Defaults to false + + ``slave_connection`` + (optional) Connection url to connect to nova slave database (read-only). + Defaults to false + + ``database_idle_timeout`` + (optional) Timeout before idle db connections are reaped. + Defaults to 3600 + + ``rpc_backend`` + (optional) The rpc backend implementation to use, can be: + rabbit (for rabbitmq) + qpid (for qpid) + zmq (for zeromq) + Defaults to 'rabbit' + + ``image_service`` + (optional) Service used to search for and retrieve images. + Defaults to 'nova.image.local.LocalImageService' + + ``glance_api_servers`` + (optional) List of addresses for api servers. + Defaults to 'localhost:9292' + + ``memcached_servers`` + (optional) Use memcached instead of in-process cache. Supply a list of memcached server IP's:Memcached Port. + Defaults to false + + ``rabbit_host`` + (optional) Location of rabbitmq installation. + Defaults to 'localhost' + + ``rabbit_hosts`` + (optional) List of clustered rabbit servers. + Defaults to false + + ``rabbit_port`` + (optional) Port for rabbitmq instance. + Defaults to '5672' + + ``rabbit_password`` + (optional) Password used to connect to rabbitmq. + Defaults to 'guest' + + ``rabbit_userid`` + (optional) User used to connect to rabbitmq. + Defaults to 'guest' + + ``rabbit_virtual_host`` + (optional) The RabbitMQ virtual host. + Defaults to '/' + + ``rabbit_use_ssl`` + (optional) Connect over SSL for RabbitMQ + Defaults to false + + ``kombu_ssl_ca_certs`` + (optional) SSL certification authority file (valid only if SSL enabled). + Defaults to undef + + ``kombu_ssl_certfile`` + (optional) SSL cert file (valid only if SSL enabled). + Defaults to undef + + ``kombu_ssl_keyfile`` + (optional) SSL key file (valid only if SSL enabled). + Defaults to undef + + ``kombu_ssl_version`` + (optional) SSL version to use (valid only if SSL enabled). + Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be + available on some distributions. + Defaults to 'TLSv1' + + ``amqp_durable_queues`` + (optional) Define queues as "durable" to rabbitmq. + Defaults to false + + ``qpid_hostname`` + (optional) Location of qpid server + Defaults to 'localhost' + + ``qpid_port`` + (optional) Port for qpid server + Defaults to '5672' + + ``qpid_username`` + (optional) Username to use when connecting to qpid + Defaults to 'guest' + + ``qpid_password`` + (optional) Password to use when connecting to qpid + Defaults to 'guest' + + ``qpid_heartbeat`` + (optional) Seconds between connection keepalive heartbeats + Defaults to 60 + + ``qpid_protocol`` + (optional) Transport to use, either 'tcp' or 'ssl'' + Defaults to 'tcp' + + ``qpid_sasl_mechanisms`` + (optional) Enable one or more SASL mechanisms + Defaults to false + + ``qpid_tcp_nodelay`` + (optional) Disable Nagle algorithm + Defaults to true + + ``service_down_time`` + (optional) Maximum time since last check-in for up service. + Defaults to 60 + + ``logdir`` + (optional) Deprecated. Use log_dir instead. + Defaults to false + + ``log_dir`` + (optional) Directory where logs should be stored. + If set to boolean false, it will not log to any directory. + Defaults to '/var/log/nova' + + ``state_path`` + (optional) Directory for storing state. + Defaults to '/var/lib/nova' + + ``lock_path`` + (optional) Directory for lock files. + On RHEL will be '/var/lib/nova/tmp' and on Debian '/var/lock/nova' + Defaults to $::nova::params::lock_path + + ``verbose`` + (optional) Set log output to verbose output. + Defaults to false + + ``periodic_interval`` + (optional) Seconds between running periodic tasks. + Defaults to '60' + + ``report_interval`` + (optional) Interval at which nodes report to data store. + Defaults to '10' + + ``monitoring_notifications`` + (optional) Whether or not to send system usage data notifications out on the message queue. Only valid for stable/essex. + Defaults to false + + ``use_syslog`` + (optional) Use syslog for logging + Defaults to false + + ``log_facility`` + (optional) Syslog facility to receive log lines. + Defaults to 'LOG_USER' + + ``use_ssl`` + (optional) Enable SSL on the API server + Defaults to false, not set + + ``enabled_ssl_apis`` + (optional) List of APIs to SSL enable + Defaults to [] + Possible values : 'ec2', 'osapi_compute', 'metadata' + + ``cert_file`` + (optinal) Certificate file to use when starting API server securely + Defaults to false, not set + + ``key_file`` + (optional) Private key file to use when starting API server securely + Defaults to false, not set + + ``ca_file`` + (optional) CA certificate file to use to verify connecting clients + Defaults to false, not set_ + + ``nova_user_id`` + (optional) Create the nova user with the specified gid. + Changing to a new uid after specifying a different uid previously, + or using this option after the nova account already exists will break + the ownership of all files/dirs owned by nova. It is strongly encouraged + not to use this option and instead create user before nova class or + for network shares create netgroup into which you'll put nova on all the + nodes. If undef no user will be created and user creation will standardly + happen in nova-common package. + Defaults to undef. + + ``nova_group_id`` + (optional) Create the nova user with the specified gid. + Changing to a new uid after specifying a different uid previously, + or using this option after the nova account already exists will break + the ownership of all files/dirs owned by nova. It is strongly encouraged + not to use this option and instead create group before nova class or for + network shares create netgroup into which you'll put nova on all the + nodes. If undef no user or group will be created and creation will + happen in nova-common package. + Defaults to undef. + + ``nova_public_key`` + (optional) Install public key in .ssh/authorized_keys for the 'nova' user. + Expects a hash of the form { type => 'key-type', key => 'key-data' } where + 'key-type' is one of (ssh-rsa, ssh-dsa, ssh-ecdsa) and 'key-data' is the + actual key data (e.g, 'AAAA...'). + + ``nova_private_key`` + (optional) Install private key into .ssh/id_rsa (or appropriate equivalent + for key type). Expects a hash of the form { type => 'key-type', key => + 'key-data' }, where 'key-type' is one of (ssh-rsa, ssh-dsa, ssh-ecdsa) and + 'key-data' is the contents of the private key file. + + ``nova_shell`` + (optional) Set shell for 'nova' user to the specified value. + Defaults to '/bin/false'. + + ``mysql_module`` + (optional) Deprecated. Does nothing. + + ``notification_driver`` + (optional) Driver or drivers to handle sending notifications. + Value can be a string or a list. + Defaults to [] + + ``notification_topics`` + (optional) AMQP topic used for OpenStack notifications + Defaults to 'notifications' + + ``notify_api_faults`` + (optional) If set, send api.fault notifications on caught + exceptions in the API service + Defaults to false + + ``notify_on_state_change`` + (optional) If set, send compute.instance.update notifications + on instance state changes. Valid values are None for no notifications, + "vm_state" for notifications on VM state changes, or "vm_and_task_state" + for notifications on VM and task state changes. + Defaults to undef + + ``os_region_name`` + (optional) Sets the os_region_name flag. For environments with + more than one endpoint per service, this is required to make + things such as cinder volume attach work. If you don't set this + and you have multiple endpoints, you will get AmbiguousEndpoint + exceptions in the nova API service. + Defaults to undef \ No newline at end of file diff --git a/resources/nova_puppet/actions/remove.pp b/resources/nova_puppet/actions/remove.pp new file mode 100644 index 00000000..764ff454 --- /dev/null +++ b/resources/nova_puppet/actions/remove.pp @@ -0,0 +1,4 @@ +class { 'nova': + ensure_package => 'absent', + rabbit_password => 'not important as removed', +} diff --git a/resources/nova_puppet/actions/run.pp b/resources/nova_puppet/actions/run.pp new file mode 100644 index 00000000..cf01b5f0 --- /dev/null +++ b/resources/nova_puppet/actions/run.pp @@ -0,0 +1,137 @@ +$resource = hiera($::resource_name) + +$db_user = $resource['input']['db_user']['value'] +$db_password = $resource['input']['db_password']['value'] +$db_name = $resource['input']['db_name']['value'] +$db_host = $resource['input']['db_host']['value'] + +$ensure_package = $resource['input']['ensure_package']['value'] +$database_connection = $resource['input']['database_connection']['value'] +$slave_connection = $resource['input']['slave_connection']['value'] +$database_idle_timeout = $resource['input']['database_idle_timeout']['value'] +$rpc_backend = $resource['input']['rpc_backend']['value'] +$image_service = $resource['input']['image_service']['value'] +$glance_api_servers = $resource['input']['glance_api_servers']['value'] +$memcached_servers = $resource['input']['memcached_servers']['value'] +$rabbit_host = $resource['input']['rabbit_host']['value'] +$rabbit_hosts = $resource['input']['rabbit_hosts']['value'] +$rabbit_password = $resource['input']['rabbit_password']['value'] +$rabbit_port = $resource['input']['rabbit_port']['value'] +$rabbit_userid = $resource['input']['rabbit_userid']['value'] +$rabbit_virtual_host = $resource['input']['rabbit_virtual_host']['value'] +$rabbit_use_ssl = $resource['input']['rabbit_use_ssl']['value'] +$rabbit_ha_queues = $resource['input']['rabbit_ha_queues']['value'] +$kombu_ssl_ca_certs = $resource['input']['kombu_ssl_ca_certs']['value'] +$kombu_ssl_certfile = $resource['input']['kombu_ssl_certfile']['value'] +$kombu_ssl_keyfile = $resource['input']['kombu_ssl_keyfile']['value'] +$kombu_ssl_version = $resource['input']['kombu_ssl_version']['value'] +$amqp_durable_queues = $resource['input']['amqp_durable_queues']['value'] +$qpid_hostname = $resource['input']['qpid_hostname']['value'] +$qpid_port = $resource['input']['qpid_port']['value'] +$qpid_username = $resource['input']['qpid_username']['value'] +$qpid_password = $resource['input']['qpid_password']['value'] +$qpid_sasl_mechanisms = $resource['input']['qpid_sasl_mechanisms']['value'] +$qpid_heartbeat = $resource['input']['qpid_heartbeat']['value'] +$qpid_protocol = $resource['input']['qpid_protocol']['value'] +$qpid_tcp_nodelay = $resource['input']['qpid_tcp_nodelay']['value'] +$auth_strategy = $resource['input']['auth_strategy']['value'] +$service_down_time = $resource['input']['service_down_time']['value'] +$log_dir = $resource['input']['log_dir']['value'] +$state_path = $resource['input']['state_path']['value'] +$lock_path = $resource['input']['lock_path']['value'] +$verbose = $resource['input']['verbose']['value'] +$debug = $resource['input']['debug']['value'] +$periodic_interval = $resource['input']['periodic_interval']['value'] +$report_interval = $resource['input']['report_interval']['value'] +$rootwrap_config = $resource['input']['rootwrap_config']['value'] +$use_ssl = $resource['input']['use_ssl']['value'] +$enabled_ssl_apis = $resource['input']['enabled_ssl_apis']['value'] +$ca_file = $resource['input']['ca_file']['value'] +$cert_file = $resource['input']['cert_file']['value'] +$key_file = $resource['input']['key_file']['value'] +$nova_user_id = $resource['input']['nova_user_id']['value'] +$nova_group_id = $resource['input']['nova_group_id']['value'] +$nova_public_key = $resource['input']['nova_public_key']['value'] +$nova_private_key = $resource['input']['nova_private_key']['value'] +$nova_shell = $resource['input']['nova_shell']['value'] +$root_helper = $resource['input']['root_helper']['value'] +$monitoring_notifications = $resource['input']['monitoring_notifications']['value'] +$use_syslog = $resource['input']['use_syslog']['value'] +$log_facility = $resource['input']['log_facility']['value'] +$install_utilities = $resource['input']['install_utilities']['value'] +$notification_driver = $resource['input']['notification_driver']['value'] +$notification_topics = $resource['input']['notification_topics']['value'] +$notify_api_faults = $resource['input']['notify_api_faults']['value'] +$notify_on_state_change = $resource['input']['notify_on_state_change']['value'] +$mysql_module = $resource['input']['mysql_module']['value'] +$nova_cluster_id = $resource['input']['nova_cluster_id']['value'] +$sql_connection = $resource['input']['sql_connection']['value'] +$sql_idle_timeout = $resource['input']['sql_idle_timeout']['value'] +$logdir = $resource['input']['logdir']['value'] +$os_region_name = $resource['input']['os_region_name']['value'] + +class { 'nova': + database_connection => "mysql://${db_user}:${db_password}@${db_host}/${db_name}?charset=utf8", + ensure_package => $ensure_package, + slave_connection => $slave_connection, + database_idle_timeout => $database_idle_timeout, + rpc_backend => $rpc_backend, + image_service => $image_service, + glance_api_servers => $glance_api_servers, + memcached_servers => $memcached_servers, + rabbit_host => $rabbit_host, + rabbit_hosts => $rabbit_hosts, + rabbit_password => $rabbit_password, + rabbit_port => $rabbit_port, + rabbit_userid => $rabbit_userid, + rabbit_virtual_host => $rabbit_virtual_host, + rabbit_use_ssl => $rabbit_use_ssl, + rabbit_ha_queues => $rabbit_ha_queues, + 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, + amqp_durable_queues => $amqp_durable_queues, + qpid_hostname => $qpid_hostname, + qpid_port => $qpid_port, + qpid_username => $qpid_username, + qpid_password => $qpid_password, + qpid_sasl_mechanisms => $qpid_sasl_mechanisms, + qpid_heartbeat => $qpid_heartbeat, + qpid_protocol => $qpid_protocol, + qpid_tcp_nodelay => $qpid_tcp_nodelay, + auth_strategy => $auth_strategy, + service_down_time => $service_down_time, + log_dir => $log_dir, + state_path => $state_path, + lock_path => $lock_path, + verbose => $verbose, + debug => $debug, + periodic_interval => $periodic_interval, + report_interval => $report_interval, + rootwrap_config => $rootwrap_config, + use_ssl => $use_ssl, + enabled_ssl_apis => $enabled_ssl_apis, + ca_file => $ca_file, + cert_file => $cert_file, + key_file => $key_file, + nova_user_id => $nova_user_id, + nova_group_id => $nova_group_id, + nova_public_key => $nova_public_key, + nova_private_key => $nova_private_key, + nova_shell => $nova_shell, + root_helper => $root_helper, + monitoring_notifications => $monitoring_notifications, + use_syslog => $use_syslog, + log_facility => $log_facility, + install_utilities => $install_utilities, + notification_driver => $notification_driver, + notification_topics => $notification_topics, + notify_api_faults => $notify_api_faults, + notify_on_state_change => $notify_on_state_change, + mysql_module => $mysql_module, + nova_cluster_id => $nova_cluster_id, + sql_idle_timeout => $sql_idle_timeout, + logdir => $logdir, + os_region_name => $os_region_name, +} diff --git a/resources/nova_puppet/meta.yaml b/resources/nova_puppet/meta.yaml new file mode 100644 index 00000000..53732819 --- /dev/null +++ b/resources/nova_puppet/meta.yaml @@ -0,0 +1,242 @@ +id: nova +handler: puppet +puppet_module: nova +version: 1.0.0 +input: + ensure_package: + schema: str + value: 'present' + database_connection: + schema: str + value: '' + slave_connection: + schema: str + value: '' + database_idle_timeout: + schema: int + value: 3600 + rpc_backend: + schema: str + value: 'rabbit' + image_service: + schema: str + value: 'nova.image.glance.GlanceImageService' + glance_api_servers: + schema: str + value: 'localhost:9292' + memcached_servers: + schema: str + value: '' + rabbit_host: + schema: str + value: 'localhost' + rabbit_hosts: + schema: str + value: '' + rabbit_password: + schema: str! + value: 'guest' + rabbit_port: + schema: int + value: 5672 + rabbit_userid: + schema: str + value: 'guest' + rabbit_virtual_host: + schema: str + value: '/' + rabbit_use_ssl: + schema: bool + value: false + rabbit_ha_queues: + schema: str + value: '' + kombu_ssl_ca_certs: + schema: str + value: '' + kombu_ssl_certfile: + schema: str + value: '' + kombu_ssl_keyfile: + schema: str + value: '' + kombu_ssl_version: + schema: str + value: 'TLSv1' + amqp_durable_queues: + schema: bool + value: false + qpid_hostname: + schema: str + value: 'localhost' + qpid_port: + schema: int + value: 5672 + qpid_username: + schema: str + value: 'guest' + qpid_password: + schema: str! + value: 'guest' + qpid_sasl_mechanisms: + schema: bool + value: false + qpid_heartbeat: + schema: int + value: 60 + qpid_protocol: + schema: str + value: 'tcp' + qpid_tcp_nodelay: + schema: bool + value: true + auth_strategy: + schema: str + value: 'keystone' + service_down_time: + schema: int + value: 60 + log_dir: + schema: str + value: '/var/log/nova' + state_path: + schema: str + value: '/var/lib/nova' + lock_path: + schema: str + value: $::nova::params::lock_path + verbose: + schema: bool + value: false + debug: + schema: bool + value: false + periodic_interval: + schema: int + value: 60 + report_interval: + schema: int + value: 10 + rootwrap_config: + schema: str + value: '/etc/nova/rootwrap.conf' + use_ssl: + schema: bool + value: false + enabled_ssl_apis: + schema: [] + value: ['ec2', 'metadata', 'osapi_compute'] + ca_file: + schema: str + value: '' + cert_file: + schema: str + value: '' + key_file: + schema: str + value: '' + nova_user_id: + schema: str + value: '' + nova_group_id: + schema: str + value: '' + nova_public_key: + schema: str + value: '' + nova_private_key: + schema: str + value: '' + nova_shell: + schema: str + value: '/bin/false' + root_helper: + schema: str + value: $::nova::params::root_helper + monitoring_notifications: + schema: bool + value: false + use_syslog: + schema: bool + value: false + log_facility: + schema: str + value: 'LOG_USER' + install_utilities: + schema: bool + value: true + notification_driver: + schema: [] + value: [] + notification_topics: + schema: str + value: 'notifications' + notify_api_faults: + schema: bool + value: false + notify_on_state_change: + schema: str + value: '' + mysql_module: + schema: str + value: '' + nova_cluster_id: + schema: str + value: '' + sql_connection: + schema: str + value: '' + sql_idle_timeout: + schema: str + value: '' + logdir: + schema: str + value: '' + os_region_name: + schema: str + value: '' + + db_user: + schema: str! + value: nova + db_password: + schema: str! + value: + db_name: + schema: str! + value: + db_host: + schema: str! + value: + + keystone_password: + schema: str! + value: + keystone_port: + schema: int! + value: + keystone_host: + schema: str! + value: + keystone_tenant: + schema: str! + value: + keystone_user: + schema: str! + value: + + git: + schema: {repository: str!, branch: str!} + value: {repository: 'https://github.com/openstack/puppet-nova', branch: '5.1.0'} + + ip: + schema: str! + value: + ssh_key: + schema: str! + value: + ssh_user: + schema: str! + value: + +tags: [resource/nova_service, resources/nova]