kitchen-google 2.0.3 → 2.3.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: 72735ed5ed5396500393e68fc3675f838c190059c510c172795e975ff89482bc
4
- data.tar.gz: 20ec8c3e7b609edd8f2cf2d72f22e8632bc4f5c090ec020a05867be4b3d9a680
3
+ metadata.gz: a142a2341a15a16f2c7b9927d12f8c57d33c94db98098499f52e702630443cd7
4
+ data.tar.gz: 61e22bda90466800948289013796bbafd8a301ffd98caafe414cf1d582a7b012
5
5
  SHA512:
6
- metadata.gz: '09e960eca3e4c66afd1f63678a71058e39f8d325bed0cad6b15140f0b482616a4f82d4176e8dde14114cb8b81d894155446eafc29db79203e8d6bfd57765599d'
7
- data.tar.gz: 3811f8bcc71cfe60b26162f38964021561908a0c9f3b746d9b050b1e3ab828c1a148b3b52399e0f3ba8768cfa40911c86576e5dc146b5d835eedbbd4aef8d66e
6
+ metadata.gz: 93900453aee042687510bad02c0934b0bd4291a6c9bd4249473485e6e2beb344d674d9af367e64917e14978bcb77a5990c721b9d20f232a1ced8a0d7279f54bd
7
+ data.tar.gz: d99fe7b567f16e7c6ead71e89b6a1b96d04d109dd2c093c13d68695feecd39010264471f03e61e4271ed3eb78e9ecdd26c499e5cca9836fd9352ea824f4d4134
@@ -1,4 +1,3 @@
1
- # -*- coding: utf-8 -*-
2
1
  #
3
2
  # Author:: Andrew Leonard (<andy@hurricane-ridge.com>)
4
3
  # Author:: Chef Partner Engineering (<partnereng@chef.io>)
@@ -21,7 +20,7 @@ require "gcewinpass"
21
20
  require "google/apis/compute_v1"
22
21
  require "kitchen"
23
22
  require_relative "gce_version"
24
- require "securerandom"
23
+ require "securerandom" unless defined?(SecureRandom)
25
24
 
26
25
  module Kitchen
27
26
  module Driver
@@ -63,6 +62,7 @@ module Kitchen
63
62
 
64
63
  default_config :machine_type, "n1-standard-1"
65
64
  default_config :network, "default"
65
+ default_config :network_ip, nil
66
66
  default_config :network_project, nil
67
67
  default_config :subnet, nil
68
68
  default_config :subnet_project, nil
@@ -334,8 +334,8 @@ module Kitchen
334
334
  disk_name.to_s.match(DISK_NAME_REGEX).to_s.length == disk_name.length
335
335
  end
336
336
 
337
- def image_exist?
338
- check_api_call { connection.get_image(image_project, image_name) }
337
+ def image_exist?(image = image_name)
338
+ check_api_call { connection.get_image(image_project, image) }
339
339
  end
340
340
 
341
341
  def server_exist?(server_name)
@@ -362,6 +362,10 @@ module Kitchen
362
362
  config[:network_project].nil? ? project : config[:network_project]
363
363
  end
364
364
 
365
+ def network_ip
366
+ config[:network_ip]
367
+ end
368
+
365
369
  def region
366
370
  config[:region].nil? ? region_for_zone : config[:region]
367
371
  end
@@ -424,11 +428,7 @@ module Kitchen
424
428
  end
425
429
 
426
430
  def generate_server_name
427
- name = if config[:inst_name]
428
- config[:inst_name]
429
- else
430
- "tk-#{instance.name.downcase}-#{SecureRandom.hex(3)}"
431
- end
431
+ name = config[:inst_name] || "tk-#{instance.name.downcase}-#{SecureRandom.hex(3)}"
432
432
 
433
433
  if name.length > 63
434
434
  warn("The TK instance name (#{instance.name}) has been removed from the GCE instance name due to size limitations. Consider setting shorter platform or suite names.")
@@ -440,13 +440,12 @@ module Kitchen
440
440
 
441
441
  def create_disks(server_name)
442
442
  disks = []
443
-
444
443
  config[:disks].each do |disk_name, disk_config|
445
444
  unique_disk_name = "#{server_name}-#{disk_name}"
446
445
  if disk_config[:boot]
447
446
  disk = create_local_disk(unique_disk_name, disk_config)
448
447
  disks.unshift(disk)
449
- elsif disk_config[:disk_type] == "local-ssd"
448
+ elsif (disk_config[:disk_type] == "local-ssd") || disk_config[:custom_image]
450
449
  disk = create_local_disk(unique_disk_name, disk_config)
451
450
  disks.push(disk)
452
451
  else
@@ -469,10 +468,15 @@ module Kitchen
469
468
  if disk_config[:disk_type] == "local-ssd"
