r10k 3.15.1 → 3.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bbe3c00c11efc712b5146a3dc869eb9855151bbe1d686fef6c13f9c17efc6283
4
- data.tar.gz: 8d67474c7fe6266d04fd5ae42a301c4eb9f72f284b7d487350843384f1e37816
3
+ metadata.gz: 1b8f47b9b316994e718214a6f92e25b7dcd6f9e402e73ddee076920ac65b8317
4
+ data.tar.gz: '03847035922476e3fc27030c231cbb362ceac63387c4d300443a401eca298f16'
5
5
  SHA512:
6
- metadata.gz: 5eadfe0185cd3bf7dcad760135e566dff7d8652a42c4b70e3968c9dfffd08770a722c07ad89a3c92065c5b57ef91ace5c79d13edf54277932297a67431c818df
7
- data.tar.gz: 49cdc0476700c4938ac010eae9293fe94945ff81450bc72aaac00b969af96d9f04cc7733a54e79a576d9533011cec8e947d893fb79f824a9bbb6992f57912de0
6
+ metadata.gz: db1c6069ec189325027ee5e4015d1b659afc410f5840daacc7d21b724288c1d9e86c2e55792760d8b13ef981794d18c25db9977a5e56002898de005ca6a54b55
7
+ data.tar.gz: c3d8dca548fb0e57eba9b9a2df5a37c74d4ebdb74f224e9c03f8ee112f3708c8cc4b9630cfe671c944f30089052d5c4275c5e2a44df3ed015b59e3c710b7b40f
data/CHANGELOG.mkd CHANGED
@@ -4,6 +4,10 @@ CHANGELOG
4
4
  Unreleased
5
5
  ----------
6
6
 
7
+ 3.15.2
8
+ ------
9
+ - Implement exclude regex for puppetfile install [#1248](https://github.com/puppetlabs/r10k/issues/1248)
10
+
7
11
  3.15.1
8
12
  ------
9
13
  - Add TOC to configuration docs [#1298](https://github.com/puppetlabs/r10k/issues/1298)
data/README.mkd CHANGED
@@ -5,6 +5,13 @@ Puppet environment and module deployment
5
5
 
6
6
  [![Build Status](https://travis-ci.org/puppetlabs/r10k.png?branch=master)](https://travis-ci.org/puppetlabs/r10k)
7
7
 
8
+ > R10k is supported and maintained by Puppet, but we consider it to be feature complete
9
+ > and currently have no plans for future feature development. We will keep it working
10
+ > with current code deployment standards and the Ruby ecosystem that ships with the
11
+ > puppet-agent package, but any new feature development will come from peer-reviewed
12
+ > community contributions, with the onus on the contributor and community for validation.
13
+
14
+
8
15
  Description
9
16
  -----------
10
17
 
@@ -14,6 +21,10 @@ R10k provides a general purpose toolset for deploying Puppet environments and
14
21
  modules. It implements the [Puppetfile](doc/puppetfile.mkd) format and provides a native
15
22
  implementation of Puppet [environments][workflow].
16
23
 
24
+ You might also consider [g10k](https://github.com/xorpaul/g10k) as a non-ruby
25
+ based alternative.
26
+
27
+
17
28
  Requirements
18
29
  ------------
19
30
 
@@ -14,6 +14,7 @@ module R10K
14
14
  options = { basedir: @root, overrides: { force: @force || false } }
15
15
  options[:moduledir] = @moduledir if @moduledir
16
16
  options[:puppetfile] = @puppetfile if @puppetfile
17
+ options[:module_exclude_regex] = @module_exclude_regex if @module_exclude_regex
17
18
 
18
19
  loader = R10K::ModuleLoader::Puppetfile.new(**options)
19
20
  loaded_content = loader.load!
@@ -40,7 +41,7 @@ module R10K
40
41
  private
41
42
 
42
43
  def allowed_initialize_opts
43
- super.merge(root: :self, puppetfile: :self, moduledir: :self, force: :self )
44
+ super.merge(root: :self, puppetfile: :self, moduledir: :self, :'module-exclude-regex' => :self, force: :self )
44
45
  end
45
46
  end
46
47
  end
@@ -31,6 +31,7 @@ Puppetfile (http://bombasticmonkey.com/librarian-puppet/).
31
31
  summary 'Install all modules from a Puppetfile'
32
32
  option nil, :moduledir, 'Path to install modules to', argument: :required
33
33
  option nil, :puppetfile, 'Path to puppetfile', argument: :required
34
+ option nil, :'module-exclude-regex', 'A regex to exclude modules from installation. Helpful in CI environments.', argument: :required
34
35
  flag nil, :force, 'Force locally changed files to be overwritten'
35
36
  runner R10K::Action::Puppetfile::CriRunner.wrap(R10K::Action::Puppetfile::Install)
36
37
  end
@@ -30,17 +30,21 @@ module R10K
30
30
  # @param overrides [Hash] Configuration for loaded modules' behavior
31
31
  # @param environment [R10K::Environment] When provided, the environment
32
32
  # in which loading takes place
33
+ # @param module_exclude_regex [Regex] A regex to exclude modules from
34
+ # installation. Helpful in CI environments.
33
35
  def initialize(basedir:,
34
36
  moduledir: DEFAULT_MODULEDIR,
35
37
  puppetfile: DEFAULT_PUPPETFILE_NAME,
36
38
  overrides: {},
37
- environment: nil)
39
+ environment: nil,
40
+ module_exclude_regex: nil)
38
41
 
39
42
  @basedir = cleanpath(basedir)
40
43
  @moduledir = resolve_path(@basedir, moduledir)
41
44
  @puppetfile_path = resolve_path(@basedir, puppetfile)
42
45
  @overrides = overrides
43
46
  @environment = environment
47
+ @module_exclude_regex = module_exclude_regex
44
48
  @environment_name = @environment&.name
45
49
  @default_branch_override = @overrides.dig(:environments, :default_branch_override)
46
50
  @allow_puppetfile_forge = @overrides.dig(:forge, :allow_puppetfile_override)
@@ -68,6 +72,7 @@ module R10K
68
72
  dsl.instance_eval(puppetfile_content(@puppetfile_path), @puppetfile_path)
69
73
 
70
74
  validate_no_duplicate_names(@modules)
75
+ @modules = filter_modules(@modules, @module_exclude_regex) if @module_exclude_regex
71
76
 
72
77
  managed_content = @modules.group_by(&:dirname)
73
78
 
@@ -223,6 +228,10 @@ module R10K
223
228
  return [ install_path, info, spec_deletable ]
224
229
  end
225
230
 
231
+ def filter_modules(modules, exclude_regex)
232
+ modules.reject { |mod| mod.name =~ /#{exclude_regex}/ }
233
+ end
234
+
226
235
  # @param [Array<R10K::Module>] modules
227
236
  def validate_no_duplicate_names(modules)
228
237
  dupes = modules
data/lib/r10k/version.rb CHANGED
@@ -2,5 +2,5 @@ module R10K
2
2
  # When updating to a new major (X) or minor (Y) version, include `#major` or
3
3
  # `#minor` (respectively) in your commit message to trigger the appropriate
4
4
  # release. Otherwise, a new patch (Z) version will be released.
5
- VERSION = '3.15.1'
5
+ VERSION = '3.15.2'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r10k
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.15.1
4
+ version: 3.15.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrien Thebo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-18 00:00:00.000000000 Z
11
+ date: 2022-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored2