stack_master 2.11.0 → 2.12.0
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 +37 -5
- data/lib/stack_master.rb +1 -0
- data/lib/stack_master/config.rb +1 -0
- data/lib/stack_master/template_compilers/yaml_erb.rb +20 -0
- data/lib/stack_master/version.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02eda4742884cf2aa48568ad0e330b375f7548f12f3077be3167bd782a51868d
|
4
|
+
data.tar.gz: 6f3159eb1b681bda06e4c128d4746f05484a75f91c1a2119d9c02523f912b48f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4670acd897af5bd58083f65187c23c7e7add969ca1d906899ce18065bcc24287d78854bd67baa82a1225dab4277b3392fa03cc3a5ffe49c13cffd3665ca2ea99
|
7
|
+
data.tar.gz: 8ea47d21747c13e9685f0f5cacbb12663c28df649823981c5e1a94e982bc7798bd2b93828be921e7e2e4267e3c3aa3d1f246aeb8f99f0eb91d34d2ce24594263
|
data/README.md
CHANGED
@@ -143,7 +143,8 @@ stacks:
|
|
143
143
|
## Templates
|
144
144
|
|
145
145
|
StackMaster supports CloudFormation templates in plain JSON or YAML. Any `.yml` or `.yaml` file will be processed as
|
146
|
-
YAML, while any `.json` file will be processed as JSON.
|
146
|
+
YAML, while any `.json` file will be processed as JSON. Additionally, YAML files can be pre-processed using ERB and
|
147
|
+
compile-time parameters.
|
147
148
|
|
148
149
|
### Ruby DSLs
|
149
150
|
By default, any template ending with `.rb` will be processed as a [SparkleFormation](https://github.com/sparkleformation/sparkle_formation)
|
@@ -199,12 +200,13 @@ stacks:
|
|
199
200
|
|
200
201
|
### Compile Time Parameters
|
201
202
|
|
202
|
-
Compile time parameters can be
|
203
|
-
|
203
|
+
Compile time parameters can be defined in a stack's parameters file, using the key `compile_time_parameters`. Keys in
|
204
|
+
parameter files are automatically converted to camel case.
|
204
205
|
|
205
|
-
|
206
|
+
As an example:
|
206
207
|
|
207
208
|
```yaml
|
209
|
+
# parameters/some_stack.yml
|
208
210
|
vpc_cidr: 10.0.0.0/16
|
209
211
|
compile_time_parameters:
|
210
212
|
subnet_cidrs:
|
@@ -212,7 +214,37 @@ compile_time_parameters:
|
|
212
214
|
- 10.0.2.0/28
|
213
215
|
```
|
214
216
|
|
215
|
-
|
217
|
+
#### SparkleFormation
|
218
|
+
|
219
|
+
Compile time parameters can be used for [SparkleFormation](http://www.sparkleformation.io) templates. It conforms and
|
220
|
+
allows you to use the [Compile Time Parameters](http://www.sparkleformation.io/docs/sparkle_formation/compile-time-parameters.html) feature.
|
221
|
+
|
222
|
+
#### CloudFormation YAML ERB
|
223
|
+
|
224
|
+
Compile time parameters can be used to pre-process YAML CloudFormation templates. An example template:
|
225
|
+
|
226
|
+
```yaml
|
227
|
+
# templates/some_stack_template.yml.erb
|
228
|
+
Parameters:
|
229
|
+
VpcCidr:
|
230
|
+
Type: String
|
231
|
+
Resources:
|
232
|
+
Vpc:
|
233
|
+
Type: AWS::EC2::VPC
|
234
|
+
Properties:
|
235
|
+
CidrBlock: !Ref VpcCidr
|
236
|
+
# Given the two subnet_cidrs parameters, this creates two resources:
|
237
|
+
# SubnetPrivate0 with a CidrBlock of 10.0.0.0/28, and
|
238
|
+
# SubnetPrivate1 with a CidrBlock of 10.0.2.0/28
|
239
|
+
<% params["SubnetCidrs"].each_with_index do |cidr, index| %>
|
240
|
+
SubnetPrivate<%= index %>:
|
241
|
+
Type: AWS::EC2::Subnet
|
242
|
+
Properties:
|
243
|
+
VpcId: !Ref Vpc
|
244
|
+
AvailabilityZone: ap-southeast-2
|
245
|
+
CidrBlock: <%= cidr %>
|
246
|
+
<% end %>
|
247
|
+
```
|
216
248
|
|
217
249
|
## Parameter Resolvers
|
218
250
|
|
data/lib/stack_master.rb
CHANGED
@@ -52,6 +52,7 @@ module StackMaster
|
|
52
52
|
require 'stack_master/template_compilers/sparkle_formation'
|
53
53
|
require 'stack_master/template_compilers/json'
|
54
54
|
require 'stack_master/template_compilers/yaml'
|
55
|
+
require 'stack_master/template_compilers/yaml_erb'
|
55
56
|
require 'stack_master/template_compilers/cfndsl'
|
56
57
|
|
57
58
|
module Commands
|
data/lib/stack_master/config.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module StackMaster::TemplateCompilers
|
4
|
+
class YamlErb
|
5
|
+
def self.require_dependencies
|
6
|
+
require 'erubis'
|
7
|
+
require 'yaml'
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.compile(template_dir, template, compile_time_parameters, _compiler_options = {})
|
11
|
+
template_file_path = File.join(template_dir, template)
|
12
|
+
template = Erubis::Eruby.new(File.read(template_file_path))
|
13
|
+
template.filename = template_file_path
|
14
|
+
|
15
|
+
template.result(params: compile_time_parameters)
|
16
|
+
end
|
17
|
+
|
18
|
+
StackMaster::TemplateCompiler.register(:yaml_erb, self)
|
19
|
+
end
|
20
|
+
end
|
data/lib/stack_master/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stack_master
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Hodgkiss
|
8
8
|
- Glen Stampoultzis
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-10-
|
12
|
+
date: 2020-10-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -539,6 +539,7 @@ files:
|
|
539
539
|
- lib/stack_master/template_compilers/json.rb
|
540
540
|
- lib/stack_master/template_compilers/sparkle_formation.rb
|
541
541
|
- lib/stack_master/template_compilers/yaml.rb
|
542
|
+
- lib/stack_master/template_compilers/yaml_erb.rb
|
542
543
|
- lib/stack_master/template_utils.rb
|
543
544
|
- lib/stack_master/test_driver/cloud_formation.rb
|
544
545
|
- lib/stack_master/test_driver/s3.rb
|
@@ -556,9 +557,9 @@ licenses:
|
|
556
557
|
metadata:
|
557
558
|
bug_tracker_uri: https://github.com/envato/stack_master/issues
|
558
559
|
changelog_uri: https://github.com/envato/stack_master/blob/master/CHANGELOG.md
|
559
|
-
documentation_uri: https://www.rubydoc.info/gems/stack_master/2.
|
560
|
-
source_code_uri: https://github.com/envato/stack_master/tree/v2.
|
561
|
-
post_install_message:
|
560
|
+
documentation_uri: https://www.rubydoc.info/gems/stack_master/2.12.0
|
561
|
+
source_code_uri: https://github.com/envato/stack_master/tree/v2.12.0
|
562
|
+
post_install_message:
|
562
563
|
rdoc_options: []
|
563
564
|
require_paths:
|
564
565
|
- lib
|
@@ -573,8 +574,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
573
574
|
- !ruby/object:Gem::Version
|
574
575
|
version: '0'
|
575
576
|
requirements: []
|
576
|
-
rubygems_version: 3.
|
577
|
-
signing_key:
|
577
|
+
rubygems_version: 3.1.2
|
578
|
+
signing_key:
|
578
579
|
specification_version: 4
|
579
580
|
summary: StackMaster is a sure-footed way of creating, updating and keeping track
|
580
581
|
of Amazon (AWS) CloudFormation stacks.
|