Skip to content

Automated Dependency Updates for Puppet

Categories: iac, ruby

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

Renovate can update Puppetfiles.

How it works

Renovate:

  1. Searches each repository for any Puppetfile files
  2. Extracts dependencies from the relevant sections of the Puppetfile
  3. Resolves the dependency on the default forge: https://forgeapi.puppetlabs.com, or on a user-defined forge
  4. Creates a PR that updates the Puppetfile

Finally, if the source repository has a "changelog" file or uses GitHub releases, then Renovate puts the changelogs for each version in its PR.

Supported Puppetfile formats

The puppet manager extracts the dependencies from one Puppetfile. You can define a forge in your puppetfile in these ways:

  • No forge
  • One forge
  • Multiple forges
  • GitHub-based forge
  • Git-based forge

For example:

No forge
mod 'puppetlabs/apt', '8.3.0'
mod 'puppetlabs/apache', '7.0.0'
One forge
forge "https://forgeapi.puppetlabs.com"

mod 'puppetlabs/apt', '8.3.0'
mod 'puppetlabs/apache', '7.0.0'
mod 'puppetlabs/concat', '7.1.1'
Multiple forges
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'
GitHub-based forge, tag based
mod 'example/standalone_jar',
    :git => 'git@gitlab.example.de:puppet/example-standalone_jar',
    :tag => '0.9.0'
Git-based forge, tag based
mod 'stdlib',
    :git => 'git@gitlab.com:example/project_stdlib.git',
    :tag => '5.0.0'
Git-based forge, branch based
mod 'example/samba',
    :git    => 'https://github.com/example/puppet-samba',
    :branch => 'stable_version'
Git-based forge, ref based
mod 'example/samba',
    :git => 'https://github.com/example/puppet-samba',
    :ref => 'stable_version'