gogetit 0.15.2 → 0.16.0
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 +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
|