Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

The haproxy-ng cookbook has been deprecated

Author provided reason for deprecation:

The haproxy-ng cookbook has been deprecated and is no longer being maintained by its authors. Use of the haproxy-ng cookbook is no longer recommended.

You may find that the haproxy cookbook is a suitable alternative.

RSS

haproxy-ng (36) Versions 0.1.0

modern, resource-driven cookbook for managing haproxy

Policyfile
Berkshelf
Knife
cookbook 'haproxy-ng', '= 0.1.0', :supermarket
cookbook 'haproxy-ng', '= 0.1.0'
knife supermarket install haproxy-ng
knife supermarket download haproxy-ng
README
Dependencies
Quality 100%

haproxy-ng cookbook

NOTE: / This cookbook is currently an alpha quality release. /

While it is believed to provide useful functionality, it has not been thoroughly
tested 'in the field', and is subject to rapid change.

A resource-driven cookbook for configuring HAProxy.

Cookbook builds on 2 core resources:
- haproxy_instance: the "parent" resource, which maps to a complete configuration and a running daemon.
- haproxy_proxy: the "core" proxy resource, which maps to a specific proxy

Additional resources haproxy_frontend, haproxy_backend, haproxy_defaults,
and (yet to be built) haproxy_listen extend the haproxy_proxy resource with
additional validation for common configuration keywords for their respective proxy type.

Suggested background reading:
- This README, the modules in libraries/helper.rb, and the individual HWRPs
- Manual

Recipes

haproxy-ng::default

Most users will not find this useful, it is primarily intended as a simple
example of the resources, and a useful testing target.

Of particular use are the node-search -> backend server conversion, the
example use of the Haproxy::Helpers#proxy method, and the pattern of
an instance of the haproxy_instance resource notifying a config-validating
resource, which in turn notifies the service resource to reload.

haproxy-ng::install

Installs haproxy via the node['haproxy']['install_method'] method.

Currently only supports installation from a package.

haproxy-ng::service

Configures a default-named ("haproxy") service resource.
Useful if running one haproxy service ("service" in the init-system sense),
and you have no reason to use a non-default service name. Just create a
haproxy_instance resource named 'haproxy', and include the recipe.

Attributes

<table>
<thead>
<tr>
<th>Attribute</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>install_method</td>
<td>
Not fully implemented. One of: ['package', 'source']
</td>
<td><code>package</code></td>
</tr>
<tr>
<td>app_role</td>
<td>
App role used in default recipe for search.
</td>
<td><code>app</code></td>
</tr>
</tbody>
</table>

Resources

haproxy_instance

The "parent" resource. Maps 1-to-1 with a generated haproxy config file,
and most likely to a running service.

<table>
<thead>
<tr>
<th>Attribute</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>config</td>
<td>
Array of global keywords relevant to process management.
See library/helpers.rb or haproxy manual for permissible keywords.
</td>
<td><code>['daemon']</code></td>
</tr>
<tr>
<td>tuning</td>
<td>
Array of global keywords relevant to performance tuning.
See library/helpers.rb or haproxy manual for permissible keywords.
</td>
<td><code>['maxconn 256']</code></td>
</tr>
<tr>
<td>debug</td>
<td>
Global keyword string relevant to debugging (either 'debug', or 'quiet').
See library/helpers.rb or haproxy manual for permissible keywords.
</td>
<td><code>app</code></td>
</tr>
<tr>
<td>userlists</td>
<td>
Not yet implemented.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>peers</td>
<td>
Not yet implemented.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>proxies</td>
<td>
Array of Chef::Resource::HaproxyProxy instances
(haproxy_{defaults,frontend,backend} included). See the default recipe
for an example of using the provided Haproxy::Helpers#proxy method to generate
this list from the resource collection.
</td>
<td><code>app</code></td>
</tr>
</tbody>
</table>

haproxy_proxy

The simplest proxy representation and base-class for other proxy
resources (frontend, defaults, backend).

<table>
<thead>
<tr>
<th>Attribute</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>type</td>
<td>
String representing the proxy type. One of:
defaults, frontend, backend, listen.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>config</td>
<td>
Array of proxy keywords, validated against specified proxy type.
See library/helpers.rb or haproxy manual for permissible keywords.
</td>
<td><code>[]</code></td>
</tr>
</tbody>
</table>

haproxy_frontend

<table>
<thead>
<tr>
<th>Attribute</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>acls</td>
<td>
Array of hashes. Each hash must contain keys :name, and :criterion.
</td>
<td><code>[]</code></td>
</tr>
<tr>
<td>bind</td>
<td>
String or Array of Strings containing arguments to bind keyword.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>default_backend</td>
<td>
String specifying argument to default_backend keyword.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>mode</td>
<td>
String specifying listener mode. One of: http, tcp, health.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>use_backends</td>
<td>
Array of Hashes mapping to a list of use_backend directives.
Each hash is verified to have keys :backend and :condition.
</td>
<td><code>[]</code></td>
</tr>
<tr>
<td>config</td>
<td>
Array of proxy keywords, validated against 'frontend' proxy type.
See library/helpers.rb or haproxy manual for permissible keywords.
</td>
<td><code>[]</code></td>
</tr>
</tbody>
</table>

haproxy_defaults

<table>
<thead>
<tr>
<th>Attribute</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>balance</td>
<td>
String specifying the desired load-balancing algorithm.
See BALANCE_ALGORITHMS in libraries/helper.rb or haproxy
manual for permissible balance keyword arguments.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>mode</td>
<td>
String specifying listener mode. One of: http, tcp, health.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>config</td>
<td>
Array of proxy keywords, validated against 'defaults' proxy type.
See library/helpers.rb or haproxy manual for permissible keywords.
</td>
<td><code>[]</code></td>
</tr>
</tbody>
</table>

haproxy_backend

<table>
<thead>
<tr>
<th>Attribute</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>balance</td>
<td>
String specifying the desired load-balancing algorithm.
See BALANCE_ALGORITHMS in libraries/helper.rb or haproxy
manual for permissible balance keyword arguments.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>mode</td>
<td>
String specifying listener mode. One of: http, tcp, health.
</td>
<td><code>nil</code></td>
</tr>
<tr>
<td>servers</td>
<td>
Array of Hashes. Each Hash must contain keys :name, :address, :port,
and optionally :config.
</td>
<td><code>[]</code></td>
</tr>
<tr>
<td>config</td>
<td>
Array of proxy keywords, validated against 'backend' proxy type.
See library/helpers.rb or haproxy manual for permissible keywords.
</td>
<td><code>[]</code></td>
</tr>
</tbody>
</table>

haproxy_listen

Not yet implemented. Use the haproxy_proxy resource directly.

Foodcritic Metric
            

0.1.0 passed this metric