terrafying-components 2.0.7 → 2.0.8

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: d27dba45000471cefaca8b0bb650380123f1ccdbdf52adc240689e4b260533d3
4
- data.tar.gz: 9bc0cfa749d0060ff0f9213a12baa661e4c6383bc2d256fb4daea225a4c7cfc8
3
+ metadata.gz: bbaa667823250a0ea8cbf2a14e2aade8c9a1662486b6348cc77b96117a803fd4
4
+ data.tar.gz: 76469e319d9769d9fababcdaac1a3e765b799709d27673ae3bd30fb759fbd3ad
5
5
  SHA512:
6
- metadata.gz: 17044b38860633249fd30a06ceff2c7db97cd8570900fa53c813cc2efd8fbd99463b3650f60180b0d181156ca11331394da1db89d8afaaea7321605c4e80b201
7
- data.tar.gz: 0b5f7e9f9c23c4478d2255686de6e8412713b8ef36b5295b2955187be2978064e338c6f910c6220bf3611b3b1e4aa3a34da66ceaeb9b271373f18d2231f963dc
6
+ metadata.gz: e91162e62ce4b562d850e0a770985bb7712d415657b4bd04f0f32c35a209ddefadf1f8f621b08360597d399e943bfcbd47016a9e8335b5e5c3ed10a78bd0195b
7
+ data.tar.gz: acc04e0cf409950d9760fe2918ce3c2fa98a03ade81682f9445a19bec0f3e863bf4d5ef8a79f85bc6e691bd63ccbc53c07a677bf1a3755ffc92b75546d5c3ca3
@@ -163,7 +163,7 @@ module Terrafying
163
163
 
164
164
  def attach_load_balancer(load_balancer)
165
165
  load_balancer.targets.each.with_index do |target, i|
166
- resource :aws_autoscaling_attachment, "#{load_balancer.name}-#{@name}-#{i}",
166
+ resource :aws_autoscaling_attachment, "#{load_balancer.name}-#{@name}-#{i}".gsub(%r{^(\d)}, '_\1'),
167
167
  autoscaling_group_name: @asg,
168
168
  alb_target_group_arn: target.target_group
169
169
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest/bubblebabble'
4
3
  require 'terrafying/components/usable'
5
4
  require 'terrafying/generator'
6
5
  require 'digest'
@@ -36,14 +35,15 @@ module Terrafying
36
35
  rescue StandardError
37
36
  @type = 'application'
38
37
  ident = make_identifier(@type, vpc.name, name)
38
+ name = make_name(@type, vpc.name, name)
39
39
 
40
- lb = aws.lb_by_name(ident)
40
+ lb = aws.lb_by_name(name)
41
41
 
42
- @security_group = aws.security_group_by_tags(loadbalancer_name: ident)
42
+ @security_group = aws.security_group_by_tags(loadbalancer_name: name)
43
43
  end
44
44
 
45
45
  @id = lb.load_balancer_arn
46
- @name = ident
46
+ @name = name
47
47
 
48
48
  target_groups = aws.target_groups_by_lb(@id)
49
49
 
@@ -93,14 +93,14 @@ module Terrafying
93
93
  @type = l4_ports.count == 0 ? 'application' : 'network'
94
94
 
95
95
  ident = make_identifier(@type, vpc.name, name)
96
- @name = ident
96
+ @name = make_name(@type, vpc.name, name)
97
97
 
98
98
  if application?
99
99
  @security_group = resource :aws_security_group, ident,
100
- name: "loadbalancer-#{ident}",
101
- description: "Describe the ingress and egress of the load balancer #{ident}",
100
+ name: "loadbalancer-#{@name}",
101
+ description: "Describe the ingress and egress of the load balancer #{@name}",
102
102
  tags: @tags.merge(
103
- loadbalancer_name: ident
103
+ loadbalancer_name: @name
104
104
  ),
105
105
  vpc_id: vpc.id
106
106
 
@@ -112,7 +112,7 @@ module Terrafying
112
112
  end
113
113
 
114
114
  @id = resource :aws_lb, ident, {
115
- name: ident,
115
+ name: @name,
116
116
  load_balancer_type: type,
117
117
  internal: !options[:public],
118
118
  tags: @tags
@@ -125,8 +125,9 @@ module Terrafying
125
125
 
126
126
  @ports.each do |port|
127
127
  port_ident = "#{ident}-#{port[:downstream_port]}"
128
+ port_name = "#{@name}-#{port[:downstream_port]}"
128
129
 
129
- default_action = port.key?(:action) ? port[:action] : forward_to_tg(port, port_ident, vpc)
130
+ default_action = port.key?(:action) ? port[:action] : forward_to_tg(port, port_ident, port_name, vpc)
130
131
 
131
132
  ssl_options = alb_certs(port, port_ident)
132
133
 
@@ -148,9 +149,9 @@ module Terrafying
148
149
  self
149
150
  end
150
151
 
151
- def forward_to_tg(port, port_ident, vpc)
152
+ def forward_to_tg(port, port_ident, port_name, vpc)
152
153
  target_group = resource :aws_lb_target_group, port_ident, {
153
- name: port_ident,
154
+ name: port_name,
154
155
  port: port[:downstream_port],
155
156
  protocol: port[:type].upcase,
156
157
  vpc_id: vpc.id
@@ -215,17 +216,16 @@ module Terrafying
215
216
  set.autoscale_on_load_balancer(self, target_value: target_value, disable_scale_in: disable_scale_in)
216
217
  end
217
218
 
218
- def make_identifier(type, vpc_name, name)
219
+ def make_name(type, vpc_name, name)
220
+ gen_id = "#{type}-#{tf_safe(vpc_name)}-#{name}"
221
+ return Digest::SHA2.hexdigest(gen_id)[0..24] if @hex_ident || gen_id.size > 26
219
222
 
220
- gen_id = "#{type}-#{vpc_name}-#{name}"
221
- hex = Digest::SHA2.hexdigest(gen_id)[0..24]
222
- if hex[0..0] =~ /[a-z]/
223
- return hex if @hex_ident || gen_id.size > 26
224
- else return Digest::SHA256.bubblebabble(gen_id)[0..15]
225
- end
226
-
227
223
  gen_id[0..31]
228
224
  end
225
+
226
+ def make_identifier(type, vpc_name, name)
227
+ make_name(type, vpc_name, name).gsub(%r{^(\d)}, '_\1')
228
+ end
229
229
  end
230
230
  end
231
231
  end
@@ -120,7 +120,7 @@ module Terrafying
120
120
  "logs:CreateLogStream"
121
121
  ],
122
122
  Resource: [
123
- @log_group["arn"],
123
+ "#{@log_group["arn"]}:*",
124
124
  ]
125
125
  },
126
126
  {
@@ -130,7 +130,7 @@ module Terrafying
130
130
  "logs:PutLogEvents"
131
131
  ],
132
132
  Resource: [
133
- @log_group["arn"],
133
+ "#{@log_group["arn"]}:*",
134
134
  ]
135
135
  }
136
136
  ]
@@ -152,7 +152,7 @@ module Terrafying
152
152
  enable_log_file_validation: true,
153
153
  kms_key_id: store.key_arn,
154
154
 
155
- cloud_watch_logs_group_arn: @log_group["arn"],
155
+ cloud_watch_logs_group_arn: "#{@log_group["arn"]}:*",
156
156
  cloud_watch_logs_role_arn: log_role["arn"],
157
157
 
158
158
  event_selector: [
@@ -161,7 +161,7 @@ module Terrafying
161
161
 
162
162
  def attach_load_balancer(load_balancer)
163
163
  @instances.product(load_balancer.targets).each.with_index do |(instance, target), i|
164
- resource :aws_lb_target_group_attachment, "#{load_balancer.name}-#{@name}-#{i}",
164
+ resource :aws_lb_target_group_attachment, "#{load_balancer.name}-#{@name}-#{i}".gsub(%r{^(\d)}, '_\1'),
165
165
  target_group_arn: target.target_group,
166
166
  target_id: instance.id
167
167
  end
@@ -16,7 +16,7 @@ module Terrafying
16
16
  end
17
17
 
18
18
  def path_mtu_setup!
19
- resource :aws_security_group_rule, "#{@name}-path-mtu",
19
+ resource :aws_security_group_rule, "#{@name}-path-mtu".gsub(%r{^(\d)}, '_\1'),
20
20
  security_group_id: egress_security_group,
21
21
  type: 'ingress',
22
22
  protocol: 1, # icmp
@@ -42,7 +42,7 @@ module Terrafying
42
42
  cidr_ident = cidr.tr('./', '-')
43
43
 
44
44
  @ports.select(&block).map do |port|
45
- resource :aws_security_group_rule, "#{@name}-to-#{cidr_ident}-#{port[:name]}",
45
+ resource :aws_security_group_rule, "#{@name}-to-#{cidr_ident}-#{port[:name]}".gsub(%r{^(\d)}, '_\1'),
46
46
  security_group_id: ingress_security_group,
47
47
  type: 'ingress',
48
48
  from_port: from_port(port[:upstream_port]),
@@ -92,7 +92,7 @@ module Terrafying
92
92
  def used_by(*other_resources, &block)
93
93
  other_resources.map do |other_resource|
94
94
  @ports.select(&block).map.map do |port|
95
- resource :aws_security_group_rule, "#{@name}-to-#{other_resource.name}-#{port[:name]}",
95
+ resource :aws_security_group_rule, "#{@name}-to-#{other_resource.name}-#{port[:name]}".gsub(%r{^(\d)}, '_\1'),
96
96
  security_group_id: ingress_security_group,
97
97
  type: 'ingress',
98
98
  from_port: from_port(port[:upstream_port]),
@@ -100,7 +100,7 @@ module Terrafying
100
100
  protocol: port[:type] == 'udp' ? 'udp' : 'tcp',
101
101
  source_security_group_id: other_resource.egress_security_group
102
102
 
103
- resource :aws_security_group_rule, "#{other_resource.name}-to-#{@name}-#{port[:name]}",
103
+ resource :aws_security_group_rule, "#{other_resource.name}-to-#{@name}-#{port[:name]}".gsub(%r{^(\d)}, '_\1'),
104
104
  security_group_id: other_resource.egress_security_group,
105
105
  type: 'egress',
106
106
  from_port: from_port(port[:downstream_port]),
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Terrafying
4
4
  module Components
5
- VERSION = '2.0.7'
5
+ VERSION = '2.0.8'
6
6
  end
7
7
  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: 2.0.7
4
+ version: 2.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - uSwitch Limited
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-08 00:00:00.000000000 Z
11
+ date: 2020-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake