r10k 3.5.0 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +4 -1
  3. data/.github/workflows/docker.yml +25 -1
  4. data/.github/workflows/rspec_tests.yml +81 -0
  5. data/.travis.yml +14 -11
  6. data/CHANGELOG.mkd +42 -6
  7. data/CODEOWNERS +1 -1
  8. data/Gemfile +1 -1
  9. data/README.mkd +13 -4
  10. data/azure-pipelines.yml +2 -1
  11. data/doc/dynamic-environments/configuration.mkd +60 -3
  12. data/doc/dynamic-environments/usage.mkd +5 -4
  13. data/doc/faq.mkd +6 -1
  14. data/doc/puppetfile.mkd +2 -0
  15. data/docker/Makefile +16 -2
  16. data/docker/r10k/Dockerfile +17 -6
  17. data/docker/r10k/release.Dockerfile +23 -4
  18. data/integration/tests/git_source/git_source_repeated_remote.rb +68 -0
  19. data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +1 -1
  20. data/integration/tests/user_scenario/complex_workflow/multi_env_remove_re-add.rb +1 -1
  21. data/integration/tests/user_scenario/complex_workflow/multi_env_unamanaged.rb +1 -1
  22. data/lib/r10k/action/deploy/environment.rb +3 -0
  23. data/lib/r10k/action/deploy/module.rb +4 -1
  24. data/lib/r10k/action/runner.rb +34 -0
  25. data/lib/r10k/cli/deploy.rb +9 -4
  26. data/lib/r10k/cli/puppetfile.rb +5 -5
  27. data/lib/r10k/environment/base.rb +8 -1
  28. data/lib/r10k/environment/with_modules.rb +27 -19
  29. data/lib/r10k/forge/module_release.rb +2 -2
  30. data/lib/r10k/git.rb +1 -0
  31. data/lib/r10k/git/cache.rb +12 -4
  32. data/lib/r10k/git/rugged/credentials.rb +32 -2
  33. data/lib/r10k/git/stateful_repository.rb +4 -0
  34. data/lib/r10k/initializers.rb +2 -0
  35. data/lib/r10k/module/base.rb +8 -0
  36. data/lib/r10k/module/forge.rb +1 -1
  37. data/lib/r10k/module/git.rb +20 -3
  38. data/lib/r10k/puppetfile.rb +30 -12
  39. data/lib/r10k/settings.rb +24 -2
  40. data/lib/r10k/source/git.rb +22 -2
  41. data/lib/r10k/version.rb +1 -1
  42. data/locales/r10k.pot +60 -36
  43. data/spec/fixtures/unit/action/r10k_creds.yaml +9 -0
  44. data/spec/shared-examples/subprocess-runner.rb +11 -5
  45. data/spec/unit/action/deploy/environment_spec.rb +43 -2
  46. data/spec/unit/action/deploy/module_spec.rb +40 -1
  47. data/spec/unit/action/puppetfile/install_spec.rb +1 -0
  48. data/spec/unit/action/runner_spec.rb +48 -1
  49. data/spec/unit/environment/git_spec.rb +3 -2
  50. data/spec/unit/environment/with_modules_spec.rb +74 -0
  51. data/spec/unit/forge/module_release_spec.rb +14 -10
  52. data/spec/unit/git/cache_spec.rb +10 -0
  53. data/spec/unit/git/rugged/credentials_spec.rb +69 -2
  54. data/spec/unit/git_spec.rb +3 -3
  55. data/spec/unit/module/git_spec.rb +55 -0
  56. data/spec/unit/puppetfile_spec.rb +61 -7
  57. data/spec/unit/settings_spec.rb +12 -0
  58. data/spec/unit/source/git_spec.rb +49 -1
  59. metadata +6 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89108575df655aa63ddced0692fa8815939d0d472b85914ea29430e1f76985b9
4
- data.tar.gz: 343319b5506fb72d905b3a510765d3dac0bb3643188a95fc24cdb83f90e4d490
3
+ metadata.gz: dddce45b116f972f8efe10ad99c330b60186cfbcdb8747fbab2edc37d8634efb
4
+ data.tar.gz: 26ac288406c3e4fb3862aa5ca64aba4b7ed102dcc407ba59d364f094b1491480
5
5
  SHA512:
6
- metadata.gz: d034cbfd986f11e9b0a3298a015d75a41db6800a06b8e437b06b1298dac0ea008a6fdd8c20546806faf3d8c58f1f964073a148609bcabb025610aa7e7b9425b6
7
- data.tar.gz: 61629bc37a035d75b70a2cf70dd0cd91a0af8286215da2498518e7a6f698091584576c3afb31b734521edae36e4d371b34bc6f2e9ca08824d167d7748c4c646d
6
+ metadata.gz: dbe3bd1fbc2ca1f1fee87fb5ce9e613baf9783cd1a728f50e0de65718a50f7321609458a1e60817fee94ec32464b95ebf3ecf32dde5c065ccabe369fdc2c6b0d
7
+ data.tar.gz: 1d33d1f5772a71c0e6dae7b36730a810b8d2bc59e8ec71a4639b3e4f38a5394396dd62270a63032619c2a3cadeb1e1066a0242e8d9b4b1436933660aec806eab
@@ -1 +1,4 @@
1
- Please add all notable changes to the "Unreleased" section of the CHANGELOG.
1
+ Please add all notable changes to the "Unreleased" section of the CHANGELOG in the format:
2
+ ```
3
+ - Summary of changes. [Issue or PR #](link to issue or PR)
4
+ ```
@@ -10,6 +10,7 @@ jobs:
10
10
  env:
11
11
  PUPPERWARE_ANALYTICS_STREAM: production
12
12
  IS_LATEST: true
13
+ # Still need these env vars for README publishing
13
14
  DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
14
15
  DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
15
16
 
@@ -17,6 +18,10 @@ jobs:
17
18
 
18
19
  steps:
19
20
  - uses: actions/checkout@master
21
+ - uses: azure/docker-login@v1
22
+ with: # This doesn't seem to work unless we point directly to the secrets
23
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
24
+ password: ${{ secrets.DOCKERHUB_PASSWORD }}
20
25
  - name: Set up Ruby 2.6
21
26
  uses: actions/setup-ruby@v1
22
27
  with:
@@ -28,5 +33,24 @@ jobs:
28
33
  - name: Publish container
29
34
  working-directory: docker
30
35
  run: |
31
- docker login -u "$DOCKERHUB_USERNAME" -p "$DOCKERHUB_PASSWORD"
32
36
  make publish
37
+ - name: Build release container
38
+ env:
39
+ IS_RELEASE: true
40
+ working-directory: docker
41
+ run: |
42
+ if make prep; then
43
+ make lint build test
44
+ else
45
+ echo "Skipping release container building and testing"
46
+ fi
47
+ - name: Publish release container
48
+ env:
49
+ IS_RELEASE: true
50
+ working-directory: docker
51
+ run: |
52
+ if make prep; then
53
+ make publish
54
+ else
55
+ echo "Skipping release container publishing"
56
+ fi
@@ -0,0 +1,81 @@
1
+ name: Rspec tests
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - master
7
+
8
+ jobs:
9
+ rspec_tests:
10
+ name: ${{ matrix.cfg.os }}(ruby ${{ matrix.cfg.ruby }})
11
+ strategy:
12
+ matrix:
13
+ cfg:
14
+ - {os: ubuntu-18.04, ruby: 2.4}
15
+ - {os: ubuntu-18.04, ruby: 2.5}
16
+ - {os: ubuntu-18.04, ruby: 2.6}
17
+ - {os: ubuntu-18.04, ruby: 2.7}
18
+ - {os: ubuntu-18.04, ruby: jruby-9.2.9.0}
19
+ - {os: windows-2016, ruby: 2.5}
20
+ - {os: windows-2016, ruby: 2.6}
21
+ - {os: windows-2016, ruby: 2.7}
22
+
23
+ runs-on: ${{ matrix.cfg.os }}
24
+ steps:
25
+ - name: Checkout current PR
26
+ uses: actions/checkout@v2
27
+
28
+ - name: Install ruby version ${{ matrix.cfg.ruby }}
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.cfg.ruby }}
32
+
33
+ - name: Install bundler and gems
34
+ run: |
35
+ gem install bundler
36
+ bundle config set without packaging documentation
37
+ bundle install --jobs 4 --retry 3
38
+
39
+ - name: Run tests on Windows
40
+ if: runner.os == 'Windows'
41
+ run: |
42
+ # https://github.com/ruby/ruby/pull/2791/files#diff-ff5ff976e81bebd977f0834e60416abbR97-R100
43
+ # Actions uses UTF8, causes test failures, similar to normal OS setup
44
+ $PSDefaultParameterValues['*:Encoding'] = 'utf8'
45
+ [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
46
+ [Console]::InputEncoding = [System.Text.Encoding]::GetEncoding("IBM437")
47
+ $Env:LOG_SPEC_ORDER = 'true'
48
+
49
+ # debug information
50
+ chcp
51
+ Get-WinSystemLocale
52
+ Get-ChildItem Env: | % { Write-Output "$($_.Key): $($_.Value)" }
53
+ # list current OpenSSL install
54
+ gem list openssl
55
+ ruby -ropenssl -e 'puts \"OpenSSL Version - #{OpenSSL::OPENSSL_VERSION}\"; puts \"OpenSSL Library Version - #{OpenSSL::OPENSSL_LIBRARY_VERSION}\"'
56
+ Get-Content Gemfile.lock
57
+ ruby -v
58
+ gem --version
59
+ bundle --version
60
+
61
+ # Run tests
62
+ bundle exec rspec --color --format documentation spec/unit
63
+
64
+ - name: Run tests on Linux
65
+ if: runner.os == 'Linux'
66
+ run: |
67
+ # debug information
68
+ cat Gemfile.lock
69
+ ruby -v
70
+ gem --version
71
+ bundle --version
72
+
73
+ if [[ ${{ matrix.cfg.ruby }} =~ "jruby" ]]; then
74
+ export _JAVA_OPTIONS='-Xmx1024m -Xms512m'
75
+
76
+ # workaround for PUP-10683
77
+ sudo apt remove rpm
78
+ fi
79
+
80
+ # Run tests
81
+ bundle exec rspec --color --format documentation spec/unit
data/.travis.yml CHANGED
@@ -6,7 +6,7 @@ notifications:
6
6
  email: false
7
7
  sudo: false
8
8
  jdk:
9
- - openjdk8
9
+ - openjdk11
10
10
  before_install: gem install bundler -v '< 2' --no-document
11
11
  matrix:
12
12
  include:
@@ -23,20 +23,23 @@ matrix:
23
23
  - stage: r10k tests
24
24
  rvm: jruby
25
25
  - stage: r10k container tests
26
- dist: bionic
26
+ dist: focal
27
27
  language: ruby
28
28
  services:
29
- # bionic uses 18.06 but need 19.03+ for buildkit so upgrade later in relevant cell
30
29
  - docker
31
- rvm: 2.6.5
30
+ rvm: 2.6.6
32
31
  env:
32
+ - DOCKER_COMPOSE_VERSION=1.25.5
33
33
  # necessary to prevent overwhelming TravisCI build output limits
34
34
  - DOCKER_BUILD_FLAGS="--progress plain"
35
+ before_install:
36
+ - sudo rm /usr/local/bin/docker-compose
37
+ - curl --location https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname --kernel-name`-`uname --machine` > docker-compose
38
+ - chmod +x docker-compose
39
+ - sudo mv docker-compose /usr/local/bin
35
40
  script:
36
- - |
37
- set -ex
38
- sudo apt update -y && sudo apt install -y docker.io
39
- sudo systemctl unmask docker.service
40
- sudo systemctl start docker
41
- cd docker && make lint build test
42
- set +x
41
+ - set -e
42
+ - cd docker
43
+ - make lint
44
+ - make build
45
+ - make test
data/CHANGELOG.mkd CHANGED
@@ -2,8 +2,39 @@ CHANGELOG
2
2
  =========
3
3
 
4
4
  Unreleased
5
- ----
5
+ ----------
6
+
7
+ 3.8.0
8
+ -----
9
+
10
+ - When a forge module fails name validation the offending name will now be printed in the error message. [#1126](https://github.com/puppetlabs/r10k/pull/1126)
11
+ - Module ref resolution will now fall back to the normal default branch if the default branch override cannot be resolved. [#1122](https://github.com/puppetlabs/r10k/pull/1122)
12
+ - Experimental feature change: conflicts between environment-defined modules and Puppetfile-defined modules now default to logging a warning and deploying the environment module version, overriding the Puppetfile. Previously, conflicts would result in an error. The behavior is now configurable via the `module_conflicts` environment setting [#1107](https://github.com/puppetlabs/r10k/pull/1107)
13
+
14
+ 3.7.0
15
+ -----
16
+
17
+ - Use %LOCALAPPDATA% for Windows cachedir [#1049](https://github.com/puppetlabs/r10k/issues/1049)
18
+ - Add support for defining custom puppet.conf when generating types [#993](https://github.com/puppetlabs/r10k/pull/993)
19
+ - Update test cases to account for error message changes in Puppet 7
20
+
21
+ 3.6.0
22
+ -----
23
+
24
+ - Add filter_command configuration option for git repositories. (Thanks to [mhumpula](https://github.com/mhumpula) for the feature.) [#823](https://github.com/puppetlabs/r10k/pull/823)
25
+ - Increase default pool_size to 4, allowing modules to be downloaded on 4 threads concurrently. [#1038](https://github.com/puppetlabs/r10k/issues/1038)
26
+ - Ensure that modules that share a cachedir download serially, to avoid cache corruption. [#1058](https://github.com/puppetlabs/r10k/issues/1058)
27
+ - Don't purge root when using `puppetfile install`. [#1084](https://github.com/puppetlabs/r10k/issues/1084)
6
28
 
29
+ 3.5.2
30
+ -----
31
+
32
+ - (RK-319) Clean up tmp directories used for downloading modules
33
+
34
+ 3.5.1
35
+ -----
36
+
37
+ - Upgrade Rugged Gemfile dependency for local development to ~> 1.0
7
38
 
8
39
  3.5.0
9
40
  -----
@@ -15,7 +46,7 @@ Unreleased
15
46
  [#813](https://github.com/puppetlabs/r10k/issues/813)
16
47
 
17
48
  3.4.1
18
- ----
49
+ -----
19
50
 
20
51
  - Add support for Ruby 2.7
21
52
  - (RK-357) Restrict gettext and fast_gettext versions for compatibility with Ruby 2.4
@@ -166,6 +197,11 @@ Ruby >= 2.3 official and documented.
166
197
  - Unable to parse Puppetfile
167
198
  - Various perfomance improvements
168
199
 
200
+ 2.6.9
201
+ ----
202
+
203
+ - Don't purge root when using `puppetfile install`. [#1084](https://github.com/puppetlabs/r10k/issues/1084)
204
+
169
205
  2.6.8
170
206
  ----
171
207
 
@@ -394,7 +430,7 @@ Puppetfile should be installed to. See the [Puppetfile documentation](https://gi
394
430
 
395
431
  You can now configure how r10k purges unmanaged content after a deployment. The
396
432
  default behavior should be unchanged but there is a new "purge\_levels" configuration
397
- option that can be used to enable new behavior or de-activate certain existing
433
+ option that can be used to enable new behavior or de-activate certain existing
398
434
  behaviors. See the relevant [configuration documentation](https://github.com/puppetlabs/r10k/blob/master/doc/dynamic-environments/configuration.mkd#purge_levels) for more details.
399
435
 
400
436
  (RK-223) Ability to track control repo branch from content declarations.
@@ -441,7 +477,7 @@ fix.)
441
477
  Previously, r10k only supported the use of HTTP proxies for connecting to the Puppet
442
478
  Forge. With these changes, r10k can now be configured to use an HTTP proxy for both
443
479
  Forge and Git operations. Configuration can be specified globally, for Forge or Git
444
- only, or on a per-Git repository basis. See [configuration documentation](https://github.com/puppetlabs/r10k/blob/master/doc/dynamic-environments/configuration.mkd)
480
+ only, or on a per-Git repository basis. See [configuration documentation](https://github.com/puppetlabs/r10k/blob/master/doc/dynamic-environments/configuration.mkd)
445
481
  for more details.
446
482
 
447
483
  ### Bug Fixes
@@ -462,9 +498,9 @@ for SSH.
462
498
  (RK-241) "deploy display" action does not properly format wrapped exceptions
463
499
 
464
500
  The "deploy display" action was not capturing and logging exceptions in the same way as
465
- other related actions. This meant that in many cases, when an error occurred, the
501
+ other related actions. This meant that in many cases, when an error occurred, the
466
502
  underlying cause was not being shown. Specifically, the "deploy display" action was
467
- not benefitting from the improved error messaging for unreadable SSH keys which was
503
+ not benefitting from the improved error messaging for unreadable SSH keys which was
468
504
  added in r10k 2.2.0 as part of RK-220.
469
505
 
470
506
  2.2.1
data/CODEOWNERS CHANGED
@@ -1,2 +1,2 @@
1
- * @puppetlabs/puppetserver-maintainers @adrienthebo @dhollinger
1
+ * @puppetlabs/puppetserver-maintainers
2
2
  /docker/ @puppetlabs/pupperware
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
4
  group :extra do
5
- gem 'rugged', '>= 0.24.0', '< 0.24.6', :platforms => :ruby
5
+ gem 'rugged', '~> 1.0', :platforms => :ruby
6
6
  end
7
7
 
8
8
  group :development do
data/README.mkd CHANGED
@@ -17,8 +17,8 @@ implementation of Puppet [environments][workflow].
17
17
  Requirements
18
18
  ------------
19
19
 
20
- R10k supports the Ruby versions `>= 2.3.0`. It's tested on Ruby 2.3.0 up to
21
- Ruby 2.6.0 + Jruby.
20
+ R10k supports the Ruby versions `>= 2.4.0`. It's tested on Ruby 2.4.0 up to
21
+ Ruby 2.7.0 + Jruby.
22
22
 
23
23
  R10k requires additional components, depending on how you plan on managing
24
24
  environments and modules.
@@ -98,6 +98,14 @@ When localizing the strings found in R10k, follow the prescribed
98
98
  The workflow describes the rake tasks provided to generate the .po files for
99
99
  each locale.
100
100
 
101
+ Releasing
102
+ ---------
103
+ To release a new version of the r10k gem, ensure the [changelog](CHANGELOG.mkd) is up to date and open a pull request updating the [version file](lib/r10k/version.rb). When the PR is merged, a new release of the gem will be triggered.
104
+
105
+ By default, a patch (Z) release will be triggered. To release a new major (X) or minor (Y) version, include `#major` or `#minor` (respectively) in your commit message to trigger the appropriate release.
106
+
107
+ NOTE: This currently only works for the default branch. If you would like to release from a different branch, please contact the [CODEOWNERS](CODEOWNERS).
108
+
101
109
  Getting help
102
110
  ------------
103
111
 
@@ -113,6 +121,7 @@ Please see the CHANGELOG for a listing of the (very awesome) contributors.
113
121
 
114
122
  ## Maintenance
115
123
 
116
- See [MAINTAINERS](MAINTAINERS) (json file)
124
+ See [CODEOWNERS](CODEOWNERS) for active repo maintainers.
125
+
126
+ Open [issues](https://github.com/puppetlabs/r10k/issues) directly in the r10k repo.
117
127
 
118
- Tickets: File at https://tickets.puppet.com/browse/RK
data/azure-pipelines.yml CHANGED
@@ -19,6 +19,7 @@ variables:
19
19
  CONTAINER_BUILD_PATH: .
20
20
  LINT_IGNORES:
21
21
  DOCKER_BUILDKIT: 1
22
+ BUILD_OPTIONS: --build-arg alpine_version=3.9
22
23
 
23
24
  workspace:
24
25
  clean: resources
@@ -53,7 +54,7 @@ steps:
53
54
 
54
55
  - powershell: |
55
56
  . "$(bundle show pupperware)/ci/build.ps1"
56
- Build-Container -Name $ENV:CONTAINER_NAME -Namespace $ENV:NAMESPACE -PathOrUri $ENV:CONTAINER_BUILD_PATH
57
+ Build-Container -Name $ENV:CONTAINER_NAME -Namespace $ENV:NAMESPACE -PathOrUri $ENV:CONTAINER_BUILD_PATH -AdditionalOptions ($ENV:BUILD_OPTIONS -split ' ')
57
58
  displayName: Build $(CONTAINER_NAME) Container
58
59
  timeoutInMinutes: 5
59
60
  name: build_container
@@ -76,9 +76,9 @@ The proxy server being used will be logged at the "debug" level when r10k runs.
76
76
  ### pool_size
77
77
 
78
78
  The pool_size setting is a number to determine how many threads should be spawn
79
- while updating modules. The default value is 1, which means the default behaviour
80
- is to update modules in a serial manner. Increasing this number should bring
81
- some performance gains.
79
+ while updating modules. The default value is 4, which means modules will be updated
80
+ in parallel. If this causes issues, change this setting to 1 to cause modules to be
81
+ updated serially.
82
82
 
83
83
  ### git
84
84
 
@@ -327,6 +327,15 @@ deploy:
327
327
  puppet_path: '/usr/local/bin/puppet'
328
328
  ```
329
329
 
330
+ #### puppet\_conf
331
+
332
+ The path to the puppet.conf file used for generating types. Defaults to `/etc/puppetlabs/puppet/puppet.conf`.
333
+
334
+ ```yaml
335
+ deploy:
336
+ puppet_conf: '/opt/puppet/conf/puppet.conf'
337
+ ```
338
+
330
339
  Source options
331
340
  --------------
332
341
 
@@ -411,6 +420,29 @@ sources:
411
420
  - 'dev'
412
421
  ```
413
422
 
423
+ ### filter_command
424
+
425
+ You can filter out any branch based on the result of the command specified as
426
+ 'filter_command'. Currently it only works with git repository. Non zero return
427
+ status of the command results in a branch beeing removed. The command is passed
428
+ additional environment variables
429
+
430
+ * GIT_DIR – path to the cached git repository
431
+ * R10K_BRANCH – branch which is being filtered
432
+ * R10K_NAME – source name from r10k configuration
433
+
434
+ This can be used for example for filtering out the branches with invalid gpg signature of their latest commit
435
+
436
+ ```yaml
437
+ ---
438
+ sources:
439
+ mysource:
440
+ basedir: '/etc/puppet/environments'
441
+ filter_command: 'git verify-commit $R10K_BRANCH 2> /dev/null'
442
+ ```
443
+
444
+ Beware that if the production branch of manifests is filtered out, you will end up with empty environment.
445
+
414
446
  Examples
415
447
  --------
416
448
 
@@ -641,6 +673,31 @@ modules:
641
673
  ref: 62d07f2
642
674
  ```
643
675
 
676
+ #### Puppetfile module conflicts
677
+
678
+ When a module is defined in an environment and also in a Puppetfile, the default behavior is for the environment definition of the module to take precedence, a warning to be logged, and the Puppetfile definition to be ignored. The behavior is configurable to optionally skip the warning, or allow a hard failure instead. Use the `module_conflicts` option in an environment definition to control this.
679
+
680
+ Available `module_conflicts` options:
681
+
682
+ * `override_and_warn` (default): the version of the module defined by the environment will be used, and the version defined in the Puppetfile will be ignored. A warning will be printed.
683
+ * `override`: the version of the module defined by the environment will be used, and the version defined in the Puppetfile will be ignored.
684
+ * `error`: an error will be raised alerting the user to the conflict. The environment will not be deployed.
685
+
686
+ ```yaml
687
+ # production.yaml
688
+ ---
689
+ type: git
690
+ remote: git@github.com:puppetlabs/control-repo.git
691
+ ref: 8820892
692
+ module_conflicts: override_puppetfile_and_warn
693
+ modules:
694
+ puppetlabs-stdlib: 6.0.0
695
+ puppetlabs-concat: 6.1.0
696
+ reidmv-xampl:
697
+ git: https://github.com/reidmv/reidmv-xampl.git
698
+ ref: 62d07f2
699
+ ```
700
+
644
701
  ### Bare Environment Type
645
702
 
646
703
  A "control repository" typically contains a hiera.yaml, an environment.conf, a manifests/site.pp file, and a few other things. However, none of these are strictly necessary for an environment to be functional if modules can be deployed to it.
@@ -66,11 +66,12 @@ Update a single environment and specify a default branch override:
66
66
 
67
67
  r10k deploy environment my_working_environment --puppetfile --default-branch-override default_branch_override
68
68
 
69
- This will update the given environment and update all contained modules, overrideing
70
- the :default_branch entry in the Puppetfile of each module. This is used primarily to allow
69
+ This will update the given environment and update all contained modules, overriding
70
+ the :default_branch entry in the Puppetfile of each module. If the specified override branch is not
71
+ found, it will fall back to the normal default branch and attempt to use that. This is used primarily to allow
71
72
  automated r10k solutions using the control_branch pattern with a temporary branch deployment to
72
- ensure the deployment is pushed to the correct module repository branch. Note that the :default_branch
73
- is only ever utilized if the desired ref cannot be located.
73
+ ensure the deployment is pushed to the correct module repository branch. Note that the :default_branch and its
74
+ override are only ever used if the specific desired ref cannot be located.
74
75
 
75
76
  ### Deploying modules
76
77