terrafying-components 1.9.1 → 1.9.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e17ae473ab3bb13ee3c9e59a9a21ca52e7fa475ac82fa10dfba999df184a936c
4
- data.tar.gz: 94e1251f7f41160c1585ac0a90557df41a43ee51180372893158a72da16d9084
3
+ metadata.gz: f6c3a26183611276c66ff87fca478593f4ea518aadc777c01cdc82ad2cada834
4
+ data.tar.gz: 18febee5dc3610671991ff9cf99e12790565aee35deb731e93e850f718f2a07e
5
5
  SHA512:
6
- metadata.gz: 65061c32d01671493933b6186ecaf598ad3d259eed7e21438e61080c7af9a30537f3eff6f4f3f10f1502aa4a54b9726de78056d67078f138f154b93ae17c0a07
7
- data.tar.gz: f273e1ce10eb6e6b0b45d524b83ff640f6c1f00d8425ecf22f2dd20d1ee8e3af91854ca1925cc2bfe099ad17129d7d99a0ae5db8326dfbda2285b80bc230ca17
6
+ metadata.gz: adc75d83583d4075799ff76449b0e947131540a6b8c630930984a263809d54a9764b6cc03eb16d3940357d01441cadcdf5c71529fd4659e449c400a65daabdda
7
+ data.tar.gz: dc26c3124a592de98ea80571d1b9a378a6a6f8c50c15fbf14911b2886511fa52f8b50b9ac66a0edf9bc25c87165b51205d3659c61a6a629aeca70895fe0ac561
@@ -132,10 +132,10 @@ module Terrafying
132
132
  end
133
133
 
134
134
  def attach_load_balancer(load_balancer)
135
- load_balancer.target_groups.each.with_index { |target_group, i|
135
+ load_balancer.targets.each.with_index { |target, i|
136
136
  resource :aws_autoscaling_attachment, "#{load_balancer.name}-#{@name}-#{i}", {
137
137
  autoscaling_group_name: @asg,
138
- alb_target_group_arn: target_group
138
+ alb_target_group_arn: target.target_group
139
139
  }
140
140
  }
141
141
 
@@ -143,10 +143,11 @@ module Terrafying
143
143
  end
144
144
 
145
145
  def autoscale_on_load_balancer(load_balancer, target_value:, disable_scale_in:)
146
- load_balancer.target_groups.each.with_index { |target_group, i|
146
+ load_balancer.targets.each.with_index do |target, i|
147
147
  policy_name = "#{load_balancer.name}-#{@name}-#{i}"
148
148
  lb_arn = load_balancer.id.to_s.gsub(/id/, 'arn_suffix')
149
- tg_arn = target_group.to_s.gsub(/id/, 'arn_suffix')
149
+ tg_arn = target.target_group.to_s.gsub(/id/, 'arn_suffix')
150
+ listener = target.listener.to_s.gsub(/\.id/, '')
150
151
 
151
152
  resource :aws_autoscaling_policy, policy_name, {
152
153
  name: policy_name,
@@ -160,9 +161,10 @@ module Terrafying
160
161
  },
161
162
  target_value: target_value,
162
163
  disable_scale_in: disable_scale_in
163
- }
164
+ },
165
+ depends_on: [listener]
164
166
  }
165
- }
167
+ end
166
168
  end
167
169
 
168
170
  def generate_template(health_check, instances, launch_config, subnets,tags, rolling_update)
@@ -5,12 +5,12 @@ require 'terrafying/generator'
5
5
  require_relative './ports'
6
6
 
7
7
  module Terrafying
8
-
9
8
  module Components
10
-
11
9
  class LoadBalancer < Terrafying::Context
12
10
 
13
- attr_reader :id, :name, :type, :security_group, :ports, :target_groups, :alias_config
11
+ attr_reader :id, :name, :type, :security_group, :ports, :targets, :alias_config
12
+
13
+ Struct.new('Target', :target_group, :listener, keyword_init: true)
14
14
 
15
15
  include Usable
16
16
 
@@ -46,7 +46,13 @@ module Terrafying
46
46
 
47
47
  target_groups = aws.target_groups_by_lb(@id)
48
48
 
49
- @target_groups = target_groups.map(&:target_group_arn)
49
+ @targets = target_groups.map { |tg|
50
+ Struct::Target.new(
51
+ target_group: tg.target_group_arn,
52
+ listener: nil
53
+ )
54
+ }
55
+
50
56
  @ports = enrich_ports(target_groups.map(&:port).sort.uniq)
51
57
 
52
58
  @alias_config = {
@@ -108,7 +114,7 @@ module Terrafying
108
114
  }.merge(subnets_for(options[:subnets]))
109
115
  .merge(application? ? { security_groups: [@security_group] } : {})
110
116
 
111
- @target_groups = []
117
+ @targets = []
112
118
 
113
119
  @ports.each { |port|
114
120
  port_ident = "#{ident}-#{port[:downstream_port]}"
@@ -122,7 +128,7 @@ module Terrafying
122
128
 
123
129
  ssl_options = alb_certs(port, port_ident)
124
130
 
125
- resource :aws_lb_listener, port_ident, {
131
+ listener = resource :aws_lb_listener, port_ident, {
126
132
  load_balancer_arn: @id,
127
133
  port: port[:upstream_port],
128
134
  protocol: port[:type].upcase,
@@ -132,7 +138,10 @@ module Terrafying
132
138
  },
133
139
  }.merge(ssl_options)
134
140
 
135
- @target_groups << target_group
141
+ @targets << Struct::Target.new(
142
+ target_group: target_group,
143
+ listener: listener
144
+ )
136
145
  }
137
146
 
138
147
  @alias_config = {
@@ -136,9 +136,9 @@ module Terrafying
136
136
  end
137
137
 
138
138
  def attach_load_balancer(load_balancer)
139
- @instances.product(load_balancer.target_groups).each.with_index { |(instance, target_group), i|
139
+ @instances.product(load_balancer.targets).each.with_index { |(instance, target), i|
140
140
  resource :aws_lb_target_group_attachment, "#{load_balancer.name}-#{@name}-#{i}", {
141
- target_group_arn: target_group,
141
+ target_group_arn: target.target_group,
142
142
  target_id: instance.id,
143
143
  }
144
144
  }
@@ -1,5 +1,5 @@
1
1
  module Terrafying
2
2
  module Components
3
- VERSION = "1.9.1"
3
+ VERSION = "1.9.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terrafying-components
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.1
4
+ version: 1.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - uSwitch Limited
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-13 00:00:00.000000000 Z
11
+ date: 2018-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler