kitchen-dokken 2.17.1 → 2.17.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|