vagabond 0.2.0 → 0.2.2
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/CHANGELOG.md +18 -0
- data/README.md +125 -4
- data/bin/vagabond +43 -16
- data/lib/vagabond/actions/cluster.rb +66 -0
- data/lib/vagabond/actions/create.rb +12 -7
- data/lib/vagabond/actions/destroy.rb +69 -15
- data/lib/vagabond/actions/init.rb +75 -0
- data/lib/vagabond/actions/provision.rb +4 -2
- data/lib/vagabond/actions/status.rb +33 -22
- data/lib/vagabond/actions/up.rb +8 -1
- data/lib/vagabond/bootstraps/server-zero.erb +20 -0
- data/lib/vagabond/bootstraps/server.erb +3 -2
- data/lib/vagabond/constants.rb +0 -15
- data/lib/vagabond/cookbooks/lxc/CHANGELOG.md +16 -0
- data/lib/vagabond/cookbooks/lxc/Gemfile +3 -2
- data/lib/vagabond/cookbooks/lxc/Gemfile.lock +30 -121
- data/lib/vagabond/cookbooks/lxc/README.md +43 -14
- data/lib/vagabond/cookbooks/lxc/attributes/default.rb +3 -3
- data/lib/vagabond/cookbooks/lxc/files/default/lxc-awesome-ephemeral +499 -0
- data/lib/vagabond/cookbooks/lxc/libraries/lxc.rb +223 -58
- data/lib/vagabond/cookbooks/lxc/libraries/lxc_file_config.rb +3 -0
- data/lib/vagabond/cookbooks/lxc/libraries/monkey.rb +51 -0
- data/lib/vagabond/cookbooks/lxc/metadata.rb +6 -5
- data/lib/vagabond/cookbooks/lxc/providers/config.rb +9 -16
- data/lib/vagabond/cookbooks/lxc/providers/container.rb +241 -229
- data/lib/vagabond/cookbooks/lxc/providers/default.rb +57 -0
- data/lib/vagabond/cookbooks/lxc/providers/ephemeral.rb +40 -0
- data/lib/vagabond/cookbooks/lxc/providers/fstab.rb +13 -54
- data/lib/vagabond/cookbooks/lxc/providers/interface.rb +13 -67
- data/lib/vagabond/cookbooks/lxc/providers/service.rb +14 -14
- data/lib/vagabond/cookbooks/lxc/recipes/default.rb +17 -4
- data/lib/vagabond/cookbooks/lxc/recipes/install_dependencies.rb +1 -1
- data/lib/vagabond/cookbooks/lxc/resources/config.rb +2 -2
- data/lib/vagabond/cookbooks/lxc/resources/container.rb +31 -6
- data/lib/vagabond/cookbooks/lxc/resources/default.rb +12 -0
- data/lib/vagabond/cookbooks/lxc/resources/ephemeral.rb +13 -0
- data/lib/vagabond/cookbooks/lxc/resources/fstab.rb +2 -1
- data/lib/vagabond/cookbooks/lxc/resources/interface.rb +6 -3
- data/lib/vagabond/cookbooks/lxc/resources/service.rb +1 -1
- data/lib/vagabond/cookbooks/lxc/templates/default/file_content.erb +2 -0
- data/lib/vagabond/cookbooks/lxc/templates/default/interface.erb +9 -3
- data/lib/vagabond/cookbooks/vagabond/README.md +10 -0
- data/lib/vagabond/cookbooks/vagabond/attributes/default.rb +1 -0
- data/lib/vagabond/cookbooks/vagabond/files/default/lxc-centos +13 -6
- data/lib/vagabond/cookbooks/vagabond/metadata.rb +1 -0
- data/lib/vagabond/cookbooks/vagabond/recipes/default.rb +46 -4
- data/lib/vagabond/cookbooks/vagabond/recipes/zero.rb +9 -0
- data/lib/vagabond/errors.rb +23 -0
- data/lib/vagabond/helpers.rb +41 -14
- data/lib/vagabond/internal_configuration.rb +120 -27
- data/lib/vagabond/kitchen.rb +143 -63
- data/lib/vagabond/knife.rb +8 -5
- data/lib/vagabond/layout.rb +16 -0
- data/lib/vagabond/monkey/kitchen_config.rb +23 -0
- data/lib/vagabond/server.rb +79 -63
- data/lib/vagabond/spec.rb +345 -0
- data/lib/vagabond/uploader.rb +30 -0
- data/lib/vagabond/uploader/berkshelf.rb +53 -0
- data/lib/vagabond/uploader/knife.rb +24 -0
- data/lib/vagabond/uploader/librarian.rb +31 -0
- data/lib/vagabond/vagabond.rb +30 -11
- data/lib/vagabond/vagabondfile.rb +40 -5
- data/lib/vagabond/version.rb +1 -1
- data/vagabond.gemspec +5 -2
- metadata +75 -15
- data/lib/vagabond/cookbooks/lxc/resources/#container.rb# +0 -28
- data/lib/vagabond/cookbooks/lxc/test/kitchen/Kitchenfile +0 -7
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/metadata.rb +0 -2
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/centos_lxc.rb +0 -0
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/chef-bootstrap.rb +0 -0
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_files.rb +0 -0
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_templates.rb +0 -0
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/ubuntu_lxc.rb +0 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'vagabond/uploader/knife'
|
2
|
+
|
3
|
+
module Vagabond
|
4
|
+
class Uploader
|
5
|
+
class Librarian < Knife
|
6
|
+
|
7
|
+
def initialize(*args)
|
8
|
+
super
|
9
|
+
unless(options[:cheffile])
|
10
|
+
raise ArgumentError.new "Option 'cheffile' is required!"
|
11
|
+
end
|
12
|
+
unless(File.exists?(options[:cheffile]))
|
13
|
+
raise ArgumentError.new "Option 'cheffile' is not a valid path!"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def prepare
|
18
|
+
com = "librarian-chef install --path=#{store}"
|
19
|
+
debug(com)
|
20
|
+
cmd = Mixlib::ShellOut.new(com,
|
21
|
+
:live_stream => options[:debug],
|
22
|
+
:cwd => File.dirname(options[:cheffile])
|
23
|
+
)
|
24
|
+
cmd.run_command
|
25
|
+
cmd.error!
|
26
|
+
options[:cookbook_paths] = [store]
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/vagabond/vagabond.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'chef/knife/core/ui'
|
3
|
+
require 'vagabond/uploader'
|
3
4
|
require File.join(File.dirname(__FILE__), 'cookbooks/lxc/libraries/lxc.rb')
|
4
5
|
|
5
|
-
%w(vagabondfile internal_configuration helpers).each do |dep|
|
6
|
+
%w(constants errors vagabondfile internal_configuration helpers).each do |dep|
|
6
7
|
require "vagabond/#{dep}"
|
7
8
|
end
|
8
9
|
|
@@ -78,6 +79,7 @@ module Vagabond
|
|
78
79
|
# Creates an instance
|
79
80
|
def initialize(*args)
|
80
81
|
super
|
82
|
+
@threads = Mash.new
|
81
83
|
@mappings_key = :mappings
|
82
84
|
end
|
83
85
|
|
@@ -113,7 +115,7 @@ module Vagabond
|
|
113
115
|
setup_ui
|
114
116
|
ui.info "#{ui.color('Vagabond:', :yellow, :bold)} - Advocating idleness and work-shyness"
|
115
117
|
ui.info " #{ui.color('Version:', :blue)} - #{VERSION.version} (#{VERSION.codename})"
|
116
|
-
exit
|
118
|
+
exit
|
117
119
|
end
|
118
120
|
|
119
121
|
def execute
|
@@ -125,18 +127,20 @@ module Vagabond
|
|
125
127
|
@name = name
|
126
128
|
@options = options.dup
|
127
129
|
if(args.last.is_a?(Hash))
|
128
|
-
_ui = args.delete(:ui)
|
130
|
+
_ui = args.last.delete(:ui)
|
129
131
|
@options.merge!(args.last)
|
130
132
|
end
|
133
|
+
@leftover_args = args
|
131
134
|
setup_ui(_ui)
|
132
135
|
load_configurations
|
133
|
-
validate!
|
136
|
+
validate! unless action == 'cluster' # TODO -> allow action
|
137
|
+
# method to check for validation run
|
134
138
|
end
|
135
139
|
|
136
140
|
def name_required!
|
137
141
|
unless(name)
|
138
142
|
ui.fatal "Node name is required!"
|
139
|
-
|
143
|
+
raise VagabondError::MissingNodeName.new
|
140
144
|
end
|
141
145
|
end
|
142
146
|
|
@@ -150,9 +154,10 @@ module Vagabond
|
|
150
154
|
end
|
151
155
|
|
152
156
|
def load_configurations
|
153
|
-
@vagabondfile = Vagabondfile.new(options[:vagabond_file])
|
157
|
+
@vagabondfile = Vagabondfile.new(options[:vagabond_file], :allow_missing)
|
154
158
|
options[:sudo] = sudo
|
155
159
|
options[:disable_solo] = true if @action.to_s == 'status' && lxc_installed?
|
160
|
+
Chef::Log.init('/dev/null') unless options[:debug]
|
156
161
|
Lxc.use_sudo = @vagabondfile[:sudo].nil? ? true : @vagabondfile[:sudo]
|
157
162
|
@internal_config = InternalConfiguration.new(@vagabondfile, ui, options)
|
158
163
|
@config = @vagabondfile[:boxes][name]
|
@@ -162,10 +167,12 @@ module Vagabond
|
|
162
167
|
srv_name = @internal_config[:mappings][:server]
|
163
168
|
srv = Lxc.new(srv_name) if srv_name
|
164
169
|
if(srv_name && srv.running?)
|
165
|
-
|
170
|
+
proto = @vagabondfile[:local_chef_server][:zero] ? 'http' : 'https'
|
171
|
+
options[:knife_opts] = " --server-url #{proto}://#{srv.container_ip(10, true)}"
|
166
172
|
else
|
167
|
-
|
168
|
-
|
173
|
+
unless(@action.to_sym == :status || name.to_s =='server')
|
174
|
+
ui.warn 'Local chef server is not currently running!' unless @action.to_sym == :status
|
175
|
+
end
|
169
176
|
end
|
170
177
|
end
|
171
178
|
end
|
@@ -175,12 +182,12 @@ module Vagabond
|
|
175
182
|
if(name.to_s == 'server')
|
176
183
|
ui.fatal "RESERVED node name supplied: #{ui.color(name, :red)}"
|
177
184
|
ui.info ui.color(" -> Try: vagabond server #{@action}", :cyan)
|
178
|
-
|
185
|
+
raise VagabondError::ReservedName.new(name)
|
179
186
|
end
|
180
187
|
if(name && config.nil? && !options[:disable_name_validate])
|
181
188
|
ui.fatal "Invalid node name supplied: #{ui.color(name, :red)}"
|
182
189
|
ui.info ui.color(" -> Available: #{vagabondfile[:nodes].keys.sort.join(', ')}", :cyan)
|
183
|
-
|
190
|
+
raise VagabondError::InvalidName.new(name)
|
184
191
|
end
|
185
192
|
end
|
186
193
|
|
@@ -202,5 +209,17 @@ module Vagabond
|
|
202
209
|
def lxc_installed?
|
203
210
|
system('which lxc-info > /dev/null')
|
204
211
|
end
|
212
|
+
|
213
|
+
def wait_for_completion(type=nil)
|
214
|
+
if(type)
|
215
|
+
Array(@threads[:type]).map(&:join)
|
216
|
+
else
|
217
|
+
@threads.values.map do |threads|
|
218
|
+
threads.each do |thread_set|
|
219
|
+
Array(thread_set).map(&:join)
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
205
224
|
end
|
206
225
|
end
|
@@ -6,6 +6,7 @@ module Vagabond
|
|
6
6
|
attr_reader :path
|
7
7
|
attr_reader :config
|
8
8
|
|
9
|
+
DEFAULT_KEYS = %w(boxes mappings test_mappings spec_mappings local_chef_server)
|
9
10
|
ALIASES = Mash.new(:boxes => :nodes, :nodes => :boxes)
|
10
11
|
|
11
12
|
def initialize(path=nil, *args)
|
@@ -15,6 +16,9 @@ module Vagabond
|
|
15
16
|
end
|
16
17
|
|
17
18
|
def [](k)
|
19
|
+
if(DEFAULT_KEYS.include?(k.to_s))
|
20
|
+
@config[k] ||= Mash.new
|
21
|
+
end
|
18
22
|
aliased(k) || @config[k]
|
19
23
|
end
|
20
24
|
|
@@ -22,10 +26,10 @@ module Vagabond
|
|
22
26
|
if(ALIASES.has_key?(k))
|
23
27
|
v = [@config[k], @config[ALIASES[k]]].compact
|
24
28
|
if(v.size > 1)
|
25
|
-
case v.first
|
29
|
+
case v.first
|
26
30
|
when Array
|
27
31
|
m = :|
|
28
|
-
when Hash
|
32
|
+
when Hash, Mash
|
29
33
|
m = :merge
|
30
34
|
else
|
31
35
|
m = :+
|
@@ -37,15 +41,42 @@ module Vagabond
|
|
37
41
|
end
|
38
42
|
end
|
39
43
|
|
40
|
-
def load_configuration!(
|
44
|
+
def load_configuration!(*args)
|
45
|
+
unless(args.empty?)
|
46
|
+
no_raise = args.first == true
|
47
|
+
force_store = args.include?(:force_store_path)
|
48
|
+
no_raise ||= force_store
|
49
|
+
end
|
41
50
|
if(@path && File.exists?(@path))
|
42
51
|
@config = Mash.new(self.instance_eval(IO.read(@path), @path, 1))
|
43
|
-
|
52
|
+
end
|
53
|
+
if(!@config || force_store)
|
44
54
|
raise 'No Vagabondfile file found!' unless no_raise
|
45
|
-
|
55
|
+
generate_store_path
|
56
|
+
@config = Mash[*DEFAULT_KEYS.map{|k| [k, Mash.new]}.flatten]
|
46
57
|
end
|
47
58
|
end
|
48
59
|
|
60
|
+
def generate_store_path
|
61
|
+
@path ||= File.expand_path(File.join(Dir.pwd, 'Vagabondfile'))
|
62
|
+
@store_path = File.join('/tmp/vagabond-solos', directory.gsub(%r{[^0-9a-zA-Z]}, '-'), 'Vagabondfile')
|
63
|
+
@store_path = File.expand_path(@store_path.gsub('-', '/'))
|
64
|
+
FileUtils.mkdir_p(File.dirname(@store_path))
|
65
|
+
File.dirname(@store_path)
|
66
|
+
end
|
67
|
+
|
68
|
+
def store_path
|
69
|
+
@store_path || @path
|
70
|
+
end
|
71
|
+
|
72
|
+
def directory
|
73
|
+
File.dirname(@path)
|
74
|
+
end
|
75
|
+
|
76
|
+
def store_directory
|
77
|
+
File.dirname(@store_path || @path)
|
78
|
+
end
|
79
|
+
|
49
80
|
def discover_path(path)
|
50
81
|
d_path = Dir.glob(File.join(path, 'Vagabondfile')).first
|
51
82
|
unless(d_path)
|
@@ -55,5 +86,9 @@ module Vagabond
|
|
55
86
|
end
|
56
87
|
d_path
|
57
88
|
end
|
89
|
+
|
90
|
+
def local_chef_server?
|
91
|
+
self[:local_chef_server] && self[:local_chef_server][:enabled]
|
92
|
+
end
|
58
93
|
end
|
59
94
|
end
|
data/lib/vagabond/version.rb
CHANGED
data/vagabond.gemspec
CHANGED
@@ -15,7 +15,10 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.files = Dir['**/*']
|
16
16
|
s.executables = ['vagabond']
|
17
17
|
s.add_dependency 'chef'
|
18
|
-
s.add_dependency 'librarian'
|
19
|
-
s.add_dependency 'test-kitchen', '1.0.0.alpha
|
18
|
+
s.add_dependency 'librarian-chef'
|
19
|
+
s.add_dependency 'test-kitchen', '>= 1.0.0.alpha'
|
20
20
|
s.add_dependency 'thor'
|
21
|
+
s.add_dependency 'uuidtools'
|
22
|
+
s.add_dependency 'elecksee', '>= 1.0.3'
|
23
|
+
s.add_dependency 'serverspec', '>= 0.6.3'
|
21
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagabond
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -28,7 +28,7 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name: librarian
|
31
|
+
name: librarian-chef
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
@@ -48,17 +48,17 @@ dependencies:
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- - '
|
51
|
+
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 1.0.0.alpha
|
53
|
+
version: 1.0.0.alpha
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- - '
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.0.0.alpha
|
61
|
+
version: 1.0.0.alpha
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: thor
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,6 +75,54 @@ dependencies:
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: uuidtools
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: elecksee
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 1.0.3
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.0.3
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: serverspec
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.6.3
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.6.3
|
78
126
|
description: Vagabonds, lazing about
|
79
127
|
email: chrisroberts.code@gmail.com
|
80
128
|
executables:
|
@@ -83,35 +131,34 @@ extensions: []
|
|
83
131
|
extra_rdoc_files:
|
84
132
|
- README.md
|
85
133
|
files:
|
134
|
+
- lib/vagabond/cookbooks/lxc/files/default/lxc-awesome-ephemeral
|
86
135
|
- lib/vagabond/cookbooks/lxc/files/default/knife_lxc
|
87
136
|
- lib/vagabond/cookbooks/lxc/metadata.rb
|
88
137
|
- lib/vagabond/cookbooks/lxc/templates/default/interface.erb
|
89
138
|
- lib/vagabond/cookbooks/lxc/templates/default/fstab.erb
|
90
139
|
- lib/vagabond/cookbooks/lxc/templates/default/client.rb.erb
|
140
|
+
- lib/vagabond/cookbooks/lxc/templates/default/file_content.erb
|
91
141
|
- lib/vagabond/cookbooks/lxc/templates/default/default-lxc.erb
|
92
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/metadata.rb
|
93
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_files.rb
|
94
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/centos_lxc.rb
|
95
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_templates.rb
|
96
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/ubuntu_lxc.rb
|
97
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/chef-bootstrap.rb
|
98
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/Kitchenfile
|
99
142
|
- lib/vagabond/cookbooks/lxc/Gemfile
|
100
143
|
- lib/vagabond/cookbooks/lxc/attributes/default.rb
|
101
144
|
- lib/vagabond/cookbooks/lxc/README.md
|
102
145
|
- lib/vagabond/cookbooks/lxc/providers/fstab.rb
|
146
|
+
- lib/vagabond/cookbooks/lxc/providers/default.rb
|
103
147
|
- lib/vagabond/cookbooks/lxc/providers/interface.rb
|
104
148
|
- lib/vagabond/cookbooks/lxc/providers/service.rb
|
105
149
|
- lib/vagabond/cookbooks/lxc/providers/config.rb
|
150
|
+
- lib/vagabond/cookbooks/lxc/providers/ephemeral.rb
|
106
151
|
- lib/vagabond/cookbooks/lxc/providers/container.rb
|
152
|
+
- lib/vagabond/cookbooks/lxc/libraries/monkey.rb
|
107
153
|
- lib/vagabond/cookbooks/lxc/libraries/lxc_file_config.rb
|
108
154
|
- lib/vagabond/cookbooks/lxc/libraries/lxc_expanded_resources.rb
|
109
155
|
- lib/vagabond/cookbooks/lxc/libraries/lxc.rb
|
110
156
|
- lib/vagabond/cookbooks/lxc/resources/fstab.rb
|
157
|
+
- lib/vagabond/cookbooks/lxc/resources/default.rb
|
111
158
|
- lib/vagabond/cookbooks/lxc/resources/interface.rb
|
112
159
|
- lib/vagabond/cookbooks/lxc/resources/service.rb
|
113
160
|
- lib/vagabond/cookbooks/lxc/resources/config.rb
|
114
|
-
- lib/vagabond/cookbooks/lxc/resources
|
161
|
+
- lib/vagabond/cookbooks/lxc/resources/ephemeral.rb
|
115
162
|
- lib/vagabond/cookbooks/lxc/resources/container.rb
|
116
163
|
- lib/vagabond/cookbooks/lxc/CHANGELOG.md
|
117
164
|
- lib/vagabond/cookbooks/lxc/Gemfile.lock
|
@@ -122,29 +169,42 @@ files:
|
|
122
169
|
- lib/vagabond/cookbooks/vagabond/files/default/lxc-centos
|
123
170
|
- lib/vagabond/cookbooks/vagabond/metadata.rb
|
124
171
|
- lib/vagabond/cookbooks/vagabond/attributes/default.rb
|
172
|
+
- lib/vagabond/cookbooks/vagabond/README.md
|
125
173
|
- lib/vagabond/cookbooks/vagabond/libraries/vagabond.rb
|
126
174
|
- lib/vagabond/cookbooks/vagabond/recipes/default.rb
|
175
|
+
- lib/vagabond/cookbooks/vagabond/recipes/zero.rb
|
176
|
+
- lib/vagabond/errors.rb
|
127
177
|
- lib/vagabond/server.rb
|
128
178
|
- lib/vagabond/kitchen.rb
|
129
179
|
- lib/vagabond/vagabondfile.rb
|
180
|
+
- lib/vagabond/bootstraps/server-zero.erb
|
130
181
|
- lib/vagabond/bootstraps/server.erb
|
131
182
|
- lib/vagabond/version.rb
|
132
183
|
- lib/vagabond/knife.rb
|
184
|
+
- lib/vagabond/layout.rb
|
133
185
|
- lib/vagabond/vagabond.rb
|
186
|
+
- lib/vagabond/monkey/kitchen_config.rb
|
187
|
+
- lib/vagabond/uploader/berkshelf.rb
|
188
|
+
- lib/vagabond/uploader/knife.rb
|
189
|
+
- lib/vagabond/uploader/librarian.rb
|
134
190
|
- lib/vagabond/constants.rb
|
135
191
|
- lib/vagabond/helpers.rb
|
192
|
+
- lib/vagabond/spec.rb
|
136
193
|
- lib/vagabond/helpers/cheffile_loader.rb
|
137
194
|
- lib/vagabond/internal_configuration.rb
|
138
195
|
- lib/vagabond/actions/up.rb
|
139
196
|
- lib/vagabond/actions/create.rb
|
140
197
|
- lib/vagabond/actions/provision.rb
|
141
198
|
- lib/vagabond/actions/status.rb
|
199
|
+
- lib/vagabond/actions/init.rb
|
142
200
|
- lib/vagabond/actions/start.rb
|
201
|
+
- lib/vagabond/actions/cluster.rb
|
143
202
|
- lib/vagabond/actions/thaw.rb
|
144
203
|
- lib/vagabond/actions/rebuild.rb
|
145
204
|
- lib/vagabond/actions/destroy.rb
|
146
205
|
- lib/vagabond/actions/freeze.rb
|
147
206
|
- lib/vagabond/actions/ssh.rb
|
207
|
+
- lib/vagabond/uploader.rb
|
148
208
|
- lib/vagabond.rb
|
149
209
|
- README.md
|
150
210
|
- vagabond.gemspec
|
@@ -1,28 +0,0 @@
|
|
1
|
-
actions :create, :delete, :clone
|
2
|
-
default_action :create
|
3
|
-
|
4
|
-
attribute :base_container, :kind_of => String
|
5
|
-
attribute :validation_client, :kind_of => String
|
6
|
-
attribute :validator_pem, :kind_of => String, :default => nil
|
7
|
-
attribute :server_uri, :kind_of => String
|
8
|
-
attribute :chef_environment, :kind_of => String, :default => '_default'
|
9
|
-
attribute :node_name, :kind_of => String
|
10
|
-
attribute :run_list, :kind_of => Array
|
11
|
-
attribute :chef_enabled, :kind_of => [TrueClass, FalseClass], :default => false
|
12
|
-
attribute :chef_retries, :kind_of => Fixnum, :default => 0
|
13
|
-
attribute :copy_data_bag_secret_file, :kind_of => [TrueClass, FalseClass], :default => false
|
14
|
-
attribute :data_bag_secret_file, :kind_of => String, :default => Chef::EncryptedDataBagItem::DEFAULT_SECRET_FILE
|
15
|
-
attribute :default_bridge, :kind_of => String
|
16
|
-
attribute :static_ip, :kind_of => String
|
17
|
-
attribute :static_netmask, :kind_of => String, :default => '255.255.255.0'
|
18
|
-
attribute :static_gateway, :kind_of => String
|
19
|
-
attribute :default_config, :kind_of => [TrueClass, FalseClass], :default => true
|
20
|
-
attribute :default_fstab, :kind_of => [TrueClass, FalseClass], :default => true
|
21
|
-
attribute :container_commands, :kind_of => Array, :default => []
|
22
|
-
attribute :initialize_commands, :kind_of => Array, :default => []
|
23
|
-
attribute :new_container, :kind_of => [TrueClass, FalseClass], :default => false
|
24
|
-
attribute :template, :kind_of => String, :default => 'ubuntu'
|
25
|
-
attribute :template_opts, :kind_of => Hash, :default => {}
|
26
|
-
attribute :_lxc
|
27
|
-
# TODO: We should ultimately have support for all these templates
|
28
|
-
#attribute :template, :equal_to => %w(busybox debian fedora opensuse sshd ubuntu ubuntu-cloud), :default => 'ubuntu'
|