-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Traefik does not register backend services when any service has a configuration error #3313
Comments
Thanks for your interest in Traefik ! It's the expected behavior. You can join the Traefik community Slack Note, your configuration contains errors: InsecureSkipVerify = true
# Enable debug mode
#
# Optional
# Default: false
#
debug = true
# Traefik logs file
# If not defined, logs to stdout
#
# Optional
#
[traefikLog]
filePath = "traefik.log"
# Log level
#
# Optional
# Default: "ERROR"
logLevel = "ERROR"
# Entrypoints to be used by frontends that do not specify any entrypoint.
# Each frontend can specify its own entrypoints.
#
# Optional
# Default: ["http"]
#
defaultEntryPoints = ["https","http"]
# ... I remove comments: InsecureSkipVerify = true
debug = true
[traefikLog]
filePath = "traefik.log"
logLevel = "ERROR"
defaultEntryPoints = ["https","http"]
# ... TOML is not base on indentation. You must write your configuration like that: InsecureSkipVerify = true
debug = true
logLevel = "ERROR"
defaultEntryPoints = ["https","http"]
[traefikLog]
filePath = "traefik.log"
# ... And the correct syntax for the entry points label is: <Label Key="traefik.frontend.entryPoints">https,http</Label> |
Thanks and good find, @ldez. We fixed our toml and redeployed but we're still seeing this issue. We think the ServiceManifest.xml caused the issue, as removing the entrypoints label allowed the backend services to register. Edit to clarify: We expect a mis-configured service not to register, but instead it seems to block all services from registering and this seems like a bug. Could you take another look? Here is our current toml: ################################################################
# Global configuration
################################################################
InsecureSkipVerify = true
logLevel = "ERROR"
defaultEntryPoints = ["https","http"]
#debug = true
#[traefikLog]
# filePath = "traefik.log"
[entryPoints]
[entryPoints.http]
address = ":30080"
[entryPoints.http.proxyProtocol]
insecure = true
[entryPoints.https]
address = ":30443"
[entryPoints.https.proxyProtocol]
insecure = true
[entryPoints.https.tls]
[entryPoints.https.tls.ClientCA]
optional = true
[[entryPoints.https.tls.certificates]]
certFile = "localhost.cert"
keyFile = "localhost.key"
[entryPoints.traefik]
address = ":38080"
################################################################
# API definition
################################################################
[api]
entryPoint = "traefik"
dashboard = true
################################################################
# Service Fabric provider
################################################################
[servicefabric]
clustermanagementurl = "https://localhost:19080"
apiversion = "3.0"
[serviceFabric.tls]
cert = "traefikcert.crt"
key = "traefikkey.key"
insecureskipverify = true
caoptional = true
|
@ldez I see your edit, thanks. The issue is this: a single misconfigured service breaks Traefik and puts all services at risk of an outage. I would expect Traefik to gracefully recover and register other backends, but that's not happening. Can we agree that sounds like a bug, is it expected behavior? |
This is kind of a big deal. |
I hope this behavior would change in the near future. Applications in service fabric can be unrelated to one another, developed by different teams running different products. If this behavior remains intact then it puts me in position where my availability depends on others configuring their apps right. We would be happy to have this behavior modified. |
Any updates on this issue? |
Experienced the same running multiple services via stack on a swarm. |
We have run into this issue too. We deployed a new service with a bad configuration. The name of the router/service was missing, ie: The provider scans all services and when it finds this error, it stops, not providing configuration for any services. In the perfect world, it would be nice if the provider looked at the labels for each service individually and if a syntax error was detected on one of the services was detected, it would be skipped but the other services would still be considered valid. If that was the case our cluster would still be up and running with almost all our services and only the misconfigured service would be down (we can't expect traefik to read minds, after all 😅 ). Are you able to confirm if there are any limitations that forces this behavior or if this should be considered a feature request or a bug @ldez ? This would be a great addition to an already rock solid product. 🙂 Can I provide any more information? |
Do you want to request a feature or report a bug?
BUG
What did you do?
What did you expect to see?
Traefik should register GoodService but not BorkService.
What did you see instead?
Neither backend service registers. Traefik Dashboard UI is entirely blank except for header. Errors are not visible unless viewing Traefik logs on server.
Output of
traefik version
: (What version of Traefik are you using?)1.6.0
What is your environment & configuration (arguments, toml, provider, platform, ...)?
Provider: Service Fabric v6.1.480.9494
Platform: Windows Server 2016 Datacenter
If applicable, please paste the log output at DEBUG level (
--logLevel=DEBUG
switch)The text was updated successfully, but these errors were encountered: