gogetit 0.15.2 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/lib/gogetit/cli.rb +6 -0
- data/lib/gogetit/version.rb +1 -1
- data/lib/providers/lxd.rb +21 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8907083242126e73dddd139d9e763457cf37a6b6bcc4dd571b405ff70e1e9052
|
4
|
+
data.tar.gz: a15dd0a170a63825fe70e5677719f2bb6b2cae5b90d520a14ab8687acac2b5ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afb2d8cb2b3ac18f07cdedc8bacb1177e7fdc83e37bea752c6a042492dd147d40d6c98ad5555d2c466b48761c4aa9d37f519497237395d47cc5f621c56851c5b
|
7
|
+
data.tar.gz: 95b329fd114ec4623be32d2eaa916e5ceebd42155d99a9a2ee0e1ee9292d5f5a6339709660967092320158e236817c3e2ed7405cd80c1a1061485bde5ca68df9
|
data/README.md
CHANGED
@@ -74,6 +74,9 @@ gogetit deploy kvm01 -d centos
|
|
74
74
|
gogetit create lxd01 --no-maas -f lxd_without_maas.yml
|
75
75
|
gogetit create lxd01 --no-maas -f lxd_without_maas_vlans.yml
|
76
76
|
|
77
|
+
# to install MAAS on a lxc container using 'no-maas' option
|
78
|
+
gogetit create lxd01 --no-maas -f lxd_without_maas_vlans.yml --maas-on-lxc
|
79
|
+
|
77
80
|
gogetit destroy lxd01
|
78
81
|
|
79
82
|
# This feature is broken and might be deprecated in the future.
|
data/lib/gogetit/cli.rb
CHANGED
@@ -69,6 +69,9 @@ module Gogetit
|
|
69
69
|
:desc => 'A list of static IPs to assign'
|
70
70
|
method_option :"no-maas", :type => :boolean, \
|
71
71
|
:desc => 'Without MAAS awareness(only for LXD provider)'
|
72
|
+
method_option :"maas-on-lxc", :type => :boolean, \
|
73
|
+
:desc => 'To install MAAS on a LXC enabling necessary user config'\
|
74
|
+
'(only for LXD provider with no-maas enabled)'
|
72
75
|
method_option :"file", :aliases => '-f', :type => :string, \
|
73
76
|
:desc => 'File location(only for LXD provider)'
|
74
77
|
def create(name)
|
@@ -84,6 +87,9 @@ module Gogetit
|
|
84
87
|
abort("'no-maas' and 'file' have to be set together.") \
|
85
88
|
if options['no-maas'] ^ !!options['file']
|
86
89
|
|
90
|
+
abort("'maas-on-lxc' and 'no-maas' have to be set together.") \
|
91
|
+
if options['maas-on-lxc'] ^ !!options['no-maas']
|
92
|
+
|
87
93
|
abort("'distro' has to be set with libvirt provider.") \
|
88
94
|
if options['distro'] and options['provider'] == 'lxd'
|
89
95
|
|
data/lib/gogetit/version.rb
CHANGED
data/lib/providers/lxd.rb
CHANGED
@@ -53,6 +53,9 @@ module Gogetit
|
|
53
53
|
|
54
54
|
if options['no-maas']
|
55
55
|
args[:config][:"user.user-data"] = {}
|
56
|
+
if options['maas-on-lxc']
|
57
|
+
args[:config][:"security.privileged"] = "true"
|
58
|
+
end
|
56
59
|
else
|
57
60
|
sshkeys = maas.get_sshkeys
|
58
61
|
pkg_repos = maas.get_package_repos
|
@@ -80,7 +83,7 @@ module Gogetit
|
|
80
83
|
args[:config][:'user.user-data']['package_update'] = false
|
81
84
|
args[:config][:'user.user-data']['package_upgrade'] = false
|
82
85
|
|
83
|
-
generate_cloud_init_config(config, args)
|
86
|
+
generate_cloud_init_config(options, config, args)
|
84
87
|
|
85
88
|
args[:config][:"user.user-data"] = \
|
86
89
|
"#cloud-config\n" + YAML.dump(args[:config][:"user.user-data"])[4..-1]
|
@@ -88,11 +91,18 @@ module Gogetit
|
|
88
91
|
return args
|
89
92
|
end
|
90
93
|
|
91
|
-
def generate_cloud_init_config(config, args)
|
94
|
+
def generate_cloud_init_config(options, config, args)
|
92
95
|
logger.info("Calling <#{__method__.to_s}>")
|
96
|
+
if options['no-maas']
|
97
|
+
# When there is no MAAS, containers should be able to resolve
|
98
|
+
# their name with hosts file.
|
99
|
+
args[:config][:'user.user-data']['manage_etc_hosts'] = true
|
100
|
+
end
|
101
|
+
|
93
102
|
# To add truested root CA certificates
|
94
103
|
# https://cloudinit.readthedocs.io/en/latest/topics/examples.html
|
95
104
|
# #configure-an-instances-trusted-ca-certificates
|
105
|
+
#
|
96
106
|
if config[:cloud_init] && config[:cloud_init][:ca_certs]
|
97
107
|
args[:config][:'user.user-data']['ca-certs'] = {}
|
98
108
|
certs = []
|
@@ -400,7 +410,15 @@ echo \"RevokedKeys #{config[:cloud_init][:ssh_ca_public_key][:revocation_path]}\
|
|
400
410
|
|
401
411
|
container.devices = args[:devices].merge!(container.devices.to_hash)
|
402
412
|
|
403
|
-
|
413
|
+
# https://github.com/jeffshantz/hyperkit/blob/master/lib/hyperkit/client/containers.rb#L240
|
414
|
+
# Adding configurations that are necessary for shipping MAAS on lxc
|
415
|
+
if options['no-maas'] and options['maas-on-lxc']
|
416
|
+
container.config = container.config.to_hash
|
417
|
+
container.config[:"raw.lxc"] = "\
|
418
|
+
lxc.cgroup.devices.allow = c 10:237 rwm\n\
|
419
|
+
lxc.aa_profile = unconfined\n\
|
420
|
+
lxc.cgroup.devices.allow = b 7:* rwm"
|
421
|
+
end
|
404
422
|
|
405
423
|
conn.update_container(name, container)
|
406
424
|
# Fetch container object again
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gogetit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Don Draper
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|