kitchen-gogetkitchen 0.3.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f85ceefc301099b51bcfe09354ee1e6eea399e833ae22a12b870dd127cbef77
4
- data.tar.gz: 8d95de03f82598e6210ac1a17030facc6142b756071671d130fa279d0f3d7828
3
+ metadata.gz: c8fc862c8ed788875141bce93f430c7d2f9eb4b4a930fdbdde7458e27d0862da
4
+ data.tar.gz: 7a12b10d7eee2d8314d2804a3521df7bd68d1d41fea5a3eb2b2a05d42fb39dbe
5
5
  SHA512:
6
- metadata.gz: d91f6330babffef2b82d0c18109d65199851754071e997257e83beb8111c9ad74d037c954e5d50dfcad462604b1f87d555c477be9f85c32278640b373a9577f5
7
- data.tar.gz: a1eff4e2b9c43eb8dd7978890d44f9d7f4d1dc166d917fb7c7dcd215e3ce958aff63fe20bd19e16a9db350fe82ddec1e8e3dec89bd08375a86d75f0d18c8ecb5
6
+ metadata.gz: 1a1488d72243c55e80c40adf2a75622d9b29b50922de6a0701b5bd0ea5810d73740ee741c4cfd239f9fd42396db4091f636dc5fbedd2bb8ad94b24beaa394194
7
+ data.tar.gz: 585d83701bdbcd782b16321e04d68d259c3e10a6edb2b952dca51f6dbfda4a9ef9ca303f0eda428185843f02d0ac511144d36d3633e51e630dd96158a5e55180
data/README.md CHANGED
@@ -19,7 +19,7 @@ $ gem install kitchen-gogetkitchen
19
19
 
20
20
  ```
21
21
  ## <a name="config"></a> Configuration
22
-
22
+ For lxd provider
23
23
  ```yaml
24
24
 
25
25
  ---
@@ -39,12 +39,32 @@ platforms:
39
39
  template: default
40
40
  options:
41
41
  maas-on-lxc: true
42
+
43
+ suites:
44
+ - name: default
45
+ run_list:
46
+ - recipe[all_nodes::default]
47
+ attributes:
48
+
49
+ ```
50
+
51
+ For kvm(libvirt) provider
52
+ ```yaml
53
+
54
+ ---
55
+ driver:
56
+ name: gogetkitchen
57
+
58
+ provisioner:
59
+ name: chef_zero
60
+
61
+ transport:
62
+ ssh_key: <%= Dir.home + '/.ssh/id_rsa' %>
63
+
64
+ platforms:
42
65
  - name: kvm01
43
66
  driver:
44
- provider: libvirt
45
- template: default
46
- options:
47
- lxd-in-lxd: true
67
+ provider: kvm
48
68
 
49
69
  suites:
50
70
  - name: default
@@ -53,6 +73,12 @@ suites:
53
73
  attributes:
54
74
 
55
75
  ```
76
+ ## Provider specific behaviors
77
+ For KVM(Libvirt)
78
+ - It will always use `deploy`/`release` pair once `create`d.
79
+ For LXD
80
+ - It is able to convey `options` which Gogetit LXD provider comsumes.
81
+
56
82
 
57
83
  ## <a name="Uninstall"></a> Uninstall
58
84
 
@@ -64,22 +90,6 @@ gem uninstall kitchen-gogetkitchen gogetit maas-client
64
90
 
65
91
  ```
66
92
 
67
- ### <a name="config-require-chef-omnibus"></a> require\_chef\_omnibus
68
-
69
- Determines whether or not a Chef [Omnibus package][chef_omnibus_dl] will be
70
- installed. There are several different behaviors available:
71
-
72
- * `true` - the latest release will be installed. Subsequent converges
73
- will skip re-installing if chef is present.
74
- * `latest` - the latest release will be installed. Subsequent converges
75
- will always re-install even if chef is present.
76
- * `<VERSION_STRING>` (ex: `10.24.0`) - the desired version string will
77
- be passed the the install.sh script. Subsequent converges will skip if
78
- the installed version and the desired version match.
79
- * `false` or `nil` - no chef is installed.
80
-
81
- The default value is unset, or `nil`.
82
-
83
93
  ## <a name="development"></a> Development
84
94
 
85
95
  * Source hosted at [GitHub][repo]
@@ -38,10 +38,29 @@ module Kitchen
38
38
  Gogetit.config[:consumer] = 'kitchen'
39
39
 
40
40
  def create(state)
41
- options = { 'alias' => config[:template] } if config[:template]
42
- options.merge!(config[:options])
41
+ options = {}
42
+
43
+ # for LXD
44
+ options['alias'] = config[:template] if config[:template]
45
+
46
+ # to receive new other options
47
+ options.merge!(config[:options]) if config[:options]
48
+
43
49
  provider = choose_provider(config[:provider])
44
- result = provider.create(instance.name, options)
50
+
51
+ case provider
52
+ when Gogetit::GogetLibvirt
53
+
54
+ if Gogetit.maas.machine_exists?(instance.name)
55
+ result = provider.deploy(instance.name, options)
56
+ else
57
+ result = provider.create(instance.name, options)
58
+ end
59
+
60
+ when Gogetit::GogetLXD
61
+ result = provider.create(instance.name, options)
62
+ end
63
+
45
64
  domain = Gogetit.maas.get_domain
46
65
  state[:hostname] = instance.name + '.' + domain
47
66
  state[:username] = result[:info][:default_user]
@@ -55,10 +74,14 @@ module Kitchen
55
74
  end
56
75
 
57
76
  def destroy(state)
58
- options = {}
59
- options.merge!(config[:options])
60
77
  provider = choose_provider(config[:provider])
61
- provider.destroy(instance.name)
78
+
79
+ case provider
80
+ when Gogetit::GogetLibvirt
81
+ provider.release(instance.name)
82
+ when Gogetit::GogetLXD
83
+ provider.destroy(instance.name)
84
+ end
62
85
 
63
86
  instance.transport.connection(state).close
64
87
  end
@@ -67,7 +90,9 @@ module Kitchen
67
90
  case provider
68
91
  when 'lxd'
69
92
  Gogetit.lxd
70
- when 'libvirt'
93
+ when 'kvm'
94
+ # kvm externally but libvirt internally
95
+ # because gogetit actually handles libvirtd
71
96
  Gogetit.libvirt
72
97
  end
73
98
  end
@@ -21,6 +21,6 @@ module Kitchen
21
21
  module Driver
22
22
 
23
23
  # Version string for Gogetkitchen Kitchen driver
24
- GOGETKITCHEN_VERSION = "0.3.0"
24
+ GOGETKITCHEN_VERSION = "0.4.0"
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-gogetkitchen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.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-06-28 00:00:00.000000000 Z
11
+ date: 2018-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen