stack_master 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95e15942f9d3602d9e7c5ba3f48004b285bccb30fab4bca829739582a435b6f9
4
- data.tar.gz: 6982d4d3c00e00cdea0ac5237024739a2672bbe576fb3e265a0bbfc163d5308a
3
+ metadata.gz: 718e9ceaea1d3ec8a5ad3f5087947e8d99b0acbc9d9cf00a7b9195a6c527bd9c
4
+ data.tar.gz: e22b0c545568097c3f94eea29453e3020436e14ec002a3c1653d39a38028a268
5
5
  SHA512:
6
- metadata.gz: cd77263d4ea01921c1b1f82c75b2f86fd066f537897628d18c71204ab26e403dda32f69366e4a45d4688769753ed0ba1514a5492137c9a1e274d9a0d1c12af9d
7
- data.tar.gz: 684a1c3870be5dfd9312dd2ce85a92039aab6cdc8add0f1f788003ae9402f7ea7355f61282eb33233e518f1d79df08251c2f9479435524a6586ec51432c0cf5f
6
+ metadata.gz: b5d481814fbfbe8dc7e1474802c38eb0740ebe51b3112c5c5b12ec728c3e0dc0a71a41b61de2a27475f93589cafa0782f44c928889e8ecfe17a6ed5a36647eaf
7
+ data.tar.gz: d0f72299b00a8abf372c64247b0c5552fce38050e65db1aa6a52721859bb8d0e56b289f0f430730bad794d2b829900ecff52d5db8e3dd86f83354d3bb2e083b3
@@ -0,0 +1,73 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ education, socio-economic status, nationality, personal appearance, race,
10
+ religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at stackmaster@googlegroups.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
+
73
+ [homepage]: https://www.contributor-covenant.org
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![Gem Version](https://badge.fury.io/rb/stack_master.svg)](https://badge.fury.io/rb/stack_master)
5
5
  [![Build Status](https://travis-ci.org/envato/stack_master.svg?branch=master)](https://travis-ci.org/envato/stack_master)
6
6
 
7
- StackMaster is a CLI tool to manage CloudFormation stacks, with the following features:
7
+ StackMaster is a CLI tool to manage [CloudFormation](https://aws.amazon.com/cloudformation/) stacks, with the following features:
8
8
 
9
9
  - Synchronous visibility into stack updates. See exactly what is changing and
10
10
  what will happen before agreeing to apply a change.
@@ -26,7 +26,7 @@ are displayed for review.
26
26
 
27
27
  Stack parameters can be dynamically resolved at runtime using one of the
28
28
  built in parameter resolvers. Parameters can be sourced from GPG encrypted YAML
29
- files, other stacks outputs, by querying various AWS API's to get resource ARNs
29
+ files, other stacks outputs, by querying various AWS APIs to get resource ARNs,
30
30
  etc.
31
31
 
32
32
  ## Installation
@@ -103,7 +103,7 @@ stacks:
103
103
  ## S3
104
104
 
105
105
  StackMaster can optionally use S3 to store the templates before creating a stack.
106
- This requires to configure an S3 bucket in stack_master.yml:
106
+ This requires you to configure an S3 bucket in stack_master.yml:
107
107
 
108
108
  ```yaml
109
109
  stack_defaults:
@@ -125,7 +125,6 @@ stacks:
125
125
  ## Directories
126
126
 
127
127
  - `templates` - CloudFormation, SparkleFormation or CfnDsl templates.
128
- - `polices` - Stack policies.
129
128
  - `parameters` - Parameters as YAML files.
130
129
  - `secrets` - GPG encrypted secret files.
131
130
  - `policies` - Stack policy JSON files.
@@ -133,7 +132,7 @@ stacks:
133
132
  ## Templates
134
133
 
135
134
  StackMaster supports CloudFormation templates in plain JSON or YAML. Any `.yml` or `.yaml` file will be processed as
136
- YAML. While any `.json` file will be processed as JSON.
135
+ YAML, while any `.json` file will be processed as JSON.
137
136
 
138
137
  ### Ruby DSLs
139
138
  By default, any template ending with `.rb` will be processed as a [SparkleFormation](https://github.com/sparkleformation/sparkle_formation)
@@ -165,7 +164,7 @@ key_name: myapp-us-east-1
165
164
  ### Compile Time Parameters
166
165
 
167
166
  Compile time parameters can be used for [SparkleFormation](http://www.sparkleformation.io) templates. It conforms and
168
- allows you to use the [Compile Time Parameters](http://www.sparkleformation.io/docs/sparkle_formation/compile-time-parameters.html) feature
167
+ allows you to use the [Compile Time Parameters](http://www.sparkleformation.io/docs/sparkle_formation/compile-time-parameters.html) feature.
169
168
 
170
169
  A simple example looks like this
171
170
 
@@ -184,7 +183,7 @@ Keys in parameter files are automatically converted to camel case.
184
183
  Parameter values can be sourced dynamically using parameter resolvers.
185
184
 
186
185
  One benefit of using parameter resolvers instead of hard coding values like VPC
187
- ID's and resource ARNs is that the same configuration works cross
186
+ IDs and resource ARNs is that the same configuration works cross
188
187
  region/account, even though the resolved values will be different.
189
188
 
190
189
  ### Stack Output
@@ -292,7 +291,7 @@ web_ami:
292
291
  latest_ami_by_tags: role=web,application=myapp
293
292
  ```
294
293
 
295
- Note that the corresponding array resolver is named `latest_amis_by_tags`
294
+ Note that the corresponding array resolver is named `latest_amis_by_tags`.
296
295
 
297
296
  ### Latest AMI by attribute
298
297
 
@@ -308,7 +307,7 @@ bastion_ami:
308
307
  name: ubuntu/images/hvm/ubuntu-wily-15.10-amd64-server-*
309
308
  ```
310
309
 
311
- A set of possible attributes is available in the [AWS documentation](https://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Client.html#describe_images-instance_method)
310
+ A set of possible attributes is available in the [AWS documentation](https://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Client.html#describe_images-instance_method).
312
311
 
313
312
  Any value can be an array of possible matches.
314
313
 
@@ -331,7 +330,7 @@ To create a resolver named my_resolver:
331
330
  ```
332
331
  lib/stack_master/parameter_resolvers/my_resolver.rb
333
332
  ```
334
- * That file need to contain a class named `StackMaster::ParameterResolvers::MyResolver`
333
+ * That file needs to contain a class named `StackMaster::ParameterResolvers::MyResolver`
335
334
  that implements a `resolve` method and an initializer taking 2 parameters :
336
335
  ```ruby
337
336
  module StackMaster
@@ -503,7 +502,7 @@ stack_master apply [region-or-alias] # Create or update stacks in the given regi
503
502
  stack_master apply # Create or update all stacks
504
503
  stack_master --changed apply # Create or update all stacks that have changed
505
504
  stack_master --yes apply [region-or-alias] [stack-name] # Create or update a stack non-interactively (forcing yes)
506
- stack_master diff [region-or-alias] [stack-name] # Display a stack tempalte and parameter diff
505
+ stack_master diff [region-or-alias] [stack-name] # Display a stack template and parameter diff
507
506
  stack_master delete [region-or-alias] [stack-name] # Delete a stack
508
507
  stack_master events [region-or-alias] [stack-name] # Display events for a stack
509
508
  stack_master outputs [region-or-alias] [stack-name] # Display outputs for a stack
@@ -1,8 +1,15 @@
1
- require "commander"
2
- require "yaml"
3
- require "aws-sdk"
1
+ require 'commander'
2
+ require 'yaml'
3
+ require "aws-sdk-cloudformation"
4
+ require "aws-sdk-ec2"
5
+ require "aws-sdk-s3"
6
+ require "aws-sdk-sns"
7
+ require "aws-sdk-ssm"
4
8
  require "colorize"
5
9
  require 'active_support/core_ext/string'
10
+ require 'multi_json'
11
+
12
+ MultiJson.use :json_gem
6
13
 
7
14
  module StackMaster
8
15
  extend self
@@ -1,3 +1,5 @@
1
+ require 'securerandom'
2
+
1
3
  module StackMaster
2
4
  module TestDriver
3
5
  class Stack
@@ -1,3 +1,3 @@
1
1
  module StackMaster
2
- VERSION = "1.3.1"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -28,7 +28,11 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "timecop"
29
29
  spec.add_dependency "ruby-progressbar"
30
30
  spec.add_dependency "commander"
31
- spec.add_dependency "aws-sdk", "~> 2.6"
31
+ spec.add_dependency "aws-sdk-cloudformation", "~> 1"
32
+ spec.add_dependency "aws-sdk-ec2", "~> 1"
33
+ spec.add_dependency "aws-sdk-s3", "~> 1"
34
+ spec.add_dependency "aws-sdk-sns", "~> 1"
35
+ spec.add_dependency "aws-sdk-ssm", "~> 1"
32
36
  spec.add_dependency "diffy"
33
37
  spec.add_dependency "erubis"
34
38
  spec.add_dependency "colorize"
@@ -38,4 +42,5 @@ Gem::Specification.new do |spec|
38
42
  spec.add_dependency "dotgpg"
39
43
  spec.add_dependency "deep_merge"
40
44
  spec.add_dependency "cfndsl"
45
+ spec.add_dependency "multi_json"
41
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stack_master
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Hodgkiss
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-03-18 00:00:00.000000000 Z
12
+ date: 2018-04-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -138,19 +138,75 @@ dependencies:
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
- name: aws-sdk
141
+ name: aws-sdk-cloudformation
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '2.6'
146
+ version: '1'
147
147
  type: :runtime
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: '2.6'
153
+ version: '1'
154
+ - !ruby/object:Gem::Dependency
155
+ name: aws-sdk-ec2
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '1'
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '1'
168
+ - !ruby/object:Gem::Dependency
169
+ name: aws-sdk-s3
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '1'
175
+ type: :runtime
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '1'
182
+ - !ruby/object:Gem::Dependency
183
+ name: aws-sdk-sns
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '1'
189
+ type: :runtime
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '1'
196
+ - !ruby/object:Gem::Dependency
197
+ name: aws-sdk-ssm
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '1'
203
+ type: :runtime
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '1'
154
210
  - !ruby/object:Gem::Dependency
155
211
  name: diffy
156
212
  requirement: !ruby/object:Gem::Requirement
@@ -277,6 +333,20 @@ dependencies:
277
333
  - - ">="
278
334
  - !ruby/object:Gem::Version
279
335
  version: '0'
336
+ - !ruby/object:Gem::Dependency
337
+ name: multi_json
338
+ requirement: !ruby/object:Gem::Requirement
339
+ requirements:
340
+ - - ">="
341
+ - !ruby/object:Gem::Version
342
+ version: '0'
343
+ type: :runtime
344
+ prerelease: false
345
+ version_requirements: !ruby/object:Gem::Requirement
346
+ requirements:
347
+ - - ">="
348
+ - !ruby/object:Gem::Version
349
+ version: '0'
280
350
  description: ''
281
351
  email:
282
352
  - steve@hodgkiss.me
@@ -289,6 +359,7 @@ files:
289
359
  - ".gitignore"
290
360
  - ".rspec"
291
361
  - ".travis.yml"
362
+ - CODE_OF_CONDUCT.md
292
363
  - Gemfile
293
364
  - LICENSE.txt
294
365
  - README.md