New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

r10k-resolve

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

r10k-resolve

  • 0.0.2
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

R10k/Puppetfile Dependency Resolver

This tool takes a minimal Puppetfile.src as input and recursively resolves all the dependencies into a final Puppetfile that r10k or other tools can use to deploy your control repository.

This means that instead of listing every single Puppet module to be installed, you can instead just list the modules that you actually care about and will use directly. This has a few major benefits:

  • It keeps your environment clean by automatically uninstalling modules that are no longer needed to match dependency requirements. It's far easier to track a short list of actively used modules and keep it current.
  • It clarifies intent so that you or future maintainers know which modules are expected to be actively used. Combined with Dropsonde, to create module usage reports, it becomes much easier to clean up stale modules from your environment.
  • It provides a contract for your Puppet profile authors so they can know and trust which modules will be installed, even after future cleanups.

Note: if this pull request is merged and released, then it will obsolete this tool by incorporating the functionality into r10k itself.

Installation

This is distributed as a Ruby gem. Simply install it with

gem install r10k-resolve

Workflow

  1. Write Puppetfile.src that describes only the modules you intend to use.
  2. Run r10k-resolve from the same directory to generate the Puppetfile with all dependencies resolved.
    • You can also pass --source and --output arguments if you'd rather.
    • If you're not running the current version of Puppet, specify it with --puppet-version.
  3. Review the generated Puppetfile for quality and security purposes. This is optional, but highly recommended.
  4. Commit the Puppetfile and deploy your control repository, as fitting your standard workflow.

Example Puppetfile.src

mod 'dellemc-powerstore', '0.8.1'
mod 'puppetlabs-mysql', '13.1.0'
mod 'puppet-php', '8.1.1'

Example generated Puppetfile

mod 'dellemc-powerstore', '0.8.1'
mod 'puppetlabs-mysql', '13.1.0'
mod 'puppet-php', '8.1.1'

####### resolved dependencies #######
mod 'puppet-format', '1.0.0'
mod 'puppetlabs-stdlib', '8.5.0'
mod 'puppetlabs-apt', '8.5.0'
mod 'puppetlabs-inifile', '5.4.0'
mod 'puppet-zypprepo', '4.0.1'
mod 'puppet-archive', '6.1.0'
mod 'puppetlabs-concat', '7.3.0'

# Generated with r10k-resolve version 0.0.1

Limitations

Note that all dependencies will be satisfied from the Forge, no matter what the original source was. If you need a module version checked out from source control, you'll either need to add that to the source Puppetfile.src or update the generated Puppetfile to reflect this.

Disclaimer

This is not yet rigorously tested. Please validate the generated output and make sure it looks reasonable.

FAQs

Package last updated on 18 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc