cfhighlander 0.12.0.alpha.1586689671 → 0.12.2.alpha.1603234673
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 +23 -3
 - data/lib/cfhighlander.dsl.subcomponent.rb +14 -9
 - data/lib/cfhighlander.dsl.template.rb +5 -1
 - data/lib/cfhighlander.version.rb +1 -1
 - data/templates/cfndsl.component.template.erb +4 -1
 - metadata +3 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: d536f8e52032ab314218ebc97602337ce9641674dc922162e5edd0bf85fc1c45
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 6c8b11170fd53dd05101febff9805875bd09ef7ef978d045231d42d036179330
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 262fa6c520fbf222e38a3a6d6213fd5999774d06eb6b9dbb5cba02a353338a3638ccecf9afdb5abcb77c7d4f99dca2b3d732d893aea65d39dbd2df36d89ff404
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 391b8f33fe0da950823abb6286116612c900a62cc273e9114bb2915cad42764b74459b8efd623a91035ce2531c9d139de96c750e471216899c6b3a49073d978c
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -448,7 +448,9 @@ end 
     | 
|
| 
       448 
448 
     | 
    
         | 
| 
       449 
449 
     | 
    
         
             
            **Conditional components** - If you want to add top level paramater as feature toggle for one of the inner
         
     | 
| 
       450 
450 
     | 
    
         
             
            components, just mark it as conditional, using `conditional:` named parameter. In addition to this, default
         
     | 
| 
       451 
     | 
    
         
            -
            value for feature toggle can be supplied using `enabled:` named parameter
         
     | 
| 
      
 451 
     | 
    
         
            +
            value for feature toggle can be supplied using `enabled:` named parameter. Autogenerated parameter will be named
         
     | 
| 
      
 452 
     | 
    
         
            +
            `Enable$COMPONENTNAME`, defaulting to `[true,false]` as set of allowed values. Autogenerated condition will 
         
     | 
| 
      
 453 
     | 
    
         
            +
            be named same as parameter, and checking if the parameter value equlas `true` 
         
     | 
| 
       452 
454 
     | 
    
         | 
| 
       453 
455 
     | 
    
         | 
| 
       454 
456 
     | 
    
         
             
            ```ruby
         
     | 
| 
         @@ -469,16 +471,23 @@ end 
     | 
|
| 
       469 
471 
     | 
    
         | 
| 
       470 
472 
     | 
    
         
             
            ```
         
     | 
| 
       471 
473 
     | 
    
         | 
| 
       472 
     | 
    
         
            -
            ** 
     | 
| 
      
 474 
     | 
    
         
            +
            **Override default behaviour** - If you have more than 1 stack you want to control with a single parameter, or you want to change
         
     | 
| 
      
 475 
     | 
    
         
            +
            parameter name, you can supply the `condition:` option with a string value on each component you want to control with the condition.
         
     | 
| 
      
 476 
     | 
    
         
            +
            Autogenerated condition can be overriden as well, by defining your own condition with the same name on the highlander 
         
     | 
| 
      
 477 
     | 
    
         
            +
            template, as in example below. 
         
     | 
| 
      
 478 
     | 
    
         
            +
             
     | 
| 
       473 
479 
     | 
    
         | 
| 
       474 
480 
     | 
    
         
             
            ```ruby
         
     | 
| 
       475 
481 
     | 
    
         
             
            CfhighlanderTemplate do
         
     | 
| 
       476 
482 
     | 
    
         | 
| 
      
 483 
     | 
    
         
            +
              # [Optional - Define your own condition, instead of default true/false one]
         
     | 
| 
      
 484 
     | 
    
         
            +
              Condition 'EnableDevelopmentResources', FnEquals(Ref(:EnvironmentName),'dev')
         
     | 
| 
      
 485 
     | 
    
         
            +
             
     | 
| 
       477 
486 
     | 
    
         
             
              # Components always required
         
     | 
| 
       478 
487 
     | 
    
         
             
              Component 'vpc'
         
     | 
| 
       479 
488 
     | 
    
         
             
              Component name: 'ecs', template: 'ecs'
         
     | 
| 
       480 
489 
     | 
    
         | 
| 
       481 
     | 
    
         
            -
              # Components only required in development environments
         
     | 
| 
      
 490 
     | 
    
         
            +
              # Components only required in development environments with common condition name
         
     | 
| 
       482 
491 
     | 
    
         
             
              Component name: 'linux-bastion', template: 'bastion', conditional: true, condition: 'EnableDevelopmentResources', enabled: false
         
     | 
| 
       483 
492 
     | 
    
         
             
              Component name: 'windows-bastion', template: 'bastion', conditional: true, condition: 'EnableDevelopmentResources', enabled: false
         
     | 
| 
       484 
493 
     | 
    
         | 
| 
         @@ -486,6 +495,17 @@ CfhighlanderTemplate do 
     | 
|
| 
       486 
495 
     | 
    
         
             
            end
         
     | 
| 
       487 
496 
     | 
    
         
             
            ```
         
     | 
