summaryrefslogtreecommitdiffstats
path: root/manifests/profile/base
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/profile/base')
-rw-r--r--manifests/profile/base/aodh.pp53
-rw-r--r--manifests/profile/base/aodh/api.pp36
-rw-r--r--manifests/profile/base/aodh/evaluator.pp37
-rw-r--r--manifests/profile/base/aodh/listener.pp37
-rw-r--r--manifests/profile/base/aodh/notifier.pp37
-rw-r--r--manifests/profile/base/ceilometer.pp12
-rw-r--r--manifests/profile/base/ceilometer/agent/central.pp2
-rw-r--r--manifests/profile/base/ceilometer/agent/compute.pp2
-rw-r--r--manifests/profile/base/ceilometer/agent/notification.pp2
-rw-r--r--manifests/profile/base/ceilometer/api.pp7
-rw-r--r--manifests/profile/base/ceilometer/collector.pp58
-rw-r--r--manifests/profile/base/ceilometer/expirer.pp2
-rw-r--r--manifests/profile/base/ceph.pp10
-rw-r--r--manifests/profile/base/ceph/client.pp1
-rw-r--r--manifests/profile/base/ceph/mon.pp19
-rw-r--r--manifests/profile/base/ceph/osd.pp7
-rw-r--r--manifests/profile/base/cinder.pp19
-rw-r--r--manifests/profile/base/cinder/api.pp19
-rw-r--r--manifests/profile/base/cinder/backup.pp36
-rw-r--r--manifests/profile/base/cinder/backup/ceph.pp36
-rw-r--r--manifests/profile/base/cinder/backup/swift.pp36
-rw-r--r--manifests/profile/base/cinder/scheduler.pp1
-rw-r--r--manifests/profile/base/cinder/volume.pp1
-rw-r--r--manifests/profile/base/cinder/volume/dellsc.pp1
-rw-r--r--manifests/profile/base/cinder/volume/eqlx.pp1
-rw-r--r--manifests/profile/base/cinder/volume/iscsi.pp17
-rw-r--r--manifests/profile/base/cinder/volume/netapp.pp1
-rw-r--r--manifests/profile/base/cinder/volume/nfs.pp11
-rw-r--r--manifests/profile/base/cinder/volume/rbd.pp11
-rw-r--r--manifests/profile/base/database/mongodb.pp5
-rw-r--r--manifests/profile/base/database/mongodbcommon.pp12
-rw-r--r--manifests/profile/base/database/mysql.pp86
-rw-r--r--manifests/profile/base/database/redis.pp12
-rw-r--r--manifests/profile/base/glance/api.pp10
-rw-r--r--manifests/profile/base/glance/registry.pp23
-rw-r--r--manifests/profile/base/gnocchi.pp34
-rw-r--r--manifests/profile/base/gnocchi/api.pp63
-rw-r--r--manifests/profile/base/gnocchi/metricd.pp34
-rw-r--r--manifests/profile/base/gnocchi/statsd.pp34
-rw-r--r--manifests/profile/base/haproxy.pp61
-rw-r--r--manifests/profile/base/heat.pp39
-rw-r--r--manifests/profile/base/heat/api.pp3
-rw-r--r--manifests/profile/base/heat/api_cfn.pp3
-rw-r--r--manifests/profile/base/heat/api_cloudwatch.pp3
-rw-r--r--manifests/profile/base/heat/engine.pp13
-rw-r--r--manifests/profile/base/horizon.pp50
-rw-r--r--manifests/profile/base/ironic.pp49
-rw-r--r--manifests/profile/base/ironic/api.pp33
-rw-r--r--manifests/profile/base/ironic/conductor.pp36
-rw-r--r--manifests/profile/base/keepalived.pp10
-rw-r--r--manifests/profile/base/kernel.pp30
-rw-r--r--manifests/profile/base/keystone.pp55
-rw-r--r--manifests/profile/base/manila/api.pp3
-rw-r--r--manifests/profile/base/manila/scheduler.pp15
-rw-r--r--manifests/profile/base/manila/share.pp4
-rw-r--r--manifests/profile/base/memcached.pp4
-rw-r--r--manifests/profile/base/mistral.pp50
-rw-r--r--manifests/profile/base/mistral/api.pp46
-rw-r--r--manifests/profile/base/mistral/engine.pp46
-rw-r--r--manifests/profile/base/mistral/executor.pp45
-rw-r--r--manifests/profile/base/monitoring/fluentd.pp39
-rw-r--r--manifests/profile/base/monitoring/rabbitmq.pp54
-rw-r--r--manifests/profile/base/monitoring/sensu.pp34
-rw-r--r--manifests/profile/base/monitoring/uchiwa.pp31
-rw-r--r--manifests/profile/base/neutron.pp9
-rw-r--r--manifests/profile/base/neutron/agents/midonet.pp52
-rw-r--r--manifests/profile/base/neutron/agents/nuage.pp58
-rw-r--r--manifests/profile/base/neutron/dhcp.pp15
-rw-r--r--manifests/profile/base/neutron/l3.pp6
-rw-r--r--manifests/profile/base/neutron/metadata.pp2
-rw-r--r--manifests/profile/base/neutron/midonet.pp85
-rw-r--r--manifests/profile/base/neutron/ml2.pp64
-rw-r--r--manifests/profile/base/neutron/ovs.pp1
-rw-r--r--manifests/profile/base/neutron/plugins/ml2.pp23
-rw-r--r--manifests/profile/base/neutron/plugins/nuage.pp20
-rw-r--r--manifests/profile/base/neutron/plugins/opencontrail.pp20
-rw-r--r--manifests/profile/base/neutron/plugins/plumgrid.pp20
-rw-r--r--manifests/profile/base/neutron/server.pp32
-rw-r--r--manifests/profile/base/nova.pp55
-rw-r--r--manifests/profile/base/nova/api.pp26
-rw-r--r--manifests/profile/base/nova/compute.pp34
-rw-r--r--manifests/profile/base/nova/compute/ironic.pp34
-rw-r--r--manifests/profile/base/nova/compute/libvirt.pp3
-rw-r--r--manifests/profile/base/nova/conductor.pp2
-rw-r--r--manifests/profile/base/nova/consoleauth.pp2
-rw-r--r--manifests/profile/base/nova/libvirt.pp1
-rw-r--r--manifests/profile/base/nova/scheduler.pp2
-rw-r--r--manifests/profile/base/nova/vncproxy.pp2
-rw-r--r--manifests/profile/base/pacemaker.pp86
-rw-r--r--manifests/profile/base/rabbitmq.pp27
-rw-r--r--manifests/profile/base/sahara.pp19
-rw-r--r--manifests/profile/base/sahara/api.pp7
-rw-r--r--manifests/profile/base/sahara/engine.pp21
-rw-r--r--manifests/profile/base/snmp.pp19
-rw-r--r--manifests/profile/base/swift/add_devices.pp58
-rw-r--r--manifests/profile/base/swift/proxy.pp2
-rw-r--r--manifests/profile/base/swift/ringbuilder.pp80
-rw-r--r--manifests/profile/base/swift/storage.pp52
-rw-r--r--manifests/profile/base/trove/api.pp50
-rw-r--r--manifests/profile/base/trove/conductor.pp36
-rw-r--r--manifests/profile/base/trove/taskmanager.pp36
101 files changed, 2184 insertions, 458 deletions
diff --git a/manifests/profile/base/aodh.pp b/manifests/profile/base/aodh.pp
new file mode 100644
index 0000000..07c0a88
--- /dev/null
+++ b/manifests/profile/base/aodh.pp
@@ -0,0 +1,53 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::aodh
+#
+# aodh profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+class tripleo::profile::base::aodh (
+ $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+) {
+
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ if $step >= 3 and $sync_db {
+ include ::aodh::db::mysql
+ }
+
+ if $step >= 4 or ($step >= 3 and $sync_db) {
+ include ::aodh
+ include ::aodh::auth
+ include ::aodh::config
+ include ::aodh::client
+ include ::aodh::db::sync
+ }
+
+}
diff --git a/manifests/profile/base/aodh/api.pp b/manifests/profile/base/aodh/api.pp
new file mode 100644
index 0000000..3c4c0b6
--- /dev/null
+++ b/manifests/profile/base/aodh/api.pp
@@ -0,0 +1,36 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::aodh::api
+#
+# aodh API profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::aodh::api (
+ $step = hiera('step'),
+) {
+
+ include ::tripleo::profile::base::aodh
+
+ if $step >= 4 {
+ include ::aodh::api
+ include ::aodh::wsgi::apache
+ }
+}
diff --git a/manifests/profile/base/aodh/evaluator.pp b/manifests/profile/base/aodh/evaluator.pp
new file mode 100644
index 0000000..610d5a8
--- /dev/null
+++ b/manifests/profile/base/aodh/evaluator.pp
@@ -0,0 +1,37 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::aodh::evaluator
+#
+# aodh evaluator profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::aodh::evaluator (
+ $step = hiera('step'),
+) {
+
+ include ::tripleo::profile::base::aodh
+
+ if $step >= 4 {
+ include ::aodh::evaluator
+ }
+
+}
+
diff --git a/manifests/profile/base/aodh/listener.pp b/manifests/profile/base/aodh/listener.pp
new file mode 100644
index 0000000..d36e1bb
--- /dev/null
+++ b/manifests/profile/base/aodh/listener.pp
@@ -0,0 +1,37 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::aodh::listener
+#
+# aodh listener profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::aodh::listener (
+ $step = hiera('step'),
+) {
+
+ include ::tripleo::profile::base::aodh
+
+ if $step >= 4 {
+ include ::aodh::listener
+ }
+
+}
+
diff --git a/manifests/profile/base/aodh/notifier.pp b/manifests/profile/base/aodh/notifier.pp
new file mode 100644
index 0000000..d2a3945
--- /dev/null
+++ b/manifests/profile/base/aodh/notifier.pp
@@ -0,0 +1,37 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::aodh::notifier
+#
+# aodh notifier profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::aodh::notifier (
+ $step = hiera('step'),
+) {
+
+ include ::tripleo::profile::base::aodh
+
+ if $step >= 4 {
+ include ::aodh::notifier
+ }
+
+}
+
diff --git a/manifests/profile/base/ceilometer.pp b/manifests/profile/base/ceilometer.pp
index a7d62ce..88818de 100644
--- a/manifests/profile/base/ceilometer.pp
+++ b/manifests/profile/base/ceilometer.pp
@@ -23,20 +23,12 @@
# for more details.
# Defaults to hiera('step')
#
-# [*pacemaker_master*]
-# (Optional) The master node runs some tasks
-# one step earlier than others; disable to
-# the node is not the master.
-# Defaults to true
-
class tripleo::profile::base::ceilometer (
- $step = hiera('step'),
- $pacemaker_master = true,
+ $step = hiera('step'),
) {
- if $step >= 4 or ($step >= 3 and $pacemaker_master) {
+ if $step >= 3 {
include ::ceilometer
- include ::ceilometer::db
include ::ceilometer::config
}
diff --git a/manifests/profile/base/ceilometer/agent/central.pp b/manifests/profile/base/ceilometer/agent/central.pp
index 02d6d1a..c91e610 100644
--- a/manifests/profile/base/ceilometer/agent/central.pp
+++ b/manifests/profile/base/ceilometer/agent/central.pp
@@ -23,11 +23,9 @@
# for more details.
# Defaults to hiera('step')
#
-
class tripleo::profile::base::ceilometer::agent::central (
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::ceilometer
if $step >= 4 {
diff --git a/manifests/profile/base/ceilometer/agent/compute.pp b/manifests/profile/base/ceilometer/agent/compute.pp
index 3a7aa50..749bc64 100644
--- a/manifests/profile/base/ceilometer/agent/compute.pp
+++ b/manifests/profile/base/ceilometer/agent/compute.pp
@@ -23,11 +23,9 @@
# for more details.
# Defaults to hiera('step')
#
-
class tripleo::profile::base::ceilometer::agent::compute (
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::ceilometer
if $step >= 4 {
diff --git a/manifests/profile/base/ceilometer/agent/notification.pp b/manifests/profile/base/ceilometer/agent/notification.pp
index 83a0234..7fe8e81 100644
--- a/manifests/profile/base/ceilometer/agent/notification.pp
+++ b/manifests/profile/base/ceilometer/agent/notification.pp
@@ -23,11 +23,9 @@
# for more details.
# Defaults to hiera('step')
#
-
class tripleo::profile::base::ceilometer::agent::notification (
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::ceilometer
if $step >= 4 {
diff --git a/manifests/profile/base/ceilometer/api.pp b/manifests/profile/base/ceilometer/api.pp
index e324c00..b6419c2 100644
--- a/manifests/profile/base/ceilometer/api.pp
+++ b/manifests/profile/base/ceilometer/api.pp
@@ -23,15 +23,16 @@
# for more details.
# Defaults to hiera('step')
#
-
class tripleo::profile::base::ceilometer::api (
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::ceilometer
if $step >= 4 {
include ::ceilometer::api
+ #NOTE: remove conditional once tht changes are merged
+ if hiera('ceilometer_wsgi', false) {
+ include ::ceilometer::wsgi::apache
+ }
}
-
}
diff --git a/manifests/profile/base/ceilometer/collector.pp b/manifests/profile/base/ceilometer/collector.pp
index 6891f9c..baaf4c8 100644
--- a/manifests/profile/base/ceilometer/collector.pp
+++ b/manifests/profile/base/ceilometer/collector.pp
@@ -18,33 +18,63 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
-#
-
class tripleo::profile::base::ceilometer::collector (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ $ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb'))
+ # MongoDB
+ if $ceilometer_backend == 'mongodb' {
+ # 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.
+ if str2bool(hiera('mongodb::server::ipv6', false)) {
+ $mongo_node_ips_with_port_prefixed = prefix(hiera('mongodb_node_ips'), '[')
+ $mongo_node_ips_with_port = suffix($mongo_node_ips_with_port_prefixed, ']:27017')
+ $mongo_node_ips_with_port_nobr = suffix(hiera('mongodb_node_ips'), ':27017')
+ } else {
+ $mongo_node_ips_with_port = suffix(hiera('mongodb_node_ips'), ':27017')
+ $mongo_node_ips_with_port_nobr = suffix(hiera('mongodb_node_ips'), ':27017')
+ }
+ $mongo_node_string = join($mongo_node_ips_with_port, ',')
- class { '::tripleo::profile::base::ceilometer':
- pacemaker_master => $sync_db,
+ $mongodb_replset = hiera('mongodb::server::replset')
+ $ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
+ }
+
+ include ::tripleo::profile::base::ceilometer
+
+ if $step >= 2 and $sync_db and $ceilometer_backend == 'mysql' {
+ include ::ceilometer::db::mysql
}
if $step >= 3 and $sync_db {
- $ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb'))
- if $ceilometer_backend == 'mysql' {
- include ::ceilometer::db::mysql
- }
+ include ::ceilometer::db::sync
}
- if $step >= 4 {
+ if $step >= 4 or ($step >= 3 and $sync_db) {
+ if $ceilometer_backend == 'mongodb' {
+ class { '::ceilometer::db' :
+ database_connection => $ceilometer_mongodb_conn_string,
+ }
+ } else {
+ include ::ceilometer::db
+ }
include ::ceilometer::collector
include ::ceilometer::dispatcher::gnocchi
}
diff --git a/manifests/profile/base/ceilometer/expirer.pp b/manifests/profile/base/ceilometer/expirer.pp
index 43d8c26..0830307 100644
--- a/manifests/profile/base/ceilometer/expirer.pp
+++ b/manifests/profile/base/ceilometer/expirer.pp
@@ -23,11 +23,9 @@
# for more details.
# Defaults to hiera('step')
#
-
class tripleo::profile::base::ceilometer::expirer (
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::ceilometer
if $step >= 4 {
diff --git a/manifests/profile/base/ceph.pp b/manifests/profile/base/ceph.pp
index 29ca9ae..94166ac 100644
--- a/manifests/profile/base/ceph.pp
+++ b/manifests/profile/base/ceph.pp
@@ -35,6 +35,10 @@
# mon_host when ceph_ipv6 is true
# Defaults to undef
#
+# [*enable_ceph_storage*]
+# (Optional) enable_ceph_storage
+# Deprecated: defaults to false
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
@@ -45,6 +49,7 @@ class tripleo::profile::base::ceph (
$ceph_mon_initial_members = undef,
$ceph_mon_host = undef,
$ceph_mon_host_v6 = undef,
+ $enable_ceph_storage = false,
$step = hiera('step'),
) {
@@ -67,4 +72,9 @@ class tripleo::profile::base::ceph (
include ::ceph::conf
}
+
+ # TODO: deprecated boolean
+ if $enable_ceph_storage {
+ include ::tripleo::profile::base::ceph::osd
+ }
}
diff --git a/manifests/profile/base/ceph/client.pp b/manifests/profile/base/ceph/client.pp
index 851324a..53f09c2 100644
--- a/manifests/profile/base/ceph/client.pp
+++ b/manifests/profile/base/ceph/client.pp
@@ -26,7 +26,6 @@
class tripleo::profile::base::ceph::client (
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::ceph
if $step >= 2 {
diff --git a/manifests/profile/base/ceph/mon.pp b/manifests/profile/base/ceph/mon.pp
index 48c3721..c0768b6 100644
--- a/manifests/profile/base/ceph/mon.pp
+++ b/manifests/profile/base/ceph/mon.pp
@@ -19,8 +19,14 @@
# === Parameters
#
# [*ceph_pools*]
-# (Optional) List of pools to create
-# Defaults to []
+# (Optional) Hash of pools to create
+# Example with hiera:
+# tripleo::profile::base::ceph::mon::ceph_pools:
+# mypool:
+# size: 5
+# pg_num: 128
+# pgp_num: 128
+# Defaults to {}
#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
@@ -28,10 +34,9 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::ceph::mon (
- $ceph_pools = [],
+ $ceph_pools = {},
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::ceph
if $step >= 2 {
@@ -39,10 +44,6 @@ class tripleo::profile::base::ceph::mon (
}
if $step >= 4 {
- ceph::pool { $ceph_pools :
- pg_num => hiera('ceph::profile::params::osd_pool_default_pg_num'),
- pgp_num => hiera('ceph::profile::params::osd_pool_default_pgp_num'),
- size => hiera('ceph::profile::params::osd_pool_default_size'),
- }
+ create_resources('ceph::pool', $ceph_pools)
}
}
diff --git a/manifests/profile/base/ceph/osd.pp b/manifests/profile/base/ceph/osd.pp
index d0c77e9..6940bca 100644
--- a/manifests/profile/base/ceph/osd.pp
+++ b/manifests/profile/base/ceph/osd.pp
@@ -20,7 +20,7 @@
#
# [*ceph_osd_selinux_permissive*]
# (Optional) Wheter to configure SELinux in permissive mode
-# Default to true
+# Default to false
#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
@@ -28,13 +28,12 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::ceph::osd (
- $ceph_osd_selinux_permissive = true,
+ $ceph_osd_selinux_permissive = false,
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::ceph
- if $step >= 2 {
+ if $step >= 3 {
if $ceph_osd_selinux_permissive {
exec { 'set selinux to permissive on boot':
command => "sed -ie 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config",
diff --git a/manifests/profile/base/cinder.pp b/manifests/profile/base/cinder.pp
index 27dc277..43d95b4 100644
--- a/manifests/profile/base/cinder.pp
+++ b/manifests/profile/base/cinder.pp
@@ -18,27 +18,30 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*cinder_enable_db_purge*]
# (Optional) Wheter to enable db purging
# Defaults to true
#
-# [*pacemaker_master*]
-# (Optional) The master node runs some tasks
-# one step earlier than others; disable to
-# the node is not the master.
-# Defaults to true
-#
# [*step*]
# (Optional) The current step of the deployment
# Defaults to hiera('step')
#
class tripleo::profile::base::cinder (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$cinder_enable_db_purge = true,
- $pacemaker_master = true,
$step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
- if $step >= 4 or ($step >= 3 and $pacemaker_master) {
+ if $step >= 4 or ($step >= 3 and $sync_db) {
include ::cinder
include ::cinder::config
}
diff --git a/manifests/profile/base/cinder/api.pp b/manifests/profile/base/cinder/api.pp
index a2da25f..370b402 100644
--- a/manifests/profile/base/cinder/api.pp
+++ b/manifests/profile/base/cinder/api.pp
@@ -18,9 +18,9 @@
#
# === Parameters
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
@@ -28,14 +28,17 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::cinder::api (
- $sync_db = true,
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
-
- class { '::tripleo::profile::base::cinder':
- pacemaker_master => $sync_db,
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
}
+ include ::tripleo::profile::base::cinder
+
if $step >= 3 and $sync_db {
include ::cinder::db::mysql
}
diff --git a/manifests/profile/base/cinder/backup.pp b/manifests/profile/base/cinder/backup.pp
new file mode 100644
index 0000000..df015f7
--- /dev/null
+++ b/manifests/profile/base/cinder/backup.pp
@@ -0,0 +1,36 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::cinder::backup
+#
+# Cinder Backup profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::cinder::backup (
+ $step = hiera('step'),
+) {
+
+ include ::tripleo::profile::base::cinder
+
+ if $step >= 4 {
+ include ::cinder::backup
+ }
+
+}
diff --git a/manifests/profile/base/cinder/backup/ceph.pp b/manifests/profile/base/cinder/backup/ceph.pp
new file mode 100644
index 0000000..67a666e
--- /dev/null
+++ b/manifests/profile/base/cinder/backup/ceph.pp
@@ -0,0 +1,36 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::cinder::backup::ceph
+#
+# Cinder Backup Ceph profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::cinder::backup::ceph (
+ $step = hiera('step'),
+) {
+
+ include ::tripleo::profile::base::cinder::backup
+
+ if $step >= 4 {
+ include ::cinder::backup::ceph
+ }
+
+}
diff --git a/manifests/profile/base/cinder/backup/swift.pp b/manifests/profile/base/cinder/backup/swift.pp
new file mode 100644
index 0000000..12561bf
--- /dev/null
+++ b/manifests/profile/base/cinder/backup/swift.pp
@@ -0,0 +1,36 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::cinder::backup::swift
+#
+# Cinder Backup Ceph profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::cinder::backup::swift (
+ $step = hiera('step'),
+) {
+
+ include ::tripleo::profile::base::cinder::backup
+
+ if $step >= 4 {
+ include ::cinder::backup::swift
+ }
+
+}
diff --git a/manifests/profile/base/cinder/scheduler.pp b/manifests/profile/base/cinder/scheduler.pp
index 68f2813..4586929 100644
--- a/manifests/profile/base/cinder/scheduler.pp
+++ b/manifests/profile/base/cinder/scheduler.pp
@@ -26,7 +26,6 @@
class tripleo::profile::base::cinder::scheduler (
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::cinder
if $step >= 4 {
diff --git a/manifests/profile/base/cinder/volume.pp b/manifests/profile/base/cinder/volume.pp
index 96cd06a..dfb034f 100644
--- a/manifests/profile/base/cinder/volume.pp
+++ b/manifests/profile/base/cinder/volume.pp
@@ -61,7 +61,6 @@ class tripleo::profile::base::cinder::volume (
$cinder_user_enabled_backends = hiera('cinder_user_enabled_backends', undef),
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::cinder
if $step >= 4 {
diff --git a/manifests/profile/base/cinder/volume/dellsc.pp b/manifests/profile/base/cinder/volume/dellsc.pp
index 6f7922d..534bcb7 100644
--- a/manifests/profile/base/cinder/volume/dellsc.pp
+++ b/manifests/profile/base/cinder/volume/dellsc.pp
@@ -31,7 +31,6 @@ class tripleo::profile::base::cinder::volume::dellsc (
$backend_name = hiera('cinder::backend::dellsc_iscsi::volume_backend_name', 'tripleo_dellsc'),
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::cinder::volume
if $step >= 4 {
diff --git a/manifests/profile/base/cinder/volume/eqlx.pp b/manifests/profile/base/cinder/volume/eqlx.pp
index a18270d..2399459 100644
--- a/manifests/profile/base/cinder/volume/eqlx.pp
+++ b/manifests/profile/base/cinder/volume/eqlx.pp
@@ -31,7 +31,6 @@ class tripleo::profile::base::cinder::volume::eqlx (
$backend_name = hiera('cinder::backend::eqlx::volume_backend_name', 'tripleo_eqlx'),
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::cinder::volume
if $step >= 4 {
diff --git a/manifests/profile/base/cinder/volume/iscsi.pp b/manifests/profile/base/cinder/volume/iscsi.pp
index d857caa..d1d22bb 100644
--- a/manifests/profile/base/cinder/volume/iscsi.pp
+++ b/manifests/profile/base/cinder/volume/iscsi.pp
@@ -21,6 +21,10 @@
# [*cinder_iscsi_address*]
# The address where to bind the iscsi targets daemon
#
+# [*backend_name*]
+# (Optional) Name given to the Cinder backend stanza
+# Defaults to 'tripleo_iscsi'
+#
# [*cinder_iscsi_helper*]
# (Optional) The iscsi helper to use
# Defaults to 'tgtadm'
@@ -29,10 +33,6 @@
# (Optional) The size (in MB) of the LVM loopback volume
# Defaults to '10280'
#
-# [*backend_name*]
-# (Optional) Name given to the Cinder backend stanza
-# Defaults to 'tripleo_iscsi'
-#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
@@ -40,12 +40,11 @@
#
class tripleo::profile::base::cinder::volume::iscsi (
$cinder_iscsi_address,
- $cinder_iscsi_helper = 'tgtadm',
- $cinder_lvm_loop_device_size = '10280',
- $backend_name = hiera('cinder::backend::iscsi::volume_backend_name', 'tripleo_iscsi'),
- $step = hiera('step'),
+ $backend_name = hiera('cinder::backend::iscsi::volume_backend_name', 'tripleo_iscsi'),
+ $cinder_iscsi_helper = 'tgtadm',
+ $cinder_lvm_loop_device_size = '10280',
+ $step = hiera('step'),
) {
-
include ::tripleo::profile::base::cinder::volume
if $step >= 4 {
diff --git a/manifests/profile/base/cinder/volume/netapp.pp b/manifests/profile/base/cinder/volume/netapp.pp
index bae541f..fc652c9 100644
--- a/manifests/profile/base/cinder/volume/netapp.pp
+++ b/manifests/profile/base/cinder/volume/netapp.pp
@@ -31,7 +31,6 @@ class tripleo::profile::base::cinder::volume::netapp (
$backend_name = hiera('cinder::backend::netapp::volume_backend_name', 'tripleo_netapp'),
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::cinder::volume
if $step >= 4 {
diff --git a/manifests/profile/base/cinder/volume/nfs.pp b/manifests/profile/base/cinder/volume/nfs.pp
index a26c50e..7b1f1b9 100644
--- a/manifests/profile/base/cinder/volume/nfs.pp
+++ b/manifests/profile/base/cinder/volume/nfs.pp
@@ -18,10 +18,6 @@
#
# === Parameters
#
-# [*cinder_nfs_mount_options*]
-# (Optional) List of mount options for the NFS share
-# Defaults to ''
-#
# [*cinder_nfs_servers*]
# List of NFS shares to mount
#
@@ -29,18 +25,21 @@
# (Optional) Name given to the Cinder backend stanza
# Defaults to 'tripleo_nfs'
#
+# [*cinder_nfs_mount_options*]
+# (Optional) List of mount options for the NFS share
+# Defaults to ''
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
class tripleo::profile::base::cinder::volume::nfs (
- $cinder_nfs_mount_options = '',
$cinder_nfs_servers,
$backend_name = hiera('cinder::backend::nfs::volume_backend_name', 'tripleo_nfs'),
+ $cinder_nfs_mount_options = '',
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::cinder::volume
if $step >= 4 {
diff --git a/manifests/profile/base/cinder/volume/rbd.pp b/manifests/profile/base/cinder/volume/rbd.pp
index 6c8341a..1246de8 100644
--- a/manifests/profile/base/cinder/volume/rbd.pp
+++ b/manifests/profile/base/cinder/volume/rbd.pp
@@ -18,6 +18,10 @@
#
# === Parameters
#
+# [*backend_name*]
+# (Optional) Name given to the Cinder backend stanza
+# Defaults to 'tripleo_ceph'
+#
# [*cinder_rbd_backend_host*]
# (Optional) String to use as backend_host in the backend stanza
# Defaults to 'cinder::host'
@@ -34,24 +38,19 @@
# (Optional) The user name for the RBD client
# Defaults to 'openstack'
#
-# [*backend_name*]
-# (Optional) Name given to the Cinder backend stanza
-# Defaults to 'tripleo_ceph'
-#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
class tripleo::profile::base::cinder::volume::rbd (
+ $backend_name = hiera('cinder::backend::rbd::volume_backend_name', 'tripleo_ceph'),
$cinder_rbd_backend_host = hiera('cinder::host', 'hostgroup'),
$cinder_rbd_pool_name = 'volumes',
$cinder_rbd_secret_uuid = hiera('ceph::profile::params::fsid', undef),
$cinder_rbd_user_name = 'openstack',
- $backend_name = hiera('cinder::backend::rbd::volume_backend_name', 'tripleo_ceph'),
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::cinder::volume
if $step >= 4 {
diff --git a/manifests/profile/base/database/mongodb.pp b/manifests/profile/base/database/mongodb.pp
index 4c53c9c..1a19bb6 100644
--- a/manifests/profile/base/database/mongodb.pp
+++ b/manifests/profile/base/database/mongodb.pp
@@ -32,10 +32,9 @@
#
class tripleo::profile::base::database::mongodb (
$mongodb_replset,
- $bootstrap_node = downcase(hiera('bootstrap_nodeid')),
- $step = hiera('step'),
+ $bootstrap_node = downcase(hiera('bootstrap_nodeid')),
+ $step = hiera('step'),
) {
-
if $step >= 2 {
include ::mongodb::globals
diff --git a/manifests/profile/base/database/mongodbcommon.pp b/manifests/profile/base/database/mongodbcommon.pp
index 6530730..c61e692 100644
--- a/manifests/profile/base/database/mongodbcommon.pp
+++ b/manifests/profile/base/database/mongodbcommon.pp
@@ -18,22 +18,20 @@
#
# === Parameters
#
-# [*mongodb_node_ips*]
-# List of The mongodb node ip addresses
-#
# [*mongodb_ipv6_enabled*]
# A boolean value for mongodb server ipv6 is enabled or not
# Defaults to false
#
+# [*mongodb_node_ips*]
+# List of The mongodb node ip addresses
+#
class tripleo::profile::base::database::mongodbcommon (
- $mongodb_node_ips = hiera('mongo_node_ips'),
$mongodb_ipv6_enabled = false,
+ $mongodb_node_ips = hiera('mongodb_node_ips'),
) {
-
$port = '27017'
- # NOTE(gfidente): the following vars are needed on all nodes so they
- # need to stay out of pacemaker_master conditional.
+ # NOTE(gfidente): the following vars are needed on all nodes.
# The addresses mangling will hopefully go away when we'll be able to
# configure the connection string via hostnames, until then, we need to pass
# the list of IPv6 addresses *with* port and without the brackets as 'members'
diff --git a/manifests/profile/base/database/mysql.pp b/manifests/profile/base/database/mysql.pp
new file mode 100644
index 0000000..49c9df3
--- /dev/null
+++ b/manifests/profile/base/database/mysql.pp
@@ -0,0 +1,86 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::database::mysql
+#
+# MySQL profile for tripleo
+#
+# === Parameters
+#
+# [*manage_resources*]
+# (Optional) Whether or not manage root user, root my.cnf, and service.
+# Defaults to true
+#
+# [*mysql_server_options*]
+# (Optional) Extras options to deploy MySQL. Useful when deploying Galera cluster.
+# Should be an hash.
+# Defaults to {}
+#
+# [*remove_default_accounts*]
+# (Optional) Whether or not remove default MySQL accounts.
+# Defaults to true
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::database::mysql (
+ $manage_resources = true,
+ $mysql_server_options = {},
+ $remove_default_accounts = true,
+ $step = hiera('step'),
+
+) {
+
+ validate_hash($mysql_server_options)
+
+ # non-ha scenario
+ if $manage_resources {
+ $mysql_step = 2
+ } else {
+ # ha scenario
+ $mysql_step = 1
+ }
+ if $step >= $mysql_step {
+ if str2bool(hiera('enable_galera', true)) {
+ $mysql_config_file = '/etc/my.cnf.d/galera.cnf'
+ } else {
+ $mysql_config_file = '/etc/my.cnf.d/server.cnf'
+ }
+ # TODO Galara
+ # FIXME: due to https://bugzilla.redhat.com/show_bug.cgi?id=1298671 we
+ # set bind-address to a hostname instead of an ip address; to move Mysql
+ # from internal_api on another network we'll have to customize both
+ # MysqlNetwork and ControllerHostnameResolveNetwork in ServiceNetMap
+ $mysql_server_default = {
+ 'mysqld' => {
+ 'bind-address' => $::hostname,
+ 'max_connections' => hiera('mysql_max_connections'),
+ 'open_files_limit' => '-1',
+ }
+ }
+ $mysql_server_options_real = deep_merge($mysql_server_default, $mysql_server_options)
+ class { '::mysql::server':
+ config_file => $mysql_config_file,
+ override_options => $mysql_server_options_real,
+ create_root_user => $manage_resources,
+ create_root_my_cnf => $manage_resources,
+ service_manage => $manage_resources,
+ service_enabled => $manage_resources,
+ remove_default_accounts => $remove_default_accounts,
+ }
+ }
+
+}
diff --git a/manifests/profile/base/database/redis.pp b/manifests/profile/base/database/redis.pp
index 3a5200c..14f6af4 100644
--- a/manifests/profile/base/database/redis.pp
+++ b/manifests/profile/base/database/redis.pp
@@ -18,26 +18,24 @@
#
# === Parameters
#
-# [*redis_node_ips*]
-# (Optional) List of Redis node ips
-# Defaults to hiera('redis_node_ips')
-#
# [*bootstrap_nodeid*]
# (Optional) Hostname of Redis master
# Defaults to hiera('bootstrap_nodeid')
#
+# [*redis_node_ips*]
+# (Optional) List of Redis node ips
+# Defaults to hiera('redis_node_ips')
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-
class tripleo::profile::base::database::redis (
- $redis_node_ips = hiera('redis_node_ips'),
$bootstrap_nodeid = hiera('bootstrap_nodeid'),
+ $redis_node_ips = hiera('redis_node_ips'),
$step = hiera('step'),
) {
-
if $step >= 2 {
if $bootstrap_nodeid == $::hostname {
$slaveof = undef
diff --git a/manifests/profile/base/glance/api.pp b/manifests/profile/base/glance/api.pp
index fd43732..845fd41 100644
--- a/manifests/profile/base/glance/api.pp
+++ b/manifests/profile/base/glance/api.pp
@@ -18,18 +18,18 @@
#
# === Parameters
#
+# [*glance_backend*]
+# (Optional) Glance backend(s) to use.
+# Defaults to downcase(hiera('glance_backend', 'swift'))
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*glance_backend*]
-# (Optional) Glance backend(s) to use.
-# Defaults to downcase(hiera('glance_backend', 'swift'))
-#
class tripleo::profile::base::glance::api (
- $step = hiera('step'),
$glance_backend = downcase(hiera('glance_backend', 'swift')),
+ $step = hiera('step'),
) {
if $step >= 4 {
diff --git a/manifests/profile/base/glance/registry.pp b/manifests/profile/base/glance/registry.pp
index 774f646..ac6796a 100644
--- a/manifests/profile/base/glance/registry.pp
+++ b/manifests/profile/base/glance/registry.pp
@@ -18,24 +18,29 @@
#
# === Parameters
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*glance_backend*]
+# (Optional) Glance backend(s) to use.
+# Defaults to downcase(hiera('glance_backend', 'swift'))
#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*glance_backend*]
-# (Optional) Glance backend(s) to use.
-# Defaults to downcase(hiera('glance_backend', 'swift'))
-#
class tripleo::profile::base::glance::registry (
- $sync_db = true,
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$glance_backend = downcase(hiera('glance_backend', 'swift')),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
if $step >= 3 and $sync_db {
include ::glance::db::mysql
diff --git a/manifests/profile/base/gnocchi.pp b/manifests/profile/base/gnocchi.pp
new file mode 100644
index 0000000..6a470ca
--- /dev/null
+++ b/manifests/profile/base/gnocchi.pp
@@ -0,0 +1,34 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::gnocchi
+#
+# Gnocchi profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::gnocchi (
+ $step = hiera('step'),
+) {
+ if $step >= 3 {
+ include ::gnocchi
+ include ::gnocchi::config
+ include ::gnocchi::client
+ }
+}
diff --git a/manifests/profile/base/gnocchi/api.pp b/manifests/profile/base/gnocchi/api.pp
new file mode 100644
index 0000000..5e7e215
--- /dev/null
+++ b/manifests/profile/base/gnocchi/api.pp
@@ -0,0 +1,63 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::gnocchi::api
+#
+# Gnocchi profile for tripleo api
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*gnocchi_backend*]
+# (Optional) Gnocchi backend string file, swift or rbd
+# Defaults to swift
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::gnocchi::api (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $gnocchi_backend = downcase(hiera('gnocchi_backend', 'swift')),
+ $step = hiera('step'),
+) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::gnocchi
+
+ if $step >= 3 and $sync_db {
+ include ::gnocchi::db::mysql
+ include ::gnocchi::db::sync
+ }
+
+ if $step >= 4 {
+ include ::gnocchi::api
+ include ::gnocchi::wsgi::apache
+ include ::gnocchi::storage
+ case $gnocchi_backend {
+ 'swift': { include ::gnocchi::storage::swift }
+ 'file': { include ::gnocchi::storage::file }
+ 'rbd': { include ::gnocchi::storage::ceph }
+ default: { fail('Unrecognized gnocchi_backend parameter.') }
+ }
+ }
+}
diff --git a/manifests/profile/base/gnocchi/metricd.pp b/manifests/profile/base/gnocchi/metricd.pp
new file mode 100644
index 0000000..4d7eb89
--- /dev/null
+++ b/manifests/profile/base/gnocchi/metricd.pp
@@ -0,0 +1,34 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::gnocchi::metricd
+#
+# Gnocchi metricd profile
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::gnocchi::metricd (
+ $step = hiera('step'),
+) {
+ include ::tripleo::profile::base::gnocchi
+
+ if $step >= 4 {
+ include ::gnocchi::metricd
+ }
+}
diff --git a/manifests/profile/base/gnocchi/statsd.pp b/manifests/profile/base/gnocchi/statsd.pp
new file mode 100644
index 0000000..775b043
--- /dev/null
+++ b/manifests/profile/base/gnocchi/statsd.pp
@@ -0,0 +1,34 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::gnocchi::statsd
+#
+# Gnocchi statsd profile
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::gnocchi::statsd (
+ $step = hiera('step'),
+) {
+ include ::tripleo::profile::base::gnocchi
+
+ if $step >= 4 {
+ include ::gnocchi::statsd
+ }
+}
diff --git a/manifests/profile/base/haproxy.pp b/manifests/profile/base/haproxy.pp
index 31a5415..4f2f850 100644
--- a/manifests/profile/base/haproxy.pp
+++ b/manifests/profile/base/haproxy.pp
@@ -18,22 +18,69 @@
#
# === Parameters
#
-# [*step*]
-# (Optional) The current step in deployment. See tripleo-heat-templates
-# for more details.
-# Defaults to hiera('step')
+# [*certificates_specs*]
+# (Optional) The specifications to give to certmonger for the certificate(s)
+# it will create.
+# Example with hiera:
+# tripleo::profile::base::haproxy::certificates_specs:
+# undercloud-haproxy-public-cert:
+# service_pem: <haproxy ready pem file>
+# service_certificate: <service certificate path>
+# service_key: <service key path>
+# hostname: <undercloud fqdn>
+# postsave_cmd: <command to update certificate on resubmit>
+# principal: "haproxy/<undercloud fqdn>"
+# Defaults to {}.
+#
+# [*certmonger_ca*]
+# (Optional) The CA that certmonger will use to generate the certificates.
+# Defaults to hiera('certmonger_ca', 'local').
#
# [*enable_load_balancer*]
# (Optional) Whether or not loadbalancer is enabled.
# Defaults to hiera('enable_load_balancer', true).
#
+# [*generate_service_certificates*]
+# (Optional) Whether or not certmonger will generate certificates for
+# HAProxy. This could be as many as specified by the $certificates_specs
+# variable.
+# Note that this doesn't configure the certificates in haproxy, it merely
+# creates the certificates.
+# Defaults to hiera('generate_service_certificate', false).
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
class tripleo::profile::base::haproxy (
- $enable_load_balancer = hiera('enable_load_balancer', true),
- $step = hiera('step'),
+ $certificates_specs = {},
+ $certmonger_ca = hiera('certmonger_ca', 'local'),
+ $enable_load_balancer = hiera('enable_load_balancer', true),
+ $generate_service_certificates = hiera('generate_service_certificates', false),
+ $step = hiera('step'),
) {
-
if $step >= 1 {
if $enable_load_balancer {
+ if str2bool($generate_service_certificates) {
+ include ::certmonger
+ # This is only needed for certmonger's local CA. For any other CA this
+ # operation (trusting the CA) should be done by the deployer.
+ if $certmonger_ca == 'local' {
+ class { '::tripleo::certmonger::ca::local':
+ notify => Class['::tripleo::haproxy']
+ }
+ }
+
+ Certmonger_certificate {
+ ca => $certmonger_ca,
+ ensure => 'present',
+ wait => true,
+ require => Class['::certmonger'],
+ }
+ create_resources('::tripleo::certmonger::haproxy', $certificates_specs)
+ }
+
include ::tripleo::haproxy
}
}
diff --git a/manifests/profile/base/heat.pp b/manifests/profile/base/heat.pp
index 0fc30d8..dcf0f21 100644
--- a/manifests/profile/base/heat.pp
+++ b/manifests/profile/base/heat.pp
@@ -18,29 +18,38 @@
#
# === Parameters
#
-# [*step*]
-# (Optional) The current step in deployment. See tripleo-heat-templates
-# for more details.
-# Defaults to hiera('step')
-#
-# [*notification_driver*]
-# (Optional) Heat notification driver to use.
-# Defaults to 'messaging'
-#
-# [*bootstrap_master*]
-# (Optional) The hostname of the node responsible for bootstrapping
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
# Defaults to downcase(hiera('bootstrap_nodeid'))
#
# [*manage_db_purge*]
# (Optional) Whether keystone token flushing should be enabled
# Defaults to hiera('keystone_enable_db_purge', true)
#
+# [*notification_driver*]
+# (Optional) Heat notification driver to use.
+# Defaults to 'messaging'
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
class tripleo::profile::base::heat (
- $step = hiera('step'),
+ $bootstrap_node = downcase(hiera('bootstrap_nodeid')),
+ $manage_db_purge = hiera('heat_enable_db_purge', true),
$notification_driver = 'messaging',
- $bootstrap_master = downcase(hiera('bootstrap_nodeid')),
- $manage_db_purge = hiera('heat_enable_db_purge', true),
+ $step = hiera('step'),
) {
+ # Domain resources will be created at step5 on the bootstrap_node so we
+ # configure heat.conf at step3 and 4 but actually create the domain later.
+ if $step == 3 or $step == 4 {
+ class { '::heat::keystone::domain':
+ manage_domain => false,
+ manage_user => false,
+ manage_role => false,
+ }
+ }
if $step >= 4 {
class { '::heat' :
@@ -53,7 +62,7 @@ class tripleo::profile::base::heat (
if $manage_db_purge {
include ::heat::cron::purge_deleted
}
- if $bootstrap_master == $::hostname {
+ if $bootstrap_node == $::hostname {
# Class ::heat::keystone::domain has to run on bootstrap node
# because it creates DB entities via API calls.
include ::heat::keystone::domain
diff --git a/manifests/profile/base/heat/api.pp b/manifests/profile/base/heat/api.pp
index 67a0bfc..68de12b 100644
--- a/manifests/profile/base/heat/api.pp
+++ b/manifests/profile/base/heat/api.pp
@@ -24,9 +24,8 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::heat::api (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
-
if $step >= 4 {
include ::tripleo::profile::base::heat
include ::heat::api
diff --git a/manifests/profile/base/heat/api_cfn.pp b/manifests/profile/base/heat/api_cfn.pp
index 2813826..7c80fc6 100644
--- a/manifests/profile/base/heat/api_cfn.pp
+++ b/manifests/profile/base/heat/api_cfn.pp
@@ -24,9 +24,8 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::heat::api_cfn (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
-
if $step >= 4 {
include ::tripleo::profile::base::heat
include ::heat::api_cfn
diff --git a/manifests/profile/base/heat/api_cloudwatch.pp b/manifests/profile/base/heat/api_cloudwatch.pp
index b2adf92..6362275 100644
--- a/manifests/profile/base/heat/api_cloudwatch.pp
+++ b/manifests/profile/base/heat/api_cloudwatch.pp
@@ -24,9 +24,8 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::heat::api_cloudwatch (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
-
if $step >= 4 {
include ::tripleo::profile::base::heat
include ::heat::api_cloudwatch
diff --git a/manifests/profile/base/heat/engine.pp b/manifests/profile/base/heat/engine.pp
index b48837c..32a711f 100644
--- a/manifests/profile/base/heat/engine.pp
+++ b/manifests/profile/base/heat/engine.pp
@@ -18,9 +18,9 @@
#
# === Parameters
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to undef
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
@@ -28,9 +28,14 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::heat::engine (
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
if $step >= 3 and $sync_db {
include ::heat::db::mysql
diff --git a/manifests/profile/base/horizon.pp b/manifests/profile/base/horizon.pp
new file mode 100644
index 0000000..be07c0e
--- /dev/null
+++ b/manifests/profile/base/horizon.pp
@@ -0,0 +1,50 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::horizon
+#
+# Horizon profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::horizon (
+ $step = hiera('step'),
+) {
+ if $step >= 4 {
+ # Horizon
+ include ::apache::mod::remoteip
+ include ::apache::mod::status
+ if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
+ $_profile_support = 'cisco'
+ } else {
+ $_profile_support = 'None'
+ }
+ $neutron_options = {'profile_support' => $_profile_support }
+ $memcached_ipv6 = hiera('memcached_ipv6', false)
+ if $memcached_ipv6 {
+ $horizon_memcached_servers = hiera('memcached_node_ips_v6', '[::1]')
+ } else {
+ $horizon_memcached_servers = hiera('memcached_node_ips', '127.0.0.1')
+ }
+ class { '::horizon':
+ cache_server_ip => $horizon_memcached_servers,
+ neutron_options => $neutron_options,
+ }
+ }
+}
diff --git a/manifests/profile/base/ironic.pp b/manifests/profile/base/ironic.pp
new file mode 100644
index 0000000..f098d37
--- /dev/null
+++ b/manifests/profile/base/ironic.pp
@@ -0,0 +1,49 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::ironic
+#
+# Ironic profile for TripleO
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*step*]
+# (Optional) The current step of the deployment
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::ironic (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
+) {
+ # Database is accessed by both API and conductor, hence it's here.
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ if $step >= 3 and $sync_db {
+ include ::ironic::db::mysql
+ }
+
+ if $step >= 4 or ($step >= 3 and $sync_db) {
+ class { '::ironic':
+ sync_db => $sync_db,
+ }
+ }
+}
diff --git a/manifests/profile/base/ironic/api.pp b/manifests/profile/base/ironic/api.pp
new file mode 100644
index 0000000..020cacb
--- /dev/null
+++ b/manifests/profile/base/ironic/api.pp
@@ -0,0 +1,33 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::ironic::conductor
+#
+# Ironic API profile for TripleO
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step of the deployment
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::ironic::api (
+ $step = hiera('step'),
+) {
+ include ::tripleo::profile::base::ironic
+
+ if $step >= 4 {
+ include ::ironic::api
+ }
+}
diff --git a/manifests/profile/base/ironic/conductor.pp b/manifests/profile/base/ironic/conductor.pp
new file mode 100644
index 0000000..2cb61fb
--- /dev/null
+++ b/manifests/profile/base/ironic/conductor.pp
@@ -0,0 +1,36 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::ironic::conductor
+#
+# Ironic conductor profile for TripleO
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step of the deployment
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::ironic::conductor (
+ $step = hiera('step'),
+) {
+ include ::tripleo::profile::base::ironic
+
+ if $step >= 4 {
+ include ::ironic::drivers::deploy
+ include ::ironic::drivers::ipmi
+ include ::ironic::drivers::pxe
+ include ::ironic::conductor
+ }
+}
diff --git a/manifests/profile/base/keepalived.pp b/manifests/profile/base/keepalived.pp
index af7c095..f2063d6 100644
--- a/manifests/profile/base/keepalived.pp
+++ b/manifests/profile/base/keepalived.pp
@@ -18,25 +18,23 @@
#
# === Parameters
#
+# [*enable_load_balancer*]
+# (Optional) Whether or not loadbalancer is enabled.
+# Defaults to hiera('enable_load_balancer', true).
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*enable_load_balancer*]
-# (Optional) Whether or not loadbalancer is enabled.
-# Defaults to hiera('enable_load_balancer', true).
-#
class tripleo::profile::base::keepalived (
$enable_load_balancer = hiera('enable_load_balancer', true),
$step = hiera('step'),
) {
-
if $step >= 1 {
if $enable_load_balancer and hiera('enable_keepalived', true){
include ::tripleo::keepalived
}
}
-
}
diff --git a/manifests/profile/base/kernel.pp b/manifests/profile/base/kernel.pp
new file mode 100644
index 0000000..df13a98
--- /dev/null
+++ b/manifests/profile/base/kernel.pp
@@ -0,0 +1,30 @@
+# Copyright 2016 Red Hat, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::kernel
+#
+# Load and configure Kernel modules.
+#
+class tripleo::profile::base::kernel {
+
+ if hiera('kernel_modules', undef) {
+ create_resources(kmod::load, hiera('kernel_modules'), { })
+ }
+ if hiera('sysctl_settings', undef) {
+ create_resources(sysctl::value, hiera('sysctl_settings'), { })
+ }
+ Exec <| tag == 'kmod::load' |> -> Sysctl <| |>
+
+}
diff --git a/manifests/profile/base/keystone.pp b/manifests/profile/base/keystone.pp
index 706b78f..d8c8e24 100644
--- a/manifests/profile/base/keystone.pp
+++ b/manifests/profile/base/keystone.pp
@@ -18,17 +18,9 @@
#
# === Parameters
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
-#
-# [*manage_roles*]
-# (Optional) whether to create keystone admin role
-# Defaults to true
-#
-# [*manage_endpoint*]
-# (Optional) Whether to create keystone endpoints
-# Defaults to true
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
#
# [*manage_db_purge*]
# (Optional) Whether keystone token flushing should be enabled
@@ -40,12 +32,19 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::keystone (
- $sync_db = true,
- $manage_roles = true,
- $manage_endpoint = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$manage_db_purge = hiera('keystone_enable_db_purge', true),
$step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ $manage_roles = true
+ $manage_endpoint = true
+ } else {
+ $sync_db = false
+ $manage_roles = false
+ $manage_endpoint = false
+ }
if $step >= 3 and $sync_db {
include ::keystone::db::mysql
@@ -68,34 +67,6 @@ class tripleo::profile::base::keystone (
include ::keystone::endpoint
}
- #TODO: need a cleanup-keystone-tokens.sh solution here
- file { [ '/etc/keystone/ssl', '/etc/keystone/ssl/certs', '/etc/keystone/ssl/private' ]:
- ensure => 'directory',
- owner => 'keystone',
- group => 'keystone',
- require => Package['keystone'],
- }
- file { '/etc/keystone/ssl/certs/signing_cert.pem':
- content => hiera('keystone_signing_certificate'),
- owner => 'keystone',
- group => 'keystone',
- notify => Service[$::apache::params::service_name],
- require => File['/etc/keystone/ssl/certs'],
- }
- file { '/etc/keystone/ssl/private/signing_key.pem':
- content => hiera('keystone_signing_key'),
- owner => 'keystone',
- group => 'keystone',
- notify => Service[$::apache::params::service_name],
- require => File['/etc/keystone/ssl/private'],
- }
- file { '/etc/keystone/ssl/certs/ca.pem':
- content => hiera('keystone_ca_certificate'),
- owner => 'keystone',
- group => 'keystone',
- notify => Service[$::apache::params::service_name],
- require => File['/etc/keystone/ssl/certs'],
- }
}
if $step >= 5 and $manage_db_purge {
diff --git a/manifests/profile/base/manila/api.pp b/manifests/profile/base/manila/api.pp
index c1188ec..9a3a314 100644
--- a/manifests/profile/base/manila/api.pp
+++ b/manifests/profile/base/manila/api.pp
@@ -24,9 +24,8 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::manila::api (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
-
if $step >= 4 {
include ::manila
include ::manila::api
diff --git a/manifests/profile/base/manila/scheduler.pp b/manifests/profile/base/manila/scheduler.pp
index b6d7593..8581187 100644
--- a/manifests/profile/base/manila/scheduler.pp
+++ b/manifests/profile/base/manila/scheduler.pp
@@ -18,19 +18,24 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*sync_db*]
-# (Optiona) Whether to run db sync.
-# Defaults to true.
-#
class tripleo::profile::base::manila::scheduler (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$step = hiera('step'),
- $sync_db = true,
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
if $step >= 3 and $sync_db {
include ::manila::db::mysql
diff --git a/manifests/profile/base/manila/share.pp b/manifests/profile/base/manila/share.pp
index 932e013..ed64b29 100644
--- a/manifests/profile/base/manila/share.pp
+++ b/manifests/profile/base/manila/share.pp
@@ -24,12 +24,10 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::manila::share (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
-
if $step >= 4 {
include ::manila::share
}
-
}
diff --git a/manifests/profile/base/memcached.pp b/manifests/profile/base/memcached.pp
index 54d12c8..72a91e2 100644
--- a/manifests/profile/base/memcached.pp
+++ b/manifests/profile/base/memcached.pp
@@ -23,11 +23,9 @@
# for more details.
# Defaults to hiera('step')
#
-#
class tripleo::profile::base::memcached (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
-
if $step >= 1 {
include ::memcached
}
diff --git a/manifests/profile/base/mistral.pp b/manifests/profile/base/mistral.pp
new file mode 100644
index 0000000..0c41193
--- /dev/null
+++ b/manifests/profile/base/mistral.pp
@@ -0,0 +1,50 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::mistral
+#
+# Mistral profile for tripleo
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::mistral (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
+) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ if $step >= 3 and $sync_db {
+ include ::mistral::db::mysql
+ }
+
+ if $step >= 4 or ($step >= 3 and $sync_db) {
+ include ::mistral
+ include ::mistral::config
+ include ::mistral::client
+ include ::mistral::db::sync
+ }
+}
diff --git a/manifests/profile/base/mistral/api.pp b/manifests/profile/base/mistral/api.pp
new file mode 100644
index 0000000..50708f1
--- /dev/null
+++ b/manifests/profile/base/mistral/api.pp
@@ -0,0 +1,46 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::mistral::api
+#
+# Mistral API profile for tripleo
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::mistral::api (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
+) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::mistral
+
+ if $step >= 4 or ($step >= 3 and $sync_db) {
+ include ::mistral::api
+ }
+}
+
diff --git a/manifests/profile/base/mistral/engine.pp b/manifests/profile/base/mistral/engine.pp
new file mode 100644
index 0000000..b2d8864
--- /dev/null
+++ b/manifests/profile/base/mistral/engine.pp
@@ -0,0 +1,46 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::mistral::engine
+#
+# Mistral Engine profile for tripleo
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::mistral::engine (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
+) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::mistral
+
+ if $step >= 4 or ($step >= 3 and $sync_db) {
+ include ::mistral::engine
+ }
+
+}
diff --git a/manifests/profile/base/mistral/executor.pp b/manifests/profile/base/mistral/executor.pp
new file mode 100644
index 0000000..8e3f2c9
--- /dev/null
+++ b/manifests/profile/base/mistral/executor.pp
@@ -0,0 +1,45 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::mistral::executor
+#
+# Mistral Executor profile for tripleo
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::mistral::executor (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
+) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::mistral
+
+ if $step >= 4 or ($step >= 3 and $sync_db) {
+ include ::mistral::executor
+ }
+}
diff --git a/manifests/profile/base/monitoring/fluentd.pp b/manifests/profile/base/monitoring/fluentd.pp
new file mode 100644
index 0000000..8160452
--- /dev/null
+++ b/manifests/profile/base/monitoring/fluentd.pp
@@ -0,0 +1,39 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::monitoring::fluentd
+#
+# FluentD configuration for TripleO
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) String. The current step of the deployment
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::monitoring::fluentd (
+ $step = hiera('step', undef)
+) {
+ if $step == undef or $step >= 3 {
+ include ::fluentd
+
+ ::fluentd::plugin { 'rubygem-fluent-plugin-add':
+ plugin_provider => 'yum',
+ }
+
+ ::fluentd::plugin { 'rubygem-fluent-plugin-elasticsearch':
+ plugin_provider => 'yum',
+ }
+ }
+}
diff --git a/manifests/profile/base/monitoring/rabbitmq.pp b/manifests/profile/base/monitoring/rabbitmq.pp
new file mode 100644
index 0000000..cfd5016
--- /dev/null
+++ b/manifests/profile/base/monitoring/rabbitmq.pp
@@ -0,0 +1,54 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::sensu::rabbitmq
+#
+# RabbitMQ configuration for Sensu stack for TripleO
+#
+# === Parameters
+#
+# [*password*]
+# (Optional) String. Password to connect to RabbitMQ server
+# Defaults to hiera('rabbit_password', undef)
+#
+# [*user*]
+# (Optional) String. Username to connect to RabbitMQ server
+# Defaults to hiera('rabbit_username', 'sensu')
+#
+# [*vhost*]
+# (Optional) String. RabbitMQ vhost to be used by Sensu
+# Defaults to '/sensu'
+#
+class tripleo::profile::base::monitoring::rabbitmq (
+ $password = hiera('monitoring_rabbitmq_password', undef),
+ $user = hiera('monitoring_rabbitmq_username', 'sensu'),
+ $vhost = hiera('monitoring_rabbitmq_vhost', '/sensu'),
+) {
+ rabbitmq_vhost { 'sensu-rabbit-vhost':
+ ensure => present,
+ name => $vhost
+ }
+
+ rabbitmq_user { 'sensu-rabbit-user':
+ name => $user,
+ password => $password,
+ tags => ['monitoring']
+ }
+
+ rabbitmq_user_permissions { "${user}@${vhost}":
+ configure_permission => '.*',
+ read_permission => '.*',
+ write_permission => '.*',
+ }
+}
diff --git a/manifests/profile/base/monitoring/sensu.pp b/manifests/profile/base/monitoring/sensu.pp
new file mode 100644
index 0000000..a6872b3
--- /dev/null
+++ b/manifests/profile/base/monitoring/sensu.pp
@@ -0,0 +1,34 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::monitoring::sensu
+#
+# Sensu configuration for TripleO
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) String. The current step of the deployment
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::monitoring::sensu (
+ $step = hiera('step', undef),
+) {
+ if $step == undef or $step >= 3 {
+ include ::sensu
+ package { 'osops-tools-monitoring-oschecks':
+ ensure => 'present'
+ }
+ }
+}
diff --git a/manifests/profile/base/monitoring/uchiwa.pp b/manifests/profile/base/monitoring/uchiwa.pp
new file mode 100644
index 0000000..2674b5f
--- /dev/null
+++ b/manifests/profile/base/monitoring/uchiwa.pp
@@ -0,0 +1,31 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::monitoring::uchiwa
+#
+# Monitoring dashboards for TripleO
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) String. The current step of the deployment
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::monitoring::uchiwa (
+ $step = hiera('step', undef),
+) {
+ if $step == undef or $step >= 3 {
+ include ::uchiwa
+ }
+}
diff --git a/manifests/profile/base/neutron.pp b/manifests/profile/base/neutron.pp
index d5efa81..7b07b1f 100644
--- a/manifests/profile/base/neutron.pp
+++ b/manifests/profile/base/neutron.pp
@@ -18,19 +18,14 @@
#
# === Parameters
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
-#
# [*step*]
# (Optional) The current step of the deployment
# Defaults to hiera('step')
#
class tripleo::profile::base::neutron (
- $sync_db = true,
- $step = hiera('step'),
+ $step = hiera('step'),
) {
- if hiera('step') >= 4 or ( hiera('step') >= 3 and $sync_db ) {
+ if $step >= 3 {
include ::neutron
include ::neutron::config
}
diff --git a/manifests/profile/base/neutron/agents/midonet.pp b/manifests/profile/base/neutron/agents/midonet.pp
new file mode 100644
index 0000000..f2ce94a
--- /dev/null
+++ b/manifests/profile/base/neutron/agents/midonet.pp
@@ -0,0 +1,52 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::neutron::agents::midonet
+#
+# Midonet Neutron agent profile
+#
+# === Parameters
+#
+# [*midonet_libvirt_qemu_data*]
+# (Optional) qemu.conf data for midonet.
+# Defaults to hiera('midonet_libvirt_qemu_data')
+#
+# [*neutron_api_node_ips*]
+# (Optional) The IPs of the Neutron API hosts
+# Defaults to hiera('neutron_api_node_ips')
+#
+# [*step*]
+# (Optional) The current step of the deployment
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::neutron::agents::midonet (
+ $midonet_libvirt_qemu_data = hiera('midonet_libvirt_qemu_data', ''),
+ $neutron_api_node_ips = hiera('neutron_api_node_ips', ''),
+ $step = hiera('step'),
+) {
+ if $step >= 4 {
+ # TODO(devvesa) provide non-controller ips for these services
+ class { '::tripleo::network::midonet::agent':
+ zookeeper_servers => $neutron_api_node_ips,
+ cassandra_seeds => $neutron_api_node_ips
+ }
+
+ if defined(Service['libvirt']) {
+ file { '/etc/libvirt/qemu.conf':
+ ensure => present,
+ content => hiera('midonet_libvirt_qemu_data')
+ }
+ }
+ }
+}
diff --git a/manifests/profile/base/neutron/agents/nuage.pp b/manifests/profile/base/neutron/agents/nuage.pp
new file mode 100644
index 0000000..80beceb
--- /dev/null
+++ b/manifests/profile/base/neutron/agents/nuage.pp
@@ -0,0 +1,58 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::neutron::agents::nuage
+#
+# Nuage Neutron agent profile
+#
+# === Parameters
+#
+# [*nova_auth_ip*]
+# (Optional) Nova auth IP
+# Defaults to hiera('keystone_public_api_virtual_ip')
+#
+# [*nova_metadata_ip*]
+# (Optional) Nova metadata node IPs
+# Defaults to hiera('nova_metadata_node_ips')
+#
+# [*nova_os_password*]
+# (Optional) Nova password
+# Defaults to hiera('nova_password')
+#
+# [*nova_os_tenant_name*]
+# (Optional) Nova tenant name
+# Defaults to hiera('nova_os_tenant_name')
+#
+# [*step*]
+# (Optional) The current step of the deployment
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::neutron::agents::nuage (
+ $nova_auth_ip = hiera('keystone_public_api_virtual_ip', ''),
+ $nova_metadata_ip = hiera('nova_metadata_node_ips', ''),
+ $nova_os_password = hiera('nova_password', ''),
+ $nova_os_tenant_name = hiera('nova::api::admin_tenant_name', ''),
+ $step = hiera('step'),
+) {
+ if $step >= 4 {
+ include ::nuage::vrs
+
+ class { '::nuage::metadataagent':
+ nova_os_tenant_name => $nova_os_tenant_name,
+ nova_os_password => $nova_os_password,
+ nova_metadata_ip => $nova_metadata_ip,
+ nova_auth_ip => $nova_auth_ip,
+ }
+ }
+}
diff --git a/manifests/profile/base/neutron/dhcp.pp b/manifests/profile/base/neutron/dhcp.pp
index 180fd37..24b1a35 100644
--- a/manifests/profile/base/neutron/dhcp.pp
+++ b/manifests/profile/base/neutron/dhcp.pp
@@ -18,31 +18,18 @@
#
# === Parameters
#
-# [*neutron_dnsmasq_options*]
-# (Optional)
-# Defaults to hiera('neutron_dnsmasq_options')
-#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
class tripleo::profile::base::neutron::dhcp (
- $neutron_dnsmasq_options = hiera('neutron_dnsmasq_options', ''),
- $step = hiera('step'),
+ $step = hiera('step'),
) {
if $step >= 4 {
include ::tripleo::profile::base::neutron
include ::neutron::agents::dhcp
- file { '/etc/neutron/dnsmasq-neutron.conf':
- content => $neutron_dnsmasq_options,
- owner => 'neutron',
- group => 'neutron',
- notify => Service['neutron-dhcp-service'],
- require => Package['neutron'],
- }
-
Service<| title == 'neutron-server' |> -> Service <| title == 'neutron-dhcp' |>
}
}
diff --git a/manifests/profile/base/neutron/l3.pp b/manifests/profile/base/neutron/l3.pp
index 2b57555..14ffa82 100644
--- a/manifests/profile/base/neutron/l3.pp
+++ b/manifests/profile/base/neutron/l3.pp
@@ -18,17 +18,13 @@
#
# === Parameters
#
-# [*neutron_ovs_use_veth*]
-# (Optional) Whether to set ovs_use_veth (for older kernel support)
-# Defaults to hiera('neutron_ovs_use_veth', false)
-#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
class tripleo::profile::base::neutron::l3 (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
if $step >= 4 {
include ::tripleo::profile::base::neutron
diff --git a/manifests/profile/base/neutron/metadata.pp b/manifests/profile/base/neutron/metadata.pp
index d7b4c99..4cc6748 100644
--- a/manifests/profile/base/neutron/metadata.pp
+++ b/manifests/profile/base/neutron/metadata.pp
@@ -24,7 +24,7 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::neutron::metadata (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
if $step >= 4 {
include ::tripleo::profile::base::neutron
diff --git a/manifests/profile/base/neutron/midonet.pp b/manifests/profile/base/neutron/midonet.pp
index 972856f..9104cc3 100644
--- a/manifests/profile/base/neutron/midonet.pp
+++ b/manifests/profile/base/neutron/midonet.pp
@@ -18,75 +18,67 @@
#
# === Parameters
#
-# [*vip*]
-# (Optional) Public Virtual IP Address for this cloud
-# Defaults to hiera('public_virtual_ip')
+# [*admin_password*]
+# (Optional) Admin Password for Midonet API
+# Defaults to hiera('admin_password')
+#
+# [*bind_address*]
+# (Optional) The address to bind Cassandra and Midonet API to
+# Defaults to hiera('neutron::bind_host')
#
# [*keystone_admin_token*]
# (Optional) The Keystone Admin Token
# Defaults to hiera('keystone::admin_token')
#
-# [*zookeeper_client_ip*]
-# (Optional) The IP of the Zookeeper Client
-# Defaults to hiera('neutron::bind_host')
-#
-# [*zookeeper_hostnames*]
-# (Optional) The IPs of the Zookeeper Servers
-# Defaults to hiera('controller_node_names')
-#
# [*neutron_api_node_ips*]
# (Optional) The IPs of the Neutron API hosts
# Defaults to hiera('neutron_api_node_ips')
#
-# [*bind_address*]
-# (Optional) The address to bind Cassandra and Midonet API to
-# Defaults to hiera('neutron::bind_host')
-#
-# [*admin_password*]
-# (Optional) Admin Password for Midonet API
-# Defaults to hiera('admin_password')
-#
-# [*zk_on_controller*]
-# (Optional) Whether to put zookeeper on the controllers
-# Defaults to hiera('enable_zookeeper_on_controller')
-#
-# [*neutron_auth_tenant*]
-# (Optional) Tenant to use for Neutron authentication
-# Defaults to hiera('neutron::server::auth_tenant')
-#
# [*neutron_auth_password*]
# (Optional) Password to use for Neutron authentication
-# Defaults to hiera('neutron::server::auth_password')
+# Defaults to hiera('neutron::server::password')
#
-# [*step*]
-# (Optional) The current step in deployment. See tripleo-heat-templates
-# for more details.
-# Defaults to hiera('step')
+# [*neutron_auth_tenant*]
+# (Optional) Tenant to use for Neutron authentication
+# Defaults to hiera('neutron::server::project_name')
#
# [*step*]
# (Optional) The current step of the deployment
# Defaults to hiera('step')
#
+# [*vip*]
+# (Optional) Public Virtual IP Address for this cloud
+# Defaults to hiera('public_virtual_ip')
+#
+# [*zk_on_controller*]
+# (Optional) Whether to put zookeeper on the controllers
+# Defaults to hiera('enable_zookeeper_on_controller')
+#
+# [*zookeeper_client_ip*]
+# (Optional) The IP of the Zookeeper Client
+# Defaults to hiera('neutron::bind_host')
+#
+# [*zookeeper_hostnames*]
+# (Optional) The IPs of the Zookeeper Servers
+# Defaults to hiera('controller_node_names')
+#
class tripleo::profile::base::neutron::midonet (
- $vip = hiera('public_virtual_ip'),
+ $admin_password = hiera('admin_password', ''),
+ $bind_address = hiera('neutron::bind_host', ''),
$keystone_admin_token = hiera('keystone::admin_token', ''),
- $zookeeper_client_ip = hiera('neutron::bind_host', ''),
- $zookeeper_hostnames = hiera('controller_node_names', ''),
$neutron_api_node_ips = hiera('neutron_api_node_ips', ''),
- $bind_address = hiera('neutron::bind_host', ''),
- $admin_password = hiera('admin_password', ''),
- $zk_on_controller = hiera('enable_zookeeper_on_controller', ''),
- $neutron_auth_tenant = hiera('neutron::server::auth_tenant', ''),
- $neutron_auth_password = hiera('neutron::server::auth_password', ''),
+ $neutron_auth_password = hiera('neutron::server::password', ''),
+ $neutron_auth_tenant = hiera('neutron::server::project_name', ''),
$step = hiera('step'),
+ $vip = hiera('public_virtual_ip'),
+ $zk_on_controller = hiera('enable_zookeeper_on_controller', ''),
+ $zookeeper_client_ip = hiera('neutron::bind_host', ''),
+ $zookeeper_hostnames = hiera('controller_node_names', ''),
) {
-
include ::tripleo::profile::base::neutron
+ include ::tripleo::profile::base::neutron::agents::midonet
if $step >= 4 {
- class { '::neutron':
- service_plugins => []
- }
# Run zookeeper in the controller if configured
if zk_on_controller {
@@ -106,11 +98,6 @@ class tripleo::profile::base::neutron::midonet (
}
}
- class {'::tripleo::network::midonet::agent':
- zookeeper_servers => $neutron_api_node_ips,
- cassandra_seeds => $neutron_api_node_ips
- }
-
class {'::tripleo::network::midonet::api':
zookeeper_servers => $neutron_api_node_ips,
vip => $vip,
diff --git a/manifests/profile/base/neutron/ml2.pp b/manifests/profile/base/neutron/ml2.pp
deleted file mode 100644
index 59c74c8..0000000
--- a/manifests/profile/base/neutron/ml2.pp
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2016 Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-# == Class: tripleo::profile::base::neutron::ml2
-#
-# Neutron ML2 driver profile for tripleo
-#
-# === Parameters
-#
-# [*mechanism_drivers*]
-# (Optional) The mechanism drivers to use with the Ml2 plugin
-# Defaults to hiera('neutron::plugins::ml2::mechanism_drivers')
-#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
-#
-# [*step*]
-# (Optional) The current step in deployment. See tripleo-heat-templates
-# for more details.
-# Defaults to hiera('step')
-#
-class tripleo::profile::base::neutron::ml2 (
- $mechanism_drivers = hiera('neutron::plugins::ml2::mechanism_drivers'),
- $sync_db = true,
- $step = hiera('step'),
-) {
-
- warning('This class is going is deprecated and will be removed very soon, replaced by tripleo::profile::base::neutron::plugins::ml2.')
-
- if $step >= 4 or ( $step >= 3 and $sync_db ) {
- include ::neutron::plugins::ml2
- include ::tripleo::profile::base::neutron
-
- if 'cisco_n1kv' in $mechanism_drivers {
- include ::tripleo::profile::base::neutron::n1k
- }
-
- if 'cisco_ucsm' in $mechanism_drivers {
- include ::neutron::plugins::ml2::cisco::ucsm
- }
-
- if 'cisco_nexus' in $mechanism_drivers {
- include ::neutron::plugins::ml2::cisco::nexus
- include ::neutron::plugins::ml2::cisco::type_nexus_vxlan
- }
-
- if 'bsn_ml2' in $mechanism_drivers {
- include ::neutron::plugins::ml2::bigswitch::restproxy
- include ::neutron::agents::bigswitch
- }
- }
-}
diff --git a/manifests/profile/base/neutron/ovs.pp b/manifests/profile/base/neutron/ovs.pp
index f801511..a4e0cd3 100644
--- a/manifests/profile/base/neutron/ovs.pp
+++ b/manifests/profile/base/neutron/ovs.pp
@@ -26,7 +26,6 @@
class tripleo::profile::base::neutron::ovs(
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::neutron
if $step >= 4 {
diff --git a/manifests/profile/base/neutron/plugins/ml2.pp b/manifests/profile/base/neutron/plugins/ml2.pp
index b462e1b..c89bc02 100644
--- a/manifests/profile/base/neutron/plugins/ml2.pp
+++ b/manifests/profile/base/neutron/plugins/ml2.pp
@@ -18,28 +18,34 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*mechanism_drivers*]
# (Optional) The mechanism drivers to use with the Ml2 plugin
# Defaults to hiera('neutron::plugins::ml2::mechanism_drivers')
#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
-#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
class tripleo::profile::base::neutron::plugins::ml2 (
- $mechanism_drivers = hiera('neutron::plugins::ml2::mechanism_drivers'),
- $sync_db = true,
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $mechanism_drivers = hiera('neutron::plugins::ml2::mechanism_drivers'),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::neutron
if $step >= 4 or ( $step >= 3 and $sync_db ) {
include ::neutron::plugins::ml2
- include ::tripleo::profile::base::neutron
if 'cisco_n1kv' in $mechanism_drivers {
include ::tripleo::profile::base::neutron::n1k
@@ -56,7 +62,6 @@ class tripleo::profile::base::neutron::plugins::ml2 (
if 'bsn_ml2' in $mechanism_drivers {
include ::neutron::plugins::ml2::bigswitch::restproxy
- include ::neutron::agents::bigswitch
}
}
}
diff --git a/manifests/profile/base/neutron/plugins/nuage.pp b/manifests/profile/base/neutron/plugins/nuage.pp
index 20f93db..0843ec4 100644
--- a/manifests/profile/base/neutron/plugins/nuage.pp
+++ b/manifests/profile/base/neutron/plugins/nuage.pp
@@ -16,19 +16,27 @@
#
# Nuage Neutron profile for tripleo
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
-#
class tripleo::profile::base::neutron::plugins::nuage (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::neutron
+
if $step >= 4 or ( $step >= 3 and $sync_db ) {
include ::neutron::plugins::nuage
}
diff --git a/manifests/profile/base/neutron/plugins/opencontrail.pp b/manifests/profile/base/neutron/plugins/opencontrail.pp
index 1fcb627..fbf46e7 100644
--- a/manifests/profile/base/neutron/plugins/opencontrail.pp
+++ b/manifests/profile/base/neutron/plugins/opencontrail.pp
@@ -16,19 +16,27 @@
#
# Opencontrail Neutron profile for tripleo
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
-#
class tripleo::profile::base::neutron::plugins::opencontrail (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::neutron
+
if $step >= 4 or ( $step >= 3 and $sync_db ) {
include ::neutron::plugins::opencontrail
}
diff --git a/manifests/profile/base/neutron/plugins/plumgrid.pp b/manifests/profile/base/neutron/plugins/plumgrid.pp
index 7f645b9..bc73d29 100644
--- a/manifests/profile/base/neutron/plugins/plumgrid.pp
+++ b/manifests/profile/base/neutron/plugins/plumgrid.pp
@@ -18,19 +18,27 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
-#
class tripleo::profile::base::neutron::plugins::plumgrid (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::neutron
+
if $step >= 4 or ( $step >= 3 and $sync_db ) {
include ::neutron::plugins::plumgrid
}
diff --git a/manifests/profile/base/neutron/server.pp b/manifests/profile/base/neutron/server.pp
index 320f83c..5a1b377 100644
--- a/manifests/profile/base/neutron/server.pp
+++ b/manifests/profile/base/neutron/server.pp
@@ -18,24 +18,46 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
class tripleo::profile::base::neutron::server (
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::neutron
- if $step >= 2 {
+ if $step >= 3 and $sync_db {
include ::neutron::db::mysql
}
- if $step >= 4 {
+ # We start neutron-server on the bootstrap node first, because
+ # it will try to populate tables and we need to make sure this happens
+ # before it starts on other nodes
+ if $step >= 4 and $sync_db {
include ::neutron::server::notifications
- include ::neutron::server
+ # We need to override the hiera value neutron::server::sync_db which is set
+ # to true
+ class { '::neutron::server':
+ sync_db => $sync_db,
+ }
+ }
+ if $step >= 5 and !$sync_db {
+ include ::neutron::server::notifications
+ class { '::neutron::server':
+ sync_db => $sync_db,
+ }
}
-
}
diff --git a/manifests/profile/base/nova.pp b/manifests/profile/base/nova.pp
index 66f0d7d..b43b8e8 100644
--- a/manifests/profile/base/nova.pp
+++ b/manifests/profile/base/nova.pp
@@ -18,27 +18,62 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*libvirt_enabled*]
+# (Optional) Whether or not Libvirt is enabled.
+# Defaults to false
+#
+# [*manage_migration*]
+# (Optional) Whether or not manage Nova Live migration
+# Defaults to false
+#
+# [*nova_compute_enabled*]
+# (Optional) Whether or not nova-compute is enabled.
+# Defaults to false
+#
# [*step*]
# (Optional) The current step of the deployment
# Defaults to hiera('step')
#
class tripleo::profile::base::nova (
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $libvirt_enabled = false,
+ $manage_migration = false,
+ $nova_compute_enabled = false,
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
if hiera('nova::use_ipv6', false) {
- $memcached_servers = suffix(hiera('memcache_node_ips_v6'), ':11211')
+ $memcache_servers = suffix(hiera('memcached_node_ips_v6'), ':11211')
} else {
- $memcached_servers = suffix(hiera('memcache_node_ips'), ':11211')
+ $memcache_servers = suffix(hiera('memcached_node_ips'), ':11211')
}
- if $step >= 3 {
+
+ if hiera('step') >= 4 or (hiera('step') >= 3 and $sync_db) {
include ::nova
- # TODO(emilien): once we merge https://review.openstack.org/#/c/325983/
- # let's override the value this way.
- warning('Overriding memcached_servers from puppet-tripleo until 325983 lands.')
- Nova {
- memcached_servers => $memcached_servers,
- }
include ::nova::config
+ class { '::nova::cache':
+ enabled => true,
+ backend => 'oslo_cache.memcache_pool',
+ memcache_servers => $memcache_servers,
+ }
+ }
+
+ if $step >= 4 {
+ if $manage_migration {
+ class { '::nova::migration::libvirt':
+ configure_libvirt => $libvirt_enabled,
+ configure_nova => $nova_compute_enabled,
+ }
+ }
}
+
}
diff --git a/manifests/profile/base/nova/api.pp b/manifests/profile/base/nova/api.pp
index 4064b1e..285e0b7 100644
--- a/manifests/profile/base/nova/api.pp
+++ b/manifests/profile/base/nova/api.pp
@@ -16,28 +16,30 @@
#
# Nova API profile for tripleo
#
-# === Parameters
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
# for more details.
# Defaults to hiera('step')
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
-#
class tripleo::profile::base::nova::api (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::nova
- if $step >= 2 and $sync_db {
+ if $step >= 3 and $sync_db {
include ::nova::db::mysql
include ::nova::db::mysql_api
- Exec<| title == 'galera-ready'|> -> Anchor['nova::db::begin']
}
if $step >= 4 or ($step >= 3 and $sync_db) {
@@ -47,5 +49,11 @@ class tripleo::profile::base::nova::api (
}
include ::nova::network::neutron
}
+
+ if $step >= 5 {
+ if hiera('nova_enable_db_purge', true) {
+ include ::nova::cron::archive_deleted_rows
+ }
+ }
}
diff --git a/manifests/profile/base/nova/compute.pp b/manifests/profile/base/nova/compute.pp
index 579b474..076996a 100644
--- a/manifests/profile/base/nova/compute.pp
+++ b/manifests/profile/base/nova/compute.pp
@@ -23,8 +23,13 @@
# for more details.
# Defaults to hiera('step')
#
+# [*cinder_nfs_backend*]
+# (Optional) Whether or not Cinder is backed by NFS.
+# Defaults to hiera('cinder_enable_nfs_backend', false)
+#
class tripleo::profile::base::nova::compute (
- $step = hiera('step'),
+ $step = hiera('step'),
+ $cinder_nfs_backend = hiera('cinder_enable_nfs_backend', false),
) {
if $step >= 4 {
@@ -33,9 +38,36 @@ class tripleo::profile::base::nova::compute (
# deploy basic bits for nova-compute
include ::nova::compute
+ # If Service['nova-conductor'] is in catalog, make sure we start it
+ # before nova-compute.
+ Service<| title == 'nova-conductor' |> -> Service['nova-compute']
# deploy bits to connect nova compute to neutron
include ::nova::network::neutron
+
+ # When utilising images for deployment, we need to reset the iSCSI initiator name to make it unique
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1244328
+ exec { 'reset-iscsi-initiator-name':
+ command => '/bin/echo InitiatorName=$(/usr/sbin/iscsi-iname) > /etc/iscsi/initiatorname.iscsi',
+ onlyif => '/usr/bin/test ! -f /etc/iscsi/.initiator_reset',
+ before => File['/etc/iscsi/.initiator_reset'],
+ }
+ file { '/etc/iscsi/.initiator_reset':
+ ensure => present,
+ }
+ }
+
+ # If NFS is used as a Cinder backend
+ if $cinder_nfs_backend {
+ ensure_packages('nfs-utils', { ensure => present })
+ Package['nfs-utils'] -> Service['nova-compute']
+ if str2bool($::selinux) {
+ selboolean { 'virt_use_nfs':
+ value => on,
+ persistent => true,
+ }
+ Selboolean['virt_use_nfs'] -> Package['nfs-utils']
+ }
}
}
diff --git a/manifests/profile/base/nova/compute/ironic.pp b/manifests/profile/base/nova/compute/ironic.pp
new file mode 100644
index 0000000..c0213fb
--- /dev/null
+++ b/manifests/profile/base/nova/compute/ironic.pp
@@ -0,0 +1,34 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::nova::compute::ironic
+#
+# Nova Compute Ironic profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::nova::compute::ironic (
+ $step = hiera('step'),
+) {
+ if $step >= 4 {
+ include ::tripleo::profile::base::nova::compute
+ include ::nova::compute::ironic
+ include ::nova::network::neutron
+ }
+}
diff --git a/manifests/profile/base/nova/compute/libvirt.pp b/manifests/profile/base/nova/compute/libvirt.pp
index 74af7fc..956f8ad 100644
--- a/manifests/profile/base/nova/compute/libvirt.pp
+++ b/manifests/profile/base/nova/compute/libvirt.pp
@@ -26,7 +26,6 @@
class tripleo::profile::base::nova::compute::libvirt (
$step = hiera('step'),
) {
-
if $step >= 4 {
include ::tripleo::profile::base::nova::compute
@@ -35,7 +34,7 @@ class tripleo::profile::base::nova::compute::libvirt (
$rbd_persistent_storage = hiera('rbd_persistent_storage', false)
if $rbd_ephemeral_storage or $rbd_persistent_storage {
$client_keys = hiera('ceph::profile::params::client_keys')
- $client_user = join(['client.', hiera('tripleo::profile::base::cinder::volume::rbd::cinder_rbd_user_name')])
+ $client_user = join(['client.', hiera('nova::compute::rbd::libvirt_rbd_user')])
class { '::nova::compute::rbd':
libvirt_rbd_secret_key => $client_keys[$client_user]['secret'],
}
diff --git a/manifests/profile/base/nova/conductor.pp b/manifests/profile/base/nova/conductor.pp
index 04c9d06..fa9f12b 100644
--- a/manifests/profile/base/nova/conductor.pp
+++ b/manifests/profile/base/nova/conductor.pp
@@ -26,10 +26,8 @@
class tripleo::profile::base::nova::conductor (
$step = hiera('step'),
) {
-
include ::tripleo::profile::base::nova
if $step >= 4 {
include ::nova::conductor
}
-
}
diff --git a/manifests/profile/base/nova/consoleauth.pp b/manifests/profile/base/nova/consoleauth.pp
index 442cf84..8ccfb8c 100644
--- a/manifests/profile/base/nova/consoleauth.pp
+++ b/manifests/profile/base/nova/consoleauth.pp
@@ -26,10 +26,8 @@
class tripleo::profile::base::nova::consoleauth (
$step = hiera('step'),
) {
-
if $step >= 4 {
include ::tripleo::profile::base::nova
include ::nova::consoleauth
}
-
}
diff --git a/manifests/profile/base/nova/libvirt.pp b/manifests/profile/base/nova/libvirt.pp
index 29ef372..889b80d 100644
--- a/manifests/profile/base/nova/libvirt.pp
+++ b/manifests/profile/base/nova/libvirt.pp
@@ -26,7 +26,6 @@
class tripleo::profile::base::nova::libvirt (
$step = hiera('step'),
) {
-
if $step >= 4 {
include ::tripleo::profile::base::nova
include ::nova::compute::libvirt::services
diff --git a/manifests/profile/base/nova/scheduler.pp b/manifests/profile/base/nova/scheduler.pp
index 13b4e82..3c9b2c2 100644
--- a/manifests/profile/base/nova/scheduler.pp
+++ b/manifests/profile/base/nova/scheduler.pp
@@ -26,11 +26,9 @@
class tripleo::profile::base::nova::scheduler (
$step = hiera('step'),
) {
-
if $step >= 4 {
include ::tripleo::profile::base::nova
include ::nova::scheduler
include ::nova::scheduler::filter
}
-
}
diff --git a/manifests/profile/base/nova/vncproxy.pp b/manifests/profile/base/nova/vncproxy.pp
index aa0cc7b..f654fef 100644
--- a/manifests/profile/base/nova/vncproxy.pp
+++ b/manifests/profile/base/nova/vncproxy.pp
@@ -26,10 +26,8 @@
class tripleo::profile::base::nova::vncproxy (
$step = hiera('step'),
) {
-
if $step >= 4 {
include ::tripleo::profile::base::nova
include ::nova::vncproxy
}
-
}
diff --git a/manifests/profile/base/pacemaker.pp b/manifests/profile/base/pacemaker.pp
new file mode 100644
index 0000000..2c70eab
--- /dev/null
+++ b/manifests/profile/base/pacemaker.pp
@@ -0,0 +1,86 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::pacemaker
+#
+# Pacemaker profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::pacemaker (
+ $step = hiera('step'),
+) {
+ Pcmk_resource <| |> {
+ tries => 10,
+ try_sleep => 3,
+ }
+
+ if $::hostname == downcase(hiera('bootstrap_nodeid')) {
+ $pacemaker_master = true
+ } else {
+ $pacemaker_master = false
+ }
+
+ $enable_fencing = str2bool(hiera('enable_fencing', false)) and $step >= 5
+
+ if $step >= 1 {
+ $pacemaker_cluster_members = downcase(regsubst(hiera('controller_node_names'), ',', ' ', 'G'))
+ $corosync_ipv6 = str2bool(hiera('corosync_ipv6', false))
+ if $corosync_ipv6 {
+ $cluster_setup_extras = { '--token' => hiera('corosync_token_timeout', 1000), '--ipv6' => '' }
+ } else {
+ $cluster_setup_extras = { '--token' => hiera('corosync_token_timeout', 1000) }
+ }
+ class { '::pacemaker':
+ hacluster_pwd => hiera('hacluster_pwd'),
+ } ->
+ class { '::pacemaker::corosync':
+ cluster_members => $pacemaker_cluster_members,
+ setup_cluster => $pacemaker_master,
+ cluster_setup_extras => $cluster_setup_extras,
+ }
+ class { '::pacemaker::stonith':
+ disable => !$enable_fencing,
+ }
+ if $enable_fencing {
+ include ::tripleo::fencing
+
+ # enable stonith after all Pacemaker resources have been created
+ Pcmk_resource<||> -> Class['tripleo::fencing']
+ Pcmk_constraint<||> -> Class['tripleo::fencing']
+ Exec <| tag == 'pacemaker_constraint' |> -> Class['tripleo::fencing']
+ # enable stonith after all fencing devices have been created
+ Class['tripleo::fencing'] -> Class['pacemaker::stonith']
+ }
+
+ # FIXME(gfidente): sets 200secs as default start timeout op
+ # param; until we can use pcmk global defaults we'll still
+ # need to add it to every resource which redefines op params
+ Pacemaker::Resource::Service {
+ op_params => 'start timeout=200s stop timeout=200s',
+ }
+ }
+
+ if $step >= 2 {
+ if $pacemaker_master {
+ include ::pacemaker::resource_defaults
+ }
+ }
+
+}
diff --git a/manifests/profile/base/rabbitmq.pp b/manifests/profile/base/rabbitmq.pp
index 6e86eab..2fd2347 100644
--- a/manifests/profile/base/rabbitmq.pp
+++ b/manifests/profile/base/rabbitmq.pp
@@ -18,25 +18,25 @@
#
# === Parameters
#
-# [*nodes*]
-# (Optional) Array of host(s) for RabbitMQ nodes.
-# Defaults to hiera('rabbit_node_ips', []).
-#
-# [*ipv6*]
-# (Optional) Whether to deploy RabbitMQ on IPv6 network.
-# Defaults to str2bool(hiera('rabbit_ipv6', false)).
+# [*config_variables*]
+# (Optional) RabbitMQ environment.
+# Defaults to hiera('rabbitmq_config_variables').
#
# [*environment*]
# (Optional) RabbitMQ environment.
# Defaults to hiera('rabbitmq_environment').
#
+# [*ipv6*]
+# (Optional) Whether to deploy RabbitMQ on IPv6 network.
+# Defaults to str2bool(hiera('rabbit_ipv6', false)).
+#
# [*kernel_variables*]
# (Optional) RabbitMQ environment.
# Defaults to hiera('rabbitmq_environment').
#
-# [*config_variables*]
-# (Optional) RabbitMQ environment.
-# Defaults to hiera('rabbitmq_config_variables').
+# [*nodes*]
+# (Optional) Array of host(s) for RabbitMQ nodes.
+# Defaults to hiera('rabbitmq_node_ips', []).
#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
@@ -44,14 +44,13 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::rabbitmq (
- $nodes = hiera('rabbit_node_ips', []),
- $ipv6 = str2bool(hiera('rabbit_ipv6', false)),
+ $config_variables = hiera('rabbitmq_config_variables'),
$environment = hiera('rabbitmq_environment'),
+ $ipv6 = str2bool(hiera('rabbit_ipv6', false)),
$kernel_variables = hiera('rabbitmq_kernel_variables'),
- $config_variables = hiera('rabbitmq_config_variables'),
+ $nodes = hiera('rabbitmq_node_ips', []),
$step = hiera('step'),
) {
-
# IPv6 environment, necessary for RabbitMQ.
if $ipv6 {
$rabbit_env = merge($environment, {
diff --git a/manifests/profile/base/sahara.pp b/manifests/profile/base/sahara.pp
index befb5d3..96d23a6 100644
--- a/manifests/profile/base/sahara.pp
+++ b/manifests/profile/base/sahara.pp
@@ -18,14 +18,27 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*step*]
# (Optional) The current step of the deployment
# Defaults to hiera('step')
#
class tripleo::profile::base::sahara (
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
- if $step >= 4 {
- include ::sahara
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ if $step >= 4 or ($step >= 3 and $sync_db){
+ class { '::sahara':
+ sync_db => $sync_db,
+ }
}
}
diff --git a/manifests/profile/base/sahara/api.pp b/manifests/profile/base/sahara/api.pp
index e9149b1..1ead106 100644
--- a/manifests/profile/base/sahara/api.pp
+++ b/manifests/profile/base/sahara/api.pp
@@ -24,10 +24,11 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::sahara::api (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
+ include ::tripleo::profile::base::sahara
+
if $step >= 4 {
- include ::tripleo::profile::base::sahara
- include ::sahara::api
+ include ::sahara::service::api
}
}
diff --git a/manifests/profile/base/sahara/engine.pp b/manifests/profile/base/sahara/engine.pp
index 28aff7b..4dbaa85 100644
--- a/manifests/profile/base/sahara/engine.pp
+++ b/manifests/profile/base/sahara/engine.pp
@@ -18,9 +18,9 @@
#
# === Parameters
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
#
# [*step*]
# (Optional) The current step in deployment. See tripleo-heat-templates
@@ -28,15 +28,22 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::sahara::engine (
- $sync_db = true,
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ include ::tripleo::profile::base::sahara
+
if $step >= 3 and $sync_db {
include ::sahara::db::mysql
}
if $step >= 4 or ($step >= 3 and $sync_db) {
- include ::tripleo::profile::base::sahara
- include ::sahara::engine
+ include ::sahara::service::engine
}
}
diff --git a/manifests/profile/base/snmp.pp b/manifests/profile/base/snmp.pp
index 40f7393..2ed6752 100644
--- a/manifests/profile/base/snmp.pp
+++ b/manifests/profile/base/snmp.pp
@@ -18,25 +18,24 @@
#
# === Parameters
#
-# [*step*]
-# (Optional) The current step in deployment. See tripleo-heat-templates
-# for more details.
-# Defaults to hiera('step')
+# [*snmpd_password*]
+# The SNMP password
+# Defaults to hiera('snmpd_readonly_user_password')
#
# [*snmpd_user*]
# The SNMP username
# Defaults to hiera('snmpd_readonly_user_name')
#
-# [*snmpd_password*]
-# The SNMP password
-# Defaults to hiera('snmpd_readonly_user_password')
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
#
class tripleo::profile::base::snmp (
- $step = hiera('step'),
- $snmpd_user = hiera('snmpd_readonly_user_name'),
$snmpd_password = hiera('snmpd_readonly_user_password'),
+ $snmpd_user = hiera('snmpd_readonly_user_name'),
+ $step = hiera('step'),
) {
-
if $step >= 4 {
snmp::snmpv3_user { $snmpd_user:
authtype => 'MD5',
diff --git a/manifests/profile/base/swift/add_devices.pp b/manifests/profile/base/swift/add_devices.pp
new file mode 100644
index 0000000..bd4c91c
--- /dev/null
+++ b/manifests/profile/base/swift/add_devices.pp
@@ -0,0 +1,58 @@
+# Copyright 2015 Red Hat, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+# == Function: tripleo::profile::base::swift::add_devices
+#
+# Swift add_devices helper function
+#
+# === Parameters
+#
+# [*swift_zones*]
+# (Optional) The number of swift zones.
+#
+define tripleo::profile::base::swift::add_devices(
+ $swift_zones = '1'
+){
+ # NOTE(dprince): Swift zones is not yet properly wired into the Heat
+ # templates. See: https://review.openstack.org/#/c/97758/3
+ # For now our regex supports the r1z1-192.0.2.6:%PORT%/d1 syntax or the
+ # newer r1z%<controller or SwiftStorage><N>%-192.0.2.6:%PORT%/d1 syntax.
+ $server_num_or_device = regsubst($name,'^r1z%+[A-Za-z]*([0-9]+)%+-(.*)$','\1')
+ if (is_integer($server_num_or_device)) {
+ $server_num = $server_num_or_device
+ } else {
+ $server_num = '1'
+ }
+ # Function to place server in its zone. Zone is calculated by
+ # server number in heat template modulo the number of zones + 1.
+ $zone = (($server_num%$swift_zones) + 1)
+
+ # add the rings
+ $base = regsubst($name,'^r1.*-(.*)$','\1')
+ $object = regsubst($base, '%PORT%', '6000')
+ ring_object_device { $object:
+ zone => '1',
+ weight => 100,
+ }
+ $container = regsubst($base, '%PORT%', '6001')
+ ring_container_device { $container:
+ zone => '1',
+ weight => 100,
+ }
+ $account = regsubst($base, '%PORT%', '6002')
+ ring_account_device { $account:
+ zone => '1',
+ weight => 100,
+ }
+}
diff --git a/manifests/profile/base/swift/proxy.pp b/manifests/profile/base/swift/proxy.pp
index 40e61ae..1e763a1 100644
--- a/manifests/profile/base/swift/proxy.pp
+++ b/manifests/profile/base/swift/proxy.pp
@@ -23,11 +23,9 @@
# for more details.
# Defaults to hiera('step')
#
-#
class tripleo::profile::base::swift::proxy (
$step = hiera('step'),
) {
-
if $step >= 4 {
include ::swift::proxy
include ::swift::proxy::proxy_logging
diff --git a/manifests/profile/base/swift/ringbuilder.pp b/manifests/profile/base/swift/ringbuilder.pp
new file mode 100644
index 0000000..e0f67cd
--- /dev/null
+++ b/manifests/profile/base/swift/ringbuilder.pp
@@ -0,0 +1,80 @@
+# Copyright 2015 Red Hat, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+# == Class: tripleo::profile::base::swift::ringbuilder
+#
+# Swift ringbuilder profile for tripleo
+#
+# === Parameters
+#
+# [*replicas*]
+# replicas
+#
+# [*build_ring*] = true,
+# (Optional) Whether to build the ring
+# Defaults to true
+#
+# [*devices*]
+# (Optional) The swift devices
+# Defaults to ''
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+# [*swift_zones*]
+# (Optional) The swift zones
+# Defaults to 1
+#
+class tripleo::profile::base::swift::ringbuilder (
+ $replicas,
+ $build_ring = true,
+ $devices = '',
+ $step = hiera('step'),
+ $swift_zones = '1',
+) {
+ if $step >= 2 {
+ # pre-install swift here so we can build rings
+ include ::swift
+ }
+
+ if $step >= 3 {
+ validate_bool($build_ring)
+
+ if $build_ring {
+
+ $device_array = strip(split(rstrip($devices), ','))
+
+ # create local rings
+ swift::ringbuilder::create{ ['object', 'account', 'container']:
+ replicas => min(count($device_array), $replicas),
+ } ->
+
+ # add all other devices
+ tripleo::profile::base::swift::add_devices {$device_array:
+ swift_zones => $swift_zones,
+ } ->
+
+ # rebalance
+ swift::ringbuilder::rebalance{ ['object', 'account', 'container']:
+ seed => 999,
+ }
+
+ Ring_object_device<| |> ~> Exec['rebalance_object']
+ Ring_object_device<| |> ~> Exec['rebalance_account']
+ Ring_object_device<| |> ~> Exec['rebalance_container']
+ }
+ }
+}
diff --git a/manifests/profile/base/swift/storage.pp b/manifests/profile/base/swift/storage.pp
new file mode 100644
index 0000000..0b09ea6
--- /dev/null
+++ b/manifests/profile/base/swift/storage.pp
@@ -0,0 +1,52 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::swift::storage
+#
+# Swift storage profile for tripleo
+#
+# === Parameters
+#
+# [*enable_swift_storage*]
+# (Optional) enable_swift_storage
+# Deprecated: defaults to true
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::swift::storage (
+ # Deprecated conditional to support ControllerEnableSwiftStorage parameter
+ $enable_swift_storage = true,
+ $step = hiera('step'),
+) {
+ if $step >= 4 {
+ if $enable_swift_storage {
+ include ::swift::storage::disks
+ include ::swift::storage::all
+ if(!defined(File['/srv/node'])) {
+ file { '/srv/node':
+ ensure => directory,
+ owner => 'swift',
+ group => 'swift',
+ require => Package['openstack-swift'],
+ }
+ }
+ $swift_components = ['account', 'container', 'object']
+ swift::storage::filter::recon { $swift_components : }
+ swift::storage::filter::healthcheck { $swift_components : }
+ }
+ }
+}
diff --git a/manifests/profile/base/trove/api.pp b/manifests/profile/base/trove/api.pp
new file mode 100644
index 0000000..7a78171
--- /dev/null
+++ b/manifests/profile/base/trove/api.pp
@@ -0,0 +1,50 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::trove::api
+#
+# Trove API profile for tripleo
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::trove::api (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
+) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
+ if $step >= 3 and $sync_db {
+ include ::trove::db::mysql
+ }
+
+ if $step >= 4 or ($step >= 3 and $sync_db) {
+ include ::trove
+ include ::trove::config
+ include ::trove::api
+ }
+
+}
diff --git a/manifests/profile/base/trove/conductor.pp b/manifests/profile/base/trove/conductor.pp
new file mode 100644
index 0000000..0e95a40
--- /dev/null
+++ b/manifests/profile/base/trove/conductor.pp
@@ -0,0 +1,36 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::trove::conductor
+#
+# Trove Conductor profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::trove::conductor (
+ $step = hiera('step'),
+) {
+
+ if $step >= 4 {
+ include ::trove
+ include ::trove::config
+ include ::trove::conductor
+ }
+
+}
diff --git a/manifests/profile/base/trove/taskmanager.pp b/manifests/profile/base/trove/taskmanager.pp
new file mode 100644
index 0000000..3972c29
--- /dev/null
+++ b/manifests/profile/base/trove/taskmanager.pp
@@ -0,0 +1,36 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::trove::taskmanager
+#
+# Trove Taskmanager profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::trove::taskmanager (
+ $step = hiera('step'),
+) {
+
+ if $step >= 4 {
+ include ::trove
+ include ::trove::config
+ include ::trove::taskmanager
+ }
+
+}