Add actual postgresl module from puppetlabs
[mirror/dsa-puppet.git] / 3rdparty / modules / postgresql / manifests / init.pp
diff --git a/3rdparty/modules/postgresql/manifests/init.pp b/3rdparty/modules/postgresql/manifests/init.pp
new file mode 100644 (file)
index 0000000..974904d
--- /dev/null
@@ -0,0 +1,145 @@
+# == Class: postgresql
+#
+# This is a base class that can be used to modify catalog-wide settings relating
+# to the various types in class contained in the postgresql module.
+#
+# If you don't declare this class in your catalog, sensible defaults will
+# be used.  However, if you choose to declare it, it needs to appear *before*
+# any other types or classes from the postgresql module.
+#
+# For examples, see the files in the `tests` directory; in particular,
+# `/server-yum-postgresql-org.pp`.
+#
+# === Parameters
+#
+# [*version*]
+#    The postgresql version to install.  If not specified, the
+#    module will use whatever version is the default for your
+#    OS distro.
+# [*manage_package_repo*]
+#    This determines whether or not the module should
+#    attempt to manage the postgres package repository for your
+#    distro.  Defaults to `false`, but if set to `true`, it can
+#    be used to set up the official postgres yum/apt package
+#    repositories for you.
+# [*package_source*]
+#    This setting is only used if `manage_package_repo` is
+#    set to `true`.  It determines which package repository should
+#    be used to install the postgres packages.  Currently supported
+#    values include `yum.postgresql.org`.
+# [*locale*]
+#    This setting defines the default locale for initdb and createdb
+#    commands. This default to 'undef' which is effectively 'C'.
+# [*charset*]
+#    Sets the default charset to be used for initdb and createdb.
+#    Defaults to 'UTF8'.
+# [*datadir*]
+#    This setting can be used to override the default postgresql
+#    data directory for the target platform. If not specified, the
+#    module will use whatever directory is the default for your
+#    OS distro.
+# [*confdir*]
+#    This setting can be used to override the default postgresql
+#    configuration directory for the target platform. If not
+#    specified, the module will use whatever directory is the
+#    default for your OS distro.
+# [*bindir*]
+#    This setting can be used to override the default postgresql
+#    binaries directory for the target platform. If not
+#    specified, the module will use whatever directory is the
+#    default for your OS distro.
+# [*client_package_name*]
+#    This setting can be used to override the default
+#    postgresql client package name. If not specified, the module
+#    will use whatever package name is the default for your
+#    OS distro.
+# [*server_package_name*]
+#    This setting can be used to override the default
+#    postgresql server package name. If not specified, the module
+#    will use whatever package name is the default for your
+#    OS distro.
+# [*contrib_package_name*]
+#    This setting can be used to override the default
+#    postgresql contrib package name. If not specified, the module
+#    will use whatever package name is the default for your
+#    OS distro.
+# [*devel_package_name*]
+#    This setting can be used to override the default
+#    postgresql devel package name. If not specified, the module
+#    will use whatever package name is the default for your
+#    OS distro.
+# [*java_package_name*]
+#    This setting can be used to override the default
+#    postgresql java package name. If not specified, the module
+#    will use whatever package name is the default for your
+#    OS distro.
+# [*service_name*]
+#    This setting can be used to override the default
+#    postgresql service name. If not specified, the module
+#    will use whatever service name is the default for your
+#    OS distro.
+# [*user*]
+#    This setting can be used to override the default
+#    postgresql super user and owner of postgresql related files
+#    in the file system. If not specified, the module will use
+#    the user name 'postgres'.
+# [*group*]
+#    This setting can be used to override the default
+#    postgresql user group to be used for related files
+#    in the file system. If not specified, the module will use
+#    the group name 'postgres'.
+# [*run_initdb*]
+#    This setting can be used to explicitly call the initdb
+#    operation after server package is installed and before
+#    the postgresql service is started. If not specified, the
+#    module will decide whether to call initdb or not depending
+#    on your OS distro.
+#
+# === Examples
+#
+#   class { 'postgresql':
+#     version               => '9.2',
+#     manage_package_repo   => true,
+#   }
+#
+#
+class postgresql (
+  $version              = $::postgres_default_version,
+  $manage_package_repo  = false,
+  $package_source       = undef,
+  $locale               = undef,
+  $charset              = 'UTF8',
+  $datadir              = undef,
+  $confdir              = undef,
+  $bindir               = undef,
+  $client_package_name  = undef,
+  $server_package_name  = undef,
+  $contrib_package_name = undef,
+  $devel_package_name   = undef,
+  $java_package_name    = undef,
+  $service_name         = undef,
+  $user                 = undef,
+  $group                = undef,
+  $run_initdb           = undef
+) {
+
+  class { 'postgresql::params':
+    version                     => $version,
+    manage_package_repo         => $manage_package_repo,
+    package_source              => $package_source,
+    locale                      => $locale,
+    charset                     => $charset,
+    custom_datadir              => $datadir,
+    custom_confdir              => $confdir,
+    custom_bindir               => $bindir,
+    custom_client_package_name  => $client_package_name,
+    custom_server_package_name  => $server_package_name,
+    custom_contrib_package_name => $contrib_package_name,
+    custom_devel_package_name   => $devel_package_name,
+    custom_java_package_name    => $java_package_name,
+    custom_service_name         => $service_name,
+    custom_user                 => $user,
+    custom_group                => $group,
+    run_initdb                  => $run_initdb,
+  }
+}