dev-lxc 1.5.0 → 1.5.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb62e2541fe4750d85c6cad1d92f629b3cc59c7c
4
- data.tar.gz: ceab7ced54d9dd2f34e142bfc764d688cfcd062a
3
+ metadata.gz: adb1cdf6e7713709e685315f22141444da1bd719
4
+ data.tar.gz: cf3f3f6ee779b6f28a3b59c9f598b407a5c17072
5
5
  SHA512:
6
- metadata.gz: 8545fe8abb277e0051d8b9ea25a98ef24e6732180fc1ff52d129fe80227c761a42269582eebef538535ffd0a975a6c5f594d62c3b1e55284b370505754fa9786
7
- data.tar.gz: 76a6df69e886559c4d1a415f328bc1d9d454e20841e274cf7fc53ef1fefcd5169549c1b04ee5d7031eccf8cdf756e16d06e2c570988155c1be496537e8673d4d
6
+ metadata.gz: dfc37aab34c3fda3b8dcb78512308479e3491453b337174e4729d7de1f2d8c2c2f325dabf226629a9f16e5619dadb18d37b843ace3a835bae473efca1f2ed5c4
7
+ data.tar.gz: 5ac66bb4a2669895356442ecc5c5e58f97d36d10cc3845c1008716d2353fb401e62c38ef00620253dbebcc79317051bcb5ae12f9efa44acd5754c6315a037380
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # dev-lxc Change Log
2
2
 
3
+ ## 1.5.1 (2015-04-15)
4
+
5
+ * Add ability to pass options to LXC create calls
6
+ For example, this lets users pass the following options for more control over the creation process.
7
+ https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
8
+
3
9
  ## 1.5.0 (2015-04-14)
4
10
 
5
11
  * Set lxc.network.hwaddr, if one doesn’t exist, instead of lxc.network.0.hwaddr
data/README.md CHANGED
@@ -393,6 +393,13 @@ an Ubuntu 14.04 image now.
393
393
  dev-lxc create p-ubuntu-1404