470
469
  info("Creating a 375 GB local ssd as scratch disk (https://cloud.google.com/compute/docs/disks/#localssds).")
471
470
  disk.type = "SCRATCH"
472
- else
473
- info("Creating a #{disk_config[:disk_size]} GB boot disk named #{unique_disk_name}...")
471
+ elsif disk.boot
472
+ info("Creating a #{disk_config[:disk_size]} GB boot disk named #{unique_disk_name} from image #{image_name}...")
474
473
  params.source_image = boot_disk_source_image unless disk_config[:disk_type] == "local-ssd"
475
474
  params.disk_name = unique_disk_name unless disk_config[:disk_type] == "local-ssd"
475
+ else
476
+ info("Creating a #{disk_config[:disk_size]} GB extra disk named #{unique_disk_name} from image #{disk_config[:custom_image]}...")
477
+ params.source_image = image_url(disk_config[:custom_image]) unless disk_config[:disk_type] == "local-ssd"
478
+ params.disk_name = unique_disk_name unless disk_config[:disk_type] == "local-ssd"
479
+
476
480
  end
477
481
  disk.initialize_params = params
478
482
  disk
@@ -520,8 +524,8 @@ module Kitchen
520
524
  @boot_disk_source ||= image_url
521
525
  end
522
526
 
523
- def image_url
524
- return "projects/#{image_project}/global/images/#{image_name}" if image_exist?
527
+ def image_url(image = image_name)
528
+ return "projects/#{image_project}/global/images/#{image}" if image_exist?(image)
525
529
  end
526
530
 
527
531
  def image_name_for_family(image_family)
@@ -572,6 +576,7 @@ module Kitchen
572
576
  def instance_network_interfaces
573
577
  interface = Google::Apis::ComputeV1::NetworkInterface.new
574
578
  interface.network = network_url if config[:subnet_project].nil?
579
+ interface.network_ip = network_ip unless network_ip.nil?
575
580
  interface.subnetwork = subnet_url if subnet_url
576
581
  interface.access_configs = interface_access_configs
577
582
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Chef Partner Engineering (<partnereng@chef.io>)
3
- # Copyright:: Copyright (c) 2015-2020 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software, Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,6 +18,6 @@
18
18
 
19
19
  module Kitchen
20
20
  module Driver
21
- GCE_VERSION = "2.0.3".freeze
21
+ GCE_VERSION = "2.3.0".freeze
22
22
  end
23
23
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-google
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Leonard
8
8
  - Chef Partner Engineering
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-01-15 00:00:00.000000000 Z
12
+ date: 2022-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gcewinpass
@@ -32,9 +32,9 @@ dependencies:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: 0.23.9
35
- - - "<"
35
+ - - "<="
36
36
  - !ruby/object:Gem::Version
37
- version: 0.36.0
37
+ version: 0.54.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,93 +42,23 @@ dependencies:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
44
  version: 0.23.9
45
- - - "<"
45
+ - - "<="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.36.0
47
+ version: 0.54.0
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: test-kitchen
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 1.4.1
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: bundler
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- type: :development
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- - !ruby/object:Gem::Dependency
77
- name: pry
78
- requirement: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- type: :development
84
- prerelease: false
85
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- - !ruby/object:Gem::Dependency
91
- name: rake
92
- requirement: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- type: :development
98
- prerelease: false
99
- version_requirements: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- - !ruby/object:Gem::Dependency
105
- name: rspec
106
- requirement: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- type: :development
112
- prerelease: false
113
- version_requirements: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- - !ruby/object:Gem::Dependency
119
- name: byebug
120
- requirement: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- type: :development
126
- prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
61
+ version: 1.4.1
132
62
  description: A Test-Kitchen driver for Google Compute Engine
133
63
  email:
134
64
  - andy@hurricane-ridge.com
@@ -144,7 +74,7 @@ homepage: https://github.com/test-kitchen/kitchen-google
144
74
  licenses:
145
75
  - Apache-2.0
146
76
  metadata: {}
147
- post_install_message:
77
+ post_install_message:
148
78
  rdoc_options: []
149
79
  require_paths:
150
80
  - lib
@@ -152,15 +82,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
152
82
  requirements:
153
83
  - - ">="
154
84
  - !ruby/object:Gem::Version
155
- version: '2.3'
85
+ version: '2.7'
156
86
  required_rubygems_version: !ruby/object:Gem::Requirement
157
87
  requirements:
158
88
  - - ">="
159
89
  - !ruby/object:Gem::Version
160
90
  version: '0'
161
91
  requirements: []
162
- rubygems_version: 3.0.3
163
- signing_key:
92
+ rubygems_version: 3.2.3
93
+ signing_key:
164
94
  specification_version: 4
165
95
  summary: Kitchen::Driver::Gce
166
96
  test_files: []