kitchen-dokken 2.17.4 → 2.19.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: becf7bcb14b565a4e38ef71339232b99d6cb2196918462f66007d77efcc49e62
4
+ data.tar.gz: e68938ec9d01a83c72456b3fd51c0af5ec0d81e9092695b11df9e487bfde8fc0
5
5
  SHA512:
6
- metadata.gz: f5e8186524b8c961c739351c821e967fd620000f1082b140a3def5aea9b188bbcceebf6647600cfd649f5886814d2819c4bd9de657f3c07153a937391171187a
7
- data.tar.gz: d1a7f7fcc6eb8b5ec1a4e14a46498c9dd8eaf52f9cb1a365d9748511feac7006aca933e6b684a11bcf2bd29f5c444c8f8fe352cde1745a57d2b612735fc8741a
6
+ metadata.gz: fbac5749ab791a90968ccfd9ff5d11667ea8d5ad9801146a451cd8fe979db215460506e4a8810bc7b2a8129213a321665f9c5fc26bc461c0135427eff6648da7
7
+ data.tar.gz: d26c39d6be05058de8e86ff9c10cf8576fc44ea1999f55c8bc0c1b9b6c013abcda5103233f48a788e2164ed9c5cb49928b3947674adccc26ce500998c6f96e6a
@@ -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,28 +137,27 @@ 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
145
  with_retries { @work_image.remove(force: true) }
146
146
  rescue ::Docker::Error::ConflictError
147
147
  debug "driver - #{work_image} cannot be removed"
148
-
149
148
  end
150
149
  end
151
150
 
152
151
  def build_work_image(state)
153
152
  info("Building work image..")
154
- return if ::Docker::Image.exist?(work_image, {}, docker_connection)
153
+ return if ::Docker::Image.exist?(work_image, { "platform" => config[:platform] }, docker_connection)
155
154
 
156
155
  begin
157
156
  @intermediate_image = ::Docker::Image.build(
158
157
  work_image_dockerfile,
159
158
  {
160
159
  "t" => work_image,
160
+ "platform" => config[:platform],
161
161
  },
162
162
  docker_connection
163
163
  )
@@ -389,7 +389,7 @@ module Kitchen
389
389
  lockfile = Lockfile.new "#{home_dir}/.dokken-#{chef_container_name}.lock"
390
390
  begin
391
391
  lockfile.lock
392
- with_retries {
392
+ with_retries do
393
393
  # TEMPORARY FIX - docker-api 2.0.0 has a buggy Docker::Container.get - use .all instead
394
394
  # https://github.com/swipely/docker-api/issues/566
395
395
  # ::Docker::Container.get(chef_container_name, {}, docker_connection)
@@ -397,7 +397,7 @@ module Kitchen
397
397
  raise ::Docker::Error::NotFoundError.new(chef_container_name) if found.empty?
398
398
 
399
399
  debug "Chef container already exists, continuing"
400
- }
400
+ end
401
401
  rescue ::Docker::Error::NotFoundError
402
402
  debug "Chef container does not exist, creating a new Chef container"
403
403
  with_retries do
@@ -479,7 +479,7 @@ module Kitchen
479
479
  end
480
480
 
481
481
  def delete_image(name)
482
- with_retries { @image = ::Docker::Image.get(name, {}, docker_connection) }
482
+ with_retries { @image = ::Docker::Image.get(name, { "platform" => config[:platform] }, docker_connection) }
483
483
  with_retries { @image.remove(force: true) }
484
484
  rescue ::Docker::Error
485
485
  puts "Image #{name} not found. Nothing to delete."
@@ -551,10 +551,10 @@ module Kitchen
551
551
  args["Env"] = [] if args["Env"].nil?
552
552
  args["Env"] << "TEST_KITCHEN=1"
553
553
  args["Env"] << "CI=#{ENV["CI"]}" if ENV.include? "CI"
554
+ args["Platform"] = config[:platform]
554
555
  info "Creating container #{args["name"]}"
555
556
  debug "driver - create_container args #{args}"
556
557
  with_retries do
557
-
558
558
  @container = ::Docker::Container.create(args.clone, docker_connection)
559
559
  rescue ::Docker::Error::ConflictError
560
560
  debug "driver - rescue ConflictError: #{args["name"]}"
@@ -563,7 +563,6 @@ module Kitchen
563
563
  rescue ::Docker::Error => e
564
564
  debug "driver - error :#{e}:"
565
565
  raise "driver - failed to create_container #{args["name"]}"
566
-
567
566
  end
568
567
  end
569
568
 
@@ -612,7 +611,7 @@ module Kitchen
612
611
  end
613
612
 
614
613
  def chef_container_name
615
- "chef-#{chef_version}"
614
+ config[:platform] != "" ? "chef-#{chef_version}-" + config[:platform].sub("/", "-") : "chef-#{chef_version}"
616
615
  end
617
616
 
618
617
  def chef_image
@@ -643,7 +642,7 @@ module Kitchen
643
642
  end
644
643
 
645
644
  def pull_if_missing(image)
646
- return if ::Docker::Image.exist?(registry_image_path(image), {}, docker_connection)
645
+ return if ::Docker::Image.exist?(registry_image_path(image), { "platform" => config[:platform] }, docker_connection)
647
646
 
648
647
  pull_image image
649
648
  end
@@ -656,13 +655,13 @@ module Kitchen
656
655
  def pull_image(image)
657
656
  path = registry_image_path(image)
658
657
  with_retries do
659
- if Docker::Image.exist?(path, {}, docker_connection)
660
- original_image = Docker::Image.get(path, {}, docker_connection)
658
+ if Docker::Image.exist?(path, { "platform" => config[:platform] }, docker_connection)
659
+ original_image = Docker::Image.get(path, { "platform" => config[:platform] }, docker_connection)
661
660
  end
662
661
 
663
- new_image = Docker::Image.create({ "fromImage" => path }, docker_creds_for_image(image), docker_connection)
662
+ new_image = Docker::Image.create({ "fromImage" => path, "platform" => config[:platform] }, docker_creds_for_image(image), docker_connection)
664
663
 
665
- !(original_image && original_image.id.start_with?(new_image.id))
664
+ !(original_image&.id&.start_with?(new_image.id))
666
665
  end
667
666
  end
668
667
 
@@ -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.19.0".freeze
22
22
  end
23
23
  end
@@ -19,40 +19,40 @@ module Dokken
19
19
  end
20
20
 
21
21
  def insecure_ssh_public_key
22
- <<-EOF
23
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoJwyW7qNhw+NTuOjC4+RVpESl+JBXebXzB7JqxRgKAbymq6B39azEAiNx5NzHkWcQmOyQNhFpKFSAufegcXRS4ctS1LcElEoXe9brDAqKEBSkmnXYfZXMNIG0Enw4+5W/rZxHFCAlsUSAHYtYZEs+3CgbIWuHhZ95C8UC6nGLWHNZOjcbsYZFrnFfO0qg0ene2w8LKhxqj5X0MRSdCIn1IwyxIbl5NND5Yk1Hx8JKsJtTiNTdxssiMgmM5bvTbYQUSf8pbGrRI30VQKBgQ8/UkidZbaTfvzWXYpwcDUERSbzEYCvkUytTemZIv6uhpPxqkfjl6KEOOml/iGqquPEr test-kitchen-rsa
22
+ <<~EOF
23
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoJwyW7qNhw+NTuOjC4+RVpESl+JBXebXzB7JqxRgKAbymq6B39azEAiNx5NzHkWcQmOyQNhFpKFSAufegcXRS4ctS1LcElEoXe9brDAqKEBSkmnXYfZXMNIG0Enw4+5W/rZxHFCAlsUSAHYtYZEs+3CgbIWuHhZ95C8UC6nGLWHNZOjcbsYZFrnFfO0qg0ene2w8LKhxqj5X0MRSdCIn1IwyxIbl5NND5Yk1Hx8JKsJtTiNTdxssiMgmM5bvTbYQUSf8pbGrRI30VQKBgQ8/UkidZbaTfvzWXYpwcDUERSbzEYCvkUytTemZIv6uhpPxqkfjl6KEOOml/iGqquPEr test-kitchen-rsa
24
24
  EOF
