chef-provisioning-aws 0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: