Update readme for release
authorHunter Haugen <h.haugen@gmail.com>
Fri, 12 Oct 2012 22:26:14 +0000 (15:26 -0700)
committerHunter Haugen <h.haugen@gmail.com>
Fri, 12 Oct 2012 22:26:14 +0000 (15:26 -0700)
README.md

index fa0a264..a458aff 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,25 +1,83 @@
-# haproxy
+PuppetLabs Module for haproxy
+=============================
+
+HAProxy is an HA proxying daemon for load-balancing to clustered services. It
+can proxy TCP directly, or other kinds of traffic such as HTTP.
+
+Basic Usage
+-----------
 
 This haproxy uses storeconfigs to collect and realize balancer member servers
-on a load balancer server.  Currently Redhat family OSes are supported, but
-support for other OS Families shouldn't be too difficult to merge in.  Pull
-requests accepted!
+on a load balancer server. Currently Redhat family OSes are supported.
+
+*To install and configure HAProxy server listening on port 80*
+
+```puppet
+node 'haproxy-server' {
+  class { 'haproxy': }
+  haproxy::listen { 'puppet00':
+    ipaddress => $::ipaddress,
+    ports     => '8140',
+  }
+}
+```
+
+*To add backend loadbalance members*
+
+```puppet
+node 'webserver01' {
+  @@haproxy::balancermember { $fqdn:
+    listening_service => 'puppet00',
+    server_names      => $::hostname,
+    ipaddresses       => $::ipaddress,
+    ports             => '8140',
+    options           => 'check'
+  }
+}
+```
+
+Configuring haproxy options
+---------------------------
+
+The base `haproxy` class can accept two parameters which will configure basic
+behaviour of the haproxy server daemon:
+
+- `global_options` to configure the `global` section in `haproxy.cfg`
+- `defaults_options` to configure the `defaults` section in `haproxy.cfg`
+
+Configuring haproxy daemon listener
+-----------------------------------
+
+One `haproxy::listen` defined resource should be defined for each HAProxy loadbalanced set of backend servers. The title of the `haproxy::listen` resource is the key to which balancer members will be proxied to. The `ipaddress` field should be the public ip address which the loadbalancer will be contacted on. The `ports` attribute can accept an array or comma-separated list of ports which should be proxied to the `haproxy::balancermemeber` nodes.
+
+Configuring haproxy loadbalanced member nodes
+---------------------------------------------
+
+The `haproxy::balacemember` defined resource should be exported from each node
+which is serving loadbalanced traffic. the `listening_service` attribute will
+associate it with `haproxy::listen` directives on the haproxy node.
+`ipaddresses` and `ports` will be assigned to the member to be contacted on. If an array of `ipaddresses` and `server_names` are provided then they will be added to the config in lock-step.
 
-Read the documentation in the manifest headers for usage information.
+Dependencies
+------------
 
-## Hacking
+Tested and built on Ubuntu and CentOS
 
-After cloning the repository:
+Copyright and License
+---------------------
 
-1. `gem install puppetlabs_spec_helper`
-1. `rake spec` # To run the tests
-1. Hack Hack Hack # Adding tests hopefully!
-1. Commit and send a pull request!
+Copyright (C) 2012 [Puppet Labs](https://www.puppetlabs.com/) Inc
 
-## License
+Puppet Labs can be contacted at: info@puppetlabs.com
 
-Apache 2.0
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
 
-## Contact
+  http://www.apache.org/licenses/LICENSE-2.0
 
-Puppet Labs Modules Team <modules@puppetlabs.com>
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.