Giter Site home page Giter Site logo

baragon's People

Contributors

ajammala avatar alexshtarbev avatar andybergon avatar baconmania avatar chrisbaldauf avatar drucci avatar edhurtig avatar eherot avatar hs-jenkins-bot avatar jeffbyrnes avatar jhaber avatar jw0x47 avatar kasisnu avatar kwm4385 avatar marcob avatar mikegajda avatar pschoenfelder avatar ptrteixeira avatar sit avatar sjeropkipruto avatar ssalinas avatar stevie400 avatar tpetr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

baragon's Issues

No Manifest attribute

Hello,

I created the .jar files with mvn clean package, but when I want to run java -jar BaragonService-0.7.0-SNAPSHOT.jar server BaragonService.yaml it fails and display no main manifest attribute in BaragonService-0.7.0-SNAPSHOT.jar

What can I do?
Can I download the created jar files anywhere?

Proposal: Kind of colocation

Hi,

I was thinking that it would be quite nice to be able to generate nginx (and alternatives) upstream config by giving higher weight to local server IP or by using backup servers.

The way I'm using baragon is by deploying agents on all mesos slaves and configuring dnsmasq/hosts to have a well known DNS name "lb" pointing to host IP address thus every mesos slave have local load balancer and services running on that mesos slave can do local service discovery. That got me thinking that it would be awesome if all services, deployed on the same mesos slave, would prefer routing request to the same host services thus eliminating unnecessary roundtrip to a random network host.

it would require possibility to generate upstream template like:

upstream baragon_myservice {
    server host1:port;                         # where host1 == $host ?
    server host2:port   backup;                # host2 != $host
    server host3:port   backup;
} 

or

upstream baragon_myservice {
    server host1:port weight=1000;    # where host1 == $host ?
    server host2:port;                # host2 != $host
    server host3:port;
} 

As far as I know it is not currently possible because of handlebars and/or because it would require a custom helper/metadata.

Empty page when running the Docker image

I'm following the 'Try it out!' section here, and even though I can see and work with Singularity UI, navigating to Baragon UI (e.g. http://boot2docker-host ip:8080/baragon/v2/ui) would result in an empty page.

I'm quite new to Singularity & Baragon so not sure if I should be doing something different. I'm on a Mac running a docker-machine under VMWare fusion.

haproxy integration

Hi, in the docs, I can see that Baragon is easy to setup with haproxy instead of nginx - are the any examples of the templates, usecases etc..? I couldnt find a single source of inspiration..

We have a specific problem - as we want to route the apps based on dns derived from the app name (singularity request) - lets say: http://app1.mesos.internal, http://app2.mesos.internal...

However to achieve such configuration in haproxy, we would need a configuration like:

frontend http_in
  bind *:80
  mode http
  acl app1 hdr(host) -i app1.mesos.internal
  acl app2 hdr(host) -i app2.mesos.internal
  use_backend bck_app1 if app1
  use_backend bck_app2 if app2

backend bck_app1
  mode http
  server mesos-slave1:1234
  server mesos-slave2:5678

backend bck_app2
  mode http
  server mesos-slave1:2234
  server mesos-slave2:7789

The problem is that all the apps need to place a piece of configuration in a shared block (frontend http_in). However the nginx approach one config file per app disallows such behavior. Is there a chance to achieve this without any config post-processing?

And second thing - does current nginx implementation support sticky cookies/sessions?

Proposal: Add support for dynamic ELB listeners configuration

Use case

Acquia uses Baragon to provide general application load balancers for jobs launched on Apache Mesos using the Apache Aurora scheduling framework. For each application launched via Apache Aurora we schedule a second BaragonAgent task to load balance the application. Apache Aurora and its executor (Thermos) allocate the port an application listens on dynamically, this means that the port information is not available to preconfigure the ELB listeners with.

Acquia would like to extend Baragon functionality to support BaragonAgent configuration for dynamic port allocation to ELB load balancers. Changes would include:

BaragonAgent

  • Agent would report to master load balancer ports on which its listening. I.e. dynamic nginx ports.

BaragonService

  • source configure call would support configuring source port number with source name i.e. POST /load-balancers/%s/source?source=[source-name]&port=[port-number]
  • ELB manager would implement new syncListeners calls to configure port mapping

Implementation

BaragonCore

  • New BaragonSource class that would have name and portNumber properties and would be able to configure richer configuration per source. Default port number would be 0 which would mean that no port should be configured.
  • BaragonGroup sources property would change to Set<BaragonSource>

BaragonData

  • BaragonLoadBalancerDatastore would accept new BaragonSource in addSourceToGroup

BaragonService

  • ElbManager would implement syncListeners method where it would add or remove source listeners
  • LoadBalancerResource would support optional portNumber parameter in sources call

BaragonUI

  • UI would add new portNumber field to UI to allow port configuration.

Backward compatibility

Data store would support de-serializing old and new values. Old format (array of strings) would be supported and automatically migrated when updating store state.

Documentation

Currently there are no docs on how to integrate with loadbalancers and all the options/configurations. It would go a long way in letting people use this project and the singularity project.

Command line can not be null

Hello I want to start a LoadBalanced Request in Singularity and everytime when I deploy it it says Command line can not be null REVERTING
How can I stop that?

Baragon displays my two agent and one is the master so I think that they working correctly.

My Singularity Request:

{
"deploy": {
        "requestId": "Nginx",
        "id": "20",
        "containerInfo": {
          "type": "DOCKER",
          "docker": {
            "image": "nginx",
            "privileged": false,
            "network": "BRIDGE",
            "portMappings": [
              {
                "containerPortType": "LITERAL",
                "containerPort": 80,
                "hostPortType": "FROM_OFFER",
                "hostPort": 0,
                "protocol": "tcp"
              }
            ],
            "forcePullImage": false
          }
        },
        "resources": {
          "cpus": 1,
          "memoryMb": 1024,
          "numPorts": 1,
          "diskMb": 0
        },
        "serviceBasePath": "/",
		"loadBalancerGroups": [
    		"loadBalancerGroupName"
		],
        "shell": false
   }
}

The group exists and the base path is after the request visible.

Unable to use AWS ELB in Baragon

Hey guys.
We're currently trying to enable ELB integration in Baragon but hitting some strange error:

AWS Client Error com.amazonaws.services.elasticloadbalancing.model.LoadBalancerNotFoundException: There is no ACTIVE 
Load Balancer named 'BaragonGRPCTest' (Service: AmazonElasticLoadBalancing; Status Code: 400; 
Error Code: LoadBalancerNotFound; Request ID: 71f71bb7-b7c7-4982-984f-88150e477718)

Our configuration is:

# (Optional) Elb Sync configuration
elb:
  enabled: true # Determines if the ELB sync worker should start, defaults to false
  awsAccessKeyId: ${awsAccessKeyId}  # AWS credentials for accessing ELB api
  awsAccessKeySecret: ${awsAccessKeySecret}  # AWS credentials for accessing ELB api
  intervalSeconds: 120 # How often the sync worker should run, defaults to 120s
  initialDelaySeconds: 0 # How long to wait before starting ELB sync worker, defaults to 0
  deregisterEnabled: false # Is the sync worker allowed to remove instances from the elb, defaults to false
  removeKnownAgentEnabled: false # Is the sync worker allowed to remove an instance from the ELB if it is still in the known agents list, defaults to false
  removeKnownAgentMinutes: 30 # How long must an instance be inactive before it can be removed
  removeLastHealthyEnabled: false # If there is only one healthy instance left, can the sync worker remove it, defaults to false

Keys defiinitely have RW access to AWS ELB.
Can you please point us into a right direction?
Thanks.

UI: ZK State explanation and possible UI Improvement

image

It is pretty clear to me what everything here says. However I would like to see a label for the ZK State instead of it just saying the state and assuming that I know that CONNECTED means connected to Zookeeper.

There is some confusion about the RECONNECTED state. How long the UI will say RECONNECTED before returning to a CONNECTED state? Perhaps giving a time of when the ZK Connection was dropped might be useful but also probably out of scope for the UI.

Lastly, why is the state text in a progressbar div? it doesn't look the best. Just curious when the progressbar comes into effect for displaying the ZK State? Possibly switch to success, warning, and danger badges?

  1. Label for ZK State
  2. Maybe do something with RECONNECTED, maybe not
  3. Progressbar?

UI color is not applying

Hey there.
We've currently using Baragon for qa/prod envs and use UI color as an additional, ugh, env identificator.
Looks like currently ui color is not picked up from conf file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.