Skip to content

Commit

Permalink
Release version 3.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
lbetz committed Mar 10, 2023
1 parent 1e4212f commit 4690b6a
Show file tree
Hide file tree
Showing 6 changed files with 164 additions and 22 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Change Log

## [v3.8.0](https://github.com/icinga/puppet-icingaweb2/tree/v3.8.0) (2023-03-10)
[Full Changelog](https://github.com/icinga/puppet-icingaweb2/compare/v3.7.3...v3.8.0)

**Implemented enhancements:**

- Add new parameters to pdfexport class [\#355](https://github.com/Icinga/puppet-icingaweb2/pull/355) ([lbetz](https://github.com/lbetz))
- Add global parameter to prevent overwriting roles.ini [\#354](https://github.com/Icinga/puppet-icingaweb2/pull/354) ([lbetz](https://github.com/lbetz))
- Add parameter for group backends to class icingaweb2 for access controll [\#353](https://github.com/Icinga/puppet-icingaweb2/pull/353) ([lbetz](https://github.com/lbetz))
- Add parameter for user backends to class icingaweb2 for access controll [\#352](https://github.com/Icinga/puppet-icingaweb2/pull/352) ([lbetz](https://github.com/lbetz))
- Add parameter for additinal resources to class icingaweb2 [\#351](https://github.com/Icinga/puppet-icingaweb2/pull/351) ([lbetz](https://github.com/lbetz))

## [v3.7.3](https://github.com/icinga/puppet-icingaweb2/tree/v3.7.3) (2023-03-05)
[Full Changelog](https://github.com/icinga/puppet-icingaweb2/compare/v3.7.2...v3.7.3)

Expand Down
166 changes: 147 additions & 19 deletions REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ with or without TLS information.

### <a name="icingaweb2"></a>`icingaweb2`

Installs and configures Icinga Web 2.
`oracle`, `mssql`, `ibm`, `oci`, `sqlite` goes to `icingaweb2::resource::database`.

#### Examples

Expand All @@ -97,19 +97,19 @@ include ::mysql::server
mysql::db { 'icingaweb2':
user => 'icingaweb2',
password => 'supersecret',
password => Sensitive('supersecret'),
host => 'localhost',
grant => [ 'ALL' ],
}
class {'icingaweb2':
class { 'icingaweb2':
manage_repos => true,
import_schema => true,
db_type => 'mysql',
db_host => 'localhost',
db_port => 3306,
db_username => 'icingaweb2',
db_password => 'supersecret',
db_password => Sensitive('supersecret'),
require => Mysql::Db['icingaweb2'],
}
```
Expand All @@ -121,10 +121,10 @@ include ::postgresql::server
postgresql::server::db { 'icingaweb2':
user => 'icingaweb2',
password => postgresql_password('icingaweb2', 'icingaweb2'),
password => postgresql_password('icingaweb2', Sensitive('icingaweb2')),
}
class {'icingaweb2':
class { 'icingaweb2':
manage_repos => true,
import_schema => true,
db_type => 'pgsql',
Expand All @@ -136,6 +136,45 @@ class {'icingaweb2':
}
```

##### Icinga Web 2 with an additional resource of type `ldap`, e.g. for authentication:

```puppet
class { 'icingaweb2':
resources => {
'my-ldap' => {
type => 'ldap',
host => 'localhost',
port => 389,
root_dn => 'ou=users,dc=icinga,dc=com',
bind_dn => 'cn=icingaweb2,ou=users,dc=icinga,dc=com',
bind_pw => Sensitive('supersecret'),
}
},
user_backends => {
'ldap-auth' => {
backend => 'ldap',
resource => 'my-ldap',
ldap_user_class => 'user',
ldap_filter => '(memberof:1.2.840.113556.1.4.1941:=CN=monitoring,OU=groups,DC=icinga,DC=com)',
ldap_user_name_attribute => 'userPrincipalName',
order => '05',
},
},
group_backends => {
'ldap-auth' => {
backend => 'ldap',
resource => 'my-ldap',
ldap_group_class => 'group',
ldap_group_name_attribute => 'cn',
ldap_group_member_attribute => 'member',
ldap_base_dn => 'ou=groups,dc=icinga,dc=com',
domain => 'icinga.com',
order => '05',
},
},
}
```

#### Parameters

The following parameters are available in the `icingaweb2` class:
Expand Down Expand Up @@ -178,6 +217,9 @@ The following parameters are available in the `icingaweb2` class:
* [`admin_role`](#admin_role)
* [`default_admin_username`](#default_admin_username)
* [`default_admin_password`](#default_admin_password)
* [`resources`](#resources)
* [`user_backends`](#user_backends)
* [`group_backends`](#group_backends)

##### <a name="logging"></a>`logging`

Expand Down Expand Up @@ -482,6 +524,31 @@ Data type: `Icingaweb2::Secret`
Default password for initial admin access. This parameter is only used
if `import_schema` is set to `true` and only during the import itself.

##### <a name="resources"></a>`resources`

Data type: `Hash[String, Hash[String, Any]]`

Additional resources. Option `type` has to be set as hash key. Type of `ldap`
declares a define resource of `icingaweb2::resource::ldap`, a type of `mysql`, `pgsql`,

Default value: `{}`

##### <a name="user_backends"></a>`user_backends`

Data type: `Hash[String, Hash[String, Any]]`

Additional user backends for access control. See `icingaweb2::config::authmethod`.

Default value: `{}`

##### <a name="group_backends"></a>`group_backends`

Data type: `Hash[String, Hash[String, Any]]`

Additional group backends for access control. See `icingaweb2::config::groupbackend`.

Default value: `{}`

### <a name="icingaweb2globals"></a>`icingaweb2::globals`

This class loads the default parameters by doing a hiera lookup.
Expand All @@ -495,6 +562,7 @@ The following parameters are available in the `icingaweb2::globals` class:
* [`package_name`](#package_name)
* [`conf_dir`](#conf_dir)
* [`data_dir`](#data_dir)
* [`role_replace`](#role_replace)
* [`comp_db_schema_dir`](#comp_db_schema_dir)
* [`default_module_path`](#default_module_path)
* [`mysql_db_schema`](#mysql_db_schema)
Expand All @@ -514,7 +582,7 @@ The following parameters are available in the `icingaweb2::globals` class:

Data type: `String`


Package to install.

##### <a name="conf_dir"></a>`conf_dir`

Expand All @@ -528,6 +596,12 @@ Data type: `Stdlib::Absolutepath`

Location of PHP data files.

##### <a name="role_replace"></a>`role_replace`

Data type: `Boolean`

Specifies whether to overwrite the roles.ini file if it already exists.

##### <a name="comp_db_schema_dir"></a>`comp_db_schema_dir`

Data type: `Stdlib::Absolutepath`
Expand Down Expand Up @@ -2607,6 +2681,9 @@ The following parameters are available in the `icingaweb2::module::pdfexport` cl
* [`install_method`](#install_method)
* [`package_name`](#package_name)
* [`chrome_binary`](#chrome_binary)
* [`force_temp_storage`](#force_temp_storage)
* [`remote_host`](#remote_host)
* [`remote_port`](#remote_port)

##### <a name="ensure"></a>`ensure`

Expand Down Expand Up @@ -2660,7 +2737,31 @@ Default value: `'icingaweb2-module-pdfexport'`

Data type: `Optional[Stdlib::Absolutepath]`

Path of the chrome or chromium binary.
Path of the chrome or Chrome/Chromium binary.

Default value: ``undef``

##### <a name="force_temp_storage"></a>`force_temp_storage`

Data type: `Optional[Boolean]`

Force using of local temp storage.

Default value: ``undef``

##### <a name="remote_host"></a>`remote_host`

Data type: `Optional[Stdlib::Host]`

Connect a remote running Chrome/Chromium.

Default value: ``undef``

##### <a name="remote_port"></a>`remote_port`

Data type: `Optional[Stdlib::Port]`

Port to connect the remote running Chrome/Chromium.

Default value: ``undef``

Expand Down Expand Up @@ -3588,8 +3689,6 @@ Data type: `Enum['external', 'ldap', 'msldap', 'db']`

Select between 'external', 'ldap', 'msldap' or 'db'. Each backend may require other settings.

Default value: ``undef``

##### <a name="resource"></a>`resource`

Data type: `Optional[String]`
Expand Down Expand Up @@ -3651,6 +3750,17 @@ Default value: `'01'`

Manage a dashboard.

#### Examples

##### Create a new Dashboard:

```puppet
icingaweb2::config::dashboard { 'icingaadmin-NewDashboard':
owner => 'icingaadmin',
dashboard => 'New Dashboard',
}
```

#### Parameters

The following parameters are available in the `icingaweb2::config::dashboard` defined type:
Expand All @@ -3676,6 +3786,22 @@ Manage a dashlet.

#### Examples

##### Create a new Dashboard with a Dashlet:

```puppet
icingaweb2::config::dashboard { 'icingaadmin-NewDashboard':
owner => 'icingaadmin',
dashboard => 'New Dashboard',
}
icingaweb2::config::dashlet { 'icingaadmin-NewDashboard':
owner => 'icingaadmin',
dashboard => 'New Dashboard',
dashlet => 'New Dashlet',
url => 'monitoring/list/hosts',
}
```

##### Add new Dashlet to an existing default dashboard:

```puppet
Expand Down Expand Up @@ -3782,16 +3908,12 @@ Data type: `Enum['db', 'ldap', 'msldap']`
Type of backend. Valide values are: `db`, `ldap` and `msldap`. Each backend supports different settings,
see the parameters for detailed information.

Default value: ``undef``

##### <a name="resource"></a>`resource`

Data type: `String`

The resource used to connect to the backend. The resource contains connection information.

Default value: ``undef``

##### <a name="ldap_user_backend"></a>`ldap_user_backend`

Data type: `Optional[String]`
Expand Down Expand Up @@ -4321,6 +4443,7 @@ The following parameters are available in the `icingaweb2::inisection` defined t
* [`section_name`](#section_name)
* [`settings`](#settings)
* [`order`](#order)
* [`replace`](#replace)

##### <a name="target"></a>`target`

Expand Down Expand Up @@ -4352,6 +4475,14 @@ Ordering of the INI section within a file. Defaults to `01`

Default value: `'01'`

##### <a name="replace"></a>`replace`

Data type: `Boolean`

Specifies whether to overwrite the destination file if it already exists.

Default value: ``true``

### <a name="icingaweb2module"></a>`icingaweb2::module`

Download, enable and configure Icinga Web 2 modules.
Expand Down Expand Up @@ -4523,8 +4654,6 @@ Data type: `Stdlib::Host`
Connect to the database on the given host. For using unix domain sockets, specify 'localhost' for
MySQL and the path to the unix domain socket and the directory for PostgreSQL.

Default value: ``undef``

##### <a name="port"></a>`port`

Data type: `Stdlib::Port`
Expand Down Expand Up @@ -4629,12 +4758,11 @@ Create and remove Icinga Web 2 resources. Resources may be referenced in other c

```puppet
icingaweb2::resource::ldap{ 'my-ldap':
type => 'ldap',
host => 'localhost',
port => 389,
root_dn => 'ou=users,dc=icinga,dc=com',
bind_dn => 'cn=icingaweb2,ou=users,dc=icinga,dc=com',
bind_pw => 'supersecret',
bind_pw => Sensitive('supersecret'),
}
```

Expand Down Expand Up @@ -4729,7 +4857,7 @@ This function returns a fail if the icingaweb2 class isn't declared.

The icingaweb2::assert_module function.

Returns: `Any`
Returns: `Any` none

### <a name="icingaweb2certfiles"></a>`icingaweb2::cert::files`

Expand Down
3 changes: 3 additions & 0 deletions functions/assert_module.pp
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# @summary
# This function returns a fail if the icingaweb2 class isn't declared.
#
# @return
# none
#
function icingaweb2::assert_module() {
unless defined(Class['icingaweb2']) {
fail('You must declare the icingaweb2 base class before using any icingaweb2 module class!')
Expand Down
2 changes: 1 addition & 1 deletion manifests/config/dashboard.pp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# @param dashboard
# Title of the dashboard.
#
# @examle Create a new Dashboard:
# @example Create a new Dashboard:
# icingaweb2::config::dashboard { 'icingaadmin-NewDashboard':
# owner => 'icingaadmin',
# dashboard => 'New Dashboard',
Expand Down
2 changes: 1 addition & 1 deletion manifests/config/dashlet.pp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# @param url
# URL of the dashlet.
#
# @examle Create a new Dashboard with a Dashlet:
# @example Create a new Dashboard with a Dashlet:
# icingaweb2::config::dashboard { 'icingaadmin-NewDashboard':
# owner => 'icingaadmin',
# dashboard => 'New Dashboard',
Expand Down
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "icinga-icingaweb2",
"version": "3.7.3",
"version": "3.8.0",
"author": "Icinga Team",
"summary": "Icinga Web 2 Puppet Module",
"license": "Apache-2.0",
Expand Down

0 comments on commit 4690b6a

Please sign in to comment.