r10k 1.5.1 → 2.0.0

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 (139) hide show
  1. checksums.yaml +15 -0
  2. data/.travis.yml +0 -1
  3. data/CHANGELOG.mkd +63 -0
  4. data/Gemfile +2 -2
  5. data/README.mkd +1 -10
  6. data/doc/dynamic-environments/configuration.mkd +24 -6
  7. data/doc/dynamic-environments/quickstart.mkd +1 -1
  8. data/integration/Gemfile +1 -1
  9. data/integration/configs/pe/centos-5-64mda +25 -0
  10. data/integration/configs/pe/centos-6-64mda +1 -1
  11. data/integration/configs/pe/centos-7-64mda +1 -1
  12. data/integration/configs/pe/debian-6-64mda +1 -1
  13. data/integration/configs/pe/debian-7-64mda +1 -1
  14. data/integration/configs/pe/redhat-6-64mda +1 -1
  15. data/integration/configs/pe/redhat-7-64mda +1 -1
  16. data/integration/configs/pe/sles-11-64mda +1 -1
  17. data/integration/configs/pe/sles-12-64mda +25 -0
  18. data/integration/configs/pe/ubuntu-1004-64mda +1 -1
  19. data/integration/configs/pe/ubuntu-1204-64mda +1 -1
  20. data/integration/configs/pe/ubuntu-1404-64mda +1 -1
  21. data/integration/files/pre-suite/git_config.pp.erb +19 -0
  22. data/integration/pre-suite/01_git_config.rb +5 -17
  23. data/integration/pre-suite/02_pe_r10k.rb +0 -2
  24. data/integration/scripts/README.mkd +86 -0
  25. data/integration/scripts/setup_r10k_env_centos5.sh +23 -0
  26. data/integration/scripts/setup_r10k_env_centos6.sh +23 -0
  27. data/integration/scripts/setup_r10k_env_rhel7.sh +23 -0
  28. data/integration/scripts/setup_r10k_env_sles11.sh +23 -0
  29. data/integration/scripts/setup_r10k_env_sles12.sh +23 -0
  30. data/integration/scripts/setup_r10k_env_ubuntu1004.sh +23 -0
  31. data/integration/scripts/setup_r10k_env_ubuntu1204.sh +23 -0
  32. data/integration/scripts/setup_r10k_env_ubuntu1404.sh +23 -0
  33. data/integration/tests/basic_functionality/negative/neg_invalid_git_provider.rb +44 -0
  34. data/integration/tests/basic_functionality/rugged_git_provider_with_ssh.rb +106 -0
  35. data/integration/tests/basic_functionality/rugged_git_provider_without_ssh.rb +107 -0
  36. data/integration/tests/git_source/git_source_git.rb +1 -1
  37. data/integration/tests/git_source/git_source_ssh.rb +1 -1
  38. data/integration/tests/git_source/negative/neg_git_unauthorized_https.rb +1 -1
  39. data/integration/tests/git_source/negative/neg_git_unauthorized_ssh.rb +1 -1
  40. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_basedir.rb +1 -1
  41. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module.rb +8 -2
  42. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module_ref.rb +1 -1
  43. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_remote.rb +1 -1
  44. data/integration/tests/user_scenario/basic_workflow/negative/neg_branch_name_collision.rb +1 -1
  45. data/integration/tests/user_scenario/basic_workflow/negative/neg_disk_full.rb +5 -1
  46. data/integration/tests/user_scenario/basic_workflow/negative/neg_duplicate_module_names.rb +3 -3
  47. data/integration/tests/user_scenario/basic_workflow/negative/neg_invalid_puppet_file.rb +1 -1
  48. data/integration/tests/user_scenario/basic_workflow/negative/neg_read_only.rb +1 -1
  49. data/integration/tests/user_scenario/basic_workflow/single_env_10000_files.rb +4 -0
  50. data/integration/tests/user_scenario/basic_workflow/single_env_large_files.rb +4 -0
  51. data/integration/tests/user_scenario/complex_workflow/multi_env_unamanaged.rb +77 -0
  52. data/integration/tests/user_scenario/complex_workflow/single_env_git_module_update.rb +99 -0
  53. data/lib/r10k/action/deploy/display.rb +0 -1
  54. data/lib/r10k/action/runner.rb +20 -0
  55. data/lib/r10k/cli.rb +0 -3
  56. data/lib/r10k/cli/deploy.rb +0 -3
  57. data/lib/r10k/deployment.rb +1 -7
  58. data/lib/r10k/deployment/config.rb +15 -1
  59. data/lib/r10k/deployment/config/loader.rb +0 -11
  60. data/lib/r10k/environment/git.rb +0 -9
  61. data/lib/r10k/environment/svn.rb +0 -9
  62. data/lib/r10k/errors.rb +0 -3
  63. data/lib/r10k/feature.rb +24 -3
  64. data/lib/r10k/forge/module_release.rb +142 -0
  65. data/lib/r10k/git.rb +32 -11
  66. data/lib/r10k/module/forge.rb +25 -54
  67. data/lib/r10k/module_repository/forge.rb +2 -5
  68. data/lib/r10k/puppetfile.rb +1 -1
  69. data/lib/r10k/util/license.rb +20 -0
  70. data/lib/r10k/version.rb +1 -1
  71. data/lib/shared/puppet_forge/connection.rb +62 -0
  72. data/lib/shared/puppet_forge/error.rb +28 -0
  73. data/lib/shared/puppet_forge/tar.rb +10 -0
  74. data/lib/shared/puppet_forge/tar/mini.rb +81 -0
  75. data/lib/shared/puppet_forge/unpacker.rb +68 -0
  76. data/lib/shared/puppet_forge/v3.rb +13 -0
  77. data/lib/shared/puppet_forge/v3/module.rb +66 -0
  78. data/lib/shared/puppet_forge/v3/module_release.rb +73 -0
  79. data/lib/shared/puppet_forge/version.rb +3 -0
  80. data/r10k.gemspec +2 -2
  81. data/r10k.yaml.example +80 -5
  82. data/spec/spec_helper.rb +0 -12
  83. data/spec/unit/action/runner_spec.rb +53 -0
  84. data/spec/unit/deployment/config/loader_spec.rb +5 -19
  85. data/spec/unit/deployment/config_spec.rb +8 -0
  86. data/spec/unit/deployment_spec.rb +1 -1
  87. data/spec/unit/forge/module_release_spec.rb +130 -0
  88. data/spec/unit/git_spec.rb +5 -5
  89. data/spec/unit/module/forge_spec.rb +66 -116
  90. data/spec/unit/module_repository/forge_spec.rb +35 -5
  91. data/spec/unit/module_spec.rb +10 -10
  92. data/spec/unit/puppet_forge/connection_spec.rb +41 -0
  93. data/spec/unit/puppet_forge/tar/mini_spec.rb +87 -0
  94. data/spec/unit/puppet_forge/tar_spec.rb +9 -0
  95. data/spec/unit/puppet_forge/unpacker_spec.rb +59 -0
  96. data/spec/unit/puppet_forge/v3/module_release_spec.rb +68 -0
  97. data/spec/unit/puppet_forge/v3/module_spec.rb +67 -0
  98. metadata +48 -112
  99. data/lib/r10k/cli/environment.rb +0 -28
  100. data/lib/r10k/cli/environment/deploy.rb +0 -26
  101. data/lib/r10k/cli/environment/list.rb +0 -23
  102. data/lib/r10k/cli/environment/stale.rb +0 -24
  103. data/lib/r10k/cli/module.rb +0 -29
  104. data/lib/r10k/cli/module/deploy.rb +0 -27
  105. data/lib/r10k/cli/module/list.rb +0 -24
  106. data/lib/r10k/cli/synchronize.rb +0 -27
  107. data/lib/r10k/deployment/basedir.rb +0 -4
  108. data/lib/r10k/deployment/environment.rb +0 -20
  109. data/lib/r10k/deployment/source.rb +0 -37
  110. data/lib/r10k/git/commit.rb +0 -22
  111. data/lib/r10k/git/head.rb +0 -36
  112. data/lib/r10k/git/ref.rb +0 -66
  113. data/lib/r10k/git/remote_head.rb +0 -19
  114. data/lib/r10k/git/repository.rb +0 -158
  115. data/lib/r10k/git/tag.rb +0 -29
  116. data/lib/r10k/git/working_dir.rb +0 -186
  117. data/lib/r10k/registry.rb +0 -4
  118. data/lib/r10k/semver.rb +0 -128
  119. data/lib/r10k/task.rb +0 -12
  120. data/lib/r10k/task/deployment.rb +0 -164
  121. data/lib/r10k/task/environment.rb +0 -31
  122. data/lib/r10k/task/module.rb +0 -19
  123. data/lib/r10k/task/puppetfile.rb +0 -102
  124. data/lib/r10k/task_runner.rb +0 -72
  125. data/lib/r10k/util/monkey_patches.rb +0 -11
  126. data/spec/fixtures/vcr/cassettes/R10K_ModuleRepository_Forge/and_the_expected_version_is_latest/can_fetch_all_versions_of_a_given_module.yml +0 -187
  127. data/spec/fixtures/vcr/cassettes/R10K_ModuleRepository_Forge/and_the_expected_version_is_latest/can_fetch_the_latest_version_of_a_given_module.yml +0 -187
  128. data/spec/fixtures/vcr/cassettes/R10K_ModuleRepository_Forge/and_the_expected_version_is_latest/ignores_deleted_releases.yml +0 -190
  129. data/spec/fixtures/vcr/cassettes/R10K_ModuleRepository_Forge/it_handles_errors_from_forgeapi_puppetlabs_com/raises_an_error_for_a_non-existant_module.yml +0 -34
  130. data/spec/fixtures/vcr/cassettes/R10K_Module_Forge/and_the_expected_version_is_latest/sets_the_expected_version_based_on_the_latest_forge_version.yml +0 -103
  131. data/spec/shared-examples/git-ref.rb +0 -49
  132. data/spec/unit/deployment/environment_spec.rb +0 -25
  133. data/spec/unit/git/commit_spec.rb +0 -34
  134. data/spec/unit/git/head_spec.rb +0 -22
  135. data/spec/unit/git/ref_spec.rb +0 -45
  136. data/spec/unit/git/repository_spec.rb +0 -34
  137. data/spec/unit/git/tag_spec.rb +0 -32
  138. data/spec/unit/git/working_dir_spec.rb +0 -122
  139. data/spec/unit/util/monkey_patches_spec.rb +0 -20
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OTUyZGI3NDlmOTVkZTNjMjhkMThmNjNiMGQ1NzlkMjg4YzAzZTZlMA==
5
+ data.tar.gz: !binary |-
6
+ NzFhY2VkNWU1M2JhMzI1ZmFmZTQ1YzIyNTRjZjA5YzliMDY2MTRhZQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MDUxZjBkYmQxOWNhOTBhMDgyNWY0NWIzYzZhOGNjODM4YWJiMzEzMDQ5OWE1
10
+ YTViZGUxOWU4YTllMzZkMDY2NWViZTE4MzMzNDY5YzIwYzMyZjczNDNlOTJh
11
+ MWUyZjM0OWM5NWRmNWIzZDJjZWU5ZDAzYjdhYWVmMDRlYTIxNjA=
12
+ data.tar.gz: !binary |-
13
+ MTIwMjc2Njg2NzBhNTQ3NDVhYmRiOWY5ZmNlYjY1Y2NlYWYzNjI2ZjRjMWUz
14
+ NDg0YWU5ODUwNTY4Y2YxNjRjY2Q3N2IyNThiOWEyNzQ2NzU1NWYzMTZhMzNj
15
+ N2Q2NzVmMDhlYTMzZGU0NGI2NDUzNjhiNWQzMmI0NWNkMjk5YWQ=
@@ -10,4 +10,3 @@ rvm:
10
10
  - "2.1.0"
