r10k 3.3.2 → 3.5.1

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.
Files changed (66) hide show
  1. checksums.yaml +5 -5
  2. data/.github/pull_request_template.md +1 -0
  3. data/.github/workflows/docker.yml +56 -0
  4. data/.github/workflows/release.yml +36 -0
  5. data/.travis.yml +23 -8
  6. data/CHANGELOG.mkd +60 -4
  7. data/CODEOWNERS +1 -0
  8. data/Gemfile +1 -1
  9. data/README.mkd +4 -3
  10. data/azure-pipelines.yml +9 -3
  11. data/bin/r10k +1 -1
  12. data/doc/dynamic-environments/configuration.mkd +160 -2
  13. data/doc/dynamic-environments/git-environments.mkd +1 -1
  14. data/doc/dynamic-environments/master-configuration.mkd +28 -58
  15. data/doc/faq.mkd +6 -1
  16. data/doc/puppetfile.mkd +2 -0
  17. data/docker/Gemfile +5 -2
  18. data/docker/Makefile +41 -18
  19. data/docker/r10k/Dockerfile +36 -15
  20. data/docker/r10k/adduser.sh +13 -0
  21. data/docker/r10k/docker-entrypoint.d/10-analytics.sh +1 -1
  22. data/docker/r10k/release.Dockerfile +54 -0
  23. data/docker/spec/dockerfile_spec.rb +4 -3
  24. data/docker/spec/fixtures/Puppetfile +1 -1
  25. data/integration/Rakefile +2 -2
  26. data/lib/r10k/action/deploy/environment.rb +7 -3
  27. data/lib/r10k/action/deploy/module.rb +5 -1
  28. data/lib/r10k/action/runner.rb +4 -4
  29. data/lib/r10k/cli/deploy.rb +1 -1
  30. data/lib/r10k/environment.rb +30 -0
  31. data/lib/r10k/environment/bare.rb +16 -0
  32. data/lib/r10k/environment/git.rb +6 -5
  33. data/lib/r10k/environment/svn.rb +2 -0
  34. data/lib/r10k/environment/with_modules.rb +139 -0
  35. data/lib/r10k/logging/terminaloutputter.rb +1 -1
  36. data/lib/r10k/module/base.rb +5 -0
  37. data/lib/r10k/module/forge.rb +5 -1
  38. data/lib/r10k/puppetfile.rb +6 -0
  39. data/lib/r10k/source.rb +4 -0
  40. data/lib/r10k/source/exec.rb +51 -0
  41. data/lib/r10k/source/hash.rb +182 -0
  42. data/lib/r10k/source/yaml.rb +20 -0
  43. data/lib/r10k/source/yamldir.rb +32 -0
  44. data/lib/r10k/util/attempt.rb +1 -1
  45. data/lib/r10k/version.rb +4 -1
  46. data/locales/r10k.pot +65 -22
  47. data/r10k.gemspec +7 -3
  48. data/spec/unit/action/deploy/environment_spec.rb +1 -0
  49. data/spec/unit/action/deploy/module_spec.rb +13 -0
  50. data/spec/unit/action/puppetfile/install_spec.rb +3 -1
  51. data/spec/unit/action/runner_spec.rb +2 -2
  52. data/spec/unit/source/exec_spec.rb +81 -0
  53. data/spec/unit/source/hash_spec.rb +54 -0
  54. data/spec/unit/source/yaml_spec.rb +42 -0
  55. metadata +66 -24
  56. data/MAINTAINERS +0 -18
  57. data/docker/distelli-manifest.yml +0 -9
  58. data/integration/scripts/README.mkd +0 -86
  59. data/integration/scripts/setup_r10k_env_centos5.sh +0 -23
  60. data/integration/scripts/setup_r10k_env_centos6.sh +0 -23
  61. data/integration/scripts/setup_r10k_env_rhel7.sh +0 -23
  62. data/integration/scripts/setup_r10k_env_sles11.sh +0 -23
  63. data/integration/scripts/setup_r10k_env_sles12.sh +0 -23
  64. data/integration/scripts/setup_r10k_env_ubuntu1004.sh +0 -23
  65. data/integration/scripts/setup_r10k_env_ubuntu1204.sh +0 -23
  66. data/integration/scripts/setup_r10k_env_ubuntu1404.sh +0 -23
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+ require 'r10k/source'
3
+
4
+ describe R10K::Source::Yaml do
5
+
6
+ let(:environments_hash) do
7
+ {
8
+ 'production' => {
9
+ 'remote' => 'https://git.example.com/puppet/control-repo.git',
10
+ 'ref' => 'release-141',
11
+ 'modules' => {
12
+ 'puppetlabs-stdlib' => '6.1.0',
13
+ 'puppetlabs-ntp' => '8.1.0',
14
+ 'example-myapp1' => {
15
+ 'git' => 'https://git.example.com/puppet/example-myapp1.git',
16
+ 'ref' => 'v1.3.0'
17
+ }
18
+ }
19
+ },
20
+ 'development' => {
21
+ 'remote' => 'https://git.example.com/puppet/control-repo.git',
22
+ 'ref' => 'master',
23
+ 'modules' => {
24
+ 'puppetlabs-stdlib' => '6.1.0',
25
+ 'puppetlabs-ntp' => '8.1.0',
26
+ 'example-myapp1' => {
27
+ 'git' => 'https://git.example.com/puppet/example-myapp1.git',
28
+ 'ref' => 'v1.3.1'
29
+ }
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ describe "with valid yaml file" do
36
+ it "produces environments" do
37
+ allow(YAML).to receive(:load_file).with('/envs.yaml').and_return(environments_hash)
38
+ source = described_class.new('yamlsource', '/some/nonexistent/dir', config: '/envs.yaml')
39
+ expect(source.environments.map(&:name)).to contain_exactly('production', 'development')
40
+ end
41
+ end
42
+ end
metadata CHANGED
@@ -1,43 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r10k
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.2
4
+ version: 3.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrien Thebo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-01 00:00:00.000000000 Z
11
+ date: 2020-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: colored
14
+ name: colored2
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '1.2'
19
+ version: 3.1.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '1.2'
26
+ version: 3.1.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: cri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.15.6
33
+ version: 2.15.10
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: 3.0.0
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - '='
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.15.10
44
+ - - "<"
39
45
  - !ruby/object:Gem::Version
40
- version: 2.15.6
46
+ version: 3.0.0
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: log4r
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +100,40 @@ dependencies:
94
100
  - - "~>"
95
101
  - !ruby/object:Gem::Version
96
102
  version: '0.24'
103
+ - !ruby/object:Gem::Dependency
104
+ name: fast_gettext
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 1.1.0
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 1.1.0
117
+ - !ruby/object:Gem::Dependency
118
+ name: gettext
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 3.0.2
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: 3.3.0
127
+ type: :runtime
128
+ prerelease: false
129
+ version_requirements: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: 3.0.2
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: 3.3.0
97
137
  - !ruby/object:Gem::Dependency
98
138
  name: rspec
99
139
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +182,14 @@ dependencies:
142
182
  requirements:
143
183
  - - "~>"
144
184
  - !ruby/object:Gem::Version
145
- version: 0.6.1
185
+ version: 0.9.0
146
186
  type: :development
147
187
  prerelease: false
148
188
  version_requirements: !ruby/object:Gem::Requirement
149
189
  requirements:
150
190
  - - "~>"
151
191
  - !ruby/object:Gem::Version
152
- version: 0.6.1
192
+ version: 0.9.0
153
193
  description: |2
154
194
  R10K provides a general purpose toolset for deploying Puppet environments and modules.
155
195
  It implements the Puppetfile format and provides a native implementation of Puppet
@@ -161,6 +201,9 @@ extensions: []
161
201
  extra_rdoc_files: []
162
202
  files:
163
203
  - ".gitattributes"
204
+ - ".github/pull_request_template.md"
205
+ - ".github/workflows/docker.yml"
206
+ - ".github/workflows/release.yml"
164
207
  - ".gitignore"
165
208
  - ".travis.yml"
166
209
  - CHANGELOG.mkd
@@ -168,7 +211,6 @@ files:
168
211
  - CONTRIBUTING.mkd
169
212
  - Gemfile
170
213
  - LICENSE
171
- - MAINTAINERS
172
214
  - README.mkd
173
215
  - Rakefile
174
216
  - azure-pipelines.yml
@@ -193,10 +235,11 @@ files:
193
235
  - docker/Gemfile
194
236
  - docker/Makefile
195
237
  - docker/README.md
196
- - docker/distelli-manifest.yml
197
238
  - docker/r10k/Dockerfile
239
+ - docker/r10k/adduser.sh
198
240
  - docker/r10k/docker-entrypoint.d/10-analytics.sh
199
241
  - docker/r10k/docker-entrypoint.sh
242
+ - docker/r10k/release.Dockerfile
200
243
  - docker/spec/dockerfile_spec.rb
201
244
  - docker/spec/fixtures/Puppetfile
202
245
  - integration/Gemfile
@@ -221,15 +264,6 @@ files:
221
264
  - integration/pre-suite/10_git_config.rb
222
265
  - integration/pre-suite/20_pe_r10k.rb
223
266
  - integration/pre-suite/README.mkd
224
- - integration/scripts/README.mkd
225
- - integration/scripts/setup_r10k_env_centos5.sh
226
- - integration/scripts/setup_r10k_env_centos6.sh
227
- - integration/scripts/setup_r10k_env_rhel7.sh
228
- - integration/scripts/setup_r10k_env_sles11.sh
229
- - integration/scripts/setup_r10k_env_sles12.sh
230
- - integration/scripts/setup_r10k_env_ubuntu1004.sh
231
- - integration/scripts/setup_r10k_env_ubuntu1204.sh
232
- - integration/scripts/setup_r10k_env_ubuntu1404.sh
233
267
  - integration/tests/Puppetfile/HTTP_PROXY_affects_forge_source.rb
234
268
  - integration/tests/Puppetfile/HTTP_PROXY_affects_git_source.rb
235
269
  - integration/tests/README.mkd
@@ -319,10 +353,12 @@ files:
319
353
  - lib/r10k/deployment.rb
320
354
  - lib/r10k/deployment/config.rb
321
355
  - lib/r10k/environment.rb
356
+ - lib/r10k/environment/bare.rb
322
357
  - lib/r10k/environment/base.rb
323
358
  - lib/r10k/environment/git.rb
324
359
  - lib/r10k/environment/name.rb
325
360
  - lib/r10k/environment/svn.rb
361
+ - lib/r10k/environment/with_modules.rb
326
362
  - lib/r10k/errors.rb
327
363
  - lib/r10k/errors/formatting.rb
328
364
  - lib/r10k/feature.rb
@@ -372,8 +408,12 @@ files:
372
408
  - lib/r10k/settings/uri_definition.rb
373
409
  - lib/r10k/source.rb
374
410
  - lib/r10k/source/base.rb
411
+ - lib/r10k/source/exec.rb
375
412
  - lib/r10k/source/git.rb
413
+ - lib/r10k/source/hash.rb
376
414
  - lib/r10k/source/svn.rb
415
+ - lib/r10k/source/yaml.rb
416
+ - lib/r10k/source/yamldir.rb
377
417
  - lib/r10k/svn.rb
378
418
  - lib/r10k/svn/remote.rb
379
419
  - lib/r10k/svn/working_dir.rb
@@ -496,8 +536,11 @@ files:
496
536
  - spec/unit/settings/uri_definition_spec.rb
497
537
  - spec/unit/settings_spec.rb
498
538
  - spec/unit/source/base_spec.rb
539
+ - spec/unit/source/exec_spec.rb
499
540
  - spec/unit/source/git_spec.rb
541
+ - spec/unit/source/hash_spec.rb
500
542
  - spec/unit/source/svn_spec.rb
543
+ - spec/unit/source/yaml_spec.rb
501
544
  - spec/unit/source_spec.rb
502
545
  - spec/unit/svn/remote_spec.rb
503
546
  - spec/unit/svn/working_dir_spec.rb
@@ -532,8 +575,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
532
575
  - !ruby/object:Gem::Version
533
576
  version: '0'
534
577
  requirements: []
535
- rubyforge_project:
536
- rubygems_version: 2.5.1
578
+ rubygems_version: 3.0.3
537
579
  signing_key:
538
580
  specification_version: 4
539
581
  summary: Puppet environment and module deployment
@@ -1,18 +0,0 @@
1
- {
2
- "version": 1,
3
- "file_format": "This MAINTAINERS file format is described at https://github.com/puppetlabs/maintainers",
4
- "issues": "https://tickets.puppet.com/browse/RK",
5
- "internal_list": "https://groups.google.com/a/puppet.com/forum/?hl=en#!forum/discuss-code-manager-maintainers",
6
- "people": [
7
- {
8
- "github": "andersonmills",
9
- "email": "anderson@puppet.com",
10
- "name": "Anderson Mills"
11
- },
12
- {
13
- "github": "scotje",
14
- "email": "jesse@puppet.com",
15
- "name": "Jesse Scott"
16
- }
17
- ]
18
- }
@@ -1,9 +0,0 @@
1
- pe-and-platform/r10k:
2
- PreBuild:
3
- - make lint
4
- Build:
5
- - make build PUPPERWARE_ANALYTICS_STREAM=production
6
- - make test
7
- AfterBuildSuccess:
8
- - docker login -u "$DISTELLI_DOCKER_USERNAME" -p "$DISTELLI_DOCKER_PW" "$DISTELLI_DOCKER_ENDPOINT"
9
- - make publish
@@ -1,86 +0,0 @@
1
- Scripts
2
- =======
3
-
4
- This folder contains helper scripts for setting up manual testing environments
5
- using [Beaker](https://github.com/puppetlabs/beaker) configuration files. The
6
- environments created by these scripts have "r10k" fully configured along with
7
- a Git repository with a valid "production" environment.
8
-
9
- These scripts are specific to the Puppet Labs environment and will not work in
10
- other environments without alteration!
11
-
12
- ## Prerequisites
13
-
14
- To utilize this test scripts you will need to have Ruby 1.9.3 or greater
15
- installed on your system along with Bundler. Also, the scripts utilize the
16
- "vmpooler" for virtual machine creation. Access to the "vmpooler" machines
17
- require having valid SSH private keys located on your local computer. Speak
18
- with a QA team member for more information on where to find the necessary
19
- SSH keys.
20
-
21
- ## Usage
22
-
23
- The scripts are written in Bash and should run on any Linux or Mac system as
24
- long as the prerequisites mentioned above are satisfied.
25
-
26
- ### Cloning
27
-
28
- First you will need to clone the "[r10k](https://github.com/puppetlabs/r10k)" repository on your local machine:
29
-
30
- ```bash
31
- git clone git@github.com:puppetlabs/r10k.git
32
- ```
33
-
34
- ### Executing Script
35
-
36
- Navigate to the integration tests "scripts" folder of the "r10k" repository
37
- clone:
38
-
39
- ```bash
40
- cd r10k/integration/scripts
41
- ```
42
-
43
- There are separate scripts for each supported platform. Select a desired
44
- platform and execute the script:
45
-
46
- ```bash
47
- bash setup_r10k_env_centos6.sh
48
- ```
49
-
50
- ## Connecting to Machines
51
-
52
- The setup process takes about 10 minutes to complete. Once finished Beaker
53
- will report that all tests have been run successfully. The output log will
54
- list the machines created. The Puppet master will have a name ending with
55
- "-master" which you can scrape from the Beaker console output. Example:
56
-
57
- ```
58
- a9lrs93vnujsrrg.delivery.puppetlabs.net (centos-6-x86_64-master) executed in 1.26 seconds
59
- ```
60
-
61
- The FQDN of the Puppet master ("a9lrs93vnujsrrg.delivery.puppetlabs.net" in the
62
- above example) will be printed to the left of the machine tag. The machine tag
63
- is a combination of the platform and role of the virtual machine.
64
-
65
- Now that you have the FQDN you can connect to the machine using SSH:
66
-
67
- ```bash
68
- ssh -i private_key root@a9lrs93vnujsrrg.delivery.puppetlabs.net
69
- ```
70
-
71
- *Note:* The correct SSH private key needs to be installed on your local machine
72
- first. Speak with a QA representative to get the correct key for "vmpooler"
73
- machines.
74
-
75
- ## Configuration Details
76
-
77
- Now that you have successfully connected to the Puppet master you can begin
78
- manual testing. The script has configured Git on the Puppet master to provide
79
- a working "production" environment for "r10k" testing. The Git repository
80
- serving the Puppet environments is located at "/git_repos/environments.git".
81
- There is a Git clone of the remote repository located at "/root/environments".
82
-
83
- When performing manual "r10k" testing you should utilize the Git clone
84
- repository located at "/root/environments". The "r10k" configuration file
85
- "/etc/puppetlabs/r10k/r10k.yaml" is already configured to use the remote Git
86
- repository for deployments.
@@ -1,23 +0,0 @@
1
- #!/bin/bash
2
- SCRIPT_PATH=$(pwd)
3
- BASENAME_CMD="basename ${SCRIPT_PATH}"
4
- SCRIPT_BASE_PATH=`eval ${BASENAME_CMD}`
5
-
6
- if [ $SCRIPT_BASE_PATH = "scripts" ]; then
7
- cd ../
8
- fi
9
-
10
- export pe_dist_dir=http://neptune.puppetlabs.lan/4.0/ci-ready/
11
- export GIT_PROVIDER=shellgit
12
-
13
- bundle install --path .bundle/gems
14
-
15
- bundle exec beaker \
16
- --preserve-hosts always \
17
- --config configs/pe/centos-5-64mda \
18
- --debug \
19
- --keyfile ~/.ssh/id_rsa-acceptance \
20
- --pre-suite pre-suite \
21
- --load-path lib
22
-
23
- rm -rf .bundle
@@ -1,23 +0,0 @@
1
- #!/bin/bash
2
- SCRIPT_PATH=$(pwd)
3
- BASENAME_CMD="basename ${SCRIPT_PATH}"
4
- SCRIPT_BASE_PATH=`eval ${BASENAME_CMD}`
5
-
6
- if [ $SCRIPT_BASE_PATH = "scripts" ]; then
7
- cd ../
8
- fi
9
-
10
- export pe_dist_dir=http://neptune.puppetlabs.lan/4.0/ci-ready/
11
- export GIT_PROVIDER=shellgit
12
-
13
- bundle install --path .bundle/gems
14
-
15
- bundle exec beaker \
16
- --preserve-hosts always \
17
- --config configs/pe/centos-6-64mda \
18
- --debug \
19
- --keyfile ~/.ssh/id_rsa-acceptance \
20
- --pre-suite pre-suite \
21
- --load-path lib
22
-
23
- rm -rf .bundle
@@ -1,23 +0,0 @@
1
- #!/bin/bash
2
- SCRIPT_PATH=$(pwd)
3
- BASENAME_CMD="basename ${SCRIPT_PATH}"
4
- SCRIPT_BASE_PATH=`eval ${BASENAME_CMD}`
5
-
6
- if [ $SCRIPT_BASE_PATH = "scripts" ]; then
7
- cd ../
8
- fi
9
-
10
- export pe_dist_dir=http://neptune.puppetlabs.lan/4.0/ci-ready/
11
- export GIT_PROVIDER=shellgit
12
-
13
- bundle install --path .bundle/gems
14
-
15
- bundle exec beaker \
16
- --preserve-hosts always \
17
- --config configs/pe/redhat-7-64mda \
18
- --debug \
19
- --keyfile ~/.ssh/id_rsa-acceptance \
20
- --pre-suite pre-suite \
21
- --load-path lib
22
-
23
- rm -rf .bundle
@@ -1,23 +0,0 @@
1
- #!/bin/bash
2
- SCRIPT_PATH=$(pwd)
3
- BASENAME_CMD="basename ${SCRIPT_PATH}"
4
- SCRIPT_BASE_PATH=`eval ${BASENAME_CMD}`
5
-
6
- if [ $SCRIPT_BASE_PATH = "scripts" ]; then
7
- cd ../
8
- fi
9
-
10
- export pe_dist_dir=http://neptune.puppetlabs.lan/4.0/ci-ready/
11
- export GIT_PROVIDER=shellgit
12
-
13
- bundle install --path .bundle/gems
14
-
15
- bundle exec beaker \
16
- --preserve-hosts always \
17
- --config configs/pe/sles-11-64mda \
18
- --debug \
19
- --keyfile ~/.ssh/id_rsa-acceptance \
20
- --pre-suite pre-suite \
21
- --load-path lib
22
-
23
- rm -rf .bundle