cfhighlander 0.10.1 → 0.10.2.alpha.1572474493
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/lib/cfhighlander.dsl.subcomponent.rb +5 -2
- data/lib/cfhighlander.dsl.template.rb +3 -1
- data/lib/cfhighlander.version.rb +1 -1
- data/templates/cfndsl.component.template.erb +3 -0
- metadata +12 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4e203a4cdcd356716e9aa8542e765fd9d22368c5b82169c02520f64d3bcf674
|
4
|
+
data.tar.gz: 76141d13c247900fe432fd2a173f7f9bec409f011e71b52ff8db9ff432a2f3ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54d9196dd9f058c910499cbb6aaecc59b8696ecd55d422bc4e2221b21c28a9927e574e7a9b2d3167d3c36c090b9c9ccf9073fe341725ea6e667c31ed88ec7bb6
|
7
|
+
data.tar.gz: 0b10bacd6529d0f706492468e01f252fce39bdf868130035394b2a3455f1bcfd1a4af7cff8ec3ce1de37f12623603a5b936b32cc7cf0966e52fad7b19d619df9
|
data/README.md
CHANGED
@@ -651,6 +651,19 @@ end
|
|
651
651
|
Will include any cfndsl libraries present and exported in vpc template
|
652
652
|
so extension methods can be consumed within cfndsl template.
|
653
653
|
|
654
|
+
### Component dependson
|
655
|
+
|
656
|
+
If you require dependencies between nest stacks, this can be defined in the component by using the `dependson` attribute with the value of the depend component names. This will take an array of component names or a string with a single component name. This adds the cloudformation `DependsOn` property to the stack resource in the master template.
|
657
|
+
|
658
|
+
```ruby
|
659
|
+
CfhighlanderTemplate do
|
660
|
+
Name 'test'
|
661
|
+
Component name: 'vpc', template: 'vpc'
|
662
|
+
Component name: 'bastion', template: 'bastion'
|
663
|
+
Component name: 'ecs', template: 'ecs', dependson: ['vpc','bastion']
|
664
|
+
end
|
665
|
+
```
|
666
|
+
|
654
667
|
### LambdaFunctions
|
655
668
|
|
656
669
|
|
@@ -34,7 +34,8 @@ module Cfhighlander
|
|
34
34
|
:name,
|
35
35
|
:template,
|
36
36
|
:template_version,
|
37
|
-
:inlined
|
37
|
+
:inlined,
|
38
|
+
:dependson
|
38
39
|
|
39
40
|
def initialize(parent,
|
40
41
|
name,
|
@@ -45,6 +46,7 @@ module Cfhighlander
|
|
45
46
|
export_config = {},
|
46
47
|
conditional = false,
|
47
48
|
enabled = true,
|
49
|
+
dependson = [],
|
48
50
|
inline = false,
|
49
51
|
distribution_format = 'yaml')
|
50
52
|
|
@@ -53,8 +55,9 @@ module Cfhighlander
|
|
53
55
|
@export_config = export_config
|
54
56
|
@component_sources = component_sources
|
55
57
|
@conditional = conditional
|
58
|
+
@dependson = [*dependson]
|
56
59
|
@inlined = inline
|
57
|
-
|
60
|
+
|
58
61
|
template_name = template
|
59
62
|
template_version = 'latest'
|
60
63
|
if template.include?('@') and not (template.start_with? 'git')
|
@@ -118,6 +118,7 @@ module Cfhighlander
|
|
118
118
|
export_config: {},
|
119
119
|
conditional: false,
|
120
120
|
enabled: true,
|
121
|
+
dependson: [],
|
121
122
|
render: Cfhighlander::Model::Component::Substack,
|
122
123
|
&block)
|
123
124
|
puts "INFO: Requested subcomponent #{name} with template #{template}"
|
@@ -129,7 +130,7 @@ module Cfhighlander
|
|
129
130
|
end
|
130
131
|
|
131
132
|
name = template if name.nil?
|
132
|
-
|
133
|
+
|
133
134
|
# load component
|
134
135
|
component = Cfhighlander::Dsl::Subcomponent.new(self,
|
135
136
|
name,
|
@@ -140,6 +141,7 @@ module Cfhighlander
|
|
140
141
|
export_config,
|
141
142
|
conditional,
|
142
143
|
enabled,
|
144
|
+
dependson,
|
143
145
|
render == Cfhighlander::Model::Component::Inline
|
144
146
|
)
|
145
147
|
# component.instance_eval(&block) unless block.nil?
|
data/lib/cfhighlander.version.rb
CHANGED
@@ -11,6 +11,9 @@ CloudFormation do
|
|
11
11
|
<% for @subcomponent in dsl.subcomponents %>
|
12
12
|
CloudFormation_Stack('<%= @subcomponent.cfn_name %>') do
|
13
13
|
TemplateURL '<%= @subcomponent.distribution_url %>'
|
14
|
+
<%- if !@subcomponent.dependson.empty? %>
|
15
|
+
DependsOn <%= @subcomponent.dependson %>
|
16
|
+
<%- end %>
|
14
17
|
Parameters ({
|
15
18
|
<% for @param in @subcomponent.parameters %><%="\t"%>'<%=@param.name %>' => <%= @param.cfndsl_value %>,
|
16
19
|
<% end %>})
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfhighlander
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.2.alpha.1572474493
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikola Tosic
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2019-
|
13
|
+
date: 2019-10-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: highline
|
@@ -56,42 +56,36 @@ dependencies:
|
|
56
56
|
name: cfndsl
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.17'
|
62
|
-
- - "<"
|
59
|
+
- - '='
|
63
60
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
61
|
+
version: 0.17.2
|
65
62
|
type: :runtime
|
66
63
|
prerelease: false
|
67
64
|
version_requirements: !ruby/object:Gem::Requirement
|
68
65
|
requirements:
|
69
|
-
- -
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '0.17'
|
72
|
-
- - "<"
|
66
|
+
- - '='
|
73
67
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
68
|
+
version: 0.17.2
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
70
|
name: rubyzip
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
73
|
- - ">="
|
80
74
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
75
|
+
version: 2.0.0
|
82
76
|
- - "<"
|
83
77
|
- !ruby/object:Gem::Version
|
84
|
-
version: '
|
78
|
+
version: '3'
|
85
79
|
type: :runtime
|
86
80
|
prerelease: false
|
87
81
|
version_requirements: !ruby/object:Gem::Requirement
|
88
82
|
requirements:
|
89
83
|
- - ">="
|
90
84
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
85
|
+
version: 2.0.0
|
92
86
|
- - "<"
|
93
87
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
88
|
+
version: '3'
|
95
89
|
- !ruby/object:Gem::Dependency
|
96
90
|
name: aws-sdk-core
|
97
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,26 +186,6 @@ dependencies:
|
|
192
186
|
- - "<"
|
193
187
|
- !ruby/object:Gem::Version
|
194
188
|
version: '2'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: netaddr
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - "~>"
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '1.5'
|
202
|
-
- - ">="
|
203
|
-
- !ruby/object:Gem::Version
|
204
|
-
version: 1.5.1
|
205
|
-
type: :runtime
|
206
|
-
prerelease: false
|
207
|
-
version_requirements: !ruby/object:Gem::Requirement
|
208
|
-
requirements:
|
209
|
-
- - "~>"
|
210
|
-
- !ruby/object:Gem::Version
|
211
|
-
version: '1.5'
|
212
|
-
- - ">="
|
213
|
-
- !ruby/object:Gem::Version
|
214
|
-
version: 1.5.1
|
215
189
|
- !ruby/object:Gem::Dependency
|
216
190
|
name: duplicate
|
217
191
|
requirement: !ruby/object:Gem::Requirement
|
@@ -297,9 +271,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
297
271
|
version: '0'
|
298
272
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
299
273
|
requirements:
|
300
|
-
- - "
|
274
|
+
- - ">"
|
301
275
|
- !ruby/object:Gem::Version
|
302
|
-
version:
|
276
|
+
version: 1.3.1
|
303
277
|
requirements: []
|
304
278
|
rubyforge_project:
|
305
279
|
rubygems_version: 2.7.7
|