Manuel Laufenberg
eb1ffae01b
Small fixes and improvments
2017-03-06 17:45:58 +01:00
Luke Petre
c786bbbc5b
Try harder to query all the possible ec2 instances, and filter on instance state / lack of IP address
2017-03-06 17:45:58 +01:00
Regner Blok-Andersen
f530284031
Adding support for Traefik to respect the K8s ingress class annotation ( #1182 )
2017-03-03 20:30:22 +01:00
Timo Reimann
f3598e6b0f
Refactor k8s rule type annotation parsing/retrieval.
...
- Move annotation logic into function.
- Constantify strings.
- Refactor TestRuleType.
- Add test for GetRuleTypeFromAnnotations.
2017-03-03 13:33:00 +01:00
Regner Blok-Andersen
1e10fc2e30
Simplifying else if statement to be cleaner
2017-02-14 14:57:09 -08:00
Regner Blok-Andersen
c8cf5f8c44
Added a test to make sure passing an invalid value to traefik.frontend.passHostHeader results in falling back correctly.
2017-02-14 11:54:27 -08:00
Regner Blok-Andersen
96e6c9cef2
Split the if/or statement when requesting endpoints from the k8s service so that it now provides two unique log statements.
2017-02-14 11:53:35 -08:00
Regner Blok-Andersen
931ee55e1d
Added default case for PassHostHeader that logs a warning.
2017-02-14 11:52:54 -08:00
Regner Blok-Andersen
4d3aede5d3
Added tests for ingress passHostHeader annotation
2017-02-10 03:27:30 -08:00
Regner Blok-Andersen
0b1dd69b01
Added support for passHostHeader annotation on ingresses
2017-02-10 03:05:59 -08:00
Regner Blok-Andersen
0947aa901e
Initial support for Kubernetes ExternalName service type
2017-02-09 17:25:38 -08:00
Manuel Laufenberg
3a875e2954
add default config
...
lint files
2017-02-06 17:03:43 +01:00
Manuel Laufenberg
bdb63ac785
add watch function
2017-02-06 17:03:43 +01:00
Manuel Laufenberg
9a5dc54f85
add some unit tests
...
fmt & lint
2017-02-06 17:03:41 +01:00
Manuel Laufenberg
48524a58ff
fix all containers - no matter of pagination
...
fmt & lint
2017-02-06 17:03:38 +01:00
Manuel Laufenberg
38bd49b97e
add dependency, start provider and fetch data
...
add tons of labels
Provide - WIP
add rancher data over rancher types
first version of direct fetch - pagination still an issue
2017-02-06 17:02:53 +01:00
WTFKr0
41f8f0113b
Replace underscores to dash in autogenerated urls (docker provider)
...
Signed-off-by: WTFKr0 <thomas.kovatchitch@gmail.com>
2017-02-06 15:38:18 +01:00
Mike Foley
e0a4c58081
Added service name to dockerData struct.
...
In Swarm mode with with Docker Swarm’s Load Balancer disabled (traefik.backend.loadbalancer.swarm=false)
service name will be the name of the docker service and name will be the container task name
(e.g. whoami0.1). When generating backend and fronted rules, we will use service name instead of name if a
rule is not provided.
Initialize dockerData.ServiceName to dockerData.Name to support non-swarm mode.
2017-02-06 14:44:25 +01:00
Mike Foley
d2b47a5681
Support sticky sessions under SWARM Mode.
...
SWARM Mode has it's own built in Load balancer, so if we want to leverage sticky sessions,
or if we would just prefer to bypass it and go directly to the containers (aka tasks), via
--label traefik.backend.disable.swarm.loadbalancer=true
then we need to let Traefik know about the underlying tasks and register them as
services within it's backend.
2017-02-06 14:44:25 +01:00
Luke Petre
8d3c77a0b9
Add an ECS provider
2017-02-05 18:09:30 +00:00
Stefan Scherer
434596b103
Fix Docker API version for Windows
...
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2017-02-04 16:44:10 +01:00
Diego de Oliveira
cbbb5f4ccb
Fix marathon provider
...
The IP-Per-Task PR introduced a bug using the marathon application
port mapping. This port should be used only in the proxy server, the
downstream connection should be always made with the task port.
This commit fix the regression and adds a unit test to prevent new
problems in this setup.
2017-02-04 16:05:35 +01:00
Brian Akins
225dbcce0a
Allow setting circuitbreaker expression via Kubernetes annotation ( #1056 )
2017-02-03 17:47:48 +01:00
Bruce Lee
ad12a7264e
Ensure that we don't add balancees with no health check runs if there is a health check defined on it
...
Change test behavior
2017-02-03 08:45:15 -05:00
Emile Vauge
54be6beaab
Lint files
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-02-03 09:55:47 +01:00
Emile Vauge
5a67d0ac84
Fix panic in k8s loadIngresses
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-02-03 09:46:27 +01:00
Emile Vauge
be362f0d9f
Add Operation with recover
2017-02-03 09:46:27 +01:00
Brian Akins
490427f94d
Allow setting load balancer method and sticky using service annotations
2017-02-02 14:03:39 +00:00
Timo Reimann
3a7de0be5c
Add missing fmt verb specifier in k8s provider.
2017-01-26 11:05:13 +01:00
Adam Stankiewicz
d15a17b634
Allow for wildcards in k8s ingress host, fixes #792 ( #1029 )
2017-01-20 14:16:05 +01:00
Diego de Oliveira
d74ea22d7d
IP-per-task: ( #841 )
...
Support IP per task with marathon/mesos
2017-01-06 16:26:50 +01:00
Vincent Demeester
8a348423ae
Import order as goimports does
...
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-12-30 19:04:02 +01:00
Julien Salleyron
d469d426f8
Remove useless func in FuncMaps
2016-12-08 20:44:13 +01:00
Julien Salleyron
ec05fbcf19
feat: Add defaultFuncMap to template
2016-12-08 20:44:13 +01:00
Yves Peter
fc788eb426
Kubernetes: cleanup channel handling
...
Only use one channel for all watches
Re-use stop channel from the provider
Skip events that have already been handled by the provider, builds on 007f8cc48ea9504bb7754c5e3244124be422f47d
2016-12-07 20:12:14 +01:00
Phil Kates
87eac1dc1a
Fix deadlock in k8s provider
...
On a reasonably sized cluster:
63 nodes
87 services
90 endpoints
The initialization of the k8s provider would hang.
I tracked this down to the ResourceEventHandlerFuncs. Once you reach the
channel buffer size (10) the k8s Informer gets stuck. You can't read or
write messages to the channel anymore. I think this is probably a lock
issue somewhere in k8s but the more reasonable solution for the traefik
usecase is to just drop events when the queue is full since we only use
the events for signalling, not their content, thus dropping an event
doesn't matter.
2016-12-07 20:12:14 +01:00
Emile Vauge
dca08af003
Merge v1.1.1 into master
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-12-06 08:44:23 +01:00
Yves Peter
9236a43a4d
kubernetes: moved doc of client to the interface
2016-11-30 19:25:22 +01:00
yvespp
7f4eddf6d6
k8s: changed debug log, removed unneeded stop channels, increased watch channel buffer
2016-11-30 19:16:48 +01:00
Yves Peter
0b78375211
Kubernetes client: set resync period to 5 minutes for more robustness
2016-11-30 19:16:48 +01:00
Yves Peter
15540764a0
Switched Kubernetes provider to new client implementation: https://github.com/kubernetes/client-go
2016-11-30 19:16:48 +01:00
Emile Vauge
841be8d806
Fix Swarm panic
2016-11-28 16:46:37 +01:00
Ryan Leary
055cd01bb7
Fix GroupsAsSubDomains option for Mesos and Marathon ( #868 )
...
* Fix GroupsAsSubDomains option for Mesos and Marathon
* Refactor reverseStringSlice function
2016-11-28 14:59:08 +01:00
Emile Vauge
926eb099f1
Fix k8s client panic
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-11-24 19:19:10 +01:00
Alexander Block
b4ea68b88a
Fix missing value for k8s watch request parameter ( #874 )
...
Fixes: 732
2016-11-23 23:21:09 +01:00
WTFKr0
2bf9acd95e
Normalize backend even if is user-defined ( #865 )
...
Signed-off-by: WTFKr0 <thomas.kovatchitch@gmail.com>
2016-11-23 21:31:37 +01:00
Kristian Klausen
a8cb905255
consul/kv.tmpl: weight default value should be a int ( #826 )
...
* consul/kv.tmpl: weight default value should be a int
Fix #821
* Use 0 as default weight in all backends
2016-11-23 14:49:55 +01:00
Lewis Headden
567387aee0
Enable TCP Keep Alive for Marathon Client and make value configurable ( #784 )
...
* Resolve rebase conflicts
* Fix imports that VSCode messed up
2016-11-22 16:11:28 +01:00
Emile Vauge
2dda3d2feb
Fix Kubernetes watch leak
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-11-17 17:37:06 +01:00
Julien Salleyron
2af6cc4d1b
feat(provider): Add Eureka Provider
2016-11-16 22:00:24 +01:00
Ed Robinson
5c0297fb61
Context is part of the stdlib on 1.7
2016-11-16 14:03:23 +00:00
Bruce Lee
e068ee09ca
Allow specification of dialertimeout
...
Address documentation comments
2016-11-14 10:57:46 -05:00
Emile Vauge
c9cc3c9895
Fix contraint store/read from KV
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-11-09 21:08:37 +01:00
Guilhem Lettron
85a20b9a39
Use first index for ports
2016-11-02 17:31:27 +01:00
Guilhem Lettron
5641af437e
Use first port by default
...
If no information is given, use first index of ports
2016-10-28 11:59:24 +02:00
Guilhem Lettron
1c8d3ded3d
Add name to some case to help debug
2016-10-28 11:59:24 +02:00
Emile Vauge
404a73a712
fIx marathon template with dots in ID
2016-10-13 15:33:23 +02:00
Guilhem Lettron
bd5009058b
Merge branch 'v1.1' into marathon-lb
2016-10-12 15:51:41 +02:00
Guilhem Lettron
3f65503a79
Add basic compatibility with marathon-lb
...
Add compatibility with labels: `HAPROXY_GROUP` and `HAPROXY_0_VHOST`.
* `HAPROXY_GROUP` become a new tag
* `HAPROXY_0_VHOST` become a rule `Host:`
https://github.com/mesosphere/marathon-lb
2016-10-07 19:30:16 +02:00
Vincent Lepot
6ac1216f8c
Fix networkMap construction (pointer always reference the last network found)
2016-10-07 16:44:33 +02:00
Vincent Demeester
d68389dc52
Add support for docker healthcheck
...
- React to health_status events
- Filter container that have a health status *and* that are not healthy
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-10-03 11:01:37 +02:00
Emile Vauge
b9f76394aa
Update Mesos documentation
2016-09-30 15:37:52 +02:00
Emile Vauge
e72e65858f
Challenge certs PEM encoding
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-09-30 11:26:25 +02:00
Emile Vauge
a42845502e
Add ACME store
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-09-30 11:26:17 +02:00
Emile Vauge
bea5ad3f13
Add leadership election
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-09-30 11:26:05 +02:00
Emile Vauge
5a0440d6f8
Add KV datastore
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-09-30 11:26:05 +02:00
Emile Vauge
462d8b3e74
Fix Docker & KV templates for sticky
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-09-30 10:57:55 +02:00
Emile Vauge
291c3b6dbc
Fix sticky sessions Docker/Marathon labels
2016-09-30 10:56:47 +02:00
Owen Marshall
81fddb4ccf
missed a cherry pick, good start :=/
2016-09-30 10:56:17 +02:00
Owen Marshall
c9d4c5ae3e
Fix Docker integration problems
2016-09-30 10:56:17 +02:00
Owen Marshall
be5b1fd92b
docs, sticky session for Docker
2016-09-30 10:56:17 +02:00
Owen Marshall
dc52abf4ce
Add sticky session support to Traefik.
...
This change adds sticky session support, by using the new
oxy/rr/StickySession feature.
To use it, set traefik.backend.sticky to true.
This is currently only implemented in the wrr load balancer, and against
the Marathon backend, but lifting it should be very doable.
In the wrr load balancer, a cookie called _TRAEFIK_SERVERNAME will be
set with the backend to use. If the cookie is altered to an invalid
backend server, or the server is removed from the load balancer, the
next server will be used instead.
Otherwise, the cookie will be checked in Oxy's rr on access and if valid
the connection will be wired through to it.
2016-09-30 10:56:17 +02:00
Emile Vauge
364958cbaf
Move jobs backoff back into traefik
...
https://github.com/cenk/backoff/pull/27#issuecomment-245842725
2016-09-27 21:45:29 +02:00
Diego Osse Fernandes
99c8bffcbf
Initial support for Docker 1.12 Swarm Mode
2016-09-27 14:21:38 -03:00
tuier
1624c51cb5
remove unused endpoint when using constraints in marathon
2016-09-23 22:05:11 +01:00
tuier
361dc94002
fmt
2016-09-21 17:27:48 +02:00
tuier
cc0fdf15ef
test for task and application constraint
2016-09-21 17:27:47 +02:00
tuier
928675a847
feat(constraints): Support constraint for Marathon provider
2016-09-21 17:27:47 +02:00
Emile Vauge
bb1dde0469
Fix kv
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-09-21 14:33:45 +02:00
Samuel BERTHE
ced69b8397
refacto(constraint-kv): Move constraint checking out of template
2016-09-21 14:33:45 +02:00
Samuel BERTHE
013808956c
feat(constraints): Supports kv stores backends
2016-09-21 14:33:45 +02:00
Vincent Demeester
5ea761e19f
Add possibility to use BindPort IPAddress 👼
...
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-09-20 14:52:35 +02:00
Bruce Lee
f7f17f0057
enable consul catalog to use maxconn
2016-09-15 12:11:37 -04:00
Bruce Lee
99ca5d0a03
Add ability for marathon provider to set maxconn values
...
Initial implementation: Force both to be present to trigger behavior.
add ability to see rendered template in debug
add support for loadbalancer and circuit breaker specification
add documentation for new configuration
2016-09-14 16:52:02 -04:00
Bruce Lee
d89bdfbd27
Add backend features to docker
2016-09-14 14:51:31 -04:00
Diogo Gomes
1e324ad3bc
If Marathon doesn't have healthcheck, assume it's ok ( #665 )
...
Healthcheck are not mandatory, so if a result is not present, assume it
is ok to continue. Fixes the case when a new leader is elected and
don't have any healthcheck result's, returning 404 to all requests.
https://github.com/containous/traefik/issues/653
2016-09-14 17:44:37 +02:00
Yves Peter
1a20e9f9b4
Kubernetes provider: don't log a warning if traefik.frontend.rule.type is empty, log namespace and ingress if invalide.
2016-09-12 21:06:21 +02:00
Emile Vauge
d340ccd601
Migrate to JobBackOff
2016-08-19 14:24:09 +02:00
Emile Vauge
97ddfcb17a
Use long job RetryBackoff in providers
2016-08-19 11:09:54 +02:00
Emile Vauge
11297b38c5
Remove misused Fatal*
2016-08-19 10:36:54 +02:00
Bruce Lee
0757a75732
fix for nil clientTLS causing issue
2016-08-16 17:50:22 -04:00
Ed Robinson
e3a8fd116d
Don't filter the endpoint and service watches
...
We added the ability to filter the ingresses used by traefik based
on a label selector, but we shouldn't need to have matching
labels on every other resource, Ingress allready has a way
to explicty choose which pods end up in the load ballancer
(by refering to the membership of a particular service)
2016-08-16 06:50:50 +01:00
Ed Robinson
d4f190e995
Name servers after thier pods
...
The TargetRef contains information from the object referenced
by the pod, unless the service has been set up with bare
endpoints - i.e. not pointing at pods this information
will be present.
It just makes the information that we show in the web-ui
a little more constent with that shown in kubectl
and the kuberntes dashboard.
2016-08-06 20:40:40 +01:00
Phil Kates
79dd72f53d
Prioritize kubernetes routes by path length
...
The Kubernetes provider wasn't setting priorities which was causing
shorter paths to get chosen before longer ones. This now matches the
[documentation](https://github.com/containous/traefik/blob/master/docs/basics.md#priorities )
2016-08-03 11:37:22 -07:00
Vincent Demeester
c170ddc7ae
Upgrade libkermit and dependencies
...
And use ContainerAPIClient where needed 👼
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-07-21 17:43:05 +02:00
Vincent Demeester
87a4d73556
Move version.go in its own package…
...
… making it possible to use in other packages ; and thus in the
User-Agent header for the docker client.
Also removing the dockerverion hack as it's not required anymore.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-07-21 16:33:49 +02:00
Martin
b153e90ec5
add createStore() funcs and skip consul TLS test
2016-07-21 09:22:35 +02:00
Martin
e26e0955b3
add struct ClientTLS : supports either a paths to a file or directly the certificate
2016-07-21 09:22:35 +02:00
Martin
056e0fe2d9
Use KvStores as global config source
2016-07-21 09:22:35 +02:00
julien
5afcf17706
add mesos provider inspired by mesos-dns & marathon provider
2016-07-20 11:56:14 +02:00
Vincent Demeester
b80479f9ef
Option to disable expose of all docker containers
...
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-07-14 11:32:15 +02:00
Vincent Demeester
a73baded88
Remove traefik.frontend.value support in docker…
...
… provider 👼 . Was deprecated in 1.0, removing it for 1.1.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-07-13 19:28:08 +02:00
Parham Negahdar
9f6484a328
Fixes #363 : Allow for kubernetes label selectors
2016-07-12 17:50:01 -04:00
Parham Negahdar
40c0ed092e
Fixes #501 : prioritize kube.endpoint passed via cli
2016-07-11 15:39:20 -04:00
Emile Vauge
b1ecb1f61f
Use of container.HostConfig.NetworkMode to detect host mode
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-07-05 14:11:33 +02:00
Emile Vauge
050416224d
Fix host Docker network
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-07-05 11:29:13 +02:00
Emile Vauge
606e667b88
Fix spamming events in listenProviders
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-23 16:33:54 +02:00
David Keijser
70305266dc
Sort nodes before creating consul catalog config
...
The watch of consul can return for various reasons and not of all of
them require a reload of the config. The order of nodes provided by
consul is not stable so to ensure a identical config is generated for an
identical server set the nodes needs to be sorted before creating the
config.
2016-06-23 13:08:12 +02:00
Emile Vauge
b586df6689
Fix marathon tests
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-22 13:56:28 +02:00
Emile Vauge
4ca2ff0495
Bump go-marathon a558128c87724cd7430060ef5aedf39f83937f55, add DCOS support
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-20 17:11:32 +02:00
Kevin Busse
dcf98d13c8
Fix typo in error message. ( #471 )
2016-06-20 12:15:31 +02:00
Emile Vauge
56ef678c09
Fix memory leak in listenProviders
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-16 22:49:57 +02:00
Samuel BERTHE
357150bcab
fix(constainrs,docker): Syntax
2016-06-11 19:06:39 +02:00
Samuel BERTHE
f7224ff403
feat(constraints): Supports constraints for docker backend
2016-06-11 19:06:39 +02:00
Emile Vauge
223e8cafac
Fix default KV configuration
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-09 23:44:49 +02:00
Vincent Demeester
f286cb9a34
Fix panic if listContainers fails…
...
… and also share context accross API call, as this is how it's meant to
be used (and it allows to skip some calls if `cancel` is called).
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-08 19:39:38 +02:00
Emile Vauge
f4cb4bb1b8
Add routes priorities in providers
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-07 09:18:37 +02:00
Emile Vauge
92ca220890
Add groupsAsSubDomains option
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-03 09:10:59 +02:00
Emile Vauge
72f88e5c0f
Add marathon directory subdomain
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-03 09:10:59 +02:00
Emile Vauge
3f08bb4cdf
Fix panic on help, Better version
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-06-02 15:17:04 +02:00
Erin Dachtler
7386378cc0
Merge branch 'master' into docker_network
2016-06-01 08:38:23 -07:00
Samuel BERTHE
1de5434e1a
refacto(constraints): Migration to Flaeg cli library
2016-06-01 10:30:34 +02:00
Samuel BERTHE
f46accc74d
test(constraint): unit tests + integration tests + make validate
2016-06-01 10:30:34 +02:00
Samuel BERTHE
ac087921d8
feat(constraints): Implementation of constraint filtering (cmd + toml + matching functions), implementation proposal with consul
2016-06-01 10:30:34 +02:00
Erin Dachtler
df7e1cf078
Squashed commit of the following:
...
commit 468cdf5c74b8df80fe6cc093feda84d124d47460
Author: Erin Dachtler <download333@gmail.com>
Date: Mon May 30 17:21:50 2016 -0700
Documentation update
commit bcbe622141fc333579177e056b49d418997c511d
Author: Erin Dachtler <download333@gmail.com>
Date: Sat May 28 15:32:34 2016 -0700
Whoops, forgot to fmt
commit 1ad5f1052541372722adc372069da094b422c793
Author: Erin Dachtler <download333@gmail.com>
Date: Sat May 28 14:56:04 2016 -0700
Added getIPAddress helper for docker template, and tests
2016-05-31 22:11:17 -07:00
Erin Dachtler
f5d49f6657
Merge branch 'master' into no_require_expose
2016-05-28 16:36:59 -07:00
Erin Dachtler
53ae64e578
Filter containers with no exposed ports unless they have a traefik.port label
2016-05-28 15:16:57 -07:00
Martin
cc2735f733
add Debug StructTag
...
Signed-off-by: Martin <martin.piegay@zenika.com>
2016-05-27 10:06:19 +02:00
Martin
f64c2bc065
add flag on ACME
...
add flag on Retry
set Retry.MaxMem to 2 by default
rm useless import
rm useless structtag
add custom parser on []acme.Domain type
add commants + refactor
2016-05-27 10:06:19 +02:00
Martin
6752b49536
rm useless StrucTag
2016-05-27 10:06:19 +02:00
Martin
629be45c4a
fix DisablePassHostHeaders
2016-05-27 10:06:19 +02:00
Martin
414fb1f406
add kubernetes.Namespaces parser
2016-05-27 10:06:19 +02:00
Martin
fe0a8f3363
Flaeg integration
2016-05-27 10:06:19 +02:00
Erin Dachtler
45589d5133
Reminder
2016-05-26 11:03:40 -07:00
Ed Robinson
2e735f622f
Adds some more coverage of the endpoint port selection logic.
2016-05-26 12:09:36 +01:00
Ed Robinson
6accb90c47
Simplify Service Lookup
...
Since we already know the name and namespace
of the service(s) we want we can just get the
correct one back from the API without filtering
the results.
2016-05-26 11:17:38 +01:00
Ed Robinson
e948a013cd
Build backend config using the K8S endpoint resource.
...
* Potentialy saves a network hop
* Ability to configure LB algothim (given some work to expose an
anotation etc...)
* K8s config Watch is triggered far less often
2016-05-26 10:52:30 +01:00
Ed Robinson
b79535f369
Support ingresses without a host ( #406 )
...
fixes #370
2016-05-25 14:16:19 +02:00
Emile Vauge
0f23581f64
Fix k8s memory leak
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-05-24 23:37:17 +02:00
Jonas Falck
aeb9cc1732
http protocol should not use TLS
...
I need this in order to run kubectl proxy and then
make traefik use http://localhost to get to my cluster
when developing
2016-05-23 09:51:05 +02:00
Ed Robinson
d13b755df2
Allow k8s ports to be referenced by name as well as number
2016-05-19 13:36:19 +01:00
Ed Robinson
5923d22379
The referenced k8s service(s) must be in namespace
...
By design k8s ingress is only designed to ballance services from within
the namespace of the ingress.
This is disscuessed a little in
https://github.com/kubernetes/kubernetes/issues/17088 .
For now traefik should only reference the services in the current
namespace. For me this was a confusing change of behaviour
from the reference implimentations, as I have services
with the same name in each namespace.
2016-05-18 17:38:47 +01:00
AlmogBaku
8210743dad
change log error of "ruleType" to warning
2016-05-17 16:54:40 +03:00
AlmogBaku
895f3cc109
fixes golint error
2016-05-17 16:22:37 +03:00
AlmogBaku
71f160dddc
Following up to the conversation on Slack & GitHub:
...
- Change the annotation to define the rule type in `traefik.frontend.rule.type`
- Update tests
- Add documentation
- Add example
2016-05-17 13:50:06 +03:00
AlmogBaku
92abaa0d47
fixes wrong actual on unit-test
2016-05-16 01:24:23 +03:00
AlmogBaku
47710c1385
fixes wrong names on tests - make it pass
2016-05-16 01:06:30 +03:00
AlmogBaku
df3abcbc9a
gofmt to tests..
2016-05-15 20:01:26 +03:00
AlmogBaku
dbb7ad41e5
Add tests for k8s PathPrefixStrip annotation
2016-05-15 12:16:27 +03:00
AlmogBaku
9773d4e409
K8s: add an option to configure "PathPrefixStrip" for the ingress-resource using annotation
2016-05-15 12:00:20 +03:00
Emile Vauge
d89279d708
Replace PathPrefixStrip by PathPrefix in k8s
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-05-12 12:44:26 +02:00
Marcus Stong
be209ed30c
#216 : sets passHostHeader to true by default ( #351 )
2016-05-10 13:43:24 +02:00
David Keijser
b9bb78d04b
Normalise tags in backend name of consul_catalog
...
Another fun thing consul lets you do is use spaces in your tags. This
means when including tags in backend name it's possible to generate
invalid names.
2016-05-07 16:30:38 +02:00
Ed Robinson
301a463aeb
Adds option to namespace k8s ingresses
...
If the flag kubernetes.namespaces is set...
Then we only select ingresses from that/those namespace(s)
This allows multiple instances of traefik to
independently load balance for each namespace.
This could be for logical or security reasons.
Addresses #336
2016-05-06 11:36:53 +01:00
Emile Vauge
c3aadab615
Add Consul integration tests
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-05-03 15:41:09 +02:00
Emile Vauge
61def880db
Fix etcd backend with prefix /
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-05-03 15:41:09 +02:00
Poney baker
378a261e64
feat(consul-provider): If Service.Address is nil then use Node.Address
...
test(consul-catalog): Test on backend-name and backend-address
2016-04-27 21:09:42 +02:00
Emile Vauge
87caf458df
Fix Kubernetes schema
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-27 10:05:04 +02:00
Emile Vauge
4ff4e4e626
Fix Kubernetes watch SSL
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-27 10:05:04 +02:00
Emile Vauge
53a2787626
Fix watch pods/services/rc/ingresses
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-25 17:13:26 +02:00
Emile Vauge
cac9927395
Fix namespace, fix PathPrefixStrip
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-22 13:57:00 +02:00
Emile Vauge
c0dd4c3209
Add unit test
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-22 13:57:00 +02:00
Emile Vauge
d82e1342fb
Fix integration test
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-22 13:57:00 +02:00
emile
720912e880
Add kubernetes Ingress backend
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-22 13:57:00 +02:00
Poney baker
6f13a2c0c7
feat(consul-catalog): Remove frontend when backends disabled
2016-04-22 11:55:31 +02:00
Emile Vauge
06d2f343dd
Fix KV backend
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-19 23:49:26 +02:00
Samuel BERTHE
45d6a326cd
fix(consul-provider): Compare consul catalog tag keys with lowered case
2016-04-19 17:27:19 +02:00
Emile Vauge
2a3a34a80c
Fix Marathon backend
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-19 12:05:28 +02:00
Emile Vauge
36338b4928
add backoff to marathon provider
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-16 17:21:24 +02:00
Vincent Demeester
4144638be4
Support stop chan on docker provider
...
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-04-16 14:46:35 +02:00
Emile Vauge
c1078c4374
Fix races
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-14 15:27:42 +02:00
kevin
a15578a8f6
Add support for maximum connections for backends.
2016-04-13 09:37:11 -07:00
Emile Vauge
a9e615b3c7
Fix period in frontend name in KV store
2016-04-13 14:56:51 +02:00
Samuel BERTHE
4f044cf2f9
feat(consul-catalog-provider): + setting unique backend name + backend redirecting to internal container ip
2016-04-13 08:05:44 +02:00
Vincent Demeester
866b9835a6
Migrate traefik to engine-api
...
The docker provider now uses docker/engine-api and
vdemeester/docker-events instead of fsouza-dockerclient.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-04-08 14:21:02 +02:00
Emile Vauge
bcc5f24c0f
Add GoSafe goroutine launch
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-04-01 14:01:31 +02:00
Emile Vauge
d5e1d2efd5
Fix documentation
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-03-31 16:17:59 +02:00
Emile Vauge
bb072a1f8f
Add backwards compatibility
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-03-31 13:11:18 +02:00
Emile Vauge
8737530a7d
Refactor frontends rules
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-03-31 13:11:07 +02:00
Emile Vauge
6e484e5c2d
add let's encrypt support
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-03-21 20:15:28 +01:00
Nikita Borzykh
c313950891
Add exposedByDefault option to marathon section
2016-03-21 12:37:02 +03:00
Advait Shinde
7674a82801
Fatalf for timeout cases.
2016-03-05 20:43:44 +00:00
Advait Shinde
d63d2a8a26
Support libkv.WatchTree chan errors:
...
- libkv.WatchTree returns a channel whose messages represent changes
to the watched tree. In situations where libkv cannot read from the
underlying store, libkv will close the provided channel.
- This PR handles this edge case and fixes #238 .
2016-03-05 20:38:33 +00:00
Graham Taylor
3063251d43
Use event stream API instead of event subscriptions
2016-03-02 09:22:14 +00:00
Emile Vauge
defbb44b35
Fix docker network
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-03-01 11:52:30 +00:00
Advait Shinde
3cf848958f
Support multiple endpoints for KV stores:
...
- Fixes #222
2016-02-25 23:34:51 +00:00
Thomas Boerger
dc10c56b35
Integrated TLS auth for etcd and consul
2016-02-24 23:32:34 +01:00
Emile Vauge
1881d5eeed
Transfer emilevauge/traefik to containous/traefik
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-02-24 17:38:36 +01:00
David Keijser
ae275c9e60
Consul catalog provider
...
Fixes #176
2016-02-24 09:23:27 +01:00
emile
9a9c8e5709
Add Marathon TLS client config
...
Signed-off-by: emile <emile@vauge.com>
2016-02-18 12:42:59 +00:00
Advait Shinde
aacedcc4b3
Implement /traefik/alias
for KV stores.
2016-02-15 18:14:57 -05:00
emile
c6c3af8099
Fix regression on marathon backend
...
Signed-off-by: emile <emile@vauge.com>
2016-02-12 15:03:28 +01:00
emile
a8cc26fd91
Add entrypoints to providers
2016-02-10 12:14:16 +01:00
emile
81cb00573f
Fix tests to accept entrypoints
2016-02-10 12:14:16 +01:00
Graham Taylor
2d79c500df
Fix #170 - lookup backend for marathon plugin so we can specify traefik.backend via labels on the container
2016-02-05 18:01:47 +00:00
Patrick O'Connor
31e0340959
Updated getEscapedName with slash to dash instead of space
...
Remove only the first slash, convert the rest to dash
2016-02-03 12:07:08 -08:00
emile
35070f7c1c
Use of Viper and cobra
2016-01-27 13:56:46 +01:00
emile
c46ffed846
Add basic authentication support in Marathon
2016-01-18 13:23:38 +01:00
Dylan Meissner
cfbd43d1ee
Marathon provider uses port or portIndex from label.
2016-01-12 06:46:29 -08:00
emile
e728f32a15
Removes getBool from kv provider, fixes https://github.com/emilevauge/traefik/issues/117
2015-12-04 09:28:43 +01:00
emile
8fdd0b20d1
Add filter task by running status in marathon
2015-12-01 22:53:31 +01:00
emile
6e62625ebf
Add GetBool function in KV provider, used by passHostHeader
2015-11-22 23:39:43 +01:00
KM Tong
76bd04e349
Merge branch 'master' into docker-tls
2015-11-20 23:13:26 +08:00
唐家文
a8a78b8ea3
docker TLS support
2015-11-20 23:05:06 +08:00
Vincent Demeester
4d485e1b6b
Refactor providers and add tests
...
- Add a `baseProvider` struct with common
- Refactor docker, kv(s) and marathon providers (spliting into small pieces)
- Add unit tests
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-19 17:22:17 +01:00
Peter Olds
481a4b2096
Replace [ and ] in frontend names
...
Signed-off-by: Peter Olds <polds@kyanicorp.com>
2015-11-12 17:04:19 -07:00
Vincent Demeester
15318c4631
Fix docker labels (frontend.*)
...
Using Docker provider, you can specify `traefik.frontend.rule` and
`traefik.frontend.value` labels. If they are not both provided, there is
a default behavior. On the current master, if they are not defined, the
container is filtered (and thus the default behavior is broken).
Fixes that.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-05 15:14:25 +01:00
Vincent Demeester
89bb1ae835
Linting provider package
...
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-02 21:15:03 +01:00
Vincent Demeester
cdade5f649
Rename NameProvider to Name
...
Because golint is gonna cry at some point otherwise.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-02 19:48:34 +01:00
Vincent Demeester
de0a57ec76
Refactor traefik with package
...
Split a bit traefik into package. The idea behind this refactor is to
start move inter-dependencies away and do some DRY or SRP.
- Adds a `provider` package, with providers except `web.go`
- Adds a `types` package with common struct.
- Move `gen.go` to an `autogen` package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-02 18:35:55 +01:00