kitchen-ec2 1.0.0.beta.1 → 1.0.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 +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
|