Puppet Class: dovecot

Defined in:
manifests/init.pp

Summary

Fully manages dovecot.

Overview

Class: dovecot

This module fully manages dovecot in every respect.

Examples:

Minimum configuration, sufficient for vendor-specified defaults

---
classes:
  - dovecot

Parameters:

  • config_file_attributes (Hash[String[4], Any])

    Puppet attributes to apply to all dovecot configuration files, per: docs.puppet.com/puppet/latest/types/file.html#file-attributes. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • config_file_path (String[3])

    Directory where all dovecot configuration files are managed. A conf.d subdirectory is implied and will be handled identically to this directory. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • config_file_path_attributes (Hash[String[4], Any])

    Puppet attributes applied to config_file_path and its implied conf.d subdirectory. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • config_files (Optional[Hash[ String[2], Hash[ String[2], Any ]]]) (defaults to: undef)

    Set of all configuration files found in the conf.d subdirectory of config_file_path and their entire contents. The structure of this Hash is as follows:
      FILENAME:
        SIMPLE_KEY: SIMPLE_VALUE
        REPEATING_KEY:
          - SIMPLE_VALUE
          - SIMPLE_VALUE_N
        SECTION_NAME:
          Any set of SECTION_KEY, REPEATING_KEY, and nested SECTION_NAME
      …
    You can wholly remove any existing key and its entire value using the knock-out prefix, config_hash_key_knockout_prefix, even if you don't specify a lookup_options:dovecot::config_files:merge:knockout_prefix to enable knocking out values and array elements. The default value fully comprises all vendor-supplied configuration files, without comments, and is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • config_hash_key_knockout_prefix (String)

    String of characters which, when present as a prefix to any supporting Hash key, will cause that entire key and its value to be removed from the resulting rendered configuration file. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • master_config (Hash[String[1], Any])

    Entire content of the primary dovecot.conf file expressed as a Hash with structure:
      SIMPLE_KEY: SIMPLE_VALUE
      REPEATING_KEY:
        - SIMPLE_VALUE
        - SIMPLE_VALUE_N
      SECTION_NAME:
        Any set of SECTION_KEY, REPEATING_KEY, and nested SECTION_NAME
      …
    You can wholly remove any existing key and its entire value using the knock-out prefix, config_hash_key_knockout_prefix, even if you don't specify a lookup_options:dovecot::master_config:merge:knockout_prefix. The default value fully comprises the vendor-supplied configuration for this file, without comments, and is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • package_ensure (String[1])

    Precise version number of the primary dovecot package to install (and lock-in, blocking up/downgrades) or any Puppet token value to more generically control the installed package version or to uninstall dovecot, optionally purging all dovecot configuration files. By default, this package is merely installed without any up/downgrade management.

  • package_name (String[2])

    Name of the primary dovecot package to manage, per your operating system and distribution. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • plugin_packages (Optional[Hash[ Pattern[/^dovecot-[a-z]+$/], Struct[{ Optional['ensure'] => String[1], Optional['provider'] => String[1], Optional['source'] => String[1], }]]]) (defaults to: undef)

    Set of dovecot plugin packages to manage. The structure of this Hash is as follows ([square-bracketed] keys are optional):
      PACKAGE_NAME:
        [ensure]: docs.puppet.com/puppet/latest/types/package.html#package-attribute-ensure
        [provider]: docs.puppet.com/puppet/latest/types/package.html#package-attribute-provider
        [source]: docs.puppet.com/puppet/latest/types/package.html#package-attribute-source
      …
    No plugin packages are installed, by default. Merely supplying a set of PACKAGE_NAME keys with empty Hash bodies ({}) is sufficient to ensure each named plugin package is installed, though they will not be otherwise managed.

  • purge_config_file_path (Boolean)

    Indicates whether to ensure that only Puppet- managed configuration files exist in config_file_path. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • service_enable (Boolean)

    Indicates whether the dovecot service will self-start on node restart. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • service_ensure (Enum['running', 'stopped'])

    One of running (dovecot service is kept on) or stopped (dovecot service is kept off). Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • service_managed (Boolean)

    Indicates whether Puppet will manage the dovecot service. All other service_* parameters are ignored when this is disabled. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.

  • service_name (String[2])

    Name of the service to manage when service_managed is enabled. Default is found in the data directory of this module's source and is applied per this module's hiera.yaml.



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'manifests/init.pp', line 99

class dovecot(
  Hash[String[4], Any]        $config_file_attributes,
  String[3]                   $config_file_path,
  Hash[String[4], Any]        $config_file_path_attributes,
  String                      $config_hash_key_knockout_prefix,
  Hash[String[1], Any]        $master_config,
  String[1]                   $package_ensure,
  String[2]                   $package_name,
  Boolean                     $purge_config_file_path,
  Boolean                     $service_enable,
  Enum['running', 'stopped']  $service_ensure,
  Boolean                     $service_managed,
  String[2]                   $service_name,
  Optional[Hash[
    String[2],
    Hash[
      String[2],
      Any
  ]]]                         $config_files    = undef,
  Optional[Hash[
    Pattern[/^dovecot-[a-z]+$/],
    Struct[{
      Optional['ensure']   => String[1],
      Optional['provider'] => String[1],
      Optional['source']   => String[1],
  }]]]                        $plugin_packages = undef,
) {
  class { '::dovecot::package': }
  -> class { '::dovecot::config': }
  ~> class { '::dovecot::service': }
  -> Class['dovecot']
}