25
25
  end
26
26
 
27
27
  def insecure_ssh_private_key
28
- <<-EOF
29
- -----BEGIN RSA PRIVATE KEY-----
30
- MIIEpAIBAAKCAQEAqCcMlu6jYcPjU7jowuPkVaREpfiQV3m18weyasUYCgG8pqug
31
- d/WsxAIjceTcx5FnEJjskDYRaShUgLn3oHF0UuHLUtS3BJRKF3vW6wwKihAUpJp1
32
- 2H2VzDSBtBJ8OPuVv62cRxQgJbFEgB2LWGRLPtwoGyFrh4WfeQvFAupxi1hzWTo3
33
- G7GGRa5xXztKoNHp3tsPCyocao+V9DEUnQiJ9SMMsSG5eTTQ+WJNR8fCSrCbU4jU
34
- 3cbLIjIJjOW7022EFEn/KWxq0SN9FUCgYEPP1JInWW2k3781l2KcHA1BEUm8xGAr
35
- 5FMrU3pmSL+roaT8apH45eihDjppf4hqqrjxKwIDAQABAoIBAEj7Cb/IOykHd/ay
36
- XnOXrVZuQU03oI4WyR19zbYBbPmK33IHM1JdUmqP8wpPpnMHbJALj0DX9p6JXoOw
37
- MwVzuGTwkuqUYAqgwbeHjDPfugNKD2uRjmwztXw3ncOl8jxZFRloJFfFKF6znWNt
38
- bzkh7naN3upHiv/6wsgqj4tAbZ9oRC1crO6bsNr3P6YooiG5RRNpHepiyXphyhN6
39
- We1p5ZOQ/pUSE0Ca4wTlUhJHTUPMz7VFs/8CH0loRIsGPBROarPkoLVF+/UNyX8e
40
- +BGMhoUtQH2XvjEzWUl5jKJOnvKRIV+0j/upWXsPQKF5glVPmPrTVUAxThfu6rAa
41
- 4Z3JveECgYEA0Pz3Hl0SlPR79r2qofh1ZNa8zvQDL+iLopULwDiil5qlUxJ+DgOl
42
- 1kWXLhjdg/NfoTBHvBjdJu274YJgaGQOfCy5747YDVsakKOm4bI9+Jr2agshPyE6
43
- f1RNmGL8K8fNtpGq4G14o+pSQOPNrEfcFKgm3sosZWJAWaA64hmtiXcCgYEAzfp6
44
- FbodfUypAV5Zd6PCO2eJMjLdvGaNuH/Umo80WNV7XZ6iJ6MUeQe+YwxFJigjC3ii
45
- ifLUj3kL7+wu7sEtkzS3zNd34KfhQ5fLADttfFgjjfm7IxlDD4ABaUgjwZM2gfXi
46
- xCwRhwwNgilF6qABJ1CLt8JSqKubkqvO1P1gQu0CgYEA0GA6AcNpYK344Eey1/bF
47
- DntyHKN+fglPGReldM7Dh4gBabgZid2nP+N5XtQaIpPKeQyLqgfckhEecTau68dA
48
- Dh4Gcs6pq394GFmkbotrcPMJ2SgpySlXi1fCWrvvlbON8IiDqWxdiop74wmArFOm
49
- I86ZmzBYXeo+IV869vAFcPcCgYBrvvyh5OuMIc++YYZXaRgvTueblLQc22CDBItI
50
- FmUBmxqfTF3ycgJBlWVoFoENhq1eUMplctrx+hXeeSPLzM10VX1X79ZLdEYHv513
51
- D58kDk7684mKwKotr34NfqkFl2ZJ8T+f8pVwmUNvtPtX0j8IO7/6bfIjPTFyNeFJ
52
- 1QjHuQKBgQC/LE05M4eeWXihZ7c7fyWHLyddcPdH48LRF9UH9yjKF84jXRT91uMv
53
- XuIb2Qt4MLHABySsk653LDw/jTIGV26c068nZryq5OUPxk67Xgod54jKgOwjgjZS
54
- X8N2N9ZNnORJqK374yGj1jWUU66mQhPvn49QpG8P2HEoh2RQjNvyHA==
55
- -----END RSA PRIVATE KEY-----
28
+ <<~EOF
29
+ -----BEGIN RSA PRIVATE KEY-----
30
+ MIIEpAIBAAKCAQEAqCcMlu6jYcPjU7jowuPkVaREpfiQV3m18weyasUYCgG8pqug
31
+ d/WsxAIjceTcx5FnEJjskDYRaShUgLn3oHF0UuHLUtS3BJRKF3vW6wwKihAUpJp1
32
+ 2H2VzDSBtBJ8OPuVv62cRxQgJbFEgB2LWGRLPtwoGyFrh4WfeQvFAupxi1hzWTo3
33
+ G7GGRa5xXztKoNHp3tsPCyocao+V9DEUnQiJ9SMMsSG5eTTQ+WJNR8fCSrCbU4jU
34
+ 3cbLIjIJjOW7022EFEn/KWxq0SN9FUCgYEPP1JInWW2k3781l2KcHA1BEUm8xGAr
35
+ 5FMrU3pmSL+roaT8apH45eihDjppf4hqqrjxKwIDAQABAoIBAEj7Cb/IOykHd/ay
36
+ XnOXrVZuQU03oI4WyR19zbYBbPmK33IHM1JdUmqP8wpPpnMHbJALj0DX9p6JXoOw
37
+ MwVzuGTwkuqUYAqgwbeHjDPfugNKD2uRjmwztXw3ncOl8jxZFRloJFfFKF6znWNt
38
+ bzkh7naN3upHiv/6wsgqj4tAbZ9oRC1crO6bsNr3P6YooiG5RRNpHepiyXphyhN6
39
+ We1p5ZOQ/pUSE0Ca4wTlUhJHTUPMz7VFs/8CH0loRIsGPBROarPkoLVF+/UNyX8e
40
+ +BGMhoUtQH2XvjEzWUl5jKJOnvKRIV+0j/upWXsPQKF5glVPmPrTVUAxThfu6rAa
41
+ 4Z3JveECgYEA0Pz3Hl0SlPR79r2qofh1ZNa8zvQDL+iLopULwDiil5qlUxJ+DgOl
42
+ 1kWXLhjdg/NfoTBHvBjdJu274YJgaGQOfCy5747YDVsakKOm4bI9+Jr2agshPyE6
43
+ f1RNmGL8K8fNtpGq4G14o+pSQOPNrEfcFKgm3sosZWJAWaA64hmtiXcCgYEAzfp6
44
+ FbodfUypAV5Zd6PCO2eJMjLdvGaNuH/Umo80WNV7XZ6iJ6MUeQe+YwxFJigjC3ii
45
+ ifLUj3kL7+wu7sEtkzS3zNd34KfhQ5fLADttfFgjjfm7IxlDD4ABaUgjwZM2gfXi
46
+ xCwRhwwNgilF6qABJ1CLt8JSqKubkqvO1P1gQu0CgYEA0GA6AcNpYK344Eey1/bF
47
+ DntyHKN+fglPGReldM7Dh4gBabgZid2nP+N5XtQaIpPKeQyLqgfckhEecTau68dA
48
+ Dh4Gcs6pq394GFmkbotrcPMJ2SgpySlXi1fCWrvvlbON8IiDqWxdiop74wmArFOm
49
+ I86ZmzBYXeo+IV869vAFcPcCgYBrvvyh5OuMIc++YYZXaRgvTueblLQc22CDBItI
50
+ FmUBmxqfTF3ycgJBlWVoFoENhq1eUMplctrx+hXeeSPLzM10VX1X79ZLdEYHv513
51
+ D58kDk7684mKwKotr34NfqkFl2ZJ8T+f8pVwmUNvtPtX0j8IO7/6bfIjPTFyNeFJ
52
+ 1QjHuQKBgQC/LE05M4eeWXihZ7c7fyWHLyddcPdH48LRF9UH9yjKF84jXRT91uMv
53
+ XuIb2Qt4MLHABySsk653LDw/jTIGV26c068nZryq5OUPxk67Xgod54jKgOwjgjZS
54
+ X8N2N9ZNnORJqK374yGj1jWUU66mQhPvn49QpG8P2HEoh2RQjNvyHA==
55
+ -----END RSA PRIVATE KEY-----
56
56
  EOF
