chef-provisioning-aws 0.1

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.
@@ -0,0 +1,7 @@
1
+ resources = %w(sqs_queue sns_topic ebs_volume s3_bucket auto_scaling_group launch_config)
2
+
3
+ resources.each do |r|
4
+ Chef::Log.debug "AWS driver loading resource: #{r}"
5
+ require "chef/resource/aws_#{r}"
6
+ require "chef/provider/aws_#{r}"
7
+ end
@@ -0,0 +1,7 @@
1
+ class Chef
2
+ module Provisioning
3
+ module AWSDriver
4
+ VERSION = '0.1'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ require 'chef/provisioning/aws_driver/driver'
2
+
3
+ Chef::Provisioning.register_driver_class('aws', Chef::Provisioning::AWSDriver::Driver)
@@ -0,0 +1,16 @@
1
+ require 'chef/resource/aws_resource'
2
+ require 'chef/provisioning/aws_driver'
3
+
4
+ class Chef::Resource::AwsAutoScalingGroup < Chef::Resource::AwsResource
5
+ self.resource_name = 'aws_auto_scaling_group'
6
+ self.databag_name = 'auto_scaling_groups'
7
+
8
+ actions :create, :delete, :nothing
9
+ default_action :create
10
+
11
+ attribute :name, :kind_of => String, :name_attribute => true
12
+ attribute :desired_capacity, :kind_of => Integer
13
+ attribute :launch_config, :kind_of => String
14
+ attribute :min_size, :kind_of => Integer, :default => 1
15
+ attribute :max_size, :kind_of => Integer, :default => 4
16
+ end
@@ -0,0 +1,31 @@
1
+ require 'chef/resource/aws_resource'
2
+ require 'chef/provisioning/aws_driver'
3
+
4
+ class Chef::Resource::AwsEbsVolume < Chef::Resource::AwsResource
5
+ self.resource_name = 'aws_ebs_volume'
6
+ self.databag_name = 'ebs_volumes'
7
+
8
+ actions :create, :delete, :nothing
9
+ default_action :create
10
+
11
+ stored_attribute :volume_id
12
+ stored_attribute :created_at
13
+
14
+ attribute :name, :kind_of => String, :name_attribute => true
15
+ attribute :volume_name, :kind_of => String
16
+
17
+ attribute :size
18
+ attribute :mount_point
19
+ attribute :availability_zone
20
+
21
+
22
+ def initialize(*args)
23
+ super
24
+ end
25
+
26
+ def after_created
27
+ super
28
+ end
29
+
30
+
31
+ end
@@ -0,0 +1,29 @@
1
+ require 'chef/provisioning'
2
+
3
+ class Chef::Resource::FogKeyPair < Chef::Resource::LWRPBase
4
+ self.resource_name = 'fog_key_pair'
5
+
6
+ def initialize(*args)
7
+ super
8
+ @driver = run_context.chef_provisioning.current_driver
9
+ end
10
+
11
+ actions :create, :delete, :nothing
12
+ default_action :create
13
+
14
+ attribute :driver
15
+ # Private key to use as input (will be generated if it does not exist)
16
+ attribute :private_key_path, :kind_of => String
17
+ # Public key to use as input (will be generated if it does not exist)
18
+ attribute :public_key_path, :kind_of => String
19
+ # List of parameters to the private_key resource used for generation of the key
20
+ attribute :private_key_options, :kind_of => Hash
21
+
22
+ # TODO what is the right default for this?
23
+ attribute :allow_overwrite, :kind_of => [TrueClass, FalseClass], :default => false
24
+
25
+ # Proc that runs after the resource completes. Called with (resource, private_key, public_key)
26
+ def after(&block)
27
+ block ? @after = block : @after
28
+ end
29
+ end
@@ -0,0 +1,14 @@
1
+ require 'chef/resource/aws_resource'
2
+ require 'chef/provisioning/aws_driver'
3
+
4
+ class Chef::Resource::AwsLaunchConfig < Chef::Resource::AwsResource
5
+ self.resource_name = 'aws_launch_config'
6
+ self.databag_name = 'launch_configs'
7
+
8
+ actions :create, :delete, :nothing
9
+ default_action :create
10
+
11
+ attribute :name, :kind_of => String, :name_attribute => true
12
+ attribute :image, :kind_of => String
13
+ attribute :instance_type, :kind_of => String
14
+ end
@@ -0,0 +1,10 @@
1
+ # Common AWS resource - contains metadata that all AWS resources will need
2
+ class Chef::Resource::AwsResource < Chef::Resource::ChefDataBagResource
3
+ stored_attribute :region_name
4
+
5
+ def initialize(*args)
6
+ super
7
+ @region_name = run_context.chef_provisioning.current_data_center
8
+ end
9
+
10
+ end
@@ -0,0 +1,21 @@
1
+ require 'chef/resource/aws_resource'
2
+ require 'chef/provisioning/aws_driver'
3
+
4
+ class Chef::Resource::AwsS3Bucket < Chef::Resource::AwsResource
5
+ self.resource_name = 'aws_s3_bucket'
6
+ self.databag_name = 's3_buckets'
7
+
8
+ actions :create, :delete, :nothing
9
+ default_action :create
10
+
11
+ attribute :name, :kind_of => String, :name_attribute => true
12
+ attribute :bucket_name, :kind_of => String
13
+
14
+ def initialize(*args)
15
+ super
16
+ end
17
+
18
+ def after_created
19
+ super
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ require 'chef/resource/aws_resource'
2
+ require 'chef/provisioning/aws_driver'
3
+
4
+ class Chef::Resource::AwsSnsTopic < Chef::Resource::AwsResource
5
+ self.resource_name = 'aws_sns_topic'
6
+
7
+ actions :create, :delete, :nothing
8
+ default_action :create
9
+
10
+ attribute :name, :kind_of => String, :name_attribute => true
11
+ attribute :topic_name, :kind_of => String
12
+
13
+ def initialize(*args)
14
+ super
15
+ end
16
+
17
+ def after_created
18
+ super
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ require 'chef/resource/aws_resource'
2
+ require 'chef/provisioning/aws_driver'
3
+
4
+ class Chef::Resource::AwsSqsQueue < Chef::Resource::AwsResource
5
+ self.resource_name = 'aws_sqs_queue'
6
+
7
+ actions :create, :delete, :nothing
8
+ default_action :create
9
+
10
+ attribute :name, String, :name_attribute => true
11
+ attribute :queue_name, String
12
+ stored_attribute :created_at, DateTime
13
+ attribute :name, :kind_of => String, :name_attribute => true
14
+ attribute :queue_name, :kind_of => String
15
+ stored_attribute :created_at
16
+
17
+ def initialize(*args)
18
+ super
19
+ end
20
+
21
+ def after_created
22
+ super
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chef-provisioning-aws
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - John Ewart
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: chef
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: chef-provisioning
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.9'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
41
+ - !ruby/object:Gem::Dependency
42
+ name: aws-sdk-v1
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Provisioner for creating aws containers in Chef Provisioning.
84
+ email: jewart@getchef.com
85
+ executables: []
86
+ extensions: []
87
+ extra_rdoc_files:
88
+ - README.md
89
+ - LICENSE
90
+ files:
91
+ - LICENSE
92
+ - README.md
93
+ - Rakefile
94
+ - lib/chef/provider/aws_auto_scaling_group.rb
95
+ - lib/chef/provider/aws_ebs_volume.rb
96
+ - lib/chef/provider/aws_key_pair.rb
97
+ - lib/chef/provider/aws_launch_config.rb
98
+ - lib/chef/provider/aws_provider.rb
99
+ - lib/chef/provider/aws_s3_bucket.rb
100
+ - lib/chef/provider/aws_sns_topic.rb
101
+ - lib/chef/provider/aws_sqs_queue.rb
102
+ - lib/chef/provisioning/aws_driver.rb
103
+ - lib/chef/provisioning/aws_driver/aws_profile.rb
104
+ - lib/chef/provisioning/aws_driver/credentials.rb
105
+ - lib/chef/provisioning/aws_driver/driver.rb
106
+ - lib/chef/provisioning/aws_driver/resources.rb
107
+ - lib/chef/provisioning/aws_driver/version.rb
108
+ - lib/chef/provisioning/driver_init/aws.rb
109
+ - lib/chef/resource/aws_auto_scaling_group.rb
110
+ - lib/chef/resource/aws_ebs_volume.rb
111
+ - lib/chef/resource/aws_key_pair.rb
112
+ - lib/chef/resource/aws_launch_config.rb
113
+ - lib/chef/resource/aws_resource.rb
114
+ - lib/chef/resource/aws_s3_bucket.rb
115
+ - lib/chef/resource/aws_sns_topic.rb
116
+ - lib/chef/resource/aws_sqs_queue.rb
117
+ homepage: https://github.com/opscode/chef-provisioning-aws
118
+ licenses: []
119
+ metadata: {}
120
+ post_install_message:
121
+ rdoc_options: []
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 2.2.2
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: Provisioner for creating aws containers in Chef Provisioning.
140
+ test_files: []
141
+ has_rdoc: