apex-tripleo-heat-templates.git
9 years agoConfigures haproxy as a Pacemaker resource
Giulio Fidente [Mon, 20 Apr 2015 17:05:25 +0000 (13:05 -0400)]
Configures haproxy as a Pacemaker resource

Change-Id: I6bf5ada5a5298f4079594f3cc8b01ac0ef85876e

9 years agoSwitch VIP management from Keepalived to Pacemaker
Giulio Fidente [Mon, 20 Apr 2015 11:20:07 +0000 (07:20 -0400)]
Switch VIP management from Keepalived to Pacemaker

Change-Id: I45511569fda6b00ca35b1e590537a29271e56ce0
Depends-On: I98b9b3dbc48009ce255d964ac580e1a31f279f1e

9 years agoEnable passing optional first-boot user-data
Steven Hardy [Thu, 2 Apr 2015 13:52:18 +0000 (09:52 -0400)]
Enable passing optional first-boot user-data

Currently all the OS::Nova::Server resource created don't pass any
user-data.  It's possible to pass user-data as well as using heat
SoftwareConfig/SoftwareDeployment resources, and this can be useful
when you have simple "first boot" tasks which are possible either via
cloud-init, or via simple run-once scripts.

This enables passing such data by implementing a new provider resource
OS::TripleO::NodeUserData, which defaults to passing an empty mime
archive (thus it's a no-op).  An example of non no-op usage is also
provided.

Change-Id: Id0caba69768630e3a10439ba1fc2547a609c0cfe

9 years agoMerge "Set EnablePacemaker == false be default"
Jenkins [Wed, 22 Apr 2015 20:05:51 +0000 (20:05 +0000)]
Merge "Set EnablePacemaker == false be default"

9 years agoSet EnablePacemaker == false be default
Dan Prince [Wed, 22 Apr 2015 12:47:37 +0000 (08:47 -0400)]
Set EnablePacemaker == false be default

Pacemaker is a new feature and should probably be disabled
by default.

Change-Id: I840d08c9e0563aeb7128eb2b21929612b7a5bf7a

9 years agoParameter to enable/disable controller swift store
Dan Prince [Sat, 11 Apr 2015 02:14:44 +0000 (22:14 -0400)]
Parameter to enable/disable controller swift store

Adds a new ControllerEnableSwiftStorage parameter that
can be used to enable/disable use of the contoller node
as a Swift storage node.

Change-Id: Ic54144f4a46a671818c2f12e419cfa619b0dc1f9

9 years agoAdd option to enable ceph storage on controller
Dan Prince [Fri, 10 Apr 2015 22:52:14 +0000 (18:52 -0400)]
Add option to enable ceph storage on controller

This patch adds a new ControllerEnableCephStorage option
which can be used to install and configure Ceph storage
(OSD) on the controller node.

The default is to have this disabled by default (this is
probably a more production like setting).

The motivation for this change is to help facilitate CI
jobs which actually use Ceph. Right now we have an issue
where once the Heat stack finishes Ceph is configured
and ready, but Cinder volume (required by our CI
devtest_overcloud.sh test) may or may not have had
enough time to recognize the amount of storage
on the remote Ceph storage nodes. Waiting another
periodic cycle for Cinder volume to recognize the
actual amount of storage on the remote OSD nodes
would work but there isn't a good way to do this
ATM. The right solution here is probably to
implement Heat breakpoints in our CI. As we haven't quite
landed that change, another option is to simply
make the controller node also be a Ceph storage node.
Since this runs as "step 2" within the controller
it ensures that the OSD will be available and thus
Cinder volume will register the correct amount of
storage on startup.

Enabling this feature also matches what we do with Swift
storage on the Controller (although we should provide
an option to actually disable this as well).

Change-Id: Ic47d028591edbaab83a52d7f38283d7805b63042

9 years agoMerge "Perform basic setup of Pacemaker cluster using puppet-pacemaker"
Jenkins [Tue, 21 Apr 2015 10:57:51 +0000 (10:57 +0000)]
Merge "Perform basic setup of Pacemaker cluster using puppet-pacemaker"

9 years agoMerge "Refresh description for swift/cinder/ceph storage nodes"
Jenkins [Tue, 21 Apr 2015 06:50:03 +0000 (06:50 +0000)]
Merge "Refresh description for swift/cinder/ceph storage nodes"

9 years agoMerge "Add support for Redis configuration"
Jenkins [Tue, 21 Apr 2015 00:34:46 +0000 (00:34 +0000)]
Merge "Add support for Redis configuration"

9 years agoPerform basic setup of Pacemaker cluster using puppet-pacemaker
Giulio Fidente [Fri, 17 Apr 2015 18:19:36 +0000 (20:19 +0200)]
Perform basic setup of Pacemaker cluster using puppet-pacemaker

Depends-On: Ia1bbf53c674e34ba7c70249895b106ec0af3c249
Change-Id: Ifa9f579d26a3cba9f8705226984c7b987ae0ad1c

9 years agoRefresh description for swift/cinder/ceph storage nodes
Giulio Fidente [Fri, 17 Apr 2015 13:02:10 +0000 (15:02 +0200)]
Refresh description for swift/cinder/ceph storage nodes

These appear in the Tuskar UI and CLI so are worth keeping
consistent with those of the controller/compute nodes

Change-Id: I7cdd3a67d6f190f43e279fad0c4bf5f409d1e161

9 years agoAdd support for Redis configuration
Yanis Guenane [Wed, 25 Mar 2015 09:55:46 +0000 (10:55 +0100)]
Add support for Redis configuration

Add support for Redis  configuration on the overcloud controller role.

Change-Id: I917ff1e7c0abf9d76b9939a97978e858268deac2
Depends-On: I80a6c284af9eceb6b669a03c5d93256261523331

9 years agopuppet: add missing ::glance include on controller
Emilien Macchi [Thu, 16 Apr 2015 13:33:58 +0000 (09:33 -0400)]
puppet: add missing ::glance include on controller

On Controller node, we also need to include ::glance if we want to have
common Glance bits (packaging included).
This is a Puppet best practice.

Change-Id: I967c06b2c78d8f3aa5fa984b518d34c813426a2e

9 years agoMerge "Do not downcase IP addresses"
Jenkins [Thu, 16 Apr 2015 08:23:28 +0000 (08:23 +0000)]
Merge "Do not downcase IP addresses"

9 years agoMerge "Perform basic setup of pacemaker cluster on controllers"
Jenkins [Thu, 16 Apr 2015 08:22:42 +0000 (08:22 +0000)]
Merge "Perform basic setup of pacemaker cluster on controllers"

9 years agopuppet: Ceilometer use MongoDB datastore backend
Emilien Macchi [Wed, 18 Mar 2015 16:01:20 +0000 (12:01 -0400)]
puppet: Ceilometer use MongoDB datastore backend

This patch configure Ceilometer to use MongoDB backend.

Change-Id: I22be0e22e7a3991ebd2d3aa7d14c518418a2458a

9 years agoFix MongoDB setup on nonha setup
Yanis Guenane [Wed, 15 Apr 2015 12:41:25 +0000 (14:41 +0200)]
Fix MongoDB setup on nonha setup

Currently a replset parameter is set in mongodb.conf no matter if we are
in a ha or nonha setup. This install fine, but on a nonha setup it prevents
any program from using MongoDB, since no replset has been initialized. It
generates the following error when a program tries to use it :

not master and slaveOk=false

To prevent this issue a replicatset is initialized in both ha and nonha
setup, this way if another MongoDB node is added to the pool, it will be
able to attach automatically

Change-Id: I65e3f1ad35cb0cd31f6771444a0cffdf7569222f

9 years agoMerge "Make memcached bind on ctlplane instead of 0.0.0.0"
Jenkins [Tue, 14 Apr 2015 19:03:36 +0000 (19:03 +0000)]
Merge "Make memcached bind on ctlplane instead of 0.0.0.0"

9 years agoDo not downcase IP addresses
Giulio Fidente [Tue, 14 Apr 2015 18:36:12 +0000 (20:36 +0200)]
Do not downcase IP addresses

Change-Id: I0655b7cae2c436944833894bf9837877b3a69878

9 years agoMerge "puppet: implement MongoDB on controller nodes"
Jenkins [Tue, 14 Apr 2015 17:52:38 +0000 (17:52 +0000)]
Merge "puppet: implement MongoDB on controller nodes"

9 years agoMerge "Make rabbitmq bind on ctlplane instead of 0.0.0.0"
Jenkins [Tue, 14 Apr 2015 17:50:36 +0000 (17:50 +0000)]
Merge "Make rabbitmq bind on ctlplane instead of 0.0.0.0"

9 years agopuppet: implement MongoDB on controller nodes
Emilien Macchi [Wed, 18 Mar 2015 16:01:20 +0000 (12:01 -0400)]
puppet: implement MongoDB on controller nodes

This patch aims to configure MongoDB server on controller nodes with
Puppet.
It also create a default replicaset for Ceilometer, so MongoDB can be
highly available when multiple controllers are run.

Change-Id: I3c1ff06ebc3c9dac44fc790caaea711d0eba4bb7

9 years agoPerform basic setup of pacemaker cluster on controllers
Giulio Fidente [Fri, 10 Apr 2015 21:40:26 +0000 (23:40 +0200)]
Perform basic setup of pacemaker cluster on controllers

Change-Id: Ia2e4eae619ca95c0f417f713676732eb4f01304b
Depends-On: I9563eec0a2266deb2ebef2e3d76ae89d39b2be29

9 years agoMariaDB bind on correct address
Jiri Stransky [Fri, 10 Apr 2015 09:28:44 +0000 (11:28 +0200)]
MariaDB bind on correct address

Despite passing bind-address for MariaDB in overcloud_controller.pp
correctly, it was always trying to bind on 0.0.0.0. The problem is
caused by Galera's config file (we install Galera into the image even
though we don't use it yet). Galera's default config file contains
override of the bind-address value to 0.0.0.0, and the setting from
galera.cnf took precendence over what was in server.cnf.

The mariadb-galera-server package assumes that the main config happens
in galera.cnf and it ships an almost empty server.cnf. We now have an
EnableGalera param, when it's set to true the mysql module will manage
galera.cnf instead of server.cnf, overriding the default values from
galera.cnf and fixing the issue.

Change-Id: I7c2fd41d41dcf5eb4ee8b1dbd74d60cc2cabeed9
Closes-Bug: #1442256

9 years agoMerge "Wire in list of controller nodes as memcache_servers for Swift proxy"
Jenkins [Thu, 9 Apr 2015 20:18:38 +0000 (20:18 +0000)]
Merge "Wire in list of controller nodes as memcache_servers for Swift proxy"

9 years agoPass in libvirt_rbd_secret_key for nova compute
Jiri Stransky [Fri, 3 Apr 2015 14:24:55 +0000 (16:24 +0200)]
Pass in libvirt_rbd_secret_key for nova compute

Passing the key explicitly into nova::compute::rbd means that Puppet
will not attempt to fetch the key using `ceph auth get-key <keyring>`,
having these effects:

* One reason for compute node to have access to the client.admin key is
  gone (in current implementation it does have access to the key, but
  this change is a step towards removing it).

* Ceph cluster doesn't have to be running at the time when Puppet runs
  on compute node, meaning we don't have to serialize things more than
  we do now.

Also adding the ComputeCephDeployment as a dependency of
ComputePostDeployment, otherwise the hiera file it creates might be
created *after* Puppet configuration happens on compute nodes, and the
values it provides would be missing during the Puppet run on the compute
nodes.

Change-Id: Id3166e6d5f01d18ec8a5033398bb511f4321a5e8
Depends-On: I70da06159c0d3c6fa204b5f7a468909ffab4d633
Partial-Bug: #1439949

9 years agoMake rabbitmq bind on ctlplane instead of 0.0.0.0
Giulio Fidente [Wed, 8 Apr 2015 22:26:02 +0000 (00:26 +0200)]
Make rabbitmq bind on ctlplane instead of 0.0.0.0

Change-Id: I353cffc13f56b54ce2d2aeb1468b9a7c51765d7c

9 years agoMake memcached bind on ctlplane instead of 0.0.0.0
Giulio Fidente [Wed, 8 Apr 2015 22:21:09 +0000 (00:21 +0200)]
Make memcached bind on ctlplane instead of 0.0.0.0

Change-Id: I06f7066bf9eacf3ef0f5d73c0cfa65eaf4f74cff

9 years agoWire in list of controller nodes as memcache_servers for Swift proxy
Giulio Fidente [Tue, 7 Apr 2015 15:22:24 +0000 (11:22 -0400)]
Wire in list of controller nodes as memcache_servers for Swift proxy

Change-Id: Id193f8c13e3ad3e05bd884be5ba65621b9369d0e

9 years agoMerge "Remove enforced deps on RabbitMQ resources before config"
Jenkins [Mon, 6 Apr 2015 05:23:38 +0000 (05:23 +0000)]
Merge "Remove enforced deps on RabbitMQ resources before config"

9 years agoMerge "Update descriptions comments for Ceph params"
Jenkins [Mon, 6 Apr 2015 05:15:32 +0000 (05:15 +0000)]
Merge "Update descriptions comments for Ceph params"

9 years agoRemove enforced deps on RabbitMQ resources before config
Giulio Fidente [Thu, 2 Apr 2015 11:07:45 +0000 (13:07 +0200)]
Remove enforced deps on RabbitMQ resources before config

This should have been removed with change
I1bb8ee15d361638d77c5df7f8c03561c34f4c88f

Change-Id: I20d4099aabe5ae9f89db45fd3db585067cab01f5

9 years agoMerge "Provide a way to know the boostrap_nodeid IP"
Jenkins [Fri, 3 Apr 2015 12:18:15 +0000 (12:18 +0000)]
Merge "Provide a way to know the boostrap_nodeid IP"

9 years agoRemove deprecated ceph-source.yaml
Giulio Fidente [Fri, 3 Apr 2015 04:09:56 +0000 (06:09 +0200)]
Remove deprecated ceph-source.yaml

Ceph will not be supported in the (already) deprecated with-mergepy
templates.

Change-Id: If6482b4ac03899ea552442edf01ebfeb4fb97a7a

9 years agoUpdate descriptions comments for Ceph params
Dan Prince [Thu, 2 Apr 2015 14:15:11 +0000 (10:15 -0400)]
Update descriptions comments for Ceph params

When trying out Ceph functionally the CephClusterFSID parameter
must be a UUID.

Additionally, the MonKey and AdminKey parameters should be
generated via ceph-authtool (or equivalently generated) to
ensure they work properly with the Ceph configuration.

Change-Id: I0c327843ef225d330d1c668f53324973c78d3505

9 years agoProvide a way to know the boostrap_nodeid IP
Yanis Guenane [Thu, 2 Apr 2015 07:42:08 +0000 (09:42 +0200)]
Provide a way to know the boostrap_nodeid IP

Currently it is possible to know what is the hostname of the boostrap
nodeid but not its IP. Since depending on the use case the use of the IP
might be needed, a way to have access to this information should be
provided.

Change-Id: I9d0a7ee7de2088ddb87e0d8a8ae2b3ac75b0e78d

9 years agoMerge "Restructure Ceph/Puppet params to reflect changes in puppet-ceph"
Jenkins [Thu, 2 Apr 2015 07:33:08 +0000 (07:33 +0000)]
Merge "Restructure Ceph/Puppet params to reflect changes in puppet-ceph"

9 years agoMerge "puppet: wire in osfamily hieradata support"
Jenkins [Wed, 1 Apr 2015 19:26:14 +0000 (19:26 +0000)]
Merge "puppet: wire in osfamily hieradata support"

9 years agopuppet: wire in osfamily hieradata support
Dan Prince [Wed, 4 Mar 2015 17:09:57 +0000 (12:09 -0500)]
puppet: wire in osfamily hieradata support

This updates all of the puppet roles to use an optional
osfamily hieradata file which can be used to provide
distro specific settings.

Also, updates the controller role to make use of this
new file for setting the rabbitmq package_provider
parameter.

Change-Id: I46417db51b87b82bf276dfcef5647a90c37fb07d

9 years agopuppet: add debug mode for OpenStack services
Jiri Stransky [Thu, 19 Mar 2015 14:03:04 +0000 (15:03 +0100)]
puppet: add debug mode for OpenStack services

Propagate the top-level Debug parameter wherever it makes sense.

Swift doesn't have this kind of debug setting, it only allows to
configure log levels, so we'll need a different approach there.

Change-Id: I15332315a2fbaeaf924cde4e748fb0e064a778b7

9 years agoMerge "Set all RabbitMQ queues as mirrored when clustered"
Jenkins [Wed, 1 Apr 2015 08:51:08 +0000 (08:51 +0000)]
Merge "Set all RabbitMQ queues as mirrored when clustered"

9 years agoMerge "Ensure all Rabbit params are propagated to interested nodes."
Jenkins [Wed, 1 Apr 2015 08:49:39 +0000 (08:49 +0000)]
Merge "Ensure all Rabbit params are propagated to interested nodes."

9 years agoMerge "lb: Allow multiple backend"
Jenkins [Tue, 31 Mar 2015 19:38:50 +0000 (19:38 +0000)]
Merge "lb: Allow multiple backend"

9 years agoMerge "Implement mongo_node_ips hiera key"
Jenkins [Tue, 31 Mar 2015 12:48:45 +0000 (12:48 +0000)]
Merge "Implement mongo_node_ips hiera key"

9 years agoMerge "Refactor allNodesConfig"
Jenkins [Tue, 31 Mar 2015 12:48:23 +0000 (12:48 +0000)]
Merge "Refactor allNodesConfig"

9 years agoMerge "puppet+devtest: make compute nodes reachable"
Jenkins [Tue, 31 Mar 2015 11:53:28 +0000 (11:53 +0000)]
Merge "puppet+devtest: make compute nodes reachable"

9 years agolb: Allow multiple backend
Yanis Guenane [Thu, 26 Mar 2015 15:54:48 +0000 (16:54 +0100)]
lb: Allow multiple backend

Currently tripleo::loadbalancer allow a controller to have only itself
as a backend for a service, no matter the number of controller nodes.
This patch fixes that using all controller nodes available.

Change-Id: Ic8fc022b84850c669b19d37da7f275d9c811e694
Depends-On: I2a46c250bc3325eef9c3128cac2ab45c88b1ae75

9 years agopuppet: correct cinder enabled_backends format
Dan Prince [Sun, 29 Mar 2015 01:46:54 +0000 (21:46 -0400)]
puppet: correct cinder enabled_backends format

This resolves a formatting issue with the Cinder enabled_backends
config file setting. Previously we would potentially construct
an array with an undef value at the end if iscsi was enabled
but ceph was not (this is the case for our current CI job).
When an array formatted like ['tripleo_iscsi', undef] is then
passed to join() in puppet-cinder to construct a string it leaves
us with an extra ',' on the end of the string. This causes
problems in that cinder-volume loads an extra (system default)
cinder volume process which is not expected.

Because Fedora uses LIO as a default it was causing about half
of our CI runs to fail if the tgtadm cinder-volume process
wasn't being chosen by the scheduler.

Closes-bug: #1437708

Change-Id: I3383012cb43792f334fdf789dc13147a3cb5ad63

9 years agoRestructure Ceph/Puppet params to reflect changes in puppet-ceph
Giulio Fidente [Fri, 27 Mar 2015 20:13:59 +0000 (16:13 -0400)]
Restructure Ceph/Puppet params to reflect changes in puppet-ceph

A change [1] in puppet-ceph offers more flexibility but breaks
backwards so we had to update our composition layer as well; we gain
control of the cephx keyring in the template though.

1. Ie6adbd601388ab52c37037004bd0ceef9fc41942

Change-Id: Ia8196849afce2969daa608828cec81ebe3ac96e1

9 years agopuppet+devtest: make compute nodes reachable
Jiri Stransky [Thu, 26 Mar 2015 13:59:19 +0000 (14:59 +0100)]
puppet+devtest: make compute nodes reachable

Compute nodes run libvirt, which automatically creates a default network
which has the same address space (192.168.122.*) as the libvirt default
network on the host machine where devtest is running. This overlap
causes that when a compute node wants to send a packet to the host
machine (192.168.122.1) it gets incorrectly routed through the compute
node's own virbr0 instead of br-ex. The current solution does not seem
to be enough because libvirt gets started and creates the default
network before Puppet is triggered on compute nodes. Making sure the
libvirt default network is destroyed on the compute node fixes the
issue.

We don't have any puppet modules in OPM that would deal with libvirt
networks and it's probably not worth exploring and adding one because of
this small issue (i don't expect another use case of managing libvirt
networks directly), so i'm using an exec with proper idempotency
check.

Change-Id: Icde12aa204ed1f7fa35b0525875ce07db34dc42c
Closes-Bug: #1436822

9 years agoImplement mongo_node_ips hiera key
Jiri Stransky [Wed, 25 Mar 2015 14:38:38 +0000 (15:38 +0100)]
Implement mongo_node_ips hiera key

We need a list of hosts where MongoDB is supposed to run (as a list of
IP addresses, not names) to implement MongoDB support in overcloud.

Change-Id: I4b80f13be7e50630314d0642fa32b7763b6a2921

9 years agoRefactor allNodesConfig
Jiri Stransky [Wed, 25 Mar 2015 13:30:01 +0000 (14:30 +0100)]
Refactor allNodesConfig

* Create hiera file 'all_nodes' instead of 'rabbit' -- we'll want
  allNodesConfig to create keys for more services (e.g. mongo_node_ips)
  and it's not necessary to create a separate hiera file for each.

* Rename rabbit_nodes to mongo_node_names -- we'll have more node lists,
  some services will need hostnames, some services will need IPs, some
  might need both, so we shouldn't have ambiguity in the hiera key
  names.

Change-Id: If80f9c9b2849ae893e1ab78f1c4d246a2468665c

9 years agoSet all RabbitMQ queues as mirrored when clustered
Giulio Fidente [Wed, 18 Mar 2015 18:59:55 +0000 (14:59 -0400)]
Set all RabbitMQ queues as mirrored when clustered

Purpose of this change is to enable on the server
side the ha-mode policy for all queues when nodes
are clustered.

Change-Id: I16e3d375aabac9dbcdc198c71069086951e40fc0

9 years agoAdd support for Neutron l3_ha option in puppet templates
Giulio Fidente [Fri, 13 Mar 2015 11:33:21 +0000 (07:33 -0400)]
Add support for Neutron l3_ha option in puppet templates

With this change we wire the NeutronL3HA parameter to the puppet
class, where needed.

Change-Id: I37b3850f71885a93859b5e51925df379616fc6ab

9 years agoEnsure all Rabbit params are propagated to interested nodes.
Giulio Fidente [Wed, 18 Mar 2015 18:57:56 +0000 (14:57 -0400)]
Ensure all Rabbit params are propagated to interested nodes.

Change-Id: I1bb8ee15d361638d77c5df7f8c03561c34f4c88f

9 years agoMerge "controller-puppet: Honor MysqlRootPassword"
Jenkins [Thu, 19 Mar 2015 12:31:42 +0000 (12:31 +0000)]
Merge "controller-puppet: Honor MysqlRootPassword"

9 years agoMerge "Correct the parameter_defaults section name."
Jenkins [Thu, 19 Mar 2015 11:29:59 +0000 (11:29 +0000)]
Merge "Correct the parameter_defaults section name."

9 years agoMerge "puppet: tidy up the Nova ceilo auth configs"
Jenkins [Thu, 19 Mar 2015 11:18:48 +0000 (11:18 +0000)]
Merge "puppet: tidy up the Nova ceilo auth configs"

9 years agoMerge "puppet: tidy up the Nova glance API server config"
Jenkins [Thu, 19 Mar 2015 11:13:10 +0000 (11:13 +0000)]
Merge "puppet: tidy up the Nova glance API server config"

9 years agoMerge "puppet: tidy up the compute nova neutron config"
Jenkins [Thu, 19 Mar 2015 11:07:35 +0000 (11:07 +0000)]
Merge "puppet: tidy up the compute nova neutron config"

9 years agoMerge "puppet: use identity_uri and auth_uri"
Jenkins [Thu, 19 Mar 2015 11:03:38 +0000 (11:03 +0000)]
Merge "puppet: use identity_uri and auth_uri"

9 years agoMerge "Add support for Ceph as a Cinder and Nova backend"
Jenkins [Thu, 19 Mar 2015 09:14:49 +0000 (09:14 +0000)]
Merge "Add support for Ceph as a Cinder and Nova backend"

9 years agopuppet: use identity_uri and auth_uri
Dan Prince [Tue, 10 Mar 2015 14:27:56 +0000 (10:27 -0400)]
puppet: use identity_uri and auth_uri

This patch updates the puppet modules to use new identity_uri
and auth_uri settings instead of the old 'auth_host' parameters
for keystone auth_token middleware. This avoids some deprecation
warnings in our puppet logs.

Change-Id: I805b28d4135b13eef7082fda78956816c985c323

9 years agoUpdate puppet post config to enable stepped deployments
Giulio Fidente [Wed, 18 Mar 2015 16:54:33 +0000 (12:54 -0400)]
Update puppet post config to enable stepped deployments

The upcoming heat hook/breakpoint features will enable stepped deployments
via setting stop points via the resource_registry.

For this to work, we need hard dependencies between each step of the
puppet deployments, because the current "soft" dependencies caused by the
name property only influences the hook script application ordering, not
the graph traversed by heat during deployment.

Since removing the name: puppet_n completely removes some useful self-
documenting context, move this to a resource naming convention, which
should also be useful for heat hooks/breakpoints, as they are expected
to support globbed specification of each step.

Related heat patch (not yet landed, but this is not dependent on it):

https://review.openstack.org/#/c/146123/

Change-Id: I05b02a46d4e80c08a308d033c33d4901c8f6c94e

9 years agoAdd support for Ceph as a Cinder and Nova backend
Yanis Guenane [Wed, 11 Mar 2015 09:14:35 +0000 (05:14 -0400)]
Add support for Ceph as a Cinder and Nova backend

This commit aims to add support for Ceph as a cinder and a nova backend.

  * Allows creation of Ceph pools from heat (Default: volumes, vms)
  * Creates the proper ceph user and inject the keys
  * Applies the proper configuration in cinder.conf and nova.conf
  * Enable the backend out of the box

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: Ic17d7a665de81a8bab5e34035abe90eda4bc889f

9 years agoMerge "puppet/loadbalancer: use puppet-tripleo"
Jenkins [Wed, 18 Mar 2015 15:50:09 +0000 (15:50 +0000)]
Merge "puppet/loadbalancer: use puppet-tripleo"

9 years agocontroller-puppet: Honor MysqlRootPassword
Yanis Guenane [Wed, 18 Mar 2015 14:54:45 +0000 (15:54 +0100)]
controller-puppet: Honor MysqlRootPassword

Currently the MysqlRootPassword parameter is retrieved from the
templates but not honored, preventing a user to specify it.
This commit fixes that.

Change-Id: Ib6842736a37aea3cc16f1a7c75fc877408682bf7

9 years agoMerge "Make heat auth_encryption_key random"
Jenkins [Mon, 16 Mar 2015 19:02:42 +0000 (19:02 +0000)]
Merge "Make heat auth_encryption_key random"

9 years agopuppet/loadbalancer: use puppet-tripleo
Emilien Macchi [Fri, 27 Feb 2015 09:20:34 +0000 (10:20 +0100)]
puppet/loadbalancer: use puppet-tripleo

The loadbalancer Puppet code moved to puppet-tripleo (lightweight)
composition layer.

This patch aims to use it and refactor the loadbalancer.pp file.

Co-Authored-By: Dan Prince <dprince@redhat.com>
Change-Id: I1765ac9b6cb01cb64d5d28dad646674ddca859e9

9 years agoMake heat auth_encryption_key random
Steven Hardy [Fri, 20 Feb 2015 17:04:47 +0000 (12:04 -0500)]
Make heat auth_encryption_key random

Currently we have a hard-coded default for auth_encryption_key,
which isn't ideal as it's used as a salt for the DB encryption.

Instead, reference an OS::Heat::RandomString resource so we create
a random key for each deployment.

Change-Id: Ic76b89db17603c114d98d28c01f75cc287fb2e90

9 years agopuppet: tidy up the Nova ceilo auth configs
Dan Prince [Thu, 12 Mar 2015 21:46:46 +0000 (17:46 -0400)]
puppet: tidy up the Nova ceilo auth configs

Updates the puppet configuration for the Ceilometer auth agent
so that we do the join conversions in the Heat templates and
use only hiera for configuration of the ::ceilometer::agent::auth
class.

Change-Id: I932afafe21b2485a0581ac3910ac9d46161eee0d

9 years agopuppet: tidy up the Nova glance API server config
Dan Prince [Thu, 12 Mar 2015 21:42:31 +0000 (17:42 -0400)]
puppet: tidy up the Nova glance API server config

Updates the puppet configuration for the Nova glance configs
so that we do the join conversions in the Heat templates and
use only hiera for configuration of the ::nova class.

Change-Id: Id12fb05470470558f1dccd45150bfce00a554466

9 years agopuppet: tidy up the compute nova neutron config
Dan Prince [Thu, 12 Mar 2015 21:29:07 +0000 (17:29 -0400)]
puppet: tidy up the compute nova neutron config

Updates the puppet configuration for the Nova neutron configs
so that we do the join conversions in the Heat templates and
use only hiera for configuration of the ::nova::network::neutron
class. This updates the compute configuration to match what
we now do on the controller as well.

Change-Id: I2b352551777f64e0ceb119f48cc3b3ab1779f4d5

9 years agoUse Cinder multibackend by default
Yanis Guenane [Mon, 9 Mar 2015 11:17:31 +0000 (12:17 +0100)]
Use Cinder multibackend by default

Currently Cinder iscsi backend is configured within the DEFAULT section.
Since we aim to support multibackend, this commit puts the iscsi backend
in its own section and enable it by default configuring it properly.
Also adds a parameter which can be used to disable the default backend.

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: I05fb44b59829c0afa8a6588956a48320f2f65159

9 years agoMerge "Puppet: Configure neutron_api_class on controller"
Jenkins [Thu, 12 Mar 2015 10:28:26 +0000 (10:28 +0000)]
Merge "Puppet: Configure neutron_api_class on controller"

9 years agoPuppet: Configure neutron_api_class on controller
Jiri Stransky [Wed, 11 Mar 2015 17:44:28 +0000 (18:44 +0100)]
Puppet: Configure neutron_api_class on controller

We're already configuring Neutron in Overcloud, but the controller
is still configured to use the default Nova neutron_api_class for
default configuration for networking, which means it used Nova Network
and not Neutron. This causes some of the Nova API is_neutron
checks to behave incorrectly.

This patch updates the controller to use nova::network::neutron (like
we already do on the overcloud_compute.pp role). As part of the change
several of the compute specific hiera settings for the
nova::network::neutron class have been moved to common.yaml.

Change-Id: Id2d5a5a0aa1ca087de714880ef1ea98484b06849

9 years agoMerge "puppet: add ordering for Neutron agents"
Jenkins [Wed, 11 Mar 2015 19:07:18 +0000 (19:07 +0000)]
Merge "puppet: add ordering for Neutron agents"

9 years agopuppet: add ordering for Neutron agents
Emilien Macchi [Tue, 10 Mar 2015 23:01:11 +0000 (19:01 -0400)]
puppet: add ordering for Neutron agents

Before starting the Neutron agents, we need to make sure neutron-server
is running so we don't have a race when starting the services.
This patch adds some orchestration to do it.

Change-Id: I24db069d6af1fadd302b0924f769db3f58f65685

9 years agoInclude cinder::glance into the ctrl manifest
Yanis Guenane [Mon, 9 Mar 2015 16:16:12 +0000 (17:16 +0100)]
Include cinder::glance into the ctrl manifest

Include ::cinder::glance into the controller manifest to have proper
(upstream) default value for cinder's glance related parameters.

Change-Id: I9ac83b9e997d3c2502b08b642d4e41dba36ddf67

9 years agoPuppet: define swift_store_auth_address in hiera
Emilien Macchi [Fri, 6 Mar 2015 20:10:47 +0000 (15:10 -0500)]
Puppet: define swift_store_auth_address in hiera

This patch updates the glance::backend::swift implementation to
use only hiera variables instead of a mix of hiera, and inline
class variables.

Nothing was functionally wrong with the previous approach but now
that we can compose more freely using the SoftwareDeployment defining
all the variables in Hiera makes sense and is cleaner.

Change-Id: I6d319841488d2ed94e088a5ac21e41dcd964ed1a
Co-Authored-By: Dan Prince <dprince@redhat.com>
9 years agopuppet: set heat-user using class parameter
Dan Prince [Sat, 7 Mar 2015 03:09:05 +0000 (22:09 -0500)]
puppet: set heat-user using class parameter

The puppet-heat module just added a new class
parameter to help manage instance_user today in
I44fef59d3ed1f7851d8504855a7ae0d5460fdc84. This
actually broke us because we were setting it manually
via heat_config (puppet doesn't allow two settings).

Change-Id: Ib25e8de8ca3849701d506a5d0c956a6f3317ac8a
Closes-bug: #1429328

9 years agoCorrect the parameter_defaults section name.
Dan Prince [Wed, 4 Mar 2015 17:12:04 +0000 (12:12 -0500)]
Correct the parameter_defaults section name.

Also, we can actually uncomment this now that heatclient 0.3
has been released.

Change-Id: I0b4ce13f1426c364ea7921596022e5165e025fdb

9 years agoPuppet: First support Ceph
Emilien Macchi [Sun, 1 Feb 2015 23:52:18 +0000 (18:52 -0500)]
Puppet: First support Ceph

This is a first implementation of Ceph support in TripleO with Puppet:

* Install ceph-mon on controller node
* Install ceph-osd on cephstorage node

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: I48488cbe950047fae5e746e458106d6edb9a6183

9 years agoMerge "Add allNodesConfig to Swift storage nodes"
Jenkins [Tue, 24 Feb 2015 21:17:36 +0000 (21:17 +0000)]
Merge "Add allNodesConfig to Swift storage nodes"

9 years agoMerge "BlockStore: Exec puppet after all configuration"
Jenkins [Tue, 24 Feb 2015 21:17:30 +0000 (21:17 +0000)]
Merge "BlockStore: Exec puppet after all configuration"

9 years agoMerge "ObjectStore: Exec puppet after all configuration"
Jenkins [Tue, 24 Feb 2015 21:17:23 +0000 (21:17 +0000)]
Merge "ObjectStore: Exec puppet after all configuration"

9 years agoMerge "Compute: Exec puppet after all configuration"
Jenkins [Tue, 24 Feb 2015 21:17:01 +0000 (21:17 +0000)]
Merge "Compute: Exec puppet after all configuration"

9 years agoMerge "Deprecate the old mergepy overcloud templates"
Jenkins [Tue, 24 Feb 2015 21:12:50 +0000 (21:12 +0000)]
Merge "Deprecate the old mergepy overcloud templates"

9 years agoDeprecate the old mergepy overcloud templates
Dan Prince [Mon, 23 Feb 2015 19:22:12 +0000 (14:22 -0500)]
Deprecate the old mergepy overcloud templates

This patch moves all the related mergepy templates for the
overcloud into a deprecated directory. The Makefile has
been updated so that overcloud.yaml is still generated
at the top level so this shouldn't break end users.

This is to reduce confusion for new users who are learning the
TripleO heat templates and find the fact that we have two full
implementations very confusing.

Change-Id: I0848aca4dee3e37cb4c6089c5f655ad22ac6c5fd

9 years agoAdd allNodesConfig to Swift storage nodes
Dan Prince [Mon, 23 Feb 2015 19:06:54 +0000 (14:06 -0500)]
Add allNodesConfig to Swift storage nodes

This patch applies the allNodesConfig data to swift storage
nodes. This contains hosts information which could be useful.

Change-Id: Iaccfdc698e371d6618d561c33f256ccc3c166fb7

9 years agoBlockStore: Exec puppet after all configuration
Dan Prince [Mon, 23 Feb 2015 19:00:24 +0000 (14:00 -0500)]
BlockStore: Exec puppet after all configuration

This patch adds a new BlockStoreNodesPostDeployment resource
which can be used along with the environment file to
specify a nested stack which is guaranteed to execute
after all the BlockStore config deployments have executed.

This is really useful for Puppet in that Heat actually
controls where puppet executes in the deployment
process and we want to ensure puppet runs after
all hiera configuration data has be deployed to
the nodes. With the previous approach some of the
data would be there, but allNodes data would not be
guaranteed to be there in time.

As os-apply-config (tripleo-image-elements) have their
ordering controlled within the elements themselves an empty stubbed
in nested stack has been added so that we don't break that
implementation.

Change-Id: I29b3574e341eecd53b2867788f415bff153cfa9f

9 years agoObjectStore: Exec puppet after all configuration
Dan Prince [Fri, 20 Feb 2015 00:31:38 +0000 (16:31 -0800)]
ObjectStore: Exec puppet after all configuration

This patch adds a new ObjectStoreNodesPostDeployment resource
which can be used along with the environment file to
specify a nested stack which is guaranteed to execute
after all the ObjectStore config deployments have executed.

This is really useful for Puppet in that Heat actually
controls where puppet executes in the deployment
process and we want to ensure puppet runs after
all hiera configuration data has be deployed to
the nodes. With the previous approach some of the
data would be there, but allNodes data would not be
guaranteed to be there in time.

As os-apply-config (tripleo-image-elements) have their
ordering controlled within the elements themselves an empty stubbed
in nested stack has been added so that we don't break that
implementation.

Change-Id: I778b87a17d5e6824233fdf9957c76549c36b3f78

9 years agoCompute: Exec puppet after all configuration
Dan Prince [Thu, 19 Feb 2015 23:54:24 +0000 (15:54 -0800)]
Compute: Exec puppet after all configuration

This patch adds a new ComputeNodesPostDeployment resource
which can be used along with the environment file to
specify a nested stack which is guaranteed to execute
after all the Compute config deployments have executed.

This is really useful for Puppet in that Heat actually
controls where puppet executes in the deployment
process and we want to ensure puppet runs after
all hiera configuration data has be deployed to
the nodes. With the previous approach some of the
data would be there, but allNodes data would not be
guaranteed to be there in time.

As os-apply-config (tripleo-image-elements) have their
ordering controlled within the elements themselves an empty stubbed
in nested stack has been added so that we don't break that
implementation.

Change-Id: I80bccd692e45393f8250607073d1fe7beb0d7396

9 years agoSplit out BootstrapNode SoftwareConfig
Dan Prince [Thu, 19 Feb 2015 16:41:47 +0000 (08:41 -0800)]
Split out BootstrapNode SoftwareConfig

This patch splits out the BootstrapNode config
such that alternate implementation (puppet for example)
can implement their own SoftwareConfig's via a nested stack.

This is controlled by the standard overcloud heat environment.

For os-apply-config deployments the implementation should work the
same as before.

For puppet deployments the implementation uses hiera metadata
to configure bootstrap_nodeid.

Change-Id: I691a9d7c474866038a5d47beab295899b5479d03

9 years agoPuppet/RabbitMQ: support clustering
Giulio Fidente [Fri, 13 Feb 2015 11:36:05 +0000 (06:36 -0500)]
Puppet/RabbitMQ: support clustering

Allow to install & configure RabbitMQ in cluster with Puppet on
the controller node.

Change-Id: Iebbf55c75b8c80453c7313bb41faf42c7fdf7159

9 years agoSplit out allNodesConfig SoftwareConfig
Dan Prince [Fri, 13 Feb 2015 02:54:57 +0000 (21:54 -0500)]
Split out allNodesConfig SoftwareConfig

This patch splits out the allNodesConfig config
such that alternate implementation (puppet for example)
can implement their own SoftwareConfig's via a nested stack.

This is controlled by the standard overcloud heat environment.

For os-apply-config deployments the implementation should work the
same as before.

For puppet deployments the implementation uses hiera metadata
to configure rabbit_nodes. The puppet deployment doesn't support
hosts, or freeform sysctl metadata yet so those are the same
for now as well.

Change-Id: I34ae30b1f37aca8b39586f7e350511462d66f694

9 years agoRevert "puppet: disable swift proxy and glance backend"
Dan Prince [Fri, 13 Feb 2015 02:16:31 +0000 (21:16 -0500)]
Revert "puppet: disable swift proxy and glance backend"

This reverts commit 4d470abc589c660cd55e4ced92de234fdf83d882
where we disabled swift (and the glance swift backend) due
to the fact that some of the Heat metadata wasn't showing up.

Change-Id: Ib0c01be5844aa79d74b7de02ba3d0657db5047ba
Closes-bug: 1418805

9 years agoSplit out SwiftDevicesAndProxy SoftwareConfig
Dan Prince [Fri, 13 Feb 2015 02:09:02 +0000 (21:09 -0500)]
Split out SwiftDevicesAndProxy SoftwareConfig

This patch splits out the SwiftDevicesAndProxy config
such that alternate implementation (puppet for example)
can implement their own SoftwareConfig's via a nested stack.

This is controlled by the standard overcloud heat environment.

For os-apply-config deployments the implementation should work the
same as before.

For puppet deployments the implementation uses hiera metadata
to configure swift devices.

Partial-bug: 1418805

Change-Id: Ibf6038460f36279ad51a04947589d4a03a553f66

9 years agoController: Exec puppet after all configuration
Dan Prince [Thu, 12 Feb 2015 20:49:00 +0000 (15:49 -0500)]
Controller: Exec puppet after all configuration

This patch adds a new ControllerNodesPostDeployment resource
which can be used along with the environment file to
specify a nested stack which is guaranteed to execute
after all the Controller config (HA, or other) have
executed.

This is really useful for Puppet in that Heat actually
controls where puppet executes in the deployment
process and we want to ensure puppet runs after
all hiera configuration data has be deployed to
the nodes. With the previous approach some of the
data would be there, but most of the HA data which
actually gets composed outside of the controller-puppet.yaml
nested stack would not be guaranteed to be there in time.

As os-apply-config (tripleo-image-elements) have their
ordering controlled within the elements themselves an empty stubbed
in nested stack has been added so that we don't break that
implementation.

Partial-bug: 1418805

Change-Id: Icd6b2c9c1f9b057c28649ee3bdce0039f3fd8422