cloudformer 0.0.15 → 0.0.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -12
- data/cloudformer.gemspec +1 -0
- data/lib/cloudformer.rb +0 -1
- data/lib/cloudformer/stack.rb +13 -4
- data/lib/cloudformer/tasks.rb +2 -2
- data/lib/cloudformer/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad4b308e721c4df1b83ca3ade6fcca758ffc3faf
|
4
|
+
data.tar.gz: e91c88820ec3740d05edd8c0771f9e937d8b1381
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9f8339440ca0326d644b6a3e0c1dad5f22f77459adeb40146935501a479f1ed461f75cee629f77459ad73896e084462c2f6552ecfc5b9a91a1834ac550191f8
|
7
|
+
data.tar.gz: 87eba56a105dc4f5a7255fb86f36e5a479f4fda4d933835edb5f56b2bdaaf69bc2c988564f9aa7e5655c87da2415ee5a771bb08a3892c39b6c1a4f75eac0199a
|
data/README.md
CHANGED
@@ -52,8 +52,8 @@ You can add cloudformer tasks to your project by adding the following to your ra
|
|
52
52
|
end
|
53
53
|
|
54
54
|
where `cloudformation/cloudformation.json` is the stack json file and parameters is a hash of parameters used in the template.
|
55
|
-
For a template which takes the following parameters:
|
56
|
-
|
55
|
+
For a template which takes the following parameters:
|
56
|
+
|
57
57
|
"Parameters": {
|
58
58
|
"PackageUrl": {
|
59
59
|
"Type": "String"
|
@@ -62,13 +62,13 @@ For a template which takes the following parameters:
|
|
62
62
|
"Type": "String"
|
63
63
|
}
|
64
64
|
}
|
65
|
-
|
65
|
+
|
66
66
|
the parameter hash(Ruby Object) would look like:
|
67
67
|
|
68
68
|
{
|
69
69
|
"PackageUrl" => "http://localhost/app.rpm",
|
70
|
-
"PackageVersion" => "123"
|
71
|
-
}
|
70
|
+
"PackageVersion" => "123"
|
71
|
+
}
|
72
72
|
|
73
73
|
If you have a template with no parameters, pass an empty hash `{}` instead.
|
74
74
|
|
@@ -107,13 +107,16 @@ Here is a simple Cloudformation Stack(Code available in the samples directory) w
|
|
107
107
|
}
|
108
108
|
}
|
109
109
|
}
|
110
|
-
|
111
|
-
Then, in your Rakefile add,
|
110
|
+
|
111
|
+
Then, in your Rakefile add,
|
112
112
|
|
113
113
|
require 'cloudformer/tasks'
|
114
114
|
|
115
115
|
Cloudformer::Tasks.new("app") do |t|
|
116
116
|
t.template = "basic_template.json"
|
117
|
+
t.tags = [{'Key' => 'Name', 'Value' => 'BASIC-TMPLT'},
|
118
|
+
{'Key' => 'Owner', 'Value' => 'APPOWNER'}]
|
119
|
+
|
117
120
|
#AMI Works in Sydney region only, ensure you supply the right AMI.
|
118
121
|
t.parameters = {"AmiId" => "ami-8da439b7"}
|
119
122
|
end
|
@@ -145,7 +148,7 @@ Running `rake apply` will create an environment or update existing depending on
|
|
145
148
|
==================================================================================================
|
146
149
|
|
147
150
|
Running `rake apply` again gives us:
|
148
|
-
|
151
|
+
|
149
152
|
No updates are to be performed.
|
150
153
|
|
151
154
|
To remove the stack `rake delete` gives us:
|
@@ -170,7 +173,7 @@ Attempts to delete a non-existing stack will result in:
|
|
170
173
|
==============================================
|
171
174
|
|
172
175
|
To recreate the stack use `rake recreate`:
|
173
|
-
|
176
|
+
|
174
177
|
=================================================================================================
|
175
178
|
Attempting to delete stack - app
|
176
179
|
=================================================================================================
|
@@ -194,13 +197,13 @@ To recreate the stack use `rake recreate`:
|
|
194
197
|
=================================================================================================
|
195
198
|
|
196
199
|
To see the stack outputs `rake outputs`:
|
197
|
-
|
200
|
+
|
198
201
|
==============================
|
199
202
|
Server - - 172.31.3.52
|
200
|
-
==============================
|
203
|
+
==============================
|
201
204
|
|
202
205
|
To see recent events on the stack `rake events`:
|
203
|
-
|
206
|
+
|
204
207
|
==================================================================================================
|
205
208
|
2013-10-24 08:06:31 UTC - AWS::CloudFormation::Stack - CREATE_IN_PROGRESS - User Initiated
|
206
209
|
2013-10-24 08:06:52 UTC - AWS::EC2::Instance - CREATE_IN_PROGRESS -
|
data/cloudformer.gemspec
CHANGED
data/lib/cloudformer.rb
CHANGED
data/lib/cloudformer/stack.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'aws-sdk'
|
2
|
+
require 'httparty'
|
2
3
|
|
3
4
|
class Stack
|
4
5
|
attr_accessor :stack, :name, :deployed
|
@@ -19,9 +20,17 @@ class Stack
|
|
19
20
|
return stack.exists?
|
20
21
|
end
|
21
22
|
|
22
|
-
def apply(template_file, parameters, disable_rollback=false, capabilities=[], notify=[])
|
23
|
+
def apply(template_file, parameters, disable_rollback=false, capabilities=[], notify=[], tags=[])
|
23
24
|
if ( template_file =~ /^https:\/\/s3\S+\.amazonaws\.com\/(.*)/ )
|
24
25
|
template = template_file
|
26
|
+
elsif ( template_file =~ /^http.*(.json)$/ )
|
27
|
+
begin
|
28
|
+
response = HTTParty.get(template_file)
|
29
|
+
template = response.body
|
30
|
+
rescue => e
|
31
|
+
puts "Unable to retieve json file for template from #{template_file} - #{e.class}, #{e}"
|
32
|
+
return :Failed
|
33
|
+
end
|
25
34
|
else
|
26
35
|
template = File.read(template_file)
|
27
36
|
end
|
@@ -35,7 +44,7 @@ class Stack
|
|
35
44
|
if deployed
|
36
45
|
pending_operations = update(template, parameters, capabilities)
|
37
46
|
else
|
38
|
-
pending_operations = create(template, parameters, disable_rollback, capabilities, notify)
|
47
|
+
pending_operations = create(template, parameters, disable_rollback, capabilities, notify, tags)
|
39
48
|
end
|
40
49
|
rescue ::AWS::CloudFormation::Errors::ValidationError => e
|
41
50
|
puts e.message
|
@@ -154,9 +163,9 @@ class Stack
|
|
154
163
|
return true
|
155
164
|
end
|
156
165
|
|
157
|
-
def create(template, parameters, disable_rollback, capabilities, notify)
|
166
|
+
def create(template, parameters, disable_rollback, capabilities, notify, tags)
|
158
167
|
puts "Initializing stack creation..."
|
159
|
-
@cf.stacks.create(name, template, :parameters => parameters, :disable_rollback => disable_rollback, :capabilities => capabilities, :notify => notify)
|
168
|
+
@cf.stacks.create(name, template, :parameters => parameters, :disable_rollback => disable_rollback, :capabilities => capabilities, :notify => notify, :tags => tags)
|
160
169
|
sleep 10
|
161
170
|
return true
|
162
171
|
end
|
data/lib/cloudformer/tasks.rb
CHANGED
@@ -13,7 +13,7 @@ module Cloudformer
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
attr_accessor :template, :parameters, :disable_rollback, :retry_delete, :capabilities, :notify
|
16
|
+
attr_accessor :template, :parameters, :disable_rollback, :retry_delete, :capabilities, :notify, :tags
|
17
17
|
|
18
18
|
private
|
19
19
|
def define_tasks
|
@@ -35,7 +35,7 @@ module Cloudformer
|
|
35
35
|
if retry_delete
|
36
36
|
@stack.delete
|
37
37
|
end
|
38
|
-
result = @stack.apply(template, parameters, disable_rollback, capabilities, notify)
|
38
|
+
result = @stack.apply(template, parameters, disable_rollback, capabilities, notify, tags)
|
39
39
|
if result == :Failed then exit 1 end
|
40
40
|
if result == :NoUpdates then exit 0 end
|
41
41
|
end
|
data/lib/cloudformer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudformer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arvind Kunday
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: httparty
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Cloudformation tasks for apply(create/update), delete, recreate on stack
|
70
84
|
along with validations on templates
|
71
85
|
email:
|