57
57
  end
58
58
 
@@ -61,29 +61,29 @@ X8N2N9ZNnORJqK374yGj1jWUU66mQhPvn49QpG8P2HEoh2RQjNvyHA==
61
61
  if registry
62
62
  from = "#{registry}/#{from}"
63
63
  end
64
- <<-EOF
65
- FROM #{from}
66
- MAINTAINER Sean OMeara \"sean@sean.io\"
67
- ENV LANG en_US.UTF-8
64
+ <<~EOF
65
+ FROM #{from}
66
+ MAINTAINER Sean OMeara "sean@sean.io"
67
+ ENV LANG en_US.UTF-8
68
68
 
69
- RUN yum -y install tar rsync openssh-server passwd git
70
- RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
69
+ RUN yum -y install tar rsync openssh-server passwd git
70
+ RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
71
71
 
72
- # uncomment to debug cert issues
73
- # RUN echo 'root:dokkendokkendokken' | chpasswd
74
- # RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
75
- # RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
72
+ # uncomment to debug cert issues
73
+ # RUN echo 'root:dokkendokkendokken' | chpasswd
74
+ # RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
75
+ # RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
76
76
 
77
- RUN mkdir -p /root/.ssh/
78
- COPY authorized_keys /root/.ssh/authorized_keys
79
- RUN chmod 700 /root/.ssh/
80
- RUN chmod 600 /root/.ssh/authorized_keys
77
+ RUN mkdir -p /root/.ssh/
78
+ COPY authorized_keys /root/.ssh/authorized_keys
79
+ RUN chmod 700 /root/.ssh/
80
+ RUN chmod 600 /root/.ssh/authorized_keys
81
81
 
82
- EXPOSE 22
83
- CMD [ "/usr/sbin/sshd", "-D", "-p", "22", "-o", "UseDNS=no", "-o", "UsePrivilegeSeparation=no", "-o", "MaxAuthTries=60" ]
82
+ EXPOSE 22
83
+ CMD [ "/usr/sbin/sshd", "-D", "-p", "22", "-o", "UseDNS=no", "-o", "UsePrivilegeSeparation=no", "-o", "MaxAuthTries=60" ]
84
84
 
85
- VOLUME /opt/kitchen
86
- VOLUME /opt/verifier
85
+ VOLUME /opt/kitchen
86
+ VOLUME /opt/verifier
87
87
  EOF
88
88
  end
89
89
 
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.19.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-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docker-api
@@ -78,7 +78,7 @@ files:
78
78
  - lib/kitchen/helpers.rb
79
79
  - lib/kitchen/provisioner/dokken.rb
80
80
  - lib/kitchen/transport/dokken.rb
81
- homepage: https://github.com/someara/kitchen-dokken
81
+ homepage: https://github.com/test-kitchen/kitchen-dokken
82
82
  licenses:
83
83
  - Apache-2.0
84
84
  metadata: {}
@@ -90,14 +90,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
90
  requirements:
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: '2.5'
93
+ version: '2.7'
94
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - ">="
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubygems_version: 3.3.3
100
+ rubygems_version: 3.2.33
101
101
  signing_key:
102
102
  specification_version: 4
103
103
  summary: A Test Kitchen Driver for Docker & Chef Infra optimized for rapid testing