hubspot / baragon Goto Github PK
View Code? Open in Web Editor NEWLoad balancer API
License: Apache License 2.0
Load balancer API
License: Apache License 2.0
^^^
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.
It would be useful if the {{service.options}}
map could be configured through the config file on the agents, and as an extension on the command line at launch time(with tweaks to start.sh).
The change would enable templates to be configured from the environment.
Thoughts?
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?
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?
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?
nginx supports it, so it would be nice if Baragon would support it too.
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.
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.
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.
Not sure if this is supposed to be allowed but it is impossible to specify a blank auth key to enable editing. The required
attribute on the input should be removed if blank keys are allowed
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.
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.
Remove Asia/Saigon
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:
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]
syncListeners
calls to configure port mappingBaragonCore
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 listenersLoadBalancerResource
would support optional portNumber
parameter in sources
callBaragonUI
portNumber
field to UI to allow port configuration.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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.