summaryrefslogtreecommitdiff
path: root/README.markdown
blob: 027c2d25887820913c7f96cd51ed2686b94dd990 (plain)
1
2
3
4
5
6
7
8
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
# Puppet Labs Standard Library #

This module provides a "standard library" of resources for developing Puppet
Modules.  This modules will include the following additions to Puppet

 * Stages
 * Facts
 * Functions
 * Defined resource types
 * Types
 * Providers

This module is officially curated and provided by Puppet Labs.  The modules
Puppet Labs writes and distributes will make heavy use of this standard
library.

# Versions #

This module follows semver.org (v1.0.0) versioning guidelines.  The standard
library module is released as part of [Puppet
Enterprise](http://puppetlabs.com/puppet/puppet-enterprise/) and as a result
older versions of Puppet Enterprise that Puppet Labs still supports will have
bugfix maintenance branches periodically "merged up" into master.  The current
list of integration branches are:

 * v2.1.x (v2.1.1 released in PE 1.2, 1.2.1, 1.2.3, 1.2.4)
 * v2.2.x (Never released as part of PE, only to the Forge)
 * v2.3.x (Scheduled for next PE feature release)
 * master (mainline development branch)

The first Puppet Enterprise version including the stdlib module is Puppet
Enterprise 1.2.

# Compatibility #

## stdlib v2.1.x, v2.2.x ##

v2.1.x and v2.2.x of this module are designed to work with Puppet versions
2.6.x and 2.7.x.  There are currently no plans for a Puppet 0.25 standard
library module.

## stdlib v2.3.x ##

While not yet released, the standard library may only work with Puppet 2.7.x.

# Functions #

  Please see `puppet doc -r function` for documentation on each function.  The
  current list of functions is:

 * getvar
 * has\_key
 * loadyaml
 * merge.rb
 * validate\_array
 * validate\_bool
 * validate\_hash
 * validate\_re
 * validate\_string

## validate\_hash ##

    $somehash = { 'one' => 'two' }
    validate\_hash($somehash)

## getvar() ##

This function aims to look up variables in user-defined namespaces within
puppet.  Note, if the namespace is a class, it should already be evaluated
before the function is used.

    $namespace = 'site::data'
    include "${namespace}"
    $myvar = getvar("${namespace}::myvar")

## Facts ##

Facts in `/etc/facter/facts.d` and `/etc/puppetlabs/facter/facts.d` are now loaded
automatically.  This is a direct copy of R.I. Pienaar's custom facter fact
located at:
[https://github.com/ripienaar/facter-facts/tree/master/facts-dot-d](https://github.com/ripienaar/facter-facts/tree/master/facts-dot-d)

stdlib releases beyond 2.x will not include external fact support using
facts-dot-d.  Instead, these versions of stdlib require Facter 2.0 which
includes external fact support in the main Facter codebase.

Please see [2157](http://projects.puppetlabs.com/issues/2157) for more
information.