dendrite 0.5.5 → 0.5.6

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
  SHA1:
3
- metadata.gz: 5babf7a3f860ae08b38ca9eb3f8903e3e2bec02f
4
- data.tar.gz: 58cee017cdabf058617b25e54eda2d4b3bacdee6
3
+ metadata.gz: f596c584ad8e20047d82cbcce8cdd11a3953a0ee
4
+ data.tar.gz: e354f2e265dc829295d77cd38bda3c998ab4a11d
5
5
  SHA512:
6
- metadata.gz: 664614a8873dcdb6c2b69c4cad4f077e0a77d0c576298805a61181d19f458189dc0a5c0018bbf8504c2db76b7be7fd97d29b5362dd170479062d5545990c625c
7
- data.tar.gz: d57f275874c5a4b5fdb6f95dba84008d257be268e2f79005f1f5f29911f06fd4af969a9207474cb96d236df3a66b10bec977e3a39567e8119ea8964ddf486155
6
+ metadata.gz: 6ae57fe86462e173bdd374c659bfe6edaf1a775124f0f9e06d56c33e8ced70e5399d139cf7ea99e3a8d2be3415c52c2800927b0eab56cebe075e7635b41b3089
7
+ data.tar.gz: eaa0a4b3fe3d2aab3cb84485443619953d9a14cdc471eb96394ff6cd3122c99621339a4e51dc967e13d34162a8da8454693a2541de273d7b79f86e96f33ed3ff
@@ -24,6 +24,9 @@ synapse:
24
24
  do_writes: true
25
25
  do_reloads: true
26
26
  do_socket: false
27
+ shared_frontend:
28
+ - "bind 127.0.0.1:8082"
29
+ - "bind 127.0.0.1:8089"
27
30
  global:
28
31
  - daemon
29
32
  - user haproxy
@@ -23,11 +23,16 @@ subcomponents:
23
23
  telemetry:
24
24
  health_url: /
25
25
  notification_email: foo@bar.com
26
+ domain_names:
27
+ - domain_name: foobar.com
28
+ environment: prd
29
+ - domain_name: foobar2.com
30
+ environment: prd
26
31
  default_servers:
27
32
  - host: 192.168.1.1
28
33
  port: 8080
29
34
  environment: stg
30
- - host: 50.312.312.312
35
+ - host: 192.168.1.2
31
36
  port: 8080
32
37
  environment: prd
33
38
  dependencies:
@@ -42,6 +42,7 @@ module Dendrite
42
42
  def_delegator :service, :component, :component
43
43
  def_delegator :service, :organization, :organization
44
44
  def_delegator :service, :default_servers, :default_servers
45
+ def_delegator :service, :domain_names, :domain_names
45
46
  def_delegator :service, :metadata, :metadata
46
47
 
47
48
 
@@ -78,7 +79,7 @@ module Dendrite
78
79
  end
79
80
 
80
81
  def haproxy_config
81
- {
82
+ data = {
82
83
  haproxy: {
83
84
  port: service.loadbalancer_port,
84
85
  bind_address: bind_address,
@@ -87,6 +88,14 @@ module Dendrite
87
88
  backend_order: metadata && metadata.sticky_session ? 'asc' : nil
88
89
  }
89
90
  }
91
+
92
+ if domain_names[environment] && domain_names[environment].length > 0
93
+ data[:haproxy][:shared_frontend] = [
94
+ "acl is_#{name} hdr_dom(host) " + domain_names[environment].collect {|dns| " -i #{dns.domain_name} "}.join ,
95
+ "use_backend #{name} if is_#{name}"
96
+ ]
97
+ end
98
+ return data
90
99
  end
91
100
 
92
101
  def mode
@@ -65,6 +65,12 @@ module Dendrite
65
65
  validates :port, numericality: { only_integer: true }
66
66
  end
67
67
 
68
+ DomainName = Struct.new(:environment, :domain_name) do
69
+ include ActiveModel::Validations
70
+ validates_presence_of :environment
71
+ validates_presence_of :domain_name
72
+ end
73
+
68
74
  Telemetry = Struct.new(:health_url, :notification_email) do
69
75
  include ActiveModel::Validations
70
76
  validates_presence_of :health_url
@@ -113,7 +119,7 @@ module Dendrite
113
119
 
114
120
  attr_reader :organization, :component, :lead_email, :team_email,
115
121
  :type, :deploy, :scale, :ports, :dependencies, :telemetry,
116
- :default_servers, :metadata, :users
122
+ :default_servers, :metadata, :users, :domain_names
117
123
  # :name is set but magically
118
124
 
119
125
  validates_presence_of :organization, :component, :lead_email, :team_email,
@@ -130,6 +136,7 @@ module Dendrite
130
136
  def initialize(**args)
131
137
  @ports = {}
132
138
  @default_servers = {}
139
+ @domain_names = {}
133
140
  args.each do |k,v|
134
141
  case k
135
142
  when :ports
@@ -147,6 +154,11 @@ module Dendrite
147
154
  @default_servers[node[:environment]] ||= []
148
155
  @default_servers[node[:environment]] << DefaultServer.new(node[:environment], node[:host], node[:port])
149
156
  end
157
+ when :domain_names
158
+ v.each do |dns|
159
+ @domain_names[dns[:environment]] ||= []
160
+ @domain_names[dns[:environment]] << DomainName.new(dns[:environment], dns[:domain_name])
161
+ end
150
162
  when :metadata
151
163
  @metadata = Metadata.new(v)
152
164
  when :users
@@ -1,3 +1,3 @@
1
1
  module Dendrite
2
- VERSION = "0.5.5"
2
+ VERSION = "0.5.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dendrite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yagnik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-28 00:00:00.000000000 Z
11
+ date: 2016-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler