cloudformer 0.0.15 → 0.0.17
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/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:
|