diff --git a/CHANGELOG.md b/CHANGELOG.md index e6f0e50..7dbf083 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,936 +1,966 @@ # Change Log +## [v3.2.0](https://github.com/icinga/puppet-icinga2/tree/v3.2.0) (2021-10-23) +[Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v3.1.3...v3.2.0) + +**Implemented enhancements:** + +- Accept Datatype Sensitive for Secrets [\#689](https://github.com/Icinga/puppet-icinga2/issues/689) +- Update testing doc to use pdk validate command [\#686](https://github.com/Icinga/puppet-icinga2/issues/686) +- Add new feature windowseventlog [\#684](https://github.com/Icinga/puppet-icinga2/issues/684) +- Add TLS support to feature idopgsql [\#683](https://github.com/Icinga/puppet-icinga2/issues/683) +- Add new data type for ido cleanups [\#682](https://github.com/Icinga/puppet-icinga2/issues/682) +- Add param connect\_timeout and TLS support to feature icingadb [\#681](https://github.com/Icinga/puppet-icinga2/issues/681) +- Add object type icingaapplication [\#680](https://github.com/Icinga/puppet-icinga2/issues/680) +- Add TLS support to feature gelf [\#679](https://github.com/Icinga/puppet-icinga2/issues/679) +- Add param insecure\_noverify to feature elasticsearch [\#678](https://github.com/Icinga/puppet-icinga2/issues/678) +- Add param connect\_timeout to feature api [\#677](https://github.com/Icinga/puppet-icinga2/issues/677) +- Add missing params basic\_auth, ssl\_insecure\_noverify to feature influxdb [\#676](https://github.com/Icinga/puppet-icinga2/issues/676) +- Write new feature influxdb2 [\#675](https://github.com/Icinga/puppet-icinga2/issues/675) +- Use new hash style for facts [\#672](https://github.com/Icinga/puppet-icinga2/pull/672) ([cocker-cc](https://github.com/cocker-cc)) + +**Fixed bugs:** + +- Keys are shown in Reports for features elasticsearch, idomysql and influxdb [\#687](https://github.com/Icinga/puppet-icinga2/issues/687) +- Cannot create MySQL database tables if enable\_ssl is set without any other ssl parameter [\#685](https://github.com/Icinga/puppet-icinga2/issues/685) +- Update to use pdk 2.x without fails [\#671](https://github.com/Icinga/puppet-icinga2/issues/671) + +**Closed issues:** + +- Check docu for deprecated parameters [\#673](https://github.com/Icinga/puppet-icinga2/issues/673) +- Using puppet PKI is unsupported on newer Puppetmaster [\#669](https://github.com/Icinga/puppet-icinga2/issues/669) + ## [v3.1.3](https://github.com/icinga/puppet-icinga2/tree/v3.1.3) (2021-06-18) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v3.1.2...v3.1.3) **Fixed bugs:** - Attribute severity of object SyslogLogger no longer appears to be optional [\#666](https://github.com/Icinga/puppet-icinga2/issues/666) ## [v3.1.2](https://github.com/icinga/puppet-icinga2/tree/v3.1.2) (2021-05-12) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v3.1.1...v3.1.2) **Fixed bugs:** - logonaccount breaks service on puppet \< 6 [\#664](https://github.com/Icinga/puppet-icinga2/issues/664) ## [v3.1.1](https://github.com/icinga/puppet-icinga2/tree/v3.1.1) (2021-05-01) [Full Changelog](https://github.com/icinga/puppet-icinga2/compare/v3.1.0...v3.1.1) **Fixed bugs:** - Add Integer to Icinga2::Interval type alias [\#663](https://github.com/Icinga/puppet-icinga2/pull/663) ([UiP9AV6Y](https://github.com/UiP9AV6Y)) **Closed issues:** - Add Integer to Icinga2::Interval type alias [\#662](https://github.com/Icinga/puppet-icinga2/issues/662) ## [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:** - Add manage\_packages to replace manage\_packages [\#661](https://github.com/Icinga/puppet-icinga2/issues/661) - 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) - Change all TLS certificates and keys to datatype Stdlib::Base64 [\#623](https://github.com/Icinga/puppet-icinga2/issues/623) **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) ([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)* \ No newline at end of file +\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* diff --git a/README.md b/README.md index 8d2715b..d6e2d80 100644 --- a/README.md +++ b/README.md @@ -1,645 +1,647 @@ [![Build Status](https://travis-ci.org/Icinga/puppet-icinga2.svg?branch=master)](https://travis-ci.org/Icinga/puppet-icinga2) # Icinga 2 Puppet Module ![Icinga Logo](https://www.icinga.com/wp-content/uploads/2014/06/icinga_logo.png) #### Table of Contents 1. [Overview](#overview) 2. [Module Description - What the module does and why it is useful](#module-description) 3. [Setup - The basics of getting started with icinga2](#setup) 4. [Usage - Configuration options and additional functionality](#usage) * [Installing Icinga](#installing-icinga) * [Clustering Icinga](#clustering-icinga) * [Config Objects](#config-objects) * [Reading objects from hiera](#Reading-objects-from-hiera) * [Apply Rules](#apply-rules) * [Custom configuration](#custom-configuration) 5. [How Configuration is parsed](#how-configuration-is-parsed) 6. [Reference](#reference) 7. [Release Notes](#release-notes) ## Overview Icinga 2 is a widely used open source monitoring software. This Puppet module helps with installing and managing configuration of Icinga 2 on multiple operating systems. ### What's new in version 3.2.0 +Add Icinga 2.13.0 support includes the new influxdb2 feature. + Some parameters for secrets like passwords or tokens in features or objects now allow the datatype 'Sensetive'. Strings set to constants or as custom variables can also use Sensitive. They are not parsed by the simple config parser. When you're using hashes or arrays in constants or custom variables the whole data structure can be secured by Sensitive. ### What's new in version 3.0.0 * The current version now uses the icinga :: repos class from the new `icinga` module for the configuration of repositories including EPEL on RedHat and Backports on Debian. (see https://github.com/icinga/puppet-icinga) * `manage_repos` will replace `manage_repo` in the future * `manage_packages` will replace `manage_package` in the future * Since Icinga v2.12.0 the fingerprint to validate certificates is a sha256 instead of a sha1. Both is supported now. ## Module Description This module installs and configures Icinga 2 on your Linux or Windows hosts. By default it uses packages provided by your distribution's repository or [Chocolatey] on Windows. The module can also be configured to use [packages.icinga.com] as the primary repository, which enables you to install Icinga 2 versions that are newer than the ones provided by your distribution's vendor. All features and objects available in Icinga 2 can be enabled and configured with this module. ## Setup ### What the Icinga 2 Puppet module supports * Installation of packages * Configuration of features * Configuration of objects (also apply rules) * Service * MySQL / PostgreSQL Database Schema Import * Repository Management * Certification Authority ### Dependencies This module supports: * [puppet] >= 4.10 < 8.0.0 And depends on: * [puppetlabs/stdlib] >= 5.0.0 < 8.0.0 * If Puppet 6 is used a stdlib 5.1 or higher is required, see https://github.com/Icinga/puppet-icinga2/issues/505 * [puppetlabs/concat] >= 2.1.0 < 8.0.0 * [icinga/icinga] >= 1.0.0 < 3.0.0 * needed if `manage_repos` is set to `true` ### Limitations The use of Icinga's own CA is recommended. If you still want to use the Puppet certificates, please note that Puppet 7 uses an intermediate CA by default and Icinga cannot handle its CA certificate, see [Icinga Issue](https://github.com/Icinga/icinga2/pull/8859). This module has been tested on: * Ruby >= 1.9 * Debian 8, 9, 10 * Ubuntu 16.04, 18.04, 20.04 * CentOS/RHEL 6, 7, 8 * Fedora 31 * FreeBSD 10, 11 * SLES 12, 15 * Windows Server 2016 Other operating systems or versions may work but have not been tested. ## Usage ### Installing Icinga The default class `icinga2` installs and configures a basic installation of Icinga 2. The features `checker`, `mainlog` and `notification` are enabled by default. By default, your distribution's packages are used to install Icinga 2. On Windows systems we use the [Chocolatey] package manager. Use the `manage_repos` parameter to configure repositories by default the official and stable [packages.icinga.com]. To configure your own repositories, or use the official testing or nightly snapshot stage, see https://github.com/icinga/puppet-icinga. ``` puppet class { '::icinga2': manage_repos => true, } ``` If you want to manage the version of Icinga 2, you have to disable the package management of this module and handle packages in your own Puppet code. The attribute `manage_repos` is disabled by default and you have to manage a repository within icinga in front of the package resource. You can combine this one with the section before about repositories. ``` puppet # class of extra module icinga/icinga include ::icinga::repos package { 'icinga2': ensure => latest, notify => Class['icinga2'], } class { '::icinga2': manage_packages => false, } ``` Note: Be careful with this option: Setting `manage_packages` to false means that this module will not install any package at all, including IDO packages! ### Clustering Icinga Icinga 2 can run in three different roles: * in a master zone which is on top of the hierarchy * in a satellite zone which is a child of a satellite or master zone * a standalone client node/zone which works as an agent connected to master and/or satellite zones To learn more about Icinga 2 Clustering, follow the official docs on [distributed monitoring]. The following examples show how these roles can be configured using this Puppet module. #### Master A Master zone has no parent and is usually also the place where you enable the IDO and notification features. A master sends configurations over the Icinga 2 protocol to satellites and/or clients. More detailed examples can be found in the [examples] directory. This example creates the configuration for a master that has one satellite connected. A global zone is created for templates, and all features of a typical master are enabled. ``` puppet class { '::icinga2': confd => false, constants => { 'ZoneName' => 'master', 'TicketSalt' => '5a3d695b8aef8f18452fc494593056a4', }, } class { '::icinga2::feature::api': pki => 'none', accept_commands => true, # when having multiple masters, you have to enable: accept_config => true, endpoints => { 'master.example.org' => {}, 'satellite.example.org' => { 'host' => '172.16.2.11' }, }, zones => { 'master' => { 'endpoints' => ['master.example.org'], }, 'dmz' => { 'endpoints' => ['satellite.example.org'], 'parent' => 'master', }, } } # to enable a CA on this instance you have to declare. Only one instance is allowed to be a CA: include ::icinga2::pki::ca icinga2::object::zone { 'global-templates': global => true, } ``` #### Satellite A satellite has a parent zone and one or multiple child zones. Satellites are usually created to distribute the monitoring load or to reach delimited zones in the network. A satellite either executes checks itself or delegates them to a client. The satellite has fewer features enabled, but executes checks similar to a master. It connects to a master zone, and to a satellite or client below in the hierarchy. As parent acts either the master zone, or another satellite zone. ``` puppet class { '::icinga2': confd => false, # setting dedicated feature list to disable notification features => ['checker','mainlog'], constants => { 'ZoneName' => 'dmz', }, } class { '::icinga2::feature::api': accept_config => true, accept_commands => true, ca_host => '172.16.1.11', ticket_salt => '5a3d695b8aef8f18452fc494593056a4', # to increase your security set fingerprint to validate the certificate of ca_host # fingerprint => 'D8:98:82:1B:14:8A:6A:89:4B:7A:40:32:50:68:01:D8:98:82:1B:14:8A:6A:89:4B:7A:40:32:99:3D:96:72:72', endpoints => { 'satellite.example.org' => {}, 'master.example.org' => { 'host' => '172.16.1.11', }, }, zones => { 'master' => { 'endpoints' => ['master.example.org'], }, 'dmz' => { 'endpoints' => ['satellite.example.org'], 'parent' => 'master', }, } } icinga2::object::zone { 'global-templates': global => true, } ``` #### Agent Icinga 2 runs as a client usually on each of your servers. It receives config or commands from a satellite or master zones and runs the checks that have to be executed locally. The client is connected to the satellite, which is the direct parent zone. ``` puppet class { '::icinga2': confd => false, features => ['mainlog'], } class { '::icinga2::feature::api': accept_config => true, accept_commands => true, ticket_salt => '5a3d695b8aef8f18452fc494593056a4', # to increase your security set fingerprint to validate the certificate of ca_host # fingerprint => 'D8:98:82:1B:14:8A:6A:89:4B:7A:40:32:50:68:01:D8:98:82:1B:14:8A:6A:89:4B:7A:40:32:99:3D:96:72:72', endpoints => { 'NodeName' => {}, 'satellite.example.org' => { 'host' => '172.16.2.11', }, }, zones => { 'ZoneName' => { 'endpoints' => ['NodeName'], 'parent' => 'dmz', }, 'dmz' => { 'endpoints' => ['satellite.example.org'], }, } } icinga2::object::zone { 'global-templates': global => true, } ``` The parameter `fingerprint` is optional and new since v2.1.0. It's used to validate the certificate of the CA host. You can get the fingerprint via `openssl x509 -noout -fingerprint -sha256 -inform pem -in master.crt` on the master host. (Icinga2 versions before 2.12.0 require '-sha1' as digest algorithm.) ### Config Objects With this module you can create almost every object that Icinga 2 knows about. When creating objects some parameters are required. This module sets the same requirements as Icinga 2 does. When creating an object you must set a target for the configuration. Here are some examples for some object types: #### Host ``` puppet icinga2::object::host { 'srv-web1.fqdn.com': display_name => 'srv-web1.fqdn.com', address => '127.0.0.1', address6 => '::1', check_command => 'hostalive', target => '/etc/icinga2/conf.d/srv-web1.fqdn.com.conf', } ``` #### Service ``` puppet icinga2::object::service { 'uptime': host_name => 'srv-web1.fqdn.com', display_name => 'Uptime', check_command => 'check_uptime', check_interval => '600m', groups => ['uptime', 'linux'], target => '/etc/icinga2/conf.d/uptime.conf', } ``` #### Hostgroup ``` puppet icinga2::object::hostgroup { 'monitoring-hosts': display_name => 'Linux Servers', groups => [ 'linux-servers' ], target => '/etc/icinga2/conf.d/groups2.conf', assign => [ 'host.vars.os == linux' ], } ``` ### Reading objects from hiera The following example shows how icinga2 objects can be read from a hiera datastore. See also examples/objects_from_hiera.pp. ``` class { 'icinga2': manage_repos => true, } $defaults = lookup('monitoring::defaults', undef, undef, {}) lookup('monitoring::objects').each |String $object_type, Hash $content| { $content.each |String $object_name, Hash $object_config| { ensure_resource( $object_type, $object_name, deep_merge($defaults[$object_type], $object_config)) } } ``` The datastore could be like: ``` --- monitoring::objects: 'icinga2::object::host': centos7.localdomain: address: 127.0.0.1 vars: os: Linux 'icinga2::object::service': ping4: check_command: ping4 apply: true assign: - host.address ssh: check_command: ssh apply: true assign: - host.address && host.vars.os == Linux monitoring::defaults: 'icinga2::object::host': import: - generic-host target: /etc/icinga2/conf.d/hosts.conf 'icinga2::object::service': import: - generic-service target: /etc/icinga2/conf.d/services.conf ``` ### Apply Rules Some objects can be applied to other objects. To create a simple apply rule you must set the `apply` parameter to `true`. If this parameter is set to a string, this string will be used to build an `apply for` loop. A service object always targets a host object. All other objects need to explicitly set an `apply_target` Apply a SSH service to all Linux hosts: ``` icinga2::object::service { 'SSH': target => '/etc/icinga2/conf.d/test.conf', apply => true, assign => [ 'host.vars.os == Linux' ], ignore => [ 'host.vars.os == Windows' ], display_name => 'Test Service', check_command => 'ssh', } ``` Apply notifications to services: ``` icinga2::object::notification { 'testnotification': target => '/etc/icinga2/conf.d/test.conf', apply => true, apply_target => 'Service', assign => [ 'host.vars.os == Linux' ], ignore => [ 'host.vars.os == Windows' ], user_groups => ['icingaadmins'] } ``` Assign all Linux hosts to a hostgroup: ``` icinga2::object::hostgroup { 'monitoring-hosts': display_name => 'Linux Servers', groups => [ 'linux-servers' ], target => '/etc/icinga2/conf.d/groups2.conf', assign => [ 'host.vars.os == linux' ], } ``` A loop to create HTTP services for all vHosts of a host object: ``` icinga2::object::service { 'HTTP': target => '/etc/icinga2/conf.d/http.conf', apply => 'http_vhost => config in host.vars_http_vhost', assign => [ 'host.vars.os == Linux' ], display_name => 'HTTP Service', check_command => 'http', } ``` ### Custom Configuration 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. The module collects all file resource types with this tag and triggers a reload of Icinga 2 on a file change. ``` include ::icinga2 file { '/etc/icinga2/conf.d/for-loop.conf': ensure => file, source => '...', tag => 'icinga2::config::file', } ``` ## How Configuration is parsed To generate a valid Icinga 2 configuration all object attributes are parsed. This simple parsing algorithm takes a decision for each attribute, whether part of the string is to be quoted or not, and how an array or dictionary is to be formatted. Parsing of a single attribute can be disabled by tagging it with -: at the front of the string. ``` attr => '-:"unparsed string with quotes"' ``` An array, a hash or a string can be assigned to an object attribute. True and false are also valid values. Hashes and arrays are created recursively, and all parts – such as single items of an array, keys and its values are parsed separately as strings. Strings are parsed in chunks, by splitting the original string into separate substrings at specific keywords (operators) such as `+`, `-`, `in`, `&&`, `||`, etc. **NOTICE**: This splitting only works for keywords that are surrounded by whitespace, e.g.: ``` attr => 'string1 + string2 - string3' ``` The algorithm will loop over the parameter and start by splitting it into 'string1' and 'string2 - string3'. 'string1' will be passed to the sub function 'value_types' and then the algorithm will continue parsing the rest of the string ('string2 - string3'), splitting it, passing it to value_types, etc. Brackets are parsed for expressions: ``` attr => '3 * (value1 - value2) / 2' ``` The parser also detects function calls and will parse all parameters separately. ``` attr => 'function(param1, param2, ...)' ``` True and false can be used as either booleans or strings. ``` attrs => true or attr => 'true' ``` In Icinga you can write your own lambda functions with {{ ... }}. For Puppet use: ``` attrs => '{{ ... }}' ``` The parser analyzes which parts of the string have to be quoted and which do not. As a general rule, all fragments are quoted except for the following: * Boolean: `true`, `false` * Numbers: `3` or `2.5` * Time Intervals: `3m` or `2.5h` (s = seconds, m = minutes, h = hours, d = days) * Functions: `{{ ... }}` or function `()` `{}` * All constants, which are declared in the constants parameter in main class `icinga2` * `NodeName` * Names of attributes that belong to the same type of object: * e.g. `name` and `check_command` for a host object * All attributes or variables (custom attributes) from the host, service or user contexts: * `host.name`, `service.check_command`, `user.groups`, ... Assignment with += and -=: Now it's possible to build an Icinga DSL code snippet like ``` vars += config ``` simply use a string with the prefix '+ ', e.g. ``` vars => '+ config', ``` The blank between + and the proper string 'config' is imported for the parser because numbers ``` attr => '+ -14', ``` are also possible now. For numbers -= can be built, too: ``` attr => '- -14', ``` Arrays can also be marked to merge with '+' or reduce by '-' as the first item of the array: ``` attr => [ '+', item1, item2, ... ] ``` Result: attr += [ item1, item2, ... ] ``` attr => [ '-', item1, item2, ... ] ``` Result: attr -= [ item1, item2, ... ] That all works for attributes and custom attributes! Finally dictionaries can be merged when a key '+' is set: ``` attr => { '+' => true, 'key1' => 'val1', } ``` Result: ``` attr += { "key1" = "val1" } ``` If 'attr' is a custom attribute this just works since level 3 of the dictionary: ``` vars => { 'level1' => { 'level2' => { 'level3' => { '+' => true, ... }, }, }, }, ``` Parsed to: ``` vars.level1["level2"] += level3 ``` Now it's also possible to add multiple custom attributes: ``` vars => [ { 'a' => '1', 'b' => '2', }, 'config', { 'c' => { 'd' => { '+' => true, 'e' => '5', }, }, }, ], ``` And you'll get: ``` vars.a = "1" vars.b = "2" vars += config vars.c["d"] += { "e" = "5" } ``` Note: Using an Array always means merge '+=' all items to vars. ##### What isn't supported? It's not currently possible to use dictionaries in a string WITH nested array or hash, like ``` attr1 => 'hash1 + { item1 => value1, item2 => [ value1, value2 ], ... ]' attr2 => 'hash2 + { item1 => value1, item2 => { ... },... }' ``` ## Reference See [REFERENCE.md](https://github.com/Icinga/puppet-icinga2/blob/master/REFERENCE.md) ## Release Notes When releasing new versions we refer to [SemVer 1.0.0] for version numbers. All steps required when creating a new release are described in [RELEASE.md](https://github.com/Icinga/puppet-icinga2/blob/master/RELEASE.md) See also [CHANGELOG.md](https://github.com/Icinga/puppet-icinga2/blob/master/CHANGELOG.md) [distributed monitoring]: http://docs.icinga.com/icinga2/latest/doc/module/icinga2/chapter/distributed-monitoring [puppetlabs/stdlib]: https://github.com/puppetlabs/puppetlabs-stdlib [puppetlabs/concat]: https://github.com/puppetlabs/puppetlabs-concat [puppetlabs/apt]: https://github.com/puppetlabs/puppetlabs-apt [puppetlabs/chocolatey]: https://github.com/puppetlabs/puppetlabs-chocolatey [puppet/zypprepo]: https://forge.puppet.com/puppet/zypprepo [puppetlabs/mysql]: https://github.com/puppetlabs/puppetlabs-mysql [puppetlabs/puppetlabs-postgresql]: https://github.com/puppetlabs/puppetlabs-postgresql [puppet-icinga2]: https://github.com/icinga/puppet-icinga2 [packages.icinga.com]: https://packages.icinga.com [Chocolatey]: https://chocolatey.org [SemVer 1.0.0]: http://semver.org/spec/v1.0.0.html [CONTRIBUTING.md]: CONTRIBUTING.md [TESTING.md]: TESTING.md [RELEASE.md]: RELEASE.md [CHANGELOG.md]: CHANGELOG.md [AUTHORS]: AUTHORS diff --git a/REFERENCE.md b/REFERENCE.md index 46ae673..8366048 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -1,3469 +1,4029 @@ # Reference ## Table of Contents ### 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::influxdb2`](#icinga2featureinfluxdb2): Configures the Icinga 2 feature influxdb2. * [`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::feature::windowseventlog`](#icinga2featurewindowseventlog): Configures the Icinga 2 feature windowseventlog. * [`icinga2::pki::ca`](#icinga2pkica): This class provides multiple ways to create the CA used by Icinga 2. #### 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::service`: This class handles the Icinga 2 service. By default the service will start on boot and will be restarted if stopped. ### 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::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::icingaapplication`](#icinga2objecticingaapplication) * [`icinga2::object::notificationcommand`](#icinga2objectnotificationcommand): Manage Icinga 2 notificationcommand 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 * `icinga2::feature`: Private define resource to used by this module only. * `icinga2::object`: Define resource to used by this module only. ### 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 +* [`Icinga2::BasicAuth`](#icinga2basicauth): A strict type for basic authentication * [`Icinga2::CustomAttributes`](#icinga2customattributes): A type for the structure of custom attributes * [`Icinga2::Fingerprint`](#icinga2fingerprint): Type for certificate fingerprints SHA1: 160 bit (20 byte) digest SHA256: 256 bit (32 byte) digest +* [`Icinga2::IdoCleanup`](#icinga2idocleanup): A type for the structure of settings to cleanup IDO databases * [`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` This module installs and configures Icinga 2. * **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 module icinga/puppet-icinga, e.g. to use the official Icinga Project repositories, enable the manage_repos parameter. ```puppet class { 'icinga2': 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_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_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` ##### `enable` Data type: `Boolean` If set to true the Icinga 2 service will start on boot. Default value: ``true`` ##### `manage_repo` Data type: `Boolean` 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`` ##### `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`` ##### `manage_selinux` Data type: `Boolean` If set to true the icinga selinux package is installed. Requires a `selinux_package_name` (icinga2::globals) and `manage_packages` has to be set to true. 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`` ##### `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`` ##### `constants` Data type: `Hash` Hash of constants. Defaults are set in the params class. Your settings will be merged with the defaults. 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`` ### `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` ##### `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. + Please note that Puppet 7 uses an intermediate CA by default and Icinga cannot handle + its CA certificate, see [Icinga Issue](https://github.com/Icinga/icinga2/pull/8859). - 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'` ##### `ssl_key` 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`` ##### `ssl_cert` 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`` ##### `ssl_cacert` 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`` ##### `ssl_crl` Data type: `Optional[Stdlib::Absolutepath]` Optional location of the certificate revocation list. Default value: ``undef`` ##### `accept_config` Data type: `Optional[Boolean]` Accept zone configuration. Default value: ``undef`` ##### `accept_commands` Data type: `Optional[Boolean]` Accept remote commands. 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`` ##### `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`` ##### `ca_port` Data type: `Stdlib::Port::Unprivileged` Port of the 'ca_host'. 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`` -##### `ticket_salt` +##### `Variant` -Data type: `String` +Data type: `[String, Sensitive[String]] ticket_salt +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. Keep in mind this parameter is parsed so please use only alpha numric +characters as salt or a constant.` +ariant[[String, Sensitive[String]] ticket_salt 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. Keep in mind this parameter is parsed so please use only alpha numric characters as salt or a constant. -Default value: `'TicketSalt'` - ##### `ticket_id` -Data type: `Optional[String]` +Data type: `Optional[Variant[String, Sensitive[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`` ##### `endpoints` Data type: `Hash[String, Hash]` Hash to configure endpoint objects. `NodeName` is a icnga2 constant. 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' ] } }` ##### `ssl_protocolmin` Data type: `Optional[Enum['TLSv1', 'TLSv1.1', 'TLSv1.2']]` Minimal TLS version to require. Default value: ``undef`` ##### `ssl_handshake_timeout` Data type: `Optional[Icinga2::Interval]` TLS Handshake timeout. Default value: ``undef`` +##### `connect_timeout` + +Data type: `Optional[Icinga2::Interval]` + +Timeout for establishing new connections. + +Default value: ``undef`` + ##### `ssl_cipher_list` Data type: `Optional[String]` List of allowed TLS ciphers, to finetune encryption. Default value: ``undef`` ##### `bind_host` Data type: `Optional[Stdlib::Host]` The IP address the api listener will be bound to. Default value: ``undef`` ##### `bind_port` Data type: `Optional[Stdlib::Port::Unprivileged]` The port the api listener will be bound to. 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`` ##### `access_control_allow_credentials` Data type: `Optional[Boolean]` Indicates whether or not the actual request can be made using credentials. 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`` ##### `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`` ##### `environment` Data type: `Optional[String]` Used as suffix in TLS SNI extension name; default from constant ApiEnvironment, which is empty. Default value: ``undef`` +##### `ticket_salt` + +Data type: `Variant[String, Sensitive[String]]` + + + +Default value: `'TicketSalt'` + ### `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` ##### `concurrent_checks` Data type: `Optional[Integer[1]]` The maximum number of concurrent checks. Default value: ``undef`` ### `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` ##### `command_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the command pipe. Default value: ``undef`` ### `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` ##### `log_dir` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the log directory. 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`` ### `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` ##### `path` Data type: `Stdlib::Absolutepath` Absolute path to the log file. Default value: `"${::icinga2::globals::log_dir}/debug.log"` ### `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` ##### `host` Data type: `Optional[Stdlib::Host]` Elasticsearch host address. Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` Elasticsearch HTTP port. Default value: ``undef`` ##### `index` Data type: `Optional[String]` Elasticsearch index name. Default value: ``undef`` ##### `username` Data type: `Optional[String]` Elasticsearch user name. Default value: ``undef`` ##### `password` -Data type: `Optional[String]` +Data type: `Optional[Variant[String, Sensitive[String]]]` Elasticsearch user password. The password parameter isn't parsed anymore. 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`` +##### `ssl_noverify` + +Data type: `Optional[Boolean]` + +Disable TLS peer verification. + +Default value: ``undef`` + ##### `ssl_key_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the private key. Default value: ``undef`` ##### `ssl_cert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the certificate. Default value: ``undef`` ##### `ssl_cacert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the CA certificate. Default value: ``undef`` ##### `ssl_key` Data type: `Optional[Stdlib::Base64]` The private key in a base64 encoded string to store in spicified ssl_key_path file. Default value: ``undef`` ##### `ssl_cert` Data type: `Optional[Stdlib::Base64]` The certificate in a base64 encoded to store in spicified ssl_cert_path file. Default value: ``undef`` ##### `ssl_cacert` 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`` ##### `enable_send_perfdata` Data type: `Optional[Boolean]` Whether to send check performance data metrics. Default value: ``undef`` ##### `flush_interval` Data type: `Optional[Icinga2::Interval]` How long to buffer data points before transferring to Elasticsearch. Default value: ``undef`` ##### `flush_threshold` Data type: `Optional[Integer]` How many data points to buffer before forcing a transfer to Elasticsearch. Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. Default value: ``undef`` ### `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` ##### `host` Data type: `Optional[Stdlib::Host]` GELF receiver host address. Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` GELF receiver port. Default value: ``undef`` ##### `source` Data type: `Optional[String]` Source name for this instance. Default value: ``undef`` +##### `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`` + +##### `ssl_key_path` + +Data type: `Optional[Stdlib::Absolutepath]` + +Location of the private key. Only valid if ssl is enabled. + +Default value: ``undef`` + +##### `ssl_cert_path` + +Data type: `Optional[Stdlib::Absolutepath]` + +Location of the certificate. Only valid if ssl is enabled. + +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`` + +##### `ssl_key` + +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`` + +##### `ssl_cert` + +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`` + +##### `ssl_cacert` + +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`` + +##### `ssl_noverify` + +Data type: `Optional[Boolean]` + +Disable TLS peer verification. + +Default value: ``undef`` + ##### `enable_send_perfdata` Data type: `Optional[Boolean]` Enable performance data for 'CHECK RESULT' events. Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. Default value: ``undef`` ### `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` ##### `host` Data type: `Optional[Stdlib::Host]` Graphite Carbon host address. Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` Graphite Carbon port. Default value: ``undef`` ##### `host_name_template` Data type: `Optional[String]` Template for metric path of hosts. Default value: ``undef`` ##### `service_name_template` Data type: `Optional[String]` Template for metric path of services. Default value: ``undef`` ##### `enable_send_thresholds` Data type: `Optional[Boolean]` Default value: ``undef`` ##### `enable_send_metadata` Data type: `Optional[Boolean]` Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. Default value: ``undef`` ### `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` ##### `host` Data type: `Optional[Stdlib::Host]` IcingaDB Redis host address. Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` IcingaDB Redis port. 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`` +##### `connect_timeout` + +Data type: `Optional[Icinga2::Interval]` + +Timeout for establishing new connections. + +Default value: ``undef`` + ##### `password` -Data type: `Optional[String]` +Data type: `Optional[Variant[String, Sensitive[String]]]` IcingaDB Redis password. The password parameter isn't parsed anymore. Default value: ``undef`` ### `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` ##### `host` Data type: `Stdlib::Host` MySQL database host address. Default value: `'localhost'` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` MySQL database port. Default value: ``undef`` ##### `socket_path` Data type: `Optional[Stdlib::Absolutepath]` MySQL socket path. Default value: ``undef`` ##### `user` Data type: `String` MySQL database user with read/write permission to the icinga database. Default value: `'icinga'` ##### `password` -Data type: `String` +Data type: `Variant[String, Sensitive[String]]` MySQL database user's password. The password parameter isn't parsed anymore. ##### `database` Data type: `String` MySQL database name. 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`` ##### `ssl_key_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the private key. Only valid if ssl is enabled. Default value: ``undef`` ##### `ssl_cert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the certificate. Only valid if ssl is enabled. 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`` ##### `ssl_key` 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`` ##### `ssl_cert` 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`` ##### `ssl_cacert` 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`` ##### `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`` ##### `ssl_cipher` Data type: `Optional[String]` MySQL SSL list of allowed ciphers. Only valid if ssl is enabled. Default value: ``undef`` ##### `table_prefix` Data type: `Optional[String]` MySQL database table prefix. Default value: ``undef`` ##### `instance_name` Data type: `Optional[String]` Unique identifier for the local Icinga 2 instance. Default value: ``undef`` ##### `instance_description` Data type: `Optional[String]` Description for the Icinga 2 instance. Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. 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`` ##### `cleanup` -Data type: `Optional[Hash[String,Icinga2::Interval]]` +Data type: `Optional[Icinga2::IdoCleanup]` Hash with items for historical table cleanup. Default value: ``undef`` ##### `categories` Data type: `Optional[Array]` Array of information types that should be written to the database. Default value: ``undef`` ##### `import_schema` Data type: `Boolean` Whether to import the MySQL schema or not. Default value: ``false`` ### `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'), + password => postgresql::postgresql_password('icinga2', 'supersecret'), } class{ 'icinga2::feature::idopgsql': 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` ##### `host` Data type: `Stdlib::Host` PostgreSQL database host address. Default value: `'localhost'` ##### `port` Data type: `Stdlib::Port::Unprivileged` PostgreSQL database port. Default value: `5432` ##### `user` Data type: `String` PostgreSQL database user with read/write permission to the icinga database. Default value: `'icinga'` ##### `password` -Data type: `String` +Data type: `Variant[String, Sensitive[String]]` PostgreSQL database user's password. The password parameter isn't parsed anymore. ##### `database` Data type: `String` PostgreSQL database name. Default value: `'icinga'` +##### `ssl_mode` + +Data type: `Optional[Enum['disable', 'allow', + 'prefer', 'verify-full', + 'verify-ca', 'require']]` + +Enable SSL connection mode. + +Default value: ``undef`` + +##### `ssl_key_path` + +Data type: `Optional[Stdlib::Absolutepath]` + +Location of the private key. + +Default value: ``undef`` + +##### `ssl_cert_path` + +Data type: `Optional[Stdlib::Absolutepath]` + +Location of the certificate. + +Default value: ``undef`` + +##### `ssl_cacert_path` + +Data type: `Optional[Stdlib::Absolutepath]` + +Location of the CA certificate. + +Default value: ``undef`` + +##### `ssl_key` + +Data type: `Optional[Stdlib::Base64]` + +The private key in a base64 encoded string to store in spicified ssl_key_path file. + +Default value: ``undef`` + +##### `ssl_cert` + +Data type: `Optional[Stdlib::Base64]` + +The certificate in a base64 encoded string to store in spicified ssl_cert_path file. + +Default value: ``undef`` + +##### `ssl_cacert` + +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`` + ##### `table_prefix` Data type: `Optional[String]` PostgreSQL database table prefix. Default value: ``undef`` ##### `instance_name` Data type: `Optional[String]` Unique identifier for the local Icinga 2 instance. Default value: ``undef`` ##### `instance_description` Data type: `Optional[String]` Description of the Icinga 2 instance. Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. 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`` ##### `cleanup` -Data type: `Optional[Hash]` +Data type: `Optional[Icinga2::IdoCleanup]` Hash with items for historical table cleanup. Default value: ``undef`` ##### `categories` Data type: `Optional[Array]` Array of information types that should be written to the database. Default value: ``undef`` ##### `import_schema` Data type: `Boolean` Whether to import the PostgreSQL schema or not. Default value: ``false`` ### `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` ##### `host` Data type: `Optional[Stdlib::Host]` InfluxDB host address. Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port]` InfluxDB HTTP port. Default value: ``undef`` ##### `database` Data type: `Optional[String]` InfluxDB database name. Default value: ``undef`` ##### `username` Data type: `Optional[String]` InfluxDB user name. Default value: ``undef`` ##### `password` -Data type: `Optional[String]` +Data type: `Optional[Variant[String, Sensitive[String]]]` InfluxDB user password. The password parameter isn't parsed anymore. Default value: ``undef`` +##### `basic_auth` + +Data type: `Optional[Icinga2::BasicAuth]` + +Username and password for HTTP basic authentication. + +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`` +##### `ssl_noverify` + +Data type: `Optional[Boolean]` + +Disable TLS peer verification. + +Default value: ``undef`` + +##### `ssl_key_path` + +Data type: `Optional[Stdlib::Absolutepath]` + +Location of the private key. + +Default value: ``undef`` + +##### `ssl_cert_path` + +Data type: `Optional[Stdlib::Absolutepath]` + +Location of the certificate. + +Default value: ``undef`` + +##### `ssl_cacert_path` + +Data type: `Optional[Stdlib::Absolutepath]` + +Location of the CA certificate. + +Default value: ``undef`` + +##### `ssl_key` + +Data type: `Optional[Stdlib::Base64]` + +The private key in a base64 encoded string to store in ssl_key_path file. + +Default value: ``undef`` + +##### `ssl_cert` + +Data type: `Optional[Stdlib::Base64]` + +The certificate in a base64 encoded string to store in ssl_cert_path file. + +Default value: ``undef`` + +##### `ssl_cacert` + +Data type: `Optional[Stdlib::Base64]` + +The CA root certificate in a base64 encoded to store in ssl_cacert_path file. + +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$'` + +##### `host_tags` + +Data type: `Hash` + +Tags defined in this hash will be set in the host_template. + +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$'` + +##### `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$' }` + +##### `enable_send_thresholds` + +Data type: `Optional[Boolean]` + +Whether to send warn, crit, min & max tagged data. + +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`` + +##### `flush_interval` + +Data type: `Optional[Icinga2::Interval]` + +How long to buffer data points before transfering to InfluxDB. + +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`` + +##### `enable_ha` + +Data type: `Optional[Boolean]` + +Enable the high availability functionality. Only valid in a cluster setup. + +Default value: ``undef`` + +### `icinga2::feature::influxdb2` + +Configures the Icinga 2 feature influxdb2. + +#### Examples + +##### + +```puppet +class { 'icinga2::feature::influxdb2': + host => "10.10.0.15", + organization => "ICINGA", + bucket => "icinga2", + auth_token => "supersecret", +} +``` + +#### Parameters + +The following parameters are available in the `icinga2::feature::influxdb2` class. + +##### `ensure` + +Data type: `Enum['absent', 'present']` + +Set to present enables the feature influxdb, absent disables it. + +Default value: `present` + +##### `host` + +Data type: `Optional[Stdlib::Host]` + +InfluxDB host address. + +Default value: ``undef`` + +##### `port` + +Data type: `Optional[Stdlib::Port]` + +InfluxDB HTTP port. + +Default value: ``undef`` + +##### `organization` + +Data type: `String` + +InfluxDB organization name. + +##### `bucket` + +Data type: `String` + +InfluxDB bucket name. + +##### `auth_token` + +Data type: `Variant[String, Sensitive[String]]` + +InfluxDB authentication token. + +##### `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`` + +##### `ssl_noverify` + +Data type: `Optional[Boolean]` + +Disable TLS peer verification. + +Default value: ``undef`` + ##### `ssl_key_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the private key. Default value: ``undef`` ##### `ssl_cert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the certificate. Default value: ``undef`` ##### `ssl_cacert_path` Data type: `Optional[Stdlib::Absolutepath]` Location of the CA certificate. Default value: ``undef`` ##### `ssl_key` Data type: `Optional[Stdlib::Base64]` The private key in a base64 encoded string to store in ssl_key_path file. Default value: ``undef`` ##### `ssl_cert` Data type: `Optional[Stdlib::Base64]` The certificate in a base64 encoded string to store in ssl_cert_path file. Default value: ``undef`` ##### `ssl_cacert` Data type: `Optional[Stdlib::Base64]` The CA root certificate in a base64 encoded to store in ssl_cacert_path file. 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$'` ##### `host_tags` Data type: `Hash` Tags defined in this hash will be set in the host_template. 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$'` ##### `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$' }` ##### `enable_send_thresholds` Data type: `Optional[Boolean]` Whether to send warn, crit, min & max tagged data. 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`` ##### `flush_interval` Data type: `Optional[Icinga2::Interval]` How long to buffer data points before transfering to InfluxDB. 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`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. Default value: ``undef`` ### `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` ##### `socket_type` Data type: `Optional[Enum['tcp', 'unix']]` Specifies the socket type. Can be either 'tcp' or 'unix'. 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`` ##### `bind_port` Data type: `Optional[Stdlib::Port::Unprivileged]` Port to listen for connections. Only valid when socket_type is 'tcp'. 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`` ##### `compat_log_path` Data type: `Optional[Stdlib::Absolutepath]` Required for historical table queries. Requires CompatLogger feature to be enabled. Default value: ``undef`` ### `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` ##### `severity` Data type: `Icinga2::LogSeverity` You can set the log severity to 'information', 'notice', 'warning' or 'debug'. Default value: `'information'` ##### `path` Data type: `Stdlib::Absolutepath` Absolute path to the log file. Default value: `"${::icinga2::globals::log_dir}/icinga2.log"` ### `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` ##### `enable_ha` Data type: `Optional[Boolean]` Notifications are load-balanced amongst all nodes in a zone. Default value: ``undef`` ### `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` ##### `host` Data type: `Optional[Stdlib::Host]` OpenTSDB host address. Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` OpenTSDB port. Default value: ``undef`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. Default value: ``undef`` ### `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` ##### `host_perfdata_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the perfdata file for hosts. Default value: ``undef`` ##### `service_perfdata_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the perfdata file for services. Default value: ``undef`` ##### `host_temp_path` Data type: `Optional[Stdlib::Absolutepath]` Path to the temporary host file. Default value: ``undef`` ##### `service_temp_path` Data type: `Optional[Stdlib::Absolutepath]` Path to the temporary service file. Default value: ``undef`` ##### `host_format_template` Data type: `Optional[String]` Host Format template for the performance data file. Default value: ``undef`` ##### `service_format_template` Data type: `Optional[String]` Service Format template for the performance data file. 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`` ##### `enable_ha` Data type: `Optional[Boolean]` Enable the high availability functionality. Only valid in a cluster setup. Default value: ``undef`` ### `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` ##### `status_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the status.dat file. Default value: ``undef`` ##### `objects_path` Data type: `Optional[Stdlib::Absolutepath]` Absolute path to the object.cache file. 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`` ### `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` ##### `severity` Data type: `Icinga2::LogSeverity` You can choose the log severity between information, notice, warning or debug. Default value: `'warning'` ##### `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`` +### `icinga2::feature::windowseventlog` + +Configures the Icinga 2 feature windowseventlog. + +#### Parameters + +The following parameters are available in the `icinga2::feature::windowseventlog` class. + +##### `ensure` + +Data type: `Enum['absent', 'present']` + +Set to present enables the feature windowseventlog, absent disables it. + +Default value: `present` + +##### `severity` + +Data type: `Icinga2::LogSeverity` + +You can choose the log severity between information, notice, warning or debug. + +Default value: `'warning'` + ### `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`` ##### `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`` ## Defined types ### `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'` ##### `code_name` Data type: `String` Default value: `$title` ### `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` ##### `apiuser_name` Data type: `String` Set the name of the apiuser object. Default value: `$title` ##### `password` -Data type: `Optional[String]` +Data type: `Optional[Variant[String, Sensitive[String]]]` Password string. The password parameter isn't parsed anymore. Default value: ``undef`` ##### `client_cn` Data type: `Optional[String]` Optional. Client Common Name (CN). 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`` ##### `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` ### `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` ##### `checkcommand_name` Data type: `String` Title of the CheckCommand object. Default value: `$title` ##### `import` Data type: `Array` Sorted List of templates to include. 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`` ##### `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[Icinga2::Interval]` The command timeout in seconds. Default value: ``undef`` ##### `arguments` Data type: `Optional[Variant[Hash, String]]` A dictionary of command arguments. 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`` ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. Default value: `15` ### `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` ##### `checkresultreader_name` Data type: `String` Set the Icinga 2 name of the ceckresultreader object. 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::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` ##### `endpoint_name` Data type: `String` Set the Icinga 2 name of the endpoint object. Default value: `$title` ##### `host` Data type: `Optional[Stdlib::Host]` Optional. The IP address of the remote Icinga 2 instance. Default value: ``undef`` ##### `port` Data type: `Optional[Stdlib::Port::Unprivileged]` The service name/port of the remote Icinga 2 instance. 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`` ##### `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`` ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. Default value: `40` ### `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` ##### `eventcommand_name` Data type: `String` Set the Icinga 2 name of the eventcommand 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[Icinga2::Interval]` The command timeout in seconds. Default value: ``undef`` ##### `arguments` Data type: `Optional[Hash]` A dictionary of command arguments. 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: `[]` ##### `order` Data type: `Variant[String, Integer]` String or integer to set the position in the target file, sorted alpha numeric. Default value: `20` ### `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` ##### `host_name` Data type: `String` Hostname of the Host object. Default value: `$title` ##### `import` Data type: `Array` Sorted List of templates to include. 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`` ##### `address` Data type: `Optional[Stdlib::Host]` The host's address v4. Default value: ``undef`` ##### `address6` Data type: `Optional[Stdlib::Host]` The host's address v6. 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`` ##### `groups` Data type: `Optional[Array]` A list of host groups this host belongs to. 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 host 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 host 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 host 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 host 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 host's state changes or the host 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 host. Default value: ``undef`` ##### `notes_url` Data type: `Optional[String]` Url for notes for the host (for example, in notification commands). Default value: ``undef`` ##### `action_url` Data type: `Optional[String]` Url for actions for the host (for example, an external graphing tool). Default value: ``undef`` ##### `icon_image` Data type: `Optional[String]` Icon image for the host. Used by external interfaces only. Default value: ``undef`` ##### `icon_image_alt` Data type: `Optional[String]` Icon image description for the host. 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`` ##### `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` ### `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` ##### `display_name` Data type: `Optional[String]` A short description of the host group. Default value: ``undef`` ##### `groups` Data type: `Optional[Array]` An array of nested group names. Default value: ``undef`` ##### `assign` Data type: `Array` Assign host group members using the group rules. Default value: `[]` ##### `ignore` Data type: `Array` Ignore host group members using the group rules. 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` ##### `hostgroup_name` Data type: `String` Default value: `$title` +### `icinga2::object::icingaapplication` + +The icinga2::object::icingaapplication class. + +#### Parameters + +The following parameters are available in the `icinga2::object::icingaapplication` defined type. + +##### `environment` + +Data type: `Optional[String]` + +Specify the Icinga environment. This overrides the Environment constant +specified in the configuration or on the CLI with --define. + +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`` + +##### `order` + +Data type: `Variant[String, Integer]` + +String or integer to control the position in the target file, sorted alpha numeric. + +Default value: `5` + +##### `ensure` + +Data type: `Enum['absent', 'present']` + + + +Default value: `present` + +##### `app_name` + +Data type: `String` + + + +Default value: `$title` + +##### `enable_notifications` + +Data type: `Optional[Boolean]` + + + +Default value: ``undef`` + +##### `enable_event_handlers` + +Data type: `Optional[Boolean]` + + + +Default value: ``undef`` + +##### `enable_flapping` + +Data type: `Optional[Boolean]` + + + +Default value: ``undef`` + +##### `enable_host_checks` + +Data type: `Optional[Boolean]` + + + +Default value: ``undef`` + +##### `enable_service_checks` + +Data type: `Optional[Boolean]` + + + +Default value: ``undef`` + +##### `enable_perfdata` + +Data type: `Optional[Boolean]` + + + +Default value: ``undef`` + +##### `vars` + +Data type: `Optional[Icinga2::CustomAttributes]` + + + +Default value: ``undef`` + ### `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[Icinga2::Interval]` 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::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` ##### `servicegroup_name` Data type: `String` Set the Icinga 2 name of the servicegroup object. Default value: `$title` ##### `display_name` Data type: `Optional[String]` A short description of the service group. Default value: ``undef`` ##### `groups` Data type: `Optional[Array]` An array of nested group names. Default value: ``undef`` ##### `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: `[]` ##### `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` ### `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` ##### `timeperiod_name` Data type: `String` Set the Icinga 2 name of the timeperiod object. Default value: `$title` ##### `display_name` Data type: `Optional[String]` A short description of the time period. Default value: ``undef`` ##### `import` Data type: `Array` Sorted List of templates to include. Default value: `['legacy-timeperiod']` ##### `ranges` Data type: `Optional[Hash]` A dictionary containing information which days and durations apply to this timeperiod. Default value: ``undef`` ##### `prefer_includes` Data type: `Optional[Boolean]` Boolean whether to prefer timeperiods includes or excludes. Default value: ``undef`` ##### `excludes` Data type: `Optional[Array]` An array of timeperiods, which should exclude from your timerange. Default value: ``undef`` ##### `includes` Data type: `Optional[Array]` An array of timeperiods, which should include into your timerange Default value: ``undef`` ##### `template` Data type: `Boolean` Set to true creates a template instead of an object. 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` ### `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` ##### `user_name` Data type: `String` Set the Icinga 2 name of the user object. Default value: `$title` ##### `display_name` Data type: `Optional[String]` A short description of the user. Default value: ``undef`` ##### `email` Data type: `Optional[String]` An email string for this user. Useful for notification commands. Default value: ``undef`` ##### `pager` Data type: `Optional[String]` A pager string for this user. Useful for notification commands. 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`` ##### `groups` Data type: `Optional[Array]` An array of group names. Default value: ``undef`` ##### `enable_notifications` Data type: `Optional[Boolean]` Whether notifications are enabled for this user. 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`` ##### `types` Data type: `Optional[Array]` A set of type filters when this notification should be triggered. everything is matched. Default value: ``undef`` ##### `states` Data type: `Optional[Array]` A set of state filters when this notification should be triggered. 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: `75` ### `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` ##### `usergroup_name` Data type: `String` Set the Icinga 2 name of the usergroup object. Default value: `$title` ##### `display_name` Data type: `Optional[String]` A short description of the service group. Default value: ``undef`` ##### `groups` Data type: `Array` An array of nested group names. Default value: `[]` ##### `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: `[]` ##### `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` ### `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` ##### `zone_name` Data type: `String` Set the Icinga 2 name of the zone object. Default value: `$title` ##### `endpoints` Data type: `Optional[Array]` List of endpoints belong to this zone. Default value: `[]` ##### `parent` Data type: `Optional[String]` Parent zone to this zone. 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`` ##### `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`` ##### `order` Data type: `Variant[String, Integer]` String or integer to control the position in the target file, sorted alpha numeric. Default value: `45` ## Functions ### `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` Type: Ruby 4.x API ----- original file header ---- +Summarise what the function does here -#### `icinga2::icinga2_ticket_id(Any *$args)` +#### `icinga2::icinga2_ticket_id(String $cn, Variant[String, Sensitive[String]] $salt)` ----- original file header ---- +The icinga2::icinga2_ticket_id function. -Returns: `Data type` Describe what the function returns here +Returns: `String` Calculated ticket to receive a certificate. -##### `*args` +##### `cn` -Data type: `Any` +Data type: `String` -The original array of arguments. Port this to individually managed params -to get the full benefit of the modern function API. +The common name of the Icinga host certificate. + +##### `salt` + +Data type: `Variant[String, Sensitive[String]]` + +The ticket salt of the Icinga CA. ### `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` 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::BasicAuth` + +A strict type for basic authentication + +Alias of `Struct[{ + 'username' => String, + 'password' => Variant[String, Sensitive[String]], +}]` + ### `Icinga2::CustomAttributes` A type for the structure of custom attributes Alias of `Optional[Variant[String, Array[Variant[String, Hash]], Hash]]` ### `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-9a-fA-F]{2}$/]` +### `Icinga2::IdoCleanup` + +A type for the structure of settings to cleanup IDO databases + +Alias of `Hash[Enum[ + 'acknowledgements_age', + 'commenthistory_age', + 'contactnotifications_age', + 'contactnotificationmethods_age', + 'downtimehistory_age', + 'eventhandlers_age', + 'externalcommands_age', + 'flappinghistory_age', + 'hostchecks_age', + 'logentries_age', + 'notifications_age', + 'processevents_age', + 'statehistory_age', + 'servicechecks_age', + 'systemcommands_age', + ], String]` + ### `Icinga2::Interval` A strict type for intervals Alias of `Variant[Integer, Pattern[/^\d+\.?\d*[d|h|m|s]?$/]]` ### `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]$/]]` +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` A strict type for log levels Alias of `Enum['debug', 'information', 'notice', 'warning', 'critical']` diff --git a/manifests/feature/idomysql.pp b/manifests/feature/idomysql.pp index d57dee7..a70bba0 100644 --- a/manifests/feature/idomysql.pp +++ b/manifests/feature/idomysql.pp @@ -1,343 +1,343 @@ # @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 [Variant[String, Sensitive[String]] password +# @param [Variant[String, Sensitive[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[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[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[Icinga2::IdoCleanup]] 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( Variant[String, Sensitive[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[Icinga2::IdoCleanup] $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 = $::facts['os']['family'] ? { 'windows' => undef, default => '0600', } $_notify = $ensure ? { 'present' => Class['::icinga2::service'], default => undef, } $_password = if $password =~ Sensitive { $password } else { Sensitive($password) } # 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 = $::facts['os']['family'] ? { 'windows' => regsubst($ssl_key, '\n', "\r\n", 'EMG'), default => $ssl_key, } file { $_ssl_key_path: ensure => file, mode => $_ssl_key_mode, content => $ssl_key, show_diff => false, 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 = $::facts['os']['family'] ? { '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 = $::facts['os']['family'] ? { '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 { if $enable_ssl { $_ssl_options = join(any2array(delete_undef_values({ '--ssl' => '', '--ssl-ca' => $_ssl_cacert_path, '--ssl-cert' => $_ssl_cert_path, '--ssl-key' => $_ssl_key_path, '--ssl-capath' => $ssl_capath, '--ssl-cipher' => $ssl_cipher, })), ' ') } else { $_ssl_options = '' } # set cli options for mysql connection via tls $_mysql_command = "mysql ${_mysql_options} -p'${_password.unwrap}' ${_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.unwrap}' ${database}" } $attrs_ssl = { enable_ssl => $enable_ssl } } $attrs = { host => $host, port => $port, socket_path => $socket_path, user => $user, password => $_password, 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 $::facts['os']['family'] == '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 => $::facts['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/idopgsql.pp b/manifests/feature/idopgsql.pp index 2a6929e..cf866bc 100644 --- a/manifests/feature/idopgsql.pp +++ b/manifests/feature/idopgsql.pp @@ -1,296 +1,295 @@ # @summary # Installs and configures the Icinga 2 feature ido-pgsql. # # @example 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. # include icinga2 # include postgresql::server # # postgresql::server::db { 'icinga2': # user => 'icinga2', # password => postgresql::postgresql_password('icinga2', 'supersecret'), # } # # class{ 'icinga2::feature::idopgsql': # user => 'icinga2', # password => 'supersecret', # database => 'icinga2', # import_schema => true, # require => Postgresql::Server::Db['icinga2'] # } # # @param [Enum['absent', 'present']] ensure # Set to present enables the feature ido-pgsql, absent disables it. # # @param [Stdlib::Host] host # PostgreSQL database host address. # # @param [Stdlib::Port::Unprivileged] port # PostgreSQL database port. # # @param [String] user # PostgreSQL database user with read/write permission to the icinga database. # -# @param Variant[[String, Sensitive[String]]] password +# @param [Variant[String, Sensitive[String]]] password # PostgreSQL database user's password. The password parameter isn't parsed anymore. # # @param [String] database # PostgreSQL database name. # -# @param [Optional[Enum[disable', 'allow', 'prefer', 'verify-full', 'varify-ca', 'require']]] ssl_mode +# @param [Optional[Enum['disable', 'allow', 'prefer', 'verify-full', 'verify-ca', 'require']]] ssl_mode # Enable SSL connection mode. # # @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 spicified ssl_key_path file. # # @param [Optional[Stdlib::Base64]] ssl_cert # The certificate in a base64 encoded string to store in spicified ssl_cert_path file. # # @param [Optional[Stdlib::Base64]] ssl_cacert # The CA root certificate in a base64 encoded string to store in spicified ssl_cacert_path file. # # @param [Optional[String]] table_prefix # PostgreSQL database table prefix. # # @param [Optional[String]] instance_name # Unique identifier for the local Icinga 2 instance. # # @param [Optional[String]] instance_description # Description of 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[Icinga2::IdoCleanup]] 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 PostgreSQL schema or not. # class icinga2::feature::idopgsql( Variant[String, Sensitive[String]] $password, Enum['absent', 'present'] $ensure = present, Stdlib::Host $host = 'localhost', Stdlib::Port::Unprivileged $port = 5432, String $user = 'icinga', String $database = 'icinga', - Optional[Enum[ - 'disable', 'allow', - 'prefer', 'verify-full', - 'verify-ca', 'require']] $ssl_mode = undef, + Optional[Enum['disable', 'allow', + 'prefer', 'verify-full', + 'verify-ca', 'require']] $ssl_mode = 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, 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[Icinga2::IdoCleanup] $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_pgsql_package_name = $::icinga2::globals::ido_pgsql_package_name $ido_pgsql_schema = $::icinga2::globals::ido_pgsql_schema $manage_package = $::icinga2::manage_package $manage_packages = $::icinga2::manage_packages $_notify = $ensure ? { 'present' => Class['::icinga2::service'], default => undef, } $_ssl_key_mode = $::facts['os']['family'] ? { 'windows' => undef, default => '0600', } $_password = if $password =~ Sensitive { $password } else { Sensitive($password) } File { owner => $owner, group => $group, } # Set defaults for certificate stuff if $ssl_key { if $ssl_key_path { $_ssl_key_path = $ssl_key_path } else { $_ssl_key_path = "${ssl_dir}/IdoPgsqlConnection_ido-pgsql.key" } $_ssl_key = $::facts['os']['family'] ? { 'windows' => regsubst($ssl_key, '\n', "\r\n", 'EMG'), default => $ssl_key, } file { $_ssl_key_path: ensure => file, mode => $_ssl_key_mode, content => $ssl_key, show_diff => false, 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}/IdoPgsqlConnection_ido-pgsql.crt" } $_ssl_cert = $::facts['os']['family'] ? { '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}/IdoPgsqlConnection_ido-pgsql_ca.crt" } $_ssl_cacert = $::facts['os']['family'] ? { '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 = { host => $host, port => $port, user => $user, password => $_password, database => $database, ssl_mode => $ssl_mode, ssl_key => $_ssl_key_path, ssl_cert => $_ssl_cert_path, ssl_ca => $_ssl_cacert_path, 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_pgsql_package_name and ($manage_package or $manage_packages) { if $::facts['os']['family'] == 'debian' { ensure_resources('file', { '/etc/dbconfig-common' => { ensure => directory, owner => 'root', group => 'root' } }) file { "/etc/dbconfig-common/${ido_pgsql_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_pgsql_package_name], } } # Debian package { $ido_pgsql_package_name: ensure => installed, before => Icinga2::Feature['ido-pgsql'], } } # import db schema if $import_schema { if $ido_pgsql_package_name and ($manage_package or $manage_packages) { Package[$ido_pgsql_package_name] -> Exec['idopgsql-import-schema'] } $_connection = regsubst(join(any2array(delete_undef_values({ 'host=' => $host, 'sslmode=' => $ssl_mode, 'sslcert=' => $_ssl_cert_path, 'sslkey=' => $_ssl_key_path, 'sslrootcert=' => $_ssl_cacert_path, 'user=' => $user, 'port=' => $port, 'dbname=' => $database, })), ' '), '= ', '=', 'G') exec { 'idopgsql-import-schema': user => 'root', path => $::facts['path'], environment => ["PGPASSWORD=${_password.unwrap}"], command => "psql '${_connection}' -w -f '${ido_pgsql_schema}'", unless => "psql '${_connection}' -w -c 'select version from icinga_dbversion'", } } # create object icinga2::object { 'icinga2::object::IdoPgsqlConnection::ido-pgsql': object_name => 'ido-pgsql', object_type => 'IdoPgsqlConnection', attrs => delete_undef_values($attrs), attrs_list => keys($attrs), target => "${conf_dir}/features-available/ido-pgsql.conf", order => 10, notify => $_notify, } # import library concat::fragment { 'icinga2::feature::ido-pgsql': target => "${conf_dir}/features-available/ido-pgsql.conf", content => "library \"db_ido_pgsql\"\n\n", order => '05', } icinga2::feature { 'ido-pgsql': ensure => $ensure, } } diff --git a/manifests/object/apiuser.pp b/manifests/object/apiuser.pp index d2aef4c..09e6c13 100644 --- a/manifests/object/apiuser.pp +++ b/manifests/object/apiuser.pp @@ -1,95 +1,95 @@ # @summary # Manage Icinga 2 ApiUser objects. # # @example Create an user with full permissions: # ::icinga2::object::apiuser { 'director': # ensure => present, # password => 'Eih5Weefoo2oa8sh', # permissions => [ '*' ], # target => '/etc/icinga2/conf.d/api-users.conf', # } # # @example Create an user with restricted permissions for Icinga Web 2: # ::icinga2::object::apiuser { 'icingaweb2': # ensure => present, # password => '12e2ef553068b519', # permissions => [ 'status/query', 'actions/*', 'objects/modify/*', 'objects/query/*' ], # target => '/etc/icinga2/conf.d/api-users.conf', # } # # @example Create user who's only allowed to query hosts and services: # ::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', # } # # @param [Enum['absent', 'present']] ensure # Set to present enables the object, absent disables it. # # @param [String] apiuser_name # Set the name of the apiuser object. # -# @param [Optional[Variant[Stringi, Sensitive[String]]]] password +# @param [Optional[Variant[String, Sensitive[String]]]] password # Password string. The password parameter isn't parsed anymore. # # @param [Optional[String]] client_cn # Optional. Client Common Name (CN). # # @param [Optional[Array]] permissions # Array of permissions. Either as string or dictionary with the keys permission # and filter. The latter must be specified as function. # # @param [Stdlib::Absolutepath] target # Destination config file to store in this object. File will be declared at the # first time. # # @param [Variant[String, Integer]] order # String or integer to set the position in the target file, sorted alpha numeric. # define icinga2::object::apiuser( Stdlib::Absolutepath $target, Enum['absent', 'present'] $ensure = present, String $apiuser_name = $title, Optional[Array] $permissions = undef, Optional[Variant[String, Sensitive[String]]] $password = undef, Optional[String] $client_cn = undef, Variant[String, Integer] $order = 30, ) { $_password = if $password =~ String { Sensitive($password) } elsif $password =~ Sensitive { $password } else { undef } # compose the attributes $attrs = { password => $_password, client_cn => $client_cn, permissions => $permissions, } # create object icinga2::object { "icinga2::object::ApiUser::${title}": ensure => $ensure, object_name => $apiuser_name, object_type => 'ApiUser', attrs => delete_undef_values($attrs), attrs_list => keys($attrs), target => $target, order => $order, } } diff --git a/metadata.json b/metadata.json index 73fdc56..3b5d1dd 100644 --- a/metadata.json +++ b/metadata.json @@ -1,107 +1,106 @@ { "name": "icinga-icinga2", - "version": "3.1.3", + "version": "3.2.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" + "version_requirement": ">= 5.0.0 < 9.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": [ "31", "32", "33", "34" ] }, { "operatingsystem": "Debian", "operatingsystemrelease": [ "8", "9", "10" ] }, { "operatingsystem": "Ubuntu", "operatingsystemrelease": [ "16.04", "18.04", "20.04" ] }, { "operatingsystem": "SLES", "operatingsystemrelease": [ "12", "15" ] }, { "operatingsystem": "FreeBSD", "operatingsystemrelease": [ "11", "12", "13" ] } ], "requirements": [ { "name": "puppet", "version_requirement": ">= 4.10.0 < 8.0.0" } ], "tags": [ "monitoring" ], "pdk-version": "2.2.0", "template-url": "pdk-default#2.2.0", "template-ref": "tags/2.2.0-0-g2381db6" }