Fernandez Ludovic
7e5c258266
refactor(rancher): headers as pointer.
2018-01-03 23:26:03 +01:00
Fernandez Ludovic
22405a1259
feat(rancher): add rate limit and error pages labels.
2018-01-03 23:26:03 +01:00
Fernandez Ludovic
d0a6689413
feat(rancher): add headers labels.
2018-01-03 23:26:03 +01:00
Fernandez Ludovic
a1f47cb4db
feat(rancher): add HealthCheck labels.
2018-01-03 23:26:03 +01:00
Fernandez Ludovic
c884c7bb8a
feat(rancher): add WhitelistSourceRange label.
2018-01-03 23:26:03 +01:00
Fernandez Ludovic
c042098889
feat(rancher): add PassTLSCert label.
2018-01-03 23:26:03 +01:00
Fernandez Ludovic
c84fb9895e
Merge branch 'v1.5' into master
2018-01-02 15:21:17 +01:00
Fernandez Ludovic
23c1a9ca8e
Merge branch 'v1.4' into v1.5
2018-01-02 13:10:11 +01:00
Fernandez Ludovic
be0dd71bb4
refactor(kv): split provide and configuration.
2018-01-02 11:46:02 +01:00
Michael
e8e8b41eed
Normalize serviceName added to the service backend names
2018-01-02 10:52:03 +01:00
Ludovic Fernandez
bfd142b13b
Fix custom headers template
2018-01-02 10:10:04 +01:00
Ludovic Fernandez
75533b2beb
Use prefix for sticky and stickiness tags.
2018-01-02 09:44:02 +01:00
Fernandez Ludovic
b8a1cb5c68
refactor(marathon): fix labels and add tests.
2017-12-26 12:46:03 +01:00
Fernandez Ludovic
c1aefb8ad8
feat(marathon): add error pages and rate limits.
2017-12-26 12:46:03 +01:00
Fernandez Ludovic
576e87f398
feat(marathon): add headers labels.
2017-12-26 12:46:03 +01:00
Fernandez Ludovic
b4f6bf0f6a
feat(marathon): add frontend redirect labels.
2017-12-26 12:46:03 +01:00
Fernandez Ludovic
edc55aad3c
feat(marathon): add whitelistSourceRange label.
2017-12-26 12:46:03 +01:00
Fernandez Ludovic
38a3fe4316
feat(marathon): add PassTLSCert label.
2017-12-26 12:46:03 +01:00
Fernandez Ludovic
81e3b2dd4c
feat(marathon): add HealthCheck port label.
2017-12-26 12:46:03 +01:00
NicoMen
9a7821b8fa
Send empty configuration from file provider
2017-12-21 21:24:03 +01:00
Fernandez Ludovic
aeffe1036d
refactor: no rate limits must return nil.
2017-12-21 17:44:03 +01:00
Fernandez Ludovic
987e8a93bd
refactor: no error pages must return nil.
2017-12-21 17:44:03 +01:00
Ludovic Fernandez
59549d5f39
Use pointer of error pages
2017-12-21 11:26:03 +01:00
Fernandez Ludovic
4a7297d05c
Merge branch 'v1.5' into master
2017-12-20 15:47:15 +01:00
Fernandez Ludovic
a5335667bb
refactor(docker): move services tests.
2017-12-20 15:20:07 +01:00
Fernandez Ludovic
dd7a8a9a87
fix(docker): whitelist on services.
2017-12-20 15:20:07 +01:00
Fernandez Ludovic
942614dd23
feat(docker): add rate limit labels.
2017-12-20 15:20:07 +01:00
Fernandez Ludovic
c30ebe5f90
feat(docker): add error pages labels.
2017-12-20 15:20:07 +01:00
Fernandez Ludovic
50757b5e99
refactor(docker): re-order templates functions.
2017-12-20 15:20:07 +01:00
Fernandez Ludovic
c26b9b1a5d
feat(docker): add HealthCheck labels.
2017-12-20 15:20:07 +01:00
Fernandez Ludovic
423385bca0
feat(docker): add passTLSCert label.
2017-12-20 15:20:07 +01:00
Nimi Wariboko Jr
3c7c6c4d9f
Mesos: Use slave.PID.Host as task SlaveIP.
2017-12-20 12:12:03 +01:00
ferhat elmas
705f3f1372
Drop unnecessary type conversions
2017-12-18 09:14:03 +01:00
Fernandez Ludovic
f6520727a3
Merge branch 'v1.5' into master
2017-12-15 22:16:48 +01:00
Michael
b17d5b80b8
Reload configuration when port change for one service
2017-12-15 20:52:03 +01:00
Michael
48b4eb5c0d
Fix bad Træfik update on Consul Catalog
2017-12-15 16:00:14 +01:00
Ludovic Fernandez
7ecd6d20ba
Support regex redirect by frontend
2017-12-15 11:48:03 +01:00
Ludovic Fernandez
5f6c5025d5
Fix Flaky Consul Catalog tests.
2017-12-13 11:54:03 +01:00
Tiscs Sun
c66d9de759
Custom headers by service labels for docker backends
2017-12-06 22:26:03 +01:00
ferhat elmas
6890dc1844
Simplification
2017-12-06 10:52:03 +01:00
Ludovic Fernandez
e2190bd9d5
Builders in k8s tests
2017-12-05 20:24:03 +01:00
Fernandez Ludovic
0472d19bd4
refactor: fix some code.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
1710800cc0
refactor(consulCatalog): review and split.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
c705d6f9b3
refactor(ecs): rewrite configuration system.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
be718aea11
refactor(mesos): rewrite configuration system.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
ca680710a2
refactor(rancher): rewrite configuration system.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
5f71a43758
refactor(eureka): rewrite configuration system.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
04dd63da1c
refactor(k8s): rewrite configuration system.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
cee022b935
refactor(marathon): rewrite configuration system.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
ae2ae85070
refactor(docker): rewrite configuration system.
2017-12-05 19:40:04 +01:00
Fernandez Ludovic
ce6bbbaa33
feat: labels/annotations parser.
2017-12-05 19:40:04 +01:00
Ludovic Fernandez
3a99c86cb3
Change custom headers separator
2017-12-04 11:40:03 +01:00
Michael
d6ad7e2e64
Fix empty IP for backend when dnsrr in Docker swarm mode
2017-12-01 14:34:03 +01:00
Ludovic Fernandez
aaf120f263
Reduce logs with new Kubernetes security annotations
2017-12-01 14:00:04 +01:00
Ludovic Fernandez
f084d2a28b
Fix Labels/annotation logs and values.
2017-11-30 09:26:03 +01:00
Fernandez Ludovic
3d452fd5b9
Merge branch 'v1.4' into master
2017-11-28 14:03:55 +01:00
Michael
47a5cfbd3e
Fix empty ip when container is stopped
2017-11-28 13:58:04 +01:00
Daniel Tomcej
4cb6241e93
Kubernetes security header annotations
2017-11-28 13:36:03 +01:00
Ludovic Fernandez
4bdeb33ac1
Docker labels
2017-11-28 11:16:03 +01:00
Fernandez Ludovic
9f6f637527
Merge branch 'v1.4' into master
2017-11-27 11:40:50 +01:00
Kwok-kuen Cheung
0f09551a76
Fix kubernetes path prefix rule with rewrite-target
2017-11-27 11:22:03 +01:00
Ludovic Fernandez
011b748a55
Change server receiver name.
2017-11-24 19:18:03 +01:00
Fernandez Ludovic
66591cf216
Merge tag 'v1.4.4' into master
2017-11-23 15:21:47 +01:00
Daniel Tomcej
7063da1c7d
Add docker security headers via labels
2017-11-22 19:40:04 +01:00
Tait Clarridge
6d2f4a0813
Add health check label to ECS
2017-11-21 11:06:03 +01:00
Alex Antonov
4b91204686
Marathon constraints filtering
2017-11-21 10:48:04 +01:00
Emile Vauge
7ddefcef72
Add file to storeconfig
2017-11-21 10:24:03 +01:00
Ludovic Fernandez
a6955ecf59
Vendor generated file from template
2017-11-20 15:26:03 +01:00
NicoMen
6619a787a3
Fix problems about duplicated and missing Docker backends/frontends.
2017-11-20 15:16:03 +01:00
Raúl Sánchez
aae17c817b
Fix issue with label traefik.backend.loadbalancer.stickiness.cookieName
2017-11-20 11:42:03 +01:00
Ludovic Fernandez
ab87bad952
Run Rancher tests cases in parallel.
2017-11-20 11:40:04 +01:00
Ludovic Fernandez
05a9350e57
Use contants from http package.
2017-11-20 09:40:03 +01:00
ryarnyah
7ed4ae2f8c
Add labels for traefik.frontend.entryPoints
& PassTLSCert
to Kubernetes
2017-11-20 02:12:03 +01:00
Manuel Zapf
5d6384e101
redirect to another entryPoint per frontend
2017-11-18 13:50:03 +01:00
NicoMen
66e489addb
Update libkv dependency
2017-11-17 17:22:03 +01:00
Ludovic Fernandez
722f299306
Support template as raw string.
2017-11-17 10:12:03 +01:00
Fernandez Ludovic
8719f2836e
Merge 'v1.4.3' into master
...
Release v1.4.3
2017-11-15 23:01:08 +01:00
Ludovic Fernandez
0c702b0b6b
Revert "Merge v1.4.2 into master"
2017-11-15 18:18:03 +01:00
Ludovic Fernandez
6fcab72ec7
Merge v1.4.2 into master
2017-11-14 16:48:03 +01:00
NicoMen
96a7cc483f
Add Traefik prefix to the KV key
2017-11-14 11:38:03 +01:00
Michael
5ee2cae85c
Fix Traefik reload if Consul Catalog tags change
2017-11-13 12:14:02 +01:00
SALLEYRON Julien
27d1b46835
Split Web into API/Dashboard, ping, metric and Rest Provider
2017-11-09 16:12:04 +01:00
Timo Reimann
384488ac02
Remove unused lightMarathonClient.
2017-11-09 12:40:02 +01:00
NicoMen
c469e669fd
Make the TLS certificates management dynamic.
2017-11-09 12:16:03 +01:00
Raúl Sánchez
07c6e33598
Update Rancher API integration to go-rancher client v2.
2017-11-05 13:02:03 +01:00
Fernandez Ludovic
2070aa9443
Merge 'v1.4.2' into master
2017-11-03 13:51:24 +01:00
Michael MATUR
972eea97fe
[ecs] - fix import order
2017-11-02 11:44:04 +01:00
Alex Antonov
02035d4942
Missing Backend key in configuration when application has no tasks
2017-11-01 11:26:03 +01:00
Félix P
93a46089ce
Support Host NetworkMode for ECS provider
2017-10-31 11:44:03 +01:00
NicoMen
dc66db4abe
Make the traefik.port label optional when using service labels in Docker containers.
2017-10-30 15:10:05 +01:00
NicoMen
a0e1cf8376
Fix IP address when Docker container network mode is container
2017-10-30 14:36:04 +01:00
NicoMen
da7b6f0baf
Make frontend names differents for similar routes
2017-10-30 12:06:03 +01:00
Blake Mesdag
d1d8b01dfb
Use Node IP in Swarm Standalone with "host" NetworkMode
2017-10-25 20:20:03 +02:00
Tait Clarridge
7c4353a0ac
Add missing functions for ECS template
2017-10-25 17:18:03 +02:00
Fernandez Ludovic
a0c72cdf00
Merge v1.4.1 into master
2017-10-25 11:36:14 +02:00
NicoMen
f0371da838
Add unique ID to Docker services replicas
2017-10-25 10:00:03 +02:00
Emile Vauge
de821fc305
fix healthcheck path
2017-10-23 15:48:03 +02:00
Fernandez Ludovic
e3cac7d0e5
fix(docker): Network filter.
2017-10-23 14:20:03 +02:00
Daniel Tomcej
d973096464
Add Custom header parsing to Docker Provider
2017-10-20 17:14:03 +02:00
Fernandez Ludovic
7192aa86b5
Merge 'v1.4.0' into master
2017-10-16 23:10:44 +02:00
Ludovic Fernandez
08503655d9
Backward compatibility for sticky
2017-10-16 17:38:03 +02:00
Michael
3afd6024b5
Fix consul catalog retry
2017-10-16 16:58:03 +02:00
Sergey Kirillov
8af39bdaf7
Changed Docker network filter to allow any swarm network
2017-10-13 12:00:03 +02:00
Ludovic Fernandez
8cb3f0835a
Stickiness cookie name.
2017-10-12 17:50:03 +02:00
Manuel Zapf
cba0898e4f
fix seconds to really be seconds
2017-10-12 16:26:03 +02:00
Timo Reimann
8d158402f3
Continue processing on invalid auth-realm annotation.
2017-10-12 15:48:03 +02:00
Marco Jantke
871d097b30
Fix traefik logs to behave like configured
2017-10-11 10:38:03 +02:00
Fernandez Ludovic
9faae7387e
Merge tag 'v1.4.0-rc5' into master
2017-10-10 17:17:44 +02:00
Timo Reimann
a5c644e719
Only listen to configured k8s namespaces.
2017-10-10 16:26:03 +02:00
Ludovic Fernandez
a9d4b09bdb
Stickiness cookie name
2017-10-10 11:10:02 +02:00
Fernandez Ludovic
cf508b6d48
Merge 'v1.4.0-rc4' into master
2017-10-02 17:18:24 +02:00
Ludovic Fernandez
5cc49e2931
bug
command.
2017-10-02 10:32:02 +02:00
jeffreykoetsier
d41e28fc36
Handle empty ECS Clusters properly
2017-09-29 16:56:03 +02:00
SALLEYRON Julien
64c52a6921
Consul catalog remove service failed
2017-09-29 16:30:03 +02:00
Fernandez Ludovic
d6ef8ec3d1
Merge branch 'v1.4' into master
2017-09-21 11:37:33 +02:00
SALLEYRON Julien
795a346006
Flaky tests and refresh problem in consul catalog
2017-09-20 19:08:02 +02:00
Fernandez Ludovic
2cbf9cae71
Merge tag 'v1.4.0-rc3' into master
2017-09-18 21:52:44 +02:00
Ludovic Fernandez
cb05f36976
Manage Headers for the Authentication forwarding.
2017-09-18 17:48:07 +02:00
Martin Proks
0a0cf87625
Fix rancher host IP address
2017-09-15 12:30:03 +02:00
Manuel Zapf
63b581935d
Add stack name to backend name generation to fix rancher metadata backend
2017-09-12 15:06:04 +02:00
Fernandez Ludovic
9fba37b409
Merge v1.4.0-rc2 into master
2017-09-09 01:00:48 +02:00
SALLEYRON Julien
f80a6ef2a6
Fix consul catalog refresh problems
2017-09-08 20:50:04 +02:00
Michael
c19cce69fa
Add basic auth for ecs
2017-09-07 17:34:03 +02:00
Michael
b705e64a8a
Add Basic auth for consul catalog
2017-09-07 15:28:02 +02:00
Michael
9ce4f94818
ECS provider refactoring
2017-09-06 12:10:05 +02:00
Manuel Zapf
cd6c58a372
fix rancher api environment get
2017-09-06 10:50:04 +02:00
Fernandez Ludovic
7c2ba62b56
doc: structural review
...
- user-guide review.
- add DataDog and StatD configuration.
- sync sample.toml and doc.
- split entry points doc.
- Deprecated.
2017-08-28 23:02:04 +02:00
Daniel Rampelt
52b69fbcb8
Add forward authentication option
2017-08-25 18:22:03 +02:00
Michael
f16219f90a
Exposed by default feature in Consul Catalog
2017-08-25 17:32:03 +02:00
SALLEYRON Julien
e0af17a17a
Refactor globalConfiguration / WebProvider
2017-08-25 16:10:03 +02:00
Michael
086a85d2f0
Enable loadbalancer.sticky for ECS
2017-08-25 11:42:03 +02:00
Alex Antonov
98dfd2ba0e
Added a check to ensure clientTLS configuration contains either a cert or a key
2017-08-25 10:26:02 +02:00
Michael
8765494cbd
Add support for several ECS backends
2017-08-22 11:46:03 +02:00
Alex Antonov
ec3e2c08b8
Support multi-port service routing for containers running on Marathon
2017-08-21 10:46:03 +02:00
Timo Reimann
b80ecd51a7
Use default frontend priority of zero.
2017-08-18 16:14:03 +02:00
Timo Reimann
ea3510d1f3
Add support for readiness checks.
2017-08-18 03:08:03 +02:00
Ludovic Fernandez
759c269dee
Code cleaning.
2017-08-18 02:18:02 +02:00
thomasbach76
7ff6c32452
Add the sprig functions in the template engine
2017-08-10 20:42:39 +02:00
Kirill Orlov
94f922cd28
Added ability to override frontend priority for k8s ingress router
2017-07-29 18:35:23 +02:00
Timo Reimann
8cb44598c0
[marathon] Use test builder.
...
This change introduces the builder pattern to the Marathon unit tests in
order to simplify and reduce the amount of testing boilerplate.
Additional changes:
- Add missing unit tests.
- Make all tests look consistent.
- Use dedicated type for task states for increased type safety.
- Remove obsoleted getApplication function.
2017-07-21 17:15:29 +02:00
Fernandez Ludovic
c36e0b3b06
refactor: add Safe everywhere is needing.
2017-07-20 14:59:54 +02:00
Timo Reimann
3174fb8861
[marathon] Assign filtered tasks to apps contained in slice.
...
We previously assigned them to a copy of each application, which
effectively disabled all filtering.
Fixes a bug introduced along commit 779eeba
.
2017-07-20 10:39:27 +02:00
Timo Reimann
779eeba650
[marathon] Use single API call to fetch Marathon resources.
...
Change Marathon provider to make just one API call instead of two per
configuration update by means of specifying embedded resources, which
enable retrieving multiple response types from the API at once. Apart
from the obvious savings in API calls, we primarily gain a consistent
view on both applications and tasks that allows us to drop a lot of
correlation logic. Additionally, it will serve as the basis for the
introduction of readiness checks which require application/task
consistency for correct leverage on the proxy end.
Additional changes:
marathon.go:
- Filter on tasks now embedded inside the applications.
- Reduce/simplify signature on multiple template functions as we do not
need to check for proper application/task correlation anymore.
- Remove getFrontendBackend in favor of just getBackend.
- Move filtering on enabled/exposed applications from `taskFilter` to
`applicationFilter`. (The task filter just reached out to the
applications anyway, so it never made sense to locate it with the
tasks where the filter was called once for every task even though the
result would never change.)
- Remove duplicate constraints filter in tasks, where it neither made
sense to keep as it operates on the application level only.
- Add context to rendering error.
marathon_test.go:
- Simplify and reduce numerous tests.
- Convert tests with high number of cases into parallelized sub-tests.
- Improve readability/structure for several tests.
- Add missing test for enabled/exposed applications.
- Simplify the mocked Marathon server.
marathon.tmpl:
- Update application/task iteration.
- Replace `getFrontendBackend` by `getBackend`.
2017-07-11 14:35:01 +02:00
Ludovic Fernandez
d653a348b1
Factorize labels
...
* refactor(accesslog): factorize file name.
* traefik.frontend.rule
* traefik.frontend.value
* traefik.backend.circuitbreaker.expression
* traefik.enable
* traefik.backend.loadbalancer.method
* traefik.backend.loadbalancer.sticky
* traefik.backend.maxconn.amount
* traefik.backend.maxconn.extractorfunc
* traefik.port
* traefik.tags
* traefik.backend
* traefik.weight
* traefik.domain
* traefik.protocol
* traefik.frontend.passHostHeader
* traefik.frontend.whitelistSourceRange
* traefik.frontend.priority
* traefik.frontend.entryPoints
* traefik.frontend.auth.basic
* traefik.backend.id
* traefik.backend.circuitbreaker
* traefik.frontend.rule.type
* traefik.portIndex
* refactor(docker): specific labels
* refactor(rancher): specific labels
* traefik.backend.healthcheck.*
* refactor(providers): factorize labels.
2017-07-10 16:58:12 +02:00
Fernandez Ludovic
a7ec785994
refactor(dynamodb): Use Traefik Logger.
2017-07-08 00:05:53 +02:00
Fernandez Ludovic
46faa7a745
refactor(ecs): Use Traefik Logger.
2017-07-08 00:05:53 +02:00
Fernandez Ludovic
54e3f08833
refactor(marathon): Use Traefik Logger.
2017-07-08 00:05:53 +02:00
Fernandez Ludovic
b365836c57
feat: Add Trace in Base Provider.
2017-07-08 00:05:53 +02:00
Matt Christiansen
4dfbb6d489
Add marathon label to configure basic auth, similar to docker and rancher providers
2017-07-07 23:36:04 +02:00
Michael Laccetti
41dd124a4b
kubernetes ingress rewrite-target implementation
...
* Adding support for `ingress.kubernetes.io/rewrite-target`
We create a rule using the `PathPrefixStrip` to trim out the bit in the rewrite rule.
2017-07-07 21:27:54 +02:00
Fernandez Ludovic
8f845bac74
Merge tag 'v1.3.3'
2017-07-06 19:37:12 +02:00
Timo Reimann
4892b2b0da
[kubernetes] Undo the Secrets controller sync wait.
...
When Secrets permissions have not been granted (which is likely to be
the case for users not needing the basic auth feature), the watch on the
Secrets API will never yield a response, thereby causing the controller
to never sync successfully, and in turn causing the check for all
controller synchronizations to fail consistently. Thus, no event will
ever be handled.
2017-07-06 17:12:25 +02:00
Vincent Demeester
b7daa2f3a4
Update traefik dependencies (docker/docker and related) ( #1823 )
...
Update traefik dependencies (docker/docker and related)
- Update dependencies
- Fix compilation problems
- Remove vdemeester/docker-events (in docker api now)
- Remove `integration/vendor`
- Use `testImport`
- update some deps.
- regenerate the lock from scratch (after a `glide cc`)
2017-07-06 16:28:13 +02:00
Timo Reimann
91ce78da46
[k8s] Tell glog to log everything into STDERR.
...
Logging errors into a file inside a minimalistic container might not be
possible, and glog bails out with an exit code > 0 if it fails.
2017-07-04 17:11:50 +02:00
Fernandez Ludovic
3776e58041
Merge branch 'v1.3'
2017-06-30 00:04:04 +02:00
Timo Reimann
6473002021
Continue Ingress processing on auth retrieval failure.
2017-06-29 16:13:53 +02:00
Timo Reimann
4d89ff7e18
Improve basic auth handling.
...
- Enrich logging.
- Move error closer to producer.
2017-06-29 16:13:53 +02:00
Timo Reimann
c5c63071ca
Wait for secret controller to finish synchronizing.
...
Prevents a race on closing the events channel, possibly leading to a
double-close.
2017-06-29 16:13:53 +02:00
Richard Shepherd
4128c1ac8d
Allow file provider to load config from files in a directory.
2017-06-27 16:58:04 +02:00
Fernandez Ludovic
01bb0a80ab
doc: update Rancher documentation.
2017-06-21 14:54:36 +02:00
vholovko
db1baf80a9
Speeding up health change detection by separating it from catalog services check.
2017-06-20 20:27:04 +02:00
Martin Baillie
9cb07d026f
Refactor into dual Rancher API/Metadata providers
...
Introduces Rancher's metadata service as an optional provider source for
Traefik, enabled by setting `rancher.MetadataService`.
The provider uses a long polling technique to watch the metadata service and
obtain near instantaneous updates. Alternatively it can be configured to poll
the metadata service every `rancher.RefreshSeconds` by setting
`rancher.MetadataPoll`.
The refactor splits API and metadata service code into separate source
files respectively, and specific configuration is deferred to
sub-structs.
Incorporates bugfix #1414
2017-06-20 19:08:53 +02:00
tanyadegurechaff
984ea1040f
Fix error handling for docker swarm mode
2017-06-20 18:10:21 +02:00
Fernandez Ludovic
2a578748fd
Merge branch 'v1.3'
2017-06-14 22:26:35 +02:00
Fernandez Ludovic
ccc429e36c
refactor(eureka): Use Traefik Logger.
2017-06-14 19:49:45 +02:00
Fernandez Ludovic
0d25ba3cbc
refactor: Add explicit error message.
2017-06-14 19:49:45 +02:00
Alex Antonov
7d6c778211
Enhanced flexibility in Consul Catalog configuration
2017-06-12 21:18:55 +02:00
Fernandez Ludovic
9c27a98821
refactor: move Marathon client mock.
...
refactor: remove old Marathon mock.
refactor: generate new Marathon mock.
mockery -recursive -dir=vendor/github.com/gambol99/ -name=Marathon -output=provider/marathon/mocks
2017-06-12 20:27:54 +02:00
Fernandez Ludovic
2223587fc0
refactor: ordering imports.
2017-06-09 23:55:49 +02:00
Fernandez Ludovic
63f9bccf9f
refactor: fix typos.
...
refactor: typo in whitelister file name.
2017-06-09 23:55:49 +02:00
Alex Antonov
39388a2199
Exported getSubDomain function from Marathon provider to be able to use in custom templates
2017-06-06 14:31:30 +02:00
Fernandez Ludovic
71111708d4
Merge branch 'v1.3' into master
2017-06-02 19:56:15 +02:00
Kekoa Vincent
ac5ab13a4c
Fix errors caused by incorrect type being sent for the Kubernetes Secret watcher #1596
...
This was likely just a copy-paste issue, the bug should be benign because the secret is cast to the correct type later, but the additional logging is a major annoyance, and is happening even if basic auth is not in use with Kubernetes.
2017-06-02 19:20:47 +02:00
Fernandez Ludovic
cbccdd51c5
refactor: Logs & errors review.
...
- log & error: remove format if not necessary, add if necessary.
- add constants for k8s annotations.
- fix typos
2017-05-30 23:33:27 +02:00
Fernandez Ludovic
2833d68f15
Merge branch 'v1.3' into merge-back-1_3_0-rc3
2017-05-24 20:39:38 +02:00
Fernandez Ludovic
5b896bb46c
fix: Empty Rancher launch config.
2017-05-24 11:20:30 +02:00
Timo Reimann
9967494996
[k8s] Ignore Ingresses with empty Endpoint subsets.
...
We previously fell back to using ClusterIPs. However, the approach can
lead to all kinds of problems since Ingresses rely on being able to talk
to Endpoints directly. For instance, it can break stickiness and
retries.
2017-05-23 21:15:06 +02:00
Timo Reimann
b392023c37
Add additional tests for PathStrip{Prefix}.
2017-05-23 17:31:34 +02:00
Timo Reimann
f7d9dfafd0
[k8s] Remove rule type path list.
...
Instead of doing sanity checks in the Kubernetes provider, we just
accept any non-empty value from the annotation and rely on the server
part to filter out unknown rules.
This allows us to automatically stay in sync with the currently
supported Path matchers/modifiers.
2017-05-23 17:31:34 +02:00
MaZderMind
5f0b215e90
IP Whitelists for Frontend (with Docker- & Kubernetes-Provider Support)
2017-05-19 15:19:29 +02:00
Emile Vauge
aa4ed088bb
Unexport Kvclient & StoreType from kv Provider
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-05-11 19:33:32 +02:00
Emile Vauge
3a4ec19817
Add missing description tag
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-05-11 19:33:32 +02:00
Timo Reimann
fe6c35bc6b
[Kubernetes] Ignore missing pass host header annotation.
...
A missing annotation would previously be handled in the default error
case, causing a noisy warning-level log message to be generated each
time.
We add another case statement to ignore the case where the annotation is
missing from the annotations map.
Also piggybacking a minor improvement to the log message.
2017-05-10 19:32:45 +02:00
Volodymyr Holovko
6fd40dbaa9
Using more sensible consul blocking query to detect health check changes
2017-05-04 16:54:27 +02:00
Emile Vauge
4e186cecf9
Merge v1.2.3 master
2017-05-03 23:24:53 +02:00
Emile Vauge
bf3f6e2029
Fix Docker filter empty rule
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-05-03 22:53:58 +02:00
Timo Reimann
1dcf8d2ea6
Add tests lost during PR 1320.
...
The tests part of this change were originally in PR 1320 but got lost
during one of the rebases. Let's bring them back in.
2017-05-03 16:27:21 +02:00
tanyadegurechaff
79cbe56a41
Make port deterministic
2017-05-03 15:28:53 +02:00
Youcef Yekhlef
8de107866f
feat(rancher): added constraint management for rancher provider
2017-05-03 13:48:44 +02:00
Alex Peters
89da3b15a4
Add basic auth to kubernetes provider
2017-05-03 13:18:40 +02:00
Matthew Kelch
44db6e9290
mprove Rancher provider functionality:
...
- Improves default filtering behavior to filter by container health/healthState
- Optionally allows filtering by service health/healthState
- Allows configuration of refresh interval
2017-04-29 15:37:54 -04:00
Timo Reimann
d57f83c31c
Make Traefik health checks label-configurable with Marathon.
...
For the two existing health check parameters (path and interval), we add
support for Marathon labels.
Changes in detail:
- Extend the Marathon provider and template.
- Refactor Server.loadConfig to reduce duplication.
- Refactor the healthcheck package slightly to accommodate the changes
and allow extending by future parameters.
- Update documentation.
2017-04-28 18:17:25 +02:00
Tristan Colgate
de6d771bc2
Add libkv Username and Password
2017-04-28 16:28:57 +02:00
Regner Blok-Andersen
d24ba90900
Updating Kubernetes tests to properly test missing endpoints code path
...
This fixes #1307
2017-04-28 15:25:03 +02:00
Timo Reimann
7eb3051a57
Improve and extend TestGetBackendServer.
...
- Cover error cases.
- Use sub-tests.
2017-04-26 11:35:30 +02:00
Timo Reimann
a4355569af
Extract index functionality into generic helper function.
...
Allows to move specific test cases to dedicated tests for new function.
2017-04-26 11:35:30 +02:00
Timo Reimann
16c86022bb
Cosmetic changes.
2017-04-26 11:35:30 +02:00
Timo Reimann
e615e833bc
Use go-spew to display diffs.
2017-04-26 11:35:30 +02:00
Diego de Oliveira
592a12dca2
Fix unsound behavior
...
The IP-Per-Task feature changed the behavior for
clients without this configuration (using the task IP instead
of task hostname). This patch make the new behavior available
just for Mesos installation with IP-Per-Task enabled. It also
make it possible to force the use of task's hostname.
2017-04-26 11:35:30 +02:00
Timo Reimann
099d605aed
Check for explicitly defined Marathon port first.
...
Previously, we did the check too late resulting in the traefik.port
label not being effective.
The change comes with additional refactorings in production and tests.
2017-04-25 23:18:30 +02:00
Timo Reimann
f1bc80ca12
Change getLabel signature to return bool instead of error.
...
The comma ok idiom fits better.
2017-04-25 23:18:30 +02:00
Timo Reimann
b44aca64e3
Move Docker test provider instantiation into t.Run body.
2017-04-25 14:56:43 +02:00
Emile Vauge
af1d0a7dce
Fix Consul catalog prefix flags
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-04-25 10:51:03 +02:00
mattcollier
8764c43eaf
Fix typo in command line help.
2017-04-21 14:01:45 +02:00
Manuel Laufenberg
8a892b21e1
Add Basic Auth per Frontend for Rancher & Docker Dynamic Provider
2017-04-19 21:05:43 +02:00
Martin Baillie
d1ee72b308
Merge branch 'master' into rancher-provider-pagination-fixes
2017-04-19 20:47:30 +10:00
Vincent Demeester
542c3673e4
Extract providers to their own package
...
This is just doing that and making it compile :)
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2017-04-18 13:24:17 +02:00
Martin Baillie
73f09f389e
Fix Rancher API pagination limits
...
This fix allows the Traefik Rancher provider to obtain a complete view
of the environments, services and containers being managed by the
Rancher deployment.
2017-04-18 19:48:43 +10:00
Vincent Demeester
b04ba36682
Update some docker provider test
...
- Split the file into smaller ones (docker, swarm and service tests)
- Use some builder to reduce a little bit the noise for creating containers
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2017-04-17 15:40:55 +02:00
Vincent Demeester
3f293ee25b
Move docker provider to its own package 👼
...
Makes it simpler to manage :)
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2017-04-17 15:40:55 +02:00
Emile Vauge
aeb17182b4
Merge v1.2.1-master
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-04-11 22:36:56 +02:00
Timo Reimann
f2297dd3ed
k8s: Do not log service fields when GetService is failing.
...
Update tests too.
2017-04-11 22:36:55 +02:00
Emile Vauge
6edc0926eb
sub-tests + Fatalf/Errorf
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-04-11 22:36:55 +02:00
Emile Vauge
a456d36cc6
Add Docker task list test
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-04-11 22:36:55 +02:00
yshay
5c2d91ab84
Add check on task status in addition to desired status
2017-04-11 22:36:55 +02:00
Sebastian
a73fee50dc
Docker: Added warning if network could not be found ( #1310 )
...
* Added warning if network could not be found
* Removed regex import from master
* Corrected wrong function call
2017-04-11 22:36:55 +02:00
Regner Blok-Andersen
b02393915e
Abort Kubernetes Ingress update if Kubernetes API call fails ( #1295 )
...
* Abort Kubernetes Ingress update if Kubernetes API call fails
Currently if a Kubernetes API call fails we potentially remove a working service from Traefik. This changes it so if a Kubernetes API call fails we abort out of the ingress update and use the current working config. Github issue: #1240
Also added a test to cover when requested resources (services and endpoints) that the user has specified don’t exist.
* Specifically capturing the tc range as documented here: https://blog.golang.org/subtests
* Updating service names in the mock data to be more clear
* Updated expected data to match what currently happens in the loadIngress
* Adding a blank Servers to the expected output so we compare against that instead of nil.
* Replacing the JSON test output with spew for the TestMissingResources test to help ensure we have useful output incase of failures
* Adding a temporary fix to the GetEndoints mocked function so we can override the return value for if the endpoints exist.
After the 1.2 release the use of properExists should be removed and the GetEndpoints function should return false for the second value indicating the endpoint doesn’t exist. However at this time that would break a lot of the tests.
* Adding quick TODO line about removing the properExists property
* Link to issue 1307 re: properExists flag.
2017-04-11 22:36:55 +02:00
Emile Vauge
b99a919bb4
Refactor k8s client config
...
Signed-off-by: Emile Vauge <emile@vauge.com>
2017-04-11 22:36:55 +02:00
Owen Marshall
c876462eb0
Chunk taskArns into groups of 100
...
If the ECS cluster has > 100 tasks, passing them to
ecs.DescribeTasksRequest() will result in the AWS API returning
errors.
This patch breaks them into chunks of at most 100, and calls
DescribeTasks for each chunk.
We also return early in case ListTasks returns no values; this
prevents DescribeTasks from throwing HTTP errors.
2017-04-11 22:36:55 +02:00
Ed Robinson
6f4c5dd4ce
Upgrade k8s.io/client-go to version 2
2017-04-07 11:52:18 +01:00
Nic Grayson
4eb779e596
Allow traefik.port to not be in the list of marathon ports
2017-04-06 18:47:35 +02:00
Kristian Klausen
b4dfb7223b
kv: Extend test with support for specifying custom error for Get/List
2017-04-06 10:28:11 +02:00
Kristian Klausen
f621a46a2e
kv: Log error when checking existence of server url key
2017-04-06 10:28:11 +02:00
Kristian Klausen
c864d80270
kv: Add test for server without url key
2017-04-06 10:28:11 +02:00
Kristian Klausen
020a8e31ab
kv: Ignore backend servers with no url
...
Currently with a kv tree like:
/traefik/backends/b1/servers/ẁeb1
/traefik/backends/b1/servers/web2
/traefik/backends/b1/servers/web2/url
Traefik would try to forward traffic to web1, which is impossible as
traefik doesn't know the url of web1.
This commit solve that, by ignoring backend server with no url "key"
when generating the config.
This is very useful, for people who use etcd TTL feature. They can then
just "renew" the url key every X second, and if the server goes down, it
is automatic removed from traefik after the TTL.
2017-04-06 10:28:11 +02:00
Timo Reimann
056fe9ac0a
Switch duration configuration parameters over to flaeg.Duration.
2017-04-03 18:36:23 +02:00
tcoupin
5c16860486
Use service.project.domain instead of project-service.domain
2017-04-03 11:00:04 +02:00
tcoupin
0a7f9b5a71
Use docker-compose labels for frontend and backend names
2017-04-03 11:00:04 +02:00
Taylor Skinner
72e35af39f
add dynamo
...
Signed-off-by: Taylor Skinner <tskinn12@gmail.com>
add some comments
Signed-off-by: Taylor Skinner <tskinn12@gmail.com>
update readmes
make test runnable
Signed-off-by: Taylor Skinner <tskinn12@gmail.com>
make test
squash! add dynamo
add glide.lock
format imports
gofmt
update glide.lock
fixes for review
golint
clean up and reorganize tests
add dynamodb integration test
remove default region. clean up tests. consistent docs
forgot the region is required
DRY
make validate
update readme and commit dependencies
2017-03-16 10:12:26 -06:00
Florent BENOIT
1158eba7ac
Adding docker labels traefik.<servicename>.* properties like
...
- traefik.mycustomservice.port=443
- traefik.mycustomservice.frontend.rule=Path:/mycustomservice
- traefik.anothercustomservice.port=8080
- traefik.anothercustomservice.frontend.rule=Path:/anotherservice
all traffic to frontend /mycustomservice is redirected to the port 443 of the container while using /anotherservice will redirect to the port 8080 of the docker container
More documentation in the docs/toml.md file
Change-Id: Ifaa3bb00ef0a0f38aa189e0ca1586fde8c5ed862
Signed-off-by: Florent BENOIT <fbenoit@codenvy.com>
2017-03-14 08:45:47 +01:00
Timo Reimann
920b5bb15d
Support cluster-external Kubernetes client. ( #1159 )
...
Detect whether in-cluster or cluster-external Kubernetes client should
be used based on the KUBERNETES_SERVICE_{HOST,PORT} environment
variables.
Adds bearer token and CA certificate file path parameters.
2017-03-07 13:09:11 +01:00
Bruce Lee
aa75d5458d
Revert "Ensure that we don't add balancees with no health check runs if there is a health check defined on it"
...
This reverts commit ad12a7264e
.
2017-03-06 17:45:58 +01:00
Christophe Robin
4172a7c62e
Add task parser unit test for docker provider
2017-03-06 17:45:58 +01:00
Christophe Robin
355b4706d3
Fix docker issues with global and dead tasks
2017-03-06 17:45:58 +01:00
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