11
11
  - "2.0.0"
12
12
  - "1.9.3"
13
- - "1.8.7"
@@ -1,6 +1,69 @@
1
1
  CHANGELOG
2
2
  =========
3
3
 
4
+ 2.0.0
5
+ -----
6
+
7
+ 2015/06/08
8
+
9
+ This is a backwards incompatible feature release, but as major releases go this
10
+ is a pretty small one. Some changes introduced into master included some
11
+ breaking changes and SemVer dictates that we do a major release in this case.
12
+ Actual changes that will affect end users should be limited; the only one that
13
+ should have big impact is the removal of Ruby 1.8.7 support. Any other issues
14
+ encountered should be treated as bugs and will be fixed.
15
+
16
+ ### User notes
17
+
18
+ (GH-1) Native support for installing modules from the Puppet Forge
19
+
20
+ R10k can now directly install modules from the Puppet Forge, rather than
21
+ shelling out to the Puppet module tool. This will allow for later optimizations
22
+ like caching module downloads to speed up installing module across multiple
23
+ environments.
24
+
25
+ (RK-83) Allow '-' as a module name separator
26
+
27
+ (RK-53) Remove '/etc/r10k.yaml' from config file search path.
28
+
29
+ R10k 1.5.0 added '/etc/puppetlabs/r10k/r10k.yaml' to the paths checked while
30
+ looking for a config file, in order to keep in convention with the rest of the
31
+ Puppet Labs config files. In 2.0.0 the old location, '/etc/r10k.yaml', has been
32
+ removed.
33
+
34
+ (RK-57) Notify users of purgedirs key deprecation
35
+
36
+ The purgedirs key was used in r10k 0.0.9 but has not been used in the 1.x
37
+ release series; if this setting is given then r10k will generate a warning
38
+ indicating that it is not used.
39
+
40
+ ### Deprecations/Removals
41
+
42
+ (RK-47) Remove support for Ruby 1.8.7
43
+
44
+ Given that Ruby 1.8.7 has been EOL for nearly two years, it's time for r10k to
45
+ drop support for 1.8.7 as well. The Puppet 4 all in one package ships with Ruby
46
+ 2.1.6, so even if you're on a platform that doesn't have Ruby 1.9 or greater you
47
+ can install r10k into the Puppet collection environment and used the bundled
48
+ Ruby.
49
+
50
+ (RK-54) Remove deprecated subcommands
51
+
52
+ R10k 1.0.0 reorganized a number of subcommands but retained the old subcommand
53
+ names for compatibility with 0.0.x; since it's been over 2 years since 1.0.0 has
54
+ been released these commands have finally been removed.
55
+
56
+ (RK-113) Remove deprecated Task classes and namespaces
57
+
58
+ The R10K::Task namespace turned out to be unwieldy in practice and has been
59
+ replaced with the R10K::Action namespace. Use that for running r10k as an
60
+ application.
61
+
62
+ (RK-114) Remove deprecated git classes
63
+
64
+ The reorganization of the Git code in 1.5.0 rendered a number of classes
65
+ obsolete; they've been removed.
66
+
4
67
  1.5.1
