From 357bfd29e3ac9092d002dd965f887200f334f878 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Sat, 5 Sep 2026 11:48:55 +0200 Subject: [PATCH 01/11] Recommit for updates in build 2 --- doc/_index.html | 182 +++ doc/css/common.css | 8 + doc/css/full_list.css | 58 + doc/css/style.css | 497 ++++++++ doc/file.README.html | 234 ++++ doc/frames.html | 22 + doc/index.html | 234 ++++ doc/js/app.js | 314 +++++ doc/js/full_list.js | 216 ++++ doc/js/jquery.js | 4 + doc/puppet_class_list.html | 117 ++ doc/puppet_classes/confdroid_haproxy.html | 121 ++ ...d_haproxy_3A_3Afirewall_3A_3Aiptables.html | 166 +++ ...nfdroid_haproxy_3A_3Amain_3A_3Aconfig.html | 138 +++ ...confdroid_haproxy_3A_3Amain_3A_3Adirs.html | 206 ++++ ...onfdroid_haproxy_3A_3Amain_3A_3Afiles.html | 426 +++++++ ...fdroid_haproxy_3A_3Amain_3A_3Ainstall.html | 138 +++ ...confdroid_haproxy_3A_3Amain_3A_3Auser.html | 170 +++ ...haproxy_3A_3Amonitoring_3A_3Afail2ban.html | 190 +++ .../confdroid_haproxy_3A_3Aparams.html | 1073 +++++++++++++++++ ...roid_haproxy_3A_3Aserver_3A_3Aservice.html | 150 +++ doc/puppet_defined_type_list.html | 54 + ...fdroid_haproxy_3A_3Aserver_3A_3Aproxy.html | 693 +++++++++++ doc/top-level-namespace.html | 98 ++ 24 files changed, 5509 insertions(+) create mode 100644 doc/_index.html create mode 100644 doc/css/common.css create mode 100644 doc/css/full_list.css create mode 100644 doc/css/style.css create mode 100644 doc/file.README.html create mode 100644 doc/frames.html create mode 100644 doc/index.html create mode 100644 doc/js/app.js create mode 100644 doc/js/full_list.js create mode 100644 doc/js/jquery.js create mode 100644 doc/puppet_class_list.html create mode 100644 doc/puppet_classes/confdroid_haproxy.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Adirs.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Afiles.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Ainstall.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Auser.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Amonitoring_3A_3Afail2ban.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Aserver_3A_3Aservice.html create mode 100644 doc/puppet_defined_type_list.html create mode 100644 doc/puppet_defined_types/confdroid_haproxy_3A_3Aserver_3A_3Aproxy.html create mode 100644 doc/top-level-namespace.html diff --git a/doc/_index.html b/doc/_index.html new file mode 100644 index 0000000..656546b --- /dev/null +++ b/doc/_index.html @@ -0,0 +1,182 @@ + + + + + + + Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Documentation by YARD 0.9.36

+
+

Alphabetic Index

+ +

Puppet Class Listing A-Z

+ + + + + + +
+ + + + +
+ + + +

Defined Type Listing A-Z

+ + + + + + +
+ + + + +
+ + + + + + + +

File Listing

+ + +
+ + +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/doc/css/common.css b/doc/css/common.css new file mode 100644 index 0000000..d28b093 --- /dev/null +++ b/doc/css/common.css @@ -0,0 +1,8 @@ +/* Ensure the search bar doesn't overlap with links */ +.fixed_header { + padding-bottom: 25px; +} + +#full_list { + padding-top: 15px; +} diff --git a/doc/css/full_list.css b/doc/css/full_list.css new file mode 100644 index 0000000..fa35982 --- /dev/null +++ b/doc/css/full_list.css @@ -0,0 +1,58 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; + background: #fafafa; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; } +#full_list ul { padding: 0; } +#full_list li { padding: 0; margin: 0; list-style: none; } +#full_list li .item { padding: 5px 5px 5px 12px; } +#noresults { padding: 7px 12px; background: #fff; } +#content.insearch #noresults { margin-left: 7px; } +li.collapsed ul { display: none; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.odd { background: #f0f0f0; } +li.even { background: #fafafa; } +.item:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a, a:visited { text-decoration: none; color: #05a; } +li.clicked > .item { background: #05a; color: #ccc; } +li.clicked > .item a, li.clicked > .item a:visited { color: #eee; } +li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; border-radius: 3px; } +#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; } +#full_list_nav a, #nav a:visited { color: #358; } +#full_list_nav a:hover { background: transparent; color: #5af; } +#full_list_nav span:after { content: ' | '; } +#full_list_nav span:last-child:after { content: ''; } + +#content h1 { margin-top: 0; } +li { white-space: nowrap; cursor: normal; } +li small { display: block; font-size: 0.8em; } +li small:before { content: ""; } +li small:after { content: ""; } +li small.search_info { display: none; } +#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +#content.insearch #search { background-position: center right; } +#search input { width: 110px; } + +#full_list.insearch ul { display: block; } +#full_list.insearch .item { display: none; } +#full_list.insearch .found { display: block; padding-left: 11px !important; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/doc/css/style.css b/doc/css/style.css new file mode 100644 index 0000000..eb0dbc8 --- /dev/null +++ b/doc/css/style.css @@ -0,0 +1,497 @@ +html { + width: 100%; + height: 100%; +} +body { + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + width: 100%; + margin: 0; + padding: 0; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} + +#nav { + position: relative; + width: 100%; + height: 100%; + border: 0; + border-right: 1px dotted #eee; + overflow: auto; +} +.nav_wrap { + margin: 0; + padding: 0; + width: 20%; + height: 100%; + position: relative; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; + flex-shrink: 0; + -webkit-flex-shrink: 0; + -ms-flex: 1 0; +} +#resizer { + position: absolute; + right: -5px; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; + z-index: 9999; +} +#main { + flex: 5 1; + -webkit-flex: 5 1; + -ms-flex: 5 1; + outline: none; + position: relative; + background: #fff; + padding: 1.2em; + padding-top: 0.2em; + box-sizing: border-box; +} + +@media (max-width: 920px) { + .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; } + #resizer { display: none; } + #nav { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 40px; + right: 12px; + width: 500px; + max-width: 80%; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + box-shadow: -7px 5px 25px #aaa; + border-radius: 2px; + } +} + +@media (min-width: 920px) { + body { height: 100%; overflow: hidden; } + #main { height: 100%; overflow: auto; } + #search { display: none; } +} + +#main img { max-width: 100%; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; + position: relative; +} +h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; } +h2 small a { + display: block; + height: 20px; + border: 1px solid #aaa; + border-bottom: 0; + border-top-left-radius: 5px; + background: #f8f8f8; + position: relative; + padding: 2px 7px; +} +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; } +.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt { + color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link a, .docstring .object_link a { + font-family: monospace; font-size: 1.05em; + color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } +.summary_desc pre.code .object_link a, .docstring pre.code .object_link a { + padding: 0px; background: inherit; color: inherit; border-radius: inherit; +} + +/* style for */ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/doc/puppet_class_list.html b/doc/puppet_class_list.html new file mode 100644 index 0000000..1cf2f4a --- /dev/null +++ b/doc/puppet_class_list.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + Puppet Class List + + + + + + diff --git a/doc/puppet_classes/confdroid_haproxy.html b/doc/puppet_classes/confdroid_haproxy.html new file mode 100644 index 0000000..f1d091b --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy.html @@ -0,0 +1,121 @@ + + + + + + + Puppet Class: confdroid_haproxy + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy

+
+ + +
+
Defined in:
+
+ manifests/init.pp +
+
+
+ +

Summary

+ Class initializes the confdroid_haproxy module. + +

Overview

+
+
+ +

confdroid_haproxy::init.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+ + + +
+
+ + + + +
+
+
+
+6
+7
+8
+
+
# File 'manifests/init.pp', line 6
+
+class confdroid_haproxy {
+  include confdroid_haproxy::params
+}
+
+ + + + + + + + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html b/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html new file mode 100644 index 0000000..9b7f6ae --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html @@ -0,0 +1,166 @@ + + + + + + + Puppet Class: confdroid_haproxy::firewall::iptables + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::firewall::iptables

