kitchen-ec2 0.8.0 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f3897a853bbce0fe66db106da6852004cc39e6bc
4
- data.tar.gz: 804747d7bf806717e31e4b6ac946497ee3aaf935
3
+ metadata.gz: b12924746e2f87674fd4988de55bce1d30507be4
4
+ data.tar.gz: 7fbbd13c4e9810f0aad3d15bff357291cd808695
5
5
  SHA512:
6
- metadata.gz: eec29c52770a4d005cf1a2769cc131f25cd351591075108ebe745a954b2e6243d30ebdf9cd87848b03321dcca124f80cae0861cec9aa5e193ee36cabf649cdb5
7
- data.tar.gz: b53ed98bc1d2419f90b65114fe0db08db33f036d1e222e4dbbef9e791e396e6704492b58ddf1b9da406703a47e845e88f2efacde5cab3fdf7b3717388e7709f7
6
+ metadata.gz: 67561dd868c1a2e8664f99791b62c237b9dc698ed17d587c0f10ce83ad61713a166742d7b50679d93423acf23f5fbecd55e20eaf8d68f3519106af1ecc5d21b7
7
+ data.tar.gz: db02d3bd6413b7a35e6a843ebced5eba8e54c939462966aee92b87881907e81ad314c4df6839633b912c3b33ad60777fa6cc9ce44864a729b27aec749eb37745
data/.cane CHANGED
@@ -1 +1,2 @@
1
- --style-measure 100
1
+ --abc-max 30
2
+ --style-measure 100
data/.gitignore CHANGED
@@ -15,3 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .project
19
+
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --require spec_helper
3
+ --format progress
data/.rubocop.yml ADDED
@@ -0,0 +1,9 @@
1
+ Style/FileName:
2
+ Exclude:
3
+ - 'data/**/*'
4
+
5
+ Style/Next:
6
+ Enabled: false
7
+
8
+ Style/DoubleNegation:
9
+ Enabled: false
data/.yardopts ADDED
@@ -0,0 +1,3 @@
1
+ --readme README.md
2
+ --markup markdown
3
+ --markup-provider maruku
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 0.9.0 / 2015-05-18
2
+
3
+ ### Bug Fixes
4
+
5
+ * Pull Request [#46][]: Don't create multiple instances if `kitchen create` is called multiple times. ([@anl][])
6
+ * 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][])
7
+
8
+ ### New Features
9
+
10
+ * Pull Request [#35][]: Adding support for specifying the IAM profile on created instance. Set `:iam_profile_name` in the driver section of your .kitchen.yml to specify this. ([@nicgrayson][])
11
+ * Pull Request [#82][]: Add the ability to specify user data. Set `:user_data` in the driver section of your .kitchen.yml. This can either be the user data or the path to a file which contains the user data. ([@sebbrandt87][])
12
+ * 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][])
13
+ * 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][])
14
+
15
+ ### Improvements
16
+
17
+ * Pull Request [#110][]: Updating to use the AWS SDK V2 instead of Fog. ([@tyler-ball][])
18
+ * We no longer recommend storing the AWS credentials in the `.kitchen.yml` file. Instead, specify them as environment variables or in the `~/.aws/credentials` file. See the README for more details.
19
+ * Pull Request [#112][]: Updating to depend on the latest version of Test Kitchen, 1.4.0. ([@jmundrawala][])
20
+
1
21
  ## 0.8.0 / 2014-02-11
2
22
 
3
23
  ### Bug fixes
@@ -61,36 +81,59 @@
61
81
  * Remove default_config :port in favor of SSHBase default (also 22). ([@fnichol][])
62
82
 
63
83
  <!--- The following link definition list is generated by PimpMyChangelog --->
64
- [#2]: https://github.com/opscode/kitchen-ec2/issues/2
65
- [#5]: https://github.com/opscode/kitchen-ec2/issues/5
66
- [#7]: https://github.com/opscode/kitchen-ec2/issues/7
67
- [#8]: https://github.com/opscode/kitchen-ec2/issues/8
68
- [#9]: https://github.com/opscode/kitchen-ec2/issues/9
69
- [#13]: https://github.com/opscode/kitchen-ec2/issues/13
70
- [#14]: https://github.com/opscode/kitchen-ec2/issues/14
71
- [#15]: https://github.com/opscode/kitchen-ec2/issues/15
72
- [#20]: https://github.com/opscode/kitchen-ec2/issues/20
73
- [#21]: https://github.com/opscode/kitchen-ec2/issues/21
74
- [#22]: https://github.com/opscode/kitchen-ec2/issues/22
75
- [#23]: https://github.com/opscode/kitchen-ec2/issues/23
76
- [#27]: https://github.com/opscode/kitchen-ec2/issues/27
77
- [#28]: https://github.com/opscode/kitchen-ec2/issues/28
78
- [#29]: https://github.com/opscode/kitchen-ec2/issues/29
79
- [#31]: https://github.com/opscode/kitchen-ec2/issues/31
80
- [#34]: https://github.com/opscode/kitchen-ec2/issues/34
84
+ [#2]: https://github.com/test-kitchen/kitchen-ec2/issues/2
85
+ [#5]: https://github.com/test-kitchen/kitchen-ec2/issues/5
86
+ [#7]: https://github.com/test-kitchen/kitchen-ec2/issues/7
87
+ [#8]: https://github.com/test-kitchen/kitchen-ec2/issues/8
88
+ [#9]: https://github.com/test-kitchen/kitchen-ec2/issues/9
89
+ [#13]: https://github.com/test-kitchen/kitchen-ec2/issues/13
90
+ [#14]: https://github.com/test-kitchen/kitchen-ec2/issues/14
91
+ [#15]: https://github.com/test-kitchen/kitchen-ec2/issues/15
92
+ [#20]: https://github.com/test-kitchen/kitchen-ec2/issues/20
93
+ [#21]: https://github.com/test-kitchen/kitchen-ec2/issues/21
94
+ [#22]: https://github.com/test-kitchen/kitchen-ec2/issues/22
95
+ [#23]: https://github.com/test-kitchen/kitchen-ec2/issues/23
96
+ [#27]: https://github.com/test-kitchen/kitchen-ec2/issues/27
97
+ [#28]: https://github.com/test-kitchen/kitchen-ec2/issues/28
98
+ [#29]: https://github.com/test-kitchen/kitchen-ec2/issues/29
99
+ [#31]: https://github.com/test-kitchen/kitchen-ec2/issues/31
100
+ [#34]: https://github.com/test-kitchen/kitchen-ec2/issues/34
101
+ [#35]: https://github.com/test-kitchen/kitchen-ec2/issues/35
102
+ [#46]: https://github.com/test-kitchen/kitchen-ec2/issues/46
103
+ [#68]: https://github.com/test-kitchen/kitchen-ec2/issues/68
104
+ [#69]: https://github.com/test-kitchen/kitchen-ec2/issues/69
105
+ [#82]: https://github.com/test-kitchen/kitchen-ec2/issues/82
106
+ [#84]: https://github.com/test-kitchen/kitchen-ec2/issues/84
107
+ [#97]: https://github.com/test-kitchen/kitchen-ec2/issues/97
108
+ [#99]: https://github.com/test-kitchen/kitchen-ec2/issues/99
109
+ [#104]: https://github.com/test-kitchen/kitchen-ec2/issues/104
110
+ [#107]: https://github.com/test-kitchen/kitchen-ec2/issues/107
111
+ [#110]: https://github.com/test-kitchen/kitchen-ec2/issues/110
112
+ [#112]: https://github.com/test-kitchen/kitchen-ec2/issues/112
81
113
  [@Atalanta]: https://github.com/Atalanta
114
+ [@Igorshp]: https://github.com/Igorshp
115
+ [@JamesAwesome]: https://github.com/JamesAwesome
116
+ [@anl]: https://github.com/anl
82
117
  [@arangamani]: https://github.com/arangamani
83
118
  [@bozinsky]: https://github.com/bozinsky
119
+ [@chuckg]: https://github.com/chuckg
84
120
  [@coderanger]: https://github.com/coderanger
121
+ [@daanemanz]: https://github.com/daanemanz
85
122
  [@dissonanz]: https://github.com/dissonanz
86
123
  [@dysinger]: https://github.com/dysinger
87
124
  [@eherot]: https://github.com/eherot
88
125
  [@fnichol]: https://github.com/fnichol
89
126
  [@halcyonCorsair]: https://github.com/halcyonCorsair
127
+ [@jmundrawala]: https://github.com/jmundrawala
90
128
  [@juliandunn]: https://github.com/juliandunn
91
129
  [@matheeeny]: https://github.com/matheeeny
92
130
  [@mattray]: https://github.com/mattray
131
+ [@mumoshu]: https://github.com/mumoshu
132
+ [@nicgrayson]: https://github.com/nicgrayson
133
+ [@scarolan]: https://github.com/scarolan
134
+ [@sebbrandt87]: https://github.com/sebbrandt87
93
135
  [@sethvargo]: https://github.com/sethvargo
94
136
  [@someara]: https://github.com/someara
95
137
  [@spheromak]: https://github.com/spheromak
96
138
  [@tiwilliam]: https://github.com/tiwilliam
139
+ [@tyler-ball]: https://github.com/tyler-ball
data/Gemfile CHANGED
@@ -1,9 +1,9 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in kitchen-ec2.gemspec
4
4
  gemspec
5
5
 
6
6
  group :test do
7
- gem 'rake'
8
- gem 'pry'
7
+ gem "rake"
8
+ gem "pry"
9
9
  end
data/README.md CHANGED
@@ -6,19 +6,19 @@
6
6
 
7
7
  A [Test Kitchen][kitchenci] Driver for Amazon EC2.
8
8
 
9
- This driver uses the [fog gem][fog_gem] to provision and destroy EC2
9
+ This driver uses the [aws sdk gem][aws_sdk_gem] to provision and destroy EC2
10
10
  instances. Use Amazon's cloud for your infrastructure testing!
11
11
 
12
- ## <a name="requirements"></a> Requirements
12
+ ## Requirements
13
13
 
14
14
  There are **no** external system requirements for this driver. However you
15
15
  will need access to an [AWS][aws_site] account.
16
16
 
17
- ## <a name="installation"></a> Installation and Setup
17
+ ## Installation and Setup
18
18
 
19
19
  Please read the [Driver usage][driver_usage] page for more details.
20
20
 
21
- ## <a name="default-config"></a> Default Configuration
21
+ ## Default Configuration
22
22
 
23
23
  This driver can determine AMI and username login for a select number of
24
24
  platforms in each region. Currently, the following platform names are
@@ -31,6 +31,8 @@ platforms:
31
31
  - name: ubuntu-12.04
32
32
  - name: ubuntu-12.10
33
33
  - name: ubuntu-13.04
34
+ - name: ubuntu-13.10
35
+ - name: ubuntu-14.04
34
36
  - name: centos-6.4
35
37
  - name: debian-7.1.0
36
38
  ```
@@ -58,63 +60,98 @@ platforms:
58
60
 
59
61
  For specific default values, please consult [amis.json][amis_json].
60
62
 
61
- ## <a name="config"></a> Configuration
63
+ ## Authenticating with AWS
62
64
 
63
- ### <a name="config-az"></a> availability\_zone
65
+ There are 3 ways you can authenticate against AWS, and we will try them in the
66
+ following order:
64
67
 
65
- **Required** The AWS [availability zone][region_docs] to use.
68
+ 1. You can specify the access key and access secret (and optionally the session
69
+ token) through config. See the `aws_access_key_id` and `aws_secret_access_key`
70
+ config sections below to see how to specify these in your .kitchen.yml or
71
+ through environment variables. If you would like to specify your session token
72
+ use the environment variable `AWS_SESSION_TOKEN`.
73
+ 1. The shared credentials ini file at `~/.aws/credentials`. You can specify
74
+ multiple profiles in this file and select one with the `AWS_PROFILE`
75
+ environment variable or the `shared_credentials_profile` driver config. Read
76
+ [this][credentials_docs] for more information.
77
+ 1. From an instance profile when running on EC2. This accesses the local
78
+ metadata service to discover the local instance's IAM instance profile.
66
79
 
67
- The default is `"us-east-1b"`.
80
+ This precedence order is taken from http://docs.aws.amazon.com/sdkforruby/api/index.html#Configuration
81
+
82
+ The first method attempted that works will be used. IE, if you want to auth
83
+ using the instance profile, you must not set any of the access key configs
84
+ or environment variables, and you must not specify a `~/.aws/credentials`
85
+ file.
68
86
 
69
- ### <a name="config-aws-access-key-id"></a> aws\_access\_key\_id
87
+ Because the Test Kitchen test should be checked into source control and ran
88
+ through CI we no longer recommend storing the AWS credentials in the
89
+ `.kitchen.yml` file. Instead, specify them as environment variables or in the
90
+ `~/.aws/credentials` file.
70
91
 
71
- **Required** The AWS [access key id][credentials_docs] to use.
92
+ ## General Configuration
72
93
 
73
- The default will be read from the `AWS_ACCESS_KEY` environment variable if set,
74
- or `nil` otherwise.
94
+ ### availability\_zone
75
95
 
76
- ### <a name="config-aws-secret-access-key"></a> aws\_secret\_access\_key
96
+ The AWS [availability zone][region_docs] to use. Only request
97
+ the letter designation - will attach this to the region used.
77
98
 
78
- **Required** The AWS [secret access key][credentials_docs] to use.
99
+ The default is `"#{region}b"`.
79
100
 
80
- The default will be read from the `AWS_SECRET_KEY` environment variable if set,
81
- or `nil` otherwise.
101
+ ### aws\_access\_key\_id
102
+
103
+ **Deprecated** It is recommended to use the `AWS_ACCESS_KEY_ID` or the
104
+ `~/.aws/credentials` file instead.
105
+
106
+ The AWS [access key id][credentials_docs] to use.
107
+
108
+ ### aws\_secret\_access\_key
109
+
110
+ **Deprecated** It is recommended to use the `AWS_SECRET_ACCESS_KEY` or the
111
+ `~/.aws/credentials` file instead.
112
+
113
+ The AWS [secret access key][credentials_docs] to use.
114
+
115
+ ### shared\_credentials\_profile
82
116
 
83
- ### <a name="config-aws-ssh-key-id"></a> aws\_ssh\_key\_id
117
+ The EC2 [profile name][credentials_docs] to use when reading credentials out
118
+ of `~/.aws/credentials`. If it is not specified AWS will read the `Default`
119
+ profile credentials (if using this method of authentication).
120
+
121
+ Can also be specified as `ENV['AWS_PROFILE']`.
122
+
123
+ ### aws\_ssh\_key\_id
84
124
 
85
125
  **Required** The EC2 [SSH key id][key_id_docs] to use.
86
126
 
87
127
  The default will be read from the `AWS_SSH_KEY_ID` environment variable if set,
88
128
  or `nil` otherwise.
89
129
 
90
- ### endpoint
130
+ ### aws\_session\_token
91
131
 
92
- The API endpoint for executing EC2 commands.
132
+ **Deprecated** It is recommended to use the `AWS_SESSION_TOKEN` or the
133
+ `~/.aws/credentials` file instead.
93
134
 
94
- The default will be computed from the AWS region name for the instance.
135
+ The AWS [session token][credentials_docs] to use.
95
136
 
96
- ### <a name="config-flavor-id"></a> flavor\_id
137
+ ### flavor\_id
97
138
 
98
- The EC2 [instance type][instance_docs] (also known as size) to use.
139
+ **Deprecated** See [instance_type](#config-instance_type) below.
99
140
 
100
- The default is `"m1.small"`.
141
+ ### <a name="config-instance_type"></a> instance\_type
101
142
 
102
- ### <a name="config-ebs-optimized"></a> ebs\_optimized
103
-
104
- Option to launch EC2 instance with optimized EBS volume. See
105
- [Amazon EC2 Instance Types](http://aws.amazon.com/ec2/instance-types/) to find
106
- out more about instance types that can be launched as EBS-optimized instances.
143
+ The EC2 [instance type][instance_docs] (also known as size) to use.
107
144
 
108
- The default is `false`.
145
+ The default is `"m1.small"`.
109
146
 
110
- ### <a name="config-security-group-ids"></a> security_group_ids
147
+ ### security_group_ids
111
148
 
112
149
  An Array of EC2 [security groups][group_docs] which will be applied to the
113
150
  instance.
114
151
 
115
152
  The default is `["default"]`.
116
153
 
117
- ### <a name="config-image-id"></a> image\_id
154
+ ### image\_id
118
155
 
119
156
  **Required** The EC2 [AMI id][ami_docs] to use.
120
157
 
@@ -122,13 +159,126 @@ The default will be determined by the `aws_region` chosen and the Platform
122
159
  name, if a default exists (see [amis.json][ami_json]). If a default cannot be
123
160
  computed, then the default is `nil`.
124
161
 
125
- ### <a name="config-port"></a> port
162
+ ### region
163
+
164
+ **Required** The AWS [region][region_docs] to use.
165
+
166
+ If the environment variable `AWS_REGION` is populated that will be used.
167
+ Otherwise the default is `"us-east-1"`.
168
+
169
+ ### subnet\_id
170
+
171
+ The EC2 [subnet][subnet_docs] to use.
172
+
173
+ The default is unset, or `nil`.
174
+
175
+ ### tags
176
+
177
+ The Hash of EC tag name/value pairs which will be applied to the instance.
178
+
179
+ The default is `{ "created-by" => "test-kitchen" }`.
180
+
181
+ ### user_data
182
+
183
+ The user_data script or the path to a script to feed the instance.
184
+ Use bash to install dependencies or download artifacts before chef runs.
185
+ This is just for some cases. If you can do the stuff with chef, then do it with
186
+ chef!
187
+
188
+ The default is unset, or `nil`.
189
+
190
+ ### iam\_profile\_name
191
+
192
+ The EC2 IAM profile name to use.
193
+
194
+ The default is `nil`.
195
+
196
+ ### price
197
+
198
+ 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.
199
+
200
+ The default is `nil`.
201
+
202
+ ## Disk Configuration
203
+
204
+ ### ebs\_volume\_size
205
+
206
+ **Deprecated** See [block_device_mappings](#config-block_device_mappings) below.
126
207
 
127
- The SSH port number to be used when communicating with the instance.
208
+ Size of ebs volume in GB.
128
209
 
129
- The default is `22`.
210
+ ### ebs\_delete\_on\_termination
130
211
 
131
- ### < name="interface"></a> interface
212
+ **Deprecated** See [block_device_mappings](#config-block_device_mappings) below.
213
+
214
+ `true` if you want ebs volumes to get deleted automatically after instance is terminated, `false` otherwise
215
+
216
+ ### ebs\_device\_name
217
+
218
+ **Deprecated** See [block_device_mappings](#config-block_device_mappings) below.
219
+
220
+ name of your ebs device, for example: `/dev/sda1`
221
+
222
+ ### <a name="config-block_device_mappings"></a> block\_device\_mappings
223
+
224
+ A list of block device mappings for the machine. An example of all available keys looks like:
225
+ ```yaml
226
+ block_device_mappings:
227
+ - ebs_device_name: /dev/sda1
228
+ ebs_volume_size: 20
229
+ ebs_delete_on_termination: true
230
+ - ebs_device_name: /dev/sda2
231
+ ebs_volume_type: gp2
232
+ ebs_virtual_name: test
233
+ ebs_volume_size: 15
234
+ ebs_delete_on_termination: true
235
+ ebs_snapshot_id: snap-0015d0bc
236
+ ```
237
+
238
+ The keys `ebs_device_name`, `ebs_volume_size` and `ebs_delete_on_termination` are required for every mapping.
239
+ For backwards compatiability a default `block_device_mappings` will be created if none are listed and the deprecated
240
+ storage config keys are present.
241
+
242
+ The keys `ebs_volume_type`, `ebs_virtual_name` and `ebs_snapshot_id` are optional. See
243
+ [Amazon EBS Volume Types](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) to find out more about
244
+ volume types. `ebs_volume_type` defaults to `standard` but can also be `gp2` or `io1`.
245
+
246
+ If you have a block device mapping with a `ebs_device_name` equal to the root storage device name on your
247
+ [image](#config-image-id) then the provided mapping will replace the settings in the image.
248
+
249
+ If this is not provided it will use the default block_device_mappings from the AMI.
250
+
251
+ ### ebs\_optimized
252
+
253
+ Option to launch EC2 instance with optimized EBS volume. See
254
+ [Amazon EC2 Instance Types](http://aws.amazon.com/ec2/instance-types/) to find
255
+ out more about instance types that can be launched as EBS-optimized instances.
256
+
257
+ The default is `false`.
258
+
259
+ ## Network and Communication Configuration
260
+
261
+ ### associate\_public\_ip
262
+
263
+ AWS does not automatically allocate public IP addresses for instances created
264
+ within non-default [subnets][subnet_docs]. Set this option to `true` to force
265
+ allocation of a public IP and associate it with the launched instance.
266
+
267
+ If you set this option to `false` when launching into a non-default
268
+ [subnet][subnet_docs], Test Kitchen will be unable to communicate with the
269
+ instance unless you have a VPN connection to your
270
+ [Virtual Private Cloud][vpc_docs].
271
+
272
+ The default is `true` if you have configured a [subnet_id](#config-subnet-id),
273
+ or `false` otherwise.
274
+
275
+ ### private\_ip\_address
276
+
277
+ The primary private IP address of your instance.
278
+
279
+ If you don't set this it will default to whatever DHCP address EC2 hands out.
280
+
281
+ ### interface
132
282
 
133
283
  The place from which to derive the hostname for communicating with the instance. May be `dns`, `public` or `private`. If this is unset, the driver will derive the hostname by failing back in the following order:
134
284
 
@@ -138,32 +288,53 @@ The place from which to derive the hostname for communicating with the instance.
138
288
 
139
289
  The default is unset.
140
290
 
291
+ ### ssh\_key
141
292
 
142
- ### <a name="config-region"></a> region
143
-
144
- **Required** The AWS [region][region_docs] to use.
145
-
146
- The default is `"us-east-1"`.
293
+ **Deprecated** Instead use the `transport.ssh_key` like
147
294
 
148
- ### <a name="config-ssh-key"></a> ssh\_key
295
+ ```ruby
296
+ transport:
297
+ ssh_key: ~/.ssh/id_rsa
298
+ ```
149
299
 
150
300
  Path to the private SSH key used to connect to the instance.
151
301
 
152
302
  The default is unset, or `nil`.
153
303
 
154
- ### <a name="config-subnet-id"></a> subnet\_id
304
+ ### ssh\_timeout
155
305
 
156
- The EC2 [subnet][subnet_docs] to use.
306
+ **Deprecated** Instead use the `transport.connection_timeout` like
157
307
 
158
- The default is unset, or `nil`.
308
+ ```ruby
309
+ transport:
310
+ connection_timeout: 60
311
+ ```
159
312
 
160
- ### <a name="config-tags"></a> tags
313
+ The number of seconds to sleep before trying to SSH again.
161
314
 
162
- The Hash of EC tag name/value pairs which will be applied to the instance.
315
+ The default is `1`.
163
316
 
164
- The default is `{ "created-by" => "test-kitchen" }`.
317
+ ### ssh\_retries
318
+
319
+ **Deprecated** Instead use the `transport.connection_retries` like
320
+
321
+ ```ruby
322
+ transport:
323
+ connection_retries: 10
324
+ ```
325
+
326
+ The number of times to retry SSH-ing into the instance.
327
+
328
+ The default is `3`.
165
329
 
166
- ### <a name="config-username"></a> username
330
+ ### username
331
+
332
+ **Deprecated** Instead use the `transport.username` like
333
+
334
+ ```ruby
335
+ transport:
336
+ username: ubuntu
337
+ ```
167
338
 
168
339
  The SSH username that will be used to communicate with the instance.
169
340
 
@@ -171,7 +342,7 @@ The default will be determined by the Platform name, if a default exists (see
171
342
  [amis.json][amis_json]). If a default cannot be computed, then the default is
172
343
  `"root"`.
173
344
 
174
- ## <a name="example"></a> Example
345
+ ## Example
175
346
 
176
347
  The following could be used in a `.kitchen.yml` or in a `.kitchen.local.yml`
177
348
  to override default configuration.
@@ -180,45 +351,29 @@ to override default configuration.
180
351
  ---
181
352
  driver:
182
353
  name: ec2
183
- aws_access_key_id: KAS...
184
- aws_secret_access_key: 3UK...
185
354
  aws_ssh_key_id: id_rsa-aws
186
- ssh_key: /path/to/id_rsa-aws
187
355
  security_group_ids: ["sg-1a2b3c4d"]
188
356
  region: us-east-1
189
- availability_zone: us-east-1b
357
+ availability_zone: b
190
358
  require_chef_omnibus: true
191
359
  subnet_id: subnet-6d6...
192
-
193
- platforms:
194
- - name: ubuntu-12.04
195
- driver:
196
- image_id: ami-fd20ad94
197
- username: ubuntu
198
- - name: centos-6.3
199
- driver:
200
- image_id: ami-ef5ff086
201
- username: ec2-user
202
-
203
- suites:
204
- # ...
205
- ```
206
-
207
- Both `.kitchen.yml` and `.kitchen.local.yml` files are pre-processed through
208
- ERB which can help to factor out secrets and credentials. For example:
209
-
210
- ```yaml
211
- ---
212
- driver:
213
- name: ec2
214
- aws_access_key_id: <%= ENV['AWS_ACCESS_KEY'] %>
215
- aws_secret_access_key: <%= ENV['AWS_SECRET_KEY'] %>
216
- aws_ssh_key_id: <%= ENV['AWS_SSH_KEY_ID'] %>
217
- ssh_key: <%= File.expand_path('~/.ssh/id_rsa') %>
218
- security_group_ids: ["sg-1a2b3c4d"]
219
- region: us-east-1
220
- availability_zone: us-east-1b
221
- require_chef_omnibus: true
360
+ iam_profile_name: chef-client
361
+ instance_type: t2.micro
362
+ associate_public_ip: true
363
+ private_ip_address: 10.0.0.27
364
+ interface: dns
365
+ block_device_mappings:
366
+ - ebs_device_name: /dev/sda0
367
+ ebs_volume_type: gp2
368
+ ebs_virtual_name: test
369
+ ebs_volume_size: 15
370
+ ebs_delete_on_termination: true
371
+
372
+ transport:
373
+ ssh_key: /path/to/id_rsa-aws
374
+ connection_timeout: 10
375
+ connection_retries: 5
376
+ username: ubuntu
222
377
 
223
378
  platforms:
224
379
  - name: ubuntu-12.04
@@ -268,11 +423,12 @@ Apache 2.0 (see [LICENSE][license])
268
423
  [amis_json]: https://github.com/test-kitchen/kitchen-ec2/blob/master/data/amis.json
269
424
  [ami_docs]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html
270
425
  [aws_site]: http://aws.amazon.com/
271
- [credentials_docs]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html#using-credentials-access-key
272
- [fog_gem]: http://fog.io/
426
+ [credentials_docs]: http://blogs.aws.amazon.com/security/post/Tx3D6U6WSFGOK2H/A-New-and-Standardized-Way-to-Manage-Credentials-in-the-AWS-SDKs
427
+ [aws_sdk_gem]: http://docs.aws.amazon.com/sdkforruby/api/index.html
273
428
  [group_docs]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
274
429
  [instance_docs]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
275
430
  [key_id_docs]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/verifying-your-key-pair.html
276
431
  [kitchenci]: http://kitchen.ci/
277
432
  [region_docs]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
278
433
  [subnet_docs]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html
434
+ [vpc_docs]: http://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/ExerciseOverview.html