Puppet Enterprise 2017.3

Puppet supports two formats for configuration files that configure settings: valid JSON and Human-Optimized Config Object Notation (HOCON), a JSON superset.

For more information about HOCON itself, see the HOCON documentation.

Configuration file syntax

Refer to these examples when you're writing configuration files to identify correct JSON or HOCON syntax.

Brackets

In HOCON, you can omit the brackets ( { } ) around a root object.

JSON exampleHOCON example
{
   "authorization": {
    	"version": 1
    }
}
"authorization": {
    "version": 1
}

Quotes

In HOCON, double quotes around key and value strings are optional in most cases. However, double quotes are required if the string contains the characters *^+:, or =.
JSON exampleHOCON example
"authorization": {
    "version": 1
}
authorization: {
    version: 1
}

Commas

When writing a map or array in HOCON, you can use a new line instead of a comma.
JSON exampleHOCON example
Map
rbac: {
 password-reset-expiration: 24,
 session-timeout: 60,
 failed-attempts-lockout: 10,
}
rbac: {
 password-reset-expiration: 24
 session-timeout: 60
 failed-attempts-lockout: 10
}
Array
http-client: {
    ssl-protocols: [TLSv1, TLSv1.1, TLSv1.2]
}
http-client: {
    ssl-protocols: [
    TLSv1
    TLSv1.1
    TLSv1.2
    ]
}

Comments

Add comments using either // or #. Inline comments are supported.
HOCON example
authorization: {
    version: 1
    rules: [
        {
            # Allow nodes to retrieve their own catalog
            match-request: {
                path: "^/puppet/v3/catalog/([^/]+)$"
                type: regex
                method: [get, post]
            }
        }
    ]
}
Back to top