knife-ec2 2.0.6 → 2.1.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/ec2_server_create.rb +21 -15
- data/lib/chef/knife/ec2_server_delete.rb +1 -1
- data/lib/chef/knife/ec2_server_list.rb +1 -1
- data/lib/chef/knife/helpers/ec2_base.rb +8 -1
- data/lib/chef/knife/helpers/s3_source.rb +3 -2
- data/lib/knife-ec2/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fa7c53da4012983a77593f22b1f639192ddfca69cb72e7cfbcffc662c5001f1
|
4
|
+
data.tar.gz: 97fc956cdfb920451831057192cb0ad4392c6cc90352473b5444c83f0c54a3fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 946d1dfa4c3800619e4250c6097e4614faa7f705f7fcac23b7b8a74787939a3cb7d9517611e69c2ac34ece01334a8eedec2fb523d69536123543c9c9b3bbcbcf
|
7
|
+
data.tar.gz: 9ea88798ea2c08ded66b0122c45aa663a3bbe40263a8a9bc76161850f42f08ba3f18b11db2076a869baf04879802ab0267059e9bc819272ec1774464e63ffda6
|
@@ -104,9 +104,11 @@ class Chef
|
|
104
104
|
long: "--ebs-optimized",
|
105
105
|
description: "Enabled optimized EBS I/O"
|
106
106
|
|
107
|
-
option :
|
108
|
-
long: "--ebs-
|
109
|
-
description: "
|
107
|
+
option :ebs_delete_on_term,
|
108
|
+
long: "--ebs-delete-on-term",
|
109
|
+
description: "Delete EBS volume on instance termination",
|
110
|
+
boolean: true,
|
111
|
+
default: true
|
110
112
|
|
111
113
|
option :secret,
|
112
114
|
long: "--secret ",
|
@@ -520,7 +522,7 @@ class Chef
|
|
520
522
|
|
521
523
|
def s3_validation_key
|
522
524
|
@s3_validation_key ||= begin
|
523
|
-
Chef::Knife::S3Source.fetch(config[:validation_key_url])
|
525
|
+
Chef::Knife::S3Source.fetch(config[:validation_key_url], config)
|
524
526
|
end
|
525
527
|
end
|
526
528
|
|
@@ -528,7 +530,7 @@ class Chef
|
|
528
530
|
@s3_secret ||= begin
|
529
531
|
return false unless config[:s3_secret]
|
530
532
|
|
531
|
-
Chef::Knife::S3Source.fetch(config[:s3_secret])
|
533
|
+
Chef::Knife::S3Source.fetch(config[:s3_secret], config)
|
532
534
|
end
|
533
535
|
end
|
534
536
|
|
@@ -624,12 +626,18 @@ class Chef
|
|
624
626
|
exit 1
|
625
627
|
end
|
626
628
|
|
627
|
-
if config[:ebs_volume_type] && ! %w{gp2 io1 standard}.include?(config[:ebs_volume_type])
|
628
|
-
ui.error("--ebs-volume-type must be 'standard' or 'io1' or 'gp2'")
|
629
|
+
if config[:ebs_volume_type] && ! %w{gp2 io1 standard st1 sc1}.include?(config[:ebs_volume_type])
|
630
|
+
ui.error("--ebs-volume-type must be 'standard' or 'io1' or 'gp2' or 'st1' or 'sc1'")
|
629
631
|
msg opt_parser
|
630
632
|
exit 1
|
631
633
|
end
|
632
634
|
|
635
|
+
# validation for ebs_size
|
636
|
+
if (%w{st1 sc1}.include?(config[:ebs_volume_type])) && ! config[:ebs_size].to_i.between?(500, 16384)
|
637
|
+
ui.error("--ebs-size should be in between 500-16384 for 'st1' or 'sc1' ebs volume type.")
|
638
|
+
exit 1
|
639
|
+
end
|
640
|
+
|
633
641
|
if config[:security_groups] && config[:security_groups].class == String
|
634
642
|
ui.error("Invalid value type for knife[:security_groups] in knife configuration file (i.e knife.rb/config.rb). Type should be array. e.g - knife[:security_groups] = ['sgroup1']")
|
635
643
|
exit 1
|
@@ -706,7 +714,7 @@ class Chef
|
|
706
714
|
exit 1
|
707
715
|
end
|
708
716
|
|
709
|
-
if winrm?
|
717
|
+
if winrm? && !config[:connection_password].nil?
|
710
718
|
reg = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,40}$/
|
711
719
|
unless config[:connection_password]&.match?(reg)
|
712
720
|
ui.error("Complexity requirements are not met. Password length should be 8-40 characters and include: 1 uppercase, 1 lowercase, 1 digit, and 1 special character")
|
@@ -907,7 +915,7 @@ class Chef
|
|
907
915
|
attributes[:ebs_optimized] = !!config[:ebs_optimized]
|
908
916
|
|
909
917
|
if ami.root_device_type == "ebs"
|
910
|
-
if config[:ebs_encrypted]
|
918
|
+
if config[:ebs_encrypted] || %w{st1 sc1}.include?(config[:ebs_volume_type])
|
911
919
|
ami_map = ami.block_device_mappings[1]
|
912
920
|
else
|
913
921
|
ami_map = ami.block_device_mappings.first
|
@@ -924,11 +932,9 @@ class Chef
|
|
924
932
|
msg opt_parser
|
925
933
|
exit 1
|
926
934
|
end
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
ami_map.ebs.delete_on_termination if ami_map.ebs.respond_to?(:delete_on_termination)
|
931
|
-
end
|
935
|
+
|
936
|
+
delete_term = config[:ebs_delete_on_term]
|
937
|
+
|
932
938
|
iops_rate = begin
|
933
939
|
if config[:ebs_provisioned_iops]
|
934
940
|
Integer(config[:ebs_provisioned_iops]).to_s
|
@@ -957,7 +963,7 @@ class Chef
|
|
957
963
|
if config[:ephemeral] && config[:ephemeral].length > 0
|
958
964
|
ephemeral_blocks = []
|
959
965
|
config[:ephemeral].each_with_index do |device_name, i|
|
960
|
-
ephemeral_blocks << { virtual_name: "ephemeral#{i}", device_name: device_name
|
966
|
+
ephemeral_blocks << { virtual_name: "ephemeral#{i}", device_name: device_name }
|
961
967
|
end
|
962
968
|
attributes[:block_device_mappings] += ephemeral_blocks
|
963
969
|
end
|
@@ -148,7 +148,7 @@ class Chef
|
|
148
148
|
server_data[id] = i.instances[0].send(id)
|
149
149
|
end
|
150
150
|
|
151
|
-
server_data["name"] = i.instances[0].tags
|
151
|
+
server_data["name"] = find_name_tag(i.instances[0].tags)
|
152
152
|
server_data["az"] = i.instances[0].placement.availability_zone
|
153
153
|
server_data["iam_instance_profile"] = ( i.instances[0].iam_instance_profile.nil? ? nil : i.instances[0].iam_instance_profile.arn[%r{instance-profile/(.*)}] )
|
154
154
|
server_data["security_groups"] = i.instances[0].security_groups.map(&:group_name).join(", ")
|
@@ -151,7 +151,7 @@ class Chef
|
|
151
151
|
server_data["id"] = server_data["instance_id"]
|
152
152
|
|
153
153
|
tags = server_obj.instances[0].tags.map(&:value)
|
154
|
-
server_data["name"] =
|
154
|
+
server_data["name"] = find_name_tag(server_obj.instances[0].tags)
|
155
155
|
server_data["placement_group"] = server_obj.instances[0].placement.group_name
|
156
156
|
server_data["security_groups"] = server_obj.instances[0].security_groups.map(&:group_name)
|
157
157
|
server_data["security_group_ids"] = server_obj.instances[0].security_groups.map(&:group_id)
|
@@ -181,6 +181,13 @@ class Chef
|
|
181
181
|
@ami ||= fetch_ami(config[:image])
|
182
182
|
end
|
183
183
|
|
184
|
+
# Name tag value return.
|
185
|
+
# @return [String]
|
186
|
+
def find_name_tag(tags)
|
187
|
+
name_tag = tags.find { |tag| tag[:key] == "Name" }
|
188
|
+
name_tag ? name_tag[:value] : nil
|
189
|
+
end
|
190
|
+
|
184
191
|
# Platform value return for Windows AMIs; otherwise, it is blank.
|
185
192
|
# @return [Boolean]
|
186
193
|
def is_image_windows?
|
@@ -17,11 +17,12 @@
|
|
17
17
|
class Chef
|
18
18
|
class Knife
|
19
19
|
class S3Source
|
20
|
-
attr_accessor :url
|
20
|
+
attr_accessor :url, :config
|
21
21
|
|
22
|
-
def self.fetch(url)
|
22
|
+
def self.fetch(url, config)
|
23
23
|
source = Chef::Knife::S3Source.new
|
24
24
|
source.url = url
|
25
|
+
source.config = config
|
25
26
|
source.body
|
26
27
|
end
|
27
28
|
|
data/lib/knife-ec2/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-ec2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chef Software, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
requirements: []
|
94
|
-
rubygems_version: 3.
|
94
|
+
rubygems_version: 3.1.4
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: Amazon EC2 Support for Chef's Knife Command
|