puppet-lint-roles-profiles

This plugin validates that the code base adheres to the roles and profiles workflow[1].

Installation

To use this plugin, add the following line to the Gemfile in your Puppet code base and run bundle install.

gem 'puppet-lint-roles-profiles'

Usage

roles_include_profiles

--fix-support: No

Will raise a warning if a roles does anything other than include profiles. Resource like class definitions will also raise an error.

WARNING: roles must only include profiles

What you did:

class role::foo {
  class { 'ssh': }

or:

class role::foo {
  class { 'profile::ssh': }
}

What you should have done:

class role::foo {
  include profile::ssh
}

roles_with_params

--fix-support: No

Will raise a warning when a role has class parameters

Warning: roles must not have any parameters

roles_inherits_roles

--fix-support: No

Will raise a warning when a role inherits something other than a role

nodes_include_one_role

--fix-support: No

Will raise a warning when a node definition contains more than one role include (except comments).

References

[1] https://puppet.com/docs/pe/2017.2/r_n_p_full_example.html