https://github.com/rackerlabs/puppet-repose
This module provides a re-usable and environment agnostic control of Repose
https://github.com/rackerlabs/puppet-repose
Last synced: over 1 year ago
JSON representation
This module provides a re-usable and environment agnostic control of Repose
- Host: GitHub
- URL: https://github.com/rackerlabs/puppet-repose
- Owner: rackerlabs
- Created: 2014-05-01T20:41:15.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2024-02-26T15:43:46.000Z (over 2 years ago)
- Last Synced: 2025-04-13T00:29:45.436Z (over 1 year ago)
- Language: Ruby
- Homepage: openrepose.org
- Size: 616 KB
- Stars: 5
- Watchers: 29
- Forks: 26
- Open Issues: 8
-
Metadata Files:
- Readme: README.rdoc
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
= Repose
{
}[https://travis-ci.org/rackerlabs/puppet-repose]
This module provides a re-usable and environment agnostic control of Repose Power Proxy
Note: This version supports Repose 9+ only.
---
== Usage of Module
=== Installing Repose with basic keystone auth and http logging
# Setup the basic information about the API you are putting Repose in front of
$app_name = 'myapp'
$api_protocol = 'https'
$api_host = "api-internal.${::domain}"
$api_port = '443'
$api_uri = "${api_protocol}://${api_host}/${app_name}"
$repose_nodes = [ "repose-n01.${::domain}",
"repose-n02.${::domain}" ]
# Your service account for verifying identities against keystone
$auth = {
'user' => 'service_admin',
'pass' => 'somepassword',
'uri' => 'https://keystone.${::domain}/v2.0',
}
$client_maps = [ ".*/${app_name}/(\d+)" ]
$white_lists = [ '/application\.wadl$' ]
# Your http logging definitions
$log_files = [
{ 'id' => 'http',
'format' => 'Response Code Modifiers=%200,201U\tModifier Negation=%!401a\tRemote IP=%a\tLocal IP=%A\tResponse Size(bytes)=%b',
},
]
# Your definitions for the system model
$filters = {
10 => { 'name' => 'slf4j-http-logging' },
20 => { 'name' => 'client-auth',
'uri-regex' => "/${app_name}/.*" },
30 => { 'name' => 'default-router' },
}
$endpoints = [
{ 'id' => $app_name,
'protocol' => $api_protocol,
'hostname' => $api_host,
'root-path' => '',
'port' => $api_port,
'default' => true,
},
]
# Bringing it all together
class { 'repose':
ensure => 'present',
}
repose::filter::slf4j_http_logging { 'default':
log_files => $log_files,
}
repose::filter::client_auth_n { 'default':
auth => $auth,
client_maps => $client_maps,
white_lists => $white_lists,
}
repose::filter::system_model { 'default':
app_name => $app_name,
nodes => $repose_nodes,
filters => $filters,
endpoints => $endpoints,
}
=== Removing Repose
class { 'repose': ensure => absent }
---
== Installing this module
=== via GIT
git clone https://github.com/rackerlabs/puppet-repose.git /etc/puppet/modules/repose
---
== Running tests
=== Requirements
Must have:
* pdk 1.17.0+
=== With pdk
git clone https://github.com/rackerlabs/puppet-repose.git
cd puppet-repose
pdk test unit --verbose
---
==Authors
[Alex Schultz] mailto:alex.schultz@rackspace.com
[Greg Swift] mailto:greg.swift@rackspace.com
[Josh Bell] mailto:josh.bell@rackspace.com
[Cory Ringdahl] mailto:cory.ringdahl@rackspace.com