r10k 1.5.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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.