kitchen-dokken 2.1.10 → 2.2.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
  SHA1:
3
- metadata.gz: 0571ca8dbfba7cae0fad6b8443ec0abe1e8bf0b3
4
- data.tar.gz: 4f5c87a8ffad2043a354f89ec6b7ffbb90af00b6
3
+ metadata.gz: d82d62b99b5e5b0b3a7473ea621641c57d3e85d1
4
+ data.tar.gz: f1ee267ee61e13c37662731f2e3b6a6a7912986e
5
5
  SHA512:
6
- metadata.gz: 65cd7ad6703ae3c74354e722333c224de58f5cf5d387b73ac2884f340f4dddfaf11cd0d3e25c6f3fdb795bcd7c175c3c9f0e4db9f7478d3509d8577970e829eb
7
- data.tar.gz: e904d1e6409a57359bdea3b8aac4cc9690a45a7a93874b3610b13351f608ac66d4d793998b2d482ab9866c142ca458061139d15ccb5c8cc7337e1af2a081479a
6
+ metadata.gz: ff69a7549fe0659fd10710c84e2e1f74a32ea0f7f940b7292a9add78a449fc8157af8e3686508fb2a591cd78e989383dcdab115cda163d3498dd1f74646a1fd0
7
+ data.tar.gz: 4e0939f5ef9e8b8a1dd4a5f8f9854271a8ec81bd441f012fbe63771f7236f9f86e643631b0a1d43b97948e7ec2ac204755738ead59224ac8e431bfe25109485d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Dokken Changelog
2
2
 
3
+ # 2.2.0
4
+ - Initial support for clusters / inter-suite name resolution
5
+ - Dokken now creates a user-defined network named "dokken" and
6
+ connects containers to it. This allows us to take advantage of the
7
+ built in DNS server that in Docker 1.10 and later.
8
+
9
+ driver:
10
+ hostname: www.computers.biz
11
+
3
12
  # 2.1.10
4
13
  - Adding boot2docker detection
5
14
 
@@ -44,10 +44,10 @@ module Kitchen
44
44
  default_config :docker_info, docker_info
45
45
  default_config :docker_host_url, default_docker_host
46
46
  default_config :forward, nil
47
- default_config :hostname, nil
47
+ default_config :hostname, 'dokken'
48
48
  default_config :image_prefix, nil
49
49
  default_config :links, nil
50
- default_config :network_mode, 'bridge'
50
+ default_config :network_mode, 'dokken'
51
51
  default_config :pid_one_command, 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
52
52
  default_config :privileged, false
53
53
  default_config :read_timeout, 3600
@@ -64,6 +64,9 @@ module Kitchen
64
64
  pull_chef_image
65
65
  create_chef_container state
66
66
 
67
+ # network
68
+ make_dokken_network
69
+
67
70
  # data
68
71
  dokken_create_sandbox
69
72
 
@@ -237,43 +240,67 @@ module Kitchen
237
240
  def start_runner_container(state)
238
241
  debug "driver - starting #{runner_container_name}"
239
242
 
240
- runner_container = run_container(
243
+ config = {
241
244
  'name' => runner_container_name,
242
- 'Cmd' => Shellwords.shellwords(config[:pid_one_command]),
245
+ 'Cmd' => Shellwords.shellwords(self[:pid_one_command]),
243
246
  'Image' => "#{repo(work_image)}:#{tag(work_image)}",
244
- 'Hostname' => config[:hostname],
245
- 'ExposedPorts' => exposed_ports({}, config[:forward]),
247
+ 'Hostname' => self[:hostname],
248
+ 'ExposedPorts' => exposed_ports({}, self[:forward]),
246
249
  'Volumes' => dokken_volumes,
247
250
  'HostConfig' => {
248
- 'Privileged' => config[:privileged],
251
+ 'Privileged' => self[:privileged],
249
252
  'VolumesFrom' => dokken_volumes_from,
250
253
  'Binds' => dokken_binds,
251
- 'Dns' => config[:dns],
252
- 'DnsSearch' => config[:dns_search],
253
- 'Links' => Array(config[:links]),
254
- 'CapAdd' => Array(config[:cap_add]),
255
- 'CapDrop' => Array(config[:cap_drop]),
256
- 'SecurityOpt' => Array(config[:security_opt]),
257
- 'NetworkMode' => config[:network_mode],
258
- 'PortBindings' => port_forwards({}, config[:forward]),
259
- }
260
- )
254
+ 'Dns' => self[:dns],
255
+ 'DnsSearch' => self[:dns_search],
256
+ 'Links' => Array(self[:links]),
257
+ 'CapAdd' => Array(self[:cap_add]),
258
+ 'CapDrop' => Array(self[:cap_drop]),
259
+ 'SecurityOpt' => Array(self[:security_opt]),
260
+ 'NetworkMode' => self[:network_mode],
261
+ 'PortBindings' => port_forwards({}, self[:forward]),
262
+ },
263
+ 'NetworkingConfig' => {
264
+ 'EndpointsConfig' => {
265
+ self[:network_mode] => {
266
+ 'Aliases' => Array(self[:hostname]),
267
+ },
268
+ },
269
+ },
270
+ }
271
+ runner_container = run_container(config)
261
272
  state[:runner_container] = runner_container.json
262
273
  end
263
274
 
264
275
  def start_data_container(state)
265
276
  debug "driver - creating #{data_container_name}"
266
- data_container = run_container(
277
+ config = {
267
278
  'name' => data_container_name,
268
279
  'Image' => "#{repo(data_image)}:#{tag(data_image)}",
269
280
  'HostConfig' => {
270
281
  'PortBindings' => port_forwards({}, '22'),
271
282
  'PublishAllPorts' => true,
272
- }
273
- )
283
+ 'NetworkMode' => self[:network_mode],
284
+ },
285
+ 'NetworkingConfig' => {
286
+ 'EndpointsConfig' => {
287
+ self[:network_mode] => {
288
+ 'Aliases' => self[:hostname],
289
+ },
290
+ },
291
+ },
292
+ }
293
+ data_container = run_container(config)
274
294
  state[:data_container] = data_container.json
275
295
  end
276
296
 
297
+ def make_dokken_network
298
+ debug 'driver - creating dokken network'
299
+ Docker::Network.create('dokken', {})
300
+ rescue
301
+ debug 'driver - dokken network already exists'
302
+ end
303
+
277
304
  def make_data_image
278
305
  debug 'driver - calling create_data_image'
279
306
  create_data_image
@@ -287,7 +314,8 @@ module Kitchen
287
314
  chef_container = create_container(
288
315
  'name' => chef_container_name,
289
316
  'Cmd' => 'true',
290
- 'Image' => "#{repo(chef_image)}:#{tag(chef_image)}"
317
+ 'Image' => "#{repo(chef_image)}:#{tag(chef_image)}",
318
+ 'NetworkMode' => config[:network_mode]
291
319
  )
292
320
  state[:chef_container] = chef_container.json
293
321
  rescue
@@ -19,6 +19,6 @@
19
19
  module Kitchen
20
20
  module Driver
21
21
  # Version string for Dokken Kitchen driver
22
- DOKKEN_VERSION = '2.1.10'.freeze
22
+ DOKKEN_VERSION = '2.2.0'.freeze
23
23
  end
24
24
  end
@@ -137,11 +137,7 @@ EOF
137
137
  end
138
138
 
139
139
  def instance_name
140
- prefix = if config[:image_prefix].nil?
141
- (Digest::SHA2.hexdigest FileUtils.pwd)[0, 10]
142
- else
143
- config[:image_prefix]
144
- end
140
+ prefix = (Digest::SHA2.hexdigest FileUtils.pwd)[0, 10]
145
141
  "#{prefix}-#{instance.name}"
146
142
  end
147
143
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-dokken
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.10
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean OMeara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-14 00:00:00.000000000 Z
11
+ date: 2017-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen