terrafying-components 1.7.3 → 1.7.4

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: 4a9bc69b9f076bd59fa7922ff83f0c59e472e570ba28b40dd29631e7d8378a90
4
- data.tar.gz: 0c8c6f2131804dfb187d63d3db89d9b21d2f4c14f213ee9e42e88683eede6016
3
+ metadata.gz: 6bf81aeec939ed88efa3a15c1162746ef3916811afb15e0386b45de7f7e6d0a4
4
+ data.tar.gz: 696e19c11302bb6960d7ac1a3c530e0819bc82e55cd018e10c3fed0fdbf040c5
5
5
  SHA512:
6
- metadata.gz: 06fac52650040faef41a28e93a497ff9c8faf7aef38e83fa0eea0e79b943b8cb1597fccdcc6d1c71d9959aba5e623a5ecfda48c9d3cf88ebe1c13a9d6265c3db
7
- data.tar.gz: 5bd0f0c64239f5173cb69410ca84fafd1d9b3b11069a4e097434ab433543d3bd98156c5f79a615bf8254a127ca9bae484c9c5486483235405151d949a5bba3ee
6
+ metadata.gz: 908ef1feb036a944fe1746e21448c6174d3fb1419226cf5d363e2d5c348412bbd087ef2742f9c785291e895faacebc0507735f76fff16bdc6faeb71f0d5f9bf6
7
+ data.tar.gz: 6ebfcbf532446269277583d353dbe58ad15c58c4618d06ecf90dda35a73d913cbf591344236ad8ac7a2d12e3eb1a1112265ea4c68217508b153d7ee8ec7e4162
@@ -10,7 +10,7 @@ module Terrafying
10
10
 
11
11
  class Endpoint < Terrafying::Context
12
12
 
13
- attr_reader :security_group
13
+ attr_reader :fqdn, :security_group
14
14
 
15
15
  include Usable
16
16
 
@@ -27,7 +27,6 @@ module Terrafying
27
27
  auto_accept: true,
28
28
  subnets: vpc.subnets.fetch(:private, []),
29
29
  private_dns: false,
30
- dns_name: name,
31
30
  tags: {},
32
31
  }.merge(options)
33
32
 
@@ -84,7 +83,21 @@ module Terrafying
84
83
  private_dns_enabled: options[:private_dns],
85
84
  }
86
85
 
87
- vpc.zone.add_cname_in(self, options[:dns_name], output_of(:aws_vpc_endpoint, ident, "dns_entry.0.dns_name"))
86
+ @fqdn = output_of(:aws_vpc_endpoint, ident, "dns_entry.0.dns_name")
87
+
88
+ if options[:service]
89
+ endpoint_service = options[:service]
90
+
91
+ record_name = endpoint_service.fqdn.gsub(/.#{endpoint_service.zone.fqdn}$/, "")
92
+
93
+ private_zone = add! Zone.create(endpoint_service.zone.fqdn, vpc: vpc)
94
+ private_zone.add_record(
95
+ record_name, [@fqdn], type: "CNAME",
96
+ resource_name: tf_safe("#{@name}-#{endpoint_service.fqdn}"),
97
+ )
98
+ else
99
+
100
+ end
88
101
 
89
102
  self
90
103
  end
@@ -7,7 +7,7 @@ module Terrafying
7
7
 
8
8
  class EndpointService < Terrafying::Context
9
9
 
10
- attr_reader :name, :load_balancer, :service_name
10
+ attr_reader :name, :load_balancer, :service_name, :fqdn, :zone
11
11
 
12
12
  def self.create_for(load_balancer, name, options={})
13
13
  EndpointService.new.create_for(load_balancer, name, options)
@@ -40,6 +40,9 @@ module Terrafying
40
40
  @name = name
41
41
  @load_balancer = load_balancer
42
42
 
43
+ @fqdn = options[:fqdn]
44
+ @zone = options[:zone]
45
+
43
46
  resource :aws_vpc_endpoint_service, name, {
44
47
  acceptance_required: options[:acceptance_required],
45
48
  allowed_principals: options[:allowed_principals],
@@ -20,7 +20,7 @@ module Terrafying
20
20
 
21
21
  class Service < Terrafying::Context
22
22
 
23
- attr_reader :name, :domain_names, :ports, :instance_profile, :load_balancer, :instance_set
23
+ attr_reader :name, :zone, :domain_names, :ports, :instance_profile, :load_balancer, :instance_set
24
24
 
25
25
  include Usable
26
26
 
@@ -81,6 +81,7 @@ module Terrafying
81
81
  ident = "#{tf_safe(vpc.name)}-#{name}"
82
82
 
83
83
  @name = ident
84
+ @zone = options[:zone]
84
85
  @ports = enrich_ports(options[:ports])
85
86
  @domain_names = [ options[:zone].qualify(name) ]
86
87
 
@@ -143,7 +144,10 @@ module Terrafying
143
144
  end
144
145
 
145
146
  def with_endpoint_service(options = {})
146
- add! EndpointService.create_for(@load_balancer, @name, options)
147
+ add! EndpointService.create_for(@load_balancer, @name, {
148
+ fqdn: @domain_names[0],
149
+ zone: @zone,
150
+ }.merge(options))
147
151
  end
148
152
 
149
153
  end
@@ -1,5 +1,5 @@
1
1
  module Terrafying
2
2
  module Components
3
- VERSION = "1.7.3"
3
+ VERSION = "1.7.4"
4
4
  end
5
5
  end
@@ -49,11 +49,19 @@ module Terrafying
49
49
 
50
50
  ident = tf_safe(fqdn)
51
51
 
52
+ zone_config = {
53
+ name: fqdn,
54
+ tags: options[:tags],
55
+ }
56
+
57
+ if options[:vpc]
58
+ zone_config[:vpc_id] = options[:vpc].id
59
+
60
+ ident = tf_safe("#{options[:vpc].id}-#{ident}")
61
+ end
62
+
52
63
  @fqdn = fqdn
53
- @id = resource :aws_route53_zone, ident, {
54
- name: fqdn,
55
- tags: options[:tags],
56
- }
64
+ @id = resource :aws_route53_zone, ident, zone_config
57
65
 
58
66
  if options[:parent_zone]
59
67
  ns = (0..3).map{ |i| output_of(:aws_route53_zone, ident, "name_servers.#{i}") }
@@ -81,10 +89,10 @@ module Terrafying
81
89
  name: qualify(name),
82
90
  }.merge(options)
83
91
 
84
- ctx.resource :aws_route53_record, tf_safe(options[:name]), {
92
+ ctx.resource :aws_route53_record, options[:resource_name] || tf_safe(options[:name]), {
85
93
  zone_id: @id,
86
94
  records: records,
87
- }.merge(options)
95
+ }.merge(options.slice(:type, :ttl, :name, :records, :zone_id, :weight))
88
96
  end
89
97
 
90
98
  def add_alias(name, config)
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.7.3
4
+ version: 1.7.4
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-08-03 00:00:00.000000000 Z
11
+ date: 2018-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler