Defined Type: postgresql::server::config_entry

Defined in:
manifests/server/config_entry.pp

Summary

Manage a postgresql.conf entry.

Overview

Parameters:

  • ensure (Enum['present', 'absent']) (defaults to: 'present')

    Removes an entry if set to ‘absent’.

  • key (String[1]) (defaults to: $name)

    Defines the key/name for the setting. Defaults to $name

  • value (Optional[Variant[String[1], Numeric, Array[String[1]]]]) (defaults to: undef)

    Defines the value for the setting.

  • path (Stdlib::Absolutepath) (defaults to: $postgresql::server::postgresql_conf_path)

    Path for postgresql.conf

  • comment (Optional[String[1]]) (defaults to: undef)

    Defines the comment for the setting. The # is added by default.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'manifests/server/config_entry.pp', line 9

define postgresql::server::config_entry (
  Enum['present', 'absent']                               $ensure  = 'present',
  String[1]                                               $key     = $name,
  Optional[Variant[String[1], Numeric, Array[String[1]]]] $value   = undef,
  Stdlib::Absolutepath                                    $path    = $postgresql::server::postgresql_conf_path,
  Optional[String[1]]                                     $comment = undef,
) {
  # Those are the variables that are marked as "(change requires restart)"
  # on postgresql.conf.  Items are ordered as on postgresql.conf.
  #
  # XXX: This resource supports setting other variables without knowing
  # their names.  Do not add them here.
  $requires_restart_until = {
    'data_directory'                      => undef,
    'hba_file'                            => undef,
    'ident_file'                          => undef,
    'external_pid_file'                   => undef,
    'listen_addresses'                    => undef,
    'port'                                => undef,
    'max_connections'                     => undef,
    'superuser_reserved_connections'      => undef,
    'unix_socket_directory'               => '9.3',   # Turned into "unix_socket_directories"
    'unix_socket_directories'             => undef,
    'unix_socket_group'                   => undef,
    'unix_socket_permissions'             => undef,
    'bonjour'                             => undef,
    'bonjour_name'                        => undef,
    'ssl'                                 => '10',
    'ssl_ciphers'                         => '10',
    'ssl_prefer_server_ciphers'           => '10',    # New on 9.4
    'ssl_ecdh_curve'                      => '10',    # New on 9.4
    'ssl_cert_file'                       => '10',    # New on 9.2
    'ssl_key_file'                        => '10',    # New on 9.2
    'ssl_ca_file'                         => '10',    # New on 9.2
    'ssl_crl_file'                        => '10',    # New on 9.2
    'shared_buffers'                      => undef,
    'huge_pages'                          => undef,   # New on 9.4
    'max_prepared_transactions'           => undef,
    'max_files_per_process'               => undef,
    'shared_preload_libraries'            => undef,
    'max_worker_processes'                => undef,   # New on 9.4
    'old_snapshot_threshold'              => undef,   # New on 9.6
    'wal_level'                           => undef,
    'wal_log_hints'                       => undef,   # New on 9.4
    'wal_buffers'                         => undef,
    'archive_mode'                        => undef,
    'max_wal_senders'                     => undef,
    'max_replication_slots'               => undef,   # New on 9.4
    'track_commit_timestamp'              => undef,   # New on 9.5
    'hot_standby'                         => undef,
    'logging_collector'                   => undef,
    'cluster_name'                        => undef,   # New on 9.5
    'silent_mode'                         => '9.2',   # Removed
    'track_activity_query_size'           => undef,
    'autovacuum_max_workers'              => undef,
    'autovacuum_freeze_max_age'           => undef,
    'autovacuum_multixact_freeze_max_age' => undef,   # New on 9.5
    'max_locks_per_transaction'           => undef,
    'max_pred_locks_per_transaction'      => undef,
  }

  if ! ($key in $requires_restart_until and (
      ! $requires_restart_until[$key] or
      versioncmp($postgresql::server::_version, $requires_restart_until[$key]) < 0
  )) {
    Postgresql_conf {
      notify => Class['postgresql::server::reload'],
    }
  } elsif $postgresql::server::service_restart_on_change {
    Postgresql_conf {
      notify => Class['postgresql::server::service'],
    }
  } else {
    Postgresql_conf {
      before => Class['postgresql::server::service'],
    }
  }

  postgresql_conf { $name:
    ensure  => $ensure,
    target  => $path,
    key     => $key,
    value   => $value,
    comment => $comment,
    require => Class['postgresql::server::initdb'],
  }
}