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
         |