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 +4 -4
- data/lib/terrafying/components/dynamicset.rb +1 -1
- data/lib/terrafying/components/loadbalancer.rb +20 -20
- data/lib/terrafying/components/security/trail.rb +3 -3
- data/lib/terrafying/components/staticset.rb +1 -1
- data/lib/terrafying/components/usable.rb +4 -4
- data/lib/terrafying/components/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbaa667823250a0ea8cbf2a14e2aade8c9a1662486b6348cc77b96117a803fd4
|
4
|
+
data.tar.gz: 76469e319d9769d9fababcdaac1a3e765b799709d27673ae3bd30fb759fbd3ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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(
|
40
|
+
lb = aws.lb_by_name(name)
|
41
41
|
|
42
|
-
@security_group = aws.security_group_by_tags(loadbalancer_name:
|
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 =
|
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 =
|
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-#{
|
101
|
-
description: "Describe the ingress and egress of the load balancer #{
|
100
|
+
name: "loadbalancer-#{@name}",
|
101
|
+
description: "Describe the ingress and egress of the load balancer #{@name}",
|
102
102
|
tags: @tags.merge(
|
103
|
-
loadbalancer_name:
|
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:
|
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:
|
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
|
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]),
|
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.
|
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-
|
11
|
+
date: 2020-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|