diff --git a/CHANGELOG.md b/CHANGELOG.md index 96335c6..662520a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,886 +1,910 @@ # Change Log +## [v3.1.0](https://github.com/icinga/puppet-icinga2/tree/v3.1.0) (2021-04-24) +[Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v3.0.0...v3.1.0) + +**Implemented enhancements:** + +- Change owner of config file to icinga [\#660](https://github.com/Icinga/puppet-icinga2/issues/660) +- Add some words to reserve list [\#659](https://github.com/Icinga/puppet-icinga2/issues/659) +- Allow to send cert req without ticket [\#653](https://github.com/Icinga/puppet-icinga2/issues/653) +- Add new parameter logon\_account [\#650](https://github.com/Icinga/puppet-icinga2/issues/650) +- Manage owner, group and permission of config files [\#648](https://github.com/Icinga/puppet-icinga2/issues/648) + +**Fixed bugs:** + +- Added Dictionary to reserved list [\#655](https://github.com/Icinga/puppet-icinga2/pull/655) ([hp197](https://github.com/hp197)) +- Changed Integer parameters into Icinga2::Interval [\#654](https://github.com/Icinga/puppet-icinga2/pull/654) ([hp197](https://github.com/hp197)) + +**Closed issues:** + +- Support conditional blocks inside objects [\#652](https://github.com/Icinga/puppet-icinga2/issues/652) + +**Merged pull requests:** + +- docs: Add comma to clustering example [\#646](https://github.com/Icinga/puppet-icinga2/pull/646) ([fionera](https://github.com/fionera)) + ## [v3.0.0](https://github.com/icinga/puppet-icinga2/tree/v3.0.0) (2020-10-13) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.4.1...v3.0.0) **Implemented enhancements:** - Replace class repo with new class from module icinga [\#613](https://github.com/Icinga/puppet-icinga2/issues/613) - Add new param manage\_repos to replace manage\_repo in the future [\#643](https://github.com/Icinga/puppet-icinga2/pull/643) ([lbetz](https://github.com/lbetz)) - add-unit-tests-for-types [\#641](https://github.com/Icinga/puppet-icinga2/pull/641) ([lbetz](https://github.com/lbetz)) - fix \#623 change data types of all certificates and keys [\#640](https://github.com/Icinga/puppet-icinga2/pull/640) ([lbetz](https://github.com/lbetz)) - Accepts SHA1 and SHA256 fingerprint digests [\#632](https://github.com/Icinga/puppet-icinga2/pull/632) ([thorstenk](https://github.com/thorstenk)) **Fixed bugs:** - Parameter icon\_image value must not be an absolute path [\#619](https://github.com/Icinga/puppet-icinga2/issues/619) - Attribute parser breaks passwords [\#616](https://github.com/Icinga/puppet-icinga2/issues/616) - setting env vars in \#618 do not work on Windows [\#642](https://github.com/Icinga/puppet-icinga2/pull/642) ([lbetz](https://github.com/lbetz)) - Missing parameters [\#630](https://github.com/Icinga/puppet-icinga2/pull/630) ([jas01](https://github.com/jas01)) - Add environment variables for icinga user and group to execs [\#618](https://github.com/Icinga/puppet-icinga2/pull/618) ([joernott](https://github.com/joernott)) **Closed issues:** +- Accept SHA256 fingerprints \(since Icinga2 2.12.0\) [\#631](https://github.com/Icinga/puppet-icinga2/issues/631) +- Setting up certificates does not work if user != icinga [\#617](https://github.com/Icinga/puppet-icinga2/issues/617) - Add unit test for type logseverity [\#639](https://github.com/Icinga/puppet-icinga2/issues/639) - Add unit test for type logfacility [\#638](https://github.com/Icinga/puppet-icinga2/issues/638) - Add unit test for type interval [\#636](https://github.com/Icinga/puppet-icinga2/issues/636) - Add unit test for type fingerprint [\#635](https://github.com/Icinga/puppet-icinga2/issues/635) -- Accept SHA256 fingerprints \(since Icinga2 2.12.0\) [\#631](https://github.com/Icinga/puppet-icinga2/issues/631) - Change all TLS certificates and keys to datatype Stdlib::Base64 [\#623](https://github.com/Icinga/puppet-icinga2/issues/623) -- Setting up certificates does not work if user != icinga [\#617](https://github.com/Icinga/puppet-icinga2/issues/617) **Merged pull requests:** - correct fixtures and metadata [\#634](https://github.com/Icinga/puppet-icinga2/pull/634) ([SimonHoenscheid](https://github.com/SimonHoenscheid)) - changes to fix breaking tests [\#633](https://github.com/Icinga/puppet-icinga2/pull/633) ([SimonHoenscheid](https://github.com/SimonHoenscheid)) ## [v2.4.1](https://github.com/icinga/puppet-icinga2/tree/v2.4.1) (2020-05-05) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.4.0...v2.4.1) **Fixed bugs:** - Lost pull request \#611 [\#615](https://github.com/Icinga/puppet-icinga2/issues/615) ## [v2.4.0](https://github.com/icinga/puppet-icinga2/tree/v2.4.0) (2020-04-24) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.3.4...v2.4.0) **Implemented enhancements:** - Add new icingadb feature [\#612](https://github.com/Icinga/puppet-icinga2/issues/612) - Rework examples and docs [\#423](https://github.com/Icinga/puppet-icinga2/issues/423) - install icinga2-selinux [\#602](https://github.com/Icinga/puppet-icinga2/pull/602) ([b3n4kh](https://github.com/b3n4kh)) **Fixed bugs:** - Fix rubocop LineLength \# see https://rubocop.readthedocs.io/en/latest… [\#611](https://github.com/Icinga/puppet-icinga2/pull/611) ([thomas-merz](https://github.com/thomas-merz)) ## [v2.3.4](https://github.com/icinga/puppet-icinga2/tree/v2.3.4) (2020-03-25) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.3.3...v2.3.4) **Implemented enhancements:** - Remove Support for some platforms [\#610](https://github.com/Icinga/puppet-icinga2/issues/610) - Allow to parse a simple hash in strings [\#588](https://github.com/Icinga/puppet-icinga2/issues/588) - Allow to parse an array in strings [\#587](https://github.com/Icinga/puppet-icinga2/issues/587) - rework icinga2::repo class to a public class [\#609](https://github.com/Icinga/puppet-icinga2/pull/609) ([lbetz](https://github.com/lbetz)) - Influxdb can be reachable via any port [\#607](https://github.com/Icinga/puppet-icinga2/pull/607) ([b3n4kh](https://github.com/b3n4kh)) - Debian10 support [\#604](https://github.com/Icinga/puppet-icinga2/pull/604) ([lbetz](https://github.com/lbetz)) - Enhancement/allow to get attributes from function result [\#603](https://github.com/Icinga/puppet-icinga2/pull/603) ([lbetz](https://github.com/lbetz)) - RHEL 8 support [\#600](https://github.com/Icinga/puppet-icinga2/pull/600) ([lbetz](https://github.com/lbetz)) - Porting functions to the modern Puppet 4.x API [\#598](https://github.com/Icinga/puppet-icinga2/pull/598) ([binford2k](https://github.com/binford2k)) **Fixed bugs:** - add missing EPEL repo on RedHat [\#599](https://github.com/Icinga/puppet-icinga2/pull/599) ([lbetz](https://github.com/lbetz)) ## [v2.3.3](https://github.com/icinga/puppet-icinga2/tree/v2.3.3) (2020-03-16) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.3.2...v2.3.3) **Fixed bugs:** - Private keys: no diff, no backup [\#606](https://github.com/Icinga/puppet-icinga2/pull/606) ([Thomas-Gelf](https://github.com/Thomas-Gelf)) **Closed issues:** - REOPEN: does not handle database host correctly [\#572](https://github.com/Icinga/puppet-icinga2/issues/572) ## [v2.3.2](https://github.com/icinga/puppet-icinga2/tree/v2.3.2) (2019-12-18) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.3.1...v2.3.2) **Fixed bugs:** - Missing default in case statement for pki in feature::api [\#596](https://github.com/Icinga/puppet-icinga2/pull/596) ([lbetz](https://github.com/lbetz)) ## [v2.3.1](https://github.com/icinga/puppet-icinga2/tree/v2.3.1) (2019-12-17) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.3.0...v2.3.1) **Fixed bugs:** - Add Backports Repo on Debian [\#595](https://github.com/Icinga/puppet-icinga2/issues/595) - Rework and correct documentation of Clustering Icinga 2 [\#584](https://github.com/Icinga/puppet-icinga2/issues/584) **Closed issues:** - Cannot complete agent / client add via puppet [\#585](https://github.com/Icinga/puppet-icinga2/issues/585) ## [v2.3.0](https://github.com/icinga/puppet-icinga2/tree/v2.3.0) (2019-07-26) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.2.0...v2.3.0) **Implemented enhancements:** - Add new attributes to feature api [\#581](https://github.com/Icinga/puppet-icinga2/issues/581) - Add new constants and keywords [\#579](https://github.com/Icinga/puppet-icinga2/issues/579) - Add info of new constant MaxConcurrentChecks to feature checker [\#578](https://github.com/Icinga/puppet-icinga2/issues/578) - New HA-aware Features [\#576](https://github.com/Icinga/puppet-icinga2/issues/576) **Fixed bugs:** - Remove OpenBSD from official support list [\#583](https://github.com/Icinga/puppet-icinga2/issues/583) - Add missed flapping attributes to objects host and service [\#580](https://github.com/Icinga/puppet-icinga2/issues/580) ## [v2.2.0](https://github.com/icinga/puppet-icinga2/tree/v2.2.0) (2019-07-14) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.1.1...v2.2.0) **Implemented enhancements:** - Remove deprecated data\_provider [\#568](https://github.com/Icinga/puppet-icinga2/issues/568) - Convert to pdk [\#528](https://github.com/Icinga/puppet-icinga2/issues/528) - add new type for custom attributes to support also arrays [\#574](https://github.com/Icinga/puppet-icinga2/pull/574) ([lbetz](https://github.com/lbetz)) - add feature to merge arrays and hashes by the parser [\#573](https://github.com/Icinga/puppet-icinga2/pull/573) ([lbetz](https://github.com/lbetz)) - Extent parser to build += assignments [\#569](https://github.com/Icinga/puppet-icinga2/pull/569) ([lbetz](https://github.com/lbetz)) - Add constants for Gentoo AMD64 [\#567](https://github.com/Icinga/puppet-icinga2/pull/567) ([ekohl](https://github.com/ekohl)) - convert module to PDK [\#564](https://github.com/Icinga/puppet-icinga2/pull/564) ([SimonHoenscheid](https://github.com/SimonHoenscheid)) **Fixed bugs:** - Downgrade restore of vars [\#575](https://github.com/Icinga/puppet-icinga2/issues/575) - Pin versions for travis of required puppet modules for puppet 4 [\#570](https://github.com/Icinga/puppet-icinga2/issues/570) - fix \#570 Pin versions for travis of required puppet modules for puppet [\#571](https://github.com/Icinga/puppet-icinga2/pull/571) ([lbetz](https://github.com/lbetz)) - Fix Puppet4 build [\#565](https://github.com/Icinga/puppet-icinga2/pull/565) ([SimonHoenscheid](https://github.com/SimonHoenscheid)) **Closed issues:** - Allow to specify both vars + config as custom vars using hash [\#566](https://github.com/Icinga/puppet-icinga2/issues/566) ## [v2.1.1](https://github.com/icinga/puppet-icinga2/tree/v2.1.1) (2019-05-24) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.1.0...v2.1.1) **Implemented enhancements:** - Rework travis batch and enable check for puppet 6 [\#560](https://github.com/Icinga/puppet-icinga2/issues/560) **Fixed bugs:** - Fix and update TESTING documentation [\#561](https://github.com/Icinga/puppet-icinga2/issues/561) - Set default of all optional parameters in globals to undef [\#559](https://github.com/Icinga/puppet-icinga2/issues/559) - Fact kernel on windows has to be lower case [\#556](https://github.com/Icinga/puppet-icinga2/issues/556) - Fix some lint issues in api, idomysql, globals [\#553](https://github.com/Icinga/puppet-icinga2/issues/553) - Fix tests for Puppet 6 [\#550](https://github.com/Icinga/puppet-icinga2/issues/550) - Fix spec tests of icinga objects [\#549](https://github.com/Icinga/puppet-icinga2/issues/549) - Fix spec tests for class pki [\#548](https://github.com/Icinga/puppet-icinga2/issues/548) - Fix spec tests for feature idopgsql [\#547](https://github.com/Icinga/puppet-icinga2/issues/547) - Fix spec tests for feature idomysql [\#546](https://github.com/Icinga/puppet-icinga2/issues/546) - Fix spec test of feature api [\#545](https://github.com/Icinga/puppet-icinga2/issues/545) - fix typo in README.md [\#544](https://github.com/Icinga/puppet-icinga2/pull/544) ([bastelfreak](https://github.com/bastelfreak)) **Closed issues:** - Icinga2 custom config dir \(not /etc/...\) [\#543](https://github.com/Icinga/puppet-icinga2/issues/543) ## [v2.1.0](https://github.com/icinga/puppet-icinga2/tree/v2.1.0) (2019-04-30) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.0.2...v2.1.0) **Implemented enhancements:** - The puppet module does not validate the master's X.509 certificate [\#360](https://github.com/Icinga/puppet-icinga2/issues/360) - Set the object file owner to root [\#533](https://github.com/Icinga/puppet-icinga2/pull/533) ([ekohl](https://github.com/ekohl)) **Fixed bugs:** - Path on Windows does not work [\#542](https://github.com/Icinga/puppet-icinga2/issues/542) - Documentation of default values for InfluxWriter is outdated [\#537](https://github.com/Icinga/puppet-icinga2/issues/537) - The puppet module does not validate the master's X.509 certificate [\#360](https://github.com/Icinga/puppet-icinga2/issues/360) ## [v2.0.2](https://github.com/icinga/puppet-icinga2/tree/v2.0.2) (2019-03-14) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.0.1...v2.0.2) **Implemented enhancements:** - add initial support for OpenBSD [\#539](https://github.com/Icinga/puppet-icinga2/pull/539) ([trefzer](https://github.com/trefzer)) - Add values for the Gentoo family [\#534](https://github.com/Icinga/puppet-icinga2/pull/534) ([ekohl](https://github.com/ekohl)) **Fixed bugs:** - Unable to define endpoint with custom port number [\#530](https://github.com/Icinga/puppet-icinga2/issues/530) **Merged pull requests:** - fix typos in documentation [\#529](https://github.com/Icinga/puppet-icinga2/pull/529) ([aschaber1](https://github.com/aschaber1)) ## [v2.0.1](https://github.com/icinga/puppet-icinga2/tree/v2.0.1) (2019-02-12) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v2.0.0...v2.0.1) **Fixed bugs:** - Syntax error custom data type logfacility [\#527](https://github.com/Icinga/puppet-icinga2/issues/527) ## [v2.0.0](https://github.com/icinga/puppet-icinga2/tree/v2.0.0) (2019-02-12) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.4.0...v2.0.0) **Implemented enhancements:** - Set default of host to localhost for feature idopgsql [\#526](https://github.com/Icinga/puppet-icinga2/issues/526) - Add an example for idomysql via SSL [\#524](https://github.com/Icinga/puppet-icinga2/issues/524) - Add some custom data types [\#521](https://github.com/Icinga/puppet-icinga2/issues/521) - Remove repos info to data in module hiera [\#519](https://github.com/Icinga/puppet-icinga2/issues/519) - Puppet 6 Support [\#505](https://github.com/Icinga/puppet-icinga2/issues/505) - API change to icinga2 CA as default [\#495](https://github.com/Icinga/puppet-icinga2/issues/495) - Path to key, cert and cacert are not configurable anymore [\#493](https://github.com/Icinga/puppet-icinga2/issues/493) - Move to module data [\#490](https://github.com/Icinga/puppet-icinga2/issues/490) - Remove define resource compatlogger [\#488](https://github.com/Icinga/puppet-icinga2/issues/488) - Rework rspec tests [\#486](https://github.com/Icinga/puppet-icinga2/issues/486) - Remove include of params from object class [\#485](https://github.com/Icinga/puppet-icinga2/issues/485) - Change location of the CA and the cert [\#484](https://github.com/Icinga/puppet-icinga2/issues/484) - Change storing of certificate for influxdb feature [\#483](https://github.com/Icinga/puppet-icinga2/issues/483) - Change storing of certificate for elasticsearch feature [\#482](https://github.com/Icinga/puppet-icinga2/issues/482) - Remove management of repository.d in install.pp [\#479](https://github.com/Icinga/puppet-icinga2/issues/479) - Default of parameter import of icinga2::object::notificationcommand is outdated [\#478](https://github.com/Icinga/puppet-icinga2/issues/478) - Rework dependency list of modules [\#476](https://github.com/Icinga/puppet-icinga2/issues/476) - Remove default apply\_target from service object [\#475](https://github.com/Icinga/puppet-icinga2/issues/475) - Default of parameter import of icinga2::object::eventcommand is outdated [\#468](https://github.com/Icinga/puppet-icinga2/issues/468) - Default of parameter import of icinga2::object::checkcommand is outdated [\#467](https://github.com/Icinga/puppet-icinga2/issues/467) - Rework param data types of icinga2::feature::syslog [\#465](https://github.com/Icinga/puppet-icinga2/issues/465) - Rework param data types of icinga2::feature::statusdata [\#464](https://github.com/Icinga/puppet-icinga2/issues/464) - Rework param data types of icinga2::feature::perfdata [\#463](https://github.com/Icinga/puppet-icinga2/issues/463) - Rework param data types of icinga2::feature::opentsdb [\#462](https://github.com/Icinga/puppet-icinga2/issues/462) - Rework param data types of icinga2::feature::livestatus [\#461](https://github.com/Icinga/puppet-icinga2/issues/461) - Rework param data types of icinga2::feature::influxdb [\#460](https://github.com/Icinga/puppet-icinga2/issues/460) - Rework param data types of icinga2::feature::idopgsql [\#459](https://github.com/Icinga/puppet-icinga2/issues/459) - Rework param data types of icinga2::feature::idomysql [\#458](https://github.com/Icinga/puppet-icinga2/issues/458) - Rework param data types of icinga2::feature::graphite [\#457](https://github.com/Icinga/puppet-icinga2/issues/457) - Rework param datatypes of icinga2::feature::gelf [\#456](https://github.com/Icinga/puppet-icinga2/issues/456) - Rework param data types of icinga2::feature::elasticsearch [\#455](https://github.com/Icinga/puppet-icinga2/issues/455) - Rework param datatype of icinga2::feature::compatlog [\#454](https://github.com/Icinga/puppet-icinga2/issues/454) - Rework param data types of icinga2::feature::api [\#453](https://github.com/Icinga/puppet-icinga2/issues/453) - Remove icinga2::pki::ca [\#452](https://github.com/Icinga/puppet-icinga2/issues/452) - Add crl\_path to feature api [\#432](https://github.com/Icinga/puppet-icinga2/issues/432) - Import IDO DB schema for mysql over SSL isn't supported [\#414](https://github.com/Icinga/puppet-icinga2/issues/414) - Updated to support puppetlabs/chocolatey 3.0.0? [\#363](https://github.com/Icinga/puppet-icinga2/issues/363) - Use beaker for acceptence tests and replace boxes with bento [\#356](https://github.com/Icinga/puppet-icinga2/issues/356) - Separate unit tests for functions [\#355](https://github.com/Icinga/puppet-icinga2/issues/355) - Add IDO PostreSQL integration tests [\#278](https://github.com/Icinga/puppet-icinga2/issues/278) - Replace deprecated stdlib functions [\#275](https://github.com/Icinga/puppet-icinga2/issues/275) - Add elasticsearch feature [\#418](https://github.com/Icinga/puppet-icinga2/pull/418) ([dnsmichi](https://github.com/dnsmichi)) **Fixed bugs:** - Cannot use localhost as host in feature idomysql [\#525](https://github.com/Icinga/puppet-icinga2/issues/525) - IdoMysqlConnection: Optional parameters are forced by module [\#523](https://github.com/Icinga/puppet-icinga2/issues/523) - ElasticsearchWriter: Optional parameters are forced by module [\#522](https://github.com/Icinga/puppet-icinga2/issues/522) - fix unit test functions/attributes\_spec.rb [\#517](https://github.com/Icinga/puppet-icinga2/issues/517) - rework unit test for objects\_spec.rb [\#516](https://github.com/Icinga/puppet-icinga2/issues/516) - Evaluation Error: Error while evaluating a Function Call, Class\[Icinga2::Globals\]: [\#504](https://github.com/Icinga/puppet-icinga2/issues/504) - Incomplete list of supported operatingssystems [\#501](https://github.com/Icinga/puppet-icinga2/issues/501) - pki::ca require dependency to config class [\#498](https://github.com/Icinga/puppet-icinga2/issues/498) - Unknown variable \_ssl\_key [\#497](https://github.com/Icinga/puppet-icinga2/issues/497) - Unknown variable ido\_mysql\_package on debian [\#496](https://github.com/Icinga/puppet-icinga2/issues/496) - Missing documentation of class icinga::globals [\#494](https://github.com/Icinga/puppet-icinga2/issues/494) - InfluxWriter: Optional parameters are forced by module [\#491](https://github.com/Icinga/puppet-icinga2/issues/491) - Duplicate key HOSTDISPLAYNAME in example\_config.pp [\#480](https://github.com/Icinga/puppet-icinga2/issues/480) - Attribute vars of all object types can be also a string [\#474](https://github.com/Icinga/puppet-icinga2/issues/474) - Attribute vars of object type service can be also a string [\#473](https://github.com/Icinga/puppet-icinga2/issues/473) - Parameter prefix of icinga2::object::service is not a boolean only [\#472](https://github.com/Icinga/puppet-icinga2/issues/472) - Parameter prefix of icinga2::object::notification is not a boolean only [\#470](https://github.com/Icinga/puppet-icinga2/issues/470) - Parameter host\_name icinga2::object::host is not optional [\#469](https://github.com/Icinga/puppet-icinga2/issues/469) - Debian 9/Stretch support [\#466](https://github.com/Icinga/puppet-icinga2/issues/466) - Parameter order of concat resource has to be a string [\#451](https://github.com/Icinga/puppet-icinga2/issues/451) - Incorrect example for icinga2::object::apiuser [\#448](https://github.com/Icinga/puppet-icinga2/issues/448) - Using a reference to icinga variable in icinga2::object::notification $interval [\#443](https://github.com/Icinga/puppet-icinga2/issues/443) - Replace gpgkey handling for suse [\#397](https://github.com/Icinga/puppet-icinga2/issues/397) - Fix syntax error [\#487](https://github.com/Icinga/puppet-icinga2/pull/487) ([paladox](https://github.com/paladox)) **Closed issues:** - OS facts clutter with recent ruby versions in spec tests [\#518](https://github.com/Icinga/puppet-icinga2/issues/518) - Deprecated features in 2.9: statusdata & compatlog [\#481](https://github.com/Icinga/puppet-icinga2/issues/481) **Merged pull requests:** - example of check\_mysql and check\_mysql\_health [\#387](https://github.com/Icinga/puppet-icinga2/pull/387) ([rowanruseler](https://github.com/rowanruseler)) - Replace validate\_\* with data types [\#350](https://github.com/Icinga/puppet-icinga2/pull/350) ([baurmatt](https://github.com/baurmatt)) ## [v1.4.0](https://github.com/icinga/puppet-icinga2/tree/v1.4.0) (2019-01-18) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.3.7...v1.4.0) **Implemented enhancements:** - Feature Request: Allow to pass ticket\_id to API Feature [\#512](https://github.com/Icinga/puppet-icinga2/issues/512) - New parameter 'ticket\_id' for API feature [\#514](https://github.com/Icinga/puppet-icinga2/pull/514) ([benningm](https://github.com/benningm)) - Facility configuration for Syslog + New severity for syslog [\#502](https://github.com/Icinga/puppet-icinga2/pull/502) ([liveder](https://github.com/liveder)) - Add multiline support for lambda functions and unparsed strings. [\#422](https://github.com/Icinga/puppet-icinga2/pull/422) ([n00by](https://github.com/n00by)) **Fixed bugs:** - Fix init\_spec test [\#515](https://github.com/Icinga/puppet-icinga2/issues/515) - Problem with ownership NETWORK on non-english Windows [\#511](https://github.com/Icinga/puppet-icinga2/issues/511) - API configuration on Windows systems [\#510](https://github.com/Icinga/puppet-icinga2/issues/510) - Allow dots in data structures of object attributes [\#509](https://github.com/Icinga/puppet-icinga2/issues/509) - Some comments when using on Windows [\#499](https://github.com/Icinga/puppet-icinga2/issues/499) - Windows : owner and group [\#437](https://github.com/Icinga/puppet-icinga2/issues/437) - Quote and escape string values correctly [\#471](https://github.com/Icinga/puppet-icinga2/pull/471) ([marcofl](https://github.com/marcofl)) - Depend on Apt::Update instead of Apt::Source [\#446](https://github.com/Icinga/puppet-icinga2/pull/446) ([jkroepke](https://github.com/jkroepke)) **Merged pull requests:** - Fixed markup error in Readme.md [\#508](https://github.com/Icinga/puppet-icinga2/pull/508) ([dagobert](https://github.com/dagobert)) - Quoting mistake in doc [\#507](https://github.com/Icinga/puppet-icinga2/pull/507) ([dagobert](https://github.com/dagobert)) - Fixed requirements [\#506](https://github.com/Icinga/puppet-icinga2/pull/506) ([dagobert](https://github.com/dagobert)) ## [v1.3.7](https://github.com/icinga/puppet-icinga2/tree/v1.3.7) (2018-11-29) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.3.6...v1.3.7) **Fixed bugs:** - Attribute prefix for services is not documented [\#430](https://github.com/Icinga/puppet-icinga2/issues/430) - ido-pgsql db import fails on debian [\#500](https://github.com/Icinga/puppet-icinga2/issues/500) ## [v1.3.6](https://github.com/icinga/puppet-icinga2/tree/v1.3.6) (2018-04-25) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.3.5...v1.3.6) **Implemented enhancements:** - Add support for SLC6 Linux [\#441](https://github.com/Icinga/puppet-icinga2/pull/441) ([HristoMohamed](https://github.com/HristoMohamed)) - Support manage\_repo on XenServer [\#436](https://github.com/Icinga/puppet-icinga2/pull/436) ([jcharaoui](https://github.com/jcharaoui)) **Fixed bugs:** - Changes on concat resource for objects does not trigger a refresh on puppet3 [\#434](https://github.com/Icinga/puppet-icinga2/issues/434) - don't quote null [\#433](https://github.com/Icinga/puppet-icinga2/issues/433) **Merged pull requests:** - Bug/do not quote null 433 [\#435](https://github.com/Icinga/puppet-icinga2/pull/435) ([lbetz](https://github.com/lbetz)) ## [v1.3.5](https://github.com/icinga/puppet-icinga2/tree/v1.3.5) (2018-01-24) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.3.4...v1.3.5) **Implemented enhancements:** - icinga2 binary is wrong on rhel5 [\#409](https://github.com/Icinga/puppet-icinga2/issues/409) - Add feature Elasticsearch [\#408](https://github.com/Icinga/puppet-icinga2/issues/408) - Add feature elasticsearch [\#399](https://github.com/Icinga/puppet-icinga2/issues/399) -- Added cloudlinux to supported operating systems. Is nearly identical … [\#424](https://github.com/Icinga/puppet-icinga2/pull/424) ([Koma-Andrea](https://github.com/Koma-Andrea)) +- Added cloudlinux to supported operating systems. Is nearly identical … [\#424](https://github.com/Icinga/puppet-icinga2/pull/424) ([thekoma](https://github.com/thekoma)) **Fixed bugs:** - Setting up icinga2 with a different port than default for idodb leads to an error [\#411](https://github.com/Icinga/puppet-icinga2/issues/411) - fix \#411 Setting up Icinga 2 with a different port than default for i… [\#413](https://github.com/Icinga/puppet-icinga2/pull/413) ([lbetz](https://github.com/lbetz)) - fix for repository.d directory on master-systems [\#412](https://github.com/Icinga/puppet-icinga2/pull/412) ([matthiasritter](https://github.com/matthiasritter)) **Merged pull requests:** - trivial copy edits [\#420](https://github.com/Icinga/puppet-icinga2/pull/420) ([wkalt](https://github.com/wkalt)) - Fix confd example path [\#417](https://github.com/Icinga/puppet-icinga2/pull/417) ([dnsmichi](https://github.com/dnsmichi)) - fix \#409 icinga2 binary is wrong on rhel5 [\#410](https://github.com/Icinga/puppet-icinga2/pull/410) ([lbetz](https://github.com/lbetz)) ## [v1.3.4](https://github.com/icinga/puppet-icinga2/tree/v1.3.4) (2017-11-22) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.3.3...v1.3.4) **Fixed bugs:** - repository.d missing after install [\#403](https://github.com/Icinga/puppet-icinga2/issues/403) - Boolean 'false' custom variables do not appear in configuration [\#400](https://github.com/Icinga/puppet-icinga2/issues/400) - $bin\_dir path incorrect for FreeBSD in params.pp [\#396](https://github.com/Icinga/puppet-icinga2/issues/396) **Closed issues:** - missing /etc/pki directory [\#393](https://github.com/Icinga/puppet-icinga2/issues/393) **Merged pull requests:** - fix \#400 boolean false custom variables do not appear in configuration [\#406](https://github.com/Icinga/puppet-icinga2/pull/406) ([lbetz](https://github.com/lbetz)) - Bug/repository.d missing after install 403 [\#404](https://github.com/Icinga/puppet-icinga2/pull/404) ([lbetz](https://github.com/lbetz)) - fix \#396 incorrect bin\_dir path for FreeBSD [\#401](https://github.com/Icinga/puppet-icinga2/pull/401) ([lbetz](https://github.com/lbetz)) ## [v1.3.3](https://github.com/icinga/puppet-icinga2/tree/v1.3.3) (2017-10-24) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.3.2...v1.3.3) **Fixed bugs:** - Icinga2 binary not found on Redhat/Centos 6 family [\#390](https://github.com/Icinga/puppet-icinga2/issues/390) **Merged pull requests:** - fix \#390 icinga2 binary not found on rhel6 [\#391](https://github.com/Icinga/puppet-icinga2/pull/391) ([lbetz](https://github.com/lbetz)) ## [v1.3.2](https://github.com/icinga/puppet-icinga2/tree/v1.3.2) (2017-10-11) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.3.1...v1.3.2) **Fixed bugs:** - SLES should use service pack repository [\#386](https://github.com/Icinga/puppet-icinga2/issues/386) ## [v1.3.1](https://github.com/icinga/puppet-icinga2/tree/v1.3.1) (2017-10-05) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.3.0...v1.3.1) **Implemented enhancements:** - Fix small typos [\#358](https://github.com/Icinga/puppet-icinga2/issues/358) - Review and update puppetlabs-concat dependency [\#351](https://github.com/Icinga/puppet-icinga2/issues/351) - Documentation to set up mysql grants is incorrect. [\#347](https://github.com/Icinga/puppet-icinga2/issues/347) - Check attributes of all objects [\#219](https://github.com/Icinga/puppet-icinga2/issues/219) - Align documentation for duplicate repository [\#353](https://github.com/Icinga/puppet-icinga2/issues/353) - Update documentation about += operator [\#352](https://github.com/Icinga/puppet-icinga2/issues/352) - Example and documentation for syncing hiera data to icinga objects [\#342](https://github.com/Icinga/puppet-icinga2/issues/342) - Add owner-, groupship and permissions to file resources [\#291](https://github.com/Icinga/puppet-icinga2/issues/291) - Support Puppet 5 and test it in travis [\#330](https://github.com/Icinga/puppet-icinga2/pull/330) ([lazyfrosch](https://github.com/lazyfrosch)) **Fixed bugs:** - Error: Could not find command 'icinga2' on SLES-11 [\#374](https://github.com/Icinga/puppet-icinga2/issues/374) - When passing non-fqdn name for the NodeName the certificate is still generated with cn set to fqdn [\#328](https://github.com/Icinga/puppet-icinga2/issues/328) - Install package before creating config files [\#378](https://github.com/Icinga/puppet-icinga2/issues/378) - Icinga2 binary not found on Debian and FreeBSD [\#371](https://github.com/Icinga/puppet-icinga2/issues/371) - Could not find command Icinga2 on windows [\#367](https://github.com/Icinga/puppet-icinga2/issues/367) - Error: Parameter user failed on Exec\[icinga2 pki create key\]: Unable to execute commands as other users on Windows at manifestsfeature/api.pp:317 [\#366](https://github.com/Icinga/puppet-icinga2/issues/366) - Unit tests broken for facter 2.5 [\#338](https://github.com/Icinga/puppet-icinga2/issues/338) - protection of private classes is wrong [\#333](https://github.com/Icinga/puppet-icinga2/issues/333) - ticketsalt only should be stored on ca nodes [\#325](https://github.com/Icinga/puppet-icinga2/issues/325) - key and cert permissions on windows [\#282](https://github.com/Icinga/puppet-icinga2/issues/282) **Closed issues:** - Implement conditional statements/loops parameter for icinga2::object::\* [\#354](https://github.com/Icinga/puppet-icinga2/issues/354) - document manage\_package with manage\_repo [\#381](https://github.com/Icinga/puppet-icinga2/issues/381) **Merged pull requests:** - Remove soft depedencies from metadata.json [\#385](https://github.com/Icinga/puppet-icinga2/pull/385) ([noqqe](https://github.com/noqqe)) - fix \#378 install package before creating config files [\#380](https://github.com/Icinga/puppet-icinga2/pull/380) ([lbetz](https://github.com/lbetz)) - fix \#371, add binary path to icinga2 for Debian, SuSE and FreeBSD [\#372](https://github.com/Icinga/puppet-icinga2/pull/372) ([lbetz](https://github.com/lbetz)) - fix \#325, ticket\_salt ist stored to api.conf only if pki = none|ca [\#370](https://github.com/Icinga/puppet-icinga2/pull/370) ([lbetz](https://github.com/lbetz)) - fix \#367, \#366 and remove management of conf\_dir [\#369](https://github.com/Icinga/puppet-icinga2/pull/369) ([lbetz](https://github.com/lbetz)) - Examples: Fix notification commands for 2.7 [\#368](https://github.com/Icinga/puppet-icinga2/pull/368) ([dnsmichi](https://github.com/dnsmichi)) - Fixed typos [\#357](https://github.com/Icinga/puppet-icinga2/pull/357) ([rgevaert](https://github.com/rgevaert)) - fix \#338 update facterdb dependency to 0.3.12 [\#349](https://github.com/Icinga/puppet-icinga2/pull/349) ([lbetz](https://github.com/lbetz)) - Update protection of private classes from direct use [\#336](https://github.com/Icinga/puppet-icinga2/pull/336) ([lbetz](https://github.com/lbetz)) - Fix dependency issues with apt repository [\#334](https://github.com/Icinga/puppet-icinga2/pull/334) ([baurmatt](https://github.com/baurmatt)) - Update documentation examples for mysql::db [\#346](https://github.com/Icinga/puppet-icinga2/pull/346) ([rgevaert](https://github.com/rgevaert)) ## [v1.3.0](https://github.com/icinga/puppet-icinga2/tree/v1.3.0) (2017-06-26) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.2.1...v1.3.0) **Implemented enhancements:** - README.md: clarify meaning of `confd=\>true` [\#314](https://github.com/Icinga/puppet-icinga2/pull/314) ([sourcejedi](https://github.com/sourcejedi)) **Fixed bugs:** - PR \#293 does not work correctly [\#304](https://github.com/Icinga/puppet-icinga2/issues/304) - fix certname in api and pki::ca class to constant NodeName [\#319](https://github.com/Icinga/puppet-icinga2/issues/319) - ordering-api-with-pki-after-package [\#311](https://github.com/Icinga/puppet-icinga2/issues/311) - Only last empty hash is stored [\#308](https://github.com/Icinga/puppet-icinga2/issues/308) - module requirements broken. [\#305](https://github.com/Icinga/puppet-icinga2/issues/305) - ido-mysql install fails while using official icinga packages [\#302](https://github.com/Icinga/puppet-icinga2/issues/302) - concat resource with tag does not trigger a refresh [\#300](https://github.com/Icinga/puppet-icinga2/issues/300) - ido packages are managed before repository [\#299](https://github.com/Icinga/puppet-icinga2/issues/299) - RSpec Puppetlabs modules incompatible to Puppet 3 [\#286](https://github.com/Icinga/puppet-icinga2/issues/286) - Disable feature checker doesn't trigger a refresh [\#285](https://github.com/Icinga/puppet-icinga2/issues/285) - SLES Lib directory is not architecture specific [\#283](https://github.com/Icinga/puppet-icinga2/issues/283) - Fix examples/init\_confd.pp [\#313](https://github.com/Icinga/puppet-icinga2/pull/313) ([sourcejedi](https://github.com/sourcejedi)) - README.md: fix typo `notifiy` [\#312](https://github.com/Icinga/puppet-icinga2/pull/312) ([sourcejedi](https://github.com/sourcejedi)) - debian::dbconfig: Move to autoload location and lint it [\#322](https://github.com/Icinga/puppet-icinga2/pull/322) ([lazyfrosch](https://github.com/lazyfrosch)) **Merged pull requests:** - Update checker.pp, arrow alignment [\#316](https://github.com/Icinga/puppet-icinga2/pull/316) ([rowanruseler](https://github.com/rowanruseler)) - Update fragment.pp [\#315](https://github.com/Icinga/puppet-icinga2/pull/315) ([rowanruseler](https://github.com/rowanruseler)) - Add GitHub issue template [\#310](https://github.com/Icinga/puppet-icinga2/pull/310) ([dnsmichi](https://github.com/dnsmichi)) - Specify older fixtures for Puppet 3 tests [\#287](https://github.com/Icinga/puppet-icinga2/pull/287) ([lazyfrosch](https://github.com/lazyfrosch)) - Update SLES lib directory [\#284](https://github.com/Icinga/puppet-icinga2/pull/284) ([dgoetz](https://github.com/dgoetz)) - Replace darin/zypprepo with puppet/zypprepo [\#306](https://github.com/Icinga/puppet-icinga2/pull/306) ([noqqe](https://github.com/noqqe)) - Remove deprecated apt options [\#293](https://github.com/Icinga/puppet-icinga2/pull/293) ([jkroepke](https://github.com/jkroepke)) ## [v1.2.1](https://github.com/icinga/puppet-icinga2/tree/v1.2.1) (2017-04-12) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.2.0...v1.2.1) **Implemented enhancements:** - Create integration tests for MySQL IDO feature [\#207](https://github.com/Icinga/puppet-icinga2/issues/207) - Add condition to be sure that icinga2 base class is parsed first [\#280](https://github.com/Icinga/puppet-icinga2/issues/280) - Remove checker feature from examples for agents [\#279](https://github.com/Icinga/puppet-icinga2/issues/279) - Remove sles-12 reference from Gemfile [\#274](https://github.com/Icinga/puppet-icinga2/issues/274) - Add tests for custom facts [\#273](https://github.com/Icinga/puppet-icinga2/issues/273) - Create integration tests for API feature [\#206](https://github.com/Icinga/puppet-icinga2/issues/206) **Fixed bugs:** - Fix schema import for FreeBSD [\#277](https://github.com/Icinga/puppet-icinga2/issues/277) - Fix ::icinga2::pki::ca for FreeBSD [\#276](https://github.com/Icinga/puppet-icinga2/issues/276) - Fix arrow\_on\_right\_operand\_line lint [\#272](https://github.com/Icinga/puppet-icinga2/issues/272) - case statement without default in feature api [\#266](https://github.com/Icinga/puppet-icinga2/issues/266) - case statement without default in idomysql feature [\#265](https://github.com/Icinga/puppet-icinga2/issues/265) - case statement without default in influx feature [\#264](https://github.com/Icinga/puppet-icinga2/issues/264) - Fix strings containing only a variable [\#263](https://github.com/Icinga/puppet-icinga2/issues/263) - Replace selectors inside resource blocks [\#262](https://github.com/Icinga/puppet-icinga2/issues/262) **Merged pull requests:** - fix time periods example [\#271](https://github.com/Icinga/puppet-icinga2/pull/271) ([deric](https://github.com/deric)) - Update icingamaster.yaml because yaml-lint failes [\#270](https://github.com/Icinga/puppet-icinga2/pull/270) ([matthiasritter](https://github.com/matthiasritter)) ## [v1.2.0](https://github.com/icinga/puppet-icinga2/tree/v1.2.0) (2017-03-16) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.1.1...v1.2.0) **Implemented enhancements:** - Add concurrent check parameter to checker object [\#260](https://github.com/Icinga/puppet-icinga2/issues/260) - use a tag to disable parsing for a single attribute value [\#254](https://github.com/Icinga/puppet-icinga2/issues/254) - replace service restart with reload [\#250](https://github.com/Icinga/puppet-icinga2/issues/250) - Update docs of example4 with hint for Puppet 4 [\#234](https://github.com/Icinga/puppet-icinga2/issues/234) - Add service name to service apply loops [\#227](https://github.com/Icinga/puppet-icinga2/issues/227) **Fixed bugs:** - consider-type-of-attribute [\#256](https://github.com/Icinga/puppet-icinga2/issues/256) ## [v1.1.1](https://github.com/icinga/puppet-icinga2/tree/v1.1.1) (2017-03-08) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.1.0...v1.1.1) **Implemented enhancements:** - add example of the whole example config [\#252](https://github.com/Icinga/puppet-icinga2/issues/252) - enable\_ha for notification feature [\#242](https://github.com/Icinga/puppet-icinga2/issues/242) - Enhance docs on how to enable and use features [\#235](https://github.com/Icinga/puppet-icinga2/issues/235) **Fixed bugs:** - set groups default to undef for object servicegroup [\#251](https://github.com/Icinga/puppet-icinga2/issues/251) - hash key with empty hash as value is parsed wrong [\#247](https://github.com/Icinga/puppet-icinga2/issues/247) - attribute keys are missed for parsing [\#246](https://github.com/Icinga/puppet-icinga2/issues/246) - Create signed certificate with custom CA [\#239](https://github.com/Icinga/puppet-icinga2/issues/239) - Can't pass function via variable [\#238](https://github.com/Icinga/puppet-icinga2/issues/238) - ido schema import dependency [\#237](https://github.com/Icinga/puppet-icinga2/issues/237) - Using pki =\> "ca" can either cause incomplete deps or circular reference [\#236](https://github.com/Icinga/puppet-icinga2/issues/236) **Closed issues:** - Can't enable feature::idomysql without importing schema [\#241](https://github.com/Icinga/puppet-icinga2/issues/241) **Merged pull requests:** - enable setting of bind\_host and bind\_port for feature::api [\#243](https://github.com/Icinga/puppet-icinga2/pull/243) ([aschaber1](https://github.com/aschaber1)) ## [v1.1.0](https://github.com/icinga/puppet-icinga2/tree/v1.1.0) (2017-02-20) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.0.2...v1.1.0) **Implemented enhancements:** - Deploy to puppet forge via travis [\#43](https://github.com/Icinga/puppet-icinga2/issues/43) **Fixed bugs:** - Parse issue when attribute is a nested hash with an array value [\#223](https://github.com/Icinga/puppet-icinga2/issues/223) - icinga2 feature api fails when pki=icinga2 and ca is the local node [\#218](https://github.com/Icinga/puppet-icinga2/issues/218) - Error installing module from forge for non r10k users [\#217](https://github.com/Icinga/puppet-icinga2/issues/217) - Apply Notification "users" and "user\_groups" as variable [\#208](https://github.com/Icinga/puppet-icinga2/issues/208) **Merged pull requests:** - Fix parse issues when attribute is a nested hash with an array value [\#225](https://github.com/Icinga/puppet-icinga2/pull/225) ([lbetz](https://github.com/lbetz)) - Remove Puppet 4 Warning - delete :undef symbols in attr hash [\#222](https://github.com/Icinga/puppet-icinga2/pull/222) ([Reamer](https://github.com/Reamer)) - Allow other time units in notification and scheduleddowntime [\#220](https://github.com/Icinga/puppet-icinga2/pull/220) ([jkroepke](https://github.com/jkroepke)) - Add initial FreeBSD support [\#210](https://github.com/Icinga/puppet-icinga2/pull/210) ([xaque208](https://github.com/xaque208)) ## [v1.0.2](https://github.com/icinga/puppet-icinga2/tree/v1.0.2) (2017-01-24) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v1.0.1...v1.0.2) **Implemented enhancements:** - Add Oracle Linux Support [\#216](https://github.com/Icinga/puppet-icinga2/issues/216) **Fixed bugs:** - add permission alter to idomysql docs [\#214](https://github.com/Icinga/puppet-icinga2/issues/214) - Update serverspec vagrantfile to Debian 8.7 [\#212](https://github.com/Icinga/puppet-icinga2/issues/212) **Merged pull requests:** - Revert "Merge branch 'feature/workaround-for-puppetdb-14031'" [\#215](https://github.com/Icinga/puppet-icinga2/pull/215) ([bobapple](https://github.com/bobapple)) - travis: Enable deploy to Puppetforge [\#213](https://github.com/Icinga/puppet-icinga2/pull/213) ([lazyfrosch](https://github.com/lazyfrosch)) - Add support for OracleLinux [\#200](https://github.com/Icinga/puppet-icinga2/pull/200) ([TwizzyDizzy](https://github.com/TwizzyDizzy)) ## [v1.0.1](https://github.com/icinga/puppet-icinga2/tree/v1.0.1) (2017-01-19) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.8.1...v1.0.1) **Implemented enhancements:** - \[dev.icinga.com \#14031\] Workaround for PuppetDB [\#198](https://github.com/Icinga/puppet-icinga2/issues/198) - \[dev.icinga.com \#13923\] Remove 'Icinga Development Team' as single author from header [\#197](https://github.com/Icinga/puppet-icinga2/issues/197) - \[dev.icinga.com \#13921\] Add alternative example of exported resources [\#196](https://github.com/Icinga/puppet-icinga2/issues/196) - \[dev.icinga.com \#12659\] Upload module to Puppet Forge [\#100](https://github.com/Icinga/puppet-icinga2/issues/100) - Fix Puppet version requirement in metadata.json [\#205](https://github.com/Icinga/puppet-icinga2/issues/205) **Merged pull requests:** - Improve wording for a few parts of the README.md file [\#201](https://github.com/Icinga/puppet-icinga2/pull/201) ([gunnarbeutner](https://github.com/gunnarbeutner)) - Extended example 3 README to mention Puppet parser bug [\#45](https://github.com/Icinga/puppet-icinga2/pull/45) ([kwisatz](https://github.com/kwisatz)) - Improving README [\#44](https://github.com/Icinga/puppet-icinga2/pull/44) ([lazyfrosch](https://github.com/lazyfrosch)) ## [v0.8.1](https://github.com/icinga/puppet-icinga2/tree/v0.8.1) (2017-01-11) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.8.0...v0.8.1) **Fixed bugs:** - \[dev.icinga.com \#13919\] Fix imports object template [\#195](https://github.com/Icinga/puppet-icinga2/issues/195) - \[dev.icinga.com \#13917\] Remove hash validation of vars attribut [\#194](https://github.com/Icinga/puppet-icinga2/issues/194) **Merged pull requests:** - Parallelisation problems with Travis on Ruby 2.1 [\#42](https://github.com/Icinga/puppet-icinga2/pull/42) ([lazyfrosch](https://github.com/lazyfrosch)) ## [v0.8.0](https://github.com/icinga/puppet-icinga2/tree/v0.8.0) (2017-01-04) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.7.2...v0.8.0) **Implemented enhancements:** - \[dev.icinga.com \#13875\] Add TLS options for api feature [\#191](https://github.com/Icinga/puppet-icinga2/issues/191) - \[dev.icinga.com \#13873\] Get fixtures for specs from Puppet Forge [\#190](https://github.com/Icinga/puppet-icinga2/issues/190) - \[dev.icinga.com \#13501\] Add support for Parallel Spec Tests [\#156](https://github.com/Icinga/puppet-icinga2/issues/156) **Fixed bugs:** - \[dev.icinga.com \#13877\] Fix SUSE repo [\#192](https://github.com/Icinga/puppet-icinga2/issues/192) - \[dev.icinga.com \#13871\] Remove json, json\_pure dependency for Ruby \>= 2 [\#189](https://github.com/Icinga/puppet-icinga2/issues/189) - \[dev.icinga.com \#13867\] Travis-CI test with Puppet \< 4 [\#188](https://github.com/Icinga/puppet-icinga2/issues/188) - \[dev.icinga.com \#13863\] Make puppet lint happy [\#187](https://github.com/Icinga/puppet-icinga2/issues/187) - \[dev.icinga.com \#13799\] change attribute checkcommand to checkcommand\_name in object checkcommand [\#176](https://github.com/Icinga/puppet-icinga2/issues/176) - \[dev.icinga.com \#13797\] change attribute apiuser to apiuser\_name in object apiuser [\#175](https://github.com/Icinga/puppet-icinga2/issues/175) - \[dev.icinga.com \#13795\] change attribute zone to zone\_name in object zone [\#174](https://github.com/Icinga/puppet-icinga2/issues/174) - \[dev.icinga.com \#13793\] change attribute endpoint to endpoint\_name in object endpoint [\#173](https://github.com/Icinga/puppet-icinga2/issues/173) - \[dev.icinga.com \#13791\] change attribute hostname to host\_name in object host [\#172](https://github.com/Icinga/puppet-icinga2/issues/172) **Merged pull requests:** - feature/api: Add TLS detail settings [\#41](https://github.com/Icinga/puppet-icinga2/pull/41) ([lazyfrosch](https://github.com/lazyfrosch)) - Rakefile: Add and enable parallel\_spec by default [\#40](https://github.com/Icinga/puppet-icinga2/pull/40) ([lazyfrosch](https://github.com/lazyfrosch)) - Make Puppet Lint happy [\#37](https://github.com/Icinga/puppet-icinga2/pull/37) ([lazyfrosch](https://github.com/lazyfrosch)) - Enabling Travis CI [\#36](https://github.com/Icinga/puppet-icinga2/pull/36) ([lazyfrosch](https://github.com/lazyfrosch)) ## [v0.7.2](https://github.com/icinga/puppet-icinga2/tree/v0.7.2) (2017-01-02) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.7.1...v0.7.2) **Implemented enhancements:** - \[dev.icinga.com \#13333\] Support collecting exported zones and endpoints [\#152](https://github.com/Icinga/puppet-icinga2/issues/152) - \[dev.icinga.com \#13835\] Added an example that uses exported resources [\#186](https://github.com/Icinga/puppet-icinga2/issues/186) **Fixed bugs:** - \[dev.icinga.com \#13779\] add attribute notificationcommand\_name to object notificationcommand [\#166](https://github.com/Icinga/puppet-icinga2/issues/166) - \[dev.icinga.com \#13833\] Add possibility to set command parameter as String. [\#185](https://github.com/Icinga/puppet-icinga2/issues/185) - \[dev.icinga.com \#13831\] fix target as undef in several objects [\#184](https://github.com/Icinga/puppet-icinga2/issues/184) - \[dev.icinga.com \#13829\] fix target as undef in several objects [\#183](https://github.com/Icinga/puppet-icinga2/issues/183) **Merged pull requests:** - Added an example that uses exported resources to create a master-agent set-up using exported resources. [\#32](https://github.com/Icinga/puppet-icinga2/pull/32) ([kwisatz](https://github.com/kwisatz)) ## [v0.7.1](https://github.com/icinga/puppet-icinga2/tree/v0.7.1) (2016-12-28) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.7.0...v0.7.1) **Fixed bugs:** - \[dev.icinga.com \#13821\] fix feature debuglog [\#182](https://github.com/Icinga/puppet-icinga2/issues/182) - \[dev.icinga.com \#13819\] fix object checkcommand [\#181](https://github.com/Icinga/puppet-icinga2/issues/181) - \[dev.icinga.com \#13817\] fix feature mainlog [\#180](https://github.com/Icinga/puppet-icinga2/issues/180) - \[dev.icinga.com \#13815\] add attribute notificationcommand\_name to object notificationcommand [\#179](https://github.com/Icinga/puppet-icinga2/issues/179) - \[dev.icinga.com \#13803\] fix documentation of all objects [\#178](https://github.com/Icinga/puppet-icinga2/issues/178) - \[dev.icinga.com \#13801\] change title of concat\_fragment in object to title [\#177](https://github.com/Icinga/puppet-icinga2/issues/177) - \[dev.icinga.com \#13789\] add attribute usergroup\_name to object usergroup [\#171](https://github.com/Icinga/puppet-icinga2/issues/171) - \[dev.icinga.com \#13787\] add attribute user\_name to object user [\#170](https://github.com/Icinga/puppet-icinga2/issues/170) - \[dev.icinga.com \#13785\] add attribute timeperiod\_name to object timeperiod [\#169](https://github.com/Icinga/puppet-icinga2/issues/169) - \[dev.icinga.com \#13783\] add attribute servicegroup\_name to object servicegroup [\#168](https://github.com/Icinga/puppet-icinga2/issues/168) - \[dev.icinga.com \#13781\] add attribute scheduleddowntime\_name to object scheduleddowntime [\#167](https://github.com/Icinga/puppet-icinga2/issues/167) - \[dev.icinga.com \#13777\] add attribute notification\_name to object notification [\#165](https://github.com/Icinga/puppet-icinga2/issues/165) - \[dev.icinga.com \#13775\] add attribute eventcommand\_name to object eventcommand [\#164](https://github.com/Icinga/puppet-icinga2/issues/164) - \[dev.icinga.com \#13773\] add attribute dependency\_name to object dependency [\#163](https://github.com/Icinga/puppet-icinga2/issues/163) - \[dev.icinga.com \#13771\] add attribute compatlogger\_name to object compatlogger [\#162](https://github.com/Icinga/puppet-icinga2/issues/162) - \[dev.icinga.com \#13769\] add attribute checkresultreader\_name to object checkresultreader [\#161](https://github.com/Icinga/puppet-icinga2/issues/161) - \[dev.icinga.com \#13767\] add attribute service\_name to object service [\#160](https://github.com/Icinga/puppet-icinga2/issues/160) - \[dev.icinga.com \#13701\] Calling private method "Puppet.settings.preferred\_run\_mode=" in facter/icinga2\_puppet.rb breaks Puppet master [\#159](https://github.com/Icinga/puppet-icinga2/issues/159) **Merged pull requests:** - Add possibility to use ip or hostname. [\#31](https://github.com/Icinga/puppet-icinga2/pull/31) ([n00by](https://github.com/n00by)) - Fix non-breaking space. [\#30](https://github.com/Icinga/puppet-icinga2/pull/30) ([n00by](https://github.com/n00by)) - Don't call private method preferred\_run\_mode= in facts [\#29](https://github.com/Icinga/puppet-icinga2/pull/29) ([antaflos](https://github.com/antaflos)) ## [v0.7.0](https://github.com/icinga/puppet-icinga2/tree/v0.7.0) (2016-12-15) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.6.0...v0.7.0) **Implemented enhancements:** - \[dev.icinga.com \#12344\] CA handling using file ressource [\#50](https://github.com/Icinga/puppet-icinga2/issues/50) - \[dev.icinga.com \#13513\] Rework default order values for all objects [\#158](https://github.com/Icinga/puppet-icinga2/issues/158) - \[dev.icinga.com \#13511\] Add custom config fragment [\#157](https://github.com/Icinga/puppet-icinga2/issues/157) - \[dev.icinga.com \#13495\] CA handling using the icinga2 CLI [\#155](https://github.com/Icinga/puppet-icinga2/issues/155) - \[dev.icinga.com \#13385\] Add Travis CI Tests [\#154](https://github.com/Icinga/puppet-icinga2/issues/154) - \[dev.icinga.com \#12653\] Add Support for SLES 12 [\#96](https://github.com/Icinga/puppet-icinga2/issues/96) - \[dev.icinga.com \#12652\] CA handling using custom function from puppet-icinga2-legacy [\#95](https://github.com/Icinga/puppet-icinga2/issues/95) - \[dev.icinga.com \#12651\] CA handling with base64 encoded string [\#94](https://github.com/Icinga/puppet-icinga2/issues/94) **Fixed bugs:** - \[dev.icinga.com \#13365\] Wrong MySQL user grants for schema import in docs [\#153](https://github.com/Icinga/puppet-icinga2/issues/153) **Merged pull requests:** - make service validation consistent with host validation [\#26](https://github.com/Icinga/puppet-icinga2/pull/26) ([deric](https://github.com/deric)) - update influxdb documentation [\#25](https://github.com/Icinga/puppet-icinga2/pull/25) ([deric](https://github.com/deric)) - \[OSMC Hackathon\] Adding initial SLES support [\#24](https://github.com/Icinga/puppet-icinga2/pull/24) ([jfryman](https://github.com/jfryman)) - Remove duplicate target parameter section in icinga2::object::timeper… [\#23](https://github.com/Icinga/puppet-icinga2/pull/23) ([kwisatz](https://github.com/kwisatz)) - fix small typos [\#22](https://github.com/Icinga/puppet-icinga2/pull/22) ([xorpaul](https://github.com/xorpaul)) ## [v0.6.0](https://github.com/icinga/puppet-icinga2/tree/v0.6.0) (2016-11-23) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.5.0...v0.6.0) **Implemented enhancements:** - \[dev.icinga.com \#12982\] Red Hat Satellite / Puppet 3.x compatibility [\#142](https://github.com/Icinga/puppet-icinga2/issues/142) - \[dev.icinga.com \#12374\] Object Downtime [\#80](https://github.com/Icinga/puppet-icinga2/issues/80) - \[dev.icinga.com \#12371\] Object Comment [\#77](https://github.com/Icinga/puppet-icinga2/issues/77) - \[dev.icinga.com \#13219\] How attribute parsing works documentation [\#150](https://github.com/Icinga/puppet-icinga2/issues/150) - \[dev.icinga.com \#13181\] Apply Rules Docs [\#147](https://github.com/Icinga/puppet-icinga2/issues/147) - \[dev.icinga.com \#12960\] Consider function calls in attributes parsing [\#140](https://github.com/Icinga/puppet-icinga2/issues/140) - \[dev.icinga.com \#12959\] Attribute function does not included adding value [\#139](https://github.com/Icinga/puppet-icinga2/issues/139) - \[dev.icinga.com \#12958\] Add parsing of assign rules to attribute function [\#138](https://github.com/Icinga/puppet-icinga2/issues/138) - \[dev.icinga.com \#12957\] Extend attributes Function [\#137](https://github.com/Icinga/puppet-icinga2/issues/137) - \[dev.icinga.com \#12878\] Extend attributes fct to parse connected strings [\#136](https://github.com/Icinga/puppet-icinga2/issues/136) - \[dev.icinga.com \#12839\] use-fct-attributes-for-other-configs [\#126](https://github.com/Icinga/puppet-icinga2/issues/126) - \[dev.icinga.com \#12387\] Object UserGroup [\#92](https://github.com/Icinga/puppet-icinga2/issues/92) - \[dev.icinga.com \#12385\] Object User [\#91](https://github.com/Icinga/puppet-icinga2/issues/91) - \[dev.icinga.com \#12384\] Object TimePeriod [\#90](https://github.com/Icinga/puppet-icinga2/issues/90) - \[dev.icinga.com \#12383\] Object ServiceGroup [\#89](https://github.com/Icinga/puppet-icinga2/issues/89) - \[dev.icinga.com \#12382\] Object Service [\#88](https://github.com/Icinga/puppet-icinga2/issues/88) - \[dev.icinga.com \#12381\] Object ScheduledDowntime [\#87](https://github.com/Icinga/puppet-icinga2/issues/87) - \[dev.icinga.com \#12380\] Object NotificationCommand [\#86](https://github.com/Icinga/puppet-icinga2/issues/86) - \[dev.icinga.com \#12379\] Object Notification [\#85](https://github.com/Icinga/puppet-icinga2/issues/85) - \[dev.icinga.com \#12378\] Object HostGroup [\#84](https://github.com/Icinga/puppet-icinga2/issues/84) - \[dev.icinga.com \#12377\] Object Host [\#83](https://github.com/Icinga/puppet-icinga2/issues/83) - \[dev.icinga.com \#12376\] Object EventCommand [\#82](https://github.com/Icinga/puppet-icinga2/issues/82) - \[dev.icinga.com \#12373\] Object Dependency [\#79](https://github.com/Icinga/puppet-icinga2/issues/79) - \[dev.icinga.com \#12372\] Object CompatLogger [\#78](https://github.com/Icinga/puppet-icinga2/issues/78) - \[dev.icinga.com \#12370\] Object CheckResultReader [\#76](https://github.com/Icinga/puppet-icinga2/issues/76) - \[dev.icinga.com \#12369\] Object CheckCommand [\#75](https://github.com/Icinga/puppet-icinga2/issues/75) - \[dev.icinga.com \#12349\] Apply Rules [\#55](https://github.com/Icinga/puppet-icinga2/issues/55) **Fixed bugs:** - \[dev.icinga.com \#13217\] Icinga Functions don't parse correctly [\#149](https://github.com/Icinga/puppet-icinga2/issues/149) - \[dev.icinga.com \#13207\] Wrong config for attribute vars in level 3 hash [\#148](https://github.com/Icinga/puppet-icinga2/issues/148) - \[dev.icinga.com \#13179\] Ruby 1.8 testing [\#146](https://github.com/Icinga/puppet-icinga2/issues/146) - \[dev.icinga.com \#13149\] "in" is a keyword for assignment [\#145](https://github.com/Icinga/puppet-icinga2/issues/145) - \[dev.icinga.com \#13123\] Objects with required parameters [\#144](https://github.com/Icinga/puppet-icinga2/issues/144) - \[dev.icinga.com \#13035\] Wrong syntax of "apply" in object.conf.erb template \(afaik\) [\#143](https://github.com/Icinga/puppet-icinga2/issues/143) - \[dev.icinga.com \#12980\] Symlinks in modules are not allowed in puppet modules [\#141](https://github.com/Icinga/puppet-icinga2/issues/141) **Merged pull requests:** - Proposal \(to be discussed\) for allowing function that USE context [\#20](https://github.com/Icinga/puppet-icinga2/pull/20) ([kwisatz](https://github.com/kwisatz)) ## [v0.5.0](https://github.com/icinga/puppet-icinga2/tree/v0.5.0) (2016-10-10) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.4.0...v0.5.0) **Implemented enhancements:** - \[dev.icinga.com \#12859\] Doc example for creating IDO database [\#129](https://github.com/Icinga/puppet-icinga2/issues/129) - \[dev.icinga.com \#12836\] Write profile class examples [\#124](https://github.com/Icinga/puppet-icinga2/issues/124) - \[dev.icinga.com \#12806\] Rework feature idopgsql [\#121](https://github.com/Icinga/puppet-icinga2/issues/121) - \[dev.icinga.com \#12805\] Rework feature idomysql [\#120](https://github.com/Icinga/puppet-icinga2/issues/120) - \[dev.icinga.com \#12804\] Rework feature influxdb [\#119](https://github.com/Icinga/puppet-icinga2/issues/119) - \[dev.icinga.com \#12802\] Usage documentation [\#118](https://github.com/Icinga/puppet-icinga2/issues/118) - \[dev.icinga.com \#12801\] Adjust SSL settings for features [\#117](https://github.com/Icinga/puppet-icinga2/issues/117) - \[dev.icinga.com \#12771\] Add parameter ensure to objects [\#114](https://github.com/Icinga/puppet-icinga2/issues/114) - \[dev.icinga.com \#12759\] Extend api feature with endpoints and zones parameter [\#113](https://github.com/Icinga/puppet-icinga2/issues/113) - \[dev.icinga.com \#12754\] features-with-objects [\#112](https://github.com/Icinga/puppet-icinga2/issues/112) - \[dev.icinga.com \#12388\] Object Zone [\#93](https://github.com/Icinga/puppet-icinga2/issues/93) - \[dev.icinga.com \#12375\] Object Endpoint [\#81](https://github.com/Icinga/puppet-icinga2/issues/81) - \[dev.icinga.com \#12368\] Object ApiUser [\#74](https://github.com/Icinga/puppet-icinga2/issues/74) - \[dev.icinga.com \#12367\] Objects [\#73](https://github.com/Icinga/puppet-icinga2/issues/73) **Fixed bugs:** - \[dev.icinga.com \#12875\] Icinga2 does not start on Windows [\#135](https://github.com/Icinga/puppet-icinga2/issues/135) - \[dev.icinga.com \#12871\] Please replace facts icinga2\_puppet\_\* by $::settings [\#133](https://github.com/Icinga/puppet-icinga2/issues/133) - \[dev.icinga.com \#12872\] Add Requires to basic config for features and objects that need additional packages [\#134](https://github.com/Icinga/puppet-icinga2/issues/134) - \[dev.icinga.com \#12867\] Feature-statusdata-update-interval-default [\#132](https://github.com/Icinga/puppet-icinga2/issues/132) - \[dev.icinga.com \#12865\] Class scoping [\#131](https://github.com/Icinga/puppet-icinga2/issues/131) - \[dev.icinga.com \#12864\] debian based system repo handling [\#130](https://github.com/Icinga/puppet-icinga2/issues/130) - \[dev.icinga.com \#12858\] Doc example class icinga2 [\#128](https://github.com/Icinga/puppet-icinga2/issues/128) - \[dev.icinga.com \#12857\] Default owner of config dir [\#127](https://github.com/Icinga/puppet-icinga2/issues/127) - \[dev.icinga.com \#12837\] File permission on windows [\#125](https://github.com/Icinga/puppet-icinga2/issues/125) - \[dev.icinga.com \#12821\] Unify windows unit tests [\#123](https://github.com/Icinga/puppet-icinga2/issues/123) - \[dev.icinga.com \#12809\] Path of Puppet keys and certs broken [\#122](https://github.com/Icinga/puppet-icinga2/issues/122) - \[dev.icinga.com \#12797\] windows line-breaks for objects [\#116](https://github.com/Icinga/puppet-icinga2/issues/116) - \[dev.icinga.com \#12775\] Api feature unit tests fail for windows [\#115](https://github.com/Icinga/puppet-icinga2/issues/115) ## [v0.4.0](https://github.com/icinga/puppet-icinga2/tree/v0.4.0) (2016-09-22) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.3.1...v0.4.0) **Implemented enhancements:** - \[dev.icinga.com \#12720\] Feature ido-pgsql [\#108](https://github.com/Icinga/puppet-icinga2/issues/108) - \[dev.icinga.com \#12706\] Implement host\_format\_template and service\_format\_template for perfdata feature [\#105](https://github.com/Icinga/puppet-icinga2/issues/105) - \[dev.icinga.com \#12363\] Feature ido-mysql [\#69](https://github.com/Icinga/puppet-icinga2/issues/69) **Fixed bugs:** - \[dev.icinga.com \#12743\] paths in api feature must be quoted [\#111](https://github.com/Icinga/puppet-icinga2/issues/111) ## [v0.3.1](https://github.com/icinga/puppet-icinga2/tree/v0.3.1) (2016-09-16) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.2.0...v0.3.1) **Implemented enhancements:** - \[dev.icinga.com \#12693\] Fix fixtures.yaml [\#102](https://github.com/Icinga/puppet-icinga2/issues/102) - \[dev.icinga.com \#12366\] Feature notification [\#72](https://github.com/Icinga/puppet-icinga2/issues/72) - \[dev.icinga.com \#12365\] Feature mainlog [\#71](https://github.com/Icinga/puppet-icinga2/issues/71) - \[dev.icinga.com \#12364\] Feature influxdb [\#70](https://github.com/Icinga/puppet-icinga2/issues/70) - \[dev.icinga.com \#12362\] Feature graphite [\#68](https://github.com/Icinga/puppet-icinga2/issues/68) - \[dev.icinga.com \#12361\] Feature checker [\#67](https://github.com/Icinga/puppet-icinga2/issues/67) - \[dev.icinga.com \#12360\] Feature syslog [\#66](https://github.com/Icinga/puppet-icinga2/issues/66) - \[dev.icinga.com \#12359\] Feature statusdata [\#65](https://github.com/Icinga/puppet-icinga2/issues/65) - \[dev.icinga.com \#12358\] Feature perfdata [\#64](https://github.com/Icinga/puppet-icinga2/issues/64) - \[dev.icinga.com \#12357\] Feature opentsdb [\#63](https://github.com/Icinga/puppet-icinga2/issues/63) - \[dev.icinga.com \#12356\] Feature livestatus [\#62](https://github.com/Icinga/puppet-icinga2/issues/62) - \[dev.icinga.com \#12355\] Feature gelf [\#61](https://github.com/Icinga/puppet-icinga2/issues/61) - \[dev.icinga.com \#12354\] Feature debuglog [\#60](https://github.com/Icinga/puppet-icinga2/issues/60) - \[dev.icinga.com \#12353\] Feature compatlog [\#59](https://github.com/Icinga/puppet-icinga2/issues/59) - \[dev.icinga.com \#12352\] Feature command [\#58](https://github.com/Icinga/puppet-icinga2/issues/58) - \[dev.icinga.com \#12351\] Feature api [\#57](https://github.com/Icinga/puppet-icinga2/issues/57) - \[dev.icinga.com \#12350\] Features [\#56](https://github.com/Icinga/puppet-icinga2/issues/56) - \[dev.icinga.com \#12343\] Use certificates generated by Puppet [\#49](https://github.com/Icinga/puppet-icinga2/issues/49) **Fixed bugs:** - \[dev.icinga.com \#12724\] RSpec tests without effect [\#109](https://github.com/Icinga/puppet-icinga2/issues/109) - \[dev.icinga.com \#12714\] 32bit for Windows [\#107](https://github.com/Icinga/puppet-icinga2/issues/107) - \[dev.icinga.com \#12713\] unit test for all defaults in feature mainlog [\#106](https://github.com/Icinga/puppet-icinga2/issues/106) - \[dev.icinga.com \#12698\] Params inheritance in features [\#104](https://github.com/Icinga/puppet-icinga2/issues/104) - \[dev.icinga.com \#12696\] Notify service when features-available/feature.conf is created [\#103](https://github.com/Icinga/puppet-icinga2/issues/103) - \[dev.icinga.com \#12692\] Fix mlodule depency Typo for module puppetlabs/chocolaty [\#101](https://github.com/Icinga/puppet-icinga2/issues/101) - \[dev.icinga.com \#12738\] Duplicate declaration File\[/etc/icinga2/pki\] [\#110](https://github.com/Icinga/puppet-icinga2/issues/110) ## [v0.2.0](https://github.com/icinga/puppet-icinga2/tree/v0.2.0) (2016-09-09) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.1.0...v0.2.0) **Implemented enhancements:** - \[dev.icinga.com \#12658\] Decide whether or not to drop support for Puppet 3.x and below [\#99](https://github.com/Icinga/puppet-icinga2/issues/99) - \[dev.icinga.com \#12657\] Unit tests should cover every supported OS/Distro instead of just one [\#98](https://github.com/Icinga/puppet-icinga2/issues/98) - \[dev.icinga.com \#12346\] Add Support for Ubuntu 14.04, 16.04 [\#52](https://github.com/Icinga/puppet-icinga2/issues/52) - \[dev.icinga.com \#12341\] Config handling [\#47](https://github.com/Icinga/puppet-icinga2/issues/47) **Fixed bugs:** - \[dev.icinga.com \#12656\] Inheritance [\#97](https://github.com/Icinga/puppet-icinga2/issues/97) ## [v0.1.0](https://github.com/icinga/puppet-icinga2/tree/v0.1.0) (2016-09-06) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.6.2...v0.1.0) **Implemented enhancements:** - \[dev.icinga.com \#12348\] Add Support for Windows [\#54](https://github.com/Icinga/puppet-icinga2/issues/54) - \[dev.icinga.com \#12347\] Add Support for CentOS 6, 7 [\#53](https://github.com/Icinga/puppet-icinga2/issues/53) - \[dev.icinga.com \#12345\] Add Support for Debian 7, 8 [\#51](https://github.com/Icinga/puppet-icinga2/issues/51) - \[dev.icinga.com \#12342\] Repo management [\#48](https://github.com/Icinga/puppet-icinga2/issues/48) - \[dev.icinga.com \#12340\] Installation [\#46](https://github.com/Icinga/puppet-icinga2/issues/46) ## [v0.6.2](https://github.com/icinga/puppet-icinga2/tree/v0.6.2) (2015-01-30) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v0.6.1...v0.6.2) ## [v0.6.1](https://github.com/icinga/puppet-icinga2/tree/v0.6.1) (2014-12-03) -\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* +\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file diff --git a/REFERENCE.md b/REFERENCE.md index 62a91b5..092e790 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -1,4304 +1,3469 @@ # Reference + ## Table of Contents -**Classes** +### Classes -_Public Classes_ +#### Public Classes * [`icinga2`](#icinga2): This module installs and configures Icinga 2. * [`icinga2::feature::api`](#icinga2featureapi): Configures the Icinga 2 feature api. * [`icinga2::feature::checker`](#icinga2featurechecker): Configures the Icinga 2 feature checker. * [`icinga2::feature::command`](#icinga2featurecommand): Configures the Icinga 2 feature command. * [`icinga2::feature::compatlog`](#icinga2featurecompatlog): Configures the Icinga 2 feature compatlog. * [`icinga2::feature::debuglog`](#icinga2featuredebuglog): Configures the Icinga 2 feature mainlog. * [`icinga2::feature::elasticsearch`](#icinga2featureelasticsearch): Configures the Icinga 2 feature elasticsearch. * [`icinga2::feature::gelf`](#icinga2featuregelf): Configures the Icinga 2 feature gelf. * [`icinga2::feature::graphite`](#icinga2featuregraphite): Configures the Icinga 2 feature graphite. * [`icinga2::feature::icingadb`](#icinga2featureicingadb): Configures the Icinga 2 feature icingadb. * [`icinga2::feature::idomysql`](#icinga2featureidomysql): Installs and configures the Icinga 2 feature ido-mysql. * [`icinga2::feature::idopgsql`](#icinga2featureidopgsql): Installs and configures the Icinga 2 feature ido-pgsql. * [`icinga2::feature::influxdb`](#icinga2featureinfluxdb): Configures the Icinga 2 feature influxdb. * [`icinga2::feature::livestatus`](#icinga2featurelivestatus): Configures the Icinga 2 feature livestatus. * [`icinga2::feature::mainlog`](#icinga2featuremainlog): Configures the Icinga 2 feature mainlog. * [`icinga2::feature::notification`](#icinga2featurenotification): Configures the Icinga 2 feature notification. * [`icinga2::feature::opentsdb`](#icinga2featureopentsdb): Configures the Icinga 2 feature opentsdb. * [`icinga2::feature::perfdata`](#icinga2featureperfdata): Configures the Icinga 2 feature perfdata. * [`icinga2::feature::statusdata`](#icinga2featurestatusdata): Configures the Icinga 2 feature statusdata. * [`icinga2::feature::syslog`](#icinga2featuresyslog): Configures the Icinga 2 feature syslog. * [`icinga2::pki::ca`](#icinga2pkica): This class provides multiple ways to create the CA used by Icinga 2. -_Private Classes_ +#### Private Classes * `icinga2::config`: This class exists to manage general configuration files needed by Icinga 2 to run. * `icinga2::globals`: This class loads the default parameters by doing a hiera lookup. * `icinga2::install`: This class handles the installation of the Icinga 2 package. On Windows only chocolatey is supported as installation source. -* `icinga2::repo`: This class manages the packages.icinga.com repository based on the operating system. Windows is not supported. * `icinga2::service`: This class handles the Icinga 2 service. By default the service will start on boot and will be restarted if stopped. -**Defined types** +### Defined types -_Public Defined types_ +#### Public Defined types * [`icinga2::config::fragment`](#icinga2configfragment): Set a code fragment in a target configuration file. * [`icinga2::object::apiuser`](#icinga2objectapiuser): Manage Icinga 2 ApiUser objects. * [`icinga2::object::checkcommand`](#icinga2objectcheckcommand): Manage Icinga 2 Host objects. * [`icinga2::object::checkresultreader`](#icinga2objectcheckresultreader): Manage Icinga 2 CheckResultReader objects. -* [`icinga2::object::dependency`](#icinga2objectdependency): Manage Icinga 2 dependency objects. * [`icinga2::object::endpoint`](#icinga2objectendpoint): Manage Icinga 2 endpoint objects. * [`icinga2::object::eventcommand`](#icinga2objecteventcommand): Manage Icinga 2 EventCommand objects. * [`icinga2::object::host`](#icinga2objecthost): Manage Icinga 2 Host objects. * [`icinga2::object::hostgroup`](#icinga2objecthostgroup): Manage Icinga 2 HostGroup objects. -* [`icinga2::object::notification`](#icinga2objectnotification): Manage Icinga 2 notification objects. * [`icinga2::object::notificationcommand`](#icinga2objectnotificationcommand): Manage Icinga 2 notificationcommand objects. -* [`icinga2::object::scheduleddowntime`](#icinga2objectscheduleddowntime): Manage Icinga 2 scheduleddowntime objects. -* [`icinga2::object::service`](#icinga2objectservice): Manage Icinga 2 service objects. * [`icinga2::object::servicegroup`](#icinga2objectservicegroup): Manage Icinga 2 servicegroup objects. * [`icinga2::object::timeperiod`](#icinga2objecttimeperiod): Manage Icinga 2 timeperiod objects. * [`icinga2::object::user`](#icinga2objectuser): Manage Icinga 2 user objects. * [`icinga2::object::usergroup`](#icinga2objectusergroup): Manage Icinga 2 usergroup objects. * [`icinga2::object::zone`](#icinga2objectzone): Manage Icinga 2 zone objects. -_Private Defined types_ +#### Private Defined types * `icinga2::feature`: Private define resource to used by this module only. * `icinga2::object`: Define resource to used by this module only. -**Functions** +### Functions * [`icinga2::icinga2_attributes`](#icinga2icinga2_attributes): Summarise what the function does here * [`icinga2::icinga2_ticket_id`](#icinga2icinga2_ticket_id): Summarise what the function does here * [`icinga2_attributes`](#icinga2_attributes): Wrapper for config parser * [`icinga2_ticket_id`](#icinga2_ticket_id): Generates a auth ticket to get a certificate -**Data types** +### Data types * [`Icinga2::CustomAttributes`](#icinga2customattributes): A type for the structure of custom attributes -* [`Icinga2::Fingerprint`](#icinga2fingerprint): Type for certificate fingerprints +* [`Icinga2::Fingerprint`](#icinga2fingerprint): Type for certificate fingerprints SHA1: 160 bit (20 byte) digest SHA256: 256 bit (32 byte) digest * [`Icinga2::Interval`](#icinga2interval): A strict type for intervals * [`Icinga2::LogFacility`](#icinga2logfacility): A strict type of syslog facilities * [`Icinga2::LogSeverity`](#icinga2logseverity): A strict type for log levels ## Classes -### icinga2 +### `icinga2` This module installs and configures Icinga 2. -* **Note** Setting manage_package to false means that all package aren't handeld by the module included the IDO packages. +* **Note** Setting manage_packages to false means that all package aren't handeld by the module included the IDO packages. #### Examples ##### Declare icinga2 with all defaults. Keep in mind that your operating system may not have Icinga 2 in its package repository. ```puppet include ::icinga2 ``` -##### If you want to use the official Icinga Project repository, enable the manage_repo parameter. +##### If you want to use the module icinga/puppet-icinga, e.g. to use the official Icinga Project repositories, enable the manage_repos parameter. ```puppet class { 'icinga2': - manage_repo => true, + manage_repos => true, } ``` ##### If you don't want to manage the Icinga 2 service with puppet, you can dissable this behaviour with the manage_service parameter. When set to false no service refreshes will be triggered. ```puppet class { 'icinga2': manage_service => false, } ``` ##### To manage the version of Icinga 2 binaries you can do it by disable package management: ```puppet package { 'icinga2': ensure => latest, notifiy => Class['icinga2'], } class { '::icinga2': - manage_package => false, + manage_packages => false, } ``` ##### To set constants in etc/icinga2/constants.conf use the constants parameter and as value a hash, every key will be set as constant and assigned by it's value. Defaults can be overwritten. ```puppet class { 'icinga2': ... constants => { 'key1' => 'value1', 'key2' => 'value2', 'PluginContirbDir' => '/usr/local/nagios/plugins', } } ``` ##### Enabling features with there defaults or loading parameters via Hiera: ```puppet class { '::icinga2': - manage_repo => true, - features => ['checker', 'mainlog', 'command'], + manage_repos => true, + features => ['checker', 'mainlog', 'command'], } ``` ##### The ITL contains several CheckCommand definitions to load, set these in the array of the plugins parameter, i.e. for a master or satellite do the following and disbale the load of the configuration in conf.d. ```puppet class { 'icinga': ... plugins => [ 'plugins', 'contrib-plugins', 'nscp', 'windows-plugins' ], confd => false, } ``` ##### Sometimes it's necessary to cover very special configurations that you cannot handle with this module. In this case you can use the icinga2::config::file tag on your file resource. This module collects all file resource types with this tag and triggers a reload of Icinga 2 on a file change. ```puppet include ::icinga2 file { '/etc/icinga2/conf.d/foo.conf': ensure => file, owner => icinga, ... tag => 'icinga2::config::file', ... } ``` ##### To use a different directory for your configuration, create the directory as file resource with tag icinga2::config::file. ```puppet file { '/etc/icinga2/local.d': ensure => directory, tag => 'icinga2::config::file' } class { 'icinga2': ... confd => 'local.d', } ``` #### Parameters The following parameters are available in the `icinga2` class. ##### `ensure` Data type: `Stdlib::Ensure::Service` Manages if the service should be stopped or running. -Default value: running +Default value: `running` ##### `enable` Data type: `Boolean` If set to true the Icinga 2 service will start on boot. -Default value: `true` +Default value: ``true`` ##### `manage_repo` Data type: `Boolean` -When set to true this module will install the packages.icinga.com repository. With this official repo you can get -the latest version of Icinga. When set to false the operating systems default will be used. As the Icinga Project -does not offer a Chocolatey repository, you will get a warning if you enable this parameter on Windows. +Deprecated, use manage_repos. + +Default value: ``false`` + +##### `manage_repos` + +Data type: `Boolean` + +When set to true this module will use the module icinga/puppet-icinga to manage repositories, +e.g. the release repo on packages.icinga.com repository by default, the EPEL repository or Backports. +For more information, see http://github.com/icinga/puppet-icinga. -Default value: `false` +Default value: ``false`` ##### `manage_package` Data type: `Boolean` +Deprecated, use manage_packages. + +Default value: ``false`` + +##### `manage_packages` + +Data type: `Boolean` + If set to false packages aren't managed. -Default value: `true` +Default value: ``true`` ##### `manage_selinux` Data type: `Boolean` If set to true the icinga selinux package is installed. Requires a `selinux_package_name` (icinga2::globals) -and `manage_package` has to be set to true. +and `manage_packages` has to be set to true. -Default value: `false` +Default value: ``false`` ##### `manage_service` Data type: `Boolean` If set to true the service is managed otherwise the service also isn't restarted if a config file changed. -Default value: `true` +Default value: ``true`` ##### `features` Data type: `Array` List of features to activate. Defaults to [checker, mainlog, notification]. ##### `purge_features` Data type: `Boolean` Define if configuration files for features not managed by Puppet should be purged. -Default value: `true` +Default value: ``true`` ##### `constants` Data type: `Hash` Hash of constants. Defaults are set in the params class. Your settings will be merged with the defaults. -Default value: {} +Default value: `{}` ##### `plugins` Data type: `Array` A list of the ITL plugins to load. Defaults to [ 'plugins', 'plugins-contrib', 'windows-plugins', 'nscp' ]. ##### `confd` Data type: `Variant[Boolean, String]` `conf.d` is the directory where Icinga 2 stores its object configuration by default. To disable it, set this parameter to `false`. By default this parameter is `true`. It's also possible to assign your own directory. This directory must be managed outside of this module as file resource with tag icinga2::config::file. -Default value: `true` +Default value: ``true`` -### icinga2::feature::api +### `icinga2::feature::api` Configures the Icinga 2 feature api. #### Examples ##### Use the puppet certificates and key copy these files to the cert directory named to 'hostname.key', 'hostname.crt' and 'ca.crt' if the contant NodeName is set to 'hostname'. ```puppet include ::icinga2::feature::api ``` ##### To use your own certificates and key as file resources if the contant NodeName is set to fqdn (default) do: ```puppet class { 'icinga2::feature::api': pki => 'none', } File { owner => 'icinga', group => 'icinga', } file { "/var/lib/icinga2/certs/${::fqdn}.key": ensure => file, tag => 'icinga2::config::file', source => "puppet:///modules/profiles/private_keys/${::fqdn}.key", } ... ``` ##### If you like to manage the certificates and the key as strings in base64 encoded format: ```puppet class { 'icinga2::feature::api': pki => 'none', ssl_cacert => '-----BEGIN CERTIFICATE----- ...', ssl_key => '-----BEGIN RSA PRIVATE KEY----- ...', ssl_cert => '-----BEGIN CERTIFICATE----- ...', } ``` ##### Fine tune TLS settings ```puppet class { '::icinga2::feature::api': ssl_protocolmin => 'TLSv1.2', ssl_cipher_list => 'HIGH:MEDIUM:!aNULL:!MD5:!RC4', } ``` ##### Transfer a CA certificate and key from an existing CA by using the file resource: ```puppet include ::icinga2 file { '/var/lib/icinga2/ca/ca.crt': source => '...', tag => 'icinga2::config::file', } file { '/var/lib/icinga2/ca/ca.key': source => '...', tag => 'icinga2::config::file', } ``` #### Parameters The following parameters are available in the `icinga2::feature::api` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature api, absent disabled it. -Default value: present +Default value: `present` ##### `pki` Data type: `Enum['ca', 'icinga2', 'none', 'puppet']` Provides multiple sources for the certificate, key and ca. - puppet: Copies the key, cert and CAcert from the Puppet ssl directory to the cert directory /var/lib/icinga2/certs on Linux and C:/ProgramData/icinga2/var/lib/icinga2/certs on Windows. - icinga2: Uses the icinga2 CLI to generate a Certificate Request and Key to obtain a signed Certificate from 'ca_host' using the icinga2 ticket mechanism. In case the 'ticket_salt' has been configured the ticket_id will be generated by the module in a custom function that imitates the icinga ticket generation. The 'ticket_id' parameter can be used to directly set an ticket_id. - none: Does nothing and you either have to manage the files yourself as file resources or use the ssl_key, ssl_cert, ssl_cacert parameters. -Default value: 'icinga2' +Default value: `'icinga2'` ##### `ssl_key` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The private key in a base64 encoded string to store in cert directory. This parameter requires pki to be set to 'none'. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cert` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The certificate in a base64 encoded string to store in cert directory This parameter requires pki to be set to 'none'. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cacert` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The CA root certificate in a base64 encoded string to store in cert directory. This parameter requires pki to be set to 'none'. -Default value: `undef` +Default value: ``undef`` ##### `ssl_crl` Data type: `Optional[Stdlib::Absolutepath]` Optional location of the certificate revocation list. -Default value: `undef` +Default value: ``undef`` ##### `accept_config` Data type: `Optional[Boolean]` Accept zone configuration. -Default value: `undef` +Default value: ``undef`` ##### `accept_commands` Data type: `Optional[Boolean]` Accept remote commands. -Default value: `undef` +Default value: ``undef`` ##### `max_anonymous_clients` Data type: `Optional[Integer[0]]` Limit the number of anonymous client connections (not configured endpoints and signing requests). -Default value: `undef` +Default value: ``undef`` ##### `ca_host` Data type: `Optional[Stdlib::Host]` This host will be connected to request the certificate. Set this if you use the icinga2 pki. -Default value: `undef` +Default value: ``undef`` ##### `ca_port` Data type: `Stdlib::Port::Unprivileged` Port of the 'ca_host'. -Default value: 5665 +Default value: `5665` ##### `fingerprint` Data type: `Optional[Icinga2::Fingerprint]` Fingerprint of the CA host certificate for validation. Requires pki is set to `icinga2`. You can get the fingerprint via 'openssl x509 -noout -fingerprint -sha256 -inform pem -in [certificate-file.crt]' on your CA host. (Icinga2 versions before 2.12.0 require '-sha1' as digest algorithm.) -Default value: `undef` +Default value: ``undef`` ##### `ticket_salt` Data type: `String` Salt to use for ticket generation. The salt is stored to api.conf if none or ca is chosen for pki. -Defaults to constant TicketSalt. +Defaults to constant TicketSalt. Keep in mind this parameter is parsed so please use only alpha numric +characters as salt or a constant. -Default value: 'TicketSalt' +Default value: `'TicketSalt'` ##### `ticket_id` Data type: `Optional[String]` If a ticket_id is given it will be used instead of generating an ticket_id. The ticket_id will be used only when requesting a certificate from the ca_host in case the pki is set to 'icinga2'. -Default value: `undef` +Default value: ``undef`` ##### `endpoints` Data type: `Hash[String, Hash]` Hash to configure endpoint objects. `NodeName` is a icnga2 constant. -Default value: { 'NodeName' => {} } +Default value: `{ 'NodeName' => {} }` ##### `zones` Data type: `Hash[String, Hash]` Hash to configure zone objects. `ZoneName` and `NodeName` are icinga2 constants. -Default value: { 'ZoneName' => { endpoints => [ 'NodeName' ] } } +Default value: `{ 'ZoneName' => { endpoints => [ 'NodeName' ] } }` ##### `ssl_protocolmin` Data type: `Optional[Enum['TLSv1', 'TLSv1.1', 'TLSv1.2']]` Minimal TLS version to require. -Default value: `undef` +Default value: ``undef`` ##### `ssl_handshake_timeout` Data type: `Optional[Icinga2::Interval]` TLS Handshake timeout. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cipher_list` Data type: `Optional[String]` List of allowed TLS ciphers, to finetune encryption. -Default value: `undef` +Default value: ``undef`` ##### `bind_host` Data type: `Optional[Stdlib::Host]` The IP address the api listener will be bound to. -Default value: `undef` +Default value: ``undef`` ##### `bind_port` Data type: `Optional[Stdlib::Port::Unprivileged]` The port the api listener will be bound to. -Default value: `undef` +Default value: ``undef`` ##### `access_control_allow_origin` Data type: `Optional[Array[String]]` Specifies an array of origin URLs that may access the API. -Default value: `undef` +Default value: ``undef`` ##### `access_control_allow_credentials` Data type: `Optional[Boolean]` Indicates whether or not the actual request can be made using credentials. -Default value: `undef` +Default value: ``undef`` ##### `access_control_allow_headers` Data type: `Optional[String]` Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request. -Default value: `undef` +Default value: ``undef`` ##### `access_control_allow_methods` Data type: `Optional[Array[Enum['GET', 'POST', 'PUT', 'DELETE']]]` Used in response to a preflight request to indicate which HTTP methods can be used when making the actual request. -Default value: `undef` +Default value: ``undef`` ##### `environment` Data type: `Optional[String]` Used as suffix in TLS SNI extension name; default from constant ApiEnvironment, which is empty. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::checker +### `icinga2::feature::checker` Configures the Icinga 2 feature checker. * **Note** Deprecated in Icinga 2.11, replaced by global constant MaxConcurrentChecks which will be set if you still use concurrent_checks. #### Parameters The following parameters are available in the `icinga2::feature::checker` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature checker, absent disabled it. -Default value: present +Default value: `present` ##### `concurrent_checks` Data type: `Optional[Integer[1]]` The maximum number of concurrent checks. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::command +### `icinga2::feature::command` Configures the Icinga 2 feature command. #### Parameters The following parameters are available in the `icinga2::feature::command` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present to enable the feature command, absent to disabled it. -Default value: present +Default value: `present` ##### `command_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the command pipe. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::compatlog +### `icinga2::feature::compatlog` Configures the Icinga 2 feature compatlog. #### Parameters The following parameters are available in the `icinga2::feature::compatlog` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature compatlog, absent disabled it. -Default value: present +Default value: `present` ##### `log_dir` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the log directory. -Default value: `undef` +Default value: ``undef`` ##### `rotation_method` Data type: `Optional[Enum['DAILY', 'HOURLY', 'MONTHLY', 'WEEKLY']]` Sets how often should the log file be rotated. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::debuglog +### `icinga2::feature::debuglog` Configures the Icinga 2 feature mainlog. #### Parameters The following parameters are available in the `icinga2::feature::debuglog` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature mainlog, absent disables it. -Default value: present +Default value: `present` ##### `path` Data type: `Stdlib::Absolutepath` Absolute path to the log file. -Default value: "${::icinga2::globals::log_dir}/debug.log" +Default value: `"${::icinga2::globals::log_dir}/debug.log"` -### icinga2::feature::elasticsearch +### `icinga2::feature::elasticsearch` Configures the Icinga 2 feature elasticsearch. #### Examples ##### ```puppet class { 'icinga2::feature::elasticsearch': host => "10.10.0.15", index => "icinga2" } ``` #### Parameters The following parameters are available in the `icinga2::feature::elasticsearch` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature elasticsearch, absent disables it. -Default value: present +Default value: `present` ##### `host` Data type: `Optional[Stdlib::Host]` Elasticsearch host address. -Default value: `undef` +Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` Elasticsearch HTTP port. -Default value: `undef` +Default value: ``undef`` ##### `index` Data type: `Optional[String]` Elasticsearch index name. -Default value: `undef` +Default value: ``undef`` ##### `username` Data type: `Optional[String]` Elasticsearch user name. -Default value: `undef` +Default value: ``undef`` ##### `password` Data type: `Optional[String]` -Elasticsearch user password. +Elasticsearch user password. The password parameter isn't parsed anymore. -Default value: `undef` +Default value: ``undef`` ##### `enable_ssl` Data type: `Optional[Boolean]` Either enable or disable SSL. Other SSL parameters are only affected if this is set to 'true'. -Default value: `undef` +Default value: ``undef`` ##### `ssl_key_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the private key. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the certificate. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cacert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the CA certificate. -Default value: `undef` +Default value: ``undef`` ##### `ssl_key` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The private key in a base64 encoded string to store in spicified ssl_key_path file. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cert` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The certificate in a base64 encoded to store in spicified ssl_cert_path file. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cacert` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The CA root certificate in a base64 encoded string to store in spicified ssl_cacert_path file. -Default value: `undef` +Default value: ``undef`` ##### `enable_send_perfdata` Data type: `Optional[Boolean]` Whether to send check performance data metrics. -Default value: `undef` +Default value: ``undef`` ##### `flush_interval` Data type: `Optional[Icinga2::Interval]` How long to buffer data points before transferring to Elasticsearch. -Default value: `undef` +Default value: ``undef`` ##### `flush_threshold` Data type: `Optional[Integer]` How many data points to buffer before forcing a transfer to Elasticsearch. -Default value: `undef` +Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::gelf +### `icinga2::feature::gelf` Configures the Icinga 2 feature gelf. #### Parameters The following parameters are available in the `icinga2::feature::gelf` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature gelf, absent disables it. -Default value: present +Default value: `present` ##### `host` Data type: `Optional[Stdlib::Host]` GELF receiver host address. -Default value: `undef` +Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` GELF receiver port. -Default value: `undef` +Default value: ``undef`` ##### `source` Data type: `Optional[String]` Source name for this instance. -Default value: `undef` +Default value: ``undef`` ##### `enable_send_perfdata` Data type: `Optional[Boolean]` Enable performance data for 'CHECK RESULT' events. -Default value: `undef` +Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::graphite +### `icinga2::feature::graphite` Configures the Icinga 2 feature graphite. #### Examples ##### ```puppet class { '::icinga2::feature::graphite': host => '10.10.0.15', port => 2003, enable_send_thresholds => true, enable_send_metadata => true, } ``` #### Parameters The following parameters are available in the `icinga2::feature::graphite` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature graphite, absent disabled it. -Default value: present +Default value: `present` ##### `host` Data type: `Optional[Stdlib::Host]` Graphite Carbon host address. -Default value: `undef` +Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` Graphite Carbon port. -Default value: `undef` +Default value: ``undef`` ##### `host_name_template` Data type: `Optional[String]` Template for metric path of hosts. -Default value: `undef` +Default value: ``undef`` ##### `service_name_template` Data type: `Optional[String]` Template for metric path of services. -Default value: `undef` +Default value: ``undef`` ##### `enable_send_thresholds` Data type: `Optional[Boolean]` -Default value: `undef` +Default value: ``undef`` ##### `enable_send_metadata` Data type: `Optional[Boolean]` -Default value: `undef` +Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::icingadb +### `icinga2::feature::icingadb` Configures the Icinga 2 feature icingadb. #### Parameters The following parameters are available in the `icinga2::feature::icingadb` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present, enables the feature icingadb, absent disabled it. -Default value: present +Default value: `present` ##### `host` Data type: `Optional[Stdlib::Host]` IcingaDB Redis host address. -Default value: `undef` +Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` IcingaDB Redis port. -Default value: `undef` +Default value: ``undef`` ##### `socket_path` Data type: `Optional[Stdlib::Absolutepath]` IcingaDB Redis unix sockt. Can be used instead of host and port attributes. -Default value: `undef` +Default value: ``undef`` ##### `password` Data type: `Optional[String]` -IcingaDB Redis password. +IcingaDB Redis password. The password parameter isn't parsed anymore. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::idomysql +### `icinga2::feature::idomysql` Installs and configures the Icinga 2 feature ido-mysql. #### Examples ##### The ido-mysql featue requires an existing database and a user with permissions. This example uses the [puppetlabs/mysql](https://forge.puppet.com/puppetlabs/mysql) module. ```puppet include mysql::server mysql::db { 'icinga2': user => 'icinga2', password => 'supersecret', host => 'localhost', grant => ['SELECT', 'INSERT', 'UPDATE', 'DELETE', 'DROP', 'CREATE VIEW', 'CREATE', 'INDEX', 'EXECUTE', 'ALTER'], } class{ 'icinga2::feature::idomysql': user => "icinga2", password => "supersecret", database => "icinga2", import_schema => true, require => Mysql::Db['icinga2'] } ``` #### Parameters The following parameters are available in the `icinga2::feature::idomysql` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature ido-mysql, absent disables it. -Default value: present +Default value: `present` ##### `host` Data type: `Stdlib::Host` MySQL database host address. -Default value: 'localhost' +Default value: `'localhost'` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` MySQL database port. -Default value: `undef` +Default value: ``undef`` ##### `socket_path` Data type: `Optional[Stdlib::Absolutepath]` MySQL socket path. -Default value: `undef` +Default value: ``undef`` ##### `user` Data type: `String` MySQL database user with read/write permission to the icinga database. -Default value: 'icinga' +Default value: `'icinga'` ##### `password` Data type: `String` -MySQL database user's password. +MySQL database user's password. The password parameter isn't parsed anymore. ##### `database` Data type: `String` MySQL database name. -Default value: 'icinga' +Default value: `'icinga'` ##### `enable_ssl` Data type: `Boolean` Either enable or disable SSL/TLS. Other SSL parameters are only affected if this is set to 'true'. -Default value: `false` +Default value: ``false`` ##### `ssl_key_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the private key. Only valid if ssl is enabled. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the certificate. Only valid if ssl is enabled. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cacert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the CA certificate. Only valid if ssl is enabled. -Default value: `undef` +Default value: ``undef`` ##### `ssl_key` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The private key in a base64 encoded string to store in spicified ssl_key_path file. Only valid if ssl is enabled. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cert` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The certificate in a base64 encoded string to store in spicified ssl_cert_path file. Only valid if ssl is enabled. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cacert` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The CA root certificate in a base64 encoded string to store in spicified ssl_cacert_path file. Only valid if ssl is enabled. -Default value: `undef` +Default value: ``undef`` ##### `ssl_capath` Data type: `Optional[Stdlib::Absolutepath]` MySQL SSL trusted SSL CA certificates in PEM format directory path. Only valid if ssl is enabled. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cipher` Data type: `Optional[String]` MySQL SSL list of allowed ciphers. Only valid if ssl is enabled. -Default value: `undef` +Default value: ``undef`` ##### `table_prefix` Data type: `Optional[String]` MySQL database table prefix. -Default value: `undef` +Default value: ``undef`` ##### `instance_name` Data type: `Optional[String]` Unique identifier for the local Icinga 2 instance. -Default value: `undef` +Default value: ``undef`` ##### `instance_description` Data type: `Optional[String]` Description for the Icinga 2 instance. -Default value: `undef` +Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. -Default value: `undef` +Default value: ``undef`` ##### `failover_timeout` Data type: `Optional[Icinga2::Interval]` Set the failover timeout in a HA cluster. Must not be lower than 60s. -Default value: `undef` +Default value: ``undef`` ##### `cleanup` Data type: `Optional[Hash[String,Icinga2::Interval]]` Hash with items for historical table cleanup. -Default value: `undef` +Default value: ``undef`` ##### `categories` Data type: `Optional[Array]` Array of information types that should be written to the database. -Default value: `undef` +Default value: ``undef`` ##### `import_schema` Data type: `Boolean` Whether to import the MySQL schema or not. -Default value: `false` +Default value: ``false`` -### icinga2::feature::idopgsql +### `icinga2::feature::idopgsql` Installs and configures the Icinga 2 feature ido-pgsql. #### Examples ##### The ido-pgsql featue requires an existing database and a user with permissions. This example uses the [puppetlab/postgresql](https://forge.puppet.com/puppetlabs/postgresql) module. ```puppet include icinga2 include postgresql::server postgresql::server::db { 'icinga2': user => 'icinga2', password => postgresql_password('icinga2', 'supersecret'), } class{ 'icinga2::feature::idopgsql': - user => "icinga2", - password => "supersecret", - database => "icinga2", + user => 'icinga2', + password => 'supersecret', + database => 'icinga2', import_schema => true, require => Postgresql::Server::Db['icinga2'] } ``` #### Parameters The following parameters are available in the `icinga2::feature::idopgsql` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature ido-pgsql, absent disables it. -Default value: present +Default value: `present` ##### `host` Data type: `Stdlib::Host` PostgreSQL database host address. -Default value: 'localhost' +Default value: `'localhost'` ##### `port` Data type: `Stdlib::Port::Unprivileged` PostgreSQL database port. -Default value: 5432 +Default value: `5432` ##### `user` Data type: `String` PostgreSQL database user with read/write permission to the icinga database. -Default value: 'icinga' +Default value: `'icinga'` ##### `password` Data type: `String` -PostgreSQL database user's password. +PostgreSQL database user's password. The password parameter isn't parsed anymore. ##### `database` Data type: `String` PostgreSQL database name. -Default value: 'icinga' +Default value: `'icinga'` ##### `table_prefix` Data type: `Optional[String]` PostgreSQL database table prefix. -Default value: `undef` +Default value: ``undef`` ##### `instance_name` Data type: `Optional[String]` Unique identifier for the local Icinga 2 instance. -Default value: `undef` +Default value: ``undef`` ##### `instance_description` Data type: `Optional[String]` Description of the Icinga 2 instance. -Default value: `undef` +Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. -Default value: `undef` +Default value: ``undef`` ##### `failover_timeout` Data type: `Optional[Icinga2::Interval]` Set the failover timeout in a HA cluster. Must not be lower than 60s. -Default value: `undef` +Default value: ``undef`` ##### `cleanup` Data type: `Optional[Hash]` Hash with items for historical table cleanup. -Default value: `undef` +Default value: ``undef`` ##### `categories` Data type: `Optional[Array]` Array of information types that should be written to the database. -Default value: `undef` +Default value: ``undef`` ##### `import_schema` Data type: `Boolean` Whether to import the PostgreSQL schema or not. -Default value: `false` +Default value: ``false`` -### icinga2::feature::influxdb +### `icinga2::feature::influxdb` Configures the Icinga 2 feature influxdb. #### Examples ##### ```puppet class { 'icinga2::feature::influxdb': host => "10.10.0.15", username => "icinga2", password => "supersecret", database => "icinga2" } ``` #### Parameters The following parameters are available in the `icinga2::feature::influxdb` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature influxdb, absent disables it. -Default value: present +Default value: `present` ##### `host` Data type: `Optional[Stdlib::Host]` InfluxDB host address. -Default value: `undef` +Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port]` InfluxDB HTTP port. -Default value: `undef` +Default value: ``undef`` ##### `database` Data type: `Optional[String]` InfluxDB database name. -Default value: `undef` +Default value: ``undef`` ##### `username` Data type: `Optional[String]` InfluxDB user name. -Default value: `undef` +Default value: ``undef`` ##### `password` Data type: `Optional[String]` -InfluxDB user password. +InfluxDB user password. The password parameter isn't parsed anymore. -Default value: `undef` +Default value: ``undef`` ##### `enable_ssl` Data type: `Optional[Boolean]` Either enable or disable SSL. Other SSL parameters are only affected if this is set to 'true'. -Default value: `undef` +Default value: ``undef`` ##### `ssl_key_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the private key. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the certificate. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cacert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the CA certificate. -Default value: `undef` +Default value: ``undef`` ##### `ssl_key` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The private key in a base64 encoded string to store in ssl_key_path file. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cert` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The certificate in a base64 encoded string to store in ssl_cert_path file. -Default value: `undef` +Default value: ``undef`` ##### `ssl_cacert` -Data type: `Optional[String]` +Data type: `Optional[Stdlib::Base64]` The CA root certificate in a base64 encoded to store in ssl_cacert_path file. -Default value: `undef` +Default value: ``undef`` ##### `host_measurement` Data type: `String` The value of this is used for the measurement setting in host_template. -Default value: '$host.check_command$' +Default value: `'$host.check_command$'` ##### `host_tags` Data type: `Hash` Tags defined in this hash will be set in the host_template. -Default value: { hostname => '$host.name$' } +Default value: `{ hostname => '$host.name$' }` ##### `service_measurement` Data type: `String` The value of this is used for the measurement setting in host_template. -Default value: '$service.check_command$' +Default value: `'$service.check_command$'` ##### `service_tags` Data type: `Hash` Tags defined in this hash will be set in the service_template. -Default value: { hostname => '$host.name$', service => '$service.name$' } +Default value: `{ hostname => '$host.name$', service => '$service.name$' }` ##### `enable_send_thresholds` Data type: `Optional[Boolean]` Whether to send warn, crit, min & max tagged data. -Default value: `undef` +Default value: ``undef`` ##### `enable_send_metadata` Data type: `Optional[Boolean]` Whether to send check metadata e.g. states, execution time, latency etc. -Default value: `undef` +Default value: ``undef`` ##### `flush_interval` Data type: `Optional[Icinga2::Interval]` How long to buffer data points before transfering to InfluxDB. -Default value: `undef` +Default value: ``undef`` ##### `flush_threshold` Data type: `Optional[Integer[1]]` How many data points to buffer before forcing a transfer to InfluxDB. -Default value: `undef` +Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::livestatus +### `icinga2::feature::livestatus` Configures the Icinga 2 feature livestatus. #### Parameters The following parameters are available in the `icinga2::feature::livestatus` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature livestatus, absent disables it. -Default value: present +Default value: `present` ##### `socket_type` Data type: `Optional[Enum['tcp', 'unix']]` Specifies the socket type. Can be either 'tcp' or 'unix'. -Default value: `undef` +Default value: ``undef`` ##### `bind_host` Data type: `Optional[Stdlib::Host]` IP address to listen for connections. Only valid when socket_type is 'tcp'. -Default value: `undef` +Default value: ``undef`` ##### `bind_port` Data type: `Optional[Stdlib::Port::Unprivileged]` Port to listen for connections. Only valid when socket_type is 'tcp'. -Default value: `undef` +Default value: ``undef`` ##### `socket_path` Data type: `Optional[Stdlib::Absolutepath]` Specifies the path to the UNIX socket file. Only valid when socket_type is 'unix'. -Default value: `undef` +Default value: ``undef`` ##### `compat_log_path` Data type: `Optional[Stdlib::Absolutepath]` Required for historical table queries. Requires CompatLogger feature to be enabled. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::mainlog +### `icinga2::feature::mainlog` Configures the Icinga 2 feature mainlog. #### Parameters The following parameters are available in the `icinga2::feature::mainlog` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to 'present' enables the feature mainlog, 'absent' disabled it. -Default value: present +Default value: `present` ##### `severity` Data type: `Icinga2::LogSeverity` You can set the log severity to 'information', 'notice', 'warning' or 'debug'. -Default value: 'information' +Default value: `'information'` ##### `path` Data type: `Stdlib::Absolutepath` Absolute path to the log file. -Default value: "${::icinga2::globals::log_dir}/icinga2.log" +Default value: `"${::icinga2::globals::log_dir}/icinga2.log"` -### icinga2::feature::notification +### `icinga2::feature::notification` Configures the Icinga 2 feature notification. #### Parameters The following parameters are available in the `icinga2::feature::notification` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature notification, absent disabled it. -Default value: present +Default value: `present` ##### `enable_ha` Data type: `Optional[Boolean]` Notifications are load-balanced amongst all nodes in a zone. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::opentsdb +### `icinga2::feature::opentsdb` Configures the Icinga 2 feature opentsdb. #### Parameters The following parameters are available in the `icinga2::feature::opentsdb` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature opentsdb, absent disables it. -Default value: present +Default value: `present` ##### `host` Data type: `Optional[Stdlib::Host]` OpenTSDB host address. -Default value: `undef` +Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` OpenTSDB port. -Default value: `undef` +Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::perfdata +### `icinga2::feature::perfdata` Configures the Icinga 2 feature perfdata. #### Parameters The following parameters are available in the `icinga2::feature::perfdata` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature perfdata, absent disables it. -Default value: present +Default value: `present` ##### `host_perfdata_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the perfdata file for hosts. -Default value: `undef` +Default value: ``undef`` ##### `service_perfdata_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the perfdata file for services. -Default value: `undef` +Default value: ``undef`` ##### `host_temp_path` Data type: `Optional[Stdlib::Absolutepath]` Path to the temporary host file. -Default value: `undef` +Default value: ``undef`` ##### `service_temp_path` Data type: `Optional[Stdlib::Absolutepath]` Path to the temporary service file. -Default value: `undef` +Default value: ``undef`` ##### `host_format_template` Data type: `Optional[String]` Host Format template for the performance data file. -Default value: `undef` +Default value: ``undef`` ##### `service_format_template` Data type: `Optional[String]` Service Format template for the performance data file. -Default value: `undef` +Default value: ``undef`` ##### `rotation_interval` Data type: `Optional[Icinga2::Interval]` Rotation interval for the files specified in {host,service}_perfdata_path. Can be written in minutes or seconds, i.e. 1m or 15s. -Default value: `undef` +Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::statusdata +### `icinga2::feature::statusdata` Configures the Icinga 2 feature statusdata. #### Parameters The following parameters are available in the `icinga2::feature::statusdata` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature statusdata, absent disables it. -Default value: present +Default value: `present` ##### `status_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the status.dat file. -Default value: `undef` +Default value: ``undef`` ##### `objects_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the object.cache file. -Default value: `undef` +Default value: ``undef`` ##### `update_interval` Data type: `Optional[Icinga2::Interval]` Interval in seconds to update both status files. You can also specify it in minutes with the letter m or in seconds with s. -Default value: `undef` +Default value: ``undef`` -### icinga2::feature::syslog +### `icinga2::feature::syslog` Configures the Icinga 2 feature syslog. #### Parameters The following parameters are available in the `icinga2::feature::syslog` class. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the feature syslog, absent disables it. -Default value: present +Default value: `present` ##### `severity` Data type: `Optional[Icinga2::LogSeverity]` You can choose the log severity between information, notice, warning or debug. -Default value: `undef` +Default value: ``undef`` ##### `facility` Data type: `Optional[Icinga2::LogFacility]` Defines the facility to use for syslog entries. This can be a facility constant like FacilityDaemon. -Default value: `undef` +Default value: ``undef`` -### icinga2::pki::ca +### `icinga2::pki::ca` This class provides multiple ways to create the CA used by Icinga 2. #### Examples ##### Let Icinga 2 generate a CA for you: ```puppet include icinga2 include icinga2::pki::ca ``` ##### Set the content of CA certificate and key: ```puppet include icinga2 class { 'icinga2::pki::ca': ca_cert => '-----BEGIN CERTIFICATE----- ...', ca_key => '-----BEGIN RSA PRIVATE KEY----- ...', } ``` #### Parameters The following parameters are available in the `icinga2::pki::ca` class. ##### `ca_cert` Data type: `Optional[String]` Content of the CA certificate. If this is unset, a certificate will be generated with the Icinga 2 CLI. -Default value: `undef` +Default value: ``undef`` ##### `ca_key` Data type: `Optional[String]` Content of the CA key. If this is unset, a key will be generated with the Icinga 2 CLI. -Default value: `undef` +Default value: ``undef`` ## Defined types -### icinga2::config::fragment +### `icinga2::config::fragment` Set a code fragment in a target configuration file. #### Examples ##### To create a custom configuration add content to a specified target at the position you set in the order parameter. You can use also templates to add content. ```puppet include ::icinga2 icinga2::object::service { 'load': display_name => 'Load', apply => true, check_command => 'load', assign => ['vars.os == Linux'], target => '/etc/icinga2/conf.d/service_load.conf', order => 30, } icinga2::config::fragment { 'load-function': target => '/etc/icinga2/conf.d/service_load.conf', order => 10, content => 'vars.load_wload1 = {{ if (get_time_period("backup").is_inside) { return 20 } else { return 5 } }}', } ``` #### Parameters The following parameters are available in the `icinga2::config::fragment` defined type. ##### `content` Data type: `String` Content to insert in file specified in target. ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this fragment. File will be declared the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted in alpha numeric order. Defaults to `00`. -Default value: '00' +Default value: `'00'` ##### `code_name` Data type: `String` -Default value: $title +Default value: `$title` -### icinga2::object::apiuser +### `icinga2::object::apiuser` Manage Icinga 2 ApiUser objects. #### Examples ##### Create an user with full permissions: ```puppet ::icinga2::object::apiuser { 'director': ensure => present, password => 'Eih5Weefoo2oa8sh', permissions => [ '*' ], target => '/etc/icinga2/conf.d/api-users.conf', } ``` ##### Create an user with restricted permissions for Icinga Web 2: ```puppet ::icinga2::object::apiuser { 'icingaweb2': ensure => present, password => '12e2ef553068b519', permissions => [ 'status/query', 'actions/*', 'objects/modify/*', 'objects/query/*' ], target => '/etc/icinga2/conf.d/api-users.conf', } ``` ##### Create user who's only allowed to query hosts and services: ```puppet ::icinga2::object::apiuser { 'read': ensure => present, password => 'read', permissions => [ { permission => 'objects/query/Host', filter => '{{ regex("^Linux", host.vars.os) }}' }, { permission => 'objects/query/Service', filter => '{{ regex("^Linux", host.vars.os) }}' }, ], target => '/etc/icinga2/conf.d/api-users.conf', } ``` #### Parameters The following parameters are available in the `icinga2::object::apiuser` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `apiuser_name` Data type: `String` Set the name of the apiuser object. -Default value: $title +Default value: `$title` ##### `password` Data type: `Optional[String]` -Password string. +Password string. The password parameter isn't parsed anymore. -Default value: `undef` +Default value: ``undef`` ##### `client_cn` Data type: `Optional[String]` Optional. Client Common Name (CN). -Default value: `undef` +Default value: ``undef`` ##### `permissions` Data type: `Optional[Array]` Array of permissions. Either as string or dictionary with the keys permission and filter. The latter must be specified as function. -Default value: `undef` +Default value: ``undef`` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared at the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 30 +Default value: `30` -### icinga2::object::checkcommand +### `icinga2::object::checkcommand` Manage Icinga 2 Host objects. #### Parameters The following parameters are available in the `icinga2::object::checkcommand` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `checkcommand_name` Data type: `String` Title of the CheckCommand object. -Default value: $title +Default value: `$title` ##### `import` Data type: `Array` Sorted List of templates to include. -Default value: [] +Default value: `[]` ##### `command` Data type: `Optional[Variant[Array, String]]` The command. This can either be an array of individual command arguments. Alternatively a string can be specified in which case the shell interpreter (usually /bin/sh) takes care of parsing the command. When using the "arguments" attribute this must be an array. Can be specified as function for advanced implementations. -Default value: `undef` +Default value: ``undef`` ##### `env` Data type: `Optional[Hash]` A dictionary of macros which should be exported as environment variables prior to executing the command. -Default value: `undef` +Default value: ``undef`` ##### `vars` Data type: `Optional[Icinga2::CustomAttributes]` A dictionary containing custom attributes that are specific to this service, a string to do operations on this dictionary or an array for multiple use of custom attributes. -Default value: `undef` +Default value: ``undef`` ##### `timeout` -Data type: `Optional[Integer[1]]` +Data type: `Optional[Icinga2::Interval]` The command timeout in seconds. -Default value: `undef` +Default value: ``undef`` ##### `arguments` Data type: `Optional[Variant[Hash, String]]` A dictionary of command arguments. -Default value: `undef` +Default value: ``undef`` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared the first time. ##### `template` Data type: `Boolean` Set to true creates a template instead of an object. -Default value: `false` +Default value: ``false`` ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 15 +Default value: `15` -### icinga2::object::checkresultreader +### `icinga2::object::checkresultreader` Manage Icinga 2 CheckResultReader objects. #### Parameters The following parameters are available in the `icinga2::object::checkresultreader` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `checkresultreader_name` Data type: `String` Set the Icinga 2 name of the ceckresultreader object. -Default value: $title +Default value: `$title` ##### `spool_dir` Data type: `Optional[Stdlib::Absolutepath]` The directory which contains the check result files. -Default value: `undef` - -##### `target` - -Data type: `Stdlib::Absolutepath` - -Destination config file to store in this object. File will be declared the -first time. - -##### `order` - -Data type: `Variant[String, Integer]` - -String or integer to set the position in the target file, sorted alpha numeric. - -Default value: '05' - -### icinga2::object::dependency - -Manage Icinga 2 dependency objects. - -#### Parameters - -The following parameters are available in the `icinga2::object::dependency` defined type. - -##### `ensure` - -Data type: `Enum['absent', 'present']` - -Set to present enables the object, absent disables it. - -Default value: present - -##### `dependency_name` - -Data type: `String` - -Set the Icinga 2 name of the dependency object. - -Default value: $title - -##### `parent_host_name` - -Data type: `Optional[String]` - -The parent host. - -Default value: `undef` - -##### `parent_service_name` - -Data type: `Optional[String]` - -The parent service. If omitted, this dependency object is treated as host -dependency. - -Default value: `undef` - -##### `child_host_name` - -Data type: `Optional[String]` - -The child host. - -Default value: `undef` - -##### `child_service_name` - -Data type: `Optional[String]` - -The child service. If omitted, this dependency object is treated as host -dependency. - -Default value: `undef` - -##### `disable_checks` - -Data type: `Optional[Boolean]` - -Whether to disable checks when this dependency fails. - -Default value: `undef` - -##### `disable_notifications` - -Data type: `Optional[Boolean]` - -Whether to disable notifications when this dependency fails. -true. - -Default value: `undef` - -##### `ignore_soft_states` - -Data type: `Optional[Boolean]` - -Whether to ignore soft states for the reachability calculation. -true. - -Default value: `undef` - -##### `period` - -Data type: `Optional[String]` - -Time period during which this dependency is enabled. - -Default value: `undef` - -##### `states` - -Data type: `Optional[Array]` - -A list of state filters when this dependency should be OK. - -Default value: `undef` - -##### `apply` - -Data type: `Variant[Boolean, String]` - -Dispose an apply instead an object if set to 'true'. Value is taken as statement, -i.e. 'vhost => config in host.vars.vhosts'. - -Default value: `false` - -##### `prefix` - -Data type: `Variant[Boolean, String]` - -Set dependency_name as prefix in front of 'apply for'. Only effects if apply is a string. - -Default value: `false` - -##### `apply_target` - -Data type: `Enum['Host', 'Service']` - -An object type on which to target the apply rule. Valid values are `Host` -and `Service`. - -Default value: 'Host' - -##### `assign` - -Data type: `Array` - -Assign user group members using the group assign rules. - -Default value: [] - -##### `ignore` - -Data type: `Array` - -Exclude users using the group ignore rules. - -Default value: [] - -##### `template` - -Data type: `Boolean` - -Set to true creates a template instead of an object. - -Default value: `false` - -##### `import` - -Data type: `Array` - -Sorted List of templates to include. - -Default value: [] +Default value: ``undef`` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 70 +Default value: `'05'` -### icinga2::object::endpoint +### `icinga2::object::endpoint` Manage Icinga 2 endpoint objects. #### Parameters The following parameters are available in the `icinga2::object::endpoint` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `endpoint_name` Data type: `String` Set the Icinga 2 name of the endpoint object. -Default value: $title +Default value: `$title` ##### `host` Data type: `Optional[Stdlib::Host]` Optional. The IP address of the remote Icinga 2 instance. -Default value: `undef` +Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` The service name/port of the remote Icinga 2 instance. -Default value: `undef` +Default value: ``undef`` ##### `log_duration` Data type: `Optional[Icinga2::Interval]` Duration for keeping replay logs on connection loss. Attribute is specified in seconds. If log_duration is set to 0, replaying logs is disabled. You could also specify the value in human readable format like 10m for 10 minutes or 1h for one hour. -Default value: `undef` +Default value: ``undef`` ##### `target` Data type: `Optional[Stdlib::Absolutepath]` Destination config file to store in this object. File will be declared at the first time. -Default value: `undef` +Default value: ``undef`` ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 40 +Default value: `40` -### icinga2::object::eventcommand +### `icinga2::object::eventcommand` Manage Icinga 2 EventCommand objects. #### Parameters The following parameters are available in the `icinga2::object::eventcommand` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `eventcommand_name` Data type: `String` Set the Icinga 2 name of the eventcommand object. -Default value: $title +Default value: `$title` ##### `command` Data type: `Optional[Variant[Array, String]]` The command. This can either be an array of individual command arguments. Alternatively a string can be specified in which case the shell interpreter (usually /bin/sh) takes care of parsing the command. -Default value: `undef` +Default value: ``undef`` ##### `env` Data type: `Optional[Hash]` A dictionary of macros which should be exported as environment variables prior to executing the command. -Default value: `undef` +Default value: ``undef`` ##### `vars` Data type: `Optional[Icinga2::CustomAttributes]` A dictionary containing custom attributes that are specific to this service, a string to do operations on this dictionary or an array for multiple use of custom attributes. -Default value: `undef` +Default value: ``undef`` ##### `timeout` -Data type: `Optional[Integer[1]]` +Data type: `Optional[Icinga2::Interval]` The command timeout in seconds. -Default value: `undef` +Default value: ``undef`` ##### `arguments` Data type: `Optional[Hash]` A dictionary of command arguments. -Default value: `undef` +Default value: ``undef`` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared the first time. ##### `import` Data type: `Array` Sorted List of templates to include. -Default value: [] +Default value: `[]` ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 20 +Default value: `20` -### icinga2::object::host +### `icinga2::object::host` Manage Icinga 2 Host objects. #### Parameters The following parameters are available in the `icinga2::object::host` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `host_name` Data type: `String` Hostname of the Host object. -Default value: $title +Default value: `$title` ##### `import` Data type: `Array` Sorted List of templates to include. -Default value: [] +Default value: `[]` ##### `display_name` Data type: `Optional[String]` A short description of the host (e.g. displayed by external interfaces instead of the name if set). -Default value: `undef` +Default value: ``undef`` ##### `address` Data type: `Optional[Stdlib::Host]` The host's address v4. -Default value: `undef` +Default value: ``undef`` ##### `address6` Data type: `Optional[Stdlib::Host]` The host's address v6. -Default value: `undef` +Default value: ``undef`` ##### `vars` Data type: `Optional[Icinga2::CustomAttributes]` A dictionary containing custom attributes that are specific to this service, a string to do operations on this dictionary or an array for multiple use of custom attributes. -Default value: `undef` +Default value: ``undef`` ##### `groups` Data type: `Optional[Array]` A list of host groups this host belongs to. -Default value: `undef` +Default value: ``undef`` ##### `check_command` Data type: `Optional[String]` The name of the check command. -Default value: `undef` +Default value: ``undef`` ##### `max_check_attempts` Data type: `Optional[Integer[1]]` The number of times a host is re-checked before changing into a hard state. -Default value: `undef` +Default value: ``undef`` ##### `check_period` Data type: `Optional[String]` The name of a time period which determines when this host should be checked. -Default value: `undef` +Default value: ``undef`` ##### `check_timeout` Data type: `Optional[Icinga2::Interval]` Check command timeout in seconds. Overrides the CheckCommand's timeout attribute. -Default value: `undef` +Default value: ``undef`` ##### `check_interval` Data type: `Optional[Icinga2::Interval]` The check interval (in seconds). This interval is used for checks when the host is in a HARD state. -Default value: `undef` +Default value: ``undef`` ##### `retry_interval` Data type: `Optional[Icinga2::Interval]` The retry interval (in seconds). This interval is used for checks when the host is in a SOFT state. -Default value: `undef` +Default value: ``undef`` ##### `enable_notifications` Data type: `Optional[Boolean]` Whether notifications are enabled. -Default value: `undef` +Default value: ``undef`` ##### `enable_active_checks` Data type: `Optional[Boolean]` Whether active checks are enabled. -Default value: `undef` +Default value: ``undef`` ##### `enable_passive_checks` Data type: `Optional[Boolean]` Whether passive checks are enabled. -Default value: `undef` +Default value: ``undef`` ##### `enable_event_handler` Data type: `Optional[Boolean]` Enables event handlers for this host. -Default value: `undef` +Default value: ``undef`` ##### `enable_flapping` Data type: `Optional[Boolean]` Whether flap detection is enabled. -Default value: `undef` +Default value: ``undef`` ##### `enable_perfdata` Data type: `Optional[Boolean]` Whether performance data processing is enabled. -Default value: `undef` +Default value: ``undef`` ##### `event_command` Data type: `Optional[String]` The name of an event command that should be executed every time the host's state changes or the host is in a SOFT state. -Default value: `undef` +Default value: ``undef`` ##### `flapping_threshold_low` Data type: `Optional[Integer[1]]` Flapping lower bound in percent for a host to be considered not flapping. -Default value: `undef` +Default value: ``undef`` ##### `flapping_threshold_high` Data type: `Optional[Integer[1]]` Flapping upper bound in percent for a host to be considered flapping. -Default value: `undef` +Default value: ``undef`` ##### `volatile` Data type: `Optional[Boolean]` The volatile setting enables always HARD state types if NOT-OK state changes occur. -Default value: `undef` +Default value: ``undef`` ##### `zone` Data type: `Optional[String]` The zone this object is a member of. -Default value: `undef` +Default value: ``undef`` ##### `command_endpoint` Data type: `Optional[String]` The endpoint where commands are executed on. -Default value: `undef` +Default value: ``undef`` ##### `notes` Data type: `Optional[String]` Notes for the host. -Default value: `undef` +Default value: ``undef`` ##### `notes_url` Data type: `Optional[String]` Url for notes for the host (for example, in notification commands). -Default value: `undef` +Default value: ``undef`` ##### `action_url` Data type: `Optional[String]` Url for actions for the host (for example, an external graphing tool). -Default value: `undef` +Default value: ``undef`` ##### `icon_image` -Data type: `Optional[Stdlib::Absolutepath]` +Data type: `Optional[String]` Icon image for the host. Used by external interfaces only. -Default value: `undef` +Default value: ``undef`` ##### `icon_image_alt` Data type: `Optional[String]` Icon image description for the host. Used by external interface only. -Default value: `undef` +Default value: ``undef`` ##### `template` Data type: `Boolean` Set to true creates a template instead of an object. -Default value: `false` +Default value: ``false`` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 50 +Default value: `50` -### icinga2::object::hostgroup +### `icinga2::object::hostgroup` Manage Icinga 2 HostGroup objects. #### Examples ##### ```puppet icinga2::object::hostgroup { 'monitoring-hosts': display_name => 'Linux Servers', groups => [ 'linux-servers' ], target => '/etc/icinga2/conf.d/groups2.conf', assign => [ 'host.name == NodeName' ], } ``` #### Parameters The following parameters are available in the `icinga2::object::hostgroup` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `display_name` Data type: `Optional[String]` A short description of the host group. -Default value: `undef` +Default value: ``undef`` ##### `groups` Data type: `Optional[Array]` An array of nested group names. -Default value: `undef` +Default value: ``undef`` ##### `assign` Data type: `Array` Assign host group members using the group rules. -Default value: [] +Default value: `[]` ##### `ignore` Data type: `Array` Ignore host group members using the group rules. -Default value: [] +Default value: `[]` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared at the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 55 +Default value: `55` ##### `hostgroup_name` Data type: `String` -Default value: $title +Default value: `$title` -### icinga2::object::notification +### `icinga2::object::notificationcommand` -Manage Icinga 2 notification objects. +Manage Icinga 2 notificationcommand objects. #### Parameters -The following parameters are available in the `icinga2::object::notification` defined type. +The following parameters are available in the `icinga2::object::notificationcommand` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` -##### `notification_name` +##### `notificationcommand_name` Data type: `String` -Set the Icinga 2 name of the notification object. +Set the Icinga 2 name of the notificationcommand object. -Default value: $title +Default value: `$title` -##### `host_name` +##### `command` -Data type: `Optional[String]` +Data type: `Optional[Variant[Array, String]]` -The name of the host this notification belongs to. +The command. This can either be an array of individual command arguments. +Alternatively a string can be specified in which case the shell interpreter +(usually /bin/sh) takes care of parsing the command. -Default value: `undef` +Default value: ``undef`` -##### `service_name` +##### `env` -Data type: `Optional[String]` +Data type: `Optional[Hash]` -The short name of the service this notification belongs to. If omitted, this -notification object is treated as host notification. +A dictionary of macros which should be exported as environment variables +prior to executing the command. -Default value: `undef` +Default value: ``undef`` ##### `vars` Data type: `Optional[Icinga2::CustomAttributes]` A dictionary containing custom attributes that are specific to this service, a string to do operations on this dictionary or an array for multiple use of custom attributes. -Default value: `undef` +Default value: ``undef`` -##### `users` - -Data type: `Optional[Variant[String, Array]]` - -A list of user names who should be notified. - -Default value: `undef` - -##### `user_groups` +##### `timeout` -Data type: `Optional[Variant[String, Array]]` +Data type: `Optional[Icinga2::Interval]` -A list of user group names who should be notified. +The command timeout in seconds. -Default value: `undef` +Default value: ``undef`` -##### `times` +##### `arguments` Data type: `Optional[Hash]` -A dictionary containing begin and end attributes for the notification. - -Default value: `undef` - -##### `command` - -Data type: `Optional[String]` - -The name of the notification command which should be executed when the -notification is triggered. - -Default value: `undef` - -##### `interval` - -Data type: `Optional[Variant[Icinga2::Interval,Pattern[/(host|service)\./]]]` - -The notification interval (in seconds). This interval is used for active -notifications. - -Default value: `undef` - -##### `period` - -Data type: `Optional[String]` - -The name of a time period which determines when this notification should be -triggered. - -Default value: `undef` - -##### `zone` - -Data type: `Optional[String]` - -The zone this object is a member of. - -Default value: `undef` - -##### `types` - -Data type: `Optional[Variant[Array, String]]` - -A list of type filters when this notification should be triggered. - -Default value: `undef` - -##### `states` - -Data type: `Optional[Variant[Array, String]]` - -A list of state filters when this notification should be triggered. +A dictionary of command arguments. -Default value: `undef` +Default value: ``undef`` ##### `template` Data type: `Boolean` Set to true creates a template instead of an object. -Default value: `false` - -##### `apply` - -Data type: `Variant[Boolean, String]` - -Dispose an apply instead an object if set to 'true'. Value is taken as statement, -i.e. 'vhost => config in host.vars.vhosts'. - -Default value: `false` - -##### `prefix` - -Data type: `Variant[Boolean, String]` - -Set notification_name as prefix in front of 'apply for'. Only effects if apply is a string. - -Default value: `false` - -##### `apply_target` - -Data type: `Enum['Host', 'Service']` - -An object type on which to target the apply rule. Valid values are `Host` and `Service`. - -Default value: 'Host' - -##### `import` - -Data type: `Array` - -Sorted List of templates to include. - -Default value: [] - -##### `target` - -Data type: `Stdlib::Absolutepath` - -Destination config file to store in this object. File will be declared the -first time. - -##### `order` - -Data type: `Variant[String, Integer]` - -String or integer to set the position in the target file, sorted alpha numeric. - -Default value: 85 - -##### `assign` - -Data type: `Array` - - - -Default value: [] - -##### `ignore` - -Data type: `Array` - - - -Default value: [] - -### icinga2::object::notificationcommand - -Manage Icinga 2 notificationcommand objects. - -#### Parameters - -The following parameters are available in the `icinga2::object::notificationcommand` defined type. - -##### `ensure` - -Data type: `Enum['absent', 'present']` - -Set to present enables the object, absent disables it. - -Default value: present - -##### `notificationcommand_name` - -Data type: `String` - -Set the Icinga 2 name of the notificationcommand object. - -Default value: $title - -##### `command` - -Data type: `Optional[Variant[Array, String]]` - -The command. This can either be an array of individual command arguments. -Alternatively a string can be specified in which case the shell interpreter -(usually /bin/sh) takes care of parsing the command. - -Default value: `undef` - -##### `env` - -Data type: `Optional[Hash]` - -A dictionary of macros which should be exported as environment variables -prior to executing the command. - -Default value: `undef` - -##### `vars` - -Data type: `Optional[Icinga2::CustomAttributes]` - -A dictionary containing custom attributes that are specific to this service, -a string to do operations on this dictionary or an array for multiple use -of custom attributes. - -Default value: `undef` - -##### `timeout` - -Data type: `Optional[Integer[1]]` - -The command timeout in seconds. - -Default value: `undef` - -##### `arguments` - -Data type: `Optional[Hash]` - -A dictionary of command arguments. - -Default value: `undef` - -##### `template` - -Data type: `Boolean` - -Set to true creates a template instead of an object. - -Default value: `false` - -##### `import` - -Data type: `Array` - -Sorted List of templates to include. - -Default value: [] - -##### `target` - -Data type: `Stdlib::Absolutepath` - -Destination config file to store in this object. File will be declared the -first time. - -##### `order` - -Data type: `Variant[String, Integer]` - -String or integer to set the position in the target file, sorted alpha numeric. - -Default value: 25 - -### icinga2::object::scheduleddowntime - -Manage Icinga 2 scheduleddowntime objects. - -#### Parameters - -The following parameters are available in the `icinga2::object::scheduleddowntime` defined type. - -##### `ensure` - -Data type: `Enum['absent', 'present']` - -Set to present enables the object, absent disables it. - -Default value: present - -##### `scheduleddowntime_name` - -Data type: `String` - -Set the Icinga 2 name of the scheduleddowntime object. - -Default value: $title - -##### `host_name` - -Data type: `Optional[String]` - -The name of the host this comment belongs to. - -Default value: `undef` - -##### `service_name` - -Data type: `Optional[String]` - -The short name of the service this comment belongs to. If omitted, this comment object is treated as host comment. - -Default value: `undef` - -##### `author` - -Data type: `Optional[String]` - -The author's name. - -Default value: `undef` - -##### `comment` - -Data type: `Optional[String]` - -The comment text. - -Default value: `undef` - -##### `fixed` - -Data type: `Optional[Boolean]` - -Whether this is a fixed downtime. - -Default value: `undef` - -##### `duration` - -Data type: `Optional[Icinga2::Interval]` - -The duration as number. - -Default value: `undef` - -##### `ranges` - -Data type: `Optional[Hash]` - -A dictionary containing information which days and durations apply to this timeperiod. - -Default value: `undef` - -##### `apply` - -Data type: `Variant[Boolean, String]` - -Dispose an apply instead an object if set to 'true'. Value is taken as statement, -i.e. 'vhost => config in host.vars.vhosts'. - -Default value: `false` - -##### `prefix` - -Data type: `Variant[Boolean, String]` - -Set scheduleddowntime_name as prefix in front of 'apply for'. Only effects if apply is a string. - -Default value: `false` - -##### `apply_target` - -Data type: `Enum['Host', 'Service']` - -An object type on which to target the apply rule. Valid values are `Host` and `Service`. - -Default value: 'Host' - -##### `assign` - -Data type: `Array` - -Assign user group members using the group assign rules. - -Default value: [] - -##### `ignore` - -Data type: `Array` - -Exclude users using the group ignore rules. - -Default value: [] - -##### `target` - -Data type: `Stdlib::Absolutepath` - -Destination config file to store in this object. File will be declared the -first time. - -##### `order` - -Data type: `Variant[String, Integer]` - -String or integer to set the position in the target file, sorted alpha numeric. - -Default value: 90 - -### icinga2::object::service - -Manage Icinga 2 service objects. - -#### Examples - -##### A service `ping` is applied to all hosts with a valid ipv4 address. - -```puppet -::icinga2::object::service { 'ping4': - import => ['generic-service'], - apply => true, - check_command => 'ping', - assign => ['host.address'], - target => '/etc/icinga2/zones.d/global-templates/services.conf', -} -``` - -##### A `apply Service for (disk_name =>config in host.vars.disks)` rule is applied to all Linux hosts with an Icinga Agent. Note in this example it's required that the endpoint (see `command_endpoint`) and the host object has the same name! - -```puppet -::icinga2::object::service { 'linux_disks': - import => ['generic-service'], - apply => 'disk_name => config in host.vars.disks', - check_command => 'disk', - command_endpoint => 'host.name', - vars => '+ config', - assign => ['host.vars.os == Linux'], - ignore => ['host.vars.noagent'], - target => '/etc/icinga2/zones.d/global-templates/services.conf', -} -``` - -#### Parameters - -The following parameters are available in the `icinga2::object::service` defined type. - -##### `ensure` - -Data type: `Enum['absent', 'present']` - -Set to present enables the object, absent disables it. - -Default value: present - -##### `service_name` - -Data type: `String` - -Set the Icinga 2 name of the service object. - -Default value: $title - -##### `display_name` - -Data type: `Optional[String]` - -A short description of the service. - -Default value: `undef` - -##### `host_name` - -Data type: `Optional[String]` - -The host this service belongs to. There must be a Host object with -that name. - -Default value: `undef` - -##### `groups` - -Data type: `Optional[Array]` - -The service groups this service belongs to. - -Default value: `undef` - -##### `vars` - -Data type: `Optional[Icinga2::CustomAttributes]` - -A dictionary containing custom attributes that are specific to this service, -a string to do operations on this dictionary or an array for multiple use -of custom attributes. - -Default value: `undef` - -##### `check_command` - -Data type: `Optional[String]` - -The name of the check command. - -Default value: `undef` - -##### `max_check_attempts` - -Data type: `Optional[Integer[1]]` - -The number of times a service is re-checked before changing into a hard -state. - -Default value: `undef` - -##### `check_period` - -Data type: `Optional[String]` - -The name of a time period which determines when this service should be -checked. - -Default value: `undef` - -##### `check_timeout` - -Data type: `Optional[Icinga2::Interval]` - -Check command timeout in seconds. Overrides the CheckCommand's timeout -attribute. - -Default value: `undef` - -##### `check_interval` - -Data type: `Optional[Icinga2::Interval]` - -The check interval (in seconds). This interval is used for checks when the -service is in a HARD state. - -Default value: `undef` - -##### `retry_interval` - -Data type: `Optional[Icinga2::Interval]` - -The retry interval (in seconds). This interval is used for checks when the -service is in a SOFT state. - -Default value: `undef` - -##### `enable_notifications` - -Data type: `Optional[Boolean]` - -Whether notifications are enabled. - -Default value: `undef` - -##### `enable_active_checks` - -Data type: `Optional[Boolean]` - -Whether active checks are enabled. - -Default value: `undef` - -##### `enable_passive_checks` - -Data type: `Optional[Boolean]` - -Whether passive checks are enabled. - -Default value: `undef` - -##### `enable_event_handler` - -Data type: `Optional[Boolean]` - -Enables event handlers for this host. - -Default value: `undef` - -##### `enable_flapping` - -Data type: `Optional[Boolean]` - -Whether flap detection is enabled. - -Default value: `undef` - -##### `enable_perfdata` - -Data type: `Optional[Boolean]` - -Whether performance data processing is enabled. - -Default value: `undef` - -##### `event_command` - -Data type: `Optional[String]` - -The name of an event command that should be executed every time the -service's state changes or the service is in a SOFT state. - -Default value: `undef` - -##### `flapping_threshold_low` - -Data type: `Optional[Integer[1]]` - -Flapping lower bound in percent for a host to be considered not flapping. - -Default value: `undef` - -##### `flapping_threshold_high` - -Data type: `Optional[Integer[1]]` - -Flapping upper bound in percent for a host to be considered flapping. - -Default value: `undef` - -##### `volatile` - -Data type: `Optional[Boolean]` - -The volatile setting enables always HARD state types if NOT-OK state changes -occur. - -Default value: `undef` - -##### `zone` - -Data type: `Optional[String]` - -The zone this object is a member of. - -Default value: `undef` - -##### `command_endpoint` - -Data type: `Optional[String]` - -The endpoint where commands are executed on. - -Default value: `undef` - -##### `notes` - -Data type: `Optional[String]` - -Notes for the service. - -Default value: `undef` - -##### `notes_url` - -Data type: `Optional[String]` - -Url for notes for the service (for example, in notification commands). - -Default value: `undef` - -##### `action_url` - -Data type: `Optional[String]` - -Url for actions for the service (for example, an external graphing tool). - -Default value: `undef` - -##### `icon_image` - -Data type: `Optional[Stdlib::Absolutepath]` - -Icon image for the service. Used by external interfaces only. - -Default value: `undef` - -##### `icon_image_alt` - -Data type: `Optional[String]` - -Icon image description for the service. Used by external interface only. - -Default value: `undef` - -##### `template` - -Data type: `Boolean` - -Set to true creates a template instead of an object. - -Default value: `false` - -##### `apply` - -Data type: `Variant[Boolean, String]` - -Dispose an apply instead an object if set to 'true'. Value is taken as statement, -i.e. 'vhost => config in host.vars.vhosts'. - -Default value: `false` - -##### `prefix` - -Data type: `Variant[Boolean, String]` - -Set service_name as prefix in front of 'apply for'. Only effects if apply is a string. - -Default value: `false` - -##### `assign` - -Data type: `Array` - -Assign user group members using the group assign rules. - -Default value: [] - -##### `ignore` - -Data type: `Array` - -Exclude users using the group ignore rules. - -Default value: [] +Default value: ``false`` ##### `import` Data type: `Array` Sorted List of templates to include. -Default value: [] +Default value: `[]` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 60 +Default value: `25` -### icinga2::object::servicegroup +### `icinga2::object::servicegroup` Manage Icinga 2 servicegroup objects. #### Parameters The following parameters are available in the `icinga2::object::servicegroup` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `servicegroup_name` Data type: `String` Set the Icinga 2 name of the servicegroup object. -Default value: $title +Default value: `$title` ##### `display_name` Data type: `Optional[String]` A short description of the service group. -Default value: `undef` +Default value: ``undef`` ##### `groups` Data type: `Optional[Array]` An array of nested group names. -Default value: `undef` +Default value: ``undef`` ##### `assign` Data type: `Array` Assign user group members using the group assign rules. -Default value: [] +Default value: `[]` ##### `ignore` Data type: `Array` Exclude users using the group ignore rules. -Default value: [] +Default value: `[]` ##### `template` Data type: `Boolean` Set to true creates a template instead of an object. -Default value: `false` +Default value: ``false`` ##### `import` Data type: `Array` Sorted List of templates to include. -Default value: [] +Default value: `[]` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 65 +Default value: `65` -### icinga2::object::timeperiod +### `icinga2::object::timeperiod` Manage Icinga 2 timeperiod objects. #### Parameters The following parameters are available in the `icinga2::object::timeperiod` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `timeperiod_name` Data type: `String` Set the Icinga 2 name of the timeperiod object. -Default value: $title +Default value: `$title` ##### `display_name` Data type: `Optional[String]` A short description of the time period. -Default value: `undef` +Default value: ``undef`` ##### `import` Data type: `Array` Sorted List of templates to include. -Default value: ['legacy-timeperiod'] +Default value: `['legacy-timeperiod']` ##### `ranges` Data type: `Optional[Hash]` A dictionary containing information which days and durations apply to this timeperiod. -Default value: `undef` +Default value: ``undef`` ##### `prefer_includes` Data type: `Optional[Boolean]` Boolean whether to prefer timeperiods includes or excludes. -Default value: `undef` +Default value: ``undef`` ##### `excludes` Data type: `Optional[Array]` An array of timeperiods, which should exclude from your timerange. -Default value: `undef` +Default value: ``undef`` ##### `includes` Data type: `Optional[Array]` An array of timeperiods, which should include into your timerange -Default value: `undef` +Default value: ``undef`` ##### `template` Data type: `Boolean` Set to true creates a template instead of an object. -Default value: `false` +Default value: ``false`` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store this object in. File will be declared on the first run. ##### `order` Data type: `Variant[String, Integer]` String or integer to control the position in the target file, sorted alpha numeric. -Default value: 35 +Default value: `35` -### icinga2::object::user +### `icinga2::object::user` Manage Icinga 2 user objects. #### Parameters The following parameters are available in the `icinga2::object::user` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `user_name` Data type: `String` Set the Icinga 2 name of the user object. -Default value: $title +Default value: `$title` ##### `display_name` Data type: `Optional[String]` A short description of the user. -Default value: `undef` +Default value: ``undef`` ##### `email` Data type: `Optional[String]` An email string for this user. Useful for notification commands. -Default value: `undef` +Default value: ``undef`` ##### `pager` Data type: `Optional[String]` A pager string for this user. Useful for notification commands. -Default value: `undef` +Default value: ``undef`` ##### `vars` Data type: `Optional[Icinga2::CustomAttributes]` A dictionary containing custom attributes that are specific to this service, a string to do operations on this dictionary or an array for multiple use of custom attributes. -Default value: `undef` +Default value: ``undef`` ##### `groups` Data type: `Optional[Array]` An array of group names. -Default value: `undef` +Default value: ``undef`` ##### `enable_notifications` Data type: `Optional[Boolean]` Whether notifications are enabled for this user. -Default value: `undef` +Default value: ``undef`` ##### `period` Data type: `Optional[String]` The name of a time period which determines when a notification for this user should be triggered. -Default value: `undef` +Default value: ``undef`` ##### `types` Data type: `Optional[Array]` A set of type filters when this notification should be triggered. everything is matched. -Default value: `undef` +Default value: ``undef`` ##### `states` Data type: `Optional[Array]` A set of state filters when this notification should be triggered. -Default value: `undef` +Default value: ``undef`` ##### `template` Data type: `Boolean` Set to true creates a template instead of an object. -Default value: `false` +Default value: ``false`` ##### `import` Data type: `Array` Sorted List of templates to include. -Default value: [] +Default value: `[]` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 75 +Default value: `75` -### icinga2::object::usergroup +### `icinga2::object::usergroup` Manage Icinga 2 usergroup objects. #### Parameters The following parameters are available in the `icinga2::object::usergroup` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `usergroup_name` Data type: `String` Set the Icinga 2 name of the usergroup object. -Default value: $title +Default value: `$title` ##### `display_name` Data type: `Optional[String]` A short description of the service group. -Default value: `undef` +Default value: ``undef`` ##### `groups` Data type: `Array` An array of nested group names. -Default value: [] +Default value: `[]` ##### `assign` Data type: `Array` Assign user group members using the group assign rules. -Default value: [] +Default value: `[]` ##### `ignore` Data type: `Array` Exclude users using the group ignore rules. -Default value: [] +Default value: `[]` ##### `template` Data type: `Boolean` Set to true creates a template instead of an object. -Default value: `false` +Default value: ``false`` ##### `import` Data type: `Array` Sorted List of templates to include. -Default value: [] +Default value: `[]` ##### `target` Data type: `Stdlib::Absolutepath` Destination config file to store in this object. File will be declared the first time. ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. -Default value: 80 +Default value: `80` -### icinga2::object::zone +### `icinga2::object::zone` Manage Icinga 2 zone objects. #### Parameters The following parameters are available in the `icinga2::object::zone` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Set to present enables the object, absent disables it. -Default value: present +Default value: `present` ##### `zone_name` Data type: `String` Set the Icinga 2 name of the zone object. -Default value: $title +Default value: `$title` ##### `endpoints` Data type: `Optional[Array]` List of endpoints belong to this zone. -Default value: [] +Default value: `[]` ##### `parent` Data type: `Optional[String]` Parent zone to this zone. -Default value: `undef` +Default value: ``undef`` ##### `global` Data type: `Optional[Boolean]` If set to true, a global zone is defined and the parameter endpoints and parent are ignored. -Default value: `false` +Default value: ``false`` ##### `target` Data type: `Optional[Stdlib::Absolutepath]` Destination config file to store in this object. File will be declared at the first time. -Default value: `undef` +Default value: ``undef`` ##### `order` Data type: `Variant[String, Integer]` String or integer to control the position in the target file, sorted alpha numeric. -Default value: 45 +Default value: `45` ## Functions -### icinga2::icinga2_attributes +### `icinga2::icinga2_attributes` Type: Ruby 4.x API ---- original file header ---- #### `icinga2::icinga2_attributes(Any *$args)` ---- original file header ---- Returns: `Data type` Describe what the function returns here ##### `*args` Data type: `Any` The original array of arguments. Port this to individually managed params to get the full benefit of the modern function API. -### icinga2::icinga2_ticket_id +### `icinga2::icinga2_ticket_id` Type: Ruby 4.x API ---- original file header ---- #### `icinga2::icinga2_ticket_id(Any *$args)` ---- original file header ---- Returns: `Data type` Describe what the function returns here ##### `*args` Data type: `Any` The original array of arguments. Port this to individually managed params to get the full benefit of the modern function API. -### icinga2_attributes +### `icinga2_attributes` Type: Ruby 3.x API Wrapper for config parser #### `icinga2_attributes()` The icinga2_attributes function. Returns: `Any` Parsed config as string -### icinga2_ticket_id +### `icinga2_ticket_id` Type: Ruby 3.x API Generates a auth ticket to get a certificate #### `icinga2_ticket_id()` The icinga2_ticket_id function. Returns: `Any` The ticket to get a certificate ## Data types -### Icinga2::CustomAttributes +### `Icinga2::CustomAttributes` A type for the structure of custom attributes Alias of `Optional[Variant[String, Array[Variant[String, Hash]], Hash]]` -### Icinga2::Fingerprint +### `Icinga2::Fingerprint` Type for certificate fingerprints +SHA1: 160 bit (20 byte) digest +SHA256: 256 bit (32 byte) digest -Alias of `Pattern[/^([0-9a-fA-F]{2}\:)({19}[0-9a-fA-F]{2}\:){12})?[0-9,a-f,A-F]{2}$/]` +Alias of `Pattern[/^([0-9a-fA-F]{2}\:){19}(([0-9a-fA-F]{2}\:){12})?[0-9a-fA-F]{2}$/]` -### Icinga2::Interval +### `Icinga2::Interval` A strict type for intervals Alias of `Pattern[/^\d+\.?\d*[d|h|m|s]?$/]` -### Icinga2::LogFacility +### `Icinga2::LogFacility` A strict type of syslog facilities Alias of `Variant[Enum['LOG_AUTH', 'LOG_AUTHPRIV', 'LOG_CRON', 'LOG_DAEMON', 'LOG_FTP', 'LOG_KERN', 'LOG_LPR', 'LOG_MAIL', 'LOG_NEWS', 'LOG_SYSLOG', 'LOG_USER', 'LOG_UUCP'], Pattern[/^LOG_LOCAL[0-7]$/]]` -### Icinga2::LogSeverity +### `Icinga2::LogSeverity` A strict type for log levels Alias of `Enum['debug', 'information', 'notice', 'warning', 'critical']` diff --git a/RELEASE.md b/RELEASE.md index d104bfd..64f4888 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,59 +1,82 @@ # Release Workflow Before submitting a new release, make sure all relevant pull requests and local branches have been merged to the `master` branch. All tests must pass before a release is tagged. -## 1. AUTHORS +## 1. Puppet Development Kit +If not installed, please install the PDK and do a 'bundle install'. +``` bash +pdk bundle install +``` +Or if already installed do an update. +``` bash +pdk bundle update +``` + +## 2. AUTHORS Update the [AUTHORS] and [.mailmap] file ``` bash git checkout master git log --use-mailmap | grep ^Author: | cut -f2- -d' ' | sort | uniq > AUTHORS git commit -am "Update AUTHORS" ``` -## 2. Changelog +## 3. Reference +If it is not installed [puppet-strings]: +``` bash +gem install puppet-strings --no-ri --no-rdoc +``` +Generate [REFERENCE.md] via [Puppet Strings] +``` bash +puppet strings generate --format markdown --out ./REFERENCE.md +``` + +## 4. Version +Version numbers are incremented regarding the [SemVer 1.0.0] specification. +Update the version number in `metadata.json`. + +## 5. Changelog Install [github-changelog-generator] ```bash gem install github_changelog_generator -v 1.13.2 ``` Generate [CHANGELOG.md] ```bash github_changelog_generator -t --future-release=v1.0.0 -u icinga -p puppet-icinga2 ``` -## 3. Version -Version numbers are incremented regarding the [SemVer 1.0.0] specification. -Update the version number in `metadata.json`. - -## 4. Git Tag +## 6. Git Tag Commit all changes to the `master` branch ``` bash git commit -v -a -m "Release version " git push ``` Tag the release ``` bash git tag -m "Version " v ``` Push tags ``` bash git push --tags ``` - -## Puppet Forge -The module is uploaded automatically to Puppet Forge by TravisCI when a new tag is set. +## 7. Build and Upload +``` bash +pdk build +``` +Upload the tarball to Puppet Forge. [github-changelog-generator]: https://github.com/skywinder/github-changelog-generator +[Puppet Strings]: https://puppet.com/docs/puppet/5.5/puppet_strings.html [SemVer 1.0.0]: http://semver.org/spec/v1.0.0.html [CHANGELOG.md]: CHANGELOG.md [AUTHORS]: AUTHORS [.mailmap]: .mailmap [forge.puppet.com]: https://forge.puppet.com/ diff --git a/manifests/feature/idomysql.pp b/manifests/feature/idomysql.pp index 02e8a5c..ba7b22c 100644 --- a/manifests/feature/idomysql.pp +++ b/manifests/feature/idomysql.pp @@ -1,331 +1,331 @@ # @summary # Installs and configures the Icinga 2 feature ido-mysql. # # @example The ido-mysql featue requires an existing database and a user with permissions. This example uses the [puppetlabs/mysql](https://forge.puppet.com/puppetlabs/mysql) module. # include mysql::server # # mysql::db { 'icinga2': # user => 'icinga2', # password => 'supersecret', # host => 'localhost', # grant => ['SELECT', 'INSERT', 'UPDATE', 'DELETE', 'DROP', 'CREATE VIEW', 'CREATE', 'INDEX', 'EXECUTE', 'ALTER'], # } # # class{ 'icinga2::feature::idomysql': # user => "icinga2", # password => "supersecret", # database => "icinga2", # import_schema => true, # require => Mysql::Db['icinga2'] # } # # @param [Enum['absent', 'present']] ensure # Set to present enables the feature ido-mysql, absent disables it. # # @param [Stdlib::Host] host # MySQL database host address. # # @param [Optional[Stdlib::Port::Unprivileged]] port # MySQL database port. # # @param [Optional[Stdlib::Absolutepath]] socket_path # MySQL socket path. # # @param [String] user # MySQL database user with read/write permission to the icinga database. # # @param [String] password # MySQL database user's password. The password parameter isn't parsed anymore. # # @param [String] database # MySQL database name. # # @param [Boolean] enable_ssl # Either enable or disable SSL/TLS. Other SSL parameters are only affected if this is set to 'true'. # # @param [Optional[Stdlib::Absolutepath]] ssl_key_path # Location of the private key. Only valid if ssl is enabled. # # @param [Optional[Stdlib::Absolutepath]] ssl_cert_path # Location of the certificate. Only valid if ssl is enabled. # # @param [Optional[Stdlib::Absolutepath]] ssl_cacert_path # Location of the CA certificate. Only valid if ssl is enabled. # # @param [Optional[Stdlib::Base64]] ssl_key # The private key in a base64 encoded string to store in spicified ssl_key_path file. # Only valid if ssl is enabled. # -# @param [Optional[tdlib::Base64]] ssl_cert +# @param [Optional[Stdlib::Base64]] ssl_cert # The certificate in a base64 encoded string to store in spicified ssl_cert_path file. # Only valid if ssl is enabled. # -# @param [Optional[tdlib::Base64]] ssl_cacert +# @param [Optional[Stdlib::Base64]] ssl_cacert # The CA root certificate in a base64 encoded string to store in spicified ssl_cacert_path file. # Only valid if ssl is enabled. # # @param [Optional[Stdlib::Absolutepath]] ssl_capath # MySQL SSL trusted SSL CA certificates in PEM format directory path. Only valid if ssl is enabled. # # @param [Optional[String]] ssl_cipher # MySQL SSL list of allowed ciphers. Only valid if ssl is enabled. # # @param [Optional[String]] table_prefix # MySQL database table prefix. # # @param [Optional[String]] instance_name # Unique identifier for the local Icinga 2 instance. # # @param [Optional[String]] instance_description # Description for the Icinga 2 instance. # # @param [Optional[Boolean]] enable_ha # Enable the high availability functionality. Only valid in a cluster setup. # # @param [Optional[Icinga2::Interval]] failover_timeout # Set the failover timeout in a HA cluster. Must not be lower than 60s. # # @param [Optional[Hash[String,Icinga2::Interval]]] cleanup # Hash with items for historical table cleanup. # # @param [Optional[Array]] categories # Array of information types that should be written to the database. # # @param [Boolean] import_schema # Whether to import the MySQL schema or not. # class icinga2::feature::idomysql( String $password, Enum['absent', 'present'] $ensure = present, Stdlib::Host $host = 'localhost', Optional[Stdlib::Port::Unprivileged] $port = undef, Optional[Stdlib::Absolutepath] $socket_path = undef, String $user = 'icinga', String $database = 'icinga', Boolean $enable_ssl = false, Optional[Stdlib::Absolutepath] $ssl_key_path = undef, Optional[Stdlib::Absolutepath] $ssl_cert_path = undef, Optional[Stdlib::Absolutepath] $ssl_cacert_path = undef, Optional[Stdlib::Base64] $ssl_key = undef, Optional[Stdlib::Base64] $ssl_cert = undef, Optional[Stdlib::Base64] $ssl_cacert = undef, Optional[Stdlib::Absolutepath] $ssl_capath = undef, Optional[String] $ssl_cipher = undef, Optional[String] $table_prefix = undef, Optional[String] $instance_name = undef, Optional[String] $instance_description = undef, Optional[Boolean] $enable_ha = undef, Optional[Icinga2::Interval] $failover_timeout = undef, Optional[Hash[String,Icinga2::Interval]] $cleanup = undef, Optional[Array] $categories = undef, Boolean $import_schema = false, ) { if ! defined(Class['::icinga2']) { fail('You must include the icinga2 base class before using any icinga2 feature class!') } $owner = $::icinga2::globals::user $group = $::icinga2::globals::group $conf_dir = $::icinga2::globals::conf_dir $ssl_dir = $::icinga2::globals::cert_dir $ido_mysql_package_name = $::icinga2::globals::ido_mysql_package_name $ido_mysql_schema = $::icinga2::globals::ido_mysql_schema $manage_package = $::icinga2::manage_package $manage_packages = $::icinga2::manage_packages $_ssl_key_mode = $::osfamily ? { 'windows' => undef, default => '0600', } $_notify = $ensure ? { 'present' => Class['::icinga2::service'], default => undef, } # to build mysql exec command to import schema if $import_schema { $_mysql_options = join(any2array(delete_undef_values({ '-h' => $host ? { /localhost/ => undef, default => $host, }, '-P' => $port, '-u' => $user, })), ' ') } File { owner => $owner, group => $group, } if $enable_ssl { # Set defaults for certificate stuff if $ssl_key { if $ssl_key_path { $_ssl_key_path = $ssl_key_path } else { $_ssl_key_path = "${ssl_dir}/IdoMysqlConnection_ido-mysql.key" } $_ssl_key = $::osfamily ? { 'windows' => regsubst($ssl_key, '\n', "\r\n", 'EMG'), default => $ssl_key, } file { $_ssl_key_path: ensure => file, mode => $_ssl_key_mode, content => $ssl_key, tag => 'icinga2::config::file', } } else { $_ssl_key_path = $ssl_key_path } if $ssl_cert { if $ssl_cert_path { $_ssl_cert_path = $ssl_cert_path } else { $_ssl_cert_path = "${ssl_dir}/IdoMysqlConnection_ido-mysql.crt" } $_ssl_cert = $::osfamily ? { 'windows' => regsubst($ssl_cert, '\n', "\r\n", 'EMG'), default => $ssl_cert, } file { $_ssl_cert_path: ensure => file, content => $ssl_cert, tag => 'icinga2::config::file', } } else { $_ssl_cert_path = $ssl_cert_path } if $ssl_cacert { if $ssl_cacert_path { $_ssl_cacert_path = $ssl_cacert_path } else { $_ssl_cacert_path = "${ssl_dir}/IdoMysqlConnection_ido-mysql_ca.crt" } $_ssl_cacert = $::osfamily ? { 'windows' => regsubst($ssl_cacert, '\n', "\r\n", 'EMG'), default => $ssl_cacert, } file { $_ssl_cacert_path: ensure => file, content => $ssl_cacert, tag => 'icinga2::config::file', } } else { $_ssl_cacert_path = $ssl_cacert_path } if $import_schema { $_ssl_options = join(any2array(delete_undef_values({ '--ssl-ca' => $_ssl_cacert_path, '--ssl-cert' => $_ssl_cert_path, '--ssl-key' => $_ssl_key_path, '--ssl-capath' => $ssl_capath, '--ssl-cipher' => $ssl_cipher, })), ' ') # set cli options for mysql connection via tls $_mysql_command = "mysql ${_mysql_options} -p'${password}' ${_ssl_options} ${database}" } $attrs_ssl = { enable_ssl => $enable_ssl, ssl_ca => $_ssl_cacert_path, ssl_cert => $_ssl_cert_path, ssl_key => $_ssl_key_path, ssl_capath => $ssl_capath, ssl_cipher => $ssl_cipher, } } # enable_ssl else { # set cli options for mysql connection if $import_schema { $_mysql_command = "mysql ${_mysql_options} -p'${password}' ${database}" } $attrs_ssl = { enable_ssl => $enable_ssl } } $attrs = { host => $host, port => $port, socket_path => $socket_path, user => $user, password => "-:\"${password}\"", # The password parameter isn't parsed anymore. database => $database, table_prefix => $table_prefix, instance_name => $instance_name, instance_description => $instance_description, enable_ha => $enable_ha, failover_timeout => $failover_timeout, cleanup => $cleanup, categories => $categories, } # install additional package if $ido_mysql_package_name and ($manage_package or $manage_packages) { if $::osfamily == 'debian' { ensure_resources('file', { '/etc/dbconfig-common' => { ensure => directory, owner => 'root', group => 'root' } }) file { "/etc/dbconfig-common/${ido_mysql_package_name}.conf": ensure => file, content => "dbc_install='false'\ndbc_upgrade='false'\ndbc_remove='false'\n", owner => 'root', group => 'root', mode => '0600', before => Package[$ido_mysql_package_name], } } # Debian package { $ido_mysql_package_name: ensure => installed, before => Icinga2::Feature['ido-mysql'], } } # import db schema if $import_schema { if $ido_mysql_package_name and ($manage_package or $manage_packages) { Package[$ido_mysql_package_name] -> Exec['idomysql-import-schema'] } exec { 'idomysql-import-schema': user => 'root', path => $::path, command => "${_mysql_command} < \"${ido_mysql_schema}\"", unless => "${_mysql_command} -Ns -e 'select version from icinga_dbversion'", } } # create object icinga2::object { 'icinga2::object::IdoMysqlConnection::ido-mysql': object_name => 'ido-mysql', object_type => 'IdoMysqlConnection', attrs => delete_undef_values(merge($attrs, $attrs_ssl)), attrs_list => concat(keys($attrs), keys($attrs_ssl)), target => "${conf_dir}/features-available/ido-mysql.conf", order => 10, notify => $_notify, } # import library concat::fragment { 'icinga2::feature::ido-mysql': target => "${conf_dir}/features-available/ido-mysql.conf", content => "library \"db_ido_mysql\"\n\n", order => '05', } icinga2::feature { 'ido-mysql': ensure => $ensure, } } diff --git a/manifests/feature/influxdb.pp b/manifests/feature/influxdb.pp index e722e36..ca52824 100644 --- a/manifests/feature/influxdb.pp +++ b/manifests/feature/influxdb.pp @@ -1,249 +1,249 @@ # @summary # Configures the Icinga 2 feature influxdb. # # @example # class { 'icinga2::feature::influxdb': # host => "10.10.0.15", # username => "icinga2", # password => "supersecret", # database => "icinga2" # } # # @param [Enum['absent', 'present']] ensure # Set to present enables the feature influxdb, absent disables it. # # @param [Optional[Stdlib::Host]] host # InfluxDB host address. # # @param [Optional[Stdlib::Port]] port # InfluxDB HTTP port. # # @param [Optional[String]] database # InfluxDB database name. # # @param [Optional[String]] username # InfluxDB user name. # # @param [Optional[String]] password # InfluxDB user password. The password parameter isn't parsed anymore. # # @param [Optional[Boolean]] enable_ssl # Either enable or disable SSL. Other SSL parameters are only affected if this is set to 'true'. # # @param [Optional[Stdlib::Absolutepath]] ssl_key_path # Location of the private key. # # @param [Optional[Stdlib::Absolutepath]] ssl_cert_path # Location of the certificate. # # @param [Optional[Stdlib::Absolutepath]] ssl_cacert_path # Location of the CA certificate. # # @param [Optional[Stdlib::Base64]] ssl_key # The private key in a base64 encoded string to store in ssl_key_path file. # # @param [Optional[Stdlib::Base64]] ssl_cert # The certificate in a base64 encoded string to store in ssl_cert_path file. # -# @param [Optional[Sdlib::Base64]] ssl_cacert +# @param [Optional[Stdlib::Base64]] ssl_cacert # The CA root certificate in a base64 encoded to store in ssl_cacert_path file. # # @param [String] host_measurement # The value of this is used for the measurement setting in host_template. # # @param [Hash] host_tags # Tags defined in this hash will be set in the host_template. # # @param [String] service_measurement # The value of this is used for the measurement setting in host_template. # # @param [Hash] service_tags # Tags defined in this hash will be set in the service_template. # # @param [Optional[Boolean]] enable_send_thresholds # Whether to send warn, crit, min & max tagged data. # # @param [Optional[Boolean]] enable_send_metadata # Whether to send check metadata e.g. states, execution time, latency etc. # # @param [Optional[Icinga2::Interval]] flush_interval # How long to buffer data points before transfering to InfluxDB. # # @param [Optional[Integer[1]]] flush_threshold # How many data points to buffer before forcing a transfer to InfluxDB. # # @param [Optional[Boolean]] enable_ha # Enable the high availability functionality. Only valid in a cluster setup. # class icinga2::feature::influxdb( Enum['absent', 'present'] $ensure = present, Optional[Stdlib::Host] $host = undef, Optional[Stdlib::Port] $port = undef, Optional[String] $database = undef, Optional[String] $username = undef, Optional[String] $password = undef, Optional[Boolean] $enable_ssl = undef, Optional[Stdlib::Absolutepath] $ssl_key_path = undef, Optional[Stdlib::Absolutepath] $ssl_cert_path = undef, Optional[Stdlib::Absolutepath] $ssl_cacert_path = undef, Optional[Stdlib::Base64] $ssl_key = undef, Optional[Stdlib::Base64] $ssl_cert = undef, Optional[Stdlib::Base64] $ssl_cacert = undef, String $host_measurement = '$host.check_command$', Hash $host_tags = { hostname => '$host.name$' }, String $service_measurement = '$service.check_command$', Hash $service_tags = { hostname => '$host.name$', service => '$service.name$' }, Optional[Boolean] $enable_send_thresholds = undef, Optional[Boolean] $enable_send_metadata = undef, Optional[Icinga2::Interval] $flush_interval = undef, Optional[Integer[1]] $flush_threshold = undef, Optional[Boolean] $enable_ha = undef, ) { if ! defined(Class['::icinga2']) { fail('You must include the icinga2 base class before using any icinga2 feature class!') } $user = $::icinga2::globals::user $group = $::icinga2::globals::group $conf_dir = $::icinga2::globals::conf_dir $ssl_dir = $::icinga2::globals::cert_dir $_ssl_key_mode = $::kernel ? { 'windows' => undef, default => '0600', } $_notify = $ensure ? { 'present' => Class['::icinga2::service'], default => undef, } File { owner => $user, group => $group, } $host_template = { measurement => $host_measurement, tags => $host_tags } $service_template = { measurement => $service_measurement, tags => $service_tags} if $enable_ssl { # Set defaults for certificate stuff if $ssl_key { if $ssl_key_path { $_ssl_key_path = $ssl_key_path } else { $_ssl_key_path = "${ssl_dir}/InfluxdbWriter_influxdb.key" } $_ssl_key = $::osfamily ? { 'windows' => regsubst($ssl_key, '\n', "\r\n", 'EMG'), default => $ssl_key, } file { $_ssl_key_path: ensure => file, mode => $_ssl_key_mode, content => $_ssl_key, tag => 'icinga2::config::file', } } else { $_ssl_key_path = $ssl_key_path } if $ssl_cert { if $ssl_cert_path { $_ssl_cert_path = $ssl_cert_path } else { $_ssl_cert_path = "${ssl_dir}/InfluxdbWriter_influxdb.crt" } $_ssl_cert = $::osfamily ? { 'windows' => regsubst($ssl_cert, '\n', "\r\n", 'EMG'), default => $ssl_cert, } file { $_ssl_cert_path: ensure => file, content => $_ssl_cert, tag => 'icinga2::config::file', } } else { $_ssl_cert_path = $ssl_cert_path } if $ssl_cacert { if $ssl_cacert_path { $_ssl_cacert_path = $ssl_cacert_path } else { $_ssl_cacert_path = "${ssl_dir}/InfluxdbWriter_influxdb_ca.crt" } $_ssl_cacert = $::osfamily ? { 'windows' => regsubst($ssl_cacert, '\n', "\r\n", 'EMG'), default => $ssl_cacert, } file { $_ssl_cacert_path: ensure => file, content => $_ssl_cacert, tag => 'icinga2::config::file', } } else { $_ssl_cacert_path = $ssl_cacert_path } $attrs_ssl = { ssl_enable => $enable_ssl, ssl_ca_cert => $_ssl_cacert_path, ssl_cert => $_ssl_cert_path, ssl_key => $_ssl_key_path, } } # enable_ssl else { $attrs_ssl = { ssl_enable => $enable_ssl } } # The password parameter isn't parsed anymore. if $password { $_password = "-:\"${password}\"" } else { $_password = undef } $attrs = { host => $host, port => $port, database => $database, username => $username, password => $_password, host_template => $host_template, service_template => $service_template, enable_send_thresholds => $enable_send_thresholds, enable_send_metadata => $enable_send_metadata, flush_interval => $flush_interval, flush_threshold => $flush_threshold, enable_ha => $enable_ha, } # create object icinga2::object { 'icinga2::object::InfluxdbWriter::influxdb': object_name => 'influxdb', object_type => 'InfluxdbWriter', attrs => delete_undef_values(merge($attrs, $attrs_ssl)), attrs_list => keys($attrs), target => "${conf_dir}/features-available/influxdb.conf", notify => $_notify, order => 10, } # import library 'perfdata' concat::fragment { 'icinga2::feature::influxdb': target => "${conf_dir}/features-available/influxdb.conf", content => "library \"perfdata\"\n\n", order => '05', } icinga2::feature { 'influxdb': ensure => $ensure, } } diff --git a/metadata.json b/metadata.json index 77c311e..fd89d4a 100644 --- a/metadata.json +++ b/metadata.json @@ -1,108 +1,108 @@ { "name": "icinga-icinga2", - "version": "3.0.0", + "version": "3.1.0", "author": "Icinga Development Team", "summary": "Icinga 2 Puppet Module", "license": "Apache-2.0", "source": "git://github.com/icinga/puppet-icinga2", "project_page": "https://github.com/icinga/puppet-icinga2", "issues_url": "https://github.com/icinga/puppet-icinga2/issues", "dependencies": [ { "name": "puppetlabs/stdlib", "version_requirement": ">= 5.0.0 < 8.0.0" }, { "name": "puppetlabs/concat", "version_requirement": ">= 2.1.0 < 8.0.0" } ], "operatingsystem_support": [ { "operatingsystem": "Windows", "operatingsystemrelease": [ "Server 2012", "Server 2012 R2", "Server 2016", "Server 2019" ] }, { "operatingsystem": "CentOS", "operatingsystemrelease": [ "6", "7", "8" ] }, { "operatingsystem": "RedHat", "operatingsystemrelease": [ "6", "7", "8" ] }, { "operatingsystem": "OracleLinux", "operatingsystemrelease": [ "6", "7", "8" ] }, { "operatingsystem": "Fedora", "operatingsystemrelease": [ "26", "27", "28", "29", "30", "31" ] }, { "operatingsystem": "Debian", "operatingsystemrelease": [ "8", "9", "10" ] }, { "operatingsystem": "Ubuntu", "operatingsystemrelease": [ "16.04", "18.04", "20.04" ] }, { "operatingsystem": "SLES", "operatingsystemrelease": [ "12", "15" ] }, { "operatingsystem": "FreeBSD", "operatingsystemrelease": [ "11", "10" ] } ], "requirements": [ { "name": "puppet", "version_requirement": ">= 4.10.0 < 8.0.0" } ], "tags": [ "monitoring" ], "pdk-version": "1.18.1", "template-url": "pdk-default#1.18.1", "template-ref": "tags/1.18.1-0-g3d2e75c" }