kitchen-dokken 2.17.4 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba3482928058d00a9c89fcd9abd3d26f0e926a467dfb55e1591af7bb3b05507f
4
- data.tar.gz: a1c5e556088cb04d685149d651e1853abaa90e68842fc50af3f207911eafa918
3
+ metadata.gz: f73c03e77f7fab51c83c62e31ea41343a58620e8246d6c174a877c752503e1e8
4
+ data.tar.gz: 2ad555af59f56455551c9927654d400dab573c2c71be7292d4919b5527f46bf4
5
5
  SHA512:
6
- metadata.gz: f5e8186524b8c961c739351c821e967fd620000f1082b140a3def5aea9b188bbcceebf6647600cfd649f5886814d2819c4bd9de657f3c07153a937391171187a
7
- data.tar.gz: d1a7f7fcc6eb8b5ec1a4e14a46498c9dd8eaf52f9cb1a365d9748511feac7006aca933e6b684a11bcf2bd29f5c444c8f8fe352cde1745a57d2b612735fc8741a
6
+ metadata.gz: 62edea017014a519f4b103bd6bd0572459ab780fc4e6bb544eda21677448ccd07933965499aafbe1d56708b7bff4b50c4b2f29c4ed8cb1f2f365fe01f6fb5468
7
+ data.tar.gz: fc6c78ecf7227b64354fa9afe7d1706c4082799efc3dfe5a3af604078e41a50316cf094296101e0bf280165705caae15146f232ed601c98b8f8b4337a0b68898
@@ -58,6 +58,7 @@ module Kitchen
58
58
  default_config :memory_limit, 0
59
59
  default_config :network_mode, "dokken"
60
60
  default_config :pid_one_command, 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
61
+ default_config :platform, ""
61
62
  default_config :ports, nil
62
63
  default_config :privileged, false
63
64
  default_config :pull_chef_image, true
@@ -136,9 +137,9 @@ module Kitchen
136
137
  end
137
138
 
138
139
  def delete_work_image
139
- return unless ::Docker::Image.exist?(work_image, {}, docker_connection)
140
+ return unless ::Docker::Image.exist?(work_image, { "platform" => config[:platform] }, docker_connection)
140
141
 
141
- 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) }
142
143
 
143
144
  with_retries do
144
145
 
@@ -151,13 +152,14 @@ module Kitchen
151
152
 
152
153
  def build_work_image(state)
153
154
  info("Building work image..")
154
- return if ::Docker::Image.exist?(work_image, {}, docker_connection)
155
+ return if ::Docker::Image.exist?(work_image, { "platform" => config[:platform] }, docker_connection)
155
156
 
156
157
  begin
157
158
  @intermediate_image = ::Docker::Image.build(
158
159
  work_image_dockerfile,
159
160
  {
160
161
  "t" => work_image,
162
+ "platform" => config[:platform],
161
163
  },
162
164
  docker_connection
163
165
  )
@@ -479,7 +481,7 @@ module Kitchen
479
481
  end
480
482
 
481
483
  def delete_image(name)
482
- with_retries { @image = ::Docker::Image.get(name, {}, docker_connection) }
484
+ with_retries { @image = ::Docker::Image.get(name, { "platform" => config[:platform] }, docker_connection) }
483
485
  with_retries { @image.remove(force: true) }
484
486
  rescue ::Docker::Error
485
487
  puts "Image #{name} not found. Nothing to delete."
@@ -551,6 +553,7 @@ module Kitchen
551
553
  args["Env"] = [] if args["Env"].nil?
552
554
  args["Env"] << "TEST_KITCHEN=1"
553
555
  args["Env"] << "CI=#{ENV["CI"]}" if ENV.include? "CI"
556
+ args["Platform"] = config[:platform]
554
557
  info "Creating container #{args["name"]}"
555
558
  debug "driver - create_container args #{args}"
556
559
  with_retries do
@@ -612,7 +615,7 @@ module Kitchen
612
615
  end
613
616
 
614
617
  def chef_container_name
615
- "chef-#{chef_version}"
618
+ config[:platform] != "" ? "chef-#{chef_version}-" + config[:platform].sub("/", "-") : "chef-#{chef_version}"
616
619
  end
617
620
 
618
621
  def chef_image
@@ -643,7 +646,7 @@ module Kitchen
643
646
  end
644
647
 
645
648
  def pull_if_missing(image)
646
- 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)
647
650
 
648
651
  pull_image image
649
652
  end
@@ -656,11 +659,11 @@ module Kitchen
656
659
  def pull_image(image)
657
660
  path = registry_image_path(image)
658
661
  with_retries do
659
- if Docker::Image.exist?(path, {}, docker_connection)
660
- 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)
661
664
  end
662
665
 
663
- 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)
664
667
 
665
668
  !(original_image && original_image.id.start_with?(new_image.id))
666
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.4".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.4
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-12-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.3.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