5
68
  -----
6
69
 
data/Gemfile CHANGED
@@ -3,11 +3,11 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  group :extra do
6
- gem 'rugged', '~> 0.21.4' if RUBY_VERSION > '1.8.7'
6
+ gem 'rugged', '~> 0.21.4'
7
7
  end
8
8
 
9
9
  group :development do
10
- gem 'simplecov', '~> 0.9.1' if RUBY_VERSION > '1.8.7'
10
+ gem 'simplecov', '~> 0.9.1'
11
11
  end
12
12
 
13
13
  if File.exists? "#{__FILE__}.local"
data/README.mkd CHANGED
@@ -19,8 +19,7 @@ Requirements
19
19
 
20
20
  R10k supports the following Ruby versions:
21
21
 
22
- - 1.8.7 (POSIX minimum version, deprecated)
23
- - 1.9.3 (Windows minimum version)
22
+ - 1.9.3
24
23
  - 2.0.0
25
24
  - 2.1.0
26
25
 
@@ -32,14 +31,6 @@ environments and modules.
32
31
  - Git is required for creating environments and modules from Git
33
32
  - SVN is required for creating environments and modules from SVN
34
33
 
35
- ### Ruby 1.8.7 is deprecated
36
-
37
- As of r10k 1.5.0, support for Ruby 1.8.7 is deprecated. Because of the
38
- increasing cost of supporting Ruby 1.8.7, issues only affecting 1.8.7 will be
39
- fixed but will have a lower priority.
40
-
41
- Support for 1.8.7 will be dropped entirely in r10k 2.0.0.
42
-
43
34
  Installation
