kitchen-dokken 2.17.1 → 2.17.2
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/lib/kitchen/driver/dokken.rb +32 -1
- data/lib/kitchen/driver/dokken_version.rb +1 -1
- 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: f67251f6bccb051c90cfdc31f414a7319d9c915c2cca6a512cb73583488581e1
|
|
4
|
+
data.tar.gz: 3b1a1a6548831088fa4f775ccbb01d3f98e8d357f3495799fc841048668a8eb7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8cd2b0ad664f9cb28fd2788bb7cd41e0ae3316c7b67283be934b37b94d8d85e617bb171d67f1b595183cf533b4820e88ca72fabdb530343c5ba7bfb9b693193d
|
|
7
|
+
data.tar.gz: 1dc14374c7abf5a99de55559ded7537ab5e6e1b97c5f8d69f9724714b90f02f5536991c63da3368c31bfb7aa772609aab6adc48aa3ba09939408805e7321ab97
|
|
@@ -20,6 +20,7 @@ require "kitchen"
|
|
|
20
20
|
require "tmpdir" unless defined?(Dir.mktmpdir)
|
|
21
21
|
require "docker"
|
|
22
22
|
require "lockfile"
|
|
23
|
+
require "base64" unless defined?(Base64)
|
|
23
24
|
require_relative "../helpers"
|
|
24
25
|
|
|
25
26
|
include Dokken::Helpers
|
|
@@ -67,6 +68,7 @@ module Kitchen
|
|
|
67
68
|
default_config :volumes, nil
|
|
68
69
|
default_config :write_timeout, 3600
|
|
69
70
|
default_config :creds_file, nil
|
|
71
|
+
default_config :docker_config_creds, false
|
|
70
72
|
|
|
71
73
|
# (see Base#create)
|
|
72
74
|
def create(state)
|
|
@@ -429,6 +431,35 @@ module Kitchen
|
|
|
429
431
|
end
|
|
430
432
|
end
|
|
431
433
|
|
|
434
|
+
def docker_config_creds
|
|
435
|
+
return @docker_config_creds if @docker_config_creds
|
|
436
|
+
|
|
437
|
+
@docker_config_creds = {}
|
|
438
|
+
config_file = ::File.join(::Dir.home, ".docker", "config.json")
|
|
439
|
+
JSON.load_file!(config_file)["auths"].each do |k, v|
|
|
440
|
+
next if v["auth"].nil?
|
|
441
|
+
|
|
442
|
+
username, password = Base64.decode64(v["auth"]).split(":")
|
|
443
|
+
@docker_config_creds[k] = { serveraddress: k, username: username, password: password }
|
|
444
|
+
end
|
|
445
|
+
|
|
446
|
+
@docker_config_creds
|
|
447
|
+
end
|
|
448
|
+
|
|
449
|
+
def docker_creds_for_image(image)
|
|
450
|
+
return docker_creds if config[:creds_file]
|
|
451
|
+
|
|
452
|
+
image_registry = image.split("/").first
|
|
453
|
+
|
|
454
|
+
# NOTE: Try to use DockerHub auth if exact registry match isn't found
|
|
455
|
+
default_registry = "https://index.docker.io/v1/"
|
|
456
|
+
if docker_config_creds.key?(image_registry)
|
|
457
|
+
docker_config_creds[image_registry]
|
|
458
|
+
elsif docker_config_creds.key?(default_registry)
|
|
459
|
+
docker_config_creds[default_registry]
|
|
460
|
+
end
|
|
461
|
+
end
|
|
462
|
+
|
|
432
463
|
def pull_platform_image
|
|
433
464
|
debug "driver - pulling #{short_image_path(platform_image)}"
|
|
434
465
|
config[:pull_platform_image] ? pull_image(platform_image) : pull_if_missing(platform_image)
|
|
@@ -621,7 +652,7 @@ module Kitchen
|
|
|
621
652
|
original_image = Docker::Image.get(path, {}, docker_connection)
|
|
622
653
|
end
|
|
623
654
|
|
|
624
|
-
new_image = Docker::Image.create({ "fromImage" => path },
|
|
655
|
+
new_image = Docker::Image.create({ "fromImage" => path }, docker_creds_for_image(image), docker_connection)
|
|
625
656
|
|
|
626
657
|
!(original_image && original_image.id.start_with?(new_image.id))
|
|
627
658
|
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
|
+
version: 2.17.2
|
|
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-06-
|
|
11
|
+
date: 2022-06-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: docker-api
|