Puppet: Swift Overcloud Proxy/Storage support
authorDan Prince <dprince@redhat.com>
Thu, 8 Jan 2015 15:10:41 +0000 (10:10 -0500)
committerDan Prince <dprince@redhat.com>
Tue, 27 Jan 2015 14:07:19 +0000 (09:07 -0500)
commit65d64b6a52366f36955e5e48a29f4ef0ca2ff973
tree0059d33a652b588da7d5a9efa82120890ac2b375
parent2698bb457309108dbf5821fe3976a64509c692e5
Puppet: Swift Overcloud Proxy/Storage support

This patch adds support for a Swift proxy and storage
node on the controller.

The implementation is fairly straightforward with the
exception of building the ring. I've followed an
upstream TripleO model here where we build the
actual ring on each node (rather than build once
and rsync). This works because Heat will always
know all the devices ahead of time. In the future
when we have Heat breakpoints it might be possible
to consider optimizing this by generating the ring
once and then rsyncing to all the nodes.

The ringbuilder logic is executed as a seperate
Heat software deployment. On the controller the ring
is executed in between the base service (mysql/rabbit)
and OpenStack service steps. This is to ensure the
ring exists before the Swift proxy is started.
Having the ringbuilder.pp logic as a separate software
config should allow us to reuse it for the Storage
node role.

It should also be noted that swift.zones support is
added here but we are missing an upstream Heat
template change in order for it to be wired
in properly. See: I0e0f5189da1575f2e1ed7fba4bbbe13a8fbf6221

Likewise we need to properly wire in SwiftRingBuild as well.
See: I01311ec3ca265b151f8740bf7dc57cdf0cf0df6f
The underlying puppet ringbuilder code is already wired
to support this change when it lands.

As is this works today and will provide a working Overcloud
Swift-proxy/storage node config. Will follow this up with
a related Swift storage node patch which should allow
puppet to be used for configuration on the storage nodes
as well...

Change-Id: Id1272f796e2507a7357309e8cd6a51ad9e0160af
controller-puppet.yaml
puppet/hieradata/common.yaml
puppet/hieradata/controller.yaml
puppet/hieradata/object.yaml [new file with mode: 0644]
puppet/overcloud_controller.pp
puppet/ringbuilder.pp [new file with mode: 0644]