44
35
  ------------
45
36
 
@@ -21,13 +21,12 @@ locations for a configuration file.
21
21
 
22
22
  * `{current working directory}/r10k.yaml`
23
23
  * `/etc/puppetlabs/r10k/r10k.yaml` (1.5.0 and later)
24
- * `/etc/r10k.yaml` (deprecated in 1.5.0)
24
+ * `/etc/r10k.yaml` (removed in 2.0.0, deprecated in 1.5.0)
25
25
 
26
- In 1.5.0 r10k added `/etc/puppetlabs/r10k/r10k.yaml` to the configuration search
27
- path. The old location, `/etc/r10k.yaml` has been deprecated in favor of the new
28
- location. If both `/etc/puppetlabs/r10k/r10k.yaml` and `/etc/r10k.yaml` exist
29
- and explicit configuration file has not been given, r10k will log a warning and
30
- use `/etc/puppetlabs/r10k/r10.yaml`.
26
+ As of 2.0.0, r10k will no longer search for a configuration file at
27
+ `/etc/r10k.yaml`. In 1.5.0 r10k added `/etc/puppetlabs/r10k/r10k.yaml` to the
28
+ configuration search path. The old location, `/etc/r10k.yaml` was deprecated
29
+ at that time.
31
30
 
32
31
  General options
