Skip to content

Automated Dependency Updates for Puppet

Renovate supports updating Puppet dependencies.

File Matching

By default, Renovate will check any files matching the following regular expression: (^|\/)Puppetfile$.

For details on how to extend a manager's fileMatch value, please follow this link.

Supported datasources

This manager supports extracting the following datasources: puppet-forge, github-tags, git-tags.

Default config

{
  "fileMatch": [
    "(^|\\/)Puppetfile$"
  ]
}

Additional Information

simply keeps Puppetfiles updated

How It Works

  1. Renovate searches in each repository for any Puppetfile files
  2. Existing dependencies are extracted from the relevant sections of the file
  3. Renovate resolves the dependency on the provided forges (or uses https://forgeapi.puppetlabs.com as default)
  4. A PR is created with Puppetfile updated in the same commit
  5. If the source repository has either a "changelog" file or uses GitHub releases, then Release Notes for each version will be embedded in the generated PR

supported Puppetfile formats

the manager extracts the deps from one Puppetfile

the Puppetfile supports at the moment different ways to configure forges

  1. no forge defined
mod 'puppetlabs/apt', '8.3.0'
mod 'puppetlabs/apache', '7.0.0'
  1. one forge defined: forge "https://forgeapi.puppetlabs.com"
forge "https://forgeapi.puppetlabs.com"

mod 'puppetlabs/apt', '8.3.0'
mod 'puppetlabs/apache', '7.0.0'
mod 'puppetlabs/concat', '7.1.1'
  1. multiple forges defined
forge "https://forgeapi.puppetlabs.com"

mod 'puppetlabs/apt', '8.3.0'
mod 'puppetlabs/apache', '7.0.0'
mod 'puppetlabs/concat', '7.1.1'

# private forge
forge "https://forgeapi.example.com"

mod 'example/infra', '3.3.0'
  1. github based version
# tag based
mod 'example/standalone_jar',
   :git => 'git@gitlab.example.de:puppet/example-standalone_jar',
   :tag => '0.9.0'
  1. git based version
# tag based
mod 'stdlib',
 :git => 'git@gitlab.com:example/project_stdlib.git',
 :tag => '5.0.0'

possible improvements

further git-support

usually you can add the versions to a forge and use the already provided way of updating

# branch based
mod 'example/samba',
    :git    => 'https://github.com/example/puppet-samba',
    :branch => 'stable_version'
# ref based
mod 'example/samba',
    :git => 'https://github.com/example/puppet-samba',
    :ref => 'stable_version'