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 +4 -4
- data/lib/kitchen/driver/gce.rb +20 -15
- data/lib/kitchen/driver/gce_version.rb +2 -2
- metadata +13 -83
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a142a2341a15a16f2c7b9927d12f8c57d33c94db98098499f52e702630443cd7
|
4
|
+
data.tar.gz: 61e22bda90466800948289013796bbafd8a301ffd98caafe414cf1d582a7b012
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93900453aee042687510bad02c0934b0bd4291a6c9bd4249473485e6e2beb344d674d9af367e64917e14978bcb77a5990c721b9d20f232a1ced8a0d7279f54bd
|
7
|
+
data.tar.gz: d99fe7b567f16e7c6ead71e89b6a1b96d04d109dd2c093c13d68695feecd39010264471f03e61e4271ed3eb78e9ecdd26c499e5cca9836fd9352ea824f4d4134
|
data/lib/kitchen/driver/gce.rb
CHANGED
@@ -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,
|
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 =
|
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
|
-
|
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/#{
|
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)
|
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
|
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
|
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:
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
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: []
|