2017-10-02 10:32:02 +02:00
package anonymize
import (
"crypto/tls"
"testing"
"time"
"github.com/containous/flaeg"
"github.com/containous/traefik/acme"
"github.com/containous/traefik/configuration"
"github.com/containous/traefik/provider"
"github.com/containous/traefik/provider/boltdb"
"github.com/containous/traefik/provider/consul"
2018-01-04 15:56:03 +01:00
"github.com/containous/traefik/provider/consulcatalog"
2017-10-02 10:32:02 +02:00
"github.com/containous/traefik/provider/docker"
"github.com/containous/traefik/provider/dynamodb"
"github.com/containous/traefik/provider/ecs"
"github.com/containous/traefik/provider/etcd"
"github.com/containous/traefik/provider/eureka"
"github.com/containous/traefik/provider/file"
"github.com/containous/traefik/provider/kubernetes"
"github.com/containous/traefik/provider/kv"
"github.com/containous/traefik/provider/marathon"
"github.com/containous/traefik/provider/mesos"
"github.com/containous/traefik/provider/rancher"
"github.com/containous/traefik/provider/zk"
2017-11-09 12:16:03 +01:00
traefikTls "github.com/containous/traefik/tls"
2017-10-02 10:32:02 +02:00
"github.com/containous/traefik/types"
)
func TestDo_globalConfiguration ( t * testing . T ) {
config := & configuration . GlobalConfiguration { }
config . GraceTimeOut = flaeg . Duration ( 666 * time . Second )
config . Debug = true
config . CheckNewVersion = true
config . AccessLogsFile = "AccessLogsFile"
config . AccessLog = & types . AccessLog {
FilePath : "AccessLog FilePath" ,
Format : "AccessLog Format" ,
}
config . TraefikLogsFile = "TraefikLogsFile"
config . LogLevel = "LogLevel"
config . EntryPoints = configuration . EntryPoints {
"foo" : {
Address : "foo Address" ,
2017-11-09 12:16:03 +01:00
TLS : & traefikTls . TLS {
2017-10-02 10:32:02 +02:00
MinVersion : "foo MinVersion" ,
CipherSuites : [ ] string { "foo CipherSuites 1" , "foo CipherSuites 2" , "foo CipherSuites 3" } ,
2017-11-09 12:16:03 +01:00
Certificates : traefikTls . Certificates {
2017-10-02 10:32:02 +02:00
{ CertFile : "CertFile 1" , KeyFile : "KeyFile 1" } ,
{ CertFile : "CertFile 2" , KeyFile : "KeyFile 2" } ,
} ,
2017-11-10 10:30:04 +01:00
ClientCA : traefikTls . ClientCA {
Files : [ ] string { "foo ClientCAFiles 1" , "foo ClientCAFiles 2" , "foo ClientCAFiles 3" } ,
Optional : false ,
} ,
2017-10-02 10:32:02 +02:00
} ,
2017-12-15 11:48:03 +01:00
Redirect : & types . Redirect {
2017-10-02 10:32:02 +02:00
Replacement : "foo Replacement" ,
Regex : "foo Regex" ,
EntryPoint : "foo EntryPoint" ,
} ,
Auth : & types . Auth {
Basic : & types . Basic {
UsersFile : "foo Basic UsersFile" ,
Users : types . Users { "foo Basic Users 1" , "foo Basic Users 2" , "foo Basic Users 3" } ,
} ,
Digest : & types . Digest {
UsersFile : "foo Digest UsersFile" ,
Users : types . Users { "foo Digest Users 1" , "foo Digest Users 2" , "foo Digest Users 3" } ,
} ,
Forward : & types . Forward {
Address : "foo Address" ,
TLS : & types . ClientTLS {
CA : "foo CA" ,
Cert : "foo Cert" ,
Key : "foo Key" ,
InsecureSkipVerify : true ,
} ,
TrustForwardHeader : true ,
} ,
} ,
WhitelistSourceRange : [ ] string { "foo WhitelistSourceRange 1" , "foo WhitelistSourceRange 2" , "foo WhitelistSourceRange 3" } ,
Compress : true ,
2017-10-10 14:50:03 +02:00
ProxyProtocol : & configuration . ProxyProtocol {
TrustedIPs : [ ] string { "127.0.0.1/32" , "192.168.0.1" } ,
} ,
2017-10-02 10:32:02 +02:00
} ,
"fii" : {
Address : "fii Address" ,
2017-11-09 12:16:03 +01:00
TLS : & traefikTls . TLS {
2017-10-02 10:32:02 +02:00
MinVersion : "fii MinVersion" ,
CipherSuites : [ ] string { "fii CipherSuites 1" , "fii CipherSuites 2" , "fii CipherSuites 3" } ,
2017-11-09 12:16:03 +01:00
Certificates : traefikTls . Certificates {
2017-10-02 10:32:02 +02:00
{ CertFile : "CertFile 1" , KeyFile : "KeyFile 1" } ,
{ CertFile : "CertFile 2" , KeyFile : "KeyFile 2" } ,
} ,
2017-11-10 10:30:04 +01:00
ClientCA : traefikTls . ClientCA {
Files : [ ] string { "fii ClientCAFiles 1" , "fii ClientCAFiles 2" , "fii ClientCAFiles 3" } ,
Optional : false ,
} ,
2017-10-02 10:32:02 +02:00
} ,
2017-12-15 11:48:03 +01:00
Redirect : & types . Redirect {
2017-10-02 10:32:02 +02:00
Replacement : "fii Replacement" ,
Regex : "fii Regex" ,
EntryPoint : "fii EntryPoint" ,
} ,
Auth : & types . Auth {
Basic : & types . Basic {
UsersFile : "fii Basic UsersFile" ,
Users : types . Users { "fii Basic Users 1" , "fii Basic Users 2" , "fii Basic Users 3" } ,
} ,
Digest : & types . Digest {
UsersFile : "fii Digest UsersFile" ,
Users : types . Users { "fii Digest Users 1" , "fii Digest Users 2" , "fii Digest Users 3" } ,
} ,
Forward : & types . Forward {
Address : "fii Address" ,
TLS : & types . ClientTLS {
CA : "fii CA" ,
Cert : "fii Cert" ,
Key : "fii Key" ,
InsecureSkipVerify : true ,
} ,
TrustForwardHeader : true ,
} ,
} ,
WhitelistSourceRange : [ ] string { "fii WhitelistSourceRange 1" , "fii WhitelistSourceRange 2" , "fii WhitelistSourceRange 3" } ,
Compress : true ,
2017-10-10 14:50:03 +02:00
ProxyProtocol : & configuration . ProxyProtocol {
TrustedIPs : [ ] string { "127.0.0.1/32" , "192.168.0.1" } ,
} ,
2017-10-02 10:32:02 +02:00
} ,
}
config . Cluster = & types . Cluster {
Node : "Cluster Node" ,
Store : & types . Store {
Prefix : "Cluster Store Prefix" ,
// ...
} ,
}
config . Constraints = types . Constraints {
{
Key : "Constraints Key 1" ,
Regex : "Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "Constraints Key 1" ,
Regex : "Constraints Regex 2" ,
MustMatch : true ,
} ,
}
config . ACME = & acme . ACME {
Email : "acme Email" ,
Domains : [ ] acme . Domain {
{
Main : "Domains Main" ,
SANs : [ ] string { "Domains acme SANs 1" , "Domains acme SANs 2" , "Domains acme SANs 3" } ,
} ,
} ,
Storage : "Storage" ,
StorageFile : "StorageFile" ,
OnDemand : true ,
OnHostRule : true ,
CAServer : "CAServer" ,
EntryPoint : "EntryPoint" ,
2018-01-15 16:04:05 +01:00
DNSChallenge : & acme . DNSChallenge { Provider : "DNSProvider" } ,
2017-10-02 10:32:02 +02:00
DelayDontCheckDNS : 666 ,
ACMELogging : true ,
TLSConfig : & tls . Config {
InsecureSkipVerify : true ,
// ...
} ,
}
config . DefaultEntryPoints = configuration . DefaultEntryPoints { "DefaultEntryPoints 1" , "DefaultEntryPoints 2" , "DefaultEntryPoints 3" }
config . ProvidersThrottleDuration = flaeg . Duration ( 666 * time . Second )
config . MaxIdleConnsPerHost = 666
config . IdleTimeout = flaeg . Duration ( 666 * time . Second )
config . InsecureSkipVerify = true
2017-11-09 12:16:03 +01:00
config . RootCAs = traefikTls . RootCAs { "RootCAs 1" , "RootCAs 2" , "RootCAs 3" }
2017-10-02 10:32:02 +02:00
config . Retry = & configuration . Retry {
Attempts : 666 ,
}
config . HealthCheck = & configuration . HealthCheckConfig {
Interval : flaeg . Duration ( 666 * time . Second ) ,
}
config . RespondingTimeouts = & configuration . RespondingTimeouts {
ReadTimeout : flaeg . Duration ( 666 * time . Second ) ,
WriteTimeout : flaeg . Duration ( 666 * time . Second ) ,
IdleTimeout : flaeg . Duration ( 666 * time . Second ) ,
}
config . ForwardingTimeouts = & configuration . ForwardingTimeouts {
DialTimeout : flaeg . Duration ( 666 * time . Second ) ,
ResponseHeaderTimeout : flaeg . Duration ( 666 * time . Second ) ,
}
config . Docker = & docker . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "docker Filename" ,
Constraints : types . Constraints {
{
Key : "docker Constraints Key 1" ,
Regex : "docker Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "docker Constraints Key 1" ,
Regex : "docker Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "docker Endpoint" ,
Domain : "docker Domain" ,
TLS : & types . ClientTLS {
CA : "docker CA" ,
Cert : "docker Cert" ,
Key : "docker Key" ,
InsecureSkipVerify : true ,
} ,
ExposedByDefault : true ,
UseBindPortIP : true ,
SwarmMode : true ,
}
config . File = & file . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "file Filename" ,
Constraints : types . Constraints {
{
Key : "file Constraints Key 1" ,
Regex : "file Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "file Constraints Key 1" ,
Regex : "file Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Directory : "file Directory" ,
}
2017-11-09 16:12:04 +01:00
config . Web = & configuration . WebCompatibility {
2017-10-02 10:32:02 +02:00
Address : "web Address" ,
CertFile : "web CertFile" ,
KeyFile : "web KeyFile" ,
ReadOnly : true ,
Statistics : & types . Statistics {
RecentErrors : 666 ,
} ,
Metrics : & types . Metrics {
Prometheus : & types . Prometheus {
Buckets : types . Buckets { 6.5 , 6.6 , 6.7 } ,
} ,
Datadog : & types . Datadog {
Address : "Datadog Address" ,
PushInterval : "Datadog PushInterval" ,
} ,
StatsD : & types . Statsd {
Address : "StatsD Address" ,
PushInterval : "StatsD PushInterval" ,
} ,
} ,
Path : "web Path" ,
Auth : & types . Auth {
Basic : & types . Basic {
UsersFile : "web Basic UsersFile" ,
Users : types . Users { "web Basic Users 1" , "web Basic Users 2" , "web Basic Users 3" } ,
} ,
Digest : & types . Digest {
UsersFile : "web Digest UsersFile" ,
Users : types . Users { "web Digest Users 1" , "web Digest Users 2" , "web Digest Users 3" } ,
} ,
Forward : & types . Forward {
Address : "web Address" ,
TLS : & types . ClientTLS {
CA : "web CA" ,
Cert : "web Cert" ,
Key : "web Key" ,
InsecureSkipVerify : true ,
} ,
TrustForwardHeader : true ,
} ,
} ,
Debug : true ,
}
config . Marathon = & marathon . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "marathon Filename" ,
Constraints : types . Constraints {
{
Key : "marathon Constraints Key 1" ,
Regex : "marathon Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "marathon Constraints Key 1" ,
Regex : "marathon Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "" ,
Domain : "" ,
ExposedByDefault : true ,
GroupsAsSubDomains : true ,
DCOSToken : "" ,
MarathonLBCompatibility : true ,
TLS : & types . ClientTLS {
CA : "marathon CA" ,
Cert : "marathon Cert" ,
Key : "marathon Key" ,
InsecureSkipVerify : true ,
} ,
DialerTimeout : flaeg . Duration ( 666 * time . Second ) ,
KeepAlive : flaeg . Duration ( 666 * time . Second ) ,
ForceTaskHostname : true ,
Basic : & marathon . Basic {
HTTPBasicAuthUser : "marathon HTTPBasicAuthUser" ,
HTTPBasicPassword : "marathon HTTPBasicPassword" ,
} ,
RespectReadinessChecks : true ,
}
2018-01-04 15:56:03 +01:00
config . ConsulCatalog = & consulcatalog . Provider {
2017-10-02 10:32:02 +02:00
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "ConsulCatalog Filename" ,
Constraints : types . Constraints {
{
Key : "ConsulCatalog Constraints Key 1" ,
Regex : "ConsulCatalog Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "ConsulCatalog Constraints Key 1" ,
Regex : "ConsulCatalog Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "ConsulCatalog Endpoint" ,
Domain : "ConsulCatalog Domain" ,
ExposedByDefault : true ,
Prefix : "ConsulCatalog Prefix" ,
FrontEndRule : "ConsulCatalog FrontEndRule" ,
}
config . Kubernetes = & kubernetes . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "k8s Filename" ,
Constraints : types . Constraints {
{
Key : "k8s Constraints Key 1" ,
Regex : "k8s Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "k8s Constraints Key 1" ,
Regex : "k8s Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "k8s Endpoint" ,
Token : "k8s Token" ,
CertAuthFilePath : "k8s CertAuthFilePath" ,
DisablePassHostHeaders : true ,
Namespaces : kubernetes . Namespaces { "k8s Namespaces 1" , "k8s Namespaces 2" , "k8s Namespaces 3" } ,
LabelSelector : "k8s LabelSelector" ,
}
config . Mesos = & mesos . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "mesos Filename" ,
Constraints : types . Constraints {
{
Key : "mesos Constraints Key 1" ,
Regex : "mesos Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "mesos Constraints Key 1" ,
Regex : "mesos Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "mesos Endpoint" ,
Domain : "mesos Domain" ,
ExposedByDefault : true ,
GroupsAsSubDomains : true ,
ZkDetectionTimeout : 666 ,
RefreshSeconds : 666 ,
IPSources : "mesos IPSources" ,
StateTimeoutSecond : 666 ,
Masters : [ ] string { "mesos Masters 1" , "mesos Masters 2" , "mesos Masters 3" } ,
}
config . Eureka = & eureka . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "eureka Filename" ,
Constraints : types . Constraints {
{
Key : "eureka Constraints Key 1" ,
Regex : "eureka Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "eureka Constraints Key 1" ,
Regex : "eureka Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "eureka Endpoint" ,
2018-02-13 09:20:04 +01:00
Delay : flaeg . Duration ( 30 * time . Second ) ,
2017-10-02 10:32:02 +02:00
}
config . ECS = & ecs . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "ecs Filename" ,
Constraints : types . Constraints {
{
Key : "ecs Constraints Key 1" ,
Regex : "ecs Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "ecs Constraints Key 1" ,
Regex : "ecs Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Domain : "ecs Domain" ,
ExposedByDefault : true ,
RefreshSeconds : 666 ,
Clusters : ecs . Clusters { "ecs Clusters 1" , "ecs Clusters 2" , "ecs Clusters 3" } ,
Cluster : "ecs Cluster" ,
AutoDiscoverClusters : true ,
Region : "ecs Region" ,
AccessKeyID : "ecs AccessKeyID" ,
SecretAccessKey : "ecs SecretAccessKey" ,
}
config . Rancher = & rancher . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "rancher Filename" ,
Constraints : types . Constraints {
{
Key : "rancher Constraints Key 1" ,
Regex : "rancher Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "rancher Constraints Key 1" ,
Regex : "rancher Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
APIConfiguration : rancher . APIConfiguration {
Endpoint : "rancher Endpoint" ,
AccessKey : "rancher AccessKey" ,
SecretKey : "rancher SecretKey" ,
} ,
API : & rancher . APIConfiguration {
Endpoint : "rancher Endpoint" ,
AccessKey : "rancher AccessKey" ,
SecretKey : "rancher SecretKey" ,
} ,
Metadata : & rancher . MetadataConfiguration {
IntervalPoll : true ,
Prefix : "rancher Metadata Prefix" ,
} ,
Domain : "rancher Domain" ,
RefreshSeconds : 666 ,
ExposedByDefault : true ,
EnableServiceHealthFilter : true ,
}
config . DynamoDB = & dynamodb . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "dynamodb Filename" ,
Constraints : types . Constraints {
{
Key : "dynamodb Constraints Key 1" ,
Regex : "dynamodb Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "dynamodb Constraints Key 1" ,
Regex : "dynamodb Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
AccessKeyID : "dynamodb AccessKeyID" ,
RefreshSeconds : 666 ,
Region : "dynamodb Region" ,
SecretAccessKey : "dynamodb SecretAccessKey" ,
TableName : "dynamodb TableName" ,
Endpoint : "dynamodb Endpoint" ,
}
config . Etcd = & etcd . Provider {
Provider : kv . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "etcd Filename" ,
Constraints : types . Constraints {
{
Key : "etcd Constraints Key 1" ,
Regex : "etcd Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "etcd Constraints Key 1" ,
Regex : "etcd Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "etcd Endpoint" ,
Prefix : "etcd Prefix" ,
TLS : & types . ClientTLS {
CA : "etcd CA" ,
Cert : "etcd Cert" ,
Key : "etcd Key" ,
InsecureSkipVerify : true ,
} ,
Username : "etcd Username" ,
Password : "etcd Password" ,
} ,
}
config . Zookeeper = & zk . Provider {
Provider : kv . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "zk Filename" ,
Constraints : types . Constraints {
{
Key : "zk Constraints Key 1" ,
Regex : "zk Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "zk Constraints Key 1" ,
Regex : "zk Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "zk Endpoint" ,
Prefix : "zk Prefix" ,
TLS : & types . ClientTLS {
CA : "zk CA" ,
Cert : "zk Cert" ,
Key : "zk Key" ,
InsecureSkipVerify : true ,
} ,
Username : "zk Username" ,
Password : "zk Password" ,
} ,
}
config . Boltdb = & boltdb . Provider {
Provider : kv . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "boltdb Filename" ,
Constraints : types . Constraints {
{
Key : "boltdb Constraints Key 1" ,
Regex : "boltdb Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "boltdb Constraints Key 1" ,
Regex : "boltdb Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "boltdb Endpoint" ,
Prefix : "boltdb Prefix" ,
TLS : & types . ClientTLS {
CA : "boltdb CA" ,
Cert : "boltdb Cert" ,
Key : "boltdb Key" ,
InsecureSkipVerify : true ,
} ,
Username : "boltdb Username" ,
Password : "boltdb Password" ,
} ,
}
config . Consul = & consul . Provider {
Provider : kv . Provider {
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "consul Filename" ,
Constraints : types . Constraints {
{
Key : "consul Constraints Key 1" ,
Regex : "consul Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "consul Constraints Key 1" ,
Regex : "consul Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
Trace : true ,
DebugLogGeneratedTemplate : true ,
} ,
Endpoint : "consul Endpoint" ,
Prefix : "consul Prefix" ,
TLS : & types . ClientTLS {
CA : "consul CA" ,
Cert : "consul Cert" ,
Key : "consul Key" ,
InsecureSkipVerify : true ,
} ,
Username : "consul Username" ,
Password : "consul Password" ,
} ,
}
cleanJSON , err := Do ( config , true )
if err != nil {
t . Fatal ( err , cleanJSON )
}
}