kitchen-dokken 2.17.3 → 2.18.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: ca4a37e299f05169d18ddc09aaf05dac0690c0aaf6ae6d4d19833e4c52bea6da
4
- data.tar.gz: fbe097fca4cce344f710a8b7821c55512e9c5dd576f7dcd472395a2479a90acb
3
+ metadata.gz: f73c03e77f7fab51c83c62e31ea41343a58620e8246d6c174a877c752503e1e8
4
+ data.tar.gz: 2ad555af59f56455551c9927654d400dab573c2c71be7292d4919b5527f46bf4
5
5
  SHA512:
6
- metadata.gz: 042aa06968c356ef83782bfa36e1001e38a0aac60b0eb797345e0832b2648c1f56c1f8d734c27884cdd4a07f58145df656738e6b8d8a2afe2abe5d1957a90abd
7
- data.tar.gz: 9a5ac2a2f805da0306c61edb2e31a7d5b402c83ce037973ac37a9c17d35cd7ca342c549f0406e58992e3382995d61385132b9a095fe3339ec710158d706ed552
6
+ metadata.gz: 62edea017014a519f4b103bd6bd0572459ab780fc4e6bb544eda21677448ccd07933965499aafbe1d56708b7bff4b50c4b2f29c4ed8cb1f2f365fe01f6fb5468
7
+ data.tar.gz: fc6c78ecf7227b64354fa9afe7d1706c4082799efc3dfe5a3af604078e41a50316cf094296101e0bf280165705caae15146f232ed601c98b8f8b4337a0b68898
@@ -38,6 +38,7 @@ module Kitchen
38
38
  default_config :binds, []
39
39
  default_config :cap_add, nil
40
40
  default_config :cap_drop, nil
41
+ default_config :cgroupns_host, false
41
42
  default_config :chef_image, "chef/chef"
42
43
  default_config :chef_version, "latest"
43
44
  default_config :data_image, "dokken/kitchen-cache:latest"
@@ -57,6 +58,7 @@ module Kitchen
57
58
  default_config :memory_limit, 0
58
59
  default_config :network_mode, "dokken"
59
60
  default_config :pid_one_command, 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
61
+ default_config :platform, ""
60
62
  default_config :ports, nil
61
63
  default_config :privileged, false
62
64
  default_config :pull_chef_image, true
@@ -135,9 +137,9 @@ module Kitchen
135
137
  end
136
138
 
137
139
  def delete_work_image
138
- return unless ::Docker::Image.exist?(work_image, {}, docker_connection)
140
+ return unless ::Docker::Image.exist?(work_image, { "platform" => config[:platform] }, docker_connection)
139
141
 
140
- with_retries { @work_image = ::Docker::Image.get(work_image, {}, docker_connection) }
142
+ with_retries { @work_image = ::Docker::Image.get(work_image, { "platform" => config[:platform] }, docker_connection) }
141
143
 
142
144
  with_retries do
143
145
 
@@ -150,13 +152,14 @@ module Kitchen
150
152
 
151
153
  def build_work_image(state)
152
154
  info("Building work image..")
153
- return if ::Docker::Image.exist?(work_image, {}, docker_connection)
155
+ return if ::Docker::Image.exist?(work_image, { "platform" => config[:platform] }, docker_connection)
154
156
 
155
157
  begin
156
158
  @intermediate_image = ::Docker::Image.build(
157
159
  work_image_dockerfile,
158
160
  {
159
161
  "t" => work_image,
162
+ "platform" => config[:platform],
160
163
  },
161
164
  docker_connection
162
165
  )
@@ -330,6 +333,9 @@ module Kitchen
330
333
  unless self[:entrypoint].to_s.empty?
331
334
  config["Entrypoint"] = self[:entrypoint]
332
335
  end
336
+ if self[:cgroupns_host]
337
+ config["HostConfig"]["CgroupnsMode"] = "host"
338
+ end
333
339
  if self[:userns_host]
334
340
  config["HostConfig"]["UsernsMode"] = "host"
335
341
  end
@@ -475,7 +481,7 @@ module Kitchen
475
481
  end
476
482
 
477
483
  def delete_image(name)
478
- with_retries { @image = ::Docker::Image.get(name, {}, docker_connection) }
484
+ with_retries { @image = ::Docker::Image.get(name, { "platform" => config[:platform] }, docker_connection) }
479
485
  with_retries { @image.remove(force: true) }
480
486
  rescue ::Docker::Error
481
487
  puts "Image #{name} not found. Nothing to delete."
@@ -547,6 +553,7 @@ module Kitchen
547
553
  args["Env"] = [] if args["Env"].nil?
548
554
  args["Env"] << "TEST_KITCHEN=1"
549
555
  args["Env"] << "CI=#{ENV["CI"]}" if ENV.include? "CI"
556
+ args["Platform"] = config[:platform]
550
557
  info "Creating container #{args["name"]}"
551
558
  debug "driver - create_container args #{args}"
552
559
  with_retries do
@@ -608,7 +615,7 @@ module Kitchen
608
615
  end
609
616
 
610
617
  def chef_container_name
611
- "chef-#{chef_version}"
618
+ config[:platform] != "" ? "chef-#{chef_version}-" + config[:platform].sub("/", "-") : "chef-#{chef_version}"
612
619
  end
613
620
 
614
621
  def chef_image
@@ -639,7 +646,7 @@ module Kitchen
639
646
  end
640
647
 
641
648
  def pull_if_missing(image)
642
- return if ::Docker::Image.exist?(registry_image_path(image), {}, docker_connection)
649
+ return if ::Docker::Image.exist?(registry_image_path(image), { "platform" => config[:platform] }, docker_connection)
643
650
 
644
651
  pull_image image
645
652
  end
@@ -652,11 +659,11 @@ module Kitchen
652
659
  def pull_image(image)
653
660
  path = registry_image_path(image)
654
661
  with_retries do
655
- if Docker::Image.exist?(path, {}, docker_connection)
656
- original_image = Docker::Image.get(path, {}, docker_connection)
662
+ if Docker::Image.exist?(path, { "platform" => config[:platform] }, docker_connection)
663
+ original_image = Docker::Image.get(path, { "platform" => config[:platform] }, docker_connection)
657
664
  end
658
665
 
659
- new_image = Docker::Image.create({ "fromImage" => path }, docker_creds_for_image(image), docker_connection)
666
+ new_image = Docker::Image.create({ "fromImage" => path, "platform" => config[:platform] }, docker_creds, docker_connection)
660
667
 
661
668
  !(original_image && original_image.id.start_with?(new_image.id))
662
669
  end
@@ -18,6 +18,6 @@
18
18
  module Kitchen
19
19
  module Driver
20
20
  # Version string for Dokken Kitchen driver
21
- DOKKEN_VERSION = "2.17.3".freeze
21
+ DOKKEN_VERSION = "2.18.0".freeze
22
22
  end
23
23
  end
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.17.3
4
+ version: 2.18.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: 2022-07-20 00:00:00.000000000 Z
11
+ date: 2022-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docker-api
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubygems_version: 3.2.3
100
+ rubygems_version: 3.3.16
101
101
  signing_key:
102
102
  specification_version: 4
103
103
  summary: A Test Kitchen Driver for Docker & Chef Infra optimized for rapid testing