summaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'puppet')
-rw-r--r--puppet/controller.yaml21
-rw-r--r--puppet/hieradata/compute.yaml2
-rw-r--r--puppet/hieradata/controller.yaml3
-rw-r--r--puppet/manifests/overcloud_compute.pp4
-rw-r--r--puppet/manifests/overcloud_controller.pp13
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp59
-rw-r--r--puppet/services/database/mongodb-base.yaml30
-rw-r--r--puppet/services/database/mongodb.yaml28
-rw-r--r--puppet/services/nova-api.yaml31
-rw-r--r--puppet/services/nova-compute.yaml25
-rw-r--r--puppet/services/nova-consoleauth.yaml24
-rw-r--r--puppet/services/nova-scheduler.yaml26
-rw-r--r--puppet/services/nova-vncproxy.yaml24
-rw-r--r--puppet/services/pacemaker/database/mongodb.yaml28
-rw-r--r--puppet/services/pacemaker/nova-api.yaml30
-rw-r--r--puppet/services/pacemaker/nova-consoleauth.yaml30
-rw-r--r--puppet/services/pacemaker/nova-scheduler.yaml30
-rw-r--r--puppet/services/pacemaker/nova-vncproxy.yaml30
18 files changed, 340 insertions, 98 deletions
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index cb8c5bc3..5bdfaec9 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -284,18 +284,6 @@ parameters:
description: The password for the nova service and db account, used by nova-api.
type: string
hidden: true
- NovaWorkers:
- default: 0
- description: Number of workers for Nova service.
- type: number
- MongoDbNoJournal:
- default: false
- description: Should MongoDb journaling be disabled
- type: boolean
- MongoDbIPv6:
- default: false
- description: Enable IPv6 if Mongo DB VIP is IPv6
- type: boolean
NtpServer:
default: ''
description: Comma-separated list of ntp servers
@@ -627,7 +615,6 @@ resources:
input_values:
bootstack_nodeid: {get_attr: [Controller, name]}
ceilometer_workers: {get_param: CeilometerWorkers}
- nova_workers: {get_param: NovaWorkers}
haproxy_log_address: {get_param: HAProxySyslogAddress}
haproxy_stats_password: {get_param: HAProxyStatsPassword}
haproxy_stats_user: {get_param: HAProxyStatsUser}
@@ -750,8 +737,6 @@ resources:
rabbit_cookie: {get_param: RabbitCookie}
rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
rabbit_client_port: {get_param: RabbitClientPort}
- mongodb_no_journal: {get_param: MongoDbNoJournal}
- mongodb_ipv6: {get_param: MongoDbIPv6}
ntp_servers: {get_param: NtpServer}
timezone: {get_param: TimeZone}
control_virtual_interface: {get_param: ControlVirtualInterface}
@@ -918,10 +903,10 @@ resources:
keystone::public_bind_host: {get_input: keystone_public_api_network}
keystone::wsgi::apache::bind_host: {get_input: keystone_public_api_network}
keystone::wsgi::apache::admin_bind_host: {get_input: keystone_admin_api_network}
+
# MongoDB
mongodb::server::bind_ip: {get_input: mongo_db_network}
- mongodb::server::nojournal: {get_input: mongodb_no_journal}
- mongodb::server::ipv6: {get_input: mongodb_ipv6}
+
# MySQL
admin_password: {get_input: admin_password}
enable_galera: {get_input: enable_galera}
@@ -1029,8 +1014,6 @@ resources:
nova::api::api_bind_address: {get_input: nova_api_network}
nova::api::metadata_listen: {get_input: nova_metadata_network}
nova::api::admin_password: {get_input: nova_password}
- nova::api::osapi_compute_workers: {get_input: nova_workers}
- nova::api::metadata_workers: {get_input: nova_workers}
nova::compute::network_device_mtu: {get_input: neutron_tenant_mtu}
nova::database_connection: {get_input: nova_dsn}
nova::api_database_connection: {get_input: nova_api_dsn}
diff --git a/puppet/hieradata/compute.yaml b/puppet/hieradata/compute.yaml
index 5a46fc2b..2d928cbf 100644
--- a/puppet/hieradata/compute.yaml
+++ b/puppet/hieradata/compute.yaml
@@ -3,10 +3,8 @@
nova::host: "%{::fqdn}"
nova::notify_on_state_change: 'vm_and_task_state'
nova::notification_driver: messagingv2
-nova::compute::enabled: true
nova::compute::instance_usage_audit: true
nova::compute::instance_usage_audit_period: 'hour'
-nova::compute::vnc_enabled: true
nova::compute::libvirt::migration_support: true
diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml
index 3ad0748e..e69656cf 100644
--- a/puppet/hieradata/controller.yaml
+++ b/puppet/hieradata/controller.yaml
@@ -1,9 +1,7 @@
# Hiera data here applies to all controller nodes
nova::api::enabled: true
-nova::consoleauth::enabled: true
nova::vncproxy::enabled: true
-nova::scheduler::enabled: true
# gnocchi
gnocchi::db::sync::extra_opts: '--skip-storage'
@@ -115,7 +113,6 @@ nova::notify_on_state_change: 'vm_and_task_state'
nova::api::default_floating_pool: 'public'
nova::api::sync_db_api: true
nova::api::enable_proxy_headers_parsing: true
-nova::scheduler::filter::ram_allocation_ratio: '1.0'
nova::cron::archive_deleted_rows::hour: '*/12'
nova::cron::archive_deleted_rows::destination: '/dev/null'
nova::notification_driver: messaging
diff --git a/puppet/manifests/overcloud_compute.pp b/puppet/manifests/overcloud_compute.pp
index 6a6f54e0..30672f20 100644
--- a/puppet/manifests/overcloud_compute.pp
+++ b/puppet/manifests/overcloud_compute.pp
@@ -51,10 +51,6 @@ if hiera('step') >= 4 {
ensure => present,
}
- include ::nova
- include ::nova::config
- include ::nova::compute
-
$rbd_ephemeral_storage = hiera('nova::compute::rbd::ephemeral_storage', false)
$rbd_persistent_storage = hiera('rbd_persistent_storage', false)
if $rbd_ephemeral_storage or $rbd_persistent_storage {
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index 88ae8957..6084c954 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -36,9 +36,6 @@ if hiera('step') >= 2 {
# MongoDB
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
- include ::mongodb::globals
- include ::mongodb::client
- include ::mongodb::server
# NOTE(gfidente): We need to pass the list of IPv6 addresses *with* port and
# without the brackets as 'members' argument for the 'mongodb_replset'
# resource.
@@ -54,11 +51,6 @@ if hiera('step') >= 2 {
$mongodb_replset = hiera('mongodb::server::replset')
$ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
- if downcase(hiera('bootstrap_nodeid')) == $::hostname {
- mongodb_replset { $mongodb_replset :
- members => $mongo_node_ips_with_port_nobr,
- }
- }
}
if str2bool(hiera('enable_galera', true)) {
@@ -159,12 +151,7 @@ if hiera('step') >= 4 {
memcached_servers => $memcached_servers
}
include ::nova::config
- include ::nova::api
- include ::nova::consoleauth
include ::nova::network::neutron
- include ::nova::vncproxy
- include ::nova::scheduler
- include ::nova::scheduler::filter
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index 7a31dd75..7710217c 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -100,11 +100,7 @@ if hiera('step') >= 1 {
}
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
- include ::mongodb::globals
- include ::mongodb::client
- class { '::mongodb::server' :
- service_manage => false,
- }
+ include ::mongodb::params
}
# Galera
@@ -166,6 +162,7 @@ if hiera('step') >= 1 {
if hiera('step') >= 2 {
+
# NOTE(gfidente): the following vars are needed on all nodes so they
# need to stay out of pacemaker_master conditional.
# The addresses mangling will hopefully go away when we'll be able to
@@ -192,24 +189,6 @@ if hiera('step') >= 2 {
clone_params => true,
}
- if downcase(hiera('ceilometer_backend')) == 'mongodb' {
- pacemaker::resource::service { $::mongodb::params::service_name :
- op_params => 'start timeout=370s stop timeout=200s',
- clone_params => true,
- require => Class['::mongodb::server'],
- }
- # NOTE (spredzy) : The replset can only be run
- # once all the nodes have joined the cluster.
- mongodb_conn_validator { $mongo_node_ips_with_port :
- timeout => '600',
- require => Pacemaker::Resource::Service[$::mongodb::params::service_name],
- before => Mongodb_replset[$mongodb_replset],
- }
- mongodb_replset { $mongodb_replset :
- members => $mongo_node_ips_with_port_nobr,
- }
- }
-
pacemaker::resource::ocf { 'galera' :
ocf_agent_name => 'heartbeat:galera',
op_params => 'promote timeout=300s on-fail=block',
@@ -370,26 +349,6 @@ MYSQL_HOST=localhost\n",
}
include ::nova::config
-
- class { '::nova::api' :
- sync_db => $sync_db,
- sync_db_api => $sync_db,
- manage_service => false,
- enabled => false,
- }
- class { '::nova::consoleauth' :
- manage_service => false,
- enabled => false,
- }
- class { '::nova::vncproxy' :
- manage_service => false,
- enabled => false,
- }
- include ::nova::scheduler::filter
- class { '::nova::scheduler' :
- manage_service => false,
- enabled => false,
- }
include ::nova::network::neutron
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
@@ -728,20 +687,6 @@ password=\"${mysql_root_password}\"",
}
# Nova
- pacemaker::resource::service { $::nova::params::api_service_name :
- clone_params => 'interleave=true',
- }
- pacemaker::resource::service { $::nova::params::consoleauth_service_name :
- clone_params => 'interleave=true',
- require => Pacemaker::Resource::Ocf['openstack-core'],
- }
- pacemaker::resource::service { $::nova::params::vncproxy_service_name :
- clone_params => 'interleave=true',
- }
- pacemaker::resource::service { $::nova::params::scheduler_service_name :
- clone_params => 'interleave=true',
- }
-
pacemaker::constraint::base { 'keystone-then-nova-consoleauth-constraint':
constraint_type => 'order',
first_resource => 'openstack-core-clone',
diff --git a/puppet/services/database/mongodb-base.yaml b/puppet/services/database/mongodb-base.yaml
new file mode 100644
index 00000000..ecd1d319
--- /dev/null
+++ b/puppet/services/database/mongodb-base.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2016-04-08
+
+description: >
+ Configuration details for MongoDB service using composable roles
+
+parameters:
+ MongoDbNoJournal:
+ default: false
+ description: Should MongoDb journaling be disabled
+ type: boolean
+ MongoDbIPv6:
+ default: false
+ description: Enable IPv6 if MongoDB VIP is IPv6
+ type: boolean
+ MongoDbReplset:
+ type: string
+ default: "tripleo"
+
+outputs:
+ aux_parameters:
+ description: Additional parameters referenced outside the base file
+ value:
+ rplset_name: {get_param: MongoDbReplset}
+ role_data:
+ description: Role data for the MongoDB base service.
+ value:
+ config_settings:
+ mongodb::server::nojournal: {get_param: MongoDbNoJournal}
+ mongodb::server::ipv6: {get_param: MongoDbIPv6}
+ mongodb::server::replset: {get_param: MongoDbReplset} \ No newline at end of file
diff --git a/puppet/services/database/mongodb.yaml b/puppet/services/database/mongodb.yaml
new file mode 100644
index 00000000..c0488700
--- /dev/null
+++ b/puppet/services/database/mongodb.yaml
@@ -0,0 +1,28 @@
+heat_template_version: 2016-04-08
+
+description: >
+ MongoDb service deployment using puppet
+
+parameters:
+ #Parameters not used EndpointMap
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ MongoDbBase:
+ type: ./mongodb-base.yaml
+
+outputs:
+ role_data:
+ description: Service mongodb using composable services.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [MongoDbBase, role_data, config_settings]
+ - tripleo::profile::base::database::mongodb::mongodb_replset: {get_attr: [MongoDbBase, aux_parameters, rplset_name]}
+ mongodb::server::service_manage: True
+ step_config: |
+ include ::tripleo::profile::base::database::mongodb \ No newline at end of file
diff --git a/puppet/services/nova-api.yaml b/puppet/services/nova-api.yaml
new file mode 100644
index 00000000..f31df371
--- /dev/null
+++ b/puppet/services/nova-api.yaml
@@ -0,0 +1,31 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova API service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+ NovaWorkers:
+ default: 0
+ description: Number of workers for Nova API service.
+ type: number
+
+resources:
+ NovaBase:
+ type: ./nova-base.yaml
+
+outputs:
+ role_data:
+ description: Role data for the Nova API service.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaBase, role_data, config_settings]
+ - nova::api::osapi_compute_workers: {get_param: NovaWorkers}
+ - nova::api::metadata_workers: {get_param: NovaWorkers}
+ step_config: |
+ include tripleo::profile::base::nova::api
diff --git a/puppet/services/nova-compute.yaml b/puppet/services/nova-compute.yaml
new file mode 100644
index 00000000..0844aa85
--- /dev/null
+++ b/puppet/services/nova-compute.yaml
@@ -0,0 +1,25 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Compute service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ NovaBase:
+ type: ./nova-base.yaml
+
+outputs:
+ role_data:
+ description: Role data for the Nova Conductor service.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaBase, role_data, config_settings]
+ step_config: |
+ include tripleo::profile::base::nova::compute
diff --git a/puppet/services/nova-consoleauth.yaml b/puppet/services/nova-consoleauth.yaml
new file mode 100644
index 00000000..791c5449
--- /dev/null
+++ b/puppet/services/nova-consoleauth.yaml
@@ -0,0 +1,24 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Consoleauth service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ NovaBase:
+ type: ./nova-base.yaml
+
+outputs:
+ role_data:
+ description: Role data for the Nova Consoleauth service.
+ value:
+ config_settings:
+ get_attr: [NovaBase, role_data, config_settings]
+ step_config: |
+ include tripleo::profile::base::nova::consoleauth
diff --git a/puppet/services/nova-scheduler.yaml b/puppet/services/nova-scheduler.yaml
new file mode 100644
index 00000000..65ed6643
--- /dev/null
+++ b/puppet/services/nova-scheduler.yaml
@@ -0,0 +1,26 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Scheduler service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ NovaBase:
+ type: ./nova-base.yaml
+
+outputs:
+ role_data:
+ description: Role data for the Nova Scheduler service.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaBase, role_data, config_settings]
+ - nova::scheduler::filter::ram_allocation_ratio: '1.0'
+ step_config: |
+ include tripleo::profile::base::nova::scheduler
diff --git a/puppet/services/nova-vncproxy.yaml b/puppet/services/nova-vncproxy.yaml
new file mode 100644
index 00000000..93a25ab2
--- /dev/null
+++ b/puppet/services/nova-vncproxy.yaml
@@ -0,0 +1,24 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Vncproxy service configured with Puppet
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ NovaBase:
+ type: ./nova-base.yaml
+
+outputs:
+ role_data:
+ description: Role data for the Nova Vncproxy service.
+ value:
+ config_settings:
+ get_attr: [NovaBase, role_data, config_settings]
+ step_config: |
+ include tripleo::profile::base::nova::vncproxy
diff --git a/puppet/services/pacemaker/database/mongodb.yaml b/puppet/services/pacemaker/database/mongodb.yaml
new file mode 100644
index 00000000..b2e9e0bb
--- /dev/null
+++ b/puppet/services/pacemaker/database/mongodb.yaml
@@ -0,0 +1,28 @@
+heat_template_version: 2016-04-08
+
+description: >
+ MongoDb service deployment using puppet
+
+parameters:
+ #Parameters not used EndpointMap
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+ MongoDbBase:
+ type: ../../database/mongodb-base.yaml
+
+outputs:
+ role_data:
+ description: Service mongodb using composable services.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [MongoDbBase, role_data, config_settings]
+ - tripleo::profile::pacemaker::database::mongodb::mongodb_replset: {get_attr: [MongoDbBase, aux_parameters, rplset_name]}
+ mongodb::server::service_manage: False
+ step_config: |
+ include ::tripleo::profile::pacemaker::database::mongodb
diff --git a/puppet/services/pacemaker/nova-api.yaml b/puppet/services/pacemaker/nova-api.yaml
new file mode 100644
index 00000000..1b5011b6
--- /dev/null
+++ b/puppet/services/pacemaker/nova-api.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova API service with Pacemaker configured with Puppet.
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+
+ NovaApiBase:
+ type: ../nova-api.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Nova API role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaApiBase, role_data, config_settings]
+ - nova::api::manage_service: false
+ nova::api::enabled: false
+ step_config: |
+ include ::tripleo::profile::pacemaker::nova::api
diff --git a/puppet/services/pacemaker/nova-consoleauth.yaml b/puppet/services/pacemaker/nova-consoleauth.yaml
new file mode 100644
index 00000000..f9b6b058
--- /dev/null
+++ b/puppet/services/pacemaker/nova-consoleauth.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Consoleauth service with Pacemaker configured with Puppet.
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+
+ NovaConsoleauthBase:
+ type: ../nova-consoleauth.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Nova Consoleauth role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaConsoleauthBase, role_data, config_settings]
+ - nova::consoleauth::manage_service: false
+ nova::consoleauth::enabled: false
+ step_config: |
+ include ::tripleo::profile::pacemaker::nova::consoleauth
diff --git a/puppet/services/pacemaker/nova-scheduler.yaml b/puppet/services/pacemaker/nova-scheduler.yaml
new file mode 100644
index 00000000..0032cbe6
--- /dev/null
+++ b/puppet/services/pacemaker/nova-scheduler.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Scheduler service with Pacemaker configured with Puppet.
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+
+ NovaSchedulerBase:
+ type: ../nova-scheduler.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Nova Scheduler role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaSchedulerBase, role_data, config_settings]
+ - nova::scheduler::manage_service: false
+ nova::scheduler::enabled: false
+ step_config: |
+ include ::tripleo::profile::pacemaker::nova::scheduler
diff --git a/puppet/services/pacemaker/nova-vncproxy.yaml b/puppet/services/pacemaker/nova-vncproxy.yaml
new file mode 100644
index 00000000..52395240
--- /dev/null
+++ b/puppet/services/pacemaker/nova-vncproxy.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2016-04-08
+
+description: >
+ OpenStack Nova Vncproxy service with Pacemaker configured with Puppet.
+
+parameters:
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+
+resources:
+
+ NovaVncproxyBase:
+ type: ../nova-vncproxy.yaml
+ properties:
+ EndpointMap: {get_param: EndpointMap}
+
+outputs:
+ role_data:
+ description: Role data for the Nova Vncproxy role.
+ value:
+ config_settings:
+ map_merge:
+ - get_attr: [NovaVncproxyBase, role_data, config_settings]
+ - nova::vncproxy::manage_service: false
+ nova::vncproxy::enabled: false
+ step_config: |
+ include ::tripleo::profile::pacemaker::nova::vncproxy