knife-google 4.2.8 → 5.0.4
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/chef/knife/cloud/google_service.rb +16 -0
- data/lib/chef/knife/cloud/google_service_helpers.rb +8 -8
- data/lib/chef/knife/google_disk_create.rb +7 -5
- data/lib/chef/knife/google_disk_delete.rb +2 -0
- data/lib/chef/knife/google_disk_list.rb +2 -0
- data/lib/chef/knife/google_image_list.rb +2 -0
- data/lib/chef/knife/google_project_quotas.rb +2 -0
- data/lib/chef/knife/google_region_list.rb +2 -0
- data/lib/chef/knife/google_region_quotas.rb +2 -0
- data/lib/chef/knife/google_server_create.rb +37 -35
- data/lib/chef/knife/google_server_delete.rb +2 -0
- data/lib/chef/knife/google_server_list.rb +2 -0
- data/lib/chef/knife/google_server_show.rb +2 -0
- data/lib/chef/knife/google_zone_list.rb +2 -0
- data/lib/knife-google/version.rb +1 -1
- metadata +21 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 511e47c3c7502638e28602ca2fc7e96de6309117224a636cde167d2251d44e82
|
4
|
+
data.tar.gz: 00b2fd0ec364e89759176bfc2fcb067e097692611c7c804143ea1d93796d860c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84d96b01eb1424ef4efe78ed2bd6f7af917457690f2b0d3fa23a960038085fb00249f4aece6a41d15d2095fd7df8d7a711ceef2acd31a24df990fd2abc62b47d
|
7
|
+
data.tar.gz: a1cdad87a3729c7ca0b9cf8a30bbe42e7162229d0136b79e4155676d43c097dae14b26c244dabfc6e384618fce921df8d41f5a3e1c85d1a6bbd53fd00bd9daa6
|
@@ -56,16 +56,21 @@ class Chef::Knife::Cloud
|
|
56
56
|
IMAGE_ALIAS_MAP = {
|
57
57
|
"centos-6" => { project: "centos-cloud", prefix: "centos-6" },
|
58
58
|
"centos-7" => { project: "centos-cloud", prefix: "centos-7" },
|
59
|
+
"centos-8" => { project: "centos-cloud", prefix: "centos-8" },
|
59
60
|
"container-vm" => { project: "google-containers", prefix: "container-vm" },
|
60
61
|
"coreos" => { project: "coreos-cloud", prefix: "coreos-stable" },
|
61
62
|
"debian-7" => { project: "debian-cloud", prefix: "debian-7-wheezy" },
|
62
63
|
"debian-7-backports" => { project: "debian-cloud", prefix: "backports-debian-7-wheezy" },
|
63
64
|
"debian-8" => { project: "debian-cloud", prefix: "debian-8-jessie" },
|
65
|
+
"debian-9" => { project: "debian-cloud", prefix: "debian-9" },
|
66
|
+
"debian-10" => { project: "debian-cloud", prefix: "debian-10" },
|
64
67
|
"opensuse-13" => { project: "opensuse-cloud", prefix: "opensuse-13" },
|
65
68
|
"rhel-6" => { project: "rhel-cloud", prefix: "rhel-6" },
|
66
69
|
"rhel-7" => { project: "rhel-cloud", prefix: "rhel-7" },
|
70
|
+
"rhel-8" => { project: "rhel-cloud", prefix: "rhel-8" },
|
67
71
|
"sles-11" => { project: "suse-cloud", prefix: "sles-11" },
|
68
72
|
"sles-12" => { project: "suse-cloud", prefix: "sles-12" },
|
73
|
+
"sles-15" => { project: "suse-cloud", prefix: "sles-15" },
|
69
74
|
"ubuntu-12-04" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1204-precise" },
|
70
75
|
"ubuntu-1204-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1204-precise" },
|
71
76
|
"ubuntu-14-04" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1404-trusty" },
|
@@ -74,8 +79,19 @@ class Chef::Knife::Cloud
|
|
74
79
|
"ubuntu-15-10" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1510-wily" },
|
75
80
|
"ubuntu-16-04" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1604-xenial" },
|
76
81
|
"ubuntu-1604-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1604-xenial" },
|
82
|
+
"ubuntu-1804-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-1804-bionic" },
|
83
|
+
"ubuntu-2004-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-2004-focal" },
|
84
|
+
"ubuntu-minimal-1604-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-minimal-1604-xenial" },
|
85
|
+
"ubuntu-minimal-1804-lts" => { project: "ubuntu-os-cloud", prefix: "ubuntu-minimal-1804-bionic" },
|
77
86
|
"windows-2008-r2" => { project: "windows-cloud", prefix: "windows-server-2008-r2" },
|
78
87
|
"windows-2012-r2" => { project: "windows-cloud", prefix: "windows-server-2012-r2" },
|
88
|
+
"windows-2012-r2-core" => { project: "windows-cloud", prefix: "windows-server-2012-r2-dc-core" },
|
89
|
+
"windows-2016-core" => { project: "windows-cloud", prefix: "windows-server-2016-dc-core" },
|
90
|
+
"windows-2016" => { project: "windows-cloud", prefix: "windows-server-2016-dc" },
|
91
|
+
"windows-2019-core-for-containers" => { project: "windows-cloud", prefix: "windows-server-2019-dc-core-for-containers" },
|
92
|
+
"windows-2019-core" => { project: "windows-cloud", prefix: "windows-server-2019-dc-core" },
|
93
|
+
"windows-2019-for-containers" => { project: "windows-cloud", prefix: "windows-server-2019-dc-for-containers" },
|
94
|
+
"windows-2019" => { project: "windows-cloud", prefix: "windows-server-2019-dc" },
|
79
95
|
}.freeze
|
80
96
|
|
81
97
|
PUBLIC_PROJECTS = %w{
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
3
|
# Author:: Chef Partner Engineering (<partnereng@chef.io>)
|
4
|
-
# Copyright:: Copyright (c)
|
4
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
5
5
|
# License:: Apache License, Version 2.0
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -23,19 +23,19 @@ class Chef::Knife::Cloud
|
|
23
23
|
|
24
24
|
def create_service_instance
|
25
25
|
Chef::Knife::Cloud::GoogleService.new(
|
26
|
-
project:
|
27
|
-
zone:
|
28
|
-
wait_time:
|
29
|
-
refresh_rate:
|
30
|
-
max_pages:
|
31
|
-
max_page_size:
|
26
|
+
project: config[:gce_project],
|
27
|
+
zone: config[:gce_zone],
|
28
|
+
wait_time: config[:request_timeout],
|
29
|
+
refresh_rate: config[:request_refresh_rate],
|
30
|
+
max_pages: config[:gce_max_pages],
|
31
|
+
max_page_size: config[:gce_max_page_size]
|
32
32
|
)
|
33
33
|
end
|
34
34
|
|
35
35
|
def check_for_missing_config_values!(*keys)
|
36
36
|
keys_to_check = REQUIRED_KEYS + keys
|
37
37
|
|
38
|
-
missing = keys_to_check.select { |x|
|
38
|
+
missing = keys_to_check.select { |x| config[x].nil? }
|
39
39
|
|
40
40
|
unless missing.empty?
|
41
41
|
message = "The following required parameters are missing: #{missing.join(", ")}"
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# Author:: Paul Rossman (<paulrossman@google.com>)
|
4
4
|
# Author:: Chef Partner Engineering (<partnereng@chef.io>)
|
5
|
-
# Copyright:: Copyright
|
5
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
6
6
|
# License:: Apache License, Version 2.0
|
7
7
|
#
|
8
8
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -29,6 +29,8 @@ class Chef::Knife::Cloud
|
|
29
29
|
|
30
30
|
deps do
|
31
31
|
require_relative "cloud/google_service"
|
32
|
+
require_relative "cloud/google_service_helpers"
|
33
|
+
include GoogleServiceHelpers
|
32
34
|
end
|
33
35
|
|
34
36
|
option :disk_size,
|
@@ -50,16 +52,16 @@ class Chef::Knife::Cloud
|
|
50
52
|
def validate_params!
|
51
53
|
check_for_missing_config_values!(:gce_zone, :disk_size, :disk_type)
|
52
54
|
raise "Please specify a disk name." unless @name_args.first
|
53
|
-
raise "Disk size must be between 10 and 10,000" unless valid_disk_size?(
|
55
|
+
raise "Disk size must be between 10 and 10,000" unless valid_disk_size?(config[:disk_size])
|
54
56
|
|
55
57
|
super
|
56
58
|
end
|
57
59
|
|
58
60
|
def execute_command
|
59
61
|
name = @name_args.first
|
60
|
-
size =
|
61
|
-
type =
|
62
|
-
src =
|
62
|
+
size = config[:disk_size]
|
63
|
+
type = config[:disk_type]
|
64
|
+
src = config[:disk_source]
|
63
65
|
|
64
66
|
service.create_disk(name, size, type, src)
|
65
67
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# Author:: Paul Rossman (<paulrossman@google.com>)
|
4
4
|
# Author:: Chef Partner Engineering (<partnereng@chef.io>)
|
5
|
-
# Copyright:: Copyright
|
5
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
6
6
|
# License:: Apache License, Version 2.0
|
7
7
|
#
|
8
8
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -32,6 +32,8 @@ class Chef::Knife::Cloud
|
|
32
32
|
deps do
|
33
33
|
require "gcewinpass"
|
34
34
|
require_relative "cloud/google_service"
|
35
|
+
require_relative "cloud/google_service_helpers"
|
36
|
+
include GoogleServiceHelpers
|
35
37
|
end
|
36
38
|
|
37
39
|
option :machine_type,
|
@@ -170,28 +172,28 @@ class Chef::Knife::Cloud
|
|
170
172
|
|
171
173
|
@create_options = {
|
172
174
|
name: instance_name,
|
173
|
-
image:
|
174
|
-
image_project:
|
175
|
-
network:
|
176
|
-
subnet:
|
177
|
-
public_ip:
|
175
|
+
image: config[:image],
|
176
|
+
image_project: config[:image_project],
|
177
|
+
network: config[:network],
|
178
|
+
subnet: config[:subnet],
|
179
|
+
public_ip: config[:public_ip],
|
178
180
|
auto_migrate: auto_migrate?,
|
179
181
|
auto_restart: auto_restart?,
|
180
182
|
preemptible: preemptible?,
|
181
|
-
boot_disk_autodelete:
|
182
|
-
boot_disk_name:
|
183
|
+
boot_disk_autodelete: config[:boot_disk_autodelete],
|
184
|
+
boot_disk_name: config[:boot_disk_name],
|
183
185
|
boot_disk_size: boot_disk_size,
|
184
|
-
boot_disk_ssd:
|
185
|
-
additional_disks:
|
186
|
-
local_ssd:
|
187
|
-
interface:
|
186
|
+
boot_disk_ssd: config[:boot_disk_ssd],
|
187
|
+
additional_disks: config[:additional_disks],
|
188
|
+
local_ssd: config[:local_ssd],
|
189
|
+
interface: config[:interface],
|
188
190
|
number_of_local_ssd: number_of_local_ssd,
|
189
|
-
can_ip_forward:
|
190
|
-
machine_type:
|
191
|
-
service_account_scopes:
|
192
|
-
service_account_name:
|
191
|
+
can_ip_forward: config[:can_ip_forward],
|
192
|
+
machine_type: config[:machine_type],
|
193
|
+
service_account_scopes: config[:service_account_scopes],
|
194
|
+
service_account_name: config[:service_account_name],
|
193
195
|
metadata: metadata,
|
194
|
-
tags:
|
196
|
+
tags: config[:tags],
|
195
197
|
}
|
196
198
|
end
|
197
199
|
|
@@ -206,16 +208,16 @@ class Chef::Knife::Cloud
|
|
206
208
|
raise "You must supply an instance name." if @name_args.first.nil?
|
207
209
|
raise "Boot disk size must be between 10 and 10,000" unless valid_disk_size?(boot_disk_size)
|
208
210
|
|
209
|
-
if
|
211
|
+
if config[:connection_protocol] == "winrm" && config[:gce_email].nil?
|
210
212
|
raise "Please provide your Google Cloud console email address via --gce-email. " \
|
211
213
|
"It is required when resetting passwords on Windows hosts."
|
212
214
|
end
|
213
215
|
|
214
|
-
raise "Please provide connection port via --connection-port." unless
|
215
|
-
raise "Please provide image os type via --image-os-type." unless
|
216
|
+
raise "Please provide connection port via --connection-port." unless config[:connection_port]
|
217
|
+
raise "Please provide image os type via --image-os-type." unless config[:image_os_type]
|
216
218
|
|
217
|
-
ui.warn("Auto-migrate disabled for preemptible instance") if preemptible? &&
|
218
|
-
ui.warn("Auto-restart disabled for preemptible instance") if preemptible? &&
|
219
|
+
ui.warn("Auto-migrate disabled for preemptible instance") if preemptible? && config[:auto_migrate]
|
220
|
+
ui.warn("Auto-restart disabled for preemptible instance") if preemptible? && config[:auto_restart]
|
219
221
|
|
220
222
|
super
|
221
223
|
end
|
@@ -223,10 +225,10 @@ class Chef::Knife::Cloud
|
|
223
225
|
def before_bootstrap
|
224
226
|
super
|
225
227
|
|
226
|
-
config[:chef_node_name] =
|
228
|
+
config[:chef_node_name] = config[:chef_node_name] ? config[:chef_node_name] : instance_name
|
227
229
|
config[:bootstrap_ip_address] = ip_address_for_bootstrap
|
228
230
|
|
229
|
-
if
|
231
|
+
if config[:image_os_type] == "windows"
|
230
232
|
ui.msg("Resetting the Windows login password so the bootstrap can continue...")
|
231
233
|
config[:connection_password] = reset_windows_password
|
232
234
|
end
|
@@ -243,31 +245,31 @@ class Chef::Knife::Cloud
|
|
243
245
|
end
|
244
246
|
|
245
247
|
def project
|
246
|
-
|
248
|
+
config[:gce_project]
|
247
249
|
end
|
248
250
|
|
249
251
|
def zone
|
250
|
-
|
252
|
+
config[:gce_zone]
|
251
253
|
end
|
252
254
|
|
253
255
|
def email
|
254
|
-
|
256
|
+
config[:gce_email]
|
255
257
|
end
|
256
258
|
|
257
259
|
def preemptible?
|
258
|
-
|
260
|
+
config[:preemptible]
|
259
261
|
end
|
260
262
|
|
261
263
|
def auto_migrate?
|
262
|
-
preemptible? ? false :
|
264
|
+
preemptible? ? false : config[:auto_migrate]
|
263
265
|
end
|
264
266
|
|
265
267
|
def auto_restart?
|
266
|
-
preemptible? ? false :
|
268
|
+
preemptible? ? false : config[:auto_restart]
|
267
269
|
end
|
268
270
|
|
269
271
|
def ip_address_for_bootstrap
|
270
|
-
ip =
|
272
|
+
ip = config[:use_private_ip] ? private_ip_for(server) : public_ip_for(server)
|
271
273
|
|
272
274
|
raise "Unable to determine instance IP address for bootstrapping" if ip == "unknown"
|
273
275
|
|
@@ -279,18 +281,18 @@ class Chef::Knife::Cloud
|
|
279
281
|
end
|
280
282
|
|
281
283
|
def metadata
|
282
|
-
|
284
|
+
config[:metadata].each_with_object({}) do |item, memo|
|
283
285
|
key, value = item.split("=")
|
284
286
|
memo[key] = value
|
285
287
|
end
|
286
288
|
end
|
287
289
|
|
288
290
|
def boot_disk_size
|
289
|
-
|
291
|
+
config[:boot_disk_size].to_i
|
290
292
|
end
|
291
293
|
|
292
294
|
def number_of_local_ssd
|
293
|
-
|
295
|
+
config[:number_of_local_ssd].to_i
|
294
296
|
end
|
295
297
|
|
296
298
|
def reset_windows_password
|
@@ -299,7 +301,7 @@ class Chef::Knife::Cloud
|
|
299
301
|
zone: zone,
|
300
302
|
instance_name: instance_name,
|
301
303
|
email: email,
|
302
|
-
username:
|
304
|
+
username: config[:connection_user],
|
303
305
|
debug: gcewinpass_debug_mode
|
304
306
|
).new_password
|
305
307
|
end
|
data/lib/knife-google/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-google
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chiraq Jog
|
@@ -13,22 +13,36 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2020-
|
16
|
+
date: 2020-07-15 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
|
+
- !ruby/object:Gem::Dependency
|
19
|
+
name: chef
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '15.11'
|
25
|
+
type: :runtime
|
26
|
+
prerelease: false
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '15.11'
|
18
32
|
- !ruby/object:Gem::Dependency
|
19
33
|
name: knife-cloud
|
20
34
|
requirement: !ruby/object:Gem::Requirement
|
21
35
|
requirements:
|
22
36
|
- - ">="
|
23
37
|
- !ruby/object:Gem::Version
|
24
|
-
version:
|
38
|
+
version: 4.0.0
|
25
39
|
type: :runtime
|
26
40
|
prerelease: false
|
27
41
|
version_requirements: !ruby/object:Gem::Requirement
|
28
42
|
requirements:
|
29
43
|
- - ">="
|
30
44
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
45
|
+
version: 4.0.0
|
32
46
|
- !ruby/object:Gem::Dependency
|
33
47
|
name: google-api-client
|
34
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,7 +52,7 @@ dependencies:
|
|
38
52
|
version: 0.23.9
|
39
53
|
- - "<"
|
40
54
|
- !ruby/object:Gem::Version
|
41
|
-
version: 0.
|
55
|
+
version: 0.43.0
|
42
56
|
type: :runtime
|
43
57
|
prerelease: false
|
44
58
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -48,7 +62,7 @@ dependencies:
|
|
48
62
|
version: 0.23.9
|
49
63
|
- - "<"
|
50
64
|
- !ruby/object:Gem::Version
|
51
|
-
version: 0.
|
65
|
+
version: 0.43.0
|
52
66
|
- !ruby/object:Gem::Dependency
|
53
67
|
name: gcewinpass
|
54
68
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements:
|
101
115
|
- - ">="
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: '2.
|
117
|
+
version: '2.6'
|
104
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
119
|
requirements:
|
106
120
|
- - ">="
|