394
394
  ```
395
395
 
396
+ Note: It is possible to pass additional arguments to the underlying LXC create command.
397
+ For example:
398
+
399
+ ```
400
+ dev-lxc create p-ubuntu-1404 -o -- '--no-validate --keyserver http://my.key.server.com'
401
+ ```
402
+
396
403
  #### Install Chef Client in a Container
397
404
 
398
405
  Use the `-v` option to specify a particular version of Chef Client.
@@ -507,9 +514,9 @@ chef-server:
507
514
  mounts:
508
515
  - /root/dev root/dev
509
516
  packages:
510
- server: /root/dev/chef-packages/cs/chef-server-core_12.3.1-1_amd64.deb
511
- manage: /root/dev/chef-packages/manage/chef-manage_2.1.1-1_amd64.deb
512
- # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.5-1_amd64.deb
517
+ server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
518
+ manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
519
+ # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
513
520
  # push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
514
521
 
515
522
  api_fqdn: chef.lxc
@@ -531,7 +538,7 @@ analytics:
531
538
  mounts:
532
539
  - /root/dev root/dev
533
540
  packages:
534
- analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.2.0-1_amd64.deb
541
+ analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
535
542
 
536
543
  analytics_fqdn: analytics.lxc
537
544
  topology: tier
@@ -1,6 +1,11 @@
1
1
  ## platform_image can be one of the following:
2
2
  ## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
3
3
 
4
+ ## platform_image_options can be set to provide additional arguments to the LXC create command.
5
+ ## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
6
+ ## for example:
7
+ ## platform_image_options: --no-validate --keyserver http://my.key.server.com
8
+
4
9
  ## Make sure a mount's source directory exists in the LXC host
5
10
 
6
11
  ## Make sure a package's path is correct
@@ -1,6 +1,11 @@
1
1
  ## platform_image can be one of the following:
2
2
  ## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
3
3
 
4
+ ## platform_image_options can be set to provide additional arguments to the LXC create command.
5
+ ## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
6
+ ## for example:
7
+ ## platform_image_options: --no-validate --keyserver http://my.key.server.com
8
+
4
9
  ## Make sure a mount's source directory exists in the LXC host
5
10
 
6
11
  ## Make sure a package's path is correct
@@ -1,6 +1,11 @@
1
1
  ## platform_image can be one of the following:
2
2
  ## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
3
3
 
4
+ ## platform_image_options can be set to provide additional arguments to the LXC create command.
5
+ ## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
6
+ ## for example:
7
+ ## platform_image_options: --no-validate --keyserver http://my.key.server.com
8
+
4
9
  ## Make sure a mount's source directory exists in the LXC host
5
10
 
6
11
  ## Make sure a package's path is correct
@@ -17,9 +22,9 @@ chef-server:
17
22
  mounts:
18
23
  - /root/dev root/dev
19
24
  packages:
20
- server: /root/dev/chef-packages/cs/chef-server-core_12.3.1-1_amd64.deb
21
- manage: /root/dev/chef-packages/manage/chef-manage_2.1.1-1_amd64.deb
22
- # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.5-1_amd64.deb
25
+ server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
26
+ manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
27
+ # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
23
28
  # push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
24
29
 
25
30
  api_fqdn: chef.lxc
@@ -33,7 +38,7 @@ analytics:
33
38
  mounts:
34
39
  - /root/dev root/dev
35
40
  packages:
36
- analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.2.0-1_amd64.deb
41
+ analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
37
42
 
38
43
  analytics_fqdn: analytics.lxc
39
44
  topology: standalone
@@ -1,6 +1,11 @@
1
1
  ## platform_image can be one of the following:
2
2
  ## p-centos-5, p-centos-6, p-centos-7, p-ubuntu-1204, p-ubuntu-1404 or p-ubuntu-1504
3
3
 
4
+ ## platform_image_options can be set to provide additional arguments to the LXC create command.
5
+ ## reference arg examples: https://github.com/lxc/lxc/blob/lxc-2.0.0/templates/lxc-download.in#L200-L207
6
+ ## for example:
7
+ ## platform_image_options: --no-validate --keyserver http://my.key.server.com
8
+
4
9
  ## Make sure a mount's source directory exists in the LXC host
5
10
 
6
11
  ## Make sure a package's path is correct
@@ -17,9 +22,9 @@ chef-server:
17
22
  mounts:
18
23
  - /root/dev root/dev
19
24
  packages:
20
- server: /root/dev/chef-packages/cs/chef-server-core_12.3.1-1_amd64.deb
21
- manage: /root/dev/chef-packages/manage/chef-manage_2.1.1-1_amd64.deb
22
- # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.5-1_amd64.deb
25
+ server: /root/dev/chef-packages/cs/chef-server-core_12.5.0-1_amd64.deb
26
+ manage: /root/dev/chef-packages/manage/chef-manage_2.2.1-1_amd64.deb
27
+ # reporting: /root/dev/chef-packages/reporting/opscode-reporting_1.5.6-1_amd64.deb
23
28
  # push-jobs-server: /root/dev/chef-packages/push-jobs-server/opscode-push-jobs-server_1.1.6-1_amd64.deb
24
29
 
25
30
  api_fqdn: chef.lxc
@@ -41,7 +46,7 @@ analytics:
41
46
  mounts:
42
47
  - /root/dev root/dev
43
48
  packages:
44
- analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.2.0-1_amd64.deb
49
+ analytics: /root/dev/chef-packages/analytics/opscode-analytics_1.3.1-1_amd64.deb
45
50
 
46
51
  analytics_fqdn: analytics.lxc
47
52
  topology: tier
data/lib/dev-lxc/cli.rb CHANGED
@@ -26,6 +26,7 @@ module DevLXC::CLI
26
26
  }
27
27
 
28
28
  desc "create [PLATFORM_IMAGE_NAME]", "Create a platform image"
29
+ option :options, :aliases => "-o", :desc => "Specify additional options for the lxc create"
29
30
  def create(platform_image_name=nil)
30
31
  start_time = Time.now
31
32
  platform_image_names = %w(p-ubuntu-1204 p-ubuntu-1404 p-ubuntu-1504 p-centos-5 p-centos-6 p-centos-7)
@@ -35,7 +36,7 @@ module DevLXC::CLI
35
36
  selection = ask("Which platform image do you want to create?", :limited_to => platform_image_names_with_index.map{|c| c[0].to_s})
36
37
  platform_image_name = platform_image_names[selection.to_i - 1]
37
38
  end
38
- ::DevLXC.create_platform_image(platform_image_name)
39
+ ::DevLXC.create_platform_image(platform_image_name, options[:options])
39
40
  puts
40
41
  print_elapsed_time(Time.now - start_time)
41
42
  end
@@ -3,7 +3,7 @@ require "dev-lxc/cluster"
3
3
 
4
4
  module DevLXC
5
5
  class Server
6
- attr_reader :server, :platform_image_name, :shared_image_name
6
+ attr_reader :server, :platform_image_name, :platform_image_options, :shared_image_name
7
7
 
8
8
  def initialize(name, server_type, cluster_config)
9
9
  unless cluster_config[server_type]["servers"].keys.include?(name)
@@ -26,6 +26,7 @@ module DevLXC
26
26
  @role = @config["role"] ? @config["role"] : cluster_config[@server_type]['topology']
27
27
  @mounts = cluster_config[@server_type]["mounts"]
28
28
  @platform_image_name = cluster_config[@server_type]["platform_image"]
29
+ @platform_image_options = cluster_config[@server_type]["platform_image_options"]
29
30
  @packages = cluster_config[@server_type]["packages"]
30
31
 
31
32
  case @server_type
@@ -163,7 +164,7 @@ module DevLXC
163
164
  else
164
165
  puts "Creating container '#{@server.name}'"
165
166
  if @server_type == 'adhoc'
166
- platform_image = DevLXC.create_platform_image(@platform_image_name, @lxc_config_path)
167
+ platform_image = DevLXC.create_platform_image(@platform_image_name, @platform_image_options, @lxc_config_path)
167
168
  puts "Cloning platform image '#{platform_image.name}' into container '#{@server.name}'"
168
169
  platform_image.clone(@server.name, {:flags => LXC::LXC_CLONE_SNAPSHOT})
169
170
  else
@@ -232,7 +233,7 @@ module DevLXC
232
233
  puts "Using existing shared image '#{shared_image.name}'"
233
234
  return shared_image
234
235
  end
235
- platform_image = DevLXC.create_platform_image(@platform_image_name, @lxc_config_path)
236
+ platform_image = DevLXC.create_platform_image(@platform_image_name, @platform_image_options, @lxc_config_path)
236
237
  puts "Cloning platform image '#{platform_image.name}' into shared image '#{shared_image.name}'"
237
238
  platform_image.clone(shared_image.name, {:flags => LXC::LXC_CLONE_SNAPSHOT})
238
239
  shared_image = DevLXC::Container.new(shared_image.name, @lxc_config_path)
@@ -1,3 +1,3 @@
1
1
  module DevLXC
2
- VERSION = "1.5.0"
2
+ VERSION = "1.5.1"
3
3
  end
data/lib/dev-lxc.rb CHANGED
@@ -6,28 +6,34 @@ require "dev-lxc/server"
6
6
  require "dev-lxc/cluster"
7
7
 
8
8
  module DevLXC
9
- def self.create_platform_image(platform_image_name, lxc_config_path='/var/lib/lxc')
9
+ def self.create_platform_image(platform_image_name, platform_image_options, lxc_config_path='/var/lib/lxc')
10
10
  platform_image = DevLXC::Container.new(platform_image_name, lxc_config_path)
11
11
  if platform_image.defined?
12
12
  puts "Using existing platform image '#{platform_image.name}'"
13
13
  return platform_image
14
14
  end
15
15
  puts "Creating platform image '#{platform_image.name}'"
16
+ template = "download"
16
17
  case platform_image.name
17
18
  when "p-ubuntu-1004"
18
- platform_image.create("download", "btrfs", {}, 0, ["-d", "ubuntu", "-r", "lucid", "-a", "amd64"])
19
+ options = ["-d", "ubuntu", "-r", "lucid", "-a", "amd64"]
19
20
  when "p-ubuntu-1204"
20
- platform_image.create("download", "btrfs", {}, 0, ["-d", "ubuntu", "-r", "precise", "-a", "amd64"])
21
+ options = ["-d", "ubuntu", "-r", "precise", "-a", "amd64"]
21
22
  when "p-ubuntu-1404"
22
- platform_image.create("download", "btrfs", {}, 0, ["-d", "ubuntu", "-r", "trusty", "-a", "amd64"])
23
+ options = ["-d", "ubuntu", "-r", "trusty", "-a", "amd64"]
23
24
  when "p-ubuntu-1504"
24
- platform_image.create("download", "btrfs", {}, 0, ["-d", "ubuntu", "-r", "vivid", "-a", "amd64"])
25
+ options = ["-d", "ubuntu", "-r", "vivid", "-a", "amd64"]
25
26
  when "p-centos-5"
26
- platform_image.create("centos", "btrfs", {}, 0, ["-R", "5"])
27
+ template = "centos"
28
+ options = ["-R", "5"]
27
29
  when "p-centos-6"
28
- platform_image.create("download", "btrfs", {}, 0, ["-d", "centos", "-r", "6", "-a", "amd64"])
30
+ options = ["-d", "centos", "-r", "6", "-a", "amd64"]
29
31
  when "p-centos-7"
30
- platform_image.create("download", "btrfs", {}, 0, ["-d", "centos", "-r", "7", "-a", "amd64"])
32
+ options = ["-d", "centos", "-r", "7", "-a", "amd64"]
33
+ end
34
+ options.concat(platform_image_options.split) unless platform_image_options.nil?
35
+ platform_image.create(template, "btrfs", {}, 0, options)
36
+ if platform_image.name == "p-centos-7"
31
37
  # Centos 7 needs setpcap capabilities
32
38
  # ref: https://bugzilla.redhat.com/show_bug.cgi?id=1176816
33
39
  # ref: https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/1339781
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dev-lxc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremiah Snapp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-14 00:00:00.000000000 Z
11
+ date: 2016-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler