chef-provisioning-aws 3.0.6 → 3.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +7 -0
- data/chef-provisioning-aws.gemspec +2 -8
- data/lib/chef/provisioning/aws_driver/version.rb +1 -1
- metadata +4 -8
- data/README.md +0 -460
- data/spec/persistence_file.txt +0 -219
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6eadd73ffc72feedd316bbcef5e5bc1c0edb2ce9ac6190e378c72f5b0aa894de
|
4
|
+
data.tar.gz: c60bc7fd9a8816646c91dff6f23f9eeb40ab045c4715e46a3c4758948c49c426
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7267d3d1e5b278b9a58440c651212a9d93d26298e5058b9dd7cf0aae1252166ca6ad91e497f6c46802c12afd358c0095edfa3e108babef69e6605c9c5d03df18
|
7
|
+
data.tar.gz: 7cffe6f2c06a8fdcfad600f65a314c0966b2abab74e0d8b457b4aeb28142835533b3f0afd01ff282e8dde3e8865dc5f6e87276870a66f26d0297db8f64f6f88e
|
data/Rakefile
CHANGED
@@ -52,6 +52,13 @@ RSpec::Core::RakeTask.new(:machine_image) do |spec|
|
|
52
52
|
spec.rspec_opts = "-b -t super_slow -e 'machine_image can create an image in the VPC'"
|
53
53
|
end
|
54
54
|
|
55
|
+
task :console do
|
56
|
+
require "irb"
|
57
|
+
require "irb/completion"
|
58
|
+
ARGV.clear
|
59
|
+
IRB.start
|
60
|
+
end
|
61
|
+
|
55
62
|
begin
|
56
63
|
require "chefstyle"
|
57
64
|
require "rubocop/rake_task"
|
@@ -4,15 +4,12 @@ require "chef/provisioning/aws_driver/version"
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "chef-provisioning-aws"
|
6
6
|
s.version = Chef::Provisioning::AWSDriver::VERSION
|
7
|
-
s.platform = Gem::Platform::RUBY
|
8
|
-
s.extra_rdoc_files = ["README.md", "LICENSE"]
|
9
7
|
s.summary = "Provisioner for creating aws containers in Chef Provisioning."
|
10
8
|
s.description = s.summary
|
11
9
|
s.author = "Tyler Ball"
|
12
10
|
s.email = "tball@chef.io"
|
13
11
|
s.homepage = "https://github.com/chef/chef-provisioning-aws"
|
14
12
|
s.license = "Apache-2.0"
|
15
|
-
|
16
13
|
s.required_ruby_version = ">= 2.1.9"
|
17
14
|
|
18
15
|
s.add_dependency "chef-provisioning", ">= 1.0", "< 3.0"
|
@@ -21,10 +18,7 @@ Gem::Specification.new do |s|
|
|
21
18
|
s.add_dependency "retryable", "~> 2.0", ">= 2.0.1"
|
22
19
|
s.add_dependency "ubuntu_ami", "~> 0.4", ">= 0.4.1"
|
23
20
|
|
24
|
-
s.bindir = "bin"
|
25
|
-
s.executables = %w{}
|
26
|
-
|
27
21
|
s.require_path = "lib"
|
28
|
-
s.files = %w{Gemfile Rakefile LICENSE
|
29
|
-
Dir.glob("{
|
22
|
+
s.files = %w{Gemfile Rakefile LICENSE} + Dir.glob("*.gemspec") +
|
23
|
+
Dir.glob("{lib,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) }
|
30
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-provisioning-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Ball
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-provisioning
|
@@ -94,13 +94,10 @@ description: Provisioner for creating aws containers in Chef Provisioning.
|
|
94
94
|
email: tball@chef.io
|
95
95
|
executables: []
|
96
96
|
extensions: []
|
97
|
-
extra_rdoc_files:
|
98
|
-
- README.md
|
99
|
-
- LICENSE
|
97
|
+
extra_rdoc_files: []
|
100
98
|
files:
|
101
99
|
- Gemfile
|
102
100
|
- LICENSE
|
103
|
-
- README.md
|
104
101
|
- Rakefile
|
105
102
|
- chef-provisioning-aws.gemspec
|
106
103
|
- lib/chef/provider/aws_auto_scaling_group.rb
|
@@ -238,7 +235,6 @@ files:
|
|
238
235
|
- spec/integration/machine_batch_spec.rb
|
239
236
|
- spec/integration/machine_image_spec.rb
|
240
237
|
- spec/integration/machine_spec.rb
|
241
|
-
- spec/persistence_file.txt
|
242
238
|
- spec/spec_helper.rb
|
243
239
|
- spec/unit/chef/provisioning/aws_driver/credentials_spec.rb
|
244
240
|
- spec/unit/chef/provisioning/aws_driver/driver_spec.rb
|
@@ -263,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
263
259
|
version: '0'
|
264
260
|
requirements: []
|
265
261
|
rubyforge_project:
|
266
|
-
rubygems_version: 2.7.
|
262
|
+
rubygems_version: 2.7.6
|
267
263
|
signing_key:
|
268
264
|
specification_version: 4
|
269
265
|
summary: Provisioner for creating aws containers in Chef Provisioning.
|
data/README.md
DELETED
@@ -1,460 +0,0 @@
|
|
1
|
-
# Chef Provisioning AWS
|
2
|
-
[![Build Status](https://travis-ci.org/chef/chef-provisioning-aws.svg?branch=master)](https://travis-ci.org/chef/chef-provisioning-aws)[![Gem Version](https://badge.fury.io/rb/chef-provisioning-aws.svg)](https://badge.fury.io/rb/chef-provisioning-aws)
|
3
|
-
|
4
|
-
This README is a work in progress. Feel free to open PRs expanding it!
|
5
|
-
|
6
|
-
# Prerequisites
|
7
|
-
|
8
|
-
## Credentials
|
9
|
-
|
10
|
-
There are 3 ways you can provide your AWS Credentials. We will look for credentials in the order from below and use the first one found. This precedence order is taken from http://docs.aws.amazon.com/sdkforruby/api/index.html#Configuration:
|
11
|
-
|
12
|
-
1. Through the environment variables `ENV["AWS_ACCESS_KEY_ID"]`, `ENV["AWS_SECRET_ACCESS_KEY"]` and optionally `ENV["AWS_SESSION_TOKEN"]`
|
13
|
-
2. The shared credentials ini file. The default location is `~/.aws/credentials` but you can overwrite this by specifying `ENV["AWS_CONFIG_FILE"]`. You can specify
|
14
|
-
multiple profiles in this file and select one with the `ENV["AWS_DEFAULT_PROFILE"]`
|
15
|
-
environment variable or via the driver url. For example, a driver url of `aws:staging:us-east-1` would use the profile `staging`. If you do not specify a profile then the `default` one is used. Read
|
16
|
-
[this](http://blogs.aws.amazon.com/security/post/Tx3D6U6WSFGOK2H/A-New-and-Standardized-Way-to-Manage-Credentials-in-the-AWS-SDKs) for more information about profiles.
|
17
|
-
3. From an instance profile when running on EC2. This accesses the local
|
18
|
-
metadata service to discover the local instance's IAM instance profile.
|
19
|
-
|
20
|
-
## Configurable Options
|
21
|
-
|
22
|
-
### aws_retry_limit
|
23
|
-
|
24
|
-
When using `machine_batch` with a large number of machines it is possible to overwhelm the AWS SDK until it starts returning `AWS::EC2::Errors::RequestLimitExceeded`. You can configure the AWS SDK to retry these errors automatically by specifying
|
25
|
-
|
26
|
-
```ruby
|
27
|
-
chef_provisioning({:aws_retry_limit => 10})
|
28
|
-
```
|
29
|
-
|
30
|
-
in your client.rb for the provisioning workstation. The default `:aws_retry_limit` is 5.
|
31
|
-
|
32
|
-
### image_max_wait_time and machine_max_wait_time
|
33
|
-
|
34
|
-
By default, the time we will wait for a `machine` to become ready or for the transport to become ready is 120 seconds (each).
|
35
|
-
For a `machine_image` we wait 300 seconds for the AMI to be created. These timeouts can be configured with
|
36
|
-
|
37
|
-
```ruby
|
38
|
-
chef_provisioning({:image_max_wait_time => 600, :machine_max_wait_time => 240})
|
39
|
-
```
|
40
|
-
|
41
|
-
in your client.rb for the provisioning workstation.
|
42
|
-
|
43
|
-
# Resources
|
44
|
-
|
45
|
-
TODO: List out weird/unique things about resources here. We don't need to document every resource
|
46
|
-
because users can look at the resource model.
|
47
|
-
|
48
|
-
## aws_key_pair
|
49
|
-
|
50
|
-
You can specify an existing key pair to upload by specifying the following:
|
51
|
-
|
52
|
-
```ruby
|
53
|
-
aws_key_pair 'my-aws-key' do
|
54
|
-
private_key_path "~boiardi/.ssh/my-aws-key.pem"
|
55
|
-
public_key_path "~boiardi/.ssh/my-aws-key.pub"
|
56
|
-
allow_overwrite false # Set to true if you want to regenerate this each chef run
|
57
|
-
end
|
58
|
-
```
|
59
|
-
|
60
|
-
## aws_launch_configuration
|
61
|
-
|
62
|
-
In the AWS SDK V1, you must specify `key_pair` instead of `key_name` when specifying the key name to use for machines in the auto scaling group. This is fixed in V2 and uses `key_name` like machines do.
|
63
|
-
|
64
|
-
```ruby
|
65
|
-
aws_launch_configuration 'example-windows-launch-configuration' do
|
66
|
-
image 'example-windows-image'
|
67
|
-
instance_type 't2.medium'
|
68
|
-
options security_groups: 'example-windows-sg',
|
69
|
-
key_pair: 'my-key-name',
|
70
|
-
ebs_optimized: false,
|
71
|
-
detailed_instance_monitoring: false,
|
72
|
-
iam_instance_profile: 'example-windows-role',
|
73
|
-
user_data: <<-EOF
|
74
|
-
<powershell>
|
75
|
-
# custom powershell code goes here, executed at instance creation time
|
76
|
-
</powershell>
|
77
|
-
EOF
|
78
|
-
end
|
79
|
-
```
|
80
|
-
|
81
|
-
## aws_vpc
|
82
|
-
|
83
|
-
If you specify `internet_gateway true` the VPC will create and manage its own internet gateway.
|
84
|
-
Specifying `internet_gateway false` will delete that managed internet gateway.
|
85
|
-
|
86
|
-
Specifying `main_routes` without `main_route_table` will update the 'default' route table
|
87
|
-
that is created when AWS creates the VPC.
|
88
|
-
|
89
|
-
Specifying `main_route_table` without specifying `main_routes` will update the main route
|
90
|
-
association to point to the provided route table.
|
91
|
-
|
92
|
-
If you specify both `main_routes` and `main_route_table` we will update the `main_route_table`
|
93
|
-
to have the specified `main_routes`. IE, running
|
94
|
-
|
95
|
-
```ruby
|
96
|
-
aws_route_table 'ref-main-route-table' do
|
97
|
-
vpc 'ref-vpc'
|
98
|
-
routes '0.0.0.0/0' => :internet_gateway
|
99
|
-
end
|
100
|
-
|
101
|
-
aws_vpc 'ref-vpc' do
|
102
|
-
main_route_table 'ref-main-route-table'
|
103
|
-
main_routes '0.0.0.0/1' => :internet_gateway
|
104
|
-
end
|
105
|
-
|
106
|
-
aws_vpc 'ref-vpc' do
|
107
|
-
main_routes '0.0.0.0/2' => :internet_gateway
|
108
|
-
end
|
109
|
-
```
|
110
|
-
|
111
|
-
will cause resource flapping. The `ref-main-route-table` resource will set the routes to `/0`
|
112
|
-
and then the vpc will set the routes to `/1`. Then because `ref-main-route-table` is set
|
113
|
-
to the main route for `ref-vpc` the third resource will set the routes to `/2`.
|
114
|
-
|
115
|
-
The takeaway from this is that you should either specify `main_routes` on your VPC and only
|
116
|
-
manage the routes through that, OR only specify `main_route_table` and manage the routes
|
117
|
-
through the `aws_route_table` resource.
|
118
|
-
|
119
|
-
### Purging
|
120
|
-
|
121
|
-
If you specify `action :purge` on the VPC it will attempt to delete ALL resources contained in this
|
122
|
-
VPC before deleting the actual VPC.
|
123
|
-
|
124
|
-
A potential danger of this is that it does not delete the data bag entries for tracked AWS objects.
|
125
|
-
If you `:purge` a VPC and it has `aws_route_table[ref-route]` in it, the data bag entry for
|
126
|
-
`ref-route` is not automatically destroyed. Purge is most useful for testing to ensure no objects
|
127
|
-
are left that AWS can charge for.
|
128
|
-
|
129
|
-
# Machine Options
|
130
|
-
|
131
|
-
You can pass machine options that will be used by `machine`, `machine_batch` and `machine_image` to
|
132
|
-
configure the machine.
|
133
|
-
|
134
|
-
These options are an extension of the [base options](https://github.com/chef/chef-provisioning#machine-options). Please see that for a list of the `machine_options` shared between drivers.
|
135
|
-
|
136
|
-
The full syntax available in the `bootstrap_options` hash is the hash expected by the AWS [`create_instances`](http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Resource.html#create_instances-instance_method) method. The options seen below in the example are the default options.
|
137
|
-
|
138
|
-
```ruby
|
139
|
-
with_machine_options({
|
140
|
-
# See https://github.com/chef/chef-provisioning#machine-options for options shared between drivers
|
141
|
-
bootstrap_options: {
|
142
|
-
# http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Resource.html#create_instances-instance_method
|
143
|
-
# lists the available options. The below options are the default
|
144
|
-
image_id: "ami-5915e11d", # default for us-west-1
|
145
|
-
instance_type: "t2.micro",
|
146
|
-
key_name: "chef_default", # If not specified, this will be used and generated
|
147
|
-
key_path: "~/.chef/keys/chef_default", # only necessary if storing keys some other location
|
148
|
-
user_data: "...", # Only defaulted on Windows instances to start winrm
|
149
|
-
},
|
150
|
-
use_private_ip_for_ssh: false, # DEPRECATED, use `transport_address_location`
|
151
|
-
transport_address_location: :public_ip, # `:public_ip` (default), `:private_ip` or `:dns`. Defines how SSH or WinRM should find an address to communicate with the instance.
|
152
|
-
is_windows: true, # false by default
|
153
|
-
winrm_username: "Administrator",
|
154
|
-
winrm_password: "password", # Override if you have specified your own password and are not fetching the password from AWS
|
155
|
-
})
|
156
|
-
```
|
157
|
-
|
158
|
-
This options hash can be supplied to either `with_machine_options` at the recipe level or directly into the `machine_options`
|
159
|
-
attribute.
|
160
|
-
|
161
|
-
# Load Balancer Options
|
162
|
-
|
163
|
-
You can configure the ELB options by setting `with_load_balancer_options` or specifying them on each `load_balancer` resource.
|
164
|
-
|
165
|
-
```ruby
|
166
|
-
machine 'test1'
|
167
|
-
m2 = machine 'test2'
|
168
|
-
load_balancer "my_elb" do
|
169
|
-
machines ['test1', m2]
|
170
|
-
load_balancer_options({
|
171
|
-
subnets: subnets,
|
172
|
-
security_groups: [load_balancer_sg],
|
173
|
-
listeners: [
|
174
|
-
{
|
175
|
-
instance_port: 8080,
|
176
|
-
protocol: 'HTTP',
|
177
|
-
instance_protocol: 'HTTP',
|
178
|
-
port: 80
|
179
|
-
},
|
180
|
-
{
|
181
|
-
instance_port: 8080,
|
182
|
-
protocol: 'HTTPS',
|
183
|
-
instance_protocol: 'HTTP',
|
184
|
-
port: 443,
|
185
|
-
ssl_certificate_id: "arn:aws:iam::360965486607:server-certificate/cloudfront/foreflight-2015-07-09"
|
186
|
-
}
|
187
|
-
],
|
188
|
-
health_check: {
|
189
|
-
healthy_threshold: 2,
|
190
|
-
unhealthy_threshold: 4,
|
191
|
-
interval: 12,
|
192
|
-
timeout: 5,
|
193
|
-
target: 'HTTPS:443/_status'
|
194
|
-
}
|
195
|
-
})
|
196
|
-
```
|
197
|
-
|
198
|
-
The available parameters for `load_balancer_options` can be viewed in the [aws docs](http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/ELB/Client.html#create_load_balancer-instance_method).
|
199
|
-
|
200
|
-
If you wish to enable sticky sessions, pass a `sticky_sessions` key to the
|
201
|
-
`load_balancer_options` and specify a cookie name and the ports that should be
|
202
|
-
sticky. In the above example, it would look like this:
|
203
|
-
|
204
|
-
```ruby
|
205
|
-
machine 'test1'
|
206
|
-
m2 = machine 'test2'
|
207
|
-
load_balancer "my_elb" do
|
208
|
-
machines ['test1', m2]
|
209
|
-
load_balancer_options({
|
210
|
-
subnets: subnets,
|
211
|
-
security_groups: [load_balancer_sg],
|
212
|
-
listeners: [
|
213
|
-
{
|
214
|
-
instance_port: 8080,
|
215
|
-
protocol: 'HTTP',
|
216
|
-
instance_protocol: 'HTTP',
|
217
|
-
port: 80
|
218
|
-
},
|
219
|
-
{
|
220
|
-
instance_port: 8080,
|
221
|
-
protocol: 'HTTPS',
|
222
|
-
instance_protocol: 'HTTP',
|
223
|
-
port: 443,
|
224
|
-
ssl_certificate_id: "arn:aws:iam::360965486607:server-certificate/cloudfront/foreflight-2015-07-09"
|
225
|
-
}
|
226
|
-
],
|
227
|
-
sticky_sessions: {
|
228
|
-
cookie_name: 'my-app-cookie',
|
229
|
-
ports: [80, 443]
|
230
|
-
}
|
231
|
-
})
|
232
|
-
```
|
233
|
-
|
234
|
-
NOTES:
|
235
|
-
|
236
|
-
1. You can specify either `ssl_certificate_id` or `server_certificate` in a listener but the value to both parameters should be the ARN of an existing IAM::ServerCertificate object.
|
237
|
-
|
238
|
-
2. The `sticky_sessions` option currently only supports Application-Controlled
|
239
|
-
Session Stickiness.
|
240
|
-
|
241
|
-
# RDS Instance Options
|
242
|
-
|
243
|
-
### Additional Options
|
244
|
-
|
245
|
-
RDS instances have many options. Some of them live as first class attributes. Any valid RDS option that is not a first class attribute can still be set via a hash in `additional_options`.
|
246
|
-
*If you set an attribute and also specify it in `additional_options`, the resource will chose the attribute and not what is specified in `additional_options`.*
|
247
|
-
|
248
|
-
To illustrate, note that the following example defines `multi_az` as both an attribute and in the `additional_options` hash:
|
249
|
-
|
250
|
-
```
|
251
|
-
aws_rds_instance "test-rds-instance2" do
|
252
|
-
engine "postgres"
|
253
|
-
publicly_accessible false
|
254
|
-
db_instance_class "db.t1.micro"
|
255
|
-
master_username "thechief"
|
256
|
-
master_user_password "securesecure"
|
257
|
-
multi_az false
|
258
|
-
additional_options(multi_az: true)
|
259
|
-
end
|
260
|
-
```
|
261
|
-
|
262
|
-
The above would result in a new `aws_rds_instance` with `multi_az` being `false`.
|
263
|
-
|
264
|
-
Additional values for `additional_options` can view viewed in the [aws docs](http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/RDS/Client.html#create_db_instance-instance_method).
|
265
|
-
|
266
|
-
### Specifying a DB Subnet Group for your RDS Instance
|
267
|
-
|
268
|
-
See [this example](docs/examples/aws_rds_subnet_group.rb) for how to set up a DB Subnet Group and pass it to your RDS Instance.
|
269
|
-
|
270
|
-
# Specifying a Chef Server
|
271
|
-
|
272
|
-
See [Pointing Boxes at Chef Servers](https://github.com/chef/chef-provisioning/blob/master/README.md#pointing-boxes-at-chef-servers)
|
273
|
-
|
274
|
-
# Tagging Resources
|
275
|
-
|
276
|
-
## For Recipe authors
|
277
|
-
|
278
|
-
All resources (incuding base resources like `machine`) that are taggable support an `aws_tags` attribute which accepts a single layer hash. To set just the key of an AWS tag specify the value as nil. EG, `aws_tags {my_tag_key: nil}`. Some AWS objects cannot accept nil values and will automatically convert it to an empty string.
|
279
|
-
|
280
|
-
Some AWS objects (may EC2) view the `Name` tag as unique - it shows up in a `Name` column in the AWS console. By default we specify the `Name` tag as the resource name. This can be overridden by specifying `aws_tags {Name: 'some other name'}`.
|
281
|
-
|
282
|
-
You can remove all the tags _except_ the `Name` tag by specifying `aws_tags({})`.
|
283
|
-
|
284
|
-
Tag keys and values can be specified as symbols or strings but will be converted to strings before sending to AWS.
|
285
|
-
|
286
|
-
Examples:
|
287
|
-
|
288
|
-
```ruby
|
289
|
-
aws_ebs_volume 'ref-volume' do
|
290
|
-
aws_tags company: 'my_company', 'key_as_string' => :value_as_symbol
|
291
|
-
end
|
292
|
-
|
293
|
-
aws_vpc 'ref-vpc' do
|
294
|
-
aws_tags 'Name' => 'custom-vpc-name'
|
295
|
-
end
|
296
|
-
```
|
297
|
-
|
298
|
-
## For Resource Authors
|
299
|
-
|
300
|
-
To enable tagging support you must make specific changes to the Resource and Attribute. For the Resource it needs to include the `attribute aws_tags`. This should be done by `include Chef::Provisioning::AWSDriver::AWSTaggable` on the Resource.
|
301
|
-
|
302
|
-
The `AWSProvider` class will automatically try to call `converge_tags` when running the `action_create` method. You should instantiate an instance of the `AWSTagger` and provide it a strategy depending on the client used to perform the tagging. For example, an RDS Provider should define
|
303
|
-
|
304
|
-
```ruby
|
305
|
-
def aws_tagger
|
306
|
-
@aws_tagger ||= begin
|
307
|
-
rds_strategy = Chef::Provisioning::AWSDriver::TaggingStrategy::RDS.new(
|
308
|
-
new_resource.driver.rds,
|
309
|
-
construct_arn(new_resource),
|
310
|
-
new_resource.aws_tags
|
311
|
-
)
|
312
|
-
Chef::Provisioning::AWSDriver::AWSTagger.new(rds_strategy, action_handler)
|
313
|
-
end
|
314
|
-
end
|
315
|
-
def converge_tags
|
316
|
-
aws_tagger.converge_tags
|
317
|
-
end
|
318
|
-
```
|
319
|
-
|
320
|
-
The `aws_tagger` method is used by the tests to assert that the object tags are correct. These methods can be encapsulated in an module for DRY purposes, as the EC2 strategy shows.
|
321
|
-
|
322
|
-
Finally, you should add 3 standard tests for taggable objects - 1) Tags can be created on a new object, 2) Tags can be updated on an existing object with tags and 3) Tags can be cleared by setting `aws_tags({})`. Copy the tests from an existing spec file and modify them to support your resource. TODO make a module that copies these tests for us. Right now it is complicated by the fact that some resources have required attributes that others don't.
|
323
|
-
|
324
|
-
# Looking up AWS objects
|
325
|
-
|
326
|
-
## \#aws\_object
|
327
|
-
|
328
|
-
All chef-provisioning-aws resources have a `aws_object` method that will return the AWS object. The base
|
329
|
-
resources `machine`, `machine_image` and `load_balancer` are monkeypatched to also include the `aws_object`
|
330
|
-
method and should respond to it like all other resources.
|
331
|
-
|
332
|
-
The AWS object won't exist until the resource converges, however. An example of how to do this looks like:
|
333
|
-
|
334
|
-
```ruby
|
335
|
-
my_vpc = aws_vpc 'my_vpc' do
|
336
|
-
cidr_block '10.0.0.0/24'
|
337
|
-
main_routes '0.0.0.0/0' => :internet_gateway
|
338
|
-
internet_gateway true
|
339
|
-
end
|
340
|
-
|
341
|
-
my_sg = aws_security_group 'my_sg' do
|
342
|
-
vpc lazy { my_vpc.aws_object.id }
|
343
|
-
inbound_rules '0.0.0.0/0' => [ 22, 80 ]
|
344
|
-
end
|
345
|
-
|
346
|
-
my_subnet = aws_subnet 'my_subnet' do
|
347
|
-
vpc lazy { my_vpc.aws_object.id }
|
348
|
-
cidr_block '10.0.0.0/24'
|
349
|
-
availability_zone 'eu-west-1a'
|
350
|
-
map_public_ip_on_launch true
|
351
|
-
end
|
352
|
-
|
353
|
-
machine 'my_machine' do
|
354
|
-
machine_options(
|
355
|
-
lazy do
|
356
|
-
{
|
357
|
-
bootstrap_options: {
|
358
|
-
subnet_id: my_subnet.aws_object.id,
|
359
|
-
security_group_ids: [my_sg.aws_object.id]
|
360
|
-
}
|
361
|
-
}
|
362
|
-
end
|
363
|
-
)
|
364
|
-
end
|
365
|
-
```
|
366
|
-
|
367
|
-
Note the use of the `lazy` attribute modifier. This is necessary because when the resources are compiled
|
368
|
-
the aws_objects do not exist yet, so we must wait to reference them until the converge phase.
|
369
|
-
|
370
|
-
## \#lookup\_options
|
371
|
-
|
372
|
-
You have access to the aws object when necessary, but often it isn't needed. The above example is better
|
373
|
-
written as:
|
374
|
-
|
375
|
-
```ruby
|
376
|
-
aws_vpc 'my_vpc' do
|
377
|
-
cidr_block '10.0.0.0/24'
|
378
|
-
main_routes '0.0.0.0/0' => :internet_gateway
|
379
|
-
internet_gateway true
|
380
|
-
end
|
381
|
-
|
382
|
-
aws_security_group 'my_sg' do
|
383
|
-
vpc 'my_vpc'
|
384
|
-
inbound_rules '0.0.0.0/0' => [ 22, 80 ]
|
385
|
-
end
|
386
|
-
|
387
|
-
aws_subnet 'my_subnet' do
|
388
|
-
vpc 'my_vpc'
|
389
|
-
cidr_block '10.0.0.0/24'
|
390
|
-
availability_zone 'eu-west-1a'
|
391
|
-
map_public_ip_on_launch true
|
392
|
-
end
|
393
|
-
|
394
|
-
machine 'my_machine' do
|
395
|
-
machine_options(
|
396
|
-
bootstrap_options: {
|
397
|
-
subnet_id: 'my_subnet',
|
398
|
-
security_group_ids: ['my_sg']
|
399
|
-
}
|
400
|
-
)
|
401
|
-
end
|
402
|
-
```
|
403
|
-
|
404
|
-
When specifying `bootstrap_options` and any attributes which reference another aws resource, we
|
405
|
-
perform [lookup_options](https://github.com/chef/chef-provisioning-aws/blob/master/lib/chef/provisioning/aws_driver/aws_resource.rb#L63-L91).
|
406
|
-
This tries to turn elements with names like `vpc`, `security_group_ids`, `machines`, `launch_configurations`,
|
407
|
-
`load_balancers`, etc. to the correct AWS object.
|
408
|
-
|
409
|
-
# How to update Security Groups for EC2-VPC instances
|
410
|
-
The behavior of the `machine` resource is that once a machine has been allocated,
|
411
|
-
the `bootstrap_options` can not be modified. This currently reflects AWS's
|
412
|
-
restrictions on EC2-Classic instances, but AWS *does* allow users to modify the
|
413
|
-
security groups associated with EC2-VPC instances. This is because the security
|
414
|
-
groups for EC2-VPC instances are _actually_ associated with that instance's
|
415
|
-
Network Interface. This means that if you wish to modify the security groups
|
416
|
-
associated with an EC2-VPC instance, you'll want to use the `aws_network_interface`
|
417
|
-
resource.
|
418
|
-
|
419
|
-
The first step is to find the Network Interface ID (`eni-XXXXXXX`) associated
|
420
|
-
with your machine. You can do this by inspecting the instance details in the AWS
|
421
|
-
Console or by using the AWS CLI. If you want to use the AWS CLI, you can use
|
422
|
-
this command replacing `MACHINE_NAME` with the name of the `machine` resource
|
423
|
-
you wish to update.
|
424
|
-
|
425
|
-
```shell
|
426
|
-
aws ec2 describe-instances --filter "Name=tag:Name,Values=MACHINE_NAME" | grep NetworkInterfaceId
|
427
|
-
```
|
428
|
-
|
429
|
-
Once you have the Network Interface ID, in a chef-provisioning recipe you can
|
430
|
-
specify the following resource:
|
431
|
-
|
432
|
-
```ruby
|
433
|
-
require 'chef/provisioning/aws_driver'
|
434
|
-
with_driver 'aws' # specify the profile / region as appropriate
|
435
|
-
|
436
|
-
aws_network_interface 'eni-XXXXXXXX' do
|
437
|
-
security_groups ['sg-XXXXXXXX', 'sg-YYYYYYYY']
|
438
|
-
end
|
439
|
-
```
|
440
|
-
|
441
|
-
This resource can be in the same chef-provisioning recipe as the corresponding
|
442
|
-
machine resource, or it can be in a different one.
|
443
|
-
|
444
|
-
# Running Integration Tests
|
445
|
-
|
446
|
-
To run the integration tests execute `bundle exec rspec`. If you have not set it up,
|
447
|
-
you should see an error message about a missing environment variable `AWS_TEST_DRIVER`. You can add
|
448
|
-
this as a normal environment variable or set it for a single run with `AWS_TEST_DRIVER=aws::eu-west-1
|
449
|
-
bundle exec rspec`. The format should match what `with_driver` expects.
|
450
|
-
|
451
|
-
You will also need to have configured your `~/.aws/config` or environment variables with your
|
452
|
-
AWS credentials.
|
453
|
-
|
454
|
-
This creates real objects within AWS. The tests make their best effort to delete these objects
|
455
|
-
after each test finishes but errors can happen which prevent this. Be aware that this may charge
|
456
|
-
you!
|
457
|
-
|
458
|
-
If you find the tests leaving behind resources during normal conditions (IE, not when there is an
|
459
|
-
unexpected exception) please file a bug. Most objects can be cleaned up by deleting the `test_vpc`
|
460
|
-
from within the AWS browser console.
|
data/spec/persistence_file.txt
DELETED
@@ -1,219 +0,0 @@
|
|
1
|
-
example_id | status | run_time |
|
2
|
-
--------------------------------------------------------------------- | ------- | ---------------------- |
|
3
|
-
./spec/integration/aws_auto_scaling_group_spec.rb[1:1:1:1] | passed | 16.8 seconds |
|
4
|
-
./spec/integration/aws_auto_scaling_group_spec.rb[1:1:1:2] | passed | 2 minutes 36.1 seconds |
|
5
|
-
./spec/integration/aws_auto_scaling_group_spec.rb[1:1:1:3:1] | passed | 17.59 seconds |
|
6
|
-
./spec/integration/aws_auto_scaling_group_spec.rb[1:1:1:4] | passed | 2 minutes 35.7 seconds |
|
7
|
-
./spec/integration/aws_auto_scaling_group_spec.rb[1:1:1:5:1] | passed | 0.93488 seconds |
|
8
|
-
./spec/integration/aws_auto_scaling_group_spec.rb[1:1:1:5:2] | passed | 0.94444 seconds |
|
9
|
-
./spec/integration/aws_cache_subnet_group_spec.rb[1:1:1:1] | passed | 1.37 seconds |
|
10
|
-
./spec/integration/aws_cloudsearch_domain_spec.rb[1:1:1:1] | passed | 3.45 seconds |
|
11
|
-
./spec/integration/aws_cloudsearch_domain_spec.rb[1:1:1:2] | passed | 0.16053 seconds |
|
12
|
-
./spec/integration/aws_cloudwatch_alarm_spec.rb[1:1:1:1] | passed | 2.55 seconds |
|
13
|
-
./spec/integration/aws_cloudwatch_alarm_spec.rb[1:1:1:2] | passed | 2.84 seconds |
|
14
|
-
./spec/integration/aws_cloudwatch_alarm_spec.rb[1:1:1:3:1] | unknown | |
|
15
|
-
./spec/integration/aws_cloudwatch_alarm_spec.rb[1:1:1:4:1] | passed | 3.29 seconds |
|
16
|
-
./spec/integration/aws_cloudwatch_alarm_spec.rb[1:1:1:4:2] | unknown | |
|
17
|
-
./spec/integration/aws_cloudwatch_alarm_spec.rb[1:1:1:4:3] | unknown | |
|
18
|
-
./spec/integration/aws_cloudwatch_alarm_spec.rb[1:1:1:5:1] | failed | 3.92 seconds |
|
19
|
-
./spec/integration/aws_dhcp_options_spec.rb[1:1:1:1] | passed | 1.52 seconds |
|
20
|
-
./spec/integration/aws_dhcp_options_spec.rb[1:1:1:2] | passed | 1.95 seconds |
|
21
|
-
./spec/integration/aws_dhcp_options_spec.rb[1:1:1:3:1] | passed | 1.22 seconds |
|
22
|
-
./spec/integration/aws_dhcp_options_spec.rb[1:1:1:3:2] | passed | 1.29 seconds |
|
23
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:1] | passed | 8.75 seconds |
|
24
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:2:1] | passed | 10.94 seconds |
|
25
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:3] | passed | 8.52 seconds |
|
26
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:4] | passed | 9.06 seconds |
|
27
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:5] | passed | 9.31 seconds |
|
28
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:6] | passed | 9.11 seconds |
|
29
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:7:1] | passed | 9.71 seconds |
|
30
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:7:2] | passed | 14.23 seconds |
|
31
|
-
./spec/integration/aws_ebs_volume_spec.rb[1:1:1:7:3] | passed | 8.98 seconds |
|
32
|
-
./spec/integration/aws_eip_address_spec.rb[1:1:1:1] | passed | 1.22 seconds |
|
33
|
-
./spec/integration/aws_eip_address_spec.rb[1:1:1:2] | passed | 0.12691 seconds |
|
34
|
-
./spec/integration/aws_eip_address_spec.rb[1:1:1:3:1] | passed | 0.76053 seconds |
|
35
|
-
./spec/integration/aws_eip_address_spec.rb[1:1:1:3:2] | passed | 0.7227 seconds |
|
36
|
-
./spec/integration/aws_eip_address_spec.rb[1:1:1:4:1] | passed | 0.66903 seconds |
|
37
|
-
./spec/integration/aws_eip_address_spec.rb[1:1:1:5:1] | unknown | |
|
38
|
-
./spec/integration/aws_elasticsearch_domain_spec.rb[1:1:1:1] | passed | 0.49115 seconds |
|
39
|
-
./spec/integration/aws_elasticsearch_domain_spec.rb[1:1:1:2] | passed | 3.25 seconds |
|
40
|
-
./spec/integration/aws_elasticsearch_domain_spec.rb[1:1:1:3:1] | passed | 2.18 seconds |
|
41
|
-
./spec/integration/aws_elasticsearch_domain_spec.rb[1:1:1:3:2] | passed | 1.29 seconds |
|
42
|
-
./spec/integration/aws_elasticsearch_domain_spec.rb[1:1:1:3:3] | passed | 1.74 seconds |
|
43
|
-
./spec/integration/aws_elasticsearch_domain_spec.rb[1:1:1:3:4] | passed | 3.37 seconds |
|
44
|
-
./spec/integration/aws_iam_instance_profile_spec.rb[1:1:1:1] | passed | 0.9686 seconds |
|
45
|
-
./spec/integration/aws_iam_instance_profile_spec.rb[1:1:1:2:1] | passed | 2.42 seconds |
|
46
|
-
./spec/integration/aws_iam_instance_profile_spec.rb[1:1:1:2:2:1] | passed | 2.28 seconds |
|
47
|
-
./spec/integration/aws_iam_instance_profile_spec.rb[1:1:1:2:2:2] | passed | 2.23 seconds |
|
48
|
-
./spec/integration/aws_iam_instance_profile_spec.rb[1:1:1:2:2:3:1] | passed | 3.59 seconds |
|
49
|
-
./spec/integration/aws_iam_role_spec.rb[1:1:1:1] | passed | 1.03 seconds |
|
50
|
-
./spec/integration/aws_iam_role_spec.rb[1:1:1:2] | passed | 2.05 seconds |
|
51
|
-
./spec/integration/aws_iam_role_spec.rb[1:1:1:3:1] | passed | 2.99 seconds |
|
52
|
-
./spec/integration/aws_iam_role_spec.rb[1:1:1:3:2] | passed | 2.14 seconds |
|
53
|
-
./spec/integration/aws_iam_role_spec.rb[1:1:1:3:3] | passed | 1.66 seconds |
|
54
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:1] | passed | 1.18 seconds |
|
55
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:2] | passed | 2.58 seconds |
|
56
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:3:1] | passed | 2.31 seconds |
|
57
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:4:1] | passed | 0.98383 seconds |
|
58
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:5:1] | passed | 1.35 seconds |
|
59
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:5:2:1] | passed | 4.82 seconds |
|
60
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:5:3:1] | passed | 1.5 seconds |
|
61
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:5:3:2] | passed | 1.95 seconds |
|
62
|
-
./spec/integration/aws_internet_gateway_spec.rb[1:1:1:5:4:1] | passed | 4.33 seconds |
|
63
|
-
./spec/integration/aws_key_pair_spec.rb[1:1:1:1] | passed | 1.68 seconds |
|
64
|
-
./spec/integration/aws_launch_configuration_spec.rb[1:1:1:1] | passed | 22.62 seconds |
|
65
|
-
./spec/integration/aws_launch_configuration_spec.rb[1:1:1:2] | passed | 21.86 seconds |
|
66
|
-
./spec/integration/aws_launch_configuration_spec.rb[1:1:1:3] | passed | 22.12 seconds |
|
67
|
-
./spec/integration/aws_nat_gateway_spec.rb[1:1:1:1:1] | passed | 2 minutes 53 seconds |
|
68
|
-
./spec/integration/aws_nat_gateway_spec.rb[1:1:1:2:1:1] | passed | 43.61 seconds |
|
69
|
-
./spec/integration/aws_network_acl_spec.rb[1:1:1:1] | passed | 2.35 seconds |
|
70
|
-
./spec/integration/aws_network_acl_spec.rb[1:1:1:2] | passed | 2.92 seconds |
|
71
|
-
./spec/integration/aws_network_acl_spec.rb[1:1:1:3:1] | passed | 2.32 seconds |
|
72
|
-
./spec/integration/aws_network_acl_spec.rb[1:1:1:4:1] | passed | 1.64 seconds |
|
73
|
-
./spec/integration/aws_network_acl_spec.rb[1:1:1:5] | passed | 2.62 seconds |
|
74
|
-
./spec/integration/aws_network_acl_spec.rb[1:1:1:6:1] | passed | 1.53 seconds |
|
75
|
-
./spec/integration/aws_network_acl_spec.rb[1:1:1:6:2] | passed | 1.45 seconds |
|
76
|
-
./spec/integration/aws_network_interface_spec.rb[1:1:1:1:1] | unknown | |
|
77
|
-
./spec/integration/aws_network_interface_spec.rb[1:1:1:1:2] | passed | 3.12 seconds |
|
78
|
-
./spec/integration/aws_network_interface_spec.rb[1:1:1:1:3:1] | passed | 1.86 seconds |
|
79
|
-
./spec/integration/aws_network_interface_spec.rb[1:1:1:1:3:2] | passed | 1.63 seconds |
|
80
|
-
./spec/integration/aws_rds_instance_spec.rb[1:1:1:1] | failed | 2.21 seconds |
|
81
|
-
./spec/integration/aws_rds_instance_spec.rb[1:1:1:2] | passed | 34.67 seconds |
|
82
|
-
./spec/integration/aws_rds_instance_spec.rb[1:1:1:3] | passed | 49.53 seconds |
|
83
|
-
./spec/integration/aws_rds_instance_spec.rb[1:1:1:4:1] | passed | 1.47 seconds |
|
84
|
-
./spec/integration/aws_rds_instance_spec.rb[1:1:1:4:2] | passed | 1.58 seconds |
|
85
|
-
./spec/integration/aws_rds_parameter_group_spec.rb[1:1:1:1] | passed | 2 minutes 10.5 seconds |
|
86
|
-
./spec/integration/aws_rds_parameter_group_spec.rb[1:1:1:2] | passed | 14.3 seconds |
|
87
|
-
./spec/integration/aws_rds_parameter_group_spec.rb[1:1:1:3] | passed | 6.52 seconds |
|
88
|
-
./spec/integration/aws_rds_parameter_group_spec.rb[1:1:1:4:1] | passed | 6.25 seconds |
|
89
|
-
./spec/integration/aws_rds_subnet_group_spec.rb[1:1:1:1] | passed | 2.91 seconds |
|
90
|
-
./spec/integration/aws_rds_subnet_group_spec.rb[1:1:1:2] | passed | 2.63 seconds |
|
91
|
-
./spec/integration/aws_rds_subnet_group_spec.rb[1:1:1:3:1] | passed | 1.68 seconds |
|
92
|
-
./spec/integration/aws_rds_subnet_group_spec.rb[1:1:1:3:2] | passed | 1.72 seconds |
|
93
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:1:1] | passed | 1.33 seconds |
|
94
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:1:2] | passed | 6.79 seconds |
|
95
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:1:3] | passed | 0.00119 seconds |
|
96
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:1:4] | passed | 1.95 seconds |
|
97
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:1:5] | passed | 1.84 seconds |
|
98
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:1] | passed | 0.0362 seconds |
|
99
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:2] | passed | 0.03165 seconds |
|
100
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:3] | passed | 2.12 seconds |
|
101
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:4] | passed | 1.52 seconds |
|
102
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:5] | passed | 0.03268 seconds |
|
103
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:6] | passed | 3.04 seconds |
|
104
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:7] | passed | 2.21 seconds |
|
105
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:8] | passed | 2.13 seconds |
|
106
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:9] | passed | 1.54 seconds |
|
107
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:10] | passed | 1.37 seconds |
|
108
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:11:1] | passed | 1.45 seconds |
|
109
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:11:2] | passed | 0.0014 seconds |
|
110
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:11:3] | passed | 0.03327 seconds |
|
111
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:12:1] | passed | 1.88 seconds |
|
112
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:12:2] | passed | 1.86 seconds |
|
113
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:12:3] | passed | 1.53 seconds |
|
114
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:12:4] | passed | 2.3 seconds |
|
115
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:12:5] | passed | 2.5 seconds |
|
116
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:12:6] | passed | 2.53 seconds |
|
117
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:12:7] | passed | 2.02 seconds |
|
118
|
-
./spec/integration/aws_route53_hosted_zone_spec.rb[1:1:1:1:2:12:8] | passed | 2.82 seconds |
|
119
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:1] | passed | 1.56 seconds |
|
120
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:2] | passed | 2.14 seconds |
|
121
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:3] | passed | 3.73 seconds |
|
122
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:4:1] | passed | 2.46 seconds |
|
123
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:5:1] | passed | 2.3 seconds |
|
124
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:6:1] | unknown | |
|
125
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:7] | passed | 1.96 seconds |
|
126
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:8:1] | passed | 1.33 seconds |
|
127
|
-
./spec/integration/aws_route_table_spec.rb[1:1:1:8:2] | passed | 1.22 seconds |
|
128
|
-
./spec/integration/aws_route_table_spec.rb[1:1:2:1] | passed | 4.09 seconds |
|
129
|
-
./spec/integration/aws_s3_bucket_spec.rb[1:1:1:1] | passed | 1.49 seconds |
|
130
|
-
./spec/integration/aws_s3_bucket_spec.rb[1:1:1:2] | passed | 2.31 seconds |
|
131
|
-
./spec/integration/aws_s3_bucket_spec.rb[1:1:1:3:1] | passed | 0.91834 seconds |
|
132
|
-
./spec/integration/aws_s3_bucket_spec.rb[1:1:1:3:2] | pending | 0.97497 seconds |
|
133
|
-
./spec/integration/aws_s3_bucket_spec.rb[1:1:2:1] | passed | 1.76 seconds |
|
134
|
-
./spec/integration/aws_security_group_spec.rb[1:1:1:1] | passed | 2.37 seconds |
|
135
|
-
./spec/integration/aws_security_group_spec.rb[1:1:1:2] | passed | 5.89 seconds |
|
136
|
-
./spec/integration/aws_security_group_spec.rb[1:1:1:3] | passed | 0.29645 seconds |
|
137
|
-
./spec/integration/aws_security_group_spec.rb[1:1:1:4] | passed | 3.1 seconds |
|
138
|
-
./spec/integration/aws_security_group_spec.rb[1:1:1:5:1] | passed | 2.04 seconds |
|
139
|
-
./spec/integration/aws_security_group_spec.rb[1:1:1:5:2] | passed | 3.35 seconds |
|
140
|
-
./spec/integration/aws_security_group_spec.rb[1:1:2:1] | passed | 2.85 seconds |
|
141
|
-
./spec/integration/aws_security_group_spec.rb[1:1:2:2] | passed | 41.16 seconds |
|
142
|
-
./spec/integration/aws_security_group_spec.rb[1:1:2:3] | passed | 38.86 seconds |
|
143
|
-
./spec/integration/aws_security_group_spec.rb[1:1:3:1] | passed | 0.12059 seconds |
|
144
|
-
./spec/integration/aws_security_group_spec.rb[1:1:3:2] | passed | 1.29 seconds |
|
145
|
-
./spec/integration/aws_server_certificate_spec.rb[1:1:1:1] | passed | 1.15 seconds |
|
146
|
-
./spec/integration/aws_server_certificate_spec.rb[1:1:1:2] | passed | 0.75483 seconds |
|
147
|
-
./spec/integration/aws_subnet_spec.rb[1:1:1:1] | passed | 2.87 seconds |
|
148
|
-
./spec/integration/aws_subnet_spec.rb[1:1:1:2] | passed | 7 seconds |
|
149
|
-
./spec/integration/aws_subnet_spec.rb[1:1:1:3] | passed | 3.43 seconds |
|
150
|
-
./spec/integration/aws_subnet_spec.rb[1:1:1:4:1] | passed | 1.07 seconds |
|
151
|
-
./spec/integration/aws_subnet_spec.rb[1:1:1:4:2] | passed | 1.26 seconds |
|
152
|
-
./spec/integration/aws_vpc_peering_connection_spec.rb[1:1:1:1] | passed | 0.06256 seconds |
|
153
|
-
./spec/integration/aws_vpc_peering_connection_spec.rb[1:1:1:2] | passed | 2.25 seconds |
|
154
|
-
./spec/integration/aws_vpc_peering_connection_spec.rb[1:1:1:3] | passed | 3.54 seconds |
|
155
|
-
./spec/integration/aws_vpc_peering_connection_spec.rb[1:1:1:4] | passed | 2.02 seconds |
|
156
|
-
./spec/integration/aws_vpc_peering_connection_spec.rb[1:1:1:5] | passed | 0.87157 seconds |
|
157
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:1:1] | passed | 3.59 seconds |
|
158
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:1:2] | passed | 3.44 seconds |
|
159
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:1:3] | passed | 8.68 seconds |
|
160
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:2:1:1] | passed | 2.88 seconds |
|
161
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:3] | passed | 3.2 seconds |
|
162
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:4:1] | passed | 1.03 seconds |
|
163
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:4:2] | passed | 1.07 seconds |
|
164
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:5] | passed | 0.03087 seconds |
|
165
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:6:1] | passed | 1.98 seconds |
|
166
|
-
./spec/integration/aws_vpc_spec.rb[1:1:1:7:1] | passed | 58.26 seconds |
|
167
|
-
./spec/integration/load_balancer_spec.rb[1:1:1:1:1] | passed | 3 minutes 49.8 seconds |
|
168
|
-
./spec/integration/load_balancer_spec.rb[1:1:1:1:2] | passed | 7.46 seconds |
|
169
|
-
./spec/integration/load_balancer_spec.rb[1:1:1:1:3:1] | passed | 1.59 seconds |
|
170
|
-
./spec/integration/machine_batch_spec.rb[1:1:1:1] | unknown | |
|
171
|
-
./spec/integration/machine_image_spec.rb[1:1:1:1] | unknown | |
|
172
|
-
./spec/integration/machine_image_spec.rb[1:1:1:2:1] | unknown | |
|
173
|
-
./spec/integration/machine_image_spec.rb[1:1:1:2:2] | unknown | |
|
174
|
-
./spec/integration/machine_image_spec.rb[1:1:1:3] | unknown | |
|
175
|
-
./spec/integration/machine_image_spec.rb[1:1:1:4:1] | unknown | |
|
176
|
-
./spec/integration/machine_image_spec.rb[1:1:1:4:2] | unknown | |
|
177
|
-
./spec/integration/machine_spec.rb[1:1:1:1] | passed | 15.81 seconds |
|
178
|
-
./spec/integration/machine_spec.rb[1:1:1:2] | passed | 31.74 seconds |
|
179
|
-
./spec/integration/machine_spec.rb[1:1:1:3] | failed | 1.04 seconds |
|
180
|
-
./spec/integration/machine_spec.rb[1:1:1:4] | failed | 49.06 seconds |
|
181
|
-
./spec/integration/machine_spec.rb[1:1:1:5] | failed | 37.79 seconds |
|
182
|
-
./spec/integration/machine_spec.rb[1:1:1:6] | failed | 47.97 seconds |
|
183
|
-
./spec/integration/machine_spec.rb[1:1:1:7] | passed | 1 minute 4.3 seconds |
|
184
|
-
./spec/integration/machine_spec.rb[1:1:1:8] | failed | 0.99452 seconds |
|
185
|
-
./spec/integration/machine_spec.rb[1:1:1:9] | failed | 1.13 seconds |
|
186
|
-
./spec/integration/machine_spec.rb[1:1:1:10:1] | failed | 0.20056 seconds |
|
187
|
-
./spec/integration/machine_spec.rb[1:1:1:11:1] | passed | 1 minute 25.95 seconds |
|
188
|
-
./spec/integration/machine_spec.rb[1:1:1:11:2] | passed | 37.36 seconds |
|
189
|
-
./spec/integration/machine_spec.rb[1:1:1:12] | failed | 50.05 seconds |
|
190
|
-
./spec/integration/machine_spec.rb[1:1:1:13:1] | passed | 1 minute 16.77 seconds |
|
191
|
-
./spec/integration/machine_spec.rb[1:1:1:13:2] | passed | 24.02 seconds |
|
192
|
-
./spec/integration/machine_spec.rb[1:1:1:14] | passed | 0.04802 seconds |
|
193
|
-
./spec/integration/machine_spec.rb[1:1:1:15] | passed | 56.98 seconds |
|
194
|
-
./spec/integration/machine_spec.rb[1:1:1:16] | passed | 12.99 seconds |
|
195
|
-
./spec/integration/machine_spec.rb[1:1:1:17:1] | passed | 49.34 seconds |
|
196
|
-
./spec/integration/machine_spec.rb[1:1:1:17:2] | passed | 49.38 seconds |
|
197
|
-
./spec/unit/chef/provisioning/aws_driver/credentials_spec.rb[1:1:1:1] | passed | 0.01546 seconds |
|
198
|
-
./spec/unit/chef/provisioning/aws_driver/credentials_spec.rb[1:1:1:2] | passed | 0.00158 seconds |
|
199
|
-
./spec/unit/chef/provisioning/aws_driver/credentials_spec.rb[1:1:2:1] | passed | 0.00138 seconds |
|
200
|
-
./spec/unit/chef/provisioning/aws_driver/credentials_spec.rb[1:1:2:2] | passed | 0.00105 seconds |
|
201
|
-
./spec/unit/chef/provisioning/aws_driver/credentials_spec.rb[1:1:3:1] | passed | 0.00099 seconds |
|
202
|
-
./spec/unit/chef/provisioning/aws_driver/credentials_spec.rb[1:1:3:2] | passed | 0.00091 seconds |
|
203
|
-
./spec/unit/chef/provisioning/aws_driver/driver_spec.rb[1:1:1:1] | passed | 0.00139 seconds |
|
204
|
-
./spec/unit/chef/provisioning/aws_driver/driver_spec.rb[1:1:2:1] | passed | 0.00088 seconds |
|
205
|
-
./spec/unit/chef/provisioning/aws_driver/driver_spec.rb[1:1:3:1] | passed | 0.0009 seconds |
|
206
|
-
./spec/unit/chef/provisioning/aws_driver/driver_spec.rb[1:1:4:1] | passed | 0.00083 seconds |
|
207
|
-
./spec/unit/chef/provisioning/aws_driver/driver_spec.rb[1:1:5:1:1] | passed | 0.00112 seconds |
|
208
|
-
./spec/unit/chef/provisioning/aws_driver/driver_spec.rb[1:1:5:2:1] | passed | 0.00091 seconds |
|
209
|
-
./spec/unit/chef/provisioning/aws_driver/driver_spec.rb[1:1:5:3:1] | passed | 0.00094 seconds |
|
210
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[1:1] | pending | 0.00002 seconds |
|
211
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[1:2] | pending | 0 seconds |
|
212
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[2:1] | passed | 0.00038 seconds |
|
213
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[2:2] | passed | 0.00039 seconds |
|
214
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[2:3:1] | passed | 0.0021 seconds |
|
215
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[2:3:2] | passed | 0.00033 seconds |
|
216
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[2:3:3] | passed | 0.00025 seconds |
|
217
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[2:3:4] | passed | 0.00025 seconds |
|
218
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[2:3:5] | passed | 0.00041 seconds |
|
219
|
-
./spec/unit/chef/provisioning/aws_driver/route53_spec.rb[2:4:1] | passed | 0.00063 seconds |
|