33
32
  ---------------
@@ -68,6 +67,25 @@ git:
68
67
  See the [git provider documentation](../git/providers.mkd) for more information
69
68
  regarding Git providers.
70
69
 
70
+ ### forge
71
+
72
+ The 'forge' setting is a hash that contains settings for downloading modules
73
+ from the Puppet Forge.
74
+
75
+ #### proxy
76
+
77
+ The proxy option sets an optional HTTP proxy to use when downloading modules
78
+ from the Forge.
79
+
80
+ ```yaml
81
+ forge:
82
+ proxy: 'http://my-site.proxy:3128'
83
+ ```
84
+
85
+ If no proxy is given, r10k will check the environment variables 'HTTPS_PROXY',
86
+ 'https_proxy', 'HTTP_PROXY', and 'http_proxy' in that order for a proxy URL.
87
+
88
+
71
89
  Deployment options
72
90
  ------------------
73
91
 
@@ -117,7 +117,7 @@ Install r10k via Ruby Gems.
117
117
  gem install r10k
118
118
  ```
119
119
 
120
- Configure r10k by editing `/etc/r10k.yaml` and ensuring it has the following contents:
120
+ Configure r10k by editing `/etc/puppetlabs/r10k/r10k.yaml` and ensuring it has the following contents:
121
121
 
122
122
  ```
123
123
  # The location to use for storing cached Git repos
@@ -1,3 +1,3 @@
1
1
  source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
2
 
3
- gem 'beaker', '~> 2.7.1'
3
+ gem 'beaker', '~> 2.7'
@@ -0,0 +1,25 @@
1
+ HOSTS:
2
+ centos-5-x86_64-master:
3
+ roles:
4
+ - master
5
+ - dashboard
6
+ - database
7
+ - agent
8
+ platform: el-5-x86_64
9
+ template: Delivery/Quality Assurance/Templates/vCloud/centos-5-x86_64
10
+ hypervisor: vcloud
11
+ centos-5-x86_64-agent:
12
+ roles:
13
+ - agent
14
+ - frictionless
15
+ platform: el-5-x86_64
16
+ template: Delivery/Quality Assurance/Templates/vCloud/centos-5-x86_64
17
+ hypervisor: vcloud
18
+ CONFIG:
19
+ nfs_server: none
20
+ consoleport: 443
21
+ datastore: instance0
22
+ folder: Delivery/Quality Assurance/Enterprise/Dynamic
23
+ resourcepool: delivery/Quality Assurance/Enterprise/Dynamic
24
+ pooling_api: http://vmpooler.delivery.puppetlabs.net/
25
+ forge_host: forge-aio01-petest.puppetlabs.com
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- centos-6-x86_64:
2
+ centos-6-x86_64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- centos-7-x86_64:
2
+ centos-7-x86_64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- debian-6-amd64:
2
+ debian-6-amd64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- debian-7-amd64:
2
+ debian-7-amd64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- redhat-6-x86_64:
2
+ redhat-6-x86_64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- redhat-7-x86_64:
2
+ redhat-7-x86_64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- sles-11-x86_64:
2
+ sles-11-x86_64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -0,0 +1,25 @@
1
+ HOSTS:
2
+ sles-12-x86_64-master:
3
+ roles:
4
+ - master
5
+ - dashboard
6
+ - database
7
+ - agent
8
+ platform: sles-12-x86_64
9
+ template: Delivery/Quality Assurance/Templates/vCloud/sles-12-x86_64
10
+ hypervisor: vcloud
11
+ sles-12-x86_64-agent:
12
+ roles:
13
+ - agent
14
+ - frictionless
15
+ platform: sles-12-x86_64
16
+ template: Delivery/Quality Assurance/Templates/vCloud/sles-12-x86_64
17
+ hypervisor: vcloud
18
+ CONFIG:
19
+ nfs_server: none
20
+ consoleport: 443
21
+ datastore: instance0
22
+ folder: Delivery/Quality Assurance/Enterprise/Dynamic
23
+ resourcepool: delivery/Quality Assurance/Enterprise/Dynamic
24
+ pooling_api: http://vmpooler.delivery.puppetlabs.net/
25
+ forge_host: forge-aio01-petest.puppetlabs.com
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- ubuntu-1004-amd64:
2
+ ubuntu-1004-amd64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- ubuntu-1204-amd64:
2
+ ubuntu-1204-amd64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -1,5 +1,5 @@
1
1
  HOSTS:
2
- ubuntu-1404-amd64:
2
+ ubuntu-1404-amd64-master:
3
3
  roles:
4
4
  - master
5
5
  - dashboard
@@ -0,0 +1,19 @@
1
+ $git_package = $osfamily ? {
2
+ 'Debian' => 'git-core',
3
+ default => 'git'
4
+ }
5
+ class { 'git':
6
+ package_name => $git_package
7
+ }
8
+ ->
9
+ git::config { 'user.name':
10
+ value => 'Tester',
11
+ }
12
+ ->
13
+ git::config { 'user.email':
14
+ value => 'tester@puppetlabs.com',
15
+ }
16
+ ->
17
+ file { '<%= git_repo_path %>':
18
+ ensure => directory
19
+ }
@@ -1,3 +1,4 @@
1
+ require 'erb'
1
2
  require 'git_utils'
2
3
  require 'r10k_utils'
3
4
  require 'master_manipulator'
@@ -13,6 +14,10 @@ git_control_remote = File.join(git_repo_path, "#{git_repo_name}.git")
13
14
  git_control_remote_head_path = File.join(git_control_remote, 'HEAD')
14
15
  git_environments_path = File.join('/root', git_repo_name)
15
16
 
17
+ local_files_root_path = ENV['FILES'] || 'files'
18
+ git_manifest_template_path = File.join(local_files_root_path, 'pre-suite', 'git_config.pp.erb')
19
+ git_manifest = ERB.new(File.read(git_manifest_template_path)).result(binding)
20
+
16
21
  step 'Get PE Version'
17
22
  pe_major = on(master, 'facter -p pe_major_version').stdout.rstrip
18
23
  pe_minor = on(master, 'facter -p pe_minor_version').stdout.rstrip
@@ -22,23 +27,6 @@ if pe_version < 3.7
22
27
  fail_test('This pre-suite requires PE 3.7 or above!')
23
28
  end
24
29
 
25
- #In-line files
26
- git_manifest = <<-MANIFEST
27
- class { 'git': }
28
- ->
29
- git::config { 'user.name':
30
- value => 'Tester',
31
- }
32
- ->
33
- git::config { 'user.email':
34
- value => 'tester@puppetlabs.com',
35
- }
36
- ->
37
- file { '#{git_repo_path}':
38
- ensure => directory
39
- }
40
- MANIFEST
41
-
42
30
  #Setup
43
31
  step 'Stub Forge on Master'
44
32
  stub_forge_on(master)
@@ -40,8 +40,6 @@ on(master, "rm -rf #{prod_env_path}")
40
40
  step 'Configure r10k'
41
41
  create_remote_file(master, r10k_config_path, r10k_conf)
42
42
  on(master, "chmod 644 #{r10k_config_path}")
43
- #Work-a-round until CODEMGMT-110 is resolved
44
- on(master, "ln -s #{r10k_config_path} /etc/r10k.yaml")
45
43
 
46
44
  step 'Deploy "production" Environment via r10k'
47
45
  on(master, 'r10k deploy environment -v')
@@ -0,0 +1,86 @@
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.