marathon-template 0.0.1 → 0.0.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 +4 -4
- data/ext/haproxy_example.yaml +65 -0
- data/lib/marathon-template/deploy.rb +5 -1
- data/lib/marathon-template/options.rb +3 -12
- data/lib/marathon_template.rb +5 -3
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2ea55fa3b0d54e349149d8377d53f362ff6aa12
|
4
|
+
data.tar.gz: cc0675725b9d1da54af378f23f52d629f9cec067
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 605a85748ca6c9a78827efb8cb33e63bcb0d40ba1bc0cd3d616483e1cbcf26c425191fdff40998d863f1c808417c7141be7a3812cd5e827716df24b945134222
|
7
|
+
data.tar.gz: 65bd43d891ada88ae4448c06c123eac912e3f65a972f99e9117dd504f22817150abf7adec0cf87104f6a8a765ab33de84d5f7f1ef41685c089eee57c8c934950
|
@@ -0,0 +1,65 @@
|
|
1
|
+
---
|
2
|
+
# Where is your Marathon?
|
3
|
+
marathon: 'http://10.33.100.11:8080'
|
4
|
+
# Main HaProxy block
|
5
|
+
haproxy:
|
6
|
+
global:
|
7
|
+
daemon:
|
8
|
+
log:
|
9
|
+
- '127.0.0.1 local0'
|
10
|
+
- '127.0.0.1 local1 notice'
|
11
|
+
maxconn: 4096
|
12
|
+
defaults:
|
13
|
+
log: global
|
14
|
+
mode: http
|
15
|
+
retries: 3
|
16
|
+
maxconn: 2000
|
17
|
+
# Any HaProxy param that it utilized more than once can be passed a hash of options
|
18
|
+
timeout:
|
19
|
+
connect: '5s'
|
20
|
+
client: '50s'
|
21
|
+
server: '50s'
|
22
|
+
http-keep-alive: 1s
|
23
|
+
http-request: 15s
|
24
|
+
queue: 30s
|
25
|
+
tarpit: 60s
|
26
|
+
# Or an array of options
|
27
|
+
option:
|
28
|
+
- httplog
|
29
|
+
- dontlognull
|
30
|
+
- forwardfor
|
31
|
+
- http-server-close
|
32
|
+
- redispatch
|
33
|
+
# Listen block
|
34
|
+
listens:
|
35
|
+
stats_test:
|
36
|
+
bind: '0.0.0.0:9090'
|
37
|
+
mode: http
|
38
|
+
stats:
|
39
|
+
- enable
|
40
|
+
- hide-version
|
41
|
+
- 'url /'
|
42
|
+
- 'auth admin:admin'
|
43
|
+
# Optional server block
|
44
|
+
# server:
|
45
|
+
# app_name: my_app_name_in_marathon
|
46
|
+
# Options to pass into haproxy config on the server line
|
47
|
+
# options: check
|
48
|
+
#
|
49
|
+
# Frontend blocks
|
50
|
+
frontends:
|
51
|
+
http-in:
|
52
|
+
bind: '*:80'
|
53
|
+
mode: http
|
54
|
+
default_backend: nodes
|
55
|
+
# Backend blocks
|
56
|
+
backends:
|
57
|
+
nodes:
|
58
|
+
balance: leastconn
|
59
|
+
option: forwardfor
|
60
|
+
http-request:
|
61
|
+
- 'http-request set-header X-Forwarded-Port %[dst_port]'
|
62
|
+
# Backend also accept the server block
|
63
|
+
server:
|
64
|
+
app_name: my_app_name_in_marathon
|
65
|
+
options: check
|
@@ -144,7 +144,11 @@ module Marathon_template
|
|
144
144
|
return_hash[task['host']] = task['ports']
|
145
145
|
end
|
146
146
|
else
|
147
|
-
|
147
|
+
if response.code == '404'
|
148
|
+
abort LOG.error "Failed connecting to #{marathon_app}, response code: #{response.code}\n Are you sure the app #{app_name} exists?"
|
149
|
+
else
|
150
|
+
abort LOG.error "Failed connecting to #{marathon_app}, response code: #{response.code}"
|
151
|
+
end
|
148
152
|
end
|
149
153
|
return_hash
|
150
154
|
end
|
@@ -27,18 +27,9 @@ module Marathon_template
|
|
27
27
|
@config[:haproxy_backends] = config_file['haproxy']['backends'] || nil
|
28
28
|
@config[:haproxy_path] = config_file['haproxy_path'] || '/etc/haproxy'
|
29
29
|
@config[:cron_splay] = config_file['cron_splay_time'] || '* * * * * marathon_template'
|
30
|
-
|
31
|
-
#
|
32
|
-
|
33
|
-
# @config[:distro] = distro
|
34
|
-
# else
|
35
|
-
# abort "Sorry, #{distro} is not supported."
|
36
|
-
# end
|
37
|
-
|
38
|
-
# @config.each do |k,v|
|
39
|
-
# LOG.info("#{k}: #{v}")
|
40
|
-
# end
|
41
|
-
@config
|
30
|
+
@config.each do |k,v|
|
31
|
+
LOG.info("#{k}: #{v}")
|
32
|
+
end
|
42
33
|
end
|
43
34
|
end
|
44
35
|
end
|
data/lib/marathon_template.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
#!/bin/env ruby
|
2
|
-
#$LOAD_PATH << '.'
|
3
2
|
begin
|
4
3
|
|
5
4
|
require 'rubygems'
|
@@ -23,10 +22,13 @@ module Marathon_template
|
|
23
22
|
begin
|
24
23
|
# Set up logging to STDOUT
|
25
24
|
LOG = Logger.new(STDOUT)
|
26
|
-
|
25
|
+
|
27
26
|
# Get our config file
|
28
27
|
config_path = ENV['MARATHON_TEMPLATE_CONFIG_PATH'] || '/etc/haproxy.yaml'
|
29
|
-
|
28
|
+
if ! File.exists? config_path
|
29
|
+
abort LOG.info "No haproxy yaml configuration found at #{config_path}. Please see https://github.com/malnick/marathon_template/blob/master/ext/haproxy_example.yaml for an example"
|
30
|
+
end
|
31
|
+
|
30
32
|
# Create a usable hash of configuration
|
31
33
|
CONFIG = Marathon_template::Options.initialize(config_path)
|
32
34
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marathon-template
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Malnick
|
@@ -18,6 +18,7 @@ executables:
|
|
18
18
|
extensions: []
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
+
- ext/haproxy_example.yaml
|
21
22
|
- lib/marathon_template.rb
|
22
23
|
- lib/marathon-template/deploy.rb
|
23
24
|
- lib/marathon-template/cron.rb
|