r10k 0.0.9 → 1.0.0rc1
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.
- data/bin/r10k +1 -1
- data/lib/r10k.rb +0 -4
- data/lib/r10k/cli.rb +9 -5
- data/lib/r10k/cli/deploy.rb +108 -0
- data/lib/r10k/cli/environment.rb +5 -1
- data/lib/r10k/cli/environment/deploy.rb +6 -28
- data/lib/r10k/cli/environment/list.rb +6 -10
- data/lib/r10k/cli/environment/stale.rb +6 -16
- data/lib/r10k/cli/module.rb +5 -1
- data/lib/r10k/cli/module/deploy.rb +5 -32
- data/lib/r10k/cli/module/list.rb +6 -27
- data/lib/r10k/cli/puppetfile.rb +76 -0
- data/lib/r10k/cli/synchronize.rb +8 -24
- data/lib/r10k/cli/version.rb +22 -0
- data/lib/r10k/deployment.rb +55 -26
- data/lib/r10k/deployment/config.rb +69 -0
- data/lib/r10k/{config → deployment/config}/loader.rb +9 -5
- data/lib/r10k/deployment/environment.rb +88 -0
- data/lib/r10k/deployment/source.rb +79 -0
- data/lib/r10k/errors.rb +3 -5
- data/lib/r10k/execution.rb +43 -0
- data/lib/r10k/git/cache.rb +131 -0
- data/lib/r10k/git/errors.rb +34 -0
- data/lib/r10k/git/repository.rb +74 -0
- data/lib/r10k/git/working_dir.rb +142 -0
- data/lib/r10k/logging.rb +6 -2
- data/lib/r10k/module.rb +10 -13
- data/lib/r10k/module/forge.rb +35 -22
- data/lib/r10k/module/git.rb +18 -8
- data/lib/r10k/puppetfile.rb +107 -0
- data/lib/r10k/task.rb +13 -0
- data/lib/r10k/task/deployment.rb +151 -0
- data/lib/r10k/task/environment.rb +29 -0
- data/lib/r10k/task/module.rb +18 -0
- data/lib/r10k/task/puppetfile.rb +99 -0
- data/lib/r10k/task_runner.rb +72 -0
- data/lib/r10k/util/purgeable.rb +50 -0
- data/lib/r10k/version.rb +1 -1
- data/spec/unit/deployment/environment_spec.rb +19 -0
- data/spec/unit/git/cache_spec.rb +37 -0
- data/spec/unit/git/working_dir_spec.rb +15 -0
- data/spec/unit/module/forge_spec.rb +95 -0
- data/spec/unit/module_spec.rb +29 -0
- metadata +79 -44
- data/lib/r10k/action.rb +0 -7
- data/lib/r10k/action/environment.rb +0 -74
- data/lib/r10k/action/module.rb +0 -36
- data/lib/r10k/cli/cache.rb +0 -32
- data/lib/r10k/config.rb +0 -46
- data/lib/r10k/deployment/environment_collection.rb +0 -75
- data/lib/r10k/librarian.rb +0 -31
- data/lib/r10k/librarian/dsl.rb +0 -20
- data/lib/r10k/root.rb +0 -98
- data/lib/r10k/synchro/git.rb +0 -226
data/bin/r10k
CHANGED
@@ -11,7 +11,7 @@ rescue Interrupt
|
|
11
11
|
rescue SystemExit => e
|
12
12
|
exit(e.status)
|
13
13
|
rescue Exception => e
|
14
|
-
$stderr.puts "\
|
14
|
+
$stderr.puts "\nError while running: #{e.inspect}".red
|
15
15
|
$stderr.puts e.backtrace.join("\n").red if ARGV.include? '--trace'
|
16
16
|
exit(1)
|
17
17
|
end
|
data/lib/r10k.rb
CHANGED
data/lib/r10k/cli.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'r10k'
|
2
2
|
require 'r10k/logging'
|
3
|
+
require 'r10k/version'
|
3
4
|
require 'r10k/cli/ext/logging'
|
5
|
+
|
4
6
|
require 'cri'
|
5
7
|
|
6
8
|
module R10K::CLI
|
@@ -19,16 +21,16 @@ module R10K::CLI
|
|
19
21
|
exit 0
|
20
22
|
end
|
21
23
|
|
22
|
-
required :c, :config, 'Specify a configuration file' do |value, cmd|
|
23
|
-
R10K::Deployment.config.configfile = value
|
24
|
-
end
|
25
|
-
|
26
24
|
required :v, :verbose, 'Set verbosity level' do |value, cmd|
|
27
25
|
R10K::Logging.level = Integer(value)
|
28
26
|
end
|
29
27
|
|
30
28
|
flag :t, :trace, 'Display stack traces on application crash'
|
31
29
|
|
30
|
+
required :c, :config, 'Specify a configuration file' do |value, cmd|
|
31
|
+
logger.warn "Calling `r10k --config <action>` as a global option is deprecated; use r10k <action> --config"
|
32
|
+
end
|
33
|
+
|
32
34
|
run do |opts, args, cmd|
|
33
35
|
puts cmd.help
|
34
36
|
exit 0
|
@@ -37,7 +39,9 @@ module R10K::CLI
|
|
37
39
|
end
|
38
40
|
end
|
39
41
|
|
42
|
+
require 'r10k/cli/deploy'
|
40
43
|
require 'r10k/cli/environment'
|
41
44
|
require 'r10k/cli/module'
|
42
|
-
require 'r10k/cli/cache'
|
43
45
|
require 'r10k/cli/synchronize'
|
46
|
+
require 'r10k/cli/puppetfile'
|
47
|
+
require 'r10k/cli/version'
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require 'r10k/cli'
|
2
|
+
require 'r10k/deployment'
|
3
|
+
require 'r10k/deployment/config'
|
4
|
+
|
5
|
+
require 'r10k/task_runner'
|
6
|
+
require 'r10k/task/deployment'
|
7
|
+
|
8
|
+
require 'cri'
|
9
|
+
|
10
|
+
module R10K::CLI
|
11
|
+
module Deploy
|
12
|
+
def self.command
|
13
|
+
@cmd ||= Cri::Command.define do
|
14
|
+
name 'deploy'
|
15
|
+
usage 'deploy <subcommand>'
|
16
|
+
summary 'Puppet dynamic environment deployment'
|
17
|
+
|
18
|
+
required :c, :config, 'Specify a configuration file'
|
19
|
+
|
20
|
+
run do |opts, args, cmd|
|
21
|
+
puts cmd.help
|
22
|
+
exit 0
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
module Environment
|
28
|
+
def self.command
|
29
|
+
@cmd ||= Cri::Command.define do
|
30
|
+
name 'environment'
|
31
|
+
usage 'environment <options> <environment> <...>'
|
32
|
+
summary 'deploy environments and their dependent modules'
|
33
|
+
|
34
|
+
flag :p, :puppetfile, 'Deploy modules from a puppetfile'
|
35
|
+
|
36
|
+
run do |opts, args, cmd|
|
37
|
+
deploy = R10K::Deployment.load_config(opts[:config])
|
38
|
+
|
39
|
+
task = R10K::Task::Deployment::DeployEnvironments.new(deploy)
|
40
|
+
task.update_puppetfile = opts[:puppetfile]
|
41
|
+
task.environment_names = args
|
42
|
+
|
43
|
+
purge = R10K::Task::Deployment::PurgeEnvironments.new(deploy)
|
44
|
+
|
45
|
+
runner = R10K::TaskRunner.new(:trace => opts[:trace])
|
46
|
+
runner.append_task task
|
47
|
+
runner.append_task purge
|
48
|
+
runner.run
|
49
|
+
|
50
|
+
exit runner.exit_value
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
self.command.add_command(Environment.command)
|
56
|
+
|
57
|
+
module Module
|
58
|
+
def self.command
|
59
|
+
@cmd ||= Cri::Command.define do
|
60
|
+
name 'module'
|
61
|
+
usage 'module [module] <module ...>'
|
62
|
+
summary 'deploy modules in all environments'
|
63
|
+
|
64
|
+
run do |opts, args, cmd|
|
65
|
+
deploy = R10K::Deployment.load_config(opts[:config])
|
66
|
+
|
67
|
+
task = R10K::Task::Deployment::DeployModules.new(deploy)
|
68
|
+
task.module_names = args
|
69
|
+
|
70
|
+
runner = R10K::TaskRunner.new(:trace => opts[:trace])
|
71
|
+
runner.append_task task
|
72
|
+
runner.run
|
73
|
+
|
74
|
+
exit runner.exit_value
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
self.command.add_command(Module.command)
|
80
|
+
|
81
|
+
module Display
|
82
|
+
def self.command
|
83
|
+
@cmd ||= Cri::Command.define do
|
84
|
+
name 'display'
|
85
|
+
usage 'display'
|
86
|
+
summary 'Display environments and modules in the deployment'
|
87
|
+
|
88
|
+
flag :p, :puppetfile, 'Display Puppetfile modules'
|
89
|
+
|
90
|
+
run do |opts, args, cmd|
|
91
|
+
deploy = R10K::Deployment.load_config(opts[:config])
|
92
|
+
|
93
|
+
task = R10K::Task::Deployment::Display.new(deploy)
|
94
|
+
task.puppetfile = opts[:puppetfile]
|
95
|
+
|
96
|
+
runner = R10K::TaskRunner.new(:trace => opts[:trace])
|
97
|
+
runner.prepend_task task
|
98
|
+
runner.run
|
99
|
+
|
100
|
+
exit runner.exit_value
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
self.command.add_command(Display.command)
|
106
|
+
end
|
107
|
+
self.command.add_command(Deploy.command)
|
108
|
+
end
|
data/lib/r10k/cli/environment.rb
CHANGED
@@ -7,7 +7,11 @@ module R10K::CLI
|
|
7
7
|
@cmd ||= Cri::Command.define do
|
8
8
|
name 'environment'
|
9
9
|
usage 'environment <subcommand>'
|
10
|
-
summary 'Operate on a specific environment'
|
10
|
+
summary 'DEPRECATED: Operate on a specific environment'
|
11
|
+
|
12
|
+
required :c, :config, 'Specify a configuration file'
|
13
|
+
|
14
|
+
be_hidden
|
11
15
|
|
12
16
|
run do |opts, args, cmd|
|
13
17
|
puts cmd.help
|
@@ -1,9 +1,6 @@
|
|
1
1
|
require 'r10k/cli/environment'
|
2
|
-
require 'r10k/
|
3
|
-
require 'r10k/action'
|
4
|
-
|
2
|
+
require 'r10k/cli/deploy'
|
5
3
|
require 'cri'
|
6
|
-
require 'middleware'
|
7
4
|
|
8
5
|
module R10K::CLI::Environment
|
9
6
|
module Deploy
|
@@ -11,35 +8,16 @@ module R10K::CLI::Environment
|
|
11
8
|
@cmd ||= Cri::Command.define do
|
12
9
|
name 'deploy'
|
13
10
|
usage 'deploy <environment> <...>'
|
14
|
-
summary 'Deploy an environment'
|
11
|
+
summary 'DEPRECATED: Deploy an environment'
|
15
12
|
|
16
13
|
flag :r, :recurse, 'Recursively update submodules'
|
17
14
|
flag :u, :update, "Enable or disable cache updating"
|
18
15
|
|
19
|
-
|
20
|
-
deployment = R10K::Deployment.instance
|
21
|
-
env_list = deployment.environments
|
22
|
-
|
23
|
-
if not args.empty?
|
24
|
-
environments = env_list.select {|env| args.include? env.name }
|
25
|
-
else
|
26
|
-
environments = env_list
|
27
|
-
end
|
16
|
+
be_hidden
|
28
17
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# Prepare middleware environment
|
36
|
-
stack_env = {
|
37
|
-
:update_cache => opts[:update],
|
38
|
-
:recurse => opts[:recurse],
|
39
|
-
:trace => opts[:trace],
|
40
|
-
}
|
41
|
-
|
42
|
-
stack.call(stack_env)
|
18
|
+
run do |opts, args, cmd|
|
19
|
+
logger.warn "This command is deprecated; please use `r10k deploy environment`"
|
20
|
+
R10K::CLI::Deploy::Environment.command.block.call(opts,args,cmd)
|
43
21
|
end
|
44
22
|
end
|
45
23
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'r10k/cli/environment'
|
2
|
-
require 'r10k/
|
2
|
+
require 'r10k/cli/deploy'
|
3
3
|
require 'cri'
|
4
4
|
|
5
5
|
module R10K::CLI::Environment
|
@@ -8,17 +8,13 @@ module R10K::CLI::Environment
|
|
8
8
|
@cmd ||= Cri::Command.define do
|
9
9
|
name 'list'
|
10
10
|
usage 'list'
|
11
|
-
summary 'List all available environments'
|
11
|
+
summary 'DEPRECATED: List all available environments'
|
12
12
|
|
13
|
-
|
14
|
-
deployment = R10K::Deployment.instance
|
15
|
-
output = deployment.environments.inject('') do |str, root|
|
16
|
-
str << " - "
|
17
|
-
str << "#{root.name}: #{root.full_path}"
|
18
|
-
str << "\n"
|
19
|
-
end
|
13
|
+
be_hidden
|
20
14
|
|
21
|
-
|
15
|
+
run do |opts, args, cmd|
|
16
|
+
logger.warn "This command is deprecated; please use `r10k deploy display`"
|
17
|
+
R10K::CLI::Deploy::Display.command.block.call(opts,args,cmd)
|
22
18
|
end
|
23
19
|
end
|
24
20
|
end
|
@@ -8,24 +8,14 @@ module R10K::CLI::Environment
|
|
8
8
|
@cmd ||= Cri::Command.define do
|
9
9
|
name 'stale'
|
10
10
|
usage 'stale <directory> [directory ...]'
|
11
|
-
summary 'List all stale environments'
|
11
|
+
summary 'REMOVED: List all stale environments'
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
if args.empty?
|
17
|
-
$stderr.print "ERROR: ".red
|
18
|
-
$stderr.puts "#{cmd.name} requires one or more directories"
|
19
|
-
$stderr.puts cmd.help
|
20
|
-
exit(1)
|
21
|
-
end
|
13
|
+
description "This command has been removed in 1.0.0"
|
14
|
+
be_hidden
|
22
15
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
puts " - #{stale_dir}"
|
27
|
-
end
|
28
|
-
end
|
16
|
+
run do |opts, args, cmd|
|
17
|
+
$stderr.puts "#{cmd.name} has been removed in 1.0.0"
|
18
|
+
exit 1
|
29
19
|
end
|
30
20
|
end
|
31
21
|
end
|
data/lib/r10k/cli/module.rb
CHANGED
@@ -7,7 +7,11 @@ module R10K::CLI
|
|
7
7
|
@cmd ||= Cri::Command.define do
|
8
8
|
name 'module'
|
9
9
|
usage 'module <subcommand>'
|
10
|
-
summary 'Operate on a specific puppet module'
|
10
|
+
summary 'DEPRECATED: Operate on a specific puppet module'
|
11
|
+
|
12
|
+
be_hidden
|
13
|
+
|
14
|
+
required :c, :config, 'Specify a configuration file'
|
11
15
|
|
12
16
|
required :e, :environment, 'Specify a particular environment'
|
13
17
|
|
@@ -11,42 +11,15 @@ module R10K::CLI::Module
|
|
11
11
|
@cmd ||= Cri::Command.define do
|
12
12
|
name 'deploy'
|
13
13
|
usage 'deploy [module name] <module name> ...'
|
14
|
-
summary 'Deploy a module'
|
14
|
+
summary 'DEPRECATED: Deploy a module'
|
15
|
+
|
16
|
+
be_hidden
|
15
17
|
|
16
18
|
flag :u, :update, "Update module cache"
|
17
19
|
|
18
20
|
run do |opts, args, cmd|
|
19
|
-
|
20
|
-
|
21
|
-
puts cmd.help
|
22
|
-
exit 1
|
23
|
-
end
|
24
|
-
|
25
|
-
env_list = R10K::Deployment.instance.environments
|
26
|
-
|
27
|
-
if opts[:environment]
|
28
|
-
environments = env_list.select {|env| env.name == opts[:environment]}
|
29
|
-
else
|
30
|
-
environments = env_list
|
31
|
-
end
|
32
|
-
|
33
|
-
environments.each do |env|
|
34
|
-
mods = env.modules.select { |mod| mod.name == module_name }
|
35
|
-
|
36
|
-
if mods.empty?
|
37
|
-
logger.warn "No modules with name #{module_name} matched in environment #{env.name.inspect}".red
|
38
|
-
end
|
39
|
-
|
40
|
-
stack = Middleware::Builder.new
|
41
|
-
mods.each { |mod| stack.use R10K::Action::Module::Deploy, mod }
|
42
|
-
|
43
|
-
stack_env = {
|
44
|
-
:update_cache => opts[:update],
|
45
|
-
:trace => opts[:trace],
|
46
|
-
}
|
47
|
-
|
48
|
-
stack.call(stack_env)
|
49
|
-
end
|
21
|
+
logger.warn "This command is deprecated; please use `r10k deploy module`"
|
22
|
+
R10K::CLI::Deploy::Module.command.block.call(opts,args,cmd)
|
50
23
|
end
|
51
24
|
end
|
52
25
|
end
|
data/lib/r10k/cli/module/list.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'r10k/cli/module'
|
2
|
-
require 'r10k/
|
2
|
+
require 'r10k/cli/deploy'
|
3
3
|
require 'cri'
|
4
4
|
|
5
5
|
module R10K::CLI::Module
|
@@ -8,34 +8,13 @@ module R10K::CLI::Module
|
|
8
8
|
@cmd ||= Cri::Command.define do
|
9
9
|
name 'list'
|
10
10
|
usage 'list'
|
11
|
-
summary 'List modules that are instantiated in environments'
|
11
|
+
summary 'DEPRECATED: List modules that are instantiated in environments'
|
12
12
|
|
13
|
-
|
14
|
-
deployment = R10K::Deployment.instance
|
15
|
-
env_list = deployment.environments
|
16
|
-
|
17
|
-
update_cache = (defined? opts[:update]) ? (opts[:update] == 'true') : false
|
18
|
-
|
19
|
-
if opts[:environment]
|
20
|
-
environments = env_list.select {|env| env.name == opts[:environment]}
|
21
|
-
else
|
22
|
-
environments = env_list
|
23
|
-
end
|
24
|
-
|
25
|
-
printree = {}
|
13
|
+
be_hidden
|
26
14
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
printree[env.name] = module_names
|
31
|
-
end
|
32
|
-
|
33
|
-
printree.each_pair do |env_name, mod_list|
|
34
|
-
puts " - #{env_name}"
|
35
|
-
mod_list.each do |mod|
|
36
|
-
puts " #{mod}"
|
37
|
-
end
|
38
|
-
end
|
15
|
+
run do |opts, args, cmd|
|
16
|
+
logger.warn "This command is deprecated; please use `r10k deploy display`"
|
17
|
+
R10K::CLI::Deploy::Display.command.block.call(opts,args,cmd)
|
39
18
|
end
|
40
19
|
end
|
41
20
|
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'r10k/cli'
|
2
|
+
require 'r10k/puppetfile'
|
3
|
+
|
4
|
+
require 'cri'
|
5
|
+
|
6
|
+
module R10K::CLI
|
7
|
+
module Puppetfile
|
8
|
+
def self.command
|
9
|
+
@cmd ||= Cri::Command.define do
|
10
|
+
name 'puppetfile'
|
11
|
+
usage 'puppetfile <subcommand>'
|
12
|
+
summary 'Perform operations on a Puppetfile'
|
13
|
+
|
14
|
+
run do |opts, args, cmd|
|
15
|
+
puts cmd.help
|
16
|
+
exit 0
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module Install
|
22
|
+
def self.command
|
23
|
+
@cmd ||= Cri::Command.define do
|
24
|
+
name 'install'
|
25
|
+
usage 'install'
|
26
|
+
summary 'Install all modules from a Puppetfile'
|
27
|
+
|
28
|
+
run do |opts, args, cmd|
|
29
|
+
puppetfile_root = Dir.getwd
|
30
|
+
puppetfile_path = ENV['PUPPETFILE_DIR']
|
31
|
+
puppetfile = ENV['PUPPETFILE']
|
32
|
+
|
33
|
+
puppetfile = R10K::Puppetfile.new(puppetfile_root, puppetfile_path, puppetfile)
|
34
|
+
|
35
|
+
runner = R10K::TaskRunner.new(opts)
|
36
|
+
task = R10K::Task::Puppetfile::Sync.new(puppetfile)
|
37
|
+
runner.append_task task
|
38
|
+
|
39
|
+
runner.run
|
40
|
+
|
41
|
+
exit runner.exit_value
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
self.command.add_command(Install.command)
|
47
|
+
|
48
|
+
module Purge
|
49
|
+
def self.command
|
50
|
+
@cmd ||= Cri::Command.define do
|
51
|
+
name 'purge'
|
52
|
+
usage 'purge'
|
53
|
+
summary 'Purge unmanaged modules from a Puppetfile managed directory'
|
54
|
+
|
55
|
+
run do |opts, args, cmd|
|
56
|
+
puppetfile_root = Dir.getwd
|
57
|
+
puppetfile_path = ENV['PUPPETFILE_DIR']
|
58
|
+
puppetfile = ENV['PUPPETFILE']
|
59
|
+
|
60
|
+
puppetfile = R10K::Puppetfile.new(puppetfile_root, puppetfile_path, puppetfile)
|
61
|
+
|
62
|
+
runner = R10K::TaskRunner.new(opts)
|
63
|
+
task = R10K::Task::Puppetfile::Purge.new(puppetfile)
|
64
|
+
runner.append_task task
|
65
|
+
|
66
|
+
runner.run
|
67
|
+
|
68
|
+
exit runner.exit_value
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
self.command.add_command(Purge.command)
|
74
|
+
end
|
75
|
+
self.command.add_command(Puppetfile.command)
|
76
|
+
end
|