kitchen-ec2 1.0.0.beta.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +269 -164
- data/README.md +18 -3
- data/Rakefile +16 -1
- data/kitchen-ec2.gemspec +3 -0
- data/lib/kitchen/driver/ec2.rb +19 -8
- data/lib/kitchen/driver/ec2_version.rb +1 -1
- data/spec/kitchen/driver/ec2_spec.rb +34 -3
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e350ede911339522ad0dc496c276aa1d5daca295
|
4
|
+
data.tar.gz: 4a8c8f1b0bc410d21a61aacc243b769259c98543
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbcfdeed3b394fe78693363cde0c67fd5cc62027de2101c40e84f3d23f8afa3c1093c5e95a57b9adcf8f2a548603d27e8dfd622a9aaee4842d160855881b5f1d
|
7
|
+
data.tar.gz: d2d11880244e3b55190fc1dda81e0310e99e83773fc95a79c1dadab39945646e66d5bf0d678b05b6707bd127784f32c52c50c3e7e055dbfe6663124f14e368f1
|
data/CHANGELOG.md
CHANGED
@@ -1,231 +1,336 @@
|
|
1
|
-
|
1
|
+
# Change Log
|
2
2
|
|
3
|
-
|
3
|
+
## [1.0.0](https://github.com/test-kitchen/kitchen-ec2/tree/1.0.0) (2016-03-03)
|
4
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v1.0.0.beta.1...1.0.0)
|
4
5
|
|
5
|
-
|
6
|
-
* Pull Request [#161][]: Fixing UTF error in hints file on Windows ([@zl4bv][])
|
7
|
-
* Pull Request [#166][]: If `security_group_ids` is specified as a string instead of an array we coerce it to an array automatically ([@fnichol][])
|
6
|
+
**Merged pull requests:**
|
8
7
|
|
9
|
-
|
8
|
+
- Use github\_changelog\_generator for changelog [\#231](https://github.com/test-kitchen/kitchen-ec2/pull/231) ([jkeiser](https://github.com/jkeiser))
|
9
|
+
- Rename price -\> spot\_price, fix rubocop [\#229](https://github.com/test-kitchen/kitchen-ec2/pull/229) ([jkeiser](https://github.com/jkeiser))
|
10
|
+
- support duration for spot instances [\#214](https://github.com/test-kitchen/kitchen-ec2/pull/214) ([wjordan](https://github.com/wjordan))
|
11
|
+
- Add support for looking up Private DNS Name for hostname [\#197](https://github.com/test-kitchen/kitchen-ec2/pull/197) ([mekf](https://github.com/mekf))
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
* Add default user data which enables winrm. See `ec2.rb` for the exact user data that is uploaded.
|
14
|
-
* Default user data will add a non-`administrator` user to the Administrator group if `username` and `password` transport options are specified.
|
15
|
-
* EC2 will automatically generate the `administrator` user password if it is not specified as `password` transport options. This will be stored and used for further kitchen commands.
|
16
|
-
* Unfortunately this cannot be passed to the RDP client initiated by `kitchen login`. Look at `.kitchen/<name>.yml` for the password in this case.
|
17
|
-
* A HUGE thanks to [@zl4bv][] and [@afiune][] for the majority of the work on these changes!
|
13
|
+
## [v1.0.0.beta.1](https://github.com/test-kitchen/kitchen-ec2/tree/v1.0.0.beta.1) (2016-02-13)
|
14
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.10.0...v1.0.0.beta.1)
|
18
15
|
|
19
|
-
|
16
|
+
**Implemented enhancements:**
|
20
17
|
|
21
|
-
|
18
|
+
- Slow file transference [\#93](https://github.com/test-kitchen/kitchen-ec2/issues/93)
|
19
|
+
- Dynamically find default images for many platforms [\#221](https://github.com/test-kitchen/kitchen-ec2/pull/221) ([jkeiser](https://github.com/jkeiser))
|
20
|
+
- Query Ubuntu AMI IDs [\#169](https://github.com/test-kitchen/kitchen-ec2/pull/169) ([whiteley](https://github.com/whiteley))
|
22
21
|
|
23
|
-
|
22
|
+
**Fixed bugs:**
|
24
23
|
|
25
|
-
|
24
|
+
- Improve error handling if kitchen instance is destroy out of band [\#210](https://github.com/test-kitchen/kitchen-ec2/issues/210)
|
25
|
+
- SSH prompting password for an instance inside VPC [\#129](https://github.com/test-kitchen/kitchen-ec2/issues/129)
|
26
|
+
- amis.json out of date [\#117](https://github.com/test-kitchen/kitchen-ec2/issues/117)
|
27
|
+
- Fix sudo dependency. Fixes \#204 [\#219](https://github.com/test-kitchen/kitchen-ec2/pull/219) ([alexpop](https://github.com/alexpop))
|
28
|
+
- Use ubuntu user for Ubuntu 15.04 and 15.10 [\#196](https://github.com/test-kitchen/kitchen-ec2/pull/196) ([jaym](https://github.com/jaym))
|
29
|
+
- Adding better retry logic to creation, fixes \#179 \(hopefully\) [\#184](https://github.com/test-kitchen/kitchen-ec2/pull/184) ([tyler-ball](https://github.com/tyler-ball))
|
30
|
+
- Add support for looking up AMIs with the EC2 API [\#177](https://github.com/test-kitchen/kitchen-ec2/pull/177) ([zl4bv](https://github.com/zl4bv))
|
31
|
+
- Trying :instance\_running check before tagging [\#171](https://github.com/test-kitchen/kitchen-ec2/pull/171) ([tyler-ball](https://github.com/tyler-ball))
|
26
32
|
|
27
|
-
|
33
|
+
**Closed issues:**
|
28
34
|
|
29
|
-
|
35
|
+
- Requesting to include this plug-in in Chefdk [\#218](https://github.com/test-kitchen/kitchen-ec2/issues/218)
|
36
|
+
- Can't ssh to instance after it's created [\#217](https://github.com/test-kitchen/kitchen-ec2/issues/217)
|
37
|
+
- No installation instructions [\#216](https://github.com/test-kitchen/kitchen-ec2/issues/216)
|
38
|
+
- availability\_zone is always b [\#215](https://github.com/test-kitchen/kitchen-ec2/issues/215)
|
39
|
+
- Windows create fails fetching password [\#211](https://github.com/test-kitchen/kitchen-ec2/issues/211)
|
40
|
+
- Offering to help maintain this repo [\#209](https://github.com/test-kitchen/kitchen-ec2/issues/209)
|
41
|
+
- Support for HVM EC2 instances [\#205](https://github.com/test-kitchen/kitchen-ec2/issues/205)
|
42
|
+
- Installation fails due to sudo dependency in test-kitchen [\#204](https://github.com/test-kitchen/kitchen-ec2/issues/204)
|
43
|
+
- Not all AMIs in amis.json are public. [\#202](https://github.com/test-kitchen/kitchen-ec2/issues/202)
|
44
|
+
- connection\_retries doesn't seem to work? [\#200](https://github.com/test-kitchen/kitchen-ec2/issues/200)
|
45
|
+
- kitchen converge needs to be run 2-3 times to work with stock Windows 2012r2 AMI ami-dfccd1ef [\#198](https://github.com/test-kitchen/kitchen-ec2/issues/198)
|
46
|
+
- Unable to assign a name to an ec2 instance [\#194](https://github.com/test-kitchen/kitchen-ec2/issues/194)
|
47
|
+
- Administrator password not being retrieved on Windows 2008 R2 [\#192](https://github.com/test-kitchen/kitchen-ec2/issues/192)
|
48
|
+
- Removing Default Storage when running Kitchen Destroy [\#188](https://github.com/test-kitchen/kitchen-ec2/issues/188)
|
49
|
+
- Test Kitchen issues on EC2 using RHEL platform? [\#181](https://github.com/test-kitchen/kitchen-ec2/issues/181)
|
50
|
+
- Failure for numeric key name [\#178](https://github.com/test-kitchen/kitchen-ec2/issues/178)
|
51
|
+
- Issues under high concurrency [\#176](https://github.com/test-kitchen/kitchen-ec2/issues/176)
|
52
|
+
- SSH Connection Expiring Upon Instance Creation [\#173](https://github.com/test-kitchen/kitchen-ec2/issues/173)
|
53
|
+
- Throttle requests to EC2 API [\#170](https://github.com/test-kitchen/kitchen-ec2/issues/170)
|
54
|
+
- missing aws\_secret\_access\_key causes quiet timeout [\#155](https://github.com/test-kitchen/kitchen-ec2/issues/155)
|
30
55
|
|
31
|
-
|
56
|
+
**Merged pull requests:**
|
32
57
|
|
33
|
-
|
58
|
+
- Bump revision to 1.0.0.beta.1 [\#224](https://github.com/test-kitchen/kitchen-ec2/pull/224) ([jkeiser](https://github.com/jkeiser))
|
59
|
+
- Update travis ruby versions and update badges [\#213](https://github.com/test-kitchen/kitchen-ec2/pull/213) ([tas50](https://github.com/tas50))
|
60
|
+
- Allow configuring retry\_limit in Aws.config [\#208](https://github.com/test-kitchen/kitchen-ec2/pull/208) ([jlyheden](https://github.com/jlyheden))
|
61
|
+
- Default instance type change, and Ubuntu AMI search options to match [\#207](https://github.com/test-kitchen/kitchen-ec2/pull/207) ([vancluever](https://github.com/vancluever))
|
62
|
+
- Add support for CentOS 7 [\#199](https://github.com/test-kitchen/kitchen-ec2/pull/199) ([proffalken](https://github.com/proffalken))
|
63
|
+
- Update CHANGELOG.md [\#183](https://github.com/test-kitchen/kitchen-ec2/pull/183) ([failshell](https://github.com/failshell))
|
34
64
|
|
35
|
-
|
65
|
+
## [v0.10.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.10.0) (2015-06-24)
|
66
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.10.0.rc.1...v0.10.0)
|
36
67
|
|
37
|
-
|
68
|
+
**Fixed bugs:**
|
38
69
|
|
39
|
-
|
70
|
+
- ebs\_volume\_type missing parameters when set to 'io1' [\#157](https://github.com/test-kitchen/kitchen-ec2/issues/157)
|
71
|
+
- setting http\_proxy causes no\_proxy to be ignored [\#156](https://github.com/test-kitchen/kitchen-ec2/issues/156)
|
72
|
+
- transport configuration options do not work [\#145](https://github.com/test-kitchen/kitchen-ec2/issues/145)
|
73
|
+
- expected params\[:network\_interfaces\]\[0\]\[:groups\] to be an array [\#144](https://github.com/test-kitchen/kitchen-ec2/issues/144)
|
74
|
+
- Premature timeout when waiting for WinRM for be ready [\#132](https://github.com/test-kitchen/kitchen-ec2/issues/132)
|
75
|
+
- Allow `:security\_group\_ids` to accept a string value. [\#166](https://github.com/test-kitchen/kitchen-ec2/pull/166) ([fnichol](https://github.com/fnichol))
|
76
|
+
- Adding block\_device\_mapping iops parameter, fixes \#157 [\#165](https://github.com/test-kitchen/kitchen-ec2/pull/165) ([tyler-ball](https://github.com/tyler-ball))
|
77
|
+
- Fix 'invalid char in json text' error [\#161](https://github.com/test-kitchen/kitchen-ec2/pull/161) ([zl4bv](https://github.com/zl4bv))
|
78
|
+
- Remove useless log message [\#158](https://github.com/test-kitchen/kitchen-ec2/pull/158) ([ustuehler](https://github.com/ustuehler))
|
79
|
+
- Remove useless log message [\#158](https://github.com/test-kitchen/kitchen-ec2/pull/158) ([ustuehler](https://github.com/ustuehler))
|
40
80
|
|
41
|
-
|
81
|
+
**Closed issues:**
|
42
82
|
|
43
|
-
|
83
|
+
- efdk bundle update [\#163](https://github.com/test-kitchen/kitchen-ec2/issues/163)
|
44
84
|
|
45
|
-
|
85
|
+
**Merged pull requests:**
|
46
86
|
|
47
|
-
|
87
|
+
- reference to required IAM settings [\#160](https://github.com/test-kitchen/kitchen-ec2/pull/160) ([gmiranda23](https://github.com/gmiranda23))
|
48
88
|
|
49
|
-
|
89
|
+
## [v0.10.0.rc.1](https://github.com/test-kitchen/kitchen-ec2/tree/v0.10.0.rc.1) (2015-06-19)
|
90
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.10.0.rc.0...v0.10.0.rc.1)
|
50
91
|
|
51
|
-
## 0.
|
92
|
+
## [v0.10.0.rc.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.10.0.rc.0) (2015-06-18)
|
93
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.9.5...v0.10.0.rc.0)
|
52
94
|
|
53
|
-
|
95
|
+
**Fixed bugs:**
|
54
96
|
|
55
|
-
|
56
|
-
* Pull Request [#128][]:
|
57
|
-
* Fixes [#121][]: Fixing error `Network interfaces and an instance-level security groups may not be specified on the same request`
|
58
|
-
* Fixes [#127][]: User Data content should be base64 encoded when passed to aws sdk
|
97
|
+
- block device examples updated [\#136](https://github.com/test-kitchen/kitchen-ec2/pull/136) ([gmiranda23](https://github.com/gmiranda23))
|
59
98
|
|
60
|
-
|
99
|
+
**Closed issues:**
|
61
100
|
|
62
|
-
|
101
|
+
- Documentation - IAM policy document [\#159](https://github.com/test-kitchen/kitchen-ec2/issues/159)
|
102
|
+
- kitchen-ec2 version 0.9.4 ssh transport is broken [\#154](https://github.com/test-kitchen/kitchen-ec2/issues/154)
|
103
|
+
- Setting multiple non-default transport usernames per platform will soon be broken [\#153](https://github.com/test-kitchen/kitchen-ec2/issues/153)
|
63
104
|
|
64
|
-
|
105
|
+
**Merged pull requests:**
|
65
106
|
|
66
|
-
|
107
|
+
- Pulling together existing PRs for windows support [\#150](https://github.com/test-kitchen/kitchen-ec2/pull/150) ([tyler-ball](https://github.com/tyler-ball))
|
67
108
|
|
68
|
-
|
69
|
-
|
70
|
-
* Pull Request [#125][]: When specifying `associate_public_ip` we must send the subnet (if provided) in the `network_interfaces` section of the payload instead of the main section. ([@tyler-ball][])
|
71
|
-
* Fixed regression: Accidently renamed config `associate_public_ip` to `associate_public_ip_address`, reverting.
|
72
|
-
* Fixed regression: Accidently renamed config `iam_profile_name` to `iam_instance_profile`, reverting.
|
109
|
+
## [v0.9.5](https://github.com/test-kitchen/kitchen-ec2/tree/v0.9.5) (2015-06-08)
|
110
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.9.4...v0.9.5)
|
73
111
|
|
74
|
-
|
112
|
+
**Fixed bugs:**
|
75
113
|
|
76
|
-
|
114
|
+
- You broke Chef's Travis CI tests =\) [\#148](https://github.com/test-kitchen/kitchen-ec2/issues/148)
|
77
115
|
|
78
|
-
|
116
|
+
**Closed issues:**
|
79
117
|
|
80
|
-
|
118
|
+
- Race condition logging into RHEL/CentOS instances [\#149](https://github.com/test-kitchen/kitchen-ec2/issues/149)
|
81
119
|
|
82
|
-
|
83
|
-
* Pull Request [#97][], [#69][], [#99][]: Try additional connections to servers which don't have a `public_ip_address`. This helps connect to nodes over VPN. ([@chuckg][], [@tyler-ball][], [@mumoshu][])
|
120
|
+
**Merged pull requests:**
|
84
121
|
|
85
|
-
|
122
|
+
- Query correct instance object for hostname fixes \#148 [\#151](https://github.com/test-kitchen/kitchen-ec2/pull/151) ([tyler-ball](https://github.com/tyler-ball))
|
86
123
|
|
87
|
-
|
88
|
-
|
89
|
-
* Pull Request [#84][]: Add the ability to specify the private ip of the instance. Set `:private_ip_address` in the driver section of your .kitchen.yml. ([@scarolan][])
|
90
|
-
* Pull Request [#68][], [#104][], [#107][]: If provisioning from an EC2 host and credentials are not set use the local nodes's credentials. If access key & secret are set, do not use local session token - leave it unset. ([@JamesAwesome][], [@Igorshp][], [@daanemanz][])
|
124
|
+
## [v0.9.4](https://github.com/test-kitchen/kitchen-ec2/tree/v0.9.4) (2015-06-03)
|
125
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.9.3...v0.9.4)
|
91
126
|
|
92
|
-
|
127
|
+
**Fixed bugs:**
|
93
128
|
|
94
|
-
|
95
|
-
|
96
|
-
|
129
|
+
- undefined local variable or method `logger' on kitchen create [\#142](https://github.com/test-kitchen/kitchen-ec2/issues/142)
|
130
|
+
- Kitchen setup on Centos6.4 fails initial ssh auth with valid credentials [\#137](https://github.com/test-kitchen/kitchen-ec2/issues/137)
|
131
|
+
- TK Can't Connect to EC2 Instance via SSH [\#135](https://github.com/test-kitchen/kitchen-ec2/issues/135)
|
132
|
+
- Providing logger to instance\_generator, fixes \#142 [\#146](https://github.com/test-kitchen/kitchen-ec2/pull/146) ([tyler-ball](https://github.com/tyler-ball))
|
97
133
|
|
98
|
-
|
134
|
+
**Closed issues:**
|
99
135
|
|
100
|
-
|
136
|
+
- kitchen destroy bombs trying to destroy non-existent instances [\#143](https://github.com/test-kitchen/kitchen-ec2/issues/143)
|
137
|
+
- EC2-Instance terminates while TK waits on it to become ready [\#130](https://github.com/test-kitchen/kitchen-ec2/issues/130)
|
101
138
|
|
102
|
-
|
139
|
+
**Merged pull requests:**
|
103
140
|
|
104
|
-
|
141
|
+
- \#66: changed \[driver\_usage\] link to point to GitHub [\#141](https://github.com/test-kitchen/kitchen-ec2/pull/141) ([dsavinkov](https://github.com/dsavinkov))
|
105
142
|
|
106
|
-
|
107
|
-
|
108
|
-
* Pull request [#34][]: Support AWS session tokens for use with IAM roles. ([@coderanger][])
|
109
|
-
* Pull request [#22][]: Add ebs_optimized attribute. ([@tiwilliam][])
|
143
|
+
## [v0.9.3](https://github.com/test-kitchen/kitchen-ec2/tree/v0.9.3) (2015-05-29)
|
144
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.9.2...v0.9.3)
|
110
145
|
|
111
|
-
|
146
|
+
**Fixed bugs:**
|
112
147
|
|
113
|
-
|
114
|
-
|
115
|
-
* Pull request [#23][]: README updates for badges. ([@sethvargo][], [@arangamani][])
|
148
|
+
- Error trying to tag instance before it exists [\#138](https://github.com/test-kitchen/kitchen-ec2/issues/138)
|
149
|
+
- \[Network interfaces and an instance-level security groups may not be specified on the same request\] [\#127](https://github.com/test-kitchen/kitchen-ec2/issues/127)
|
116
150
|
|
151
|
+
**Closed issues:**
|
117
152
|
|
118
|
-
|
153
|
+
- Failure to specify username leads to confusing error message [\#113](https://github.com/test-kitchen/kitchen-ec2/issues/113)
|
154
|
+
- Kitchen attempts to log in before sshd is ready [\#85](https://github.com/test-kitchen/kitchen-ec2/issues/85)
|
119
155
|
|
120
|
-
|
156
|
+
**Merged pull requests:**
|
121
157
|
|
122
|
-
|
158
|
+
- Adding an existence check before tagging server [\#140](https://github.com/test-kitchen/kitchen-ec2/pull/140) ([tyler-ball](https://github.com/tyler-ball))
|
123
159
|
|
124
|
-
|
160
|
+
## [v0.9.2](https://github.com/test-kitchen/kitchen-ec2/tree/v0.9.2) (2015-05-27)
|
161
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.9.1...v0.9.2)
|
125
162
|
|
126
|
-
|
163
|
+
**Fixed bugs:**
|
127
164
|
|
165
|
+
- Support for proxy? [\#126](https://github.com/test-kitchen/kitchen-ec2/issues/126)
|
166
|
+
- Support for proxy? [\#126](https://github.com/test-kitchen/kitchen-ec2/issues/126)
|
167
|
+
- User Data content should be base64 encoded when passed to aws sdk [\#121](https://github.com/test-kitchen/kitchen-ec2/issues/121)
|
128
168
|
|
129
|
-
|
169
|
+
**Closed issues:**
|
130
170
|
|
131
|
-
|
171
|
+
- kitchen-ec2 fails when setting associate\_public\_ip: false [\#106](https://github.com/test-kitchen/kitchen-ec2/issues/106)
|
132
172
|
|
133
|
-
|
173
|
+
**Merged pull requests:**
|
134
174
|
|
135
|
-
|
175
|
+
- Adding proxy support that was present in Fog back [\#131](https://github.com/test-kitchen/kitchen-ec2/pull/131) ([tyler-ball](https://github.com/tyler-ball))
|
176
|
+
- Fixing 2 regressions in 0.9.1 [\#128](https://github.com/test-kitchen/kitchen-ec2/pull/128) ([tyler-ball](https://github.com/tyler-ball))
|
136
177
|
|
137
|
-
|
178
|
+
## [v0.9.1](https://github.com/test-kitchen/kitchen-ec2/tree/v0.9.1) (2015-05-21)
|
179
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.9.0...v0.9.1)
|
138
180
|
|
181
|
+
**Fixed bugs:**
|
139
182
|
|
140
|
-
|
183
|
+
- hostname missing when waiting for ssh service in create action [\#122](https://github.com/test-kitchen/kitchen-ec2/issues/122)
|
184
|
+
- ebs\_delete\_on\_termination is not working [\#91](https://github.com/test-kitchen/kitchen-ec2/issues/91)
|
185
|
+
- Fixing error where aws returns DNS name as empty string [\#124](https://github.com/test-kitchen/kitchen-ec2/pull/124) ([tyler-ball](https://github.com/tyler-ball))
|
141
186
|
|
142
|
-
|
187
|
+
**Closed issues:**
|
143
188
|
|
144
|
-
|
189
|
+
- Limited Permissions - Failed to complete \#create action: \[You are not authorized to perform this operation.\] [\#120](https://github.com/test-kitchen/kitchen-ec2/issues/120)
|
190
|
+
- release 0.8.0 doesn't properly honor instance\_type [\#114](https://github.com/test-kitchen/kitchen-ec2/issues/114)
|
191
|
+
- tag\_server: tag key needs to be cast to string [\#111](https://github.com/test-kitchen/kitchen-ec2/issues/111)
|
192
|
+
- The specified wait\_for timeout \(600 seconds\) was exceeded [\#103](https://github.com/test-kitchen/kitchen-ec2/issues/103)
|
193
|
+
- block\_device\_mappings setting is not optional [\#100](https://github.com/test-kitchen/kitchen-ec2/issues/100)
|
194
|
+
- kitchen-ec2 - iam\_profile\_name fog not passing through [\#94](https://github.com/test-kitchen/kitchen-ec2/issues/94)
|
195
|
+
- Unable to SSH into VPC Instance [\#77](https://github.com/test-kitchen/kitchen-ec2/issues/77)
|
196
|
+
- Can't get a public IP [\#72](https://github.com/test-kitchen/kitchen-ec2/issues/72)
|
197
|
+
- Why no releases since Feb? [\#65](https://github.com/test-kitchen/kitchen-ec2/issues/65)
|
145
198
|
|
199
|
+
**Merged pull requests:**
|
146
200
|
|
147
|
-
|
201
|
+
- Fixing :subnet\_id payload placement if :associate\_public\_ip is set [\#125](https://github.com/test-kitchen/kitchen-ec2/pull/125) ([tyler-ball](https://github.com/tyler-ball))
|
148
202
|
|
149
|
-
|
203
|
+
## [v0.9.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.9.0) (2015-05-19)
|
204
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.8.0...v0.9.0)
|
150
205
|
|
151
|
-
|
152
|
-
* Add required_config attributes for driver. ([@fnichol][])
|
206
|
+
**Implemented enhancements:**
|
153
207
|
|
154
|
-
|
208
|
+
- Support HVM based virtualization [\#25](https://github.com/test-kitchen/kitchen-ec2/issues/25)
|
209
|
+
- Support spot-instances [\#6](https://github.com/test-kitchen/kitchen-ec2/issues/6)
|
155
210
|
|
156
|
-
|
157
|
-
* Pull request [#2][]: Extra EC2 server creation debugging. ([@mattray][])
|
158
|
-
* Remove default_config :port in favor of SSHBase default (also 22). ([@fnichol][])
|
211
|
+
**Fixed bugs:**
|
159
212
|
|
160
|
-
|
161
|
-
[
|
162
|
-
[
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
[
|
167
|
-
[
|
168
|
-
[
|
169
|
-
[
|
170
|
-
[
|
171
|
-
[
|
172
|
-
[
|
173
|
-
[
|
174
|
-
[
|
175
|
-
[
|
176
|
-
[
|
177
|
-
[
|
178
|
-
[
|
179
|
-
[
|
180
|
-
[
|
181
|
-
[
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
[
|
186
|
-
[
|
187
|
-
[
|
188
|
-
[
|
189
|
-
[
|
190
|
-
[
|
191
|
-
[
|
192
|
-
[
|
193
|
-
[
|
194
|
-
[
|
195
|
-
[
|
196
|
-
[
|
197
|
-
[
|
198
|
-
[
|
199
|
-
[
|
200
|
-
[
|
201
|
-
[
|
202
|
-
[
|
203
|
-
[
|
204
|
-
[
|
205
|
-
|
206
|
-
[
|
207
|
-
[
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
[
|
212
|
-
[
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
[
|
217
|
-
[
|
218
|
-
[
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
[
|
223
|
-
[
|
224
|
-
[
|
225
|
-
[
|
226
|
-
|
227
|
-
[
|
228
|
-
[
|
229
|
-
|
230
|
-
|
231
|
-
|
213
|
+
- Might be leaving orphaned EBS volumes [\#30](https://github.com/test-kitchen/kitchen-ec2/issues/30)
|
214
|
+
- `kitchen login` fails if ssh\_key is a relative path. [\#26](https://github.com/test-kitchen/kitchen-ec2/issues/26)
|
215
|
+
- Fix security\_group\_ids parameter for spot requests [\#90](https://github.com/test-kitchen/kitchen-ec2/pull/90) ([gfloyd](https://github.com/gfloyd))
|
216
|
+
|
217
|
+
**Closed issues:**
|
218
|
+
|
219
|
+
- Issue with amazon linux 32 bit and SCP failing \>\>\>\>\>\> Message: Failed to complete \#converge action: \[SCP did not finish successfully \(127\): \] [\#88](https://github.com/test-kitchen/kitchen-ec2/issues/88)
|
220
|
+
- The plugin does not create /etc/chef/ohai/hints/ec2.json file [\#86](https://github.com/test-kitchen/kitchen-ec2/issues/86)
|
221
|
+
- how do you pass user data to the instance? [\#79](https://github.com/test-kitchen/kitchen-ec2/issues/79)
|
222
|
+
- Can't find how to set EBS Volume Size [\#71](https://github.com/test-kitchen/kitchen-ec2/issues/71)
|
223
|
+
- Instance created but nothing happens from there [\#62](https://github.com/test-kitchen/kitchen-ec2/issues/62)
|
224
|
+
- Use IAM role to authenticate with AWS [\#55](https://github.com/test-kitchen/kitchen-ec2/issues/55)
|
225
|
+
- iam\_profile\_name not being added to ec2 [\#54](https://github.com/test-kitchen/kitchen-ec2/issues/54)
|
226
|
+
- it always invokes tests as root [\#52](https://github.com/test-kitchen/kitchen-ec2/issues/52)
|
227
|
+
- Failing authentication for some larger instances. [\#51](https://github.com/test-kitchen/kitchen-ec2/issues/51)
|
228
|
+
- allow to hide aws keys from kitchen.yml [\#50](https://github.com/test-kitchen/kitchen-ec2/issues/50)
|
229
|
+
- Configuration option for naming EC2 instances? [\#48](https://github.com/test-kitchen/kitchen-ec2/issues/48)
|
230
|
+
- Ohai attribute node\[:ec2\] is nil [\#47](https://github.com/test-kitchen/kitchen-ec2/issues/47)
|
231
|
+
- Resolving dependencies on ec2 instead upload resolved cookbooks to ec2 [\#40](https://github.com/test-kitchen/kitchen-ec2/issues/40)
|
232
|
+
- fails to connect to ec2 if ip/host is not in known\_hosts entry [\#38](https://github.com/test-kitchen/kitchen-ec2/issues/38)
|
233
|
+
- doesn't invoke test while using ec2 driver [\#37](https://github.com/test-kitchen/kitchen-ec2/issues/37)
|
234
|
+
- Default to IAM Credentials if aws\_access\_key\_id or aws\_secret\_access\_key Not Provided [\#19](https://github.com/test-kitchen/kitchen-ec2/issues/19)
|
235
|
+
|
236
|
+
**Merged pull requests:**
|
237
|
+
|
238
|
+
- Test Kitchen 1.4.0 has been released [\#112](https://github.com/test-kitchen/kitchen-ec2/pull/112) ([jaym](https://github.com/jaym))
|
239
|
+
- Adding test coverage [\#110](https://github.com/test-kitchen/kitchen-ec2/pull/110) ([tyler-ball](https://github.com/tyler-ball))
|
240
|
+
- Updating to depend on TK 1.4 [\#109](https://github.com/test-kitchen/kitchen-ec2/pull/109) ([tyler-ball](https://github.com/tyler-ball))
|
241
|
+
- Add explicit option for using iam profile for authentication [\#107](https://github.com/test-kitchen/kitchen-ec2/pull/107) ([JamesAwesome](https://github.com/JamesAwesome))
|
242
|
+
- Add support for IAM role credentials [\#104](https://github.com/test-kitchen/kitchen-ec2/pull/104) ([Igorshp](https://github.com/Igorshp))
|
243
|
+
- Fix the regression after changes in 23f4d945 [\#99](https://github.com/test-kitchen/kitchen-ec2/pull/99) ([mumoshu](https://github.com/mumoshu))
|
244
|
+
- New `block\_device\_mappings` config [\#98](https://github.com/test-kitchen/kitchen-ec2/pull/98) ([tyler-ball](https://github.com/tyler-ball))
|
245
|
+
- Fix connection to servers without a "public\_ip\_address" interface \(ie: VPC\) [\#97](https://github.com/test-kitchen/kitchen-ec2/pull/97) ([tyler-ball](https://github.com/tyler-ball))
|
246
|
+
- Updating documentation so first-time users have an easier time [\#92](https://github.com/test-kitchen/kitchen-ec2/pull/92) ([tyler-ball](https://github.com/tyler-ball))
|
247
|
+
- Added private\_ip\_address support. [\#84](https://github.com/test-kitchen/kitchen-ec2/pull/84) ([scarolan](https://github.com/scarolan))
|
248
|
+
- added user\_data for instance preparation [\#82](https://github.com/test-kitchen/kitchen-ec2/pull/82) ([sebbrandt87](https://github.com/sebbrandt87))
|
249
|
+
- Fix connection to servers without a "public\_ip\_address" interface \(ie: VPC\) [\#69](https://github.com/test-kitchen/kitchen-ec2/pull/69) ([chuckg](https://github.com/chuckg))
|
250
|
+
- Add Ubuntu 13.10 and 14.04 AMIs [\#63](https://github.com/test-kitchen/kitchen-ec2/pull/63) ([justincampbell](https://github.com/justincampbell))
|
251
|
+
- Added AWS\_SESSION\_TOKEN parameter to readme [\#60](https://github.com/test-kitchen/kitchen-ec2/pull/60) ([berniedurfee](https://github.com/berniedurfee))
|
252
|
+
- Customize ssh\_timeout and ssh\_retries [\#58](https://github.com/test-kitchen/kitchen-ec2/pull/58) ([ekrupnik](https://github.com/ekrupnik))
|
253
|
+
- Added .project to .gitignore file [\#57](https://github.com/test-kitchen/kitchen-ec2/pull/57) ([ekrupnik](https://github.com/ekrupnik))
|
254
|
+
- Add missing "a" to interface header [\#49](https://github.com/test-kitchen/kitchen-ec2/pull/49) ([eherot](https://github.com/eherot))
|
255
|
+
- Don't create multiple instances if "kitchen create" is called multiple t... [\#46](https://github.com/test-kitchen/kitchen-ec2/pull/46) ([anl](https://github.com/anl))
|
256
|
+
- Warn about $$$ [\#41](https://github.com/test-kitchen/kitchen-ec2/pull/41) ([sethvargo](https://github.com/sethvargo))
|
257
|
+
- IAM Profile Support for Created instance [\#35](https://github.com/test-kitchen/kitchen-ec2/pull/35) ([nicgrayson](https://github.com/nicgrayson))
|
258
|
+
|
259
|
+
## [v0.8.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.8.0) (2014-02-12)
|
260
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.7.0...v0.8.0)
|
261
|
+
|
262
|
+
**Fixed bugs:**
|
263
|
+
|
264
|
+
- AWS ENV vars not honored [\#17](https://github.com/test-kitchen/kitchen-ec2/issues/17)
|
265
|
+
- Periodic failures in kitchen-ec2 [\#10](https://github.com/test-kitchen/kitchen-ec2/issues/10)
|
266
|
+
|
267
|
+
**Closed issues:**
|
268
|
+
|
269
|
+
- encrypted\_data\_bag\_secret not found [\#24](https://github.com/test-kitchen/kitchen-ec2/issues/24)
|
270
|
+
- busser bats tests don't run [\#16](https://github.com/test-kitchen/kitchen-ec2/issues/16)
|
271
|
+
- Support for server.dns\_name [\#14](https://github.com/test-kitchen/kitchen-ec2/issues/14)
|
272
|
+
|
273
|
+
**Merged pull requests:**
|
274
|
+
|
275
|
+
- Support AWS session tokens for use with IAM roles. [\#34](https://github.com/test-kitchen/kitchen-ec2/pull/34) ([coderanger](https://github.com/coderanger))
|
276
|
+
- endpoint should have a trailing slash [\#31](https://github.com/test-kitchen/kitchen-ec2/pull/31) ([spheromak](https://github.com/spheromak))
|
277
|
+
- Compat with test-kitchen master. [\#29](https://github.com/test-kitchen/kitchen-ec2/pull/29) ([coderanger](https://github.com/coderanger))
|
278
|
+
- Support selection of private ip [\#21](https://github.com/test-kitchen/kitchen-ec2/pull/21) ([Atalanta](https://github.com/Atalanta))
|
279
|
+
|
280
|
+
## [v0.7.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.7.0) (2013-08-29)
|
281
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.6.0...v0.7.0)
|
282
|
+
|
283
|
+
**Closed issues:**
|
284
|
+
|
285
|
+
- Error running kitchen-ec2 0.6.0 [\#12](https://github.com/test-kitchen/kitchen-ec2/issues/12)
|
286
|
+
- License missing from gemspec [\#11](https://github.com/test-kitchen/kitchen-ec2/issues/11)
|
287
|
+
|
288
|
+
**Merged pull requests:**
|
289
|
+
|
290
|
+
- wait\_for\_ssh takes 2 arguments [\#13](https://github.com/test-kitchen/kitchen-ec2/pull/13) ([dysinger](https://github.com/dysinger))
|
291
|
+
|
292
|
+
## [v0.6.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.6.0) (2013-07-23)
|
293
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.5.1...v0.6.0)
|
294
|
+
|
295
|
+
**Closed issues:**
|
296
|
+
|
297
|
+
- net-scp version is 1.0.4 [\#1](https://github.com/test-kitchen/kitchen-ec2/issues/1)
|
298
|
+
|
299
|
+
**Merged pull requests:**
|
300
|
+
|
301
|
+
- Match access and secret key env vars in example kitchen config with CLI tools' env vars. [\#9](https://github.com/test-kitchen/kitchen-ec2/pull/9) ([juliandunn](https://github.com/juliandunn))
|
302
|
+
- Use private ip if the public ip is nil [\#8](https://github.com/test-kitchen/kitchen-ec2/pull/8) ([dissonanz](https://github.com/dissonanz))
|
303
|
+
|
304
|
+
## [v0.5.1](https://github.com/test-kitchen/kitchen-ec2/tree/v0.5.1) (2013-05-23)
|
305
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.5.0...v0.5.1)
|
306
|
+
|
307
|
+
**Merged pull requests:**
|
308
|
+
|
309
|
+
- Adding subnet\_id option for use with VPCs [\#7](https://github.com/test-kitchen/kitchen-ec2/pull/7) ([dissonanz](https://github.com/dissonanz))
|
310
|
+
|
311
|
+
## [v0.5.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.5.0) (2013-05-23)
|
312
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.4.0...v0.5.0)
|
313
|
+
|
314
|
+
**Closed issues:**
|
315
|
+
|
316
|
+
- We should be able to specify tags for ec2 instances [\#4](https://github.com/test-kitchen/kitchen-ec2/issues/4)
|
317
|
+
- SSH private key config value needed [\#3](https://github.com/test-kitchen/kitchen-ec2/issues/3)
|
318
|
+
|
319
|
+
**Merged pull requests:**
|
320
|
+
|
321
|
+
- Add the ability to give ec2 instances tags. [\#5](https://github.com/test-kitchen/kitchen-ec2/pull/5) ([halcyonCorsair](https://github.com/halcyonCorsair))
|
322
|
+
- additional ec2 debugging [\#2](https://github.com/test-kitchen/kitchen-ec2/pull/2) ([mattray](https://github.com/mattray))
|
323
|
+
|
324
|
+
## [v0.4.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.4.0) (2013-03-02)
|
325
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.3.0...v0.4.0)
|
326
|
+
|
327
|
+
## [v0.3.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.3.0) (2013-01-09)
|
328
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.2.0...v0.3.0)
|
329
|
+
|
330
|
+
## [v0.2.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.2.0) (2013-01-03)
|
331
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-ec2/compare/v0.1.0...v0.2.0)
|
332
|
+
|
333
|
+
## [v0.1.0](https://github.com/test-kitchen/kitchen-ec2/tree/v0.1.0) (2012-12-27)
|
334
|
+
|
335
|
+
|
336
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/README.md
CHANGED
@@ -284,12 +284,19 @@ The EC2 IAM profile name to use.
|
|
284
284
|
|
285
285
|
The default is `nil`.
|
286
286
|
|
287
|
-
### `
|
287
|
+
### `spot_price`
|
288
288
|
|
289
289
|
The price you bid in order to submit a spot request. An additional step will be required during the spot request process submission. If no price is set, it will use an on-demand instance.
|
290
290
|
|
291
291
|
The default is `nil`.
|
292
292
|
|
293
|
+
### block_duration_minutes
|
294
|
+
|
295
|
+
The [specified duration](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#fixed-duration-spot-instances) for a spot instance, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).
|
296
|
+
If no duration is set, the spot instance will remain active until it is terminated.
|
297
|
+
|
298
|
+
The default is `nil`.
|
299
|
+
|
293
300
|
### `http_proxy`
|
294
301
|
|
295
302
|
Specify a proxy to send AWS requests through. Should be of the format `http://<host>:<port>`.
|
@@ -365,13 +372,21 @@ If you don't set this it will default to whatever DHCP address EC2 hands out.
|
|
365
372
|
|
366
373
|
#### `interface`
|
367
374
|
|
368
|
-
The place from which to derive the hostname for communicating with the instance. May be `dns`, `public` or `
|
375
|
+
The place from which to derive the hostname for communicating with the instance. May be `dns`, `public`, `private` or `private_dns`. If this is unset, the driver will derive the hostname by failing back in the following order:
|
369
376
|
|
370
377
|
1. DNS Name
|
371
378
|
2. Public IP Address
|
372
379
|
3. Private IP Address
|
380
|
+
4. Private DNS Name
|
373
381
|
|
374
|
-
The default is unset.
|
382
|
+
The default is unset. Under normal circumstances, the lookup will return the `Private IP Address`.
|
383
|
+
|
384
|
+
If the `Private DNS Name` is preferred over the private IP, it must be specified in the `.kitchen.yml` file
|
385
|
+
|
386
|
+
```ruby
|
387
|
+
driver:
|
388
|
+
interface: private_dns
|
389
|
+
```
|
375
390
|
|
376
391
|
## Example
|
377
392
|
|
data/Rakefile
CHANGED
@@ -25,4 +25,19 @@ task :quality => [:style, :stats]
|
|
25
25
|
require "yard"
|
26
26
|
YARD::Rake::YardocTask.new
|
27
27
|
|
28
|
-
|
28
|
+
begin
|
29
|
+
task :default => [:test, :quality]
|
30
|
+
|
31
|
+
require "github_changelog_generator/task"
|
32
|
+
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
33
|
+
config.future_release = Kitchen::Driver::EC2_VERSION
|
34
|
+
config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature".split(",")
|
35
|
+
config.bug_labels = "bug,Bug,Improvement".split(",")
|
36
|
+
config.exclude_labels = "duplicate,question,invalid,wontfix,no_changelog," \
|
37
|
+
",Exclude From Changelog,Question,Upstream Bug,Discussion".split(",")
|
38
|
+
end
|
39
|
+
rescue LoadError
|
40
|
+
task :changelog do
|
41
|
+
raise "github_changelog_generator not installed! gem install github_changelog_generator."
|
42
|
+
end
|
43
|
+
end
|
data/kitchen-ec2.gemspec
CHANGED
@@ -30,6 +30,9 @@ Gem::Specification.new do |gem|
|
|
30
30
|
gem.add_development_dependency "simplecov", "~> 0.7"
|
31
31
|
gem.add_development_dependency "yard", "~> 0.8"
|
32
32
|
|
33
|
+
# conflicts with finstyle 1.4.0
|
34
|
+
# gem.add_development_dependency "github_changelog_generator", "~> 1.11", ">= 1.11.6"
|
35
|
+
|
33
36
|
# style and complexity libraries are tightly version pinned as newer releases
|
34
37
|
# may introduce new and undesireable style choices which would be immediately
|
35
38
|
# enforced in CI
|
data/lib/kitchen/driver/ec2.rb
CHANGED
@@ -62,7 +62,8 @@ module Kitchen
|
|
62
62
|
end
|
63
63
|
default_config :private_ip_address, nil
|
64
64
|
default_config :iam_profile_name, nil
|
65
|
-
default_config :
|
65
|
+
default_config :spot_price, nil
|
66
|
+
default_config :block_duration_minutes, nil
|
66
67
|
default_config :retryable_tries, 60
|
67
68
|
default_config :retryable_sleep, 5
|
68
69
|
default_config :aws_access_key_id, nil
|
@@ -161,7 +162,7 @@ module Kitchen
|
|
161
162
|
are responsible for your incurred costs.
|
162
163
|
END
|
163
164
|
|
164
|
-
if config[:
|
165
|
+
if config[:spot_price]
|
165
166
|
# Spot instance when a price is set
|
166
167
|
server = submit_spot(state)
|
167
168
|
else
|
@@ -320,12 +321,8 @@ module Kitchen
|
|
320
321
|
|
321
322
|
def submit_spot(state) # rubocop:disable Metrics/AbcSize
|
322
323
|
debug("Creating EC2 Spot Instance..")
|
323
|
-
request_data = {}
|
324
|
-
request_data[:spot_price] = config[:price].to_s
|
325
|
-
request_data[:launch_specification] = instance_generator.ec2_instance_data
|
326
324
|
|
327
|
-
|
328
|
-
spot_request_id = response[:spot_instance_requests][0][:spot_instance_request_id]
|
325
|
+
spot_request_id = create_spot_request
|
329
326
|
# deleting the instance cancels the request, but deleting the request
|
330
327
|
# does not affect the instance
|
331
328
|
state[:spot_request_id] = spot_request_id
|
@@ -344,6 +341,19 @@ module Kitchen
|
|
344
341
|
ec2.get_instance_from_spot_request(spot_request_id)
|
345
342
|
end
|
346
343
|
|
344
|
+
def create_spot_request
|
345
|
+
request_data = {
|
346
|
+
:spot_price => config[:spot_price].to_s,
|
347
|
+
:launch_specification => instance_generator.ec2_instance_data
|
348
|
+
}
|
349
|
+
if config[:block_duration_minutes]
|
350
|
+
request_data[:block_duration_minutes] = config[:block_duration_minutes]
|
351
|
+
end
|
352
|
+
|
353
|
+
response = ec2.client.request_spot_instances(request_data)
|
354
|
+
response[:spot_instance_requests][0][:spot_instance_request_id]
|
355
|
+
end
|
356
|
+
|
347
357
|
def tag_server(server)
|
348
358
|
tags = []
|
349
359
|
config[:tags].each do |k, v|
|
@@ -422,7 +432,8 @@ module Kitchen
|
|
422
432
|
{
|
423
433
|
"dns" => "public_dns_name",
|
424
434
|
"public" => "public_ip_address",
|
425
|
-
"private" => "private_ip_address"
|
435
|
+
"private" => "private_ip_address",
|
436
|
+
"private_dns" => "private_dns_name"
|
426
437
|
}
|
427
438
|
|
428
439
|
#
|
@@ -25,7 +25,13 @@ describe Kitchen::Driver::Ec2 do
|
|
25
25
|
|
26
26
|
let(:logged_output) { StringIO.new }
|
27
27
|
let(:logger) { Logger.new(logged_output) }
|
28
|
-
let(:config)
|
28
|
+
let(:config) do
|
29
|
+
{
|
30
|
+
:aws_ssh_key_id => "key",
|
31
|
+
:image_id => "ami-1234567",
|
32
|
+
:block_duration_minutes => 60
|
33
|
+
}
|
34
|
+
end
|
29
35
|
let(:platform) { Kitchen::Platform.new(:name => "fooos-99") }
|
30
36
|
let(:transport) { Kitchen::Transport::Dummy.new }
|
31
37
|
let(:generator) { instance_double(Kitchen::Driver::Aws::InstanceGenerator) }
|
@@ -74,11 +80,13 @@ describe Kitchen::Driver::Ec2 do
|
|
74
80
|
|
75
81
|
describe "#hostname" do
|
76
82
|
let(:public_dns_name) { nil }
|
83
|
+
let(:private_dns_name) { nil }
|
77
84
|
let(:public_ip_address) { nil }
|
78
85
|
let(:private_ip_address) { nil }
|
79
86
|
let(:server) {
|
80
87
|
double("server",
|
81
88
|
:public_dns_name => public_dns_name,
|
89
|
+
:private_dns_name => private_dns_name,
|
82
90
|
:public_ip_address => public_ip_address,
|
83
91
|
:private_ip_address => private_ip_address
|
84
92
|
)
|
@@ -102,9 +110,23 @@ describe Kitchen::Driver::Ec2 do
|
|
102
110
|
it "returns private_ip_address when requested" do
|
103
111
|
expect(driver.hostname(server, "private")).to eq(private_ip_address)
|
104
112
|
end
|
113
|
+
it "returns private_dns_name when requested" do
|
114
|
+
expect(driver.hostname(server, "private_dns")).to eq(private_dns_name)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context "private_dns_name is populated" do
|
119
|
+
let(:private_dns_name) { "private_dns_name" }
|
120
|
+
|
121
|
+
it "returns the private_dns_name" do
|
122
|
+
expect(driver.hostname(server)).to eq(private_dns_name)
|
123
|
+
end
|
124
|
+
|
125
|
+
include_examples "an interface type provided"
|
105
126
|
end
|
106
127
|
|
107
128
|
context "private_ip_address is populated" do
|
129
|
+
let(:private_dns_name) { "private_dns_name" }
|
108
130
|
let(:private_ip_address) { "10.0.0.1" }
|
109
131
|
|
110
132
|
it "returns the private_ip_address" do
|
@@ -115,6 +137,7 @@ describe Kitchen::Driver::Ec2 do
|
|
115
137
|
end
|
116
138
|
|
117
139
|
context "public_ip_address is populated" do
|
140
|
+
let(:private_dns_name) { "private_dns_name" }
|
118
141
|
let(:private_ip_address) { "10.0.0.1" }
|
119
142
|
let(:public_ip_address) { "127.0.0.1" }
|
120
143
|
|
@@ -126,6 +149,7 @@ describe Kitchen::Driver::Ec2 do
|
|
126
149
|
end
|
127
150
|
|
128
151
|
context "public_dns_name is populated" do
|
152
|
+
let(:private_dns_name) { "private_dns_name" }
|
129
153
|
let(:private_ip_address) { "10.0.0.1" }
|
130
154
|
let(:public_ip_address) { "127.0.0.1" }
|
131
155
|
let(:public_dns_name) { "public_dns_name" }
|
@@ -148,6 +172,13 @@ describe Kitchen::Driver::Ec2 do
|
|
148
172
|
it "returns the private_ip_address" do
|
149
173
|
expect(driver.hostname(server)).to eq(private_ip_address)
|
150
174
|
end
|
175
|
+
|
176
|
+
context "and private_dns_name is populated" do
|
177
|
+
let(:private_dns_name) { "private_dns_name" }
|
178
|
+
it "returns the private_ip_address" do
|
179
|
+
expect(driver.hostname(server)).to eq(private_ip_address)
|
180
|
+
end
|
181
|
+
end
|
151
182
|
end
|
152
183
|
end
|
153
184
|
end
|
@@ -177,7 +208,7 @@ describe Kitchen::Driver::Ec2 do
|
|
177
208
|
it "submits the server request" do
|
178
209
|
expect(generator).to receive(:ec2_instance_data).and_return({})
|
179
210
|
expect(actual_client).to receive(:request_spot_instances).with(
|
180
|
-
:spot_price => "", :launch_specification => {}
|
211
|
+
:spot_price => "", :launch_specification => {}, :block_duration_minutes => 60
|
181
212
|
).and_return(response)
|
182
213
|
expect(actual_client).to receive(:wait_until)
|
183
214
|
expect(client).to receive(:get_instance_from_spot_request).with("id")
|
@@ -336,7 +367,7 @@ describe Kitchen::Driver::Ec2 do
|
|
336
367
|
|
337
368
|
context "config is for a spot instance" do
|
338
369
|
before do
|
339
|
-
config[:
|
370
|
+
config[:spot_price] = 1
|
340
371
|
expect(driver).to receive(:submit_spot).with(state).and_return(server)
|
341
372
|
end
|
342
373
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-ec2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fletcher Nichol
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-kitchen
|
@@ -234,12 +234,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
234
234
|
version: '0'
|
235
235
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
236
|
requirements:
|
237
|
-
- - "
|
237
|
+
- - ">="
|
238
238
|
- !ruby/object:Gem::Version
|
239
|
-
version:
|
239
|
+
version: '0'
|
240
240
|
requirements: []
|
241
241
|
rubyforge_project:
|
242
|
-
rubygems_version: 2.
|
242
|
+
rubygems_version: 2.6.0
|
243
243
|
signing_key:
|
244
244
|
specification_version: 4
|
245
245
|
summary: A Test Kitchen Driver for Amazon EC2
|