+
+ +
+
Inherits:
+
confdroid_haproxy::params
+
+ + +
+
Defined in:
+
+ manifests/firewall/iptables.pp +
+
+
+ +

Summary

+ manage firewall settings through cd_firewall or puppetlabs-firewall + +

Overview

+
+
+ +

confdroid_haproxy::firewall::iptables.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+ + + +
+ + + + + +
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+
+
# File 'manifests/firewall/iptables.pp', line 6
+
+class confdroid_haproxy::firewall::iptables (
+
+) inherits confdroid_haproxy::params {
+  if ($fqdn == $hy_host_fqdn) and ($hy_manage_fw == true) {
+    firewall { "${hy_fw_order_no}${hy_http_port} tcp port ${hy_http_port}":
+      proto => 'tcp',
+      dport => $hy_http_port,
+      jump  => 'accept',
+    }
+
+    firewall { "${hy_fw_order_no}${hy_https_port} tcp port ${hy_https_port}":
+      proto => 'tcp',
+      dport => $hy_https_port,
+      jump  => 'accept',
+    }
+
+    firewall { "${hy_fw_order_no}9000 tcp port minio-api":
+      proto => 'tcp',
+      dport => '9000',
+      jump  => 'accept',
+    }
+  }
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html new file mode 100644 index 0000000..d789c2a --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html @@ -0,0 +1,138 @@ + + + + + + + Puppet Class: confdroid_haproxy::main::config + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::main::config

+
+ +
+
Inherits:
+
confdroid_haproxy::params
+
+ + +
+
Defined in:
+
+ manifests/main/config.pp +
+
+
+ +

Summary

+ Class manages module logic for confdroid_haproxy. + +

Overview

+
+
+ +

confdroid_haproxy::main::config.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+ + + +
+ + + + + +
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+
+
# File 'manifests/main/config.pp', line 6
+
+class confdroid_haproxy::main::config (
+
+) inherits confdroid_haproxy::params {
+  include confdroid_haproxy::server::service
+
+  if $hy_manage_fail2ban == true {
+    include confdroid_haproxy::monitoring::fail2ban
+  }
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Adirs.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Adirs.html new file mode 100644 index 0000000..f2328a6 --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Adirs.html @@ -0,0 +1,206 @@ + + + + + + + Puppet Class: confdroid_haproxy::main::dirs + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::main::dirs

+
+ +
+
Inherits:
+
confdroid_haproxy::params
+
+ + +
+
Defined in:
+
+ manifests/main/dirs.pp +
+
+
+ +

Summary

+ Class manages all directories required for confdroid_haproxy. + +

Overview

+
+
+ +

confdroid_haproxy::main::dirs.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+ + + +
+ + + + + +
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+
+
# File 'manifests/main/dirs.pp', line 6
+
+class confdroid_haproxy::main::dirs (
+
+) inherits confdroid_haproxy::params {
+  if $fqdn == $hy_host_fqdn {
+    require confdroid_haproxy::main::user
+
+    # main dir
+    file { $hy_main_dir:
+      ensure   => directory,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0755',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+    }
+
+    # errors dir
+    file { $hy_errors_dir:
+      ensure   => directory,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0755',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+    }
+
+    # certs dir
+    file { $hy_certs_dir:
+      ensure   => directory,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0755',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+    }
+  }
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Afiles.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Afiles.html new file mode 100644 index 0000000..0fe50f2 --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Afiles.html @@ -0,0 +1,426 @@ + + + + + + + Puppet Class: confdroid_haproxy::main::files + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::main::files

+
+ +
+
Inherits:
+
confdroid_haproxy::params
+
+ + +
+
Defined in:
+
+ manifests/main/files.pp +
+
+
+ +

Summary

+ Class manages all configuration files required for confdroid_haproxy. + +

Overview

+
+
+ +

confdroid_haproxy::main::files.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+ + + +
+ + + + + +
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+
+
# File 'manifests/main/files.pp', line 6
+
+class confdroid_haproxy::main::files (
+
+) inherits confdroid_haproxy::params {
+  if $fqdn == $hy_host_fqdn {
+    require confdroid_haproxy::main::dirs
+
+    # create the concat target
+    concat { $hy_main_config:
+      ensure   => present,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0640',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      notify   => Service[$hy_service],
+    }
+
+    # create the header
+    concat::fragment { 'header':
+      target  => $hy_main_config,
+      content => template($hy_config_head_erb),
+      order   => '001',
+    }
+
+    # create the header
+    concat::fragment { 'tail':
+      target  => $hy_main_config,
+      content => template($hy_config_tail_erb),
+      order   => '100',
+    }
+
+    # pid file
+    file { $hy_pid:
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => haproxy_var_run_t,
+      seluser  => system_u,
+    }
+
+    # error files
+    file { $hy_400_file:
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template($hy_400_erb),
+      notify   => Service[$hy_service],
+    }
+
+    file { $hy_403_file:
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template($hy_403_erb),
+      notify   => Service[$hy_service],
+    }
+
+    file { $hy_408_file:
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template($hy_408_erb),
+      notify   => Service[$hy_service],
+    }
+
+    file { $hy_500_file:
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template($hy_500_erb),
+      notify   => Service[$hy_service],
+    }
+
+    file { $hy_502_file:
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template($hy_502_erb),
+      notify   => Service[$hy_service],
+    }
+
+    file { $hy_503_file:
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template($hy_503_erb),
+      notify   => Service[$hy_service],
+    }
+
+    file { $hy_504_file:
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template($hy_504_erb),
+      notify   => Service[$hy_service],
+    }
+
+    # make sure syslog is logging haproxy logs
+
+    file { '/etc/rsyslog.d/10-haproxy.conf':
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => syslog_conf_t,
+      seluser  => system_u,
+      content  => template('confdroid_haproxy/rsyslog/10_haproxy.conf.erb'),
+#      notify   =>  Service['rsyslog'], # only if using rsyslog_cd module
+    }
+  }
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Ainstall.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Ainstall.html new file mode 100644 index 0000000..28f84fb --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Ainstall.html @@ -0,0 +1,138 @@ + + + + + + + Puppet Class: confdroid_haproxy::main::install + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::main::install

+
+ +
+
Inherits:
+
confdroid_haproxy::params
+
+ + +
+
Defined in:
+
+ manifests/main/install.pp +
+
+
+ +

Summary

+ Class installs binaries required for confdroid_haproxy + +

Overview

+
+
+ +

confdroid_haproxy::main::install.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+ + + +
+ + + + + +
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+
+
# File 'manifests/main/install.pp', line 6
+
+class confdroid_haproxy::main::install (
+
+) inherits confdroid_haproxy::params {
+  if $fqdn == $hy_host_fqdn {
+    package { $reqpackages:
+      ensure => $pkg_ensure,
+    }
+  }
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Auser.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Auser.html new file mode 100644 index 0000000..3742da9 --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Auser.html @@ -0,0 +1,170 @@ + + + + + + + Puppet Class: confdroid_haproxy::main::user + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::main::user

+
+ +
+
Inherits:
+
confdroid_haproxy::params
+
+ + +
+
Defined in:
+
+ manifests/main/user.pp +
+
+
+ +

Summary

+ Class manages service users for confdroid_haproxy. + +

Overview

+
+
+ +

confdroid_haproxy::main::user.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@ConfDroid.com)

+ +
+
+ + + +
+ + + +
+ + + + + +
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+
+
# File 'manifests/main/user.pp', line 6
+
+class confdroid_haproxy::main::user (
+
+) inherits confdroid_haproxy::params {
+  if $fqdn == $hy_host_fqdn {
+    require confdroid_haproxy::main::install
+
+    # manage user
+    user { $hy_user_name:
+      ensure     => present,
+      name       => $hy_user_name,
+      allowdupe  => false,
+      comment    => $hy_user_comment,
+      gid        => $hy_user_name,
+      managehome => true,
+      home       => $hy_user_home,
+      shell      => $hy_user_shell,
+    }
+
+    group { $hy_user_name:
+      ensure    => present,
+      name      => $hy_user_name,
+      allowdupe => false,
+    }
+  }
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amonitoring_3A_3Afail2ban.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amonitoring_3A_3Afail2ban.html new file mode 100644 index 0000000..9444112 --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amonitoring_3A_3Afail2ban.html @@ -0,0 +1,190 @@ + + + + + + + Puppet Class: confdroid_haproxy::monitoring::fail2ban + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::monitoring::fail2ban

+
+ +
+
Inherits:
+
confdroid_haproxy::params
+
+ + +
+
Defined in:
+
+ manifests/monitoring/fail2ban.pp +
+
+
+ +

Summary

+ Class manages fail2ban settings + +

Overview

+
+
+ +

Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+ + + +
+ + + + + +
+
+
+
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+
+
# File 'manifests/monitoring/fail2ban.pp', line 5
+
+class confdroid_haproxy::monitoring::fail2ban (
+
+) inherits confdroid_haproxy::params {
+  if $hy_manage_fail2ban == true {
+    require confdroid_fail2ban # (external module)
+
+    # configure filter
+
+    file { '/etc/fail2ban/filter.d/haproxy.conf':
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template('confdroid_haproxy/fail2ban/f2b_haproxy.conf.erb'),
+      notify   => Service['fail2ban'],
+    }
+
+    file { '/etc/fail2ban/jail.d/010-haproxy.conf':
+      ensure   => file,
+      owner    => 'root',
+      group    => 'root',
+      mode     => '0644',
+      selrange => s0,
+      selrole  => object_r,
+      seltype  => etc_t,
+      seluser  => system_u,
+      content  => template('confdroid_haproxy/fail2ban/010_jail.d_haproxy.conf.erb'),
+      notify   => Service['fail2ban'],
+    }
+  }
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html new file mode 100644 index 0000000..c71ce8b --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html @@ -0,0 +1,1073 @@ + + + + + + + Puppet Class: confdroid_haproxy::params + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::params

+ + +

Overview

+
+
+ +

confdroid_haproxy::params.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+

Parameters:

+
    + +
  • + + pkg_ensure + + + (String) + + + (defaults to: 'latest') + + + — +
    +

    which package type to choose, i.e. latest or present.

    +
    + +
  • + +
  • + + reqpackages + + + (Array) + + + (defaults to: ['haproxy','httpd-tools']) + + + — +
    +

    specify the packages to be installed

    +
    + +
  • + +
  • + + hy_host_fqdn + + + (String) + + + (defaults to: undef) + + + — +
    +

    the fqdn of the ha proxy host. must be fqdn, not cname. specify multiple fqdns via array.

    +
    + +
  • + +
  • + + hy_manage_fw + + + (Boolean) + + + (defaults to: true) + + + — +
    +

    whether to manage the firewall.

    +
    + +
  • + +
  • + + hy_fw_order_no + + + (String) + + + (defaults to: '50') + + + — +
    +

    the rule number to control the order of the firewall rules.

    +
    + +
  • + +
  • + + hy_http_port + + + (String) + + + (defaults to: '80') + + + — +
    +

    the http port. used in firewall settings

    +
    + +
  • + +
  • + + hy_https_port + + + (String) + + + (defaults to: '443') + + + — +
    +

    the https port. used in firewall settings

    +
    + +
  • + +
  • + + hy_user_name + + + (String) + + + (defaults to: 'haproxy') + + + — +
    +

    the name of the haproxy service user.

    +
    + +
  • + +
  • + + hy_user_comment + + + (String) + + + (defaults to: 'haproxy user') + + + — +
    +

    the comment of the haproxy user, shows up in emails sent from haproxy.

    +
    + +
  • + +
  • + + hy_user_home + + + (String) + + + (defaults to: '/var/lib/haproxy') + + + — +
    +

    the home directory for the haproxy user.

    +
    + +
  • + +
  • + + hy_user_shell + + + (String) + + + (defaults to: '/sbin/nologin') + + + — +
    +

    the shell for the haproxy user.

    +
    + +
  • + +
  • + + hy_log_target + + + (String) + + + (defaults to: '127.0.0.1') + + + — +
    +

    Where to send the logs for this haproxy. Currently only local logging / rsyslog forwarding supported.

    +
    + +
  • + +
  • + + hy_log_facility + + + (String) + + + (defaults to: 'local2') + + + — +
    +

    which logging facility to use.

    +
    + +
  • + +
  • + + hy_chroot + + + (String) + + + (defaults to: '/var/lib/haproxy') + + + — +
    +

    where the chroot should be

    +
    + +
  • + +
  • + + hy_pid + + + (String) + + + (defaults to: '/var/run/haproxy.pid') + + + — +
    +

    the pid file to use.

    +
    + +
  • + +
  • + + hy_maxconn + + + (String) + + + (defaults to: '4000') + + + — +
    +

    how many connections should we max allow.

    +
    + +
  • + +
  • + + hy_show_stats + + + (Boolean) + + + (defaults to: false) + + + — +
    +

    whether we want to display the statistics page

    +
    + +
  • + +
  • + + hy_stats_socket + + + (String) + + + (defaults to: '/var/lib/haproxy/stats') + + + — +
    +

    name and path of the stats socket

    +
    + +
  • + +
  • + + hy_default_mode + + + (String) + + + (defaults to: 'tcp') + + + — +
    +

    which mode to use in the defaults block

    +
    + +
  • + +
  • + + hy_log_default + + + (String) + + + (defaults to: 'global') + + + — +
    +

    should be used when the instance’s logging parameters are the same as the global ones.

    +
    + +
  • + +
  • + + hy_timeout_http_request + + + (String) + + + (defaults to: '10s') + + + — +
    +

    Set the maximum allowed time to wait for a complete HTTP request.

    +
    + +
  • + +
  • + + hy_timeout_queue + + + (String) + + + (defaults to: '1m') + + + — +
    +

    Set the maximum time to wait in the queue for a connection slot to be free.

    +
    + +
  • + +
  • + + hy_timeout_http_keep_alive + + + (String) + + + (defaults to: '10s') + + + — +
    +

    set the timeout value for keeping https connections alive

    +
    + +
  • + +
  • + + hy_timeout_check + + + (String) + + + (defaults to: '10s') + + + — +
    +

    set the timeout value for how long to check if the timeout has occurred

    +
    + +
  • + +
  • + + hy_manage_fail2ban + + + (Boolean) + + + (defaults to: false) + + + — +
    +

    whether to integrate fail2ban

    +
    + +
  • + +
  • + + hy_use_http_server_close + + + (Boolean) + + + (defaults to: false) + + + — +
    +

    whether to use this in global mode

    +
    + +
  • + +
  • + + hy_use_forward_for + + + (Boolean) + + + (defaults to: false) + + + — +
    +

    whether to use this in global mode

    +
    + +
  • + +
  • + + hy_use_redispatch + + + (Boolean) + + + (defaults to: true) + + + — +
    +

    whether to use this in global mode

    +
    + +
  • + +
  • + + hy_max_retries + + + (String) + + + (defaults to: '3') + + + — +
    +

    max retries value

    +
    + +
  • + +
  • + + hy_timeout_connect + + + (String) + + + (defaults to: '10s') + + + — +
    +

    timeout for connections

    +
    + +
  • + +
  • + + hy_timeout_client + + + (String) + + + (defaults to: '1m') + + + — +
    +

    timeout for client connections

    +
    + +
  • + +
  • + + hy_timeout_server + + + (String) + + + (defaults to: '1m') + + + — +
    +

    timeout for server response

    +
    + +
  • + +
  • + + hy_hard_stop + + + (Boolean) + + + (defaults to: true) + + + — +
    +

    whether to use hard stop for service restart

    +
    + +
  • + +
  • + + hy_hard_stop_value + + + (String) + + + (defaults to: '60s') + + + — +
    +

    which value to use for hard stop

    +
    + +
  • + +
  • + + hy_stats_auth + + + (String) + + + (defaults to: 'admin:password') + + + — +
    +

    credentials to use for stats authentication

    +
    + +
  • + +
  • + + hy_log_local0 + + + (String) + + + (defaults to: '127.0.0.1:514 local0') + + + — +
    +

    settings for logging to local0

    +
    + +
  • + +
  • + + hy_log_local1 + + + (String) + + + (defaults to: '127.0.0.1:514 local1 notice') + + + — +
    +

    settings for logging to local1

    +
    + +
  • + +
  • + + hy_use_tcplog + + + (Boolean) + + + (defaults to: true) + + + — +
    +

    whether to use tcplog as default

    +
    + +
  • + +
  • + + hy_use_httplog + + + (Boolean) + + + (defaults to: false) + + + — +
    +

    whether to use httplog as default

    +
    + +
  • + +
  • + + hy_use_dontlognull + + + (Boolean) + + + (defaults to: true) + + + — +
    +

    whether to use dontlognull as default

    +
    + +
  • + +
  • + + hy_be_userlist + + + (String) + + + (defaults to: '####') + + + — +
    +

    backend userlist comment

    +
    + +
  • + +
  • + + hy_manage_be_users + + + (Boolean) + + + (defaults to: false) + + + — +
    +

    whether to manage backend users

    +
    + +
  • + +
+ + + +
+ + + + + +
+
+
+
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+
+
# File 'manifests/params.pp', line 58
+
+class confdroid_haproxy::params (
+
+  String $pkg_ensure                  = 'latest',
+  Array $reqpackages                  = ['haproxy','httpd-tools'],
+
+  String $hy_host_fqdn                = undef,
+
+# firewall
+  Boolean $hy_manage_fw               = true,
+  String $hy_fw_order_no              = '50',
+
+# fail2ban
+  Boolean $hy_manage_fail2ban         = false,
+
+# main config
+  String $hy_http_port                = '80',
+  String $hy_https_port               = '443',
+  String $hy_chroot                   = '/var/lib/haproxy',
+  String $hy_pid                      = '/var/run/haproxy.pid',
+  String $hy_maxconn                  = '4000',
+  Boolean $hy_show_stats              = false,
+  String $hy_stats_socket             = '/var/lib/haproxy/stats',
+  String $hy_default_mode             = 'tcp',
+  Boolean $hy_use_http_server_close   = false,
+  Boolean $hy_use_forward_for         = false,
+  Boolean $hy_use_redispatch          = true,
+  String $hy_max_retries              = '3',
+  String $hy_timeout_http_request     = '10s',
+  String $hy_timeout_queue            = '1m',
+  String $hy_timeout_connect          = '10s',
+  String $hy_timeout_client           = '1m',
+  String $hy_timeout_server           = '1m',
+  String $hy_timeout_http_keep_alive  = '10s',
+  String $hy_timeout_check            = '10s',
+  Boolean $hy_hard_stop               = true,
+  String $hy_hard_stop_value          = '60s',
+  String $hy_stats_auth               = 'admin:password',
+
+# user
+  String $hy_user_name                = 'haproxy',
+  String $hy_user_comment             = 'haproxy user',
+  String $hy_user_home                = '/var/lib/haproxy',
+  String $hy_user_shell               = '/sbin/nologin',
+
+# logging
+  String $hy_log_local0               = '127.0.0.1:514 local0',
+  String $hy_log_local1               = '127.0.0.1:514 local1 notice',
+  String $hy_log_target               = '127.0.0.1',
+  String $hy_log_facility             = 'local2',
+  String $hy_log_default              = 'global',
+  Boolean $hy_use_tcplog              = true,
+  Boolean $hy_use_httplog             = false,
+  Boolean $hy_use_dontlognull         = true,
+  Boolean $hy_manage_be_users         = false,
+  String $hy_be_userlist              = '####',
+
+) {
+  $fqdn                               = $facts['networking']['fqdn']
+
+  # service
+  $hy_service                         = 'haproxy'
+
+  # directories
+  $hy_main_dir                        = '/etc/haproxy'
+  $hy_errors_dir                      = "${hy_main_dir}/errors"
+  $hy_certs_dir                       = "${hy_main_dir}/certs"
+
+  # files
+  $hy_main_config                     = "${hy_main_dir}/haproxy.cfg"
+  $hy_config_head_erb                 = 'confdroid_haproxy/haproxy_head.erb'
+  $hy_config_tail_erb                 = 'confdroid_haproxy/haproxy_tail.erb'
+  $hy_400_file                        = "${hy_errors_dir}/400.http"
+  $hy_400_erb                         = 'confdroid_haproxy/errors/400_http.erb'
+  $hy_403_file                        = "${hy_errors_dir}/403.http"
+  $hy_403_erb                         = 'confdroid_haproxy/errors/403_http.erb'
+  $hy_408_file                        = "${hy_errors_dir}/408.http"
+  $hy_408_erb                         = 'confdroid_haproxy/errors/408_http.erb'
+  $hy_500_file                        = "${hy_errors_dir}/500.http"
+  $hy_500_erb                         = 'confdroid_haproxy/errors/500_http.erb'
+  $hy_502_file                        = "${hy_errors_dir}/502.http"
+  $hy_502_erb                         = 'confdroid_haproxy/errors/502_http.erb'
+  $hy_503_file                        = "${hy_errors_dir}/503.http"
+  $hy_503_erb                         = 'confdroid_haproxy/errors/503_http.erb'
+  $hy_504_file                        = "${hy_errors_dir}/504.http"
+  $hy_504_erb                         = 'confdroid_haproxy/errors/504_http.erb'
+
+  # includes must be last
+  include confdroid_haproxy::main::config
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Aserver_3A_3Aservice.html b/doc/puppet_classes/confdroid_haproxy_3A_3Aserver_3A_3Aservice.html new file mode 100644 index 0000000..0dfc380 --- /dev/null +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Aserver_3A_3Aservice.html @@ -0,0 +1,150 @@ + + + + + + + Puppet Class: confdroid_haproxy::server::service + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Puppet Class: confdroid_haproxy::server::service

+
+ +
+
Inherits:
+
confdroid_haproxy::params
+
+ + +
+
Defined in:
+
+ manifests/server/service.pp +
+
+
+ +

Summary

+ Class manages the service(s) for confdroid_haproxy. + +

Overview

+
+
+ +

confdroid_haproxy::server::service.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@confdroid.com)

+ +
+
+ + + +
+ + + +
+ + + + + +
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
+
# File 'manifests/server/service.pp', line 6
+
+class confdroid_haproxy::server::service (
+
+) inherits confdroid_haproxy::params {
+  if $fqdn == $hy_host_fqdn {
+    require confdroid_haproxy::firewall::iptables
+    require confdroid_haproxy::main::files
+
+    service { $hy_service:
+      ensure     => running,
+      hasstatus  => true,
+      hasrestart => true,
+      enable     => true,
+    }
+  }
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/puppet_defined_type_list.html b/doc/puppet_defined_type_list.html new file mode 100644 index 0000000..9a2ef57 --- /dev/null +++ b/doc/puppet_defined_type_list.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + Defined Type List + + + +
+
+

Defined Type List

+ + + +
+ + +
+ + diff --git a/doc/puppet_defined_types/confdroid_haproxy_3A_3Aserver_3A_3Aproxy.html b/doc/puppet_defined_types/confdroid_haproxy_3A_3Aserver_3A_3Aproxy.html new file mode 100644 index 0000000..d75e249 --- /dev/null +++ b/doc/puppet_defined_types/confdroid_haproxy_3A_3Aserver_3A_3Aproxy.html @@ -0,0 +1,693 @@ + + + + + + + Defined Type: confdroid_haproxy::server::proxy + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Defined Type: confdroid_haproxy::server::proxy

+
+
+
Defined in:
+
+ manifests/server/proxy.pp +
+
+
+ +

Summary

+ Define manages the proxies for confdroid_haproxy. + +

Overview

+
+
+ +

confdroid_haproxy::server::proxy.pp Module name: confdroid_haproxy Author: Arne Teuke (arne_teuke@ConfDroid.com)

+ +
+
+ + + +
+

Parameters:

+
    + +
  • + + haproxy_fqdn + + + (String) + + + (defaults to: undef) + + + — +
    +

    the fqdn of the haproxy server in question.

    +
    + +
  • + +
  • + + frontend_name + + + (String) + + + (defaults to: undef) + + + — +
    +

    the name for the frontend section rule.

    +
    + +
  • + +
  • + + frontend_order + + + (String) + + + (defaults to: '010') + + + — +
    +

    where the concat should appear in the file.

    +
    + +
  • + +
  • + + frontend_mode + + + (String) + + + (defaults to: undef) + + + — +
    +

    mode for the loadbalancer instance: http or tcp

    +
    + +
  • + +
  • + + fe_use_backend + + + (String) + + + (defaults to: '') + + + — +
    +

    which backend to use. if left empty, the default backend will be used.

    +
    + +
  • + +
  • + + fe_bind_mode + + + (String) + + + (defaults to: undef) + + + — +
    +

    which bind mode to use, i.e. to which interface and port to bind.

    +
    + +
  • + +
  • + + backend_name + + + (String) + + + (defaults to: '') + + + — +
    +

    the backend name to be used for the rule.

    +
    + +
  • + +
  • + + backend_order + + + (String) + + + (defaults to: '030') + + + — +
    +

    the order for the backend name, so it will be within the correct lb instance configuration.

    +
    + +
  • + +
  • + + fe_maxconn + + + (String) + + + (defaults to: '') + + + — +
    +

    the maximum connections for the lb instance.

    +
    + +
  • + +
  • + + be_server_name + + + (String) + + + (defaults to: '') + + + — +
    +

    set the name for the backend server

    +
    + +
  • + +
  • + + be_balance + + + (String) + + + (defaults to: '') + + + — +
    +

    what kind of balance should be used

    +
    + +
  • + +
  • + + be_mode + + + (String) + + + (defaults to: '') + + + — +
    +

    which backend mode should be used

    +
    + +
  • + +
  • + + default_backend + + + (String) + + + (defaults to: '') + + + — +
    +

    value for the default backend

    +
    + +
  • + +
  • + + be_option + + + (String) + + + (defaults to: '') + + + — +
    +

    value for a backend option

    +
    + +
  • + +
  • + + fe_tcp_request + + + (String) + + + (defaults to: '') + + + — +
    +

    value for a frontend tcp request

    +
    + +
  • + +
  • + + fe_http_request + + + (String) + + + (defaults to: '') + + + — +
    +

    value for a frontend http request

    +
    + +
  • + +
  • + + fe_option + + + (String) + + + (defaults to: '') + + + — +
    +

    value for a frontend option

    +
    + +
  • + +
  • + + acl_rule_front + + + (String) + + + (defaults to: '') + + + — +
    +

    value for a frontend acl rule

    +
    + +
  • + +
  • + + acl_rule_back + + + (String) + + + (defaults to: '') + + + — +
    +

    value for a backend acl rule

    +
    + +
  • + +
  • + + backend_configs + + + (Array) + + + (defaults to: []) + + + — +
    +

    array of values for the backend

    +
    + +
  • + +
  • + + be_stick_table + + + (String) + + + (defaults to: '') + + + — +
    +

    value for the backend stickiness

    +
    + +
  • + +
  • + + be_stick_on + + + (String) + + + (defaults to: '') + + + — +
    +

    value for th backend stickiness

    +
    + +
  • + +
  • + + be_http_check + + + (String) + + + (defaults to: '') + + + — +
    +

    value for backend http check

    +
    + +
  • + +
  • + + be_http_request + + + (String) + + + (defaults to: '') + + + — +
    +

    value for a backend http request

    +
    + +
  • + +
  • + + be_acl_rule + + + (String) + + + (defaults to: '') + + + — +
    +

    value for a backend acl rule

    +
    + +
  • + +
+ + + +
+ + + + + +
+
+
+
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+
+
# File 'manifests/server/proxy.pp', line 34
+
+define confdroid_haproxy::server::proxy (
+
+  String $haproxy_fqdn     = undef,
+  String $frontend_name    = undef,
+  String $frontend_mode    = undef,
+  String $fe_use_backend   = '',
+  String $fe_bind_mode     = undef,
+  String $fe_option        = '',
+  String $frontend_order   = '010',
+  String $acl_rule_front   = '',
+  String $acl_rule_back    = '',
+  String $backend_name     = '',
+  String $backend_order    = '030',
+  String $fe_maxconn       = '',
+  String $be_server_name   = '',
+  String $be_balance       = '',
+  String $be_mode          = '',
+  String $default_backend  = '',
+  String $be_option        = '',
+  String $fe_tcp_request   = '',
+  String $fe_http_request  = '',
+  Array $backend_configs  = [],
+  String $be_stick_table   = '',
+  String $be_stick_on      = '',
+  String $be_http_check    = '',
+  String $be_http_request  = '',
+  String $be_acl_rule      = '',
+
+) {
+  $fqdn                    = $facts['networking']['fqdn']
+
+  $hy_main_config   = '/etc/haproxy/haproxy.cfg'
+  $hy_frontendrule  = 'confdroid_haproxy/haproxy_frontend_rule.erb'
+  $hy_backendrule   = 'confdroid_haproxy/haproxy_backend_rule.erb'
+  $hy_acl_rule      = 'confdroid_haproxy/haproxy_acl_rule.erb'
+
+  # Ensure acl_rule_front and acl_rule_back are arrays
+  $acl_rule_front_array   = split($acl_rule_front, ';')
+  $acl_rule_back_array    = split($acl_rule_back, ';')
+  $fe_use_backend_array   = split($fe_use_backend,';')
+  $backend_name_array     = split($backend_name, ';')
+  $be_server_name_array   = split($be_server_name, ';')
+  $be_option_array        = split($be_option, ';')
+  $fe_tcp_request_array   = split($fe_tcp_request, ';')
+  $fe_option_array        = split($fe_option, ';')
+  $fe_http_request_array  = split($fe_http_request, ';')
+
+  # create frontend section
+  concat::fragment { "frontend_${name}":
+    target  => $hy_main_config,
+    content => template($hy_frontendrule),
+    order   => $frontend_order,
+  }
+
+  # Ensure backends are only created once
+  ensure_resource('concat::fragment', "backends_${name}", {
+      'target'  => $hy_main_config,
+      'content' => template($hy_backendrule),
+      'order'   => $backend_order,
+  })
+
+  # open specific firewall ports
+}
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/doc/top-level-namespace.html b/doc/top-level-namespace.html new file mode 100644 index 0000000..5d6b54b --- /dev/null +++ b/doc/top-level-namespace.html @@ -0,0 +1,98 @@ + + + + + + + Top Level Namespace + + — Documentation by YARD 0.9.36 + + + + + + + + + + + + + + + + + + + +
+ + +

Top Level Namespace + + + +

+
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + +
+ + \ No newline at end of file From 2ebe7721036561596e14b1b3f27e427b4188ef80 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Sat, 5 Sep 2026 12:02:06 +0200 Subject: [PATCH 02/11] Recommit for updates in build 3 --- ...fdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html b/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html index 9b7f6ae..07e5af9 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html @@ -117,13 +117,7 @@ 19 20 21 -22 -23 -24 -25 -26 -27 -28 +22
# File 'manifests/firewall/iptables.pp', line 6
@@ -143,12 +137,6 @@ class confdroid_haproxy::firewall::iptables (
       dport => $hy_https_port,
       jump  => 'accept',
     }
-
-    firewall { "${hy_fw_order_no}9000 tcp port minio-api":
-      proto => 'tcp',
-      dport => '9000',
-      jump  => 'accept',
-    }
   }
 }
From aab08293a7d854a4be1a96db1ed06e39e3b04bc4 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Sat, 5 Sep 2026 12:54:02 +0200 Subject: [PATCH 03/11] Recommit for updates in build 4 --- doc/file.README.html | 2 +- doc/index.html | 2 +- ...nfdroid_haproxy_3A_3Amain_3A_3Aconfig.html | 14 ++++++++- .../confdroid_haproxy_3A_3Aparams.html | 30 +++++++++++++++++-- 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/doc/file.README.html b/doc/file.README.html index 135f5c5..7c5760f 100644 --- a/doc/file.README.html +++ b/doc/file.README.html @@ -186,7 +186,7 @@

SELINUX

-

All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored.

+

All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module) and hy_show_statsis set to true, the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it.

Known Problems

diff --git a/doc/index.html b/doc/index.html index 015b6c7..48badd7 100644 --- a/doc/index.html +++ b/doc/index.html @@ -186,7 +186,7 @@

SELINUX

-

All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored.

+

All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module) and hy_show_statsis set to true, the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it.

Known Problems

diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html index d789c2a..9ed838a 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html @@ -109,7 +109,13 @@ 11 12 13 -14 +14 +15 +16 +17 +18 +19 +20
# File 'manifests/main/config.pp', line 6
@@ -122,6 +128,12 @@ class confdroid_haproxy::main::config (
   if $hy_manage_fail2ban == true {
     include confdroid_haproxy::monitoring::fail2ban
   }
+
+  if $hy_selinux_allow_stats == true {
+    exec { 'setsebool haproxy_connect_any on':
+      path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'],
+    }
+  }
 }
diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html index c71ce8b..372d73e 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html @@ -861,6 +861,24 @@ —

whether to manage backend users

+
+ + + +
  • + + hy_selinux_allow_stats + + + (Boolean) + + + (defaults to: false) + + + — +
    +

    whether to allow stats in selinux

  • @@ -876,7 +894,6 @@
     
     
    -58
     59
     60
     61
    @@ -964,10 +981,14 @@
     143
     144
     145
    -146
    +146 +147 +148 +149 +150 -
    # File 'manifests/params.pp', line 58
    +        
    # File 'manifests/params.pp', line 59
     
     class confdroid_haproxy::params (
     
    @@ -983,6 +1004,9 @@ class confdroid_haproxy::params (
     # fail2ban
       Boolean $hy_manage_fail2ban         = false,
     
    +# selinux
    +  Boolean $hy_selinux_allow_stats     = false,
    +
     # main config
       String $hy_http_port                = '80',
       String $hy_https_port               = '443',
    
    From aa92f1c5a5bc0c7a506765f1d5a66b618dfe9ebd Mon Sep 17 00:00:00 2001
    From: Jenkins Server 
    Date: Sat, 5 Sep 2026 12:59:46 +0200
    Subject: [PATCH 04/11] Recommit for updates in build 5
    
    ---
     ...d_haproxy_3A_3Afirewall_3A_3Aiptables.html | 18 ++++++++++++-
     .../confdroid_haproxy_3A_3Aparams.html        | 26 ++++++++++++++++---
     2 files changed, 40 insertions(+), 4 deletions(-)
    
    diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html b/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html
    index 07e5af9..66c8ffb 100644
    --- a/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html
    +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html
    @@ -117,7 +117,15 @@
     19
     20
     21
    -22
    +22 +23 +24 +25 +26 +27 +28 +29 +30
    # File 'manifests/firewall/iptables.pp', line 6
    @@ -137,6 +145,14 @@ class confdroid_haproxy::firewall::iptables (
           dport => $hy_https_port,
           jump  => 'accept',
         }
    +
    +    if $hy_show_stats == true {
    +      firewall { "${hy_fw_order_no}${hy_stats_port} tcp port ${hy_stats_port}":
    +        proto => 'tcp',
    +        dport => $hy_stats_port,
    +        jump  => 'accept',
    +      }
    +    }
       }
     }
    diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html index 372d73e..15af7fd 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html @@ -879,6 +879,24 @@ —

    whether to allow stats in selinux

    +
    + + + +
  • + + hy_stats_port + + + (String) + + + (defaults to: '8404') + + + — +
    +

    the port to use for stats. used in firewall settings

  • @@ -894,7 +912,6 @@
     
     
    -59
     60
     61
     62
    @@ -985,10 +1002,12 @@
     147
     148
     149
    -150
    +150 +151 +152 -
    # File 'manifests/params.pp', line 59
    +        
    # File 'manifests/params.pp', line 60
     
     class confdroid_haproxy::params (
     
    @@ -1010,6 +1029,7 @@ class confdroid_haproxy::params (
     # main config
       String $hy_http_port                = '80',
       String $hy_https_port               = '443',
    +  String $hy_stats_port               = '8404',
       String $hy_chroot                   = '/var/lib/haproxy',
       String $hy_pid                      = '/var/run/haproxy.pid',
       String $hy_maxconn                  = '4000',
    
    From 1467a2d6a325f425e4eeb42dfe1e01c1e4ebabe5 Mon Sep 17 00:00:00 2001
    From: Jenkins Server 
    Date: Sat, 5 Sep 2026 13:09:34 +0200
    Subject: [PATCH 05/11] Recommit for updates in build 7
    
    ---
     doc/file.README.html                          |  2 +-
     doc/index.html                                |  2 +-
     ...d_haproxy_3A_3Afirewall_3A_3Aiptables.html | 14 ++++------
     .../confdroid_haproxy_3A_3Aparams.html        | 26 +++----------------
     4 files changed, 10 insertions(+), 34 deletions(-)
    
    diff --git a/doc/file.README.html b/doc/file.README.html
    index 7c5760f..2ac753a 100644
    --- a/doc/file.README.html
    +++ b/doc/file.README.html
    @@ -186,7 +186,7 @@
     
     

    SELINUX

    -

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module) and hy_show_statsis set to true, the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it.

    +

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module), the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it.

    Known Problems

    diff --git a/doc/index.html b/doc/index.html index 48badd7..233b756 100644 --- a/doc/index.html +++ b/doc/index.html @@ -186,7 +186,7 @@

    SELINUX

    -

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module) and hy_show_statsis set to true, the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it.

    +

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module), the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it.

    Known Problems

    diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html b/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html index 66c8ffb..492f9a0 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Afirewall_3A_3Aiptables.html @@ -123,9 +123,7 @@ 25 26 27 -28 -29 -30
    +28
    # File 'manifests/firewall/iptables.pp', line 6
    @@ -146,12 +144,10 @@ class confdroid_haproxy::firewall::iptables (
           jump  => 'accept',
         }
     
    -    if $hy_show_stats == true {
    -      firewall { "${hy_fw_order_no}${hy_stats_port} tcp port ${hy_stats_port}":
    -        proto => 'tcp',
    -        dport => $hy_stats_port,
    -        jump  => 'accept',
    -      }
    +    firewall { "${hy_fw_order_no}${hy_stats_port} tcp port ${hy_stats_port}":
    +      proto => 'tcp',
    +      dport => $hy_stats_port,
    +      jump  => 'accept',
         }
       }
     }
    diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html index 15af7fd..3d79bcf 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html @@ -397,24 +397,6 @@ -
  • - - hy_show_stats - - - (Boolean) - - - (defaults to: false) - - - — -
    -

    whether we want to display the statistics page

    -
    - -
  • -
  • hy_stats_socket @@ -912,6 +894,7 @@
     
     
    +59
     60
     61
     62
    @@ -1002,12 +985,10 @@
     147
     148
     149
    -150
    -151
    -152
    +150 -
    # File 'manifests/params.pp', line 60
    +        
    # File 'manifests/params.pp', line 59
     
     class confdroid_haproxy::params (
     
    @@ -1033,7 +1014,6 @@ class confdroid_haproxy::params (
       String $hy_chroot                   = '/var/lib/haproxy',
       String $hy_pid                      = '/var/run/haproxy.pid',
       String $hy_maxconn                  = '4000',
    -  Boolean $hy_show_stats              = false,
       String $hy_stats_socket             = '/var/lib/haproxy/stats',
       String $hy_default_mode             = 'tcp',
       Boolean $hy_use_http_server_close   = false,
    
    From 95feb25654d69ce3ec3a441022dcb57dcb649845 Mon Sep 17 00:00:00 2001
    From: Jenkins Server 
    Date: Sat, 5 Sep 2026 13:11:10 +0200
    Subject: [PATCH 06/11] Recommit for updates in build 8
    
    ---
     doc/file.README.html                                  | 2 +-
     doc/index.html                                        | 2 +-
     doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html | 4 ++--
     3 files changed, 4 insertions(+), 4 deletions(-)
    
    diff --git a/doc/file.README.html b/doc/file.README.html
    index 2ac753a..e9f2bbf 100644
    --- a/doc/file.README.html
    +++ b/doc/file.README.html
    @@ -186,7 +186,7 @@
     
     

    SELINUX

    -

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module), the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it.

    +

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module), the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it. This is the default setting.

    Known Problems

    diff --git a/doc/index.html b/doc/index.html index 233b756..16616b5 100644 --- a/doc/index.html +++ b/doc/index.html @@ -186,7 +186,7 @@

    SELINUX

    -

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module), the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it.

    +

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module), the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it. This is the default setting.

    Known Problems

    diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html index 3d79bcf..925d2fe 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html @@ -855,7 +855,7 @@ (Boolean) - (defaults to: false) + (defaults to: true) — @@ -1005,7 +1005,7 @@ class confdroid_haproxy::params ( Boolean $hy_manage_fail2ban = false, # selinux - Boolean $hy_selinux_allow_stats = false, + Boolean $hy_selinux_allow_stats = true, # main config String $hy_http_port = '80', From 3ba353aef47d8555dacedaa459a1dda9e4a9d0c3 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Sat, 5 Sep 2026 13:32:27 +0200 Subject: [PATCH 07/11] Recommit for updates in build 9 --- doc/file.README.html | 34 +++++++++++++++++++++++++++++++--- doc/index.html | 34 +++++++++++++++++++++++++++++++--- 2 files changed, 62 insertions(+), 6 deletions(-) diff --git a/doc/file.README.html b/doc/file.README.html index e9f2bbf..e991a83 100644 --- a/doc/file.README.html +++ b/doc/file.README.html @@ -78,6 +78,8 @@
  • Proxy Configuration

  • +

    TLS

    +
  • SELINUX

  • Known Problems

    @@ -126,7 +128,7 @@
  • ACL options

  • -

    manage fail2ban integration (optional, requires fail2ban_cd module)

    +

    manage fail2ban integration (optional, requires confdroid_fail2ban module)

  • SERVICE

    @@ -140,8 +142,6 @@

    All dependencies must be included in the catalogue.

    @@ -172,6 +172,8 @@

    The proxy instances are configured in /etc/haproxy/haproxy.cfg, which is concatenated from various templates through a define in this puppet module. In order to create proxy instances, you will need an external class, which addresses the define, like so:

    +

    ACL rule:

    +
    confdroid_haproxy::server::proxy { 'testing':
         haproxy_fqdn    =>  'node.example.net',
         frontend_name   =>  'test01-frontend',
    @@ -182,8 +184,34 @@
       }
     
    +

    real Proxy for https:

    + +
    haproxy_cd::server::proxy { 'https-in':
    +    haproxy_fqdn    => 'node.example.net',
    +    frontend_name   => 'https-in',
    +    frontend_mode   => 'http',
    +    fe_bind_mode    => '*:443 ssl crt /etc/haproxy/certs/',
    +    fe_option       => 'forwardfor',
    +    fe_http_request => 'add-header X-Forwarded-Proto https',
    +    acl_rule_front  => 'host_grafana hdr(host) -i grafana.example.net',
    +    fe_use_backend  => 'grafana_backend if host_grafana',
    +    backend_configs => [
    +      {
    +        'backend_name'         => 'grafana_backend',
    +        'be_mode'              => 'http',
    +        'be_balance'           => 'roundrobin',
    +        'be_server_name_array' => ['node1 10.0.1.1:8080 check'],
    +      }
    +    ]
    +  default_backend => 'error_backend',
    +
    +

    This allows the puppet module to create the sections in the configuration file as required. The haproxy service will be restarted after the changes in the configuration file are made. haproxy_fqdn must- contain the fqdn of the haproxy server- where this should be configured, otherwise the templates are not being populated. Multiple ACLs need to be added as array, and will create one line each.

    +

    TLS

    + +

    Haproxy can manage all sorts of proxies including http and https. It also can terminate https requests and send the requests within a private network unencrypted, which is quite common. This module is NOT managing certificates, as there are many ways to manage this, including Kubernetes cert-manager, Let’s encrypt or other ways.

    +

    SELINUX

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module), the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it. This is the default setting.

    diff --git a/doc/index.html b/doc/index.html index 16616b5..79f4334 100644 --- a/doc/index.html +++ b/doc/index.html @@ -78,6 +78,8 @@
  • Proxy Configuration

  • +

    TLS

    +
  • SELINUX

  • Known Problems

    @@ -126,7 +128,7 @@
  • ACL options

  • -

    manage fail2ban integration (optional, requires fail2ban_cd module)

    +

    manage fail2ban integration (optional, requires confdroid_fail2ban module)

  • SERVICE

    @@ -140,8 +142,6 @@

    All dependencies must be included in the catalogue.

    @@ -172,6 +172,8 @@

    The proxy instances are configured in /etc/haproxy/haproxy.cfg, which is concatenated from various templates through a define in this puppet module. In order to create proxy instances, you will need an external class, which addresses the define, like so:

    +

    ACL rule:

    +
    confdroid_haproxy::server::proxy { 'testing':
         haproxy_fqdn    =>  'node.example.net',
         frontend_name   =>  'test01-frontend',
    @@ -182,8 +184,34 @@
       }
     
    +

    real Proxy for https:

    + +
    haproxy_cd::server::proxy { 'https-in':
    +    haproxy_fqdn    => 'node.example.net',
    +    frontend_name   => 'https-in',
    +    frontend_mode   => 'http',
    +    fe_bind_mode    => '*:443 ssl crt /etc/haproxy/certs/',
    +    fe_option       => 'forwardfor',
    +    fe_http_request => 'add-header X-Forwarded-Proto https',
    +    acl_rule_front  => 'host_grafana hdr(host) -i grafana.example.net',
    +    fe_use_backend  => 'grafana_backend if host_grafana',
    +    backend_configs => [
    +      {
    +        'backend_name'         => 'grafana_backend',
    +        'be_mode'              => 'http',
    +        'be_balance'           => 'roundrobin',
    +        'be_server_name_array' => ['node1 10.0.1.1:8080 check'],
    +      }
    +    ]
    +  default_backend => 'error_backend',
    +
    +

    This allows the puppet module to create the sections in the configuration file as required. The haproxy service will be restarted after the changes in the configuration file are made. haproxy_fqdn must- contain the fqdn of the haproxy server- where this should be configured, otherwise the templates are not being populated. Multiple ACLs need to be added as array, and will create one line each.

    +

    TLS

    + +

    Haproxy can manage all sorts of proxies including http and https. It also can terminate https requests and send the requests within a private network unencrypted, which is quite common. This module is NOT managing certificates, as there are many ways to manage this, including Kubernetes cert-manager, Let’s encrypt or other ways.

    +

    SELINUX

    All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored. If selinux is set to enforce (not controlled within this module), the parameter hy_selinux_allow_stats must also be set to true, else the haproxy service will not start as selinux will not allow it. This is the default setting.

    From 7eca92f31293bd2f09c5a948321b519f3e7332e1 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Sat, 5 Sep 2026 14:43:48 +0200 Subject: [PATCH 08/11] Recommit for updates in build 10 --- doc/file.README.html | 4 ++++ doc/index.html | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/doc/file.README.html b/doc/file.README.html index e991a83..aaa0b0f 100644 --- a/doc/file.README.html +++ b/doc/file.README.html @@ -128,6 +128,8 @@
  • ACL options

  • +

    adds haproxy logs to rsyslog for remote logging where used

    +
  • manage fail2ban integration (optional, requires confdroid_fail2ban module)

  • @@ -136,6 +138,8 @@

    manage haproxy service

  • restart service after changes in the configuration

    +
  • +

    stats are enabled on port 8404 with uri /haproxy?stats and strict private mode, set hy_stats_auth to something meaningful.

  • Dependencies

    diff --git a/doc/index.html b/doc/index.html index 79f4334..56b1375 100644 --- a/doc/index.html +++ b/doc/index.html @@ -128,6 +128,8 @@
  • ACL options

  • +

    adds haproxy logs to rsyslog for remote logging where used

    +
  • manage fail2ban integration (optional, requires confdroid_fail2ban module)

  • @@ -136,6 +138,8 @@

    manage haproxy service

  • restart service after changes in the configuration

    +
  • +

    stats are enabled on port 8404 with uri /haproxy?stats and strict private mode, set hy_stats_auth to something meaningful.

  • Dependencies

    From 9dcbd4dc965dd5e8d85b7a67a8fab73d8976233b Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Sat, 5 Sep 2026 14:49:34 +0200 Subject: [PATCH 09/11] Recommit for updates in build 11 --- doc/file.README.html | 2 +- doc/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/file.README.html b/doc/file.README.html index aaa0b0f..a542ebe 100644 --- a/doc/file.README.html +++ b/doc/file.README.html @@ -60,7 +60,7 @@

    Readme

    -

    +

    • Readme

    • diff --git a/doc/index.html b/doc/index.html index 56b1375..2c1ce7c 100644 --- a/doc/index.html +++ b/doc/index.html @@ -60,7 +60,7 @@

      Readme

      -

      +

      • Readme

      • From 7cfeb74c91ed72b7946c59a60422d1648a89ddaf Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Mon, 7 Sep 2026 14:56:05 +0200 Subject: [PATCH 10/11] Recommit for updates in build 12 --- .../confdroid_haproxy_3A_3Amain_3A_3Aconfig.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html index 9ed838a..96826d2 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html @@ -115,7 +115,8 @@ 17 18 19 -20 +20 +21
        # File 'manifests/main/config.pp', line 6
        @@ -131,7 +132,8 @@ class confdroid_haproxy::main::config (
         
           if $hy_selinux_allow_stats == true {
             exec { 'setsebool haproxy_connect_any on':
        -      path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'],
        +      path   => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'],
        +      onlyif => '/usr/sbin/getsebool haproxy_connect_any | /usr/bin/grep -q " --> off$"',
             }
           }
         }
        From 958caf7c66620e3ea797f6cd5c69e9aa1f16724e Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Mon, 7 Sep 2026 15:45:54 +0200 Subject: [PATCH 11/11] Recommit for updates in build 13 --- doc/_index.html | 5 + doc/puppet_class_list.html | 11 +- ...nfdroid_haproxy_3A_3Amain_3A_3Aconfig.html | 10 +- ...d_haproxy_3A_3Amonitoring_3A_3Atarget.html | 156 ++++++++++++++++++ .../confdroid_haproxy_3A_3Aparams.html | 91 +++++++++- 5 files changed, 265 insertions(+), 8 deletions(-) create mode 100644 doc/puppet_classes/confdroid_haproxy_3A_3Amonitoring_3A_3Atarget.html diff --git a/doc/_index.html b/doc/_index.html index 656546b..6bad324 100644 --- a/doc/_index.html +++ b/doc/_index.html @@ -108,6 +108,11 @@
      • +
      • + confdroid_haproxy::monitoring::target + +
      • +
      • confdroid_haproxy::params diff --git a/doc/puppet_class_list.html b/doc/puppet_class_list.html index 1cf2f4a..657caff 100644 --- a/doc/puppet_class_list.html +++ b/doc/puppet_class_list.html @@ -96,14 +96,21 @@
      • -
      • +
      • + +
      • + + +
      • -
      • +
      • diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html index 96826d2..6464875 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amain_3A_3Aconfig.html @@ -116,7 +116,11 @@ 18 19 20 -21 +21 +22 +23 +24 +25
        # File 'manifests/main/config.pp', line 6
        @@ -130,6 +134,10 @@ class confdroid_haproxy::main::config (
             include confdroid_haproxy::monitoring::fail2ban
           }
         
        +  if $hy_manage_nagios == true {
        +    include confdroid_haproxy::monitoring::target
        +  }
        +
           if $hy_selinux_allow_stats == true {
             exec { 'setsebool haproxy_connect_any on':
               path   => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'],
        diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Amonitoring_3A_3Atarget.html b/doc/puppet_classes/confdroid_haproxy_3A_3Amonitoring_3A_3Atarget.html
        new file mode 100644
        index 0000000..52496ee
        --- /dev/null
        +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Amonitoring_3A_3Atarget.html
        @@ -0,0 +1,156 @@
        +
        +
        +  
        +    
        +
        +
        +  Puppet Class: confdroid_haproxy::monitoring::target
        +  
        +    — Documentation by YARD 0.9.36
        +  
        +
        +
        +  
        +
        +  
        +
        +
        +
        +
        +  
        +
        +  
        +
        +
        +  
        +  
        +    
        +
        +    
        + + +

        Puppet Class: confdroid_haproxy::monitoring::target

        +
        + +
        +
        Inherits:
        +
        confdroid_haproxy::params
        +
        + + +
        +
        Defined in:
        +
        + manifests/monitoring/target.pp +
        +
        +
        + +

        Summary

        + class manages exports for nagios monitoring + +

        Overview

        +
        +
        + +

        confdroid_haproxy::monitoring::target.pp Module name: confdroid_haproxy Author: 12ww1160 (12ww1160@puppetsoft.com)

        + +
        +
        + + + +
        + + + +
        + + + + + +
        +
        +
        +
        +6
        +7
        +8
        +9
        +10
        +11
        +12
        +13
        +14
        +15
        +16
        +17
        +18
        +19
        +20
        +21
        +22
        +23
        +
        +
        # File 'manifests/monitoring/target.pp', line 6
        +
        +class confdroid_haproxy::monitoring::target (
        +
        +) inherits confdroid_haproxy::params {
        +  if $hy_manage_nagios == true {
        +    @@nagios_service { "check_haproxy_${fqdn}":
        +      check_command       => "check_nrpe!check_haproxy!${hy_procs_allowed}!haproxy",
        +      use                 => 'generic-service',
        +      host_name           => $fqdn,
        +      notification_period => '24x7',
        +      service_description => "${fqdn}_check_haproxy",
        +      target              => $hy_target_service,
        +      owner               => 'nagios',
        +      group               => 'nagios',
        +      mode                => '0640',
        +      contacts            => $hy_target_contacts,
        +    }
        +  }
        +}
        +
        +
        +
        + + + +
        + + \ No newline at end of file diff --git a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html index 925d2fe..0f49c2f 100644 --- a/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html +++ b/doc/puppet_classes/confdroid_haproxy_3A_3Aparams.html @@ -81,6 +81,8 @@ confdroid_haproxy::firewall::iptables
        + confdroid_haproxy::monitoring::target
        + confdroid_haproxy::monitoring::fail2ban
        @@ -883,6 +885,73 @@
      • +
      • + + hy_manage_nagios + + + (Boolean) + + + (defaults to: false) + + + — +
        +

        whether to manage nagios service checks

        +
        + +
      • + +
      • + + hy_target_service + + + (String) + + + (defaults to: '/etc/nagios/conf.d/haproxy_service.cfg') + + + — +
        +

        the path to the nagios service check file

        +
        + +
      • + +
      • + + hy_target_contacts + + + (Array) + + + (defaults to: ['nagiosadmin']) + + + — +
        +

        the contacts to use for nagios service checks

        +
        + +
      • + +
      • + + hy_procs_allowed + + + (String) + + + (defaults to: '1:1') + + +
      • +
      @@ -894,9 +963,6 @@
       
       
      -59
      -60
      -61
       62
       63
       64
      @@ -985,10 +1051,19 @@
       147
       148
       149
      -150
      +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 -
      # File 'manifests/params.pp', line 59
      +        
      # File 'manifests/params.pp', line 62
       
       class confdroid_haproxy::params (
       
      @@ -1049,6 +1124,12 @@ class confdroid_haproxy::params (
         Boolean $hy_manage_be_users         = false,
         String $hy_be_userlist              = '####',
       
      +# nagios
      +  Boolean $hy_manage_nagios           = false,
      +  String $hy_target_service           = '/etc/nagios/conf.d/haproxy_service.cfg',
      +  Array $hy_target_contacts           = ['nagiosadmin'],
      +  String $hy_procs_allowed            = '1:1'
      +
       ) {
         $fqdn                               = $facts['networking']['fqdn']