Skip to content

betadots/puppet-dev-tools

This branch is 30 commits ahead of, 31 commits behind puppetlabs/puppet-dev-tools:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

56da1c2 · Jul 5, 2023
Apr 20, 2023
Jul 5, 2023
Feb 8, 2023
Apr 20, 2023
Jun 14, 2023
Apr 20, 2023
Jun 14, 2023
Jun 26, 2023
Jun 26, 2023
Apr 11, 2023
Jun 14, 2023
Apr 20, 2023
Apr 20, 2023
Apr 20, 2023
Mar 25, 2021

Puppet Dev Tools

Docker Tags

  • development: latest changes on the image, could be broken
  • v0.0.0: tag which is tested and stable
  • latest: tag alias on the last released version-tag

Running

You can use this container by running docker run --rm -v $(pwd):/repo ghcr.io/betadots/puppet-dev-tools:latest <command> where <command> is any of the ones listed below.

Supported Commands

  1. PDK - pdk

    • run docker run --rm ghcr.io/betadots/puppet-dev-tools:latest pdk --help to see builtin help
    • see the PDK command reference for details
  2. Onceover - onceover

    • run docker run --rm ghcr.io/betadots/puppet-dev-tools:latest onceover --help to see builtin help
    • see Onceover's readme for details
  3. Rake tasks from the installed gems (see below)

    • run a single rake task like so: docker run --rm -v $(pwd):/repo ghcr.io/betadots/puppet-dev-tools:latest rake -f /Rakefile lint
    • run multiple rake tasks sequentially like so: docker run --rm -v $(pwd):/repo ghcr.io/betadots/puppet-dev-tools:latest rake -f /Rakefile lint syntax yamllint
  4. Puppet - puppet

    • remove the GEM_HOME environment variable unset GEM_HOME
    • now you can use the puppet-agent installed puppet: /opt/puppetlabs/puppet/bin/puppet --version

A note on Onceover usage

If your control repository contains a Gemfile you will likely want to modify the commands listed above to something like this:

docker run --rm -v $(pwd):/repo ghcr.io/betadots/puppet-dev-tools:latest \
/bin/bash -c "bundle install && bundle exec onceover run spec --force --trace --parallel"

A note on using puppet catalog-diff

The voxpupuli catalog-diff module and its dependencies (puppetdb-termini) are part of this container.

To allow running puppet catalog diff one must unset the GEM_HOME variable unset GEM_HOME and can then run puppet using the full path: unset GEM_HOME && /opt/puppetlabs/puppet/bin/puppet --version

Rake Tasks

Command Description
rake beaker Run RSpec code examples
rake build Build puppet module package
rake build:pdk Build Puppet module with PDK
rake check Run static pre release checks
rake check:dot_underscore Fails if any ._ files are present in directory
rake check:git_ignore Fails if directories contain the files specified in .gitignore
rake check:symlinks Fails if symlinks are present in directory
rake check:test_file Fails if .pp files present in tests folder
rake check_for_spec_tests Get spec test status
rake clean Clean a built module package
rake compute_dev_version Print development version of module
rake generate_fixtures Writes a fixtures.yml file based on the Puppetfile / Generate Fixtures files for role/pr...
rake generate_spec_tests Generate spec tests for missing classes
rake help Display the list of available rake tasks
rake hiera_setup Modifies your hiera.yaml to point at the hieradata relative to its position
rake lint Run puppet-lint
rake lint_fix Run puppet-lint
rake parallel_spec Run spec tests in parallel and clean the fixtures directory if successful
rake parallel_spec_standalone Parallel spec tests
rake pe_only_mods Show PE Only Modules
rake r10k:dependencies Print outdated forge modules
rake r10k:deprecation Validate that no forge modules are deprecated
rake r10k:duplicates Check Puppetfile for duplicates
rake r10k:install Install modules specified in Puppetfile
rake r10k:print_git_conversion Convert and print forge modules to git format
rake r10k:solve_dependencies[allow_major_bump] Find missing or outdated module dependencies
rake r10k:syntax Syntax check Puppetfile
rake r10k:validate Validate the git urls and branches, refs, or tags
rake release_checks Runs all necessary checks on a module in preparation for a release
rake rubocop Run RuboCop
rake rubocop:autocorrect Autocorrect RuboCop offenses (only when it's safe)
rake rubocop:autocorrect_all Autocorrect RuboCop offenses (safe and unsafe)
rake run_tests Run tests
rake spec Run spec tests and clean the fixtures directory if successful
rake spec:simplecov Run spec tests with ruby simplecov code coverage
rake spec_clean Clean up the fixtures directory
rake spec_clean_symlinks Clean up any fixture symlinks
rake spec_list_json List spec tests in a JSON document
rake spec_prep Create the fixtures directory
rake spec_standalone Run RSpec code examples
rake strings:generate[patterns,debug,backtrace,markup,json,markdown,yard_args] Generate Puppet documentation with YARD
rake strings:generate:reference[patterns,debug,backtrace] Generate Puppet Reference documentation
rake strings:gh_pages:update Update docs on the gh-pages branch and push to GitHub
rake strings:validate:reference[patterns,debug,backtrace] Validate the reference is up to date
rake syntax Syntax check Puppet manifests and templates
rake syntax:hiera Syntax check Hiera config files
rake syntax:manifests Syntax check Puppet manifests
rake syntax:templates Syntax check Puppet templates
rake validate Check syntax of Ruby files and call :syntax and :metadata_lint
rake yamllint Run yamllint

About

Puppet development tools in a Docker image

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Languages

  • Ruby 68.6%
  • Shell 13.3%
  • Dockerfile 10.6%
  • Puppet 7.5%