| 
       488 
497 
     | 
    
         | 
| 
      
 498 
     | 
    
         
            +
            **Nested Stack Timeout** - If you ant set a timeout on your nested cloudformation stack you can set this with the `timeout: int` option on the component.
         
     | 
| 
      
 499 
     | 
    
         
            +
             
     | 
| 
      
 500 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 501 
     | 
    
         
            +
            CfhighlanderTemplate do
         
     | 
| 
      
 502 
     | 
    
         
            +
              
         
     | 
| 
      
 503 
     | 
    
         
            +
              # sets a timeout for 10 minutes on the nested VPC stack, if the stack is not created or updated within 10 minutes the stack rolls back.
         
     | 
| 
      
 504 
     | 
    
         
            +
              Component name: 'vpc', template: 'vpc-v2', timeout: 10
         
     | 
| 
      
 505 
     | 
    
         
            +
              
         
     | 
| 
      
 506 
     | 
    
         
            +
            end
         
     | 
| 
      
 507 
     | 
    
         
            +
            ```
         
     | 
| 
      
 508 
     | 
    
         
            +
             
     | 
| 
       489 
509 
     | 
    
         
             
            **Convert config value to parameter** - In case of inner component having configuration value
         
     | 
| 
       490 
510 
     | 
    
         
             
            you wish to expose as runtime parameter, it is possible to do so with limitation that configuration
         
     | 
| 
       491 
511 
     | 
    
         
             
            value is only used in *resource declarations*, as property value. If configuration value is being used
         
     | 
| 
         @@ -36,7 +36,8 @@ module Cfhighlander 
     | 
|
| 
       36 
36 
     | 
    
         
             
                      :template_version,
         
     | 
| 
       37 
37 
     | 
    
         
             
                      :inlined,
         
     | 
| 
       38 
38 
     | 
    
         
             
                      :dependson,
         
     | 
| 
       39 
     | 
    
         
            -
                      :condition
         
     | 
| 
      
 39 
     | 
    
         
            +
                      :condition,
         
     | 
| 
      
 40 
     | 
    
         
            +
                      :template_timeout
         
     | 
| 
       40 
41 
     | 
    
         | 
| 
       41 
42 
     | 
    
         
             
                  def initialize(parent,
         
     | 
| 
       42 
43 
     | 
    
         
             
                      name,
         
     | 
| 
         @@ -49,6 +50,7 @@ module Cfhighlander 
     | 
|
| 
       49 
50 
     | 
    
         
             
                      condition = nil,
         
     | 
| 
       50 
51 
     | 
    
         
             
                      enabled = true,
         
     | 
| 
       51 
52 
     | 
    
         
             
                      dependson = [],
         
     | 
| 
      
 53 
     | 
    
         
            +
                      template_timeout = nil,
         
     | 
| 
       52 
54 
     | 
    
         
             
                      inline = false,
         
     | 
| 
       53 
55 
     | 
    
         
             
                      distribution_format = 'yaml')
         
     | 
| 
       54 
56 
     | 
    
         | 
| 
         @@ -59,6 +61,7 @@ module Cfhighlander 
     | 
|
| 
       59 
61 
     | 
    
         
             
                    @conditional = conditional
         
     | 
| 
       60 
62 
     | 
    
         
             
                    @condition = condition
         
     | 
| 
       61 
63 
     | 
    
         
             
                    @dependson = [*dependson]
         
     | 
| 
      
 64 
     | 
    
         
            +
                    @template_timeout = template_timeout
         
     | 
| 
       62 
65 
     | 
    
         
             
                    @inlined = inline
         
     | 
| 
       63 
66 
     | 
    
         | 
| 
       64 
67 
     | 
    
         
             
                    template_name = template
         
     | 
| 
         @@ -95,12 +98,15 @@ module Cfhighlander 
     | 
|
| 
       95 
98 
     | 
    
         
             
                    if @conditional
         
     | 
| 
       96 
99 
     | 
    
         
             
                      condition = "Enable#{@cfn_name}" if @condition.nil?
         
     | 
| 
       97 
100 
     | 
    
         
             
                      @condition = condition
         
     | 
| 
       98 
     | 
    
         
            -
                      @parent. 
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
                         
     | 
| 
      
 101 
     | 
    
         
            +
                      parent_condition_defined = @parent.conditions.find {|c| c.name == @condition}
         
     | 
| 
      
 102 
     | 
    
         
            +
                      unless parent_condition_defined
         
     | 
| 
      
 103 
     | 
    
         
            +
                        @parent.Condition(condition, CfnDsl::Fn.new('Equals', [
         
     | 
| 
      
 104 
     | 
    
         
            +
                            CfnDsl::RefDefinition.new(condition),
         
     | 
| 
      
 105 
     | 
    
         
            +
                            'true'
         
     | 
| 
      
 106 
     | 
    
         
            +
                        ]).to_json)
         
     | 
| 
      
 107 
     | 
    
         
            +
                        @parent.Parameters do
         
     | 
| 
      
 108 
     | 
    
         
            +
                          ComponentParam condition, enabled.to_s, allowedValues: %w(true false)
         
     | 
| 
      
 109 
     | 
    
         
            +
                        end
         
     | 
| 
       104 
110 
     | 
    
         
             
                      end
         
     | 
| 
       105 
111 
     | 
    
         
             
                    end
         
     | 
| 
       106 
112 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -151,13 +157,12 @@ module Cfhighlander 
     | 
|
| 
       151 
157 
     | 
    
         
             
                      param_ovr[:maxValue] = maxValue unless maxValue.nil?
         
     | 
| 
       152 
158 
     | 
    
         
             
                      param_ovr[:minLength] = minLength unless minLength.nil?
         
     | 
| 
       153 
159 
     | 
    
         
             
                      param_ovr[:minValue] = minValue unless minValue.nil?
         
     | 
| 
       154 
     | 
    
         
            -
                      
         
     | 
| 
       155 
160 
     | 
    
         
             
                      @component_loaded.highlander_dsl.Parameters do
         
     | 
| 
       156 
161 
     | 
    
         
             
                        ComponentParam name, value, param_ovr
         
     | 
| 
       157 
162 
     | 
    
         
             
                      end
         
     | 
| 
       158 
163 
     | 
    
         
             
                    else
         
     | 
| 
       159 
164 
     | 
    
         
             
                      parameter.default_value = defaultValue unless defaultValue.nil?
         
     | 
| 
       160 
     | 
    
         
            -
                      parameter.type unless type.nil?
         
     | 
| 
      
 165 
     | 
    
         
            +
                      parameter.type = type unless type.nil?
         
     | 
| 
       161 
166 
     | 
    
         
             
                      parameter.no_echo = noEcho unless noEcho.nil?
         
     | 
| 
       162 
167 
     | 
    
         
             
                      parameter.allowed_values = allowedValues unless allowedValues.nil?
         
     | 
| 
       163 
168 
     | 
    
         
             
                      parameter.allowed_pattern = allowedPattern unless allowedPattern.nil?
         
     | 
| 
         @@ -37,7 +37,8 @@ module Cfhighlander 
     | 
|
| 
       37 
37 
     | 
    
         
             
                      :lambda_functions_keys,
         
     | 
| 
       38 
38 
     | 
    
         
             
                      :description,
         
     | 
| 
       39 
39 
     | 
    
         
             
                      :dependson_components,
         
     | 
| 
       40 
     | 
    
         
            -
                      :template_dir
         
     | 
| 
      
 40 
     | 
    
         
            +
                      :template_dir,
         
     | 
| 
      
 41 
     | 
    
         
            +
                      :template_timeout
         
     | 
| 
       41 
42 
     | 
    
         | 
| 
       42 
43 
     | 
    
         
             
                  attr_reader :conditions,
         
     | 
| 
       43 
44 
     | 
    
         
             
                      :subcomponents,
         
     | 
| 
         @@ -57,6 +58,7 @@ module Cfhighlander 
     | 
|
| 
       57 
58 
     | 
    
         
             
                    @lambda_functions_keys = []
         
     | 
| 
       58 
59 
     | 
    
         
             
                    @dependson_components_templates = []
         
     | 
| 
       59 
60 
     | 
    
         
             
                    @dependson_components = []
         
     | 
| 
      
 61 
     | 
    
         
            +
                    @template_timeout = nil
         
     | 
| 
       60 
62 
     | 
    
         
             
                    @conditions = []
         
     | 
| 
       61 
63 
     | 
    
         
             
                    @config_overrides = {}
         
     | 
| 
       62 
64 
     | 
    
         
             
                    @extended_template = nil
         
     | 
| 
         @@ -127,6 +129,7 @@ module Cfhighlander 
     | 
|
| 
       127 
129 
     | 
    
         
             
                      condition: nil,
         
     | 
| 
       128 
130 
     | 
    
         
             
                      enabled: true,
         
     | 
| 
       129 
131 
     | 
    
         
             
                      dependson: [],
         
     | 
| 
      
 132 
     | 
    
         
            +
                      timeout: nil,
         
     | 
| 
       130 
133 
     | 
    
         
             
                      render: Cfhighlander::Model::Component::Substack,
         
     | 
| 
       131 
134 
     | 
    
         
             
                      &block)
         
     | 
| 
       132 
135 
     | 
    
         
             
                    puts "INFO: Requested subcomponent #{name} with template #{template}"
         
     | 
| 
         @@ -151,6 +154,7 @@ module Cfhighlander 
     | 
|
| 
       151 
154 
     | 
    
         
             
                        condition,
         
     | 
| 
       152 
155 
     | 
    
         
             
                        enabled,
         
     | 
| 
       153 
156 
     | 
    
         
             
                        dependson,
         
     | 
| 
      
 157 
     | 
    
         
            +
                        timeout,
         
     | 
| 
       154 
158 
     | 
    
         
             
                        render == Cfhighlander::Model::Component::Inline
         
     | 
| 
       155 
159 
     | 
    
         
             
                    )
         
     | 
| 
       156 
160 
     | 
    
         
             
                    # component.instance_eval(&block) unless block.nil?
         
     | 
    
        data/lib/cfhighlander.version.rb
    CHANGED
    
    
| 
         @@ -17,12 +17,15 @@ CloudFormation do 
     | 
|
| 
       17 
17 
     | 
    
         
             
                CloudFormation_Stack('<%= @subcomponent.cfn_name %>') do
         
     | 
| 
       18 
18 
     | 
    
         
             
                    TemplateURL '<%= @subcomponent.distribution_url %>'
         
     | 
| 
       19 
19 
     | 
    
         
             
                    <%- if !@subcomponent.dependson.empty? %>
         
     | 
| 
       20 
     | 
    
         
            -
                    DependsOn <%= 
     | 
| 
      
 20 
     | 
    
         
            +
                    DependsOn <%=  @subcomponent.dependson %>
         
     | 
| 
       21 
21 
     | 
    
         
             
                    <%- end %>
         
     | 
| 
       22 
22 
     | 
    
         
             
                    Parameters ({
         
     | 
| 
       23 
23 
     | 
    
         
             
                    <% for @param in @subcomponent.parameters %><%="\t"%>'<%=@param.name %>' => <%= @param.cfndsl_value %>,
         
     | 
| 
       24 
24 
     | 
    
         
             
                    <% end %>})
         
     | 
| 
       25 
25 
     | 
    
         
             
                    <% if @subcomponent.conditional %>Condition '<%= @subcomponent.condition %>' <% end %>
         
     | 
| 
      
 26 
     | 
    
         
            +
                    <%- if !@subcomponent.template_timeout.nil? %>
         
     | 
| 
      
 27 
     | 
    
         
            +
                    TimeoutInMinutes <%=  @subcomponent.template_timeout.to_i %>
         
     | 
| 
      
 28 
     | 
    
         
            +
                    <%- end %>
         
     | 
| 
       26 
29 
     | 
    
         
             
                end
         
     | 
| 
       27 
30 
     | 
    
         
             
            <% end %>
         
     | 
| 
       28 
31 
     | 
    
         | 
    
        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.12. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.12.2.alpha.1603234673
         
     | 
| 
       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: 2020- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2020-10-20 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: highline
         
     | 
| 
         @@ -281,8 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       281 
281 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       282 
282 
     | 
    
         
             
                  version: 1.3.1
         
     | 
| 
       283 
283 
     | 
    
         
             
            requirements: []
         
     | 
| 
       284 
     | 
    
         
            -
             
     | 
| 
       285 
     | 
    
         
            -
            rubygems_version: 2.7.7
         
     | 
| 
      
 284 
     | 
    
         
            +
            rubygems_version: 3.0.8
         
     | 
| 
       286 
285 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       287 
286 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       288 
287 
     | 
    
         
             
            summary: DSL on top of cfndsl. Manage libraries of cloudformation components
         
     |