This commit refactors the keystone examples file so
that it is easier to consume from the
openstack_dev_env for testing.
Instead of keeping swift examples in this top level
testing project:
https://github.com/puppetlabs/puppetlabs-openstack_dev_env
instead, it imports the example manifest from this
modules:
# manifests/site.pp
import '/etc/puppet/modules-0/swift/examples/site.pp'
This is intended to solve two problems:
1. previously, the example code was ported to
this project, this caused the example code that
ships with each module to get out of date (since
testing is only performed on the dev_env)
2. prevents me from having to maintain multiple
examples.
There are a few things that had to be refactored for
this to work:
1. example needed to be updated to use hiera
so that the dev_env can override variables and
control the config of swift through the dev env.
2. keystone role changed to swift-keystone
example needed to be updated
This commit adds an example manifest that can be used
to deploy a reasonable multi-node swift environment.
It also removes a few example files that have been
replaced by site.pp
Previously, the Puppet modules only supported a single device per
endpoint.
This commits allows multiple devices per endpoint by making the device
name a part of the namevar for the swift ring devices.
it also updates the relevent configs.
This commit adds a usage example of creating
a swift proxy with keystone as the auth middleware
and a large number of configured middlewares.
This example encapsulates the latest and greatest
deployment example of swift proxy.
So that it can be accessed by the swift proxy
from this address.
Previously, it was binding to eth0 and swift proxy
was trying to access it via localhost.
This commit adds an example of how to sync rings between
nodes.
The ringbuilder role exports resources representing the ring
databases that need to be synced.
The storage node can then just collect these resources
This commit adds the parameter proxy_local_net_ip to
the swift::proxy class for the all in one example.
This parameter had been changed to be required in a previous commit,
but the example had not been updated.
Previously, all of the storage server types
(account, container, proxy) were always
configured to be installed on the same node.
It often makes sense to only have the account and
container together, and to put the object server on
a different node. (or its possible that other
configurations make sense)
This commit refactors the swift module so that
each of the types of nodes can be built
independently of each other.
Removes the puppetmaster node declaration so that
this manifest can be imported from the openstack's
manifests/site.pp (so that the openstack project
and the swift project can use the same node
declarations when swift is added as a submodule to
the openstack project)
Updates the code to use node declarations instead
of a case statement. This is done to conform to
the rest of the openstack manifest and may be
reverted at a later date.
This commit cleans up the multi-node example code
for the ringbuilder role.
- adds resource collection code to collect exported
ring balancing resources.
- fixes a typo in the name.
For now, I am assuing that the swift proxy role
also includes the ring building role.
This commit adds a declaration of the
swift::ringbuilder class to the swift_proxy_role
class.
This commit adds a proxy to the apt class in the
pre config manifest.
This is because I am using a squid proxy to speed
up testing in my environment.
I need to expose this as a config option so that
the hardcoded address of my app proxy is not
required for anyone to use this.
Previously, I had created a define intended to
wrap the creation of the storage device endpoints
with their associated ring configs.
I wound up decided against this for two reasons:
- Abtstracting storage endpoints together with
the ring configurations can be confusing b/c it
conflates actions associated with the storage role
with actions associated with the ringbuilding role.
- Abstracting the ring building hides side effects
of this manifest from the user (that it will effect
the ringbuilder role)
This pull request does the following:
- removes the swift::storage::device::* defines
- update the following code to use
swift::storage::device in combination with
ring_*_device
-- examples/multi
-- swift::storage::node
Previously there was not code for role assigment
of a node called swift_storage_3.
This commit updates a conditional statement to
assign a role based on this certname.
This commit refactors the previous site.pp example.
Adds ring building types and removes the ringbuilding
file.
Remove unnessary comments.
Adds requirement that swift proxy is only configured
after the ring is built.