// Code generated by go-bindata. // sources: // templates/consul_catalog.tmpl // templates/docker.tmpl // templates/ecs.tmpl // templates/eureka.tmpl // templates/kubernetes.tmpl // templates/kv.tmpl // templates/marathon.tmpl // templates/mesos.tmpl // templates/notFound.tmpl // templates/rancher.tmpl // DO NOT EDIT! package gentemplates import ( "fmt" "io/ioutil" "os" "path/filepath" "strings" "time" ) type asset struct { bytes []byte info os.FileInfo } type bindataFileInfo struct { name string size int64 mode os.FileMode modTime time.Time } func (fi bindataFileInfo) Name() string { return fi.name } func (fi bindataFileInfo) Size() int64 { return fi.size } func (fi bindataFileInfo) Mode() os.FileMode { return fi.mode } func (fi bindataFileInfo) ModTime() time.Time { return fi.modTime } func (fi bindataFileInfo) IsDir() bool { return false } func (fi bindataFileInfo) Sys() interface{} { return nil } var _templatesConsul_catalogTmpl = []byte(`[backends] {{range $index, $node := .Nodes}} [backends."backend-{{getBackend $node}}".servers."{{getBackendName $node $index}}"] url = "{{getAttribute "protocol" $node.Service.Tags "http"}}://{{getBackendAddress $node}}:{{$node.Service.Port}}" {{$weight := getAttribute "backend.weight" $node.Service.Tags "0"}} {{with $weight}} weight = {{$weight}} {{end}} {{end}} {{range .Services}} {{$service := .ServiceName}} {{$circuitBreaker := getAttribute "backend.circuitbreaker" .Attributes ""}} {{with $circuitBreaker}} [backends."backend-{{$service}}".circuitbreaker] expression = "{{$circuitBreaker}}" {{end}} [backends."backend-{{$service}}".loadbalancer] method = "{{getAttribute "backend.loadbalancer" .Attributes "wrr"}}" sticky = {{getSticky .Attributes}} {{if hasStickinessLabel .Attributes}} [backends."backend-{{$service}}".loadbalancer.stickiness] cookieName = "{{getStickinessCookieName .Attributes}}" {{end}} {{if hasMaxconnAttributes .Attributes}} [backends."backend-{{$service}}".maxconn] amount = {{getAttribute "backend.maxconn.amount" .Attributes "" }} extractorfunc = "{{getAttribute "backend.maxconn.extractorfunc" .Attributes "" }}" {{end}} {{end}} [frontends] {{range .Services}} [frontends."frontend-{{.ServiceName}}"] backend = "backend-{{.ServiceName}}" passHostHeader = {{getAttribute "frontend.passHostHeader" .Attributes "true"}} priority = {{getAttribute "frontend.priority" .Attributes "0"}} {{$entryPoints := getAttribute "frontend.entrypoints" .Attributes ""}} {{with $entryPoints}} entrypoints = [{{range getEntryPoints $entryPoints}} "{{.}}", {{end}}] {{end}} basicAuth = [{{range getBasicAuth .Attributes}} "{{.}}", {{end}}] [frontends."frontend-{{.ServiceName}}".routes."route-host-{{.ServiceName}}"] rule = "{{getFrontendRule .}}" {{end}} `) func templatesConsul_catalogTmplBytes() ([]byte, error) { return _templatesConsul_catalogTmpl, nil } func templatesConsul_catalogTmpl() (*asset, error) { bytes, err := templatesConsul_catalogTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/consul_catalog.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesDockerTmpl = []byte(`{{$backendServers := .Servers}} [backends]{{range $backendName, $backend := .Backends}} {{if hasCircuitBreakerLabel $backend}} [backends.backend-{{$backendName}}.circuitbreaker] expression = "{{getCircuitBreakerExpression $backend}}" {{end}} {{if hasLoadBalancerLabel $backend}} [backends.backend-{{$backendName}}.loadbalancer] method = "{{getLoadBalancerMethod $backend}}" sticky = {{getSticky $backend}} {{if hasStickinessLabel $backend}} [backends.backend-{{$backendName}}.loadbalancer.stickiness] cookieName = "{{getStickinessCookieName $backend}}" {{end}} {{end}} {{if hasMaxConnLabels $backend}} [backends.backend-{{$backendName}}.maxconn] amount = {{getMaxConnAmount $backend}} extractorfunc = "{{getMaxConnExtractorFunc $backend}}" {{end}} {{$servers := index $backendServers $backendName}} {{range $serverName, $server := $servers}} {{if hasServices $server}} {{$services := getServiceNames $server}} {{range $serviceIndex, $serviceName := $services}} [backends.backend-{{getServiceBackend $server $serviceName}}.servers.service-{{$serverName}}] url = "{{getServiceProtocol $server $serviceName}}://{{getIPAddress $server}}:{{getServicePort $server $serviceName}}" weight = {{getServiceWeight $server $serviceName}} {{end}} {{else}} [backends.backend-{{$backendName}}.servers.server-{{$server.Name | replace "/" "" | replace "." "-"}}] url = "{{getProtocol $server}}://{{getIPAddress $server}}:{{getPort $server}}" weight = {{getWeight $server}} {{end}} {{end}} {{end}} [frontends]{{range $frontend, $containers := .Frontends}} {{$container := index $containers 0}} {{if hasServices $container}} {{$services := getServiceNames $container}} {{range $serviceIndex, $serviceName := $services}} [frontends."frontend-{{getServiceBackend $container $serviceName}}"] backend = "backend-{{getServiceBackend $container $serviceName}}" passHostHeader = {{getServicePassHostHeader $container $serviceName}} {{if getWhitelistSourceRange $container}} whitelistSourceRange = [{{range getWhitelistSourceRange $container}} "{{.}}", {{end}}] {{end}} priority = {{getServicePriority $container $serviceName}} entryPoints = [{{range getServiceEntryPoints $container $serviceName}} "{{.}}", {{end}}] basicAuth = [{{range getServiceBasicAuth $container $serviceName}} "{{.}}", {{end}}] {{if hasServiceRedirect $container $serviceName}} [frontends."frontend-{{getServiceBackend $container $serviceName}}".redirect] entryPoint = "{{getServiceRedirectEntryPoint $container $serviceName}}" regex = "{{getServiceRedirectRegex $container $serviceName}}" replacement = "{{getServiceRedirectReplacement $container $serviceName}}" {{end}} [frontends."frontend-{{getServiceBackend $container $serviceName}}".routes."service-{{$serviceName | replace "/" "" | replace "." "-"}}"] rule = "{{getServiceFrontendRule $container $serviceName}}" {{end}} {{else}} [frontends."frontend-{{$frontend}}"] backend = "backend-{{getBackend $container}}" passHostHeader = {{getPassHostHeader $container}} {{if getWhitelistSourceRange $container}} whitelistSourceRange = [{{range getWhitelistSourceRange $container}} "{{.}}", {{end}}] {{end}} priority = {{getPriority $container}} entryPoints = [{{range getEntryPoints $container}} "{{.}}", {{end}}] basicAuth = [{{range getBasicAuth $container}} "{{.}}", {{end}}] {{if hasRedirect $container}} [frontends."frontend-{{$frontend}}".redirect] entryPoint = "{{getRedirectEntryPoint $container}}" regex = "{{getRedirectRegex $container}}" replacement = "{{getRedirectReplacement $container}}" {{end}} {{ if hasHeaders $container}} [frontends."frontend-{{$frontend}}".headers] {{if hasSSLRedirectHeaders $container}} SSLRedirect = {{getSSLRedirectHeaders $container}} {{end}} {{if hasSSLTemporaryRedirectHeaders $container}} SSLTemporaryRedirect = {{getSSLTemporaryRedirectHeaders $container}} {{end}} {{if hasSSLHostHeaders $container}} SSLHost = "{{getSSLHostHeaders $container}}" {{end}} {{if hasSTSSecondsHeaders $container}} STSSeconds = {{getSTSSecondsHeaders $container}} {{end}} {{if hasSTSIncludeSubdomainsHeaders $container}} STSIncludeSubdomains = {{getSTSIncludeSubdomainsHeaders $container}} {{end}} {{if hasSTSPreloadHeaders $container}} STSPreload = {{getSTSPreloadHeaders $container}} {{end}} {{if hasForceSTSHeaderHeaders $container}} ForceSTSHeader = {{getForceSTSHeaderHeaders $container}} {{end}} {{if hasFrameDenyHeaders $container}} FrameDeny = {{getFrameDenyHeaders $container}} {{end}} {{if hasCustomFrameOptionsValueHeaders $container}} CustomFrameOptionsValue = "{{getCustomFrameOptionsValueHeaders $container}}" {{end}} {{if hasContentTypeNosniffHeaders $container}} ContentTypeNosniff = {{getContentTypeNosniffHeaders $container}} {{end}} {{if hasBrowserXSSFilterHeaders $container}} BrowserXSSFilter = {{getBrowserXSSFilterHeaders $container}} {{end}} {{if hasContentSecurityPolicyHeaders $container}} ContentSecurityPolicy = "{{getContentSecurityPolicyHeaders $container}}" {{end}} {{if hasPublicKeyHeaders $container}} PublicKey = "{{getPublicKeyHeaders $container}}" {{end}} {{if hasReferrerPolicyHeaders $container}} ReferrerPolicy = "{{getReferrerPolicyHeaders $container}}" {{end}} {{if hasIsDevelopmentHeaders $container}} IsDevelopment = {{getIsDevelopmentHeaders $container}} {{end}} {{if hasAllowedHostsHeaders $container}} AllowedHosts = [{{range getAllowedHostsHeaders $container}} "{{.}}", {{end}}] {{end}} {{if hasHostsProxyHeaders $container}} HostsProxyHeaders = [{{range getHostsProxyHeaders $container}} "{{.}}", {{end}}] {{end}} {{if hasRequestHeaders $container}} [frontends."frontend-{{$frontend}}".headers.customrequestheaders] {{range $k, $v := getRequestHeaders $container}} {{$k}} = "{{$v}}" {{end}} {{end}} {{if hasResponseHeaders $container}} [frontends."frontend-{{$frontend}}".headers.customresponseheaders] {{range $k, $v := getResponseHeaders $container}} {{$k}} = "{{$v}}" {{end}} {{end}} {{if hasSSLProxyHeaders $container}} [frontends."frontend-{{$frontend}}".headers.SSLProxyHeaders] {{range $k, $v := getSSLProxyHeaders $container}} {{$k}} = "{{$v}}" {{end}} {{end}} {{end}} [frontends."frontend-{{$frontend}}".routes."route-frontend-{{$frontend}}"] rule = "{{getFrontendRule $container}}" {{end}} {{end}} `) func templatesDockerTmplBytes() ([]byte, error) { return _templatesDockerTmpl, nil } func templatesDockerTmpl() (*asset, error) { bytes, err := templatesDockerTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/docker.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesEcsTmpl = []byte(`[backends]{{range $serviceName, $instances := .Services}} [backends.backend-{{ $serviceName }}.loadbalancer] method = "{{ getLoadBalancerMethod $instances}}" sticky = {{ getLoadBalancerSticky $instances}} {{if hasStickinessLabel $instances}} [backends.backend-{{ $serviceName }}.loadbalancer.stickiness] cookieName = "{{getStickinessCookieName $instances}}" {{end}} {{ if hasHealthCheckLabels $instances }} [backends.backend-{{ $serviceName }}.healthcheck] path = "{{getHealthCheckPath $instances }}" interval = "{{getHealthCheckInterval $instances }}" {{end}} {{range $index, $i := $instances}} [backends.backend-{{ $i.Name }}.servers.server-{{ $i.Name }}{{ $i.ID }}] url = "{{ getProtocol $i }}://{{ getHost $i }}:{{ getPort $i }}" weight = {{ getWeight $i}} {{end}} {{end}} [frontends]{{range $serviceName, $instances := .Services}} {{range filterFrontends $instances}} [frontends.frontend-{{ $serviceName }}] backend = "backend-{{ $serviceName }}" passHostHeader = {{ getPassHostHeader .}} priority = {{ getPriority .}} entryPoints = [{{range getEntryPoints .}} "{{.}}", {{end}}] basicAuth = [{{range getBasicAuth .}} "{{.}}", {{end}}] [frontends.frontend-{{ $serviceName }}.routes.route-frontend-{{ $serviceName }}] rule = "{{getFrontendRule .}}" {{end}} {{end}}`) func templatesEcsTmplBytes() ([]byte, error) { return _templatesEcsTmpl, nil } func templatesEcsTmpl() (*asset, error) { bytes, err := templatesEcsTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/ecs.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesEurekaTmpl = []byte(`[backends]{{range .Applications}} {{ $app := .}} {{range .Instances}} [backends.backend{{$app.Name}}.servers.server-{{ getInstanceID . }}] url = "{{ getProtocol . }}://{{ .IpAddr }}:{{ getPort . }}" weight = {{ getWeight . }} {{end}}{{end}} [frontends]{{range .Applications}} [frontends.frontend{{.Name}}] backend = "backend{{.Name}}" entryPoints = ["http"] [frontends.frontend{{.Name }}.routes.route-host{{.Name}}] rule = "Host:{{ .Name | tolower }}" {{end}} `) func templatesEurekaTmplBytes() ([]byte, error) { return _templatesEurekaTmpl, nil } func templatesEurekaTmpl() (*asset, error) { bytes, err := templatesEurekaTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/eureka.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesKubernetesTmpl = []byte(`[backends]{{range $backendName, $backend := .Backends}} [backends."{{$backendName}}"] {{if $backend.CircuitBreaker}} [backends."{{$backendName}}".circuitbreaker] expression = "{{$backend.CircuitBreaker.Expression}}" {{end}} [backends."{{$backendName}}".loadbalancer] method = "{{$backend.LoadBalancer.Method}}" {{if $backend.LoadBalancer.Sticky}} sticky = true {{end}} {{if $backend.LoadBalancer.Stickiness}} [backends."{{$backendName}}".loadbalancer.stickiness] cookieName = "{{$backend.LoadBalancer.Stickiness.CookieName}}" {{end}} {{range $serverName, $server := $backend.Servers}} [backends."{{$backendName}}".servers."{{$serverName}}"] url = "{{$server.URL}}" weight = {{$server.Weight}} {{end}} {{end}} [frontends]{{range $frontendName, $frontend := .Frontends}} [frontends."{{$frontendName}}"] backend = "{{$frontend.Backend}}" priority = {{$frontend.Priority}} passHostHeader = {{$frontend.PassHostHeader}} entryPoints = [{{range $frontend.EntryPoints}} "{{.}}", {{end}}] basicAuth = [{{range $frontend.BasicAuth}} "{{.}}", {{end}}] whitelistSourceRange = [{{range $frontend.WhitelistSourceRange}} "{{.}}", {{end}}] {{if $frontend.Redirect}} [frontends."{{$frontendName}}".redirect] entryPoint = "{{$frontend.Redirect.EntryPoint}}" regex = "{{$frontend.Redirect.Regex}}" replacement = "{{$frontend.Redirect.Replacement}}" {{end}} {{ if $frontend.Headers }} [frontends."{{$frontendName}}".headers] SSLRedirect = {{$frontend.Headers.SSLRedirect}} SSLTemporaryRedirect = {{$frontend.Headers.SSLTemporaryRedirect}} SSLHost = "{{$frontend.Headers.SSLHost}}" STSSeconds = {{$frontend.Headers.STSSeconds}} STSIncludeSubdomains = {{$frontend.Headers.STSIncludeSubdomains}} STSPreload = {{$frontend.Headers.STSPreload}} ForceSTSHeader = {{$frontend.Headers.ForceSTSHeader}} FrameDeny = {{$frontend.Headers.FrameDeny}} CustomFrameOptionsValue = "{{$frontend.Headers.CustomFrameOptionsValue}}" ContentTypeNosniff = {{$frontend.Headers.ContentTypeNosniff}} BrowserXSSFilter = {{$frontend.Headers.BrowserXSSFilter}} ContentSecurityPolicy = "{{$frontend.Headers.ContentSecurityPolicy}}" PublicKey = "{{$frontend.Headers.PublicKey}}" ReferrerPolicy = "{{$frontend.Headers.ReferrerPolicy}}" IsDevelopment = {{$frontend.Headers.IsDevelopment}} {{if $frontend.Headers.AllowedHosts}} AllowedHosts = [{{range $frontend.Headers.AllowedHosts}} "{{.}}", {{end}}] {{end}} {{if $frontend.Headers.HostsProxyHeaders}} HostsProxyHeaders = [{{range $frontend.Headers.HostsProxyHeaders}} "{{.}}", {{end}}] {{end}} {{if $frontend.Headers.CustomRequestHeaders}} [frontends."{{$frontendName}}".headers.customrequestheaders] {{range $k, $v := $frontend.Headers.CustomRequestHeaders}} {{$k}} = "{{$v}}" {{end}} {{end}} {{if $frontend.Headers.CustomResponseHeaders}} [frontends."{{$frontendName}}".headers.customresponseheaders] {{range $k, $v := $frontend.Headers.CustomResponseHeaders}} {{$k}} = "{{$v}}" {{end}} {{end}} {{if $frontend.Headers.SSLProxyHeaders}} [frontends."{{$frontendName}}".headers.SSLProxyHeaders] {{range $k, $v := $frontend.Headers.SSLProxyHeaders}} {{$k}} = "{{$v}}" {{end}} {{end}} {{end}} {{range $routeName, $route := $frontend.Routes}} [frontends."{{$frontendName}}".routes."{{$routeName}}"] rule = "{{$route.Rule}}" {{end}} {{end}} `) func templatesKubernetesTmplBytes() ([]byte, error) { return _templatesKubernetesTmpl, nil } func templatesKubernetesTmpl() (*asset, error) { bytes, err := templatesKubernetesTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/kubernetes.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesKvTmpl = []byte(`{{$frontends := List .Prefix "/frontends/" }} {{$backends := List .Prefix "/backends/"}} {{$tls := List .Prefix "/tls/"}} [backends]{{range $backends}} {{$backend := .}} {{$backendName := Last $backend}} {{$servers := ListServers $backend }} {{$circuitBreaker := Get "" . "/circuitbreaker/" "expression"}} {{with $circuitBreaker}} [backends."{{$backendName}}".circuitBreaker] expression = "{{$circuitBreaker}}" {{end}} {{$loadBalancer := Get "" . "/loadbalancer/" "method"}} {{with $loadBalancer}} [backends."{{$backendName}}".loadBalancer] method = "{{$loadBalancer}}" sticky = {{ getSticky . }} {{if hasStickinessLabel $backend}} [backends."{{$backendName}}".loadBalancer.stickiness] cookieName = "{{getStickinessCookieName $backend}}" {{end}} {{end}} {{$healthCheck := Get "" . "/healthcheck/" "path"}} {{with $healthCheck}} [backends."{{$backendName}}".healthCheck] path = "{{$healthCheck}}" interval = "{{ Get "30s" $backend "/healthcheck/" "interval" }}" {{end}} {{$maxConnAmt := Get "" . "/maxconn/" "amount"}} {{$maxConnExtractorFunc := Get "" . "/maxconn/" "extractorfunc"}} {{with $maxConnAmt}} {{with $maxConnExtractorFunc}} [backends."{{$backendName}}".maxConn] amount = {{$maxConnAmt}} extractorFunc = "{{$maxConnExtractorFunc}}" {{end}} {{end}} {{range $servers}} [backends."{{$backendName}}".servers."{{Last .}}"] url = "{{Get "" . "/url"}}" weight = {{Get "0" . "/weight"}} {{end}} {{end}} [frontends]{{range $frontends}} {{$frontend := Last .}} {{$entryPoints := GetList . "/entrypoints"}} [frontends."{{$frontend}}"] backend = "{{Get "" . "/backend"}}" passHostHeader = {{Get "true" . "/passHostHeader"}} priority = {{Get "0" . "/priority"}} entryPoints = [{{range $entryPoints}} "{{.}}", {{end}}] {{$routes := List . "/routes/"}} {{range $routes}} [frontends."{{$frontend}}".routes."{{Last .}}"] rule = "{{Get "" . "/rule"}}" {{end}} {{end}} {{range $tls}} {{$entryPoints := SplitGet . "/entrypoints"}} [[tls]] entryPoints = [{{range $entryPoints}} "{{.}}", {{end}}] [tls.certificate] certFile = """{{Get "" . "/certificate" "/certfile"}}""" keyFile = """{{Get "" . "/certificate" "/keyfile"}}""" {{end}} `) func templatesKvTmplBytes() ([]byte, error) { return _templatesKvTmpl, nil } func templatesKvTmpl() (*asset, error) { bytes, err := templatesKvTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/kv.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesMarathonTmpl = []byte(`{{$apps := .Applications}} {{range $app := $apps}} {{range $task := $app.Tasks}} {{range $serviceIndex, $serviceName := getServiceNames $app}} [backends."backend{{getBackend $app $serviceName}}".servers."server-{{$task.ID | replace "." "-"}}{{getServiceNameSuffix $serviceName }}"] url = "{{getProtocol $app $serviceName}}://{{getBackendServer $task $app}}:{{getPort $task $app $serviceName}}" weight = {{getWeight $app $serviceName}} {{end}} {{end}} {{end}} {{range $app := $apps}} {{range $serviceIndex, $serviceName := getServiceNames $app}} [backends."backend{{getBackend $app $serviceName }}"] {{ if hasMaxConnLabels $app }} [backends."backend{{getBackend $app $serviceName }}".maxconn] amount = {{getMaxConnAmount $app }} extractorfunc = "{{getMaxConnExtractorFunc $app }}" {{end}} {{ if hasLoadBalancerLabels $app }} [backends."backend{{getBackend $app $serviceName }}".loadbalancer] method = "{{getLoadBalancerMethod $app }}" sticky = {{getSticky $app}} {{if hasStickinessLabel $app}} [backends."backend{{getBackend $app $serviceName }}".loadbalancer.stickiness] cookieName = "{{getStickinessCookieName $app}}" {{end}} {{end}} {{ if hasCircuitBreakerLabels $app }} [backends."backend{{getBackend $app $serviceName }}".circuitbreaker] expression = "{{getCircuitBreakerExpression $app }}" {{end}} {{ if hasHealthCheckLabels $app }} [backends."backend{{getBackend $app $serviceName }}".healthcheck] path = "{{getHealthCheckPath $app }}" interval = "{{getHealthCheckInterval $app }}" {{end}} {{end}} {{end}} [frontends]{{range $app := $apps}}{{range $serviceIndex, $serviceName := getServiceNames .}} [frontends."{{ getFrontendName $app $serviceName }}"] backend = "backend{{getBackend $app $serviceName}}" passHostHeader = {{getPassHostHeader $app $serviceName}} priority = {{getPriority $app $serviceName}} entryPoints = [{{range getEntryPoints $app $serviceName}} "{{.}}", {{end}}] basicAuth = [{{range getBasicAuth $app $serviceName}} "{{.}}", {{end}}] [frontends."{{ getFrontendName $app $serviceName }}".routes."route-host{{$app.ID | replace "/" "-"}}{{getServiceNameSuffix $serviceName }}"] rule = "{{getFrontendRule $app $serviceName}}" {{end}}{{end}} `) func templatesMarathonTmplBytes() ([]byte, error) { return _templatesMarathonTmpl, nil } func templatesMarathonTmpl() (*asset, error) { bytes, err := templatesMarathonTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/marathon.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesMesosTmpl = []byte(`{{$apps := .Applications}} [backends]{{range .Tasks}} [backends.backend{{getBackend . $apps}}.servers.server-{{getID .}}] url = "{{getProtocol . $apps}}://{{getHost .}}:{{getPort . $apps}}" weight = {{getWeight . $apps}} {{end}} [frontends]{{range .Applications}} [frontends.frontend-{{getFrontEndName .}}] backend = "backend{{getFrontendBackend .}}" passHostHeader = {{getPassHostHeader .}} priority = {{getPriority .}} entryPoints = [{{range getEntryPoints .}} "{{.}}", {{end}}] [frontends.frontend-{{getFrontEndName .}}.routes.route-host{{getFrontEndName .}}] rule = "{{getFrontendRule .}}" {{end}} `) func templatesMesosTmplBytes() ([]byte, error) { return _templatesMesosTmpl, nil } func templatesMesosTmpl() (*asset, error) { bytes, err := templatesMesosTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/mesos.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesNotfoundTmpl = []byte(` Traefik Ohhhh man, this is bad... `) func templatesNotfoundTmplBytes() ([]byte, error) { return _templatesNotfoundTmpl, nil } func templatesNotfoundTmpl() (*asset, error) { bytes, err := templatesNotfoundTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/notFound.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _templatesRancherTmpl = []byte(`{{$backendServers := .Backends}} [backends]{{range $backendName, $backend := .Backends}} {{if hasCircuitBreakerLabel $backend}} [backends.backend-{{$backendName}}.circuitbreaker] expression = "{{getCircuitBreakerExpression $backend}}" {{end}} {{if hasLoadBalancerLabel $backend}} [backends.backend-{{$backendName}}.loadbalancer] method = "{{getLoadBalancerMethod $backend}}" sticky = {{getSticky $backend}} {{if hasStickinessLabel $backend}} [backends.backend-{{$backendName}}.loadbalancer.stickiness] cookieName = "{{getStickinessCookieName $backend}}" {{end}} {{end}} {{if hasMaxConnLabels $backend}} [backends.backend-{{$backendName}}.maxconn] amount = {{getMaxConnAmount $backend}} extractorfunc = "{{getMaxConnExtractorFunc $backend}}" {{end}} {{range $index, $ip := $backend.Containers}} [backends.backend-{{$backendName}}.servers.server-{{$index}}] url = "{{getProtocol $backend}}://{{$ip}}:{{getPort $backend}}" weight = {{getWeight $backend}} {{end}} {{end}} [frontends]{{range $frontendName, $service := .Frontends}} [frontends."frontend-{{$frontendName}}"] backend = "backend-{{getBackend $service}}" passHostHeader = {{getPassHostHeader $service}} priority = {{getPriority $service}} entryPoints = [{{range getEntryPoints $service}} "{{.}}", {{end}}] basicAuth = [{{range getBasicAuth $service}} "{{.}}", {{end}}] {{if hasRedirect $service}} [frontends."frontend-{{$frontendName}}".redirect] entryPoint = "{{getRedirectEntryPoint $service}}" regex = "{{getRedirectRegex $service}}" replacement = "{{getRedirectReplacement $service}}" {{end}} [frontends."frontend-{{$frontendName}}".routes."route-frontend-{{$frontendName}}"] rule = "{{getFrontendRule $service}}" {{end}} `) func templatesRancherTmplBytes() ([]byte, error) { return _templatesRancherTmpl, nil } func templatesRancherTmpl() (*asset, error) { bytes, err := templatesRancherTmplBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "templates/rancher.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } // Asset loads and returns the asset for the given name. // It returns an error if the asset could not be found or // could not be loaded. func Asset(name string) ([]byte, error) { cannonicalName := strings.Replace(name, "\\", "/", -1) if f, ok := _bindata[cannonicalName]; ok { a, err := f() if err != nil { return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) } return a.bytes, nil } return nil, fmt.Errorf("Asset %s not found", name) } // MustAsset is like Asset but panics when Asset would return an error. // It simplifies safe initialization of global variables. func MustAsset(name string) []byte { a, err := Asset(name) if err != nil { panic("asset: Asset(" + name + "): " + err.Error()) } return a } // AssetInfo loads and returns the asset info for the given name. // It returns an error if the asset could not be found or // could not be loaded. func AssetInfo(name string) (os.FileInfo, error) { cannonicalName := strings.Replace(name, "\\", "/", -1) if f, ok := _bindata[cannonicalName]; ok { a, err := f() if err != nil { return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) } return a.info, nil } return nil, fmt.Errorf("AssetInfo %s not found", name) } // AssetNames returns the names of the assets. func AssetNames() []string { names := make([]string, 0, len(_bindata)) for name := range _bindata { names = append(names, name) } return names } // _bindata is a table, holding each asset generator, mapped to its name. var _bindata = map[string]func() (*asset, error){ "templates/consul_catalog.tmpl": templatesConsul_catalogTmpl, "templates/docker.tmpl": templatesDockerTmpl, "templates/ecs.tmpl": templatesEcsTmpl, "templates/eureka.tmpl": templatesEurekaTmpl, "templates/kubernetes.tmpl": templatesKubernetesTmpl, "templates/kv.tmpl": templatesKvTmpl, "templates/marathon.tmpl": templatesMarathonTmpl, "templates/mesos.tmpl": templatesMesosTmpl, "templates/notFound.tmpl": templatesNotfoundTmpl, "templates/rancher.tmpl": templatesRancherTmpl, } // AssetDir returns the file names below a certain // directory embedded in the file by go-bindata. // For example if you run go-bindata on data/... and data contains the // following hierarchy: // data/ // foo.txt // img/ // a.png // b.png // then AssetDir("data") would return []string{"foo.txt", "img"} // AssetDir("data/img") would return []string{"a.png", "b.png"} // AssetDir("foo.txt") and AssetDir("notexist") would return an error // AssetDir("") will return []string{"data"}. func AssetDir(name string) ([]string, error) { node := _bintree if len(name) != 0 { cannonicalName := strings.Replace(name, "\\", "/", -1) pathList := strings.Split(cannonicalName, "/") for _, p := range pathList { node = node.Children[p] if node == nil { return nil, fmt.Errorf("Asset %s not found", name) } } } if node.Func != nil { return nil, fmt.Errorf("Asset %s not found", name) } rv := make([]string, 0, len(node.Children)) for childName := range node.Children { rv = append(rv, childName) } return rv, nil } type bintree struct { Func func() (*asset, error) Children map[string]*bintree } var _bintree = &bintree{nil, map[string]*bintree{ "templates": {nil, map[string]*bintree{ "consul_catalog.tmpl": {templatesConsul_catalogTmpl, map[string]*bintree{}}, "docker.tmpl": {templatesDockerTmpl, map[string]*bintree{}}, "ecs.tmpl": {templatesEcsTmpl, map[string]*bintree{}}, "eureka.tmpl": {templatesEurekaTmpl, map[string]*bintree{}}, "kubernetes.tmpl": {templatesKubernetesTmpl, map[string]*bintree{}}, "kv.tmpl": {templatesKvTmpl, map[string]*bintree{}}, "marathon.tmpl": {templatesMarathonTmpl, map[string]*bintree{}}, "mesos.tmpl": {templatesMesosTmpl, map[string]*bintree{}}, "notFound.tmpl": {templatesNotfoundTmpl, map[string]*bintree{}}, "rancher.tmpl": {templatesRancherTmpl, map[string]*bintree{}}, }}, }} // RestoreAsset restores an asset under the given directory func RestoreAsset(dir, name string) error { data, err := Asset(name) if err != nil { return err } info, err := AssetInfo(name) if err != nil { return err } err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) if err != nil { return err } err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) if err != nil { return err } err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) if err != nil { return err } return nil } // RestoreAssets restores an asset under the given directory recursively func RestoreAssets(dir, name string) error { children, err := AssetDir(name) // File if err != nil { return RestoreAsset(dir, name) } // Dir for _, child := range children { err = RestoreAssets(dir, filepath.Join(name, child)) if err != nil { return err } } return nil } func _filePath(dir, name string) string { cannonicalName := strings.Replace(name, "\\", "/", -1) return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) }