chef-provisioning-aws 3.0.6 → 3.0.7
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/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
|
-
[](https://travis-ci.org/chef/chef-provisioning-aws)[](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 |
|