Use the same case everywhere
This commit is contained in:
parent
f6436663eb
commit
c7d336f958
179 changed files with 5118 additions and 4436 deletions
|
@ -67,267 +67,235 @@ func Test_decodeFileToNode_Toml(t *testing.T) {
|
|||
expected := &parser.Node{
|
||||
Name: "traefik",
|
||||
Children: []*parser.Node{
|
||||
{Name: "ACME",
|
||||
Children: []*parser.Node{
|
||||
{Name: "ACMELogging", Value: "true"},
|
||||
{Name: "CAServer", Value: "foobar"},
|
||||
{Name: "DNSChallenge", Children: []*parser.Node{
|
||||
{Name: "DelayBeforeCheck", Value: "42"},
|
||||
{Name: "DisablePropagationCheck", Value: "true"},
|
||||
{Name: "Provider", Value: "foobar"},
|
||||
{Name: "Resolvers", Value: "foobar,foobar"},
|
||||
}},
|
||||
{Name: "Domains", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "Main", Value: "foobar"},
|
||||
{Name: "SANs", Value: "foobar,foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "Main", Value: "foobar"},
|
||||
{Name: "SANs", Value: "foobar,foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "Email", Value: "foobar"},
|
||||
{Name: "EntryPoint", Value: "foobar"},
|
||||
{Name: "HTTPChallenge", Children: []*parser.Node{
|
||||
{Name: "EntryPoint", Value: "foobar"}}},
|
||||
{Name: "KeyType", Value: "foobar"},
|
||||
{Name: "OnHostRule", Value: "true"},
|
||||
{Name: "Storage", Value: "foobar"},
|
||||
{Name: "TLSChallenge"},
|
||||
},
|
||||
},
|
||||
{Name: "API", Children: []*parser.Node{
|
||||
{Name: "Dashboard", Value: "true"},
|
||||
{Name: "EntryPoint", Value: "foobar"},
|
||||
{Name: "Middlewares", Value: "foobar,foobar"},
|
||||
{Name: "Statistics", Children: []*parser.Node{
|
||||
{Name: "RecentErrors", Value: "42"}}}}},
|
||||
{Name: "AccessLog", Children: []*parser.Node{
|
||||
{Name: "BufferingSize", Value: "42"},
|
||||
{Name: "Fields", Children: []*parser.Node{
|
||||
{Name: "DefaultMode", Value: "foobar"},
|
||||
{Name: "Headers", Children: []*parser.Node{
|
||||
{Name: "DefaultMode", Value: "foobar"},
|
||||
{Name: "Names", Children: []*parser.Node{
|
||||
{Name: "accessLog", Children: []*parser.Node{
|
||||
{Name: "bufferingSize", Value: "42"},
|
||||
{Name: "fields", Children: []*parser.Node{
|
||||
{Name: "defaultMode", Value: "foobar"},
|
||||
{Name: "headers", Children: []*parser.Node{
|
||||
{Name: "defaultMode", Value: "foobar"},
|
||||
{Name: "names", Children: []*parser.Node{
|
||||
{Name: "name0", Value: "foobar"},
|
||||
{Name: "name1", Value: "foobar"}}}}},
|
||||
{Name: "Names", Children: []*parser.Node{
|
||||
{Name: "names", Children: []*parser.Node{
|
||||
{Name: "name0", Value: "foobar"},
|
||||
{Name: "name1", Value: "foobar"}}}}},
|
||||
{Name: "FilePath", Value: "foobar"},
|
||||
{Name: "Filters", Children: []*parser.Node{
|
||||
{Name: "MinDuration", Value: "42"},
|
||||
{Name: "RetryAttempts", Value: "true"},
|
||||
{Name: "StatusCodes", Value: "foobar,foobar"}}},
|
||||
{Name: "Format", Value: "foobar"}}},
|
||||
{Name: "EntryPoints", Children: []*parser.Node{
|
||||
{Name: "filePath", Value: "foobar"},
|
||||
{Name: "filters", Children: []*parser.Node{
|
||||
{Name: "minDuration", Value: "42"},
|
||||
{Name: "retryAttempts", Value: "true"},
|
||||
{Name: "statusCodes", Value: "foobar,foobar"}}},
|
||||
{Name: "format", Value: "foobar"}}},
|
||||
{Name: "acme",
|
||||
Children: []*parser.Node{
|
||||
{Name: "acmeLogging", Value: "true"},
|
||||
{Name: "caServer", Value: "foobar"},
|
||||
{Name: "dnsChallenge", Children: []*parser.Node{
|
||||
{Name: "delayBeforeCheck", Value: "42"},
|
||||
{Name: "disablePropagationCheck", Value: "true"},
|
||||
{Name: "provider", Value: "foobar"},
|
||||
{Name: "resolvers", Value: "foobar,foobar"},
|
||||
}},
|
||||
{Name: "domains", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "main", Value: "foobar"},
|
||||
{Name: "sans", Value: "foobar,foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "main", Value: "foobar"},
|
||||
{Name: "sans", Value: "foobar,foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "email", Value: "foobar"},
|
||||
{Name: "entryPoint", Value: "foobar"},
|
||||
{Name: "httpChallenge", Children: []*parser.Node{
|
||||
{Name: "entryPoint", Value: "foobar"}}},
|
||||
{Name: "keyType", Value: "foobar"},
|
||||
{Name: "onHostRule", Value: "true"},
|
||||
{Name: "storage", Value: "foobar"},
|
||||
{Name: "tlsChallenge"},
|
||||
},
|
||||
},
|
||||
{Name: "api", Children: []*parser.Node{
|
||||
{Name: "dashboard", Value: "true"},
|
||||
{Name: "entryPoint", Value: "foobar"},
|
||||
{Name: "middlewares", Value: "foobar,foobar"},
|
||||
{Name: "statistics", Children: []*parser.Node{
|
||||
{Name: "recentErrors", Value: "42"}}}}},
|
||||
{Name: "entryPoints", Children: []*parser.Node{
|
||||
{Name: "EntryPoint0", Children: []*parser.Node{
|
||||
{Name: "Address", Value: "foobar"},
|
||||
{Name: "ForwardedHeaders", Children: []*parser.Node{
|
||||
{Name: "Insecure", Value: "true"},
|
||||
{Name: "TrustedIPs", Value: "foobar,foobar"}}},
|
||||
{Name: "ProxyProtocol", Children: []*parser.Node{
|
||||
{Name: "Insecure", Value: "true"},
|
||||
{Name: "TrustedIPs", Value: "foobar,foobar"}}},
|
||||
{Name: "Transport", Children: []*parser.Node{
|
||||
{Name: "LifeCycle", Children: []*parser.Node{
|
||||
{Name: "GraceTimeOut", Value: "42"},
|
||||
{Name: "RequestAcceptGraceTimeout", Value: "42"}}},
|
||||
{Name: "RespondingTimeouts", Children: []*parser.Node{
|
||||
{Name: "IdleTimeout", Value: "42"},
|
||||
{Name: "ReadTimeout", Value: "42"},
|
||||
{Name: "WriteTimeout", Value: "42"}}}}}}}}},
|
||||
{Name: "Global", Children: []*parser.Node{
|
||||
{Name: "CheckNewVersion", Value: "true"},
|
||||
{Name: "Debug", Value: "true"},
|
||||
{Name: "SendAnonymousUsage", Value: "true"}}},
|
||||
{Name: "HostResolver", Children: []*parser.Node{
|
||||
{Name: "CnameFlattening", Value: "true"},
|
||||
{Name: "ResolvConfig", Value: "foobar"},
|
||||
{Name: "ResolvDepth", Value: "42"}}},
|
||||
{Name: "Log", Children: []*parser.Node{
|
||||
{Name: "FilePath", Value: "foobar"},
|
||||
{Name: "Format", Value: "foobar"},
|
||||
{Name: "Level", Value: "foobar"}}},
|
||||
{Name: "Metrics", Children: []*parser.Node{
|
||||
{Name: "Datadog", Children: []*parser.Node{
|
||||
{Name: "Address", Value: "foobar"},
|
||||
{Name: "PushInterval", Value: "10s"}}},
|
||||
{Name: "InfluxDB", Children: []*parser.Node{
|
||||
{Name: "Address", Value: "foobar"},
|
||||
{Name: "Database", Value: "foobar"},
|
||||
{Name: "Password", Value: "foobar"},
|
||||
{Name: "Protocol", Value: "foobar"},
|
||||
{Name: "PushInterval", Value: "10s"},
|
||||
{Name: "RetentionPolicy", Value: "foobar"},
|
||||
{Name: "Username", Value: "foobar"}}},
|
||||
{Name: "Prometheus", Children: []*parser.Node{
|
||||
{Name: "Buckets", Value: "42,42"},
|
||||
{Name: "EntryPoint", Value: "foobar"},
|
||||
{Name: "Middlewares", Value: "foobar,foobar"}}},
|
||||
{Name: "StatsD", Children: []*parser.Node{
|
||||
{Name: "Address", Value: "foobar"},
|
||||
{Name: "PushInterval", Value: "10s"}}}}},
|
||||
{Name: "Ping", Children: []*parser.Node{
|
||||
{Name: "EntryPoint", Value: "foobar"},
|
||||
{Name: "Middlewares", Value: "foobar,foobar"}}},
|
||||
{Name: "Providers", Children: []*parser.Node{
|
||||
{Name: "Docker", Children: []*parser.Node{
|
||||
{Name: "Constraints", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "DefaultRule", Value: "foobar"},
|
||||
{Name: "Endpoint", Value: "foobar"},
|
||||
{Name: "ExposedByDefault", Value: "true"},
|
||||
{Name: "Network", Value: "foobar"},
|
||||
{Name: "SwarmMode", Value: "true"},
|
||||
{Name: "SwarmModeRefreshSeconds", Value: "42"},
|
||||
{Name: "TLS", Children: []*parser.Node{
|
||||
{Name: "CA", Value: "foobar"},
|
||||
{Name: "CAOptional", Value: "true"},
|
||||
{Name: "Cert", Value: "foobar"},
|
||||
{Name: "InsecureSkipVerify", Value: "true"},
|
||||
{Name: "Key", Value: "foobar"}}},
|
||||
{Name: "UseBindPortIP", Value: "true"},
|
||||
{Name: "Watch", Value: "true"}}},
|
||||
{Name: "File", Children: []*parser.Node{
|
||||
{Name: "DebugLogGeneratedTemplate", Value: "true"},
|
||||
{Name: "Directory", Value: "foobar"},
|
||||
{Name: "Filename", Value: "foobar"},
|
||||
{Name: "TraefikFile", Value: "foobar"},
|
||||
{Name: "Watch", Value: "true"}}},
|
||||
{Name: "Kubernetes", Children: []*parser.Node{
|
||||
{Name: "CertAuthFilePath", Value: "foobar"},
|
||||
{Name: "DisablePassHostHeaders", Value: "true"},
|
||||
{Name: "Endpoint", Value: "foobar"},
|
||||
{Name: "IngressClass", Value: "foobar"},
|
||||
{Name: "IngressEndpoint", Children: []*parser.Node{
|
||||
{Name: "Hostname", Value: "foobar"},
|
||||
{Name: "IP", Value: "foobar"},
|
||||
{Name: "PublishedService", Value: "foobar"}}},
|
||||
{Name: "LabelSelector", Value: "foobar"},
|
||||
{Name: "Namespaces", Value: "foobar,foobar"},
|
||||
{Name: "Token", Value: "foobar"}}},
|
||||
{Name: "KubernetesCRD",
|
||||
{Name: "address", Value: "foobar"},
|
||||
{Name: "forwardedHeaders", Children: []*parser.Node{
|
||||
{Name: "insecure", Value: "true"},
|
||||
{Name: "trustedIPs", Value: "foobar,foobar"}}},
|
||||
{Name: "proxyProtocol", Children: []*parser.Node{
|
||||
{Name: "insecure", Value: "true"},
|
||||
{Name: "trustedIPs", Value: "foobar,foobar"}}},
|
||||
{Name: "transport", Children: []*parser.Node{
|
||||
{Name: "lifeCycle", Children: []*parser.Node{
|
||||
{Name: "graceTimeOut", Value: "42"},
|
||||
{Name: "requestAcceptGraceTimeout", Value: "42"}}},
|
||||
{Name: "respondingTimeouts", Children: []*parser.Node{
|
||||
{Name: "idleTimeout", Value: "42"},
|
||||
{Name: "readTimeout", Value: "42"},
|
||||
{Name: "writeTimeout", Value: "42"}}}}}}}}},
|
||||
{Name: "global", Children: []*parser.Node{
|
||||
{Name: "checkNewVersion", Value: "true"},
|
||||
{Name: "sendAnonymousUsage", Value: "true"}}},
|
||||
{Name: "hostResolver", Children: []*parser.Node{
|
||||
{Name: "cnameFlattening", Value: "true"},
|
||||
{Name: "resolvConfig", Value: "foobar"},
|
||||
{Name: "resolvDepth", Value: "42"}}},
|
||||
{Name: "log", Children: []*parser.Node{
|
||||
{Name: "filePath", Value: "foobar"},
|
||||
{Name: "format", Value: "foobar"},
|
||||
{Name: "level", Value: "foobar"}}},
|
||||
{Name: "metrics", Children: []*parser.Node{
|
||||
{Name: "dataDog", Children: []*parser.Node{
|
||||
{Name: "address", Value: "foobar"},
|
||||
{Name: "pushInterval", Value: "10s"}}},
|
||||
{Name: "influxDB", Children: []*parser.Node{
|
||||
{Name: "address", Value: "foobar"},
|
||||
{Name: "database", Value: "foobar"},
|
||||
{Name: "password", Value: "foobar"},
|
||||
{Name: "protocol", Value: "foobar"},
|
||||
{Name: "pushInterval", Value: "10s"},
|
||||
{Name: "retentionPolicy", Value: "foobar"},
|
||||
{Name: "username", Value: "foobar"}}},
|
||||
{Name: "prometheus", Children: []*parser.Node{
|
||||
{Name: "buckets", Value: "42,42"},
|
||||
{Name: "entryPoint", Value: "foobar"},
|
||||
{Name: "middlewares", Value: "foobar,foobar"}}},
|
||||
{Name: "statsD", Children: []*parser.Node{
|
||||
{Name: "address", Value: "foobar"},
|
||||
{Name: "pushInterval", Value: "10s"}}}}},
|
||||
{Name: "ping", Children: []*parser.Node{
|
||||
{Name: "entryPoint", Value: "foobar"},
|
||||
{Name: "middlewares", Value: "foobar,foobar"}}},
|
||||
{Name: "providers", Children: []*parser.Node{
|
||||
{Name: "docker", Children: []*parser.Node{
|
||||
{Name: "constraints", Value: "foobar"},
|
||||
{Name: "defaultRule", Value: "foobar"},
|
||||
{Name: "endpoint", Value: "foobar"},
|
||||
{Name: "exposedByDefault", Value: "true"},
|
||||
{Name: "network", Value: "foobar"},
|
||||
{Name: "swarmMode", Value: "true"},
|
||||
{Name: "swarmModeRefreshSeconds", Value: "42"},
|
||||
{Name: "tls", Children: []*parser.Node{
|
||||
{Name: "ca", Value: "foobar"},
|
||||
{Name: "caOptional", Value: "true"},
|
||||
{Name: "cert", Value: "foobar"},
|
||||
{Name: "insecureSkipVerify", Value: "true"},
|
||||
{Name: "key", Value: "foobar"}}},
|
||||
{Name: "useBindPortIP", Value: "true"},
|
||||
{Name: "watch", Value: "true"}}},
|
||||
{Name: "file", Children: []*parser.Node{
|
||||
{Name: "debugLogGeneratedTemplate", Value: "true"},
|
||||
{Name: "directory", Value: "foobar"},
|
||||
{Name: "filename", Value: "foobar"},
|
||||
{Name: "traefikFile", Value: "foobar"},
|
||||
{Name: "watch", Value: "true"}}},
|
||||
{Name: "kubernetes", Children: []*parser.Node{
|
||||
{Name: "certAuthFilePath", Value: "foobar"},
|
||||
{Name: "disablePassHostHeaders", Value: "true"},
|
||||
{Name: "endpoint", Value: "foobar"},
|
||||
{Name: "ingressClass", Value: "foobar"},
|
||||
{Name: "ingressEndpoint", Children: []*parser.Node{
|
||||
{Name: "hostname", Value: "foobar"},
|
||||
{Name: "ip", Value: "foobar"},
|
||||
{Name: "publishedService", Value: "foobar"}}},
|
||||
{Name: "labelSelector", Value: "foobar"},
|
||||
{Name: "namespaces", Value: "foobar,foobar"},
|
||||
{Name: "token", Value: "foobar"}}},
|
||||
{Name: "kubernetesCRD",
|
||||
Children: []*parser.Node{
|
||||
{Name: "CertAuthFilePath", Value: "foobar"},
|
||||
{Name: "DisablePassHostHeaders", Value: "true"},
|
||||
{Name: "Endpoint", Value: "foobar"},
|
||||
{Name: "IngressClass", Value: "foobar"},
|
||||
{Name: "LabelSelector", Value: "foobar"},
|
||||
{Name: "Namespaces", Value: "foobar,foobar"},
|
||||
{Name: "Token", Value: "foobar"}}},
|
||||
{Name: "Marathon", Children: []*parser.Node{
|
||||
{Name: "Basic", Children: []*parser.Node{
|
||||
{Name: "HTTPBasicAuthUser", Value: "foobar"},
|
||||
{Name: "HTTPBasicPassword", Value: "foobar"}}},
|
||||
{Name: "Constraints", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "DCOSToken", Value: "foobar"},
|
||||
{Name: "DefaultRule", Value: "foobar"},
|
||||
{Name: "DialerTimeout", Value: "42"},
|
||||
{Name: "Endpoint", Value: "foobar"},
|
||||
{Name: "ExposedByDefault", Value: "true"},
|
||||
{Name: "ForceTaskHostname", Value: "true"},
|
||||
{Name: "KeepAlive", Value: "42"},
|
||||
{Name: "RespectReadinessChecks", Value: "true"},
|
||||
{Name: "ResponseHeaderTimeout", Value: "42"},
|
||||
{Name: "TLS", Children: []*parser.Node{
|
||||
{Name: "CA", Value: "foobar"},
|
||||
{Name: "CAOptional", Value: "true"},
|
||||
{Name: "Cert", Value: "foobar"},
|
||||
{Name: "InsecureSkipVerify", Value: "true"},
|
||||
{Name: "Key", Value: "foobar"}}},
|
||||
{Name: "TLSHandshakeTimeout", Value: "42"},
|
||||
{Name: "Trace", Value: "true"},
|
||||
{Name: "Watch", Value: "true"}}},
|
||||
{Name: "ProvidersThrottleDuration", Value: "42"},
|
||||
{Name: "Rancher", Children: []*parser.Node{
|
||||
{Name: "Constraints", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "DefaultRule", Value: "foobar"},
|
||||
{Name: "EnableServiceHealthFilter", Value: "true"},
|
||||
{Name: "ExposedByDefault", Value: "true"},
|
||||
{Name: "IntervalPoll", Value: "true"},
|
||||
{Name: "Prefix", Value: "foobar"},
|
||||
{Name: "RefreshSeconds", Value: "42"},
|
||||
{Name: "Watch", Value: "true"}}},
|
||||
{Name: "Rest", Children: []*parser.Node{
|
||||
{Name: "EntryPoint", Value: "foobar"}}}}},
|
||||
{Name: "ServersTransport", Children: []*parser.Node{
|
||||
{Name: "ForwardingTimeouts", Children: []*parser.Node{
|
||||
{Name: "DialTimeout", Value: "42"},
|
||||
{Name: "ResponseHeaderTimeout", Value: "42"}}},
|
||||
{Name: "InsecureSkipVerify", Value: "true"},
|
||||
{Name: "MaxIdleConnsPerHost", Value: "42"},
|
||||
{Name: "RootCAs", Value: "foobar,foobar"}}},
|
||||
{Name: "Tracing", Children: []*parser.Node{
|
||||
{Name: "DataDog", Children: []*parser.Node{
|
||||
{Name: "BagagePrefixHeaderName", Value: "foobar"},
|
||||
{Name: "Debug", Value: "true"},
|
||||
{Name: "GlobalTag", Value: "foobar"},
|
||||
{Name: "LocalAgentHostPort", Value: "foobar"},
|
||||
{Name: "ParentIDHeaderName", Value: "foobar"},
|
||||
{Name: "PrioritySampling", Value: "true"},
|
||||
{Name: "SamplingPriorityHeaderName", Value: "foobar"},
|
||||
{Name: "TraceIDHeaderName", Value: "foobar"}}},
|
||||
{Name: "Haystack", Children: []*parser.Node{
|
||||
{Name: "GlobalTag", Value: "foobar"},
|
||||
{Name: "LocalAgentHost", Value: "foobar"},
|
||||
{Name: "LocalAgentPort", Value: "42"},
|
||||
{Name: "ParentIDHeaderName", Value: "foobar"},
|
||||
{Name: "SpanIDHeaderName", Value: "foobar"},
|
||||
{Name: "TraceIDHeaderName", Value: "foobar"}}},
|
||||
{Name: "Instana", Children: []*parser.Node{
|
||||
{Name: "LocalAgentHost", Value: "foobar"},
|
||||
{Name: "LocalAgentPort", Value: "42"},
|
||||
{Name: "LogLevel", Value: "foobar"}}},
|
||||
{Name: "Jaeger", Children: []*parser.Node{
|
||||
{Name: "Gen128Bit", Value: "true"},
|
||||
{Name: "LocalAgentHostPort", Value: "foobar"},
|
||||
{Name: "Propagation", Value: "foobar"},
|
||||
{Name: "SamplingParam", Value: "42"},
|
||||
{Name: "SamplingServerURL", Value: "foobar"},
|
||||
{Name: "SamplingType", Value: "foobar"},
|
||||
{Name: "TraceContextHeaderName", Value: "foobar"}}},
|
||||
{Name: "ServiceName", Value: "foobar"},
|
||||
{Name: "SpanNameLimit", Value: "42"},
|
||||
{Name: "Zipkin", Children: []*parser.Node{
|
||||
{Name: "Debug", Value: "true"},
|
||||
{Name: "HTTPEndpoint", Value: "foobar"},
|
||||
{Name: "ID128Bit", Value: "true"},
|
||||
{Name: "SameSpan", Value: "true"},
|
||||
{Name: "SampleRate", Value: "42"}}}}}},
|
||||
{Name: "certAuthFilePath", Value: "foobar"},
|
||||
{Name: "disablePassHostHeaders", Value: "true"},
|
||||
{Name: "endpoint", Value: "foobar"},
|
||||
{Name: "ingressClass", Value: "foobar"},
|
||||
{Name: "labelSelector", Value: "foobar"},
|
||||
{Name: "namespaces", Value: "foobar,foobar"},
|
||||
{Name: "token", Value: "foobar"}}},
|
||||
{Name: "marathon", Children: []*parser.Node{
|
||||
{Name: "basic", Children: []*parser.Node{
|
||||
{Name: "httpBasicAuthUser", Value: "foobar"},
|
||||
{Name: "httpBasicPassword", Value: "foobar"}}},
|
||||
{Name: "constraints", Value: "foobar"},
|
||||
{Name: "dcosToken", Value: "foobar"},
|
||||
{Name: "defaultRule", Value: "foobar"},
|
||||
{Name: "dialerTimeout", Value: "42"},
|
||||
{Name: "endpoint", Value: "foobar"},
|
||||
{Name: "exposedByDefault", Value: "true"},
|
||||
{Name: "forceTaskHostname", Value: "true"},
|
||||
{Name: "keepAlive", Value: "42"},
|
||||
{Name: "respectReadinessChecks", Value: "true"},
|
||||
{Name: "responseHeaderTimeout", Value: "42"},
|
||||
{Name: "tls", Children: []*parser.Node{
|
||||
{Name: "ca", Value: "foobar"},
|
||||
{Name: "caOptional", Value: "true"},
|
||||
{Name: "cert", Value: "foobar"},
|
||||
{Name: "insecureSkipVerify", Value: "true"},
|
||||
{Name: "key", Value: "foobar"}}},
|
||||
{Name: "tlsHandshakeTimeout", Value: "42"},
|
||||
{Name: "trace", Value: "true"},
|
||||
{Name: "watch", Value: "true"}}},
|
||||
{Name: "providersThrottleDuration", Value: "42"},
|
||||
{Name: "rancher", Children: []*parser.Node{
|
||||
{Name: "constraints", Value: "foobar"},
|
||||
{Name: "defaultRule", Value: "foobar"},
|
||||
{Name: "enableServiceHealthFilter", Value: "true"},
|
||||
{Name: "exposedByDefault", Value: "true"},
|
||||
{Name: "intervalPoll", Value: "true"},
|
||||
{Name: "prefix", Value: "foobar"},
|
||||
{Name: "refreshSeconds", Value: "42"},
|
||||
{Name: "watch", Value: "true"}}},
|
||||
{Name: "rest", Children: []*parser.Node{
|
||||
{Name: "entryPoint", Value: "foobar"}}}}},
|
||||
{Name: "serversTransport", Children: []*parser.Node{
|
||||
{Name: "forwardingTimeouts", Children: []*parser.Node{
|
||||
{Name: "dialTimeout", Value: "42"},
|
||||
{Name: "idleConnTimeout", Value: "42"},
|
||||
{Name: "responseHeaderTimeout", Value: "42"}}},
|
||||
{Name: "insecureSkipVerify", Value: "true"},
|
||||
{Name: "maxIdleConnsPerHost", Value: "42"},
|
||||
{Name: "rootCAs", Value: "foobar,foobar"}}},
|
||||
{Name: "tracing", Children: []*parser.Node{
|
||||
{Name: "dataDog", Children: []*parser.Node{
|
||||
{Name: "bagagePrefixHeaderName", Value: "foobar"},
|
||||
{Name: "debug", Value: "true"},
|
||||
{Name: "globalTag", Value: "foobar"},
|
||||
{Name: "localAgentHostPort", Value: "foobar"},
|
||||
{Name: "parentIDHeaderName", Value: "foobar"},
|
||||
{Name: "prioritySampling", Value: "true"},
|
||||
{Name: "samplingPriorityHeaderName", Value: "foobar"},
|
||||
{Name: "traceIDHeaderName", Value: "foobar"}}},
|
||||
{Name: "haystack", Children: []*parser.Node{
|
||||
{Name: "globalTag", Value: "foobar"},
|
||||
{Name: "localAgentHost", Value: "foobar"},
|
||||
{Name: "localAgentPort", Value: "42"},
|
||||
{Name: "parentIDHeaderName", Value: "foobar"},
|
||||
{Name: "spanIDHeaderName", Value: "foobar"},
|
||||
{Name: "traceIDHeaderName", Value: "foobar"}}},
|
||||
{Name: "instana", Children: []*parser.Node{
|
||||
{Name: "localAgentHost", Value: "foobar"},
|
||||
{Name: "localAgentPort", Value: "42"},
|
||||
{Name: "logLevel", Value: "foobar"}}},
|
||||
{Name: "jaeger", Children: []*parser.Node{
|
||||
{Name: "gen128Bit", Value: "true"},
|
||||
{Name: "localAgentHostPort", Value: "foobar"},
|
||||
{Name: "propagation", Value: "foobar"},
|
||||
{Name: "samplingParam", Value: "42"},
|
||||
{Name: "samplingServerURL", Value: "foobar"},
|
||||
{Name: "samplingType", Value: "foobar"},
|
||||
{Name: "traceContextHeaderName", Value: "foobar"}}},
|
||||
{Name: "serviceName", Value: "foobar"},
|
||||
{Name: "spanNameLimit", Value: "42"},
|
||||
{Name: "zipkin", Children: []*parser.Node{
|
||||
{Name: "debug", Value: "true"},
|
||||
{Name: "httpEndpoint", Value: "foobar"},
|
||||
{Name: "id128Bit", Value: "true"},
|
||||
{Name: "sameSpan", Value: "true"},
|
||||
{Name: "sampleRate", Value: "42"}}}}},
|
||||
},
|
||||
}
|
||||
|
||||
assert.Equal(t, expected, node)
|
||||
|
@ -342,267 +310,235 @@ func Test_decodeFileToNode_Yaml(t *testing.T) {
|
|||
expected := &parser.Node{
|
||||
Name: "traefik",
|
||||
Children: []*parser.Node{
|
||||
{Name: "ACME",
|
||||
Children: []*parser.Node{
|
||||
{Name: "ACMELogging", Value: "true"},
|
||||
{Name: "CAServer", Value: "foobar"},
|
||||
{Name: "DNSChallenge", Children: []*parser.Node{
|
||||
{Name: "DelayBeforeCheck", Value: "42"},
|
||||
{Name: "DisablePropagationCheck", Value: "true"},
|
||||
{Name: "Provider", Value: "foobar"},
|
||||
{Name: "Resolvers", Value: "foobar,foobar"},
|
||||
}},
|
||||
{Name: "Domains", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "Main", Value: "foobar"},
|
||||
{Name: "SANs", Value: "foobar,foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "Main", Value: "foobar"},
|
||||
{Name: "SANs", Value: "foobar,foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "Email", Value: "foobar"},
|
||||
{Name: "EntryPoint", Value: "foobar"},
|
||||
{Name: "HTTPChallenge", Children: []*parser.Node{
|
||||
{Name: "EntryPoint", Value: "foobar"}}},
|
||||
{Name: "KeyType", Value: "foobar"},
|
||||
{Name: "OnHostRule", Value: "true"},
|
||||
{Name: "Storage", Value: "foobar"},
|
||||
{Name: "TLSChallenge"},
|
||||
},
|
||||
},
|
||||
{Name: "API", Children: []*parser.Node{
|
||||
{Name: "Dashboard", Value: "true"},
|
||||
{Name: "EntryPoint", Value: "foobar"},
|
||||
{Name: "Middlewares", Value: "foobar,foobar"},
|
||||
{Name: "Statistics", Children: []*parser.Node{
|
||||
{Name: "RecentErrors", Value: "42"}}}}},
|
||||
{Name: "AccessLog", Children: []*parser.Node{
|
||||
{Name: "BufferingSize", Value: "42"},
|
||||
{Name: "Fields", Children: []*parser.Node{
|
||||
{Name: "DefaultMode", Value: "foobar"},
|
||||
{Name: "Headers", Children: []*parser.Node{
|
||||
{Name: "DefaultMode", Value: "foobar"},
|
||||
{Name: "Names", Children: []*parser.Node{
|
||||
{Name: "accessLog", Children: []*parser.Node{
|
||||
{Name: "bufferingSize", Value: "42"},
|
||||
{Name: "fields", Children: []*parser.Node{
|
||||
{Name: "defaultMode", Value: "foobar"},
|
||||
{Name: "headers", Children: []*parser.Node{
|
||||
{Name: "defaultMode", Value: "foobar"},
|
||||
{Name: "names", Children: []*parser.Node{
|
||||
{Name: "name0", Value: "foobar"},
|
||||
{Name: "name1", Value: "foobar"}}}}},
|
||||
{Name: "Names", Children: []*parser.Node{
|
||||
{Name: "names", Children: []*parser.Node{
|
||||
{Name: "name0", Value: "foobar"},
|
||||
{Name: "name1", Value: "foobar"}}}}},
|
||||
{Name: "FilePath", Value: "foobar"},
|
||||
{Name: "Filters", Children: []*parser.Node{
|
||||
{Name: "MinDuration", Value: "42"},
|
||||
{Name: "RetryAttempts", Value: "true"},
|
||||
{Name: "StatusCodes", Value: "foobar,foobar"}}},
|
||||
{Name: "Format", Value: "foobar"}}},
|
||||
{Name: "EntryPoints", Children: []*parser.Node{
|
||||
{Name: "filePath", Value: "foobar"},
|
||||
{Name: "filters", Children: []*parser.Node{
|
||||
{Name: "minDuration", Value: "42"},
|
||||
{Name: "retryAttempts", Value: "true"},
|
||||
{Name: "statusCodes", Value: "foobar,foobar"}}},
|
||||
{Name: "format", Value: "foobar"}}},
|
||||
{Name: "acme",
|
||||
Children: []*parser.Node{
|
||||
{Name: "acmeLogging", Value: "true"},
|
||||
{Name: "caServer", Value: "foobar"},
|
||||
{Name: "dnsChallenge", Children: []*parser.Node{
|
||||
{Name: "delayBeforeCheck", Value: "42"},
|
||||
{Name: "disablePropagationCheck", Value: "true"},
|
||||
{Name: "provider", Value: "foobar"},
|
||||
{Name: "resolvers", Value: "foobar,foobar"},
|
||||
}},
|
||||
{Name: "domains", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "main", Value: "foobar"},
|
||||
{Name: "sans", Value: "foobar,foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "main", Value: "foobar"},
|
||||
{Name: "sans", Value: "foobar,foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "email", Value: "foobar"},
|
||||
{Name: "entryPoint", Value: "foobar"},
|
||||
{Name: "httpChallenge", Children: []*parser.Node{
|
||||
{Name: "entryPoint", Value: "foobar"}}},
|
||||
{Name: "keyType", Value: "foobar"},
|
||||
{Name: "onHostRule", Value: "true"},
|
||||
{Name: "storage", Value: "foobar"},
|
||||
{Name: "tlsChallenge"},
|
||||
},
|
||||
},
|
||||
{Name: "api", Children: []*parser.Node{
|
||||
{Name: "dashboard", Value: "true"},
|
||||
{Name: "entryPoint", Value: "foobar"},
|
||||
{Name: "middlewares", Value: "foobar,foobar"},
|
||||
{Name: "statistics", Children: []*parser.Node{
|
||||
{Name: "recentErrors", Value: "42"}}}}},
|
||||
{Name: "entryPoints", Children: []*parser.Node{
|
||||
{Name: "EntryPoint0", Children: []*parser.Node{
|
||||
{Name: "Address", Value: "foobar"},
|
||||
{Name: "ForwardedHeaders", Children: []*parser.Node{
|
||||
{Name: "Insecure", Value: "true"},
|
||||
{Name: "TrustedIPs", Value: "foobar,foobar"}}},
|
||||
{Name: "ProxyProtocol", Children: []*parser.Node{
|
||||
{Name: "Insecure", Value: "true"},
|
||||
{Name: "TrustedIPs", Value: "foobar,foobar"}}},
|
||||
{Name: "Transport", Children: []*parser.Node{
|
||||
{Name: "LifeCycle", Children: []*parser.Node{
|
||||
{Name: "GraceTimeOut", Value: "42"},
|
||||
{Name: "RequestAcceptGraceTimeout", Value: "42"}}},
|
||||
{Name: "RespondingTimeouts", Children: []*parser.Node{
|
||||
{Name: "IdleTimeout", Value: "42"},
|
||||
{Name: "ReadTimeout", Value: "42"},
|
||||
{Name: "WriteTimeout", Value: "42"}}}}}}}}},
|
||||
{Name: "Global", Children: []*parser.Node{
|
||||
{Name: "CheckNewVersion", Value: "true"},
|
||||
{Name: "Debug", Value: "true"},
|
||||
{Name: "SendAnonymousUsage", Value: "true"}}},
|
||||
{Name: "HostResolver", Children: []*parser.Node{
|
||||
{Name: "CnameFlattening", Value: "true"},
|
||||
{Name: "ResolvConfig", Value: "foobar"},
|
||||
{Name: "ResolvDepth", Value: "42"}}},
|
||||
{Name: "Log", Children: []*parser.Node{
|
||||
{Name: "FilePath", Value: "foobar"},
|
||||
{Name: "Format", Value: "foobar"},
|
||||
{Name: "Level", Value: "foobar"}}},
|
||||
{Name: "Metrics", Children: []*parser.Node{
|
||||
{Name: "Datadog", Children: []*parser.Node{
|
||||
{Name: "Address", Value: "foobar"},
|
||||
{Name: "PushInterval", Value: "10s"}}},
|
||||
{Name: "InfluxDB", Children: []*parser.Node{
|
||||
{Name: "Address", Value: "foobar"},
|
||||
{Name: "Database", Value: "foobar"},
|
||||
{Name: "Password", Value: "foobar"},
|
||||
{Name: "Protocol", Value: "foobar"},
|
||||
{Name: "PushInterval", Value: "10s"},
|
||||
{Name: "RetentionPolicy", Value: "foobar"},
|
||||
{Name: "Username", Value: "foobar"}}},
|
||||
{Name: "Prometheus", Children: []*parser.Node{
|
||||
{Name: "Buckets", Value: "42,42"},
|
||||
{Name: "EntryPoint", Value: "foobar"},
|
||||
{Name: "Middlewares", Value: "foobar,foobar"}}},
|
||||
{Name: "StatsD", Children: []*parser.Node{
|
||||
{Name: "Address", Value: "foobar"},
|
||||
{Name: "PushInterval", Value: "10s"}}}}},
|
||||
{Name: "Ping", Children: []*parser.Node{
|
||||
{Name: "EntryPoint", Value: "foobar"},
|
||||
{Name: "Middlewares", Value: "foobar,foobar"}}},
|
||||
{Name: "Providers", Children: []*parser.Node{
|
||||
{Name: "Docker", Children: []*parser.Node{
|
||||
{Name: "Constraints", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "DefaultRule", Value: "foobar"},
|
||||
{Name: "Endpoint", Value: "foobar"},
|
||||
{Name: "ExposedByDefault", Value: "true"},
|
||||
{Name: "Network", Value: "foobar"},
|
||||
{Name: "SwarmMode", Value: "true"},
|
||||
{Name: "SwarmModeRefreshSeconds", Value: "42"},
|
||||
{Name: "TLS", Children: []*parser.Node{
|
||||
{Name: "CA", Value: "foobar"},
|
||||
{Name: "CAOptional", Value: "true"},
|
||||
{Name: "Cert", Value: "foobar"},
|
||||
{Name: "InsecureSkipVerify", Value: "true"},
|
||||
{Name: "Key", Value: "foobar"}}},
|
||||
{Name: "UseBindPortIP", Value: "true"},
|
||||
{Name: "Watch", Value: "true"}}},
|
||||
{Name: "File", Children: []*parser.Node{
|
||||
{Name: "DebugLogGeneratedTemplate", Value: "true"},
|
||||
{Name: "Directory", Value: "foobar"},
|
||||
{Name: "Filename", Value: "foobar"},
|
||||
{Name: "TraefikFile", Value: "foobar"},
|
||||
{Name: "Watch", Value: "true"}}},
|
||||
{Name: "Kubernetes", Children: []*parser.Node{
|
||||
{Name: "CertAuthFilePath", Value: "foobar"},
|
||||
{Name: "DisablePassHostHeaders", Value: "true"},
|
||||
{Name: "Endpoint", Value: "foobar"},
|
||||
{Name: "IngressClass", Value: "foobar"},
|
||||
{Name: "IngressEndpoint", Children: []*parser.Node{
|
||||
{Name: "Hostname", Value: "foobar"},
|
||||
{Name: "IP", Value: "foobar"},
|
||||
{Name: "PublishedService", Value: "foobar"}}},
|
||||
{Name: "LabelSelector", Value: "foobar"},
|
||||
{Name: "Namespaces", Value: "foobar,foobar"},
|
||||
{Name: "Token", Value: "foobar"}}},
|
||||
{Name: "KubernetesCRD",
|
||||
{Name: "address", Value: "foobar"},
|
||||
{Name: "forwardedHeaders", Children: []*parser.Node{
|
||||
{Name: "insecure", Value: "true"},
|
||||
{Name: "trustedIPs", Value: "foobar,foobar"}}},
|
||||
{Name: "proxyProtocol", Children: []*parser.Node{
|
||||
{Name: "insecure", Value: "true"},
|
||||
{Name: "trustedIPs", Value: "foobar,foobar"}}},
|
||||
{Name: "transport", Children: []*parser.Node{
|
||||
{Name: "lifeCycle", Children: []*parser.Node{
|
||||
{Name: "graceTimeOut", Value: "42"},
|
||||
{Name: "requestAcceptGraceTimeout", Value: "42"}}},
|
||||
{Name: "respondingTimeouts", Children: []*parser.Node{
|
||||
{Name: "idleTimeout", Value: "42"},
|
||||
{Name: "readTimeout", Value: "42"},
|
||||
{Name: "writeTimeout", Value: "42"}}}}}}}}},
|
||||
{Name: "global", Children: []*parser.Node{
|
||||
{Name: "checkNewVersion", Value: "true"},
|
||||
{Name: "sendAnonymousUsage", Value: "true"}}},
|
||||
{Name: "hostResolver", Children: []*parser.Node{
|
||||
{Name: "cnameFlattening", Value: "true"},
|
||||
{Name: "resolvConfig", Value: "foobar"},
|
||||
{Name: "resolvDepth", Value: "42"}}},
|
||||
{Name: "log", Children: []*parser.Node{
|
||||
{Name: "filePath", Value: "foobar"},
|
||||
{Name: "format", Value: "foobar"},
|
||||
{Name: "level", Value: "foobar"}}},
|
||||
{Name: "metrics", Children: []*parser.Node{
|
||||
{Name: "dataDog", Children: []*parser.Node{
|
||||
{Name: "address", Value: "foobar"},
|
||||
{Name: "pushInterval", Value: "10s"}}},
|
||||
{Name: "influxDB", Children: []*parser.Node{
|
||||
{Name: "address", Value: "foobar"},
|
||||
{Name: "database", Value: "foobar"},
|
||||
{Name: "password", Value: "foobar"},
|
||||
{Name: "protocol", Value: "foobar"},
|
||||
{Name: "pushInterval", Value: "10s"},
|
||||
{Name: "retentionPolicy", Value: "foobar"},
|
||||
{Name: "username", Value: "foobar"}}},
|
||||
{Name: "prometheus", Children: []*parser.Node{
|
||||
{Name: "buckets", Value: "42,42"},
|
||||
{Name: "entryPoint", Value: "foobar"},
|
||||
{Name: "middlewares", Value: "foobar,foobar"}}},
|
||||
{Name: "statsD", Children: []*parser.Node{
|
||||
{Name: "address", Value: "foobar"},
|
||||
{Name: "pushInterval", Value: "10s"}}}}},
|
||||
{Name: "ping", Children: []*parser.Node{
|
||||
{Name: "entryPoint", Value: "foobar"},
|
||||
{Name: "middlewares", Value: "foobar,foobar"}}},
|
||||
{Name: "providers", Children: []*parser.Node{
|
||||
{Name: "docker", Children: []*parser.Node{
|
||||
{Name: "constraints", Value: "foobar"},
|
||||
{Name: "defaultRule", Value: "foobar"},
|
||||
{Name: "endpoint", Value: "foobar"},
|
||||
{Name: "exposedByDefault", Value: "true"},
|
||||
{Name: "network", Value: "foobar"},
|
||||
{Name: "swarmMode", Value: "true"},
|
||||
{Name: "swarmModeRefreshSeconds", Value: "42"},
|
||||
{Name: "tls", Children: []*parser.Node{
|
||||
{Name: "ca", Value: "foobar"},
|
||||
{Name: "caOptional", Value: "true"},
|
||||
{Name: "cert", Value: "foobar"},
|
||||
{Name: "insecureSkipVerify", Value: "true"},
|
||||
{Name: "key", Value: "foobar"}}},
|
||||
{Name: "useBindPortIP", Value: "true"},
|
||||
{Name: "watch", Value: "true"}}},
|
||||
{Name: "file", Children: []*parser.Node{
|
||||
{Name: "debugLogGeneratedTemplate", Value: "true"},
|
||||
{Name: "directory", Value: "foobar"},
|
||||
{Name: "filename", Value: "foobar"},
|
||||
{Name: "traefikFile", Value: "foobar"},
|
||||
{Name: "watch", Value: "true"}}},
|
||||
{Name: "kubernetes", Children: []*parser.Node{
|
||||
{Name: "certAuthFilePath", Value: "foobar"},
|
||||
{Name: "disablePassHostHeaders", Value: "true"},
|
||||
{Name: "endpoint", Value: "foobar"},
|
||||
{Name: "ingressClass", Value: "foobar"},
|
||||
{Name: "ingressEndpoint", Children: []*parser.Node{
|
||||
{Name: "hostname", Value: "foobar"},
|
||||
{Name: "ip", Value: "foobar"},
|
||||
{Name: "publishedService", Value: "foobar"}}},
|
||||
{Name: "labelSelector", Value: "foobar"},
|
||||
{Name: "namespaces", Value: "foobar,foobar"},
|
||||
{Name: "token", Value: "foobar"}}},
|
||||
{Name: "kubernetesCRD",
|
||||
Children: []*parser.Node{
|
||||
{Name: "CertAuthFilePath", Value: "foobar"},
|
||||
{Name: "DisablePassHostHeaders", Value: "true"},
|
||||
{Name: "Endpoint", Value: "foobar"},
|
||||
{Name: "IngressClass", Value: "foobar"},
|
||||
{Name: "LabelSelector", Value: "foobar"},
|
||||
{Name: "Namespaces", Value: "foobar,foobar"},
|
||||
{Name: "Token", Value: "foobar"}}},
|
||||
{Name: "Marathon", Children: []*parser.Node{
|
||||
{Name: "Basic", Children: []*parser.Node{
|
||||
{Name: "HTTPBasicAuthUser", Value: "foobar"},
|
||||
{Name: "HTTPBasicPassword", Value: "foobar"}}},
|
||||
{Name: "Constraints", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "DCOSToken", Value: "foobar"},
|
||||
{Name: "DefaultRule", Value: "foobar"},
|
||||
{Name: "DialerTimeout", Value: "42"},
|
||||
{Name: "Endpoint", Value: "foobar"},
|
||||
{Name: "ExposedByDefault", Value: "true"},
|
||||
{Name: "ForceTaskHostname", Value: "true"},
|
||||
{Name: "KeepAlive", Value: "42"},
|
||||
{Name: "RespectReadinessChecks", Value: "true"},
|
||||
{Name: "ResponseHeaderTimeout", Value: "42"},
|
||||
{Name: "TLS", Children: []*parser.Node{
|
||||
{Name: "CA", Value: "foobar"},
|
||||
{Name: "CAOptional", Value: "true"},
|
||||
{Name: "Cert", Value: "foobar"},
|
||||
{Name: "InsecureSkipVerify", Value: "true"},
|
||||
{Name: "Key", Value: "foobar"}}},
|
||||
{Name: "TLSHandshakeTimeout", Value: "42"},
|
||||
{Name: "Trace", Value: "true"},
|
||||
{Name: "Watch", Value: "true"}}},
|
||||
{Name: "ProvidersThrottleDuration", Value: "42"},
|
||||
{Name: "Rancher", Children: []*parser.Node{
|
||||
{Name: "Constraints", Children: []*parser.Node{
|
||||
{Name: "[0]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
{Name: "[1]", Children: []*parser.Node{
|
||||
{Name: "Key", Value: "foobar"},
|
||||
{Name: "MustMatch", Value: "true"},
|
||||
{Name: "Value", Value: "foobar"},
|
||||
}},
|
||||
}},
|
||||
{Name: "DefaultRule", Value: "foobar"},
|
||||
{Name: "EnableServiceHealthFilter", Value: "true"},
|
||||
{Name: "ExposedByDefault", Value: "true"},
|
||||
{Name: "IntervalPoll", Value: "true"},
|
||||
{Name: "Prefix", Value: "foobar"},
|
||||
{Name: "RefreshSeconds", Value: "42"},
|
||||
{Name: "Watch", Value: "true"}}},
|
||||
{Name: "Rest", Children: []*parser.Node{
|
||||
{Name: "EntryPoint", Value: "foobar"}}}}},
|
||||
{Name: "ServersTransport", Children: []*parser.Node{
|
||||
{Name: "ForwardingTimeouts", Children: []*parser.Node{
|
||||
{Name: "DialTimeout", Value: "42"},
|
||||
{Name: "ResponseHeaderTimeout", Value: "42"}}},
|
||||
{Name: "InsecureSkipVerify", Value: "true"},
|
||||
{Name: "MaxIdleConnsPerHost", Value: "42"},
|
||||
{Name: "RootCAs", Value: "foobar,foobar"}}},
|
||||
{Name: "Tracing", Children: []*parser.Node{
|
||||
{Name: "DataDog", Children: []*parser.Node{
|
||||
{Name: "BagagePrefixHeaderName", Value: "foobar"},
|
||||
{Name: "Debug", Value: "true"},
|
||||
{Name: "GlobalTag", Value: "foobar"},
|
||||
{Name: "LocalAgentHostPort", Value: "foobar"},
|
||||
{Name: "ParentIDHeaderName", Value: "foobar"},
|
||||
{Name: "PrioritySampling", Value: "true"},
|
||||
{Name: "SamplingPriorityHeaderName", Value: "foobar"},
|
||||
{Name: "TraceIDHeaderName", Value: "foobar"}}},
|
||||
{Name: "Haystack", Children: []*parser.Node{
|
||||
{Name: "GlobalTag", Value: "foobar"},
|
||||
{Name: "LocalAgentHost", Value: "foobar"},
|
||||
{Name: "LocalAgentPort", Value: "42"},
|
||||
{Name: "ParentIDHeaderName", Value: "foobar"},
|
||||
{Name: "SpanIDHeaderName", Value: "foobar"},
|
||||
{Name: "TraceIDHeaderName", Value: "foobar"}}},
|
||||
{Name: "Instana", Children: []*parser.Node{
|
||||
{Name: "LocalAgentHost", Value: "foobar"},
|
||||
{Name: "LocalAgentPort", Value: "42"},
|
||||
{Name: "LogLevel", Value: "foobar"}}},
|
||||
{Name: "Jaeger", Children: []*parser.Node{
|
||||
{Name: "Gen128Bit", Value: "true"},
|
||||
{Name: "LocalAgentHostPort", Value: "foobar"},
|
||||
{Name: "Propagation", Value: "foobar"},
|
||||
{Name: "SamplingParam", Value: "42"},
|
||||
{Name: "SamplingServerURL", Value: "foobar"},
|
||||
{Name: "SamplingType", Value: "foobar"},
|
||||
{Name: "TraceContextHeaderName", Value: "foobar"}}},
|
||||
{Name: "ServiceName", Value: "foobar"},
|
||||
{Name: "SpanNameLimit", Value: "42"},
|
||||
{Name: "Zipkin", Children: []*parser.Node{
|
||||
{Name: "Debug", Value: "true"},
|
||||
{Name: "HTTPEndpoint", Value: "foobar"},
|
||||
{Name: "ID128Bit", Value: "true"},
|
||||
{Name: "SameSpan", Value: "true"},
|
||||
{Name: "SampleRate", Value: "42"}}}}}},
|
||||
{Name: "certAuthFilePath", Value: "foobar"},
|
||||
{Name: "disablePassHostHeaders", Value: "true"},
|
||||
{Name: "endpoint", Value: "foobar"},
|
||||
{Name: "ingressClass", Value: "foobar"},
|
||||
{Name: "labelSelector", Value: "foobar"},
|
||||
{Name: "namespaces", Value: "foobar,foobar"},
|
||||
{Name: "token", Value: "foobar"}}},
|
||||
{Name: "marathon", Children: []*parser.Node{
|
||||
{Name: "basic", Children: []*parser.Node{
|
||||
{Name: "httpBasicAuthUser", Value: "foobar"},
|
||||
{Name: "httpBasicPassword", Value: "foobar"}}},
|
||||
{Name: "constraints", Value: "foobar"},
|
||||
{Name: "dcosToken", Value: "foobar"},
|
||||
{Name: "defaultRule", Value: "foobar"},
|
||||
{Name: "dialerTimeout", Value: "42"},
|
||||
{Name: "endpoint", Value: "foobar"},
|
||||
{Name: "exposedByDefault", Value: "true"},
|
||||
{Name: "forceTaskHostname", Value: "true"},
|
||||
{Name: "keepAlive", Value: "42"},
|
||||
{Name: "respectReadinessChecks", Value: "true"},
|
||||
{Name: "responseHeaderTimeout", Value: "42"},
|
||||
{Name: "tls", Children: []*parser.Node{
|
||||
{Name: "ca", Value: "foobar"},
|
||||
{Name: "caOptional", Value: "true"},
|
||||
{Name: "cert", Value: "foobar"},
|
||||
{Name: "insecureSkipVerify", Value: "true"},
|
||||
{Name: "key", Value: "foobar"}}},
|
||||
{Name: "tlsHandshakeTimeout", Value: "42"},
|
||||
{Name: "trace", Value: "true"},
|
||||
{Name: "watch", Value: "true"}}},
|
||||
{Name: "providersThrottleDuration", Value: "42"},
|
||||
{Name: "rancher", Children: []*parser.Node{
|
||||
{Name: "constraints", Value: "foobar"},
|
||||
{Name: "defaultRule", Value: "foobar"},
|
||||
{Name: "enableServiceHealthFilter", Value: "true"},
|
||||
{Name: "exposedByDefault", Value: "true"},
|
||||
{Name: "intervalPoll", Value: "true"},
|
||||
{Name: "prefix", Value: "foobar"},
|
||||
{Name: "refreshSeconds", Value: "42"},
|
||||
{Name: "watch", Value: "true"}}},
|
||||
{Name: "rest", Children: []*parser.Node{
|
||||
{Name: "entryPoint", Value: "foobar"}}}}},
|
||||
{Name: "serversTransport", Children: []*parser.Node{
|
||||
{Name: "forwardingTimeouts", Children: []*parser.Node{
|
||||
{Name: "dialTimeout", Value: "42"},
|
||||
{Name: "idleConnTimeout", Value: "42"},
|
||||
{Name: "responseHeaderTimeout", Value: "42"}}},
|
||||
{Name: "insecureSkipVerify", Value: "true"},
|
||||
{Name: "maxIdleConnsPerHost", Value: "42"},
|
||||
{Name: "rootCAs", Value: "foobar,foobar"}}},
|
||||
{Name: "tracing", Children: []*parser.Node{
|
||||
{Name: "dataDog", Children: []*parser.Node{
|
||||
{Name: "bagagePrefixHeaderName", Value: "foobar"},
|
||||
{Name: "debug", Value: "true"},
|
||||
{Name: "globalTag", Value: "foobar"},
|
||||
{Name: "localAgentHostPort", Value: "foobar"},
|
||||
{Name: "parentIDHeaderName", Value: "foobar"},
|
||||
{Name: "prioritySampling", Value: "true"},
|
||||
{Name: "samplingPriorityHeaderName", Value: "foobar"},
|
||||
{Name: "traceIDHeaderName", Value: "foobar"}}},
|
||||
{Name: "haystack", Children: []*parser.Node{
|
||||
{Name: "globalTag", Value: "foobar"},
|
||||
{Name: "localAgentHost", Value: "foobar"},
|
||||
{Name: "localAgentPort", Value: "42"},
|
||||
{Name: "parentIDHeaderName", Value: "foobar"},
|
||||
{Name: "spanIDHeaderName", Value: "foobar"},
|
||||
{Name: "traceIDHeaderName", Value: "foobar"}}},
|
||||
{Name: "instana", Children: []*parser.Node{
|
||||
{Name: "localAgentHost", Value: "foobar"},
|
||||
{Name: "localAgentPort", Value: "42"},
|
||||
{Name: "logLevel", Value: "foobar"}}},
|
||||
{Name: "jaeger", Children: []*parser.Node{
|
||||
{Name: "gen128Bit", Value: "true"},
|
||||
{Name: "localAgentHostPort", Value: "foobar"},
|
||||
{Name: "propagation", Value: "foobar"},
|
||||
{Name: "samplingParam", Value: "42"},
|
||||
{Name: "samplingServerURL", Value: "foobar"},
|
||||
{Name: "samplingType", Value: "foobar"},
|
||||
{Name: "traceContextHeaderName", Value: "foobar"}}},
|
||||
{Name: "serviceName", Value: "foobar"},
|
||||
{Name: "spanNameLimit", Value: "42"},
|
||||
{Name: "zipkin", Children: []*parser.Node{
|
||||
{Name: "debug", Value: "true"},
|
||||
{Name: "httpEndpoint", Value: "foobar"},
|
||||
{Name: "id128Bit", Value: "true"},
|
||||
{Name: "sameSpan", Value: "true"},
|
||||
{Name: "sampleRate", Value: "42"}}}}},
|
||||
},
|
||||
}
|
||||
|
||||
assert.Equal(t, expected, node)
|
||||
|
|
|
@ -1,543 +1,481 @@
|
|||
[Global]
|
||||
Debug = true
|
||||
CheckNewVersion = true
|
||||
SendAnonymousUsage = true
|
||||
[global]
|
||||
checkNewVersion = true
|
||||
sendAnonymousUsage = true
|
||||
|
||||
[ServersTransport]
|
||||
InsecureSkipVerify = true
|
||||
RootCAs = ["foobar", "foobar"]
|
||||
MaxIdleConnsPerHost = 42
|
||||
[ServersTransport.ForwardingTimeouts]
|
||||
DialTimeout = 42
|
||||
ResponseHeaderTimeout = 42
|
||||
[serversTransport]
|
||||
insecureSkipVerify = true
|
||||
rootCAs = ["foobar", "foobar"]
|
||||
maxIdleConnsPerHost = 42
|
||||
[serversTransport.forwardingTimeouts]
|
||||
dialTimeout = 42
|
||||
responseHeaderTimeout = 42
|
||||
idleConnTimeout = 42
|
||||
|
||||
[EntryPoints]
|
||||
[entryPoints]
|
||||
[entryPoints.EntryPoint0]
|
||||
address = "foobar"
|
||||
[entryPoints.EntryPoint0.transport]
|
||||
[entryPoints.EntryPoint0.transport.lifeCycle]
|
||||
requestAcceptGraceTimeout = 42
|
||||
graceTimeOut = 42
|
||||
[entryPoints.EntryPoint0.transport.respondingTimeouts]
|
||||
readTimeout = 42
|
||||
writeTimeout = 42
|
||||
idleTimeout = 42
|
||||
[entryPoints.EntryPoint0.proxyProtocol]
|
||||
insecure = true
|
||||
trustedIPs = ["foobar", "foobar"]
|
||||
[entryPoints.EntryPoint0.forwardedHeaders]
|
||||
insecure = true
|
||||
trustedIPs = ["foobar", "foobar"]
|
||||
|
||||
[EntryPoints.EntryPoint0]
|
||||
Address = "foobar"
|
||||
[EntryPoints.EntryPoint0.Transport]
|
||||
[EntryPoints.EntryPoint0.Transport.LifeCycle]
|
||||
RequestAcceptGraceTimeout = 42
|
||||
GraceTimeOut = 42
|
||||
[EntryPoints.EntryPoint0.Transport.RespondingTimeouts]
|
||||
ReadTimeout = 42
|
||||
WriteTimeout = 42
|
||||
IdleTimeout = 42
|
||||
[EntryPoints.EntryPoint0.ProxyProtocol]
|
||||
Insecure = true
|
||||
TrustedIPs = ["foobar", "foobar"]
|
||||
[EntryPoints.EntryPoint0.ForwardedHeaders]
|
||||
Insecure = true
|
||||
TrustedIPs = ["foobar", "foobar"]
|
||||
[providers]
|
||||
providersThrottleDuration = 42
|
||||
[providers.docker]
|
||||
constraints = "foobar"
|
||||
watch = true
|
||||
endpoint = "foobar"
|
||||
defaultRule = "foobar"
|
||||
exposedByDefault = true
|
||||
useBindPortIP = true
|
||||
swarmMode = true
|
||||
network = "foobar"
|
||||
swarmModeRefreshSeconds = 42
|
||||
[providers.docker.tls]
|
||||
ca = "foobar"
|
||||
caOptional = true
|
||||
cert = "foobar"
|
||||
key = "foobar"
|
||||
insecureSkipVerify = true
|
||||
[providers.file]
|
||||
directory = "foobar"
|
||||
watch = true
|
||||
filename = "foobar"
|
||||
debugLogGeneratedTemplate = true
|
||||
traefikFile = "foobar"
|
||||
[providers.marathon]
|
||||
constraints = "foobar"
|
||||
trace = true
|
||||
watch = true
|
||||
endpoint = "foobar"
|
||||
defaultRule = "foobar"
|
||||
exposedByDefault = true
|
||||
dcosToken = "foobar"
|
||||
dialerTimeout = 42
|
||||
responseHeaderTimeout = 42
|
||||
tlsHandshakeTimeout = 42
|
||||
keepAlive = 42
|
||||
forceTaskHostname = true
|
||||
respectReadinessChecks = true
|
||||
[providers.marathon.tls]
|
||||
ca = "foobar"
|
||||
caOptional = true
|
||||
cert = "foobar"
|
||||
key = "foobar"
|
||||
insecureSkipVerify = true
|
||||
[providers.marathon.basic]
|
||||
httpBasicAuthUser = "foobar"
|
||||
httpBasicPassword = "foobar"
|
||||
[providers.kubernetes]
|
||||
endpoint = "foobar"
|
||||
token = "foobar"
|
||||
certAuthFilePath = "foobar"
|
||||
disablePassHostHeaders = true
|
||||
namespaces = ["foobar", "foobar"]
|
||||
labelSelector = "foobar"
|
||||
ingressClass = "foobar"
|
||||
[providers.kubernetes.ingressEndpoint]
|
||||
ip = "foobar"
|
||||
hostname = "foobar"
|
||||
publishedService = "foobar"
|
||||
[providers.kubernetesCRD]
|
||||
endpoint = "foobar"
|
||||
token = "foobar"
|
||||
certAuthFilePath = "foobar"
|
||||
disablePassHostHeaders = true
|
||||
namespaces = ["foobar", "foobar"]
|
||||
labelSelector = "foobar"
|
||||
ingressClass = "foobar"
|
||||
[providers.rest]
|
||||
entryPoint = "foobar"
|
||||
[providers.rancher]
|
||||
constraints = "foobar"
|
||||
watch = true
|
||||
defaultRule = "foobar"
|
||||
exposedByDefault = true
|
||||
enableServiceHealthFilter = true
|
||||
refreshSeconds = 42
|
||||
intervalPoll = true
|
||||
prefix = "foobar"
|
||||
|
||||
[Providers]
|
||||
ProvidersThrottleDuration = 42
|
||||
[api]
|
||||
entryPoint = "foobar"
|
||||
dashboard = true
|
||||
middlewares = ["foobar", "foobar"]
|
||||
[api.statistics]
|
||||
recentErrors = 42
|
||||
|
||||
[Providers.Docker]
|
||||
Watch = true
|
||||
Endpoint = "foobar"
|
||||
DefaultRule = "foobar"
|
||||
ExposedByDefault = true
|
||||
UseBindPortIP = true
|
||||
SwarmMode = true
|
||||
Network = "foobar"
|
||||
SwarmModeRefreshSeconds = 42
|
||||
[metrics]
|
||||
[metrics.prometheus]
|
||||
buckets = [42.0, 42.0]
|
||||
entryPoint = "foobar"
|
||||
middlewares = ["foobar", "foobar"]
|
||||
[metrics.dataDog]
|
||||
address = "foobar"
|
||||
pushInterval = "10s"
|
||||
[metrics.statsD]
|
||||
address = "foobar"
|
||||
pushInterval = "10s"
|
||||
[metrics.influxDB]
|
||||
address = "foobar"
|
||||
protocol = "foobar"
|
||||
pushInterval = "10s"
|
||||
database = "foobar"
|
||||
retentionPolicy = "foobar"
|
||||
username = "foobar"
|
||||
password = "foobar"
|
||||
|
||||
[[Providers.Docker.Constraints]]
|
||||
Key = "foobar"
|
||||
MustMatch = true
|
||||
Value = "foobar"
|
||||
[ping]
|
||||
entryPoint = "foobar"
|
||||
middlewares = ["foobar", "foobar"]
|
||||
|
||||
[[Providers.Docker.Constraints]]
|
||||
Key = "foobar"
|
||||
MustMatch = true
|
||||
Value = "foobar"
|
||||
[log]
|
||||
level = "foobar"
|
||||
filePath = "foobar"
|
||||
format = "foobar"
|
||||
|
||||
[Providers.Docker.TLS]
|
||||
CA = "foobar"
|
||||
CAOptional = true
|
||||
Cert = "foobar"
|
||||
Key = "foobar"
|
||||
InsecureSkipVerify = true
|
||||
|
||||
[Providers.File]
|
||||
Directory = "foobar"
|
||||
Watch = true
|
||||
Filename = "foobar"
|
||||
DebugLogGeneratedTemplate = true
|
||||
TraefikFile = "foobar"
|
||||
|
||||
[Providers.Marathon]
|
||||
Trace = true
|
||||
Watch = true
|
||||
Endpoint = "foobar"
|
||||
DefaultRule = "foobar"
|
||||
ExposedByDefault = true
|
||||
DCOSToken = "foobar"
|
||||
DialerTimeout = 42
|
||||
ResponseHeaderTimeout = 42
|
||||
TLSHandshakeTimeout = 42
|
||||
KeepAlive = 42
|
||||
ForceTaskHostname = true
|
||||
RespectReadinessChecks = true
|
||||
|
||||
[[Providers.Marathon.Constraints]]
|
||||
Key = "foobar"
|
||||
MustMatch = true
|
||||
Value = "foobar"
|
||||
|
||||
[[Providers.Marathon.Constraints]]
|
||||
Key = "foobar"
|
||||
MustMatch = true
|
||||
Value = "foobar"
|
||||
|
||||
[Providers.Marathon.TLS]
|
||||
CA = "foobar"
|
||||
CAOptional = true
|
||||
Cert = "foobar"
|
||||
Key = "foobar"
|
||||
InsecureSkipVerify = true
|
||||
[Providers.Marathon.Basic]
|
||||
HTTPBasicAuthUser = "foobar"
|
||||
HTTPBasicPassword = "foobar"
|
||||
|
||||
[Providers.Kubernetes]
|
||||
Endpoint = "foobar"
|
||||
Token = "foobar"
|
||||
CertAuthFilePath = "foobar"
|
||||
DisablePassHostHeaders = true
|
||||
Namespaces = ["foobar", "foobar"]
|
||||
LabelSelector = "foobar"
|
||||
IngressClass = "foobar"
|
||||
[Providers.Kubernetes.IngressEndpoint]
|
||||
IP = "foobar"
|
||||
Hostname = "foobar"
|
||||
PublishedService = "foobar"
|
||||
|
||||
[Providers.KubernetesCRD]
|
||||
Endpoint = "foobar"
|
||||
Token = "foobar"
|
||||
CertAuthFilePath = "foobar"
|
||||
DisablePassHostHeaders = true
|
||||
Namespaces = ["foobar", "foobar"]
|
||||
LabelSelector = "foobar"
|
||||
IngressClass = "foobar"
|
||||
|
||||
[Providers.Rest]
|
||||
EntryPoint = "foobar"
|
||||
|
||||
[Providers.Rancher]
|
||||
Watch = true
|
||||
DefaultRule = "foobar"
|
||||
ExposedByDefault = true
|
||||
EnableServiceHealthFilter = true
|
||||
RefreshSeconds = 42
|
||||
IntervalPoll = true
|
||||
Prefix = "foobar"
|
||||
|
||||
[[Providers.Rancher.Constraints]]
|
||||
Key = "foobar"
|
||||
MustMatch = true
|
||||
Value = "foobar"
|
||||
|
||||
[[Providers.Rancher.Constraints]]
|
||||
Key = "foobar"
|
||||
MustMatch = true
|
||||
Value = "foobar"
|
||||
|
||||
[API]
|
||||
EntryPoint = "foobar"
|
||||
Dashboard = true
|
||||
Middlewares = ["foobar", "foobar"]
|
||||
[API.Statistics]
|
||||
RecentErrors = 42
|
||||
|
||||
[Metrics]
|
||||
|
||||
[Metrics.Prometheus]
|
||||
Buckets = [42.0, 42.0]
|
||||
EntryPoint = "foobar"
|
||||
Middlewares = ["foobar", "foobar"]
|
||||
|
||||
[Metrics.Datadog]
|
||||
Address = "foobar"
|
||||
PushInterval = "10s"
|
||||
|
||||
[Metrics.StatsD]
|
||||
Address = "foobar"
|
||||
PushInterval = "10s"
|
||||
|
||||
[Metrics.InfluxDB]
|
||||
Address = "foobar"
|
||||
Protocol = "foobar"
|
||||
PushInterval = "10s"
|
||||
Database = "foobar"
|
||||
RetentionPolicy = "foobar"
|
||||
Username = "foobar"
|
||||
Password = "foobar"
|
||||
|
||||
[Ping]
|
||||
EntryPoint = "foobar"
|
||||
Middlewares = ["foobar", "foobar"]
|
||||
|
||||
[Log]
|
||||
Level = "foobar"
|
||||
FilePath = "foobar"
|
||||
Format = "foobar"
|
||||
|
||||
[AccessLog]
|
||||
FilePath = "foobar"
|
||||
Format = "foobar"
|
||||
BufferingSize = 42
|
||||
[AccessLog.Filters]
|
||||
StatusCodes = ["foobar", "foobar"]
|
||||
RetryAttempts = true
|
||||
MinDuration = 42
|
||||
[AccessLog.Fields]
|
||||
DefaultMode = "foobar"
|
||||
[AccessLog.Fields.Names]
|
||||
[accessLog]
|
||||
filePath = "foobar"
|
||||
format = "foobar"
|
||||
bufferingSize = 42
|
||||
[accessLog.filters]
|
||||
statusCodes = ["foobar", "foobar"]
|
||||
retryAttempts = true
|
||||
minDuration = 42
|
||||
[accessLog.fields]
|
||||
defaultMode = "foobar"
|
||||
[accessLog.fields.names]
|
||||
name0 = "foobar"
|
||||
name1 = "foobar"
|
||||
[AccessLog.Fields.Headers]
|
||||
DefaultMode = "foobar"
|
||||
[AccessLog.Fields.Headers.Names]
|
||||
[accessLog.fields.headers]
|
||||
defaultMode = "foobar"
|
||||
[accessLog.fields.headers.names]
|
||||
name0 = "foobar"
|
||||
name1 = "foobar"
|
||||
|
||||
[Tracing]
|
||||
ServiceName = "foobar"
|
||||
SpanNameLimit = 42
|
||||
[tracing]
|
||||
serviceName = "foobar"
|
||||
spanNameLimit = 42
|
||||
[tracing.jaeger]
|
||||
samplingServerURL = "foobar"
|
||||
samplingType = "foobar"
|
||||
samplingParam = 42.0
|
||||
localAgentHostPort = "foobar"
|
||||
gen128Bit = true
|
||||
propagation = "foobar"
|
||||
traceContextHeaderName = "foobar"
|
||||
[tracing.zipkin]
|
||||
httpEndpoint = "foobar"
|
||||
sameSpan = true
|
||||
id128Bit = true
|
||||
debug = true
|
||||
sampleRate = 42.0
|
||||
[tracing.dataDog]
|
||||
localAgentHostPort = "foobar"
|
||||
globalTag = "foobar"
|
||||
debug = true
|
||||
prioritySampling = true
|
||||
traceIDHeaderName = "foobar"
|
||||
parentIDHeaderName = "foobar"
|
||||
samplingPriorityHeaderName = "foobar"
|
||||
bagagePrefixHeaderName = "foobar"
|
||||
[tracing.instana]
|
||||
localAgentHost = "foobar"
|
||||
localAgentPort = 42
|
||||
logLevel = "foobar"
|
||||
[tracing.haystack]
|
||||
localAgentHost = "foobar"
|
||||
localAgentPort = 42
|
||||
globalTag = "foobar"
|
||||
traceIDHeaderName = "foobar"
|
||||
parentIDHeaderName = "foobar"
|
||||
spanIDHeaderName = "foobar"
|
||||
|
||||
[Tracing.Jaeger]
|
||||
SamplingServerURL = "foobar"
|
||||
SamplingType = "foobar"
|
||||
SamplingParam = 42.0
|
||||
LocalAgentHostPort = "foobar"
|
||||
Gen128Bit = true
|
||||
Propagation = "foobar"
|
||||
TraceContextHeaderName = "foobar"
|
||||
[hostResolver]
|
||||
cnameFlattening = true
|
||||
resolvConfig = "foobar"
|
||||
resolvDepth = 42
|
||||
|
||||
[Tracing.Zipkin]
|
||||
HTTPEndpoint = "foobar"
|
||||
SameSpan = true
|
||||
ID128Bit = true
|
||||
Debug = true
|
||||
SampleRate = 42.0
|
||||
[acme]
|
||||
email = "foobar"
|
||||
acmeLogging = true
|
||||
caServer = "foobar"
|
||||
storage = "foobar"
|
||||
entryPoint = "foobar"
|
||||
keyType = "foobar"
|
||||
onHostRule = true
|
||||
[acme.dnsChallenge]
|
||||
provider = "foobar"
|
||||
delayBeforeCheck = 42
|
||||
resolvers = ["foobar", "foobar"]
|
||||
disablePropagationCheck = true
|
||||
[acme.httpChallenge]
|
||||
entryPoint = "foobar"
|
||||
[acme.tlsChallenge]
|
||||
|
||||
[Tracing.DataDog]
|
||||
LocalAgentHostPort = "foobar"
|
||||
GlobalTag = "foobar"
|
||||
Debug = true
|
||||
PrioritySampling = true
|
||||
TraceIDHeaderName = "foobar"
|
||||
ParentIDHeaderName = "foobar"
|
||||
SamplingPriorityHeaderName = "foobar"
|
||||
BagagePrefixHeaderName = "foobar"
|
||||
[[acme.domains]]
|
||||
main = "foobar"
|
||||
sans = ["foobar", "foobar"]
|
||||
|
||||
[Tracing.Instana]
|
||||
LocalAgentHost = "foobar"
|
||||
LocalAgentPort = 42
|
||||
LogLevel = "foobar"
|
||||
[[acme.domains]]
|
||||
main = "foobar"
|
||||
sans = ["foobar", "foobar"]
|
||||
|
||||
[Tracing.Haystack]
|
||||
GlobalTag = "foobar"
|
||||
LocalAgentHost = "foobar"
|
||||
LocalAgentPort = 42
|
||||
ParentIDHeaderName = "foobar"
|
||||
SpanIDHeaderName = "foobar"
|
||||
TraceIDHeaderName = "foobar"
|
||||
## Dynamic configuration
|
||||
|
||||
[HostResolver]
|
||||
CnameFlattening = true
|
||||
ResolvConfig = "foobar"
|
||||
ResolvDepth = 42
|
||||
|
||||
[ACME]
|
||||
Email = "foobar"
|
||||
ACMELogging = true
|
||||
CAServer = "foobar"
|
||||
Storage = "foobar"
|
||||
EntryPoint = "foobar"
|
||||
KeyType = "foobar"
|
||||
OnHostRule = true
|
||||
|
||||
[ACME.DNSChallenge]
|
||||
Provider = "foobar"
|
||||
DelayBeforeCheck = 42
|
||||
Resolvers = ["foobar", "foobar"]
|
||||
DisablePropagationCheck = true
|
||||
|
||||
[ACME.HTTPChallenge]
|
||||
EntryPoint = "foobar"
|
||||
|
||||
[ACME.TLSChallenge]
|
||||
|
||||
[[ACME.Domains]]
|
||||
Main = "foobar"
|
||||
SANs = ["foobar", "foobar"]
|
||||
|
||||
[[ACME.Domains]]
|
||||
Main = "foobar"
|
||||
SANs = ["foobar", "foobar"]
|
||||
|
||||
#### Dynamic configuration
|
||||
|
||||
[HTTP]
|
||||
|
||||
[HTTP.Routers]
|
||||
|
||||
[HTTP.Routers.Router0]
|
||||
EntryPoints = ["foobar", "foobar"]
|
||||
Middlewares = ["foobar", "foobar"]
|
||||
Service = "foobar"
|
||||
Rule = "foobar"
|
||||
[http]
|
||||
[http.routers]
|
||||
[http.routers.Router0]
|
||||
entryPoints = ["foobar", "foobar"]
|
||||
middlewares = ["foobar", "foobar"]
|
||||
service = "foobar"
|
||||
rule = "foobar"
|
||||
priority = 42
|
||||
[HTTP.Routers.Router0.tls]
|
||||
|
||||
[HTTP.Middlewares]
|
||||
|
||||
[HTTP.Middlewares.Middleware0.AddPrefix]
|
||||
Prefix = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware1.StripPrefix]
|
||||
Prefixes = ["foobar", "foobar"]
|
||||
|
||||
[HTTP.Middlewares.Middleware2.StripPrefixRegex]
|
||||
Regex = ["foobar", "foobar"]
|
||||
|
||||
[HTTP.Middlewares.Middleware3.ReplacePath]
|
||||
Path = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware4.ReplacePathRegex]
|
||||
Regex = "foobar"
|
||||
Replacement = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware5.Chain]
|
||||
Middlewares = ["foobar", "foobar"]
|
||||
|
||||
[HTTP.Middlewares.Middleware6.IPWhiteList]
|
||||
SourceRange = ["foobar", "foobar"]
|
||||
|
||||
[HTTP.Middlewares.Middleware7.IPWhiteList.IPStrategy]
|
||||
Depth = 42
|
||||
ExcludedIPs = ["foobar", "foobar"]
|
||||
|
||||
[HTTP.Middlewares.Middleware8.Headers]
|
||||
AccessControlAllowCredentials = true
|
||||
AccessControlAllowHeaders = ["foobar", "foobar"]
|
||||
AccessControlAllowMethods = ["foobar", "foobar"]
|
||||
AccessControlAllowOrigin = "foobar"
|
||||
AccessControlExposeHeaders = ["foobar", "foobar"]
|
||||
AccessControlMaxAge = 42
|
||||
AddVaryHeader = true
|
||||
AllowedHosts = ["foobar", "foobar"]
|
||||
HostsProxyHeaders = ["foobar", "foobar"]
|
||||
SSLRedirect = true
|
||||
SSLTemporaryRedirect = true
|
||||
SSLHost = "foobar"
|
||||
SSLForceHost = true
|
||||
STSSeconds = 42
|
||||
STSIncludeSubdomains = true
|
||||
STSPreload = true
|
||||
ForceSTSHeader = true
|
||||
FrameDeny = true
|
||||
CustomFrameOptionsValue = "foobar"
|
||||
ContentTypeNosniff = true
|
||||
BrowserXSSFilter = true
|
||||
CustomBrowserXSSValue = "foobar"
|
||||
ContentSecurityPolicy = "foobar"
|
||||
PublicKey = "foobar"
|
||||
ReferrerPolicy = "foobar"
|
||||
IsDevelopment = true
|
||||
[HTTP.Middlewares.Middleware8.Headers.CustomRequestHeaders]
|
||||
[http.routers.Router0.tls]
|
||||
[http.middlewares]
|
||||
[http.middlewares.Middleware0]
|
||||
[http.middlewares.Middleware0.addPrefix]
|
||||
prefix = "foobar"
|
||||
[http.middlewares.Middleware1]
|
||||
[http.middlewares.Middleware1.stripPrefix]
|
||||
prefixes = ["foobar", "foobar"]
|
||||
[http.middlewares.Middleware10]
|
||||
[http.middlewares.Middleware10.rateLimit]
|
||||
extractorFunc = "foobar"
|
||||
[http.middlewares.Middleware10.rateLimit.rateSet]
|
||||
[http.middlewares.Middleware10.rateLimit.rateSet.Rate0]
|
||||
period = 42000000000
|
||||
average = 42
|
||||
burst = 42
|
||||
[http.middlewares.Middleware10.rateLimit.rateSet.Rate1]
|
||||
period = 42000000000
|
||||
average = 42
|
||||
burst = 42
|
||||
[http.middlewares.Middleware11]
|
||||
[http.middlewares.Middleware11.redirectRegex]
|
||||
regex = "foobar"
|
||||
replacement = "foobar"
|
||||
permanent = true
|
||||
[http.middlewares.Middleware12]
|
||||
[http.middlewares.Middleware12.redirectScheme]
|
||||
scheme = "foobar"
|
||||
port = "foobar"
|
||||
permanent = true
|
||||
[http.middlewares.Middleware13]
|
||||
[http.middlewares.Middleware13.basicAuth]
|
||||
users = ["foobar", "foobar"]
|
||||
usersFile = "foobar"
|
||||
realm = "foobar"
|
||||
removeHeader = true
|
||||
headerField = "foobar"
|
||||
[http.middlewares.Middleware14]
|
||||
[http.middlewares.Middleware14.digestAuth]
|
||||
users = ["foobar", "foobar"]
|
||||
usersFile = "foobar"
|
||||
removeHeader = true
|
||||
realm = "foobar"
|
||||
headerField = "foobar"
|
||||
[http.middlewares.Middleware15]
|
||||
[http.middlewares.Middleware15.forwardAuth]
|
||||
address = "foobar"
|
||||
trustForwardHeader = true
|
||||
authResponseHeaders = ["foobar", "foobar"]
|
||||
[http.middlewares.Middleware15.forwardAuth.tls]
|
||||
ca = "foobar"
|
||||
caOptional = true
|
||||
cert = "foobar"
|
||||
key = "foobar"
|
||||
insecureSkipVerify = true
|
||||
[http.middlewares.Middleware16]
|
||||
[http.middlewares.Middleware16.maxConn]
|
||||
amount = 42
|
||||
extractorFunc = "foobar"
|
||||
[http.middlewares.Middleware17]
|
||||
[http.middlewares.Middleware17.buffering]
|
||||
maxRequestBodyBytes = 42
|
||||
memRequestBodyBytes = 42
|
||||
maxResponseBodyBytes = 42
|
||||
memResponseBodyBytes = 42
|
||||
retryExpression = "foobar"
|
||||
[http.middlewares.Middleware18]
|
||||
[http.middlewares.Middleware18.circuitBreaker]
|
||||
expression = "foobar"
|
||||
[http.middlewares.Middleware19]
|
||||
[http.middlewares.Middleware19.compress]
|
||||
[http.middlewares.Middleware2]
|
||||
[http.middlewares.Middleware2.stripPrefixRegex]
|
||||
regex = ["foobar", "foobar"]
|
||||
[http.middlewares.Middleware20]
|
||||
[http.middlewares.Middleware20.passTLSClientCert]
|
||||
pem = true
|
||||
[http.middlewares.Middleware20.passTLSClientCert.info]
|
||||
notAfter = true
|
||||
notBefore = true
|
||||
sans = true
|
||||
[http.middlewares.Middleware20.passTLSClientCert.info.subject]
|
||||
country = true
|
||||
province = true
|
||||
locality = true
|
||||
organization = true
|
||||
commonName = true
|
||||
serialNumber = true
|
||||
domainComponent = true
|
||||
[http.middlewares.Middleware20.passTLSClientCert.info.issuer]
|
||||
country = true
|
||||
province = true
|
||||
locality = true
|
||||
organization = true
|
||||
commonName = true
|
||||
serialNumber = true
|
||||
domainComponent = true
|
||||
[http.middlewares.Middleware21]
|
||||
[http.middlewares.Middleware21.retry]
|
||||
regex = 0
|
||||
[http.middlewares.Middleware3]
|
||||
[http.middlewares.Middleware3.replacePath]
|
||||
path = "foobar"
|
||||
[http.middlewares.Middleware4]
|
||||
[http.middlewares.Middleware4.replacePathRegex]
|
||||
regex = "foobar"
|
||||
replacement = "foobar"
|
||||
[http.middlewares.Middleware5]
|
||||
[http.middlewares.Middleware5.chain]
|
||||
middlewares = ["foobar", "foobar"]
|
||||
[http.middlewares.Middleware6]
|
||||
[http.middlewares.Middleware6.ipWhiteList]
|
||||
sourceRange = ["foobar", "foobar"]
|
||||
[http.middlewares.Middleware7]
|
||||
[http.middlewares.Middleware7.ipWhiteList]
|
||||
[http.middlewares.Middleware7.ipWhiteList.ipStrategy]
|
||||
depth = 42
|
||||
excludedIPs = ["foobar", "foobar"]
|
||||
[http.middlewares.Middleware8]
|
||||
[http.middlewares.Middleware8.headers]
|
||||
accessControlAllowCredentials = true
|
||||
accessControlAllowHeaders = ["foobar", "foobar"]
|
||||
accessControlAllowMethods = ["foobar", "foobar"]
|
||||
accessControlAllowOrigin = "foobar"
|
||||
accessControlExposeHeaders = ["foobar", "foobar"]
|
||||
accessControlMaxAge = 42
|
||||
addVaryHeader = true
|
||||
allowedHosts = ["foobar", "foobar"]
|
||||
hostsProxyHeaders = ["foobar", "foobar"]
|
||||
sslRedirect = true
|
||||
sslTemporaryRedirect = true
|
||||
sslHost = "foobar"
|
||||
sslForceHost = true
|
||||
stsSeconds = 42
|
||||
stsIncludeSubdomains = true
|
||||
stsPreload = true
|
||||
forceSTSHeader = true
|
||||
frameDeny = true
|
||||
customFrameOptionsValue = "foobar"
|
||||
contentTypeNosniff = true
|
||||
browserXssFilter = true
|
||||
customBrowserXSSValue = "foobar"
|
||||
contentSecurityPolicy = "foobar"
|
||||
publicKey = "foobar"
|
||||
referrerPolicy = "foobar"
|
||||
isDevelopment = true
|
||||
[http.middlewares.Middleware8.headers.customRequestHeaders]
|
||||
name0 = "foobar"
|
||||
name1 = "foobar"
|
||||
[HTTP.Middlewares.Middleware8.Headers.CustomResponseHeaders]
|
||||
[http.middlewares.Middleware8.headers.customResponseHeaders]
|
||||
name0 = "foobar"
|
||||
name1 = "foobar"
|
||||
[HTTP.Middlewares.Middleware8.Headers.SSLProxyHeaders]
|
||||
[http.middlewares.Middleware8.headers.sslProxyHeaders]
|
||||
name0 = "foobar"
|
||||
name1 = "foobar"
|
||||
[http.middlewares.Middleware9]
|
||||
[http.middlewares.Middleware9.errors]
|
||||
status = ["foobar", "foobar"]
|
||||
service = "foobar"
|
||||
query = "foobar"
|
||||
[http.services]
|
||||
[http.services.Service0]
|
||||
[http.services.Service0.loadBalancer]
|
||||
passHostHeader = true
|
||||
[http.services.Service0.loadBalancer.stickiness]
|
||||
cookieName = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware9.Errors]
|
||||
Status = ["foobar", "foobar"]
|
||||
Service = "foobar"
|
||||
Query = "foobar"
|
||||
[[http.services.Service0.loadBalancer.servers]]
|
||||
url = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware10.RateLimit]
|
||||
ExtractorFunc = "foobar"
|
||||
[HTTP.Middlewares.Middleware10.RateLimit.RateSet]
|
||||
[HTTP.Middlewares.Middleware10.RateLimit.RateSet.Rate0]
|
||||
Period = 42
|
||||
Average = 42
|
||||
Burst = 42
|
||||
[HTTP.Middlewares.Middleware10.RateLimit.RateSet.Rate1]
|
||||
Period = 42
|
||||
Average = 42
|
||||
Burst = 42
|
||||
|
||||
[HTTP.Middlewares.Middleware11.RedirectRegex]
|
||||
Regex = "foobar"
|
||||
Replacement = "foobar"
|
||||
Permanent = true
|
||||
|
||||
[HTTP.Middlewares.Middleware12.RedirectScheme]
|
||||
Scheme = "foobar"
|
||||
Port = "foobar"
|
||||
Permanent = true
|
||||
|
||||
[HTTP.Middlewares.Middleware13.BasicAuth]
|
||||
Users = ["foobar", "foobar"]
|
||||
UsersFile = "foobar"
|
||||
Realm = "foobar"
|
||||
RemoveHeader = true
|
||||
HeaderField = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware14.DigestAuth]
|
||||
Users = ["foobar", "foobar"]
|
||||
UsersFile = "foobar"
|
||||
RemoveHeader = true
|
||||
Realm = "foobar"
|
||||
HeaderField = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware15.ForwardAuth]
|
||||
Address = "foobar"
|
||||
TrustForwardHeader = true
|
||||
AuthResponseHeaders = ["foobar", "foobar"]
|
||||
[HTTP.Middlewares.Middleware15.ForwardAuth.TLS]
|
||||
CA = "foobar"
|
||||
CAOptional = true
|
||||
Cert = "foobar"
|
||||
Key = "foobar"
|
||||
InsecureSkipVerify = true
|
||||
|
||||
[HTTP.Middlewares.Middleware16.MaxConn]
|
||||
Amount = 42
|
||||
ExtractorFunc = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware17.Buffering]
|
||||
MaxRequestBodyBytes = 42
|
||||
MemRequestBodyBytes = 42
|
||||
MaxResponseBodyBytes = 42
|
||||
MemResponseBodyBytes = 42
|
||||
RetryExpression = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware18.CircuitBreaker]
|
||||
Expression = "foobar"
|
||||
|
||||
[HTTP.Middlewares.Middleware19.Compress]
|
||||
|
||||
[HTTP.Middlewares.Middleware20.PassTLSClientCert]
|
||||
PEM = true
|
||||
[HTTP.Middlewares.Middleware20.PassTLSClientCert.Info]
|
||||
NotAfter = true
|
||||
NotBefore = true
|
||||
Sans = true
|
||||
[HTTP.Middlewares.Middleware20.PassTLSClientCert.Info.Subject]
|
||||
Country = true
|
||||
Province = true
|
||||
Locality = true
|
||||
Organization = true
|
||||
CommonName = true
|
||||
SerialNumber = true
|
||||
DomainComponent = true
|
||||
[HTTP.Middlewares.Middleware20.PassTLSClientCert.Info.Issuer]
|
||||
Country = true
|
||||
Province = true
|
||||
Locality = true
|
||||
Organization = true
|
||||
CommonName = true
|
||||
SerialNumber = true
|
||||
DomainComponent = true
|
||||
|
||||
[HTTP.Middlewares.Middleware21.Retry]
|
||||
Attempts = 42
|
||||
|
||||
[HTTP.Services]
|
||||
[HTTP.Services.Service0]
|
||||
[HTTP.Services.Service0.LoadBalancer]
|
||||
Method = "foobar"
|
||||
PassHostHeader = true
|
||||
|
||||
[[HTTP.Services.Service0.LoadBalancer.Servers]]
|
||||
URL = "foobar"
|
||||
|
||||
[HTTP.Services.Service0.LoadBalancer.Stickiness]
|
||||
CookieName = "foobar"
|
||||
|
||||
[[HTTP.Services.Service0.LoadBalancer.Servers]]
|
||||
URL = "foobar"
|
||||
|
||||
[HTTP.Services.Service0.LoadBalancer.HealthCheck]
|
||||
Scheme = "foobar"
|
||||
Path = "foobar"
|
||||
Port = 42
|
||||
Interval = "foobar"
|
||||
Timeout = "foobar"
|
||||
Hostname = "foobar"
|
||||
[HTTP.Services.Service0.LoadBalancer.HealthCheck.Headers]
|
||||
[[http.services.Service0.loadBalancer.servers]]
|
||||
url = "foobar"
|
||||
[http.services.Service0.loadBalancer.healthCheck]
|
||||
scheme = "foobar"
|
||||
path = "foobar"
|
||||
port = 42
|
||||
interval = "foobar"
|
||||
timeout = "foobar"
|
||||
hostname = "foobar"
|
||||
[http.services.Service0.loadBalancer.healthCheck.headers]
|
||||
name0 = "foobar"
|
||||
name1 = "foobar"
|
||||
[HTTP.Services.Service0.LoadBalancer.ResponseForwarding]
|
||||
FlushInterval = "foobar"
|
||||
[http.services.Service0.loadBalancer.responseForwarding]
|
||||
flushInterval = "foobar"
|
||||
|
||||
[TCP]
|
||||
|
||||
[TCP.Routers]
|
||||
|
||||
[TCP.Routers.TCPRouter0]
|
||||
EntryPoints = ["foobar", "foobar"]
|
||||
Service = "foobar"
|
||||
Rule = "foobar"
|
||||
[TCP.Routers.TCPRouter0.tls]
|
||||
[tcp]
|
||||
[tcp.routers]
|
||||
[tcp.routers.TCPRouter0]
|
||||
entryPoints = ["foobar", "foobar"]
|
||||
service = "foobar"
|
||||
rule = "foobar"
|
||||
[tcp.routers.TCPRouter0.tls]
|
||||
passthrough = true
|
||||
[tcp.services]
|
||||
[tcp.services.TCPService0]
|
||||
[tcp.services.TCPService0.loadBalancer]
|
||||
|
||||
[TCP.Services]
|
||||
[[tcp.services.TCPService0.loadBalancer.servers]]
|
||||
address = "foobar"
|
||||
|
||||
[TCP.Services.TCPService0]
|
||||
[TCP.Services.TCPService0.LoadBalancer]
|
||||
Method = "foobar"
|
||||
[[tcp.services.TCPService0.loadBalancer.servers]]
|
||||
address = "foobar"
|
||||
|
||||
[[TCP.Services.TCPService0.LoadBalancer.Servers]]
|
||||
Address = "foobar"
|
||||
[tls]
|
||||
|
||||
[[TCP.Services.TCPService0.LoadBalancer.Servers]]
|
||||
Address = "foobar"
|
||||
[[tls.Certificates]]
|
||||
certFile = "foobar"
|
||||
keyFile = "foobar"
|
||||
stores = ["foobar", "foobar"]
|
||||
|
||||
[[TLS.Certificates]]
|
||||
Stores = ["foobar", "foobar"]
|
||||
CertFile = "foobar"
|
||||
KeyFile = "foobar"
|
||||
|
||||
[[TLS.Certificates]]
|
||||
Stores = ["foobar", "foobar"]
|
||||
CertFile = "foobar"
|
||||
KeyFile = "foobar"
|
||||
|
||||
[TLS.Options]
|
||||
|
||||
[TLS.Options.TLS0]
|
||||
MinVersion = "foobar"
|
||||
CipherSuites = ["foobar", "foobar"]
|
||||
SniStrict = true
|
||||
[TLS.Options.TLS0.ClientCA]
|
||||
Files = ["foobar", "foobar"]
|
||||
Optional = true
|
||||
[TLS.Options.TLS1]
|
||||
MinVersion = "foobar"
|
||||
CipherSuites = ["foobar", "foobar"]
|
||||
SniStrict = true
|
||||
[TLS.Options.TLS1.ClientCA]
|
||||
Files = ["foobar", "foobar"]
|
||||
Optional = true
|
||||
|
||||
[TLS.Stores]
|
||||
|
||||
[TLS.Stores.Store0]
|
||||
[TLS.Stores.Store0.DefaultCertificate]
|
||||
CertFile = "foobar"
|
||||
KeyFile = "foobar"
|
||||
[TLS.Stores.Store1]
|
||||
[TLS.Stores.Store1.DefaultCertificate]
|
||||
CertFile = "foobar"
|
||||
KeyFile = "foobar"
|
||||
[[tls.Certificates]]
|
||||
certFile = "foobar"
|
||||
keyFile = "foobar"
|
||||
stores = ["foobar", "foobar"]
|
||||
[tls.options]
|
||||
[tls.options.TLS0]
|
||||
minVersion = "foobar"
|
||||
cipherSuites = ["foobar", "foobar"]
|
||||
sniStrict = true
|
||||
[tls.options.TLS0.clientCA]
|
||||
files = ["foobar", "foobar"]
|
||||
optional = true
|
||||
[tls.options.TLS1]
|
||||
minVersion = "foobar"
|
||||
cipherSuites = ["foobar", "foobar"]
|
||||
sniStrict = true
|
||||
[tls.options.TLS1.clientCA]
|
||||
files = ["foobar", "foobar"]
|
||||
optional = true
|
||||
[tls.stores]
|
||||
[tls.stores.Store0]
|
||||
[tls.stores.Store0.defaultCertificate]
|
||||
certFile = "foobar"
|
||||
keyFile = "foobar"
|
||||
[tls.stores.Store1]
|
||||
[tls.stores.Store1.defaultCertificate]
|
||||
certFile = "foobar"
|
||||
keyFile = "foobar"
|
|
@ -1,262 +1,244 @@
|
|||
Global:
|
||||
Debug: true
|
||||
CheckNewVersion: true
|
||||
SendAnonymousUsage: true
|
||||
ServersTransport:
|
||||
InsecureSkipVerify: true
|
||||
RootCAs:
|
||||
global:
|
||||
checkNewVersion: true
|
||||
sendAnonymousUsage: true
|
||||
serversTransport:
|
||||
insecureSkipVerify: true
|
||||
rootCAs:
|
||||
- foobar
|
||||
- foobar
|
||||
MaxIdleConnsPerHost: 42
|
||||
ForwardingTimeouts:
|
||||
DialTimeout: 42
|
||||
ResponseHeaderTimeout: 42
|
||||
EntryPoints:
|
||||
maxIdleConnsPerHost: 42
|
||||
forwardingTimeouts:
|
||||
dialTimeout: 42
|
||||
responseHeaderTimeout: 42
|
||||
idleConnTimeout: 42
|
||||
entryPoints:
|
||||
EntryPoint0:
|
||||
Address: foobar
|
||||
Transport:
|
||||
LifeCycle:
|
||||
RequestAcceptGraceTimeout: 42
|
||||
GraceTimeOut: 42
|
||||
RespondingTimeouts:
|
||||
ReadTimeout: 42
|
||||
WriteTimeout: 42
|
||||
IdleTimeout: 42
|
||||
ProxyProtocol:
|
||||
Insecure: true
|
||||
TrustedIPs:
|
||||
address: foobar
|
||||
transport:
|
||||
lifeCycle:
|
||||
requestAcceptGraceTimeout: 42
|
||||
graceTimeOut: 42
|
||||
respondingTimeouts:
|
||||
readTimeout: 42
|
||||
writeTimeout: 42
|
||||
idleTimeout: 42
|
||||
proxyProtocol:
|
||||
insecure: true
|
||||
trustedIPs:
|
||||
- foobar
|
||||
- foobar
|
||||
ForwardedHeaders:
|
||||
Insecure: true
|
||||
TrustedIPs:
|
||||
forwardedHeaders:
|
||||
insecure: true
|
||||
trustedIPs:
|
||||
- foobar
|
||||
- foobar
|
||||
Providers:
|
||||
ProvidersThrottleDuration: 42
|
||||
Docker:
|
||||
Watch: true
|
||||
Endpoint: foobar
|
||||
DefaultRule: foobar
|
||||
ExposedByDefault: true
|
||||
UseBindPortIP: true
|
||||
SwarmMode: true
|
||||
Network: foobar
|
||||
SwarmModeRefreshSeconds: 42
|
||||
Constraints:
|
||||
- Key: foobar
|
||||
MustMatch: true
|
||||
Value: foobar
|
||||
- Key: foobar
|
||||
MustMatch: true
|
||||
Value: foobar
|
||||
TLS:
|
||||
CA: foobar
|
||||
CAOptional: true
|
||||
Cert: foobar
|
||||
Key: foobar
|
||||
InsecureSkipVerify: true
|
||||
File:
|
||||
Directory: foobar
|
||||
Watch: true
|
||||
Filename: foobar
|
||||
DebugLogGeneratedTemplate: true
|
||||
TraefikFile: foobar
|
||||
Marathon:
|
||||
Trace: true
|
||||
Watch: true
|
||||
Endpoint: foobar
|
||||
DefaultRule: foobar
|
||||
ExposedByDefault: true
|
||||
DCOSToken: foobar
|
||||
DialerTimeout: 42
|
||||
ResponseHeaderTimeout: 42
|
||||
TLSHandshakeTimeout: 42
|
||||
KeepAlive: 42
|
||||
ForceTaskHostname: true
|
||||
RespectReadinessChecks: true
|
||||
Constraints:
|
||||
- Key: foobar
|
||||
MustMatch: true
|
||||
Value: foobar
|
||||
- Key: foobar
|
||||
MustMatch: true
|
||||
Value: foobar
|
||||
TLS:
|
||||
CA: foobar
|
||||
CAOptional: true
|
||||
Cert: foobar
|
||||
Key: foobar
|
||||
InsecureSkipVerify: true
|
||||
Basic:
|
||||
HTTPBasicAuthUser: foobar
|
||||
HTTPBasicPassword: foobar
|
||||
Kubernetes:
|
||||
Endpoint: foobar
|
||||
Token: foobar
|
||||
CertAuthFilePath: foobar
|
||||
DisablePassHostHeaders: true
|
||||
Namespaces:
|
||||
providers:
|
||||
providersThrottleDuration: 42
|
||||
docker:
|
||||
constraints: foobar
|
||||
watch: true
|
||||
endpoint: foobar
|
||||
defaultRule: foobar
|
||||
tls:
|
||||
ca: foobar
|
||||
caOptional: true
|
||||
cert: foobar
|
||||
key: foobar
|
||||
insecureSkipVerify: true
|
||||
exposedByDefault: true
|
||||
useBindPortIP: true
|
||||
swarmMode: true
|
||||
network: foobar
|
||||
swarmModeRefreshSeconds: 42
|
||||
file:
|
||||
directory: foobar
|
||||
watch: true
|
||||
filename: foobar
|
||||
debugLogGeneratedTemplate: true
|
||||
traefikFile: foobar
|
||||
marathon:
|
||||
constraints: foobar
|
||||
trace: true
|
||||
watch: true
|
||||
endpoint: foobar
|
||||
defaultRule: foobar
|
||||
exposedByDefault: true
|
||||
dcosToken: foobar
|
||||
tls:
|
||||
ca: foobar
|
||||
caOptional: true
|
||||
cert: foobar
|
||||
key: foobar
|
||||
insecureSkipVerify: true
|
||||
dialerTimeout: 42
|
||||
responseHeaderTimeout: 42
|
||||
tlsHandshakeTimeout: 42
|
||||
keepAlive: 42
|
||||
forceTaskHostname: true
|
||||
basic:
|
||||
httpBasicAuthUser: foobar
|
||||
httpBasicPassword: foobar
|
||||
respectReadinessChecks: true
|
||||
kubernetes:
|
||||
endpoint: foobar
|
||||
token: foobar
|
||||
certAuthFilePath: foobar
|
||||
disablePassHostHeaders: true
|
||||
namespaces:
|
||||
- foobar
|
||||
- foobar
|
||||
LabelSelector: foobar
|
||||
IngressClass: foobar
|
||||
IngressEndpoint:
|
||||
IP: foobar
|
||||
Hostname: foobar
|
||||
PublishedService: foobar
|
||||
KubernetesCRD:
|
||||
Endpoint: foobar
|
||||
Token: foobar
|
||||
CertAuthFilePath: foobar
|
||||
DisablePassHostHeaders: true
|
||||
Namespaces:
|
||||
labelSelector: foobar
|
||||
ingressClass: foobar
|
||||
ingressEndpoint:
|
||||
ip: foobar
|
||||
hostname: foobar
|
||||
publishedService: foobar
|
||||
kubernetesCRD:
|
||||
endpoint: foobar
|
||||
token: foobar
|
||||
certAuthFilePath: foobar
|
||||
disablePassHostHeaders: true
|
||||
namespaces:
|
||||
- foobar
|
||||
- foobar
|
||||
LabelSelector: foobar
|
||||
IngressClass: foobar
|
||||
Rest:
|
||||
EntryPoint: foobar
|
||||
Rancher:
|
||||
Watch: true
|
||||
DefaultRule: foobar
|
||||
ExposedByDefault: true
|
||||
EnableServiceHealthFilter: true
|
||||
RefreshSeconds: 42
|
||||
IntervalPoll: true
|
||||
Prefix: foobar
|
||||
Constraints:
|
||||
- Key: foobar
|
||||
MustMatch: true
|
||||
Value: foobar
|
||||
- Key: foobar
|
||||
MustMatch: true
|
||||
Value: foobar
|
||||
API:
|
||||
EntryPoint: foobar
|
||||
Dashboard: true
|
||||
Middlewares:
|
||||
labelSelector: foobar
|
||||
ingressClass: foobar
|
||||
rest:
|
||||
entryPoint: foobar
|
||||
rancher:
|
||||
constraints: foobar
|
||||
watch: true
|
||||
defaultRule: foobar
|
||||
exposedByDefault: true
|
||||
enableServiceHealthFilter: true
|
||||
refreshSeconds: 42
|
||||
intervalPoll: true
|
||||
prefix: foobar
|
||||
api:
|
||||
entryPoint: foobar
|
||||
dashboard: true
|
||||
statistics:
|
||||
recentErrors: 42
|
||||
middlewares:
|
||||
- foobar
|
||||
- foobar
|
||||
Statistics:
|
||||
RecentErrors: 42
|
||||
Metrics:
|
||||
Prometheus:
|
||||
Buckets:
|
||||
metrics:
|
||||
prometheus:
|
||||
buckets:
|
||||
- 42
|
||||
- 42
|
||||
EntryPoint: foobar
|
||||
Middlewares:
|
||||
entryPoint: foobar
|
||||
middlewares:
|
||||
- foobar
|
||||
- foobar
|
||||
Datadog:
|
||||
Address: foobar
|
||||
PushInterval: 10s
|
||||
StatsD:
|
||||
Address: foobar
|
||||
PushInterval: 10s
|
||||
InfluxDB:
|
||||
Address: foobar
|
||||
Protocol: foobar
|
||||
PushInterval: 10s
|
||||
Database: foobar
|
||||
RetentionPolicy: foobar
|
||||
Username: foobar
|
||||
Password: foobar
|
||||
Ping:
|
||||
EntryPoint: foobar
|
||||
Middlewares:
|
||||
dataDog:
|
||||
address: foobar
|
||||
pushInterval: 10s
|
||||
statsD:
|
||||
address: foobar
|
||||
pushInterval: 10s
|
||||
influxDB:
|
||||
address: foobar
|
||||
protocol: foobar
|
||||
pushInterval: 10s
|
||||
database: foobar
|
||||
retentionPolicy: foobar
|
||||
username: foobar
|
||||
password: foobar
|
||||
ping:
|
||||
entryPoint: foobar
|
||||
middlewares:
|
||||
- foobar
|
||||
- foobar
|
||||
Log:
|
||||
Level: foobar
|
||||
FilePath: foobar
|
||||
Format: foobar
|
||||
AccessLog:
|
||||
FilePath: foobar
|
||||
Format: foobar
|
||||
BufferingSize: 42
|
||||
Filters:
|
||||
StatusCodes:
|
||||
log:
|
||||
level: foobar
|
||||
filePath: foobar
|
||||
format: foobar
|
||||
accessLog:
|
||||
filePath: foobar
|
||||
format: foobar
|
||||
filters:
|
||||
statusCodes:
|
||||
- foobar
|
||||
- foobar
|
||||
RetryAttempts: true
|
||||
MinDuration: 42
|
||||
Fields:
|
||||
DefaultMode: foobar
|
||||
Names:
|
||||
retryAttempts: true
|
||||
minDuration: 42
|
||||
fields:
|
||||
defaultMode: foobar
|
||||
names:
|
||||
name0: foobar
|
||||
name1: foobar
|
||||
Headers:
|
||||
DefaultMode: foobar
|
||||
Names:
|
||||
headers:
|
||||
defaultMode: foobar
|
||||
names:
|
||||
name0: foobar
|
||||
name1: foobar
|
||||
Tracing:
|
||||
ServiceName: foobar
|
||||
SpanNameLimit: 42
|
||||
Jaeger:
|
||||
SamplingServerURL: foobar
|
||||
SamplingType: foobar
|
||||
SamplingParam: 42
|
||||
LocalAgentHostPort: foobar
|
||||
Gen128Bit: true
|
||||
Propagation: foobar
|
||||
TraceContextHeaderName: foobar
|
||||
Zipkin:
|
||||
HTTPEndpoint: foobar
|
||||
SameSpan: true
|
||||
ID128Bit: true
|
||||
Debug: true
|
||||
SampleRate: 42
|
||||
DataDog:
|
||||
LocalAgentHostPort: foobar
|
||||
GlobalTag: foobar
|
||||
Debug: true
|
||||
PrioritySampling: true
|
||||
TraceIDHeaderName: foobar
|
||||
ParentIDHeaderName: foobar
|
||||
SamplingPriorityHeaderName: foobar
|
||||
BagagePrefixHeaderName: foobar
|
||||
Instana:
|
||||
LocalAgentHost: foobar
|
||||
LocalAgentPort: 42
|
||||
LogLevel: foobar
|
||||
Haystack:
|
||||
GlobalTag: foobar
|
||||
LocalAgentHost: foobar
|
||||
LocalAgentPort: 42
|
||||
ParentIDHeaderName: foobar
|
||||
TraceIDHeaderName: foobar
|
||||
SpanIDHeaderName: foobar
|
||||
HostResolver:
|
||||
CnameFlattening: true
|
||||
ResolvConfig: foobar
|
||||
ResolvDepth: 42
|
||||
ACME:
|
||||
Email: foobar
|
||||
ACMELogging: true
|
||||
CAServer: foobar
|
||||
Storage: foobar
|
||||
EntryPoint: foobar
|
||||
KeyType: foobar
|
||||
OnHostRule: true
|
||||
DNSChallenge:
|
||||
Provider: foobar
|
||||
DelayBeforeCheck: 42
|
||||
Resolvers:
|
||||
bufferingSize: 42
|
||||
tracing:
|
||||
serviceName: foobar
|
||||
spanNameLimit: 42
|
||||
jaeger:
|
||||
samplingServerURL: foobar
|
||||
samplingType: foobar
|
||||
samplingParam: 42
|
||||
localAgentHostPort: foobar
|
||||
gen128Bit: true
|
||||
propagation: foobar
|
||||
traceContextHeaderName: foobar
|
||||
zipkin:
|
||||
httpEndpoint: foobar
|
||||
sameSpan: true
|
||||
id128Bit: true
|
||||
debug: true
|
||||
sampleRate: 42
|
||||
dataDog:
|
||||
localAgentHostPort: foobar
|
||||
globalTag: foobar
|
||||
debug: true
|
||||
prioritySampling: true
|
||||
traceIDHeaderName: foobar
|
||||
parentIDHeaderName: foobar
|
||||
samplingPriorityHeaderName: foobar
|
||||
bagagePrefixHeaderName: foobar
|
||||
instana:
|
||||
localAgentHost: foobar
|
||||
localAgentPort: 42
|
||||
logLevel: foobar
|
||||
haystack:
|
||||
localAgentHost: foobar
|
||||
localAgentPort: 42
|
||||
globalTag: foobar
|
||||
traceIDHeaderName: foobar
|
||||
parentIDHeaderName: foobar
|
||||
spanIDHeaderName: foobar
|
||||
hostResolver:
|
||||
cnameFlattening: true
|
||||
resolvConfig: foobar
|
||||
resolvDepth: 42
|
||||
acme:
|
||||
email: foobar
|
||||
acmeLogging: true
|
||||
caServer: foobar
|
||||
storage: foobar
|
||||
entryPoint: foobar
|
||||
keyType: foobar
|
||||
onHostRule: true
|
||||
dnsChallenge:
|
||||
provider: foobar
|
||||
delayBeforeCheck: 42
|
||||
resolvers:
|
||||
- foobar
|
||||
- foobar
|
||||
DisablePropagationCheck: true
|
||||
HTTPChallenge:
|
||||
EntryPoint: foobar
|
||||
TLSChallenge: {}
|
||||
Domains:
|
||||
- Main: foobar
|
||||
SANs:
|
||||
disablePropagationCheck: true
|
||||
httpChallenge:
|
||||
entryPoint: foobar
|
||||
tlsChallenge: {}
|
||||
domains:
|
||||
- main: foobar
|
||||
sans:
|
||||
- foobar
|
||||
- foobar
|
||||
- Main: foobar
|
||||
SANs:
|
||||
- main: foobar
|
||||
sans:
|
||||
- foobar
|
||||
- foobar
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue