beaker-aws 0.7.0 → 0.8.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/CHANGELOG.md +18 -1
- data/ec2.md +5 -0
- data/lib/beaker-aws/version.rb +1 -1
- data/lib/beaker/hypervisor/aws_sdk.rb +7 -2
- data/spec/beaker/hypervisor/aws_sdk_spec.rb +40 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b26a191837d6178ca381188d630580e7164fb81
|
4
|
+
data.tar.gz: 8f99f771202aac99eca8c1398d0b8c6c9c72df81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8097804f569ec2a6ff9138de95df973af467b2f49d7c03c34b1062313af88a20ae3dc69a1c6f9aafc1d7aaf453574c5e0bf164566b675ab1f5f48669336d297
|
7
|
+
data.tar.gz: 41146639bd25556a5e0a3853c7ad96adaf4b7ae3a20984efb26dd6a0bfd65f22ad1dad3710701c966f24837b98ff5d0a2380e5e313066a456565405b1355ea98
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
[Unreleased](https://github.com/puppetlabs/beaker-aws/compare/0.8.0...master)
|
4
|
+
|
5
|
+
## [0.8.0](https://github.com/puppetlabs/beaker-aws/tree/0.8.0) (2018-12-12)
|
6
|
+
[Full Changelog](https://github.com/puppetlabs/beaker-aws/compare/0.7.0...0.8.0)
|
7
|
+
|
8
|
+
**Merged pull requests:**
|
9
|
+
|
10
|
+
- \(BKR-1546\) Added associate\_public\_ip\_address as host variable that is inserted into the AWS config if set
|
11
|
+
|
12
|
+
## [0.7.0](https://github.com/puppetlabs/beaker-aws/tree/0.7.0) (2018-08-27)
|
13
|
+
[Full Changelog](https://github.com/puppetlabs/beaker-aws/compare/0.6.0...0.7.0)
|
14
|
+
|
15
|
+
**Merged pull requests:**
|
16
|
+
|
17
|
+
- \(BKR-1522\) Add options to drop some of the provisioning
|
18
|
+
- \(BKR-1509\) Hypervisor usage instructions for Beaker 4.0
|
19
|
+
|
3
20
|
## [0.6.0](https://github.com/puppetlabs/beaker-aws/tree/0.6.0) (2018-07-16)
|
4
21
|
[Full Changelog](https://github.com/puppetlabs/beaker-aws/compare/0.5.0...0.6.0)
|
5
22
|
|
@@ -49,4 +66,4 @@
|
|
49
66
|
|
50
67
|
|
51
68
|
|
52
|
-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
69
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/ec2.md
CHANGED
@@ -114,3 +114,8 @@ By default root login is not allowed with Amazon Linux. Setting it to ec2-user w
|
|
114
114
|
|
115
115
|
#### `disable_root_ssh` ####
|
116
116
|
By default Beaker enabled root login on the instance. There are situation where we use AMIs which are pre-configured. Setting `disable_root_ssh` to `true` will stop enablign the root login.
|
117
|
+
|
118
|
+
#### `associate_public_ip_address` ####
|
119
|
+
Beaker uses default setting from subnet policies for the boolean
|
120
|
+
variable "associate public ip address". Use this setting to
|
121
|
+
override that when needed.
|
data/lib/beaker-aws/version.rb
CHANGED
@@ -342,12 +342,17 @@ module Beaker
|
|
342
342
|
:enabled => true,
|
343
343
|
},
|
344
344
|
:key_name => ensure_key_pair(region).key_pairs.first.key_name,
|
345
|
-
:security_group_ids => [security_group.group_id, ping_security_group.group_id],
|
346
345
|
:instance_type => amisize,
|
347
346
|
:disable_api_termination => false,
|
348
347
|
:instance_initiated_shutdown_behavior => "terminate",
|
349
|
-
:
|
348
|
+
:network_interfaces => [{
|
349
|
+
:subnet_id => subnet_id,
|
350
|
+
:groups => [security_group.group_id, ping_security_group.group_id],
|
351
|
+
:device_index => 0,
|
352
|
+
}],
|
350
353
|
}
|
354
|
+
assoc_pub_ip_addr = host['associate_public_ip_address']
|
355
|
+
config[:network_interfaces][0][:associate_public_ip_address] = assoc_pub_ip_addr unless assoc_pub_ip_addr.nil?
|
351
356
|
config[:block_device_mappings] = block_device_mappings if image.root_device_type == :ebs
|
352
357
|
reservation = client(region).run_instances(config)
|
353
358
|
reservation.instances.first
|
@@ -1213,5 +1213,45 @@ module Beaker
|
|
1213
1213
|
aws
|
1214
1214
|
end
|
1215
1215
|
end
|
1216
|
+
|
1217
|
+
describe 'create_instance' do
|
1218
|
+
let(:mock_client) { instance_double(Aws::EC2::Client) }
|
1219
|
+
|
1220
|
+
before(:each) do
|
1221
|
+
allow(aws).to receive(:client).and_return(mock_client)
|
1222
|
+
vpc = instance_double(Aws::EC2::Types::Vpc, :vpc_id => 1337)
|
1223
|
+
describe_vpcs_result = instance_double(Aws::EC2::Types::DescribeVpcsResult, :vpcs => [vpc])
|
1224
|
+
allow(mock_client).to receive(:describe_vpcs).and_return(describe_vpcs_result)
|
1225
|
+
image = instance_double(Aws::EC2::Types::Image, :root_device_type => :no_device)
|
1226
|
+
described_images = instance_double(Aws::EC2::Types::DescribeImagesResult, :images => [image])
|
1227
|
+
allow(mock_client).to receive(:describe_images).and_return(described_images)
|
1228
|
+
security_group = instance_double(Aws::EC2::Types::GroupIdentifier, :group_id => 69)
|
1229
|
+
security_groups_result =
|
1230
|
+
instance_double(Aws::EC2::Types::DescribeSecurityGroupsResult, :security_groups => [security_group])
|
1231
|
+
allow(mock_client).to receive(:describe_security_groups).and_return(security_groups_result)
|
1232
|
+
key_pair = instance_double(Aws::EC2::Types::KeyPairInfo, :key_name => 'a-key')
|
1233
|
+
key_pair_result = instance_double(Aws::EC2::Types::DescribeKeyPairsResult, :key_pairs => [key_pair])
|
1234
|
+
allow(aws).to receive(:ensure_key_pair).and_return(key_pair_result)
|
1235
|
+
end
|
1236
|
+
|
1237
|
+
it 'sets associate_public_ip_address when included' do
|
1238
|
+
host = @hosts[0]
|
1239
|
+
host['associate_public_ip_address'] = true
|
1240
|
+
variable_path = hash_including(
|
1241
|
+
:network_interfaces => [hash_including(:associate_public_ip_address => true)])
|
1242
|
+
reservation = instance_double(Aws::EC2::Types::Reservation, :instances => [instance_double(Aws::EC2::Types::Instance)])
|
1243
|
+
expect(mock_client).to receive(:run_instances).with(variable_path).and_return(reservation)
|
1244
|
+
aws.create_instance(host, amispec, nil)
|
1245
|
+
end
|
1246
|
+
|
1247
|
+
it 'omits associate_public_ip_address when not included' do
|
1248
|
+
host = @hosts[0]
|
1249
|
+
variable_path = hash_including(
|
1250
|
+
:network_interfaces => [hash_excluding(:associate_public_ip_address => anything)])
|
1251
|
+
reservation = instance_double(Aws::EC2::Types::Reservation, :instances => [instance_double(Aws::EC2::Types::Instance)])
|
1252
|
+
expect(mock_client).to receive(:run_instances).with(variable_path).and_return(reservation)
|
1253
|
+
aws.create_instance(host, amispec, nil)
|
1254
|
+
end
|
1255
|
+
end
|
1216
1256
|
end
|
1217
1257
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rishi Javia, Kevin Imber, Tony Vu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|