configuration

package
v1.7.26 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2020 License: MIT Imports: 37 Imported by: 42

Documentation

Index

Constants

View Source
const (
	// DefaultInternalEntryPointName the name of the default internal entry point
	DefaultInternalEntryPointName = "traefik"

	// DefaultHealthCheckInterval is the default health check interval.
	DefaultHealthCheckInterval = 30 * time.Second

	// DefaultDialTimeout when connecting to a backend server.
	DefaultDialTimeout = 30 * time.Second

	// DefaultIdleTimeout before closing an idle connection.
	DefaultIdleTimeout = 180 * time.Second

	// DefaultGraceTimeout controls how long Traefik serves pending requests
	// prior to shutting down.
	DefaultGraceTimeout = 10 * time.Second

	// DefaultAcmeCAServer is the default ACME API endpoint
	DefaultAcmeCAServer = "https://acme-v02.api.letsencrypt.org/directory"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type DefaultEntryPoints

type DefaultEntryPoints []string

DefaultEntryPoints holds default entry points

func (*DefaultEntryPoints) Get

func (dep *DefaultEntryPoints) Get() interface{}

Get return the EntryPoints map

func (*DefaultEntryPoints) Set

func (dep *DefaultEntryPoints) Set(value string) error

Set is the method to set the flag value, part of the flag.Value interface. Set's argument is a string to be parsed to set the flag. It's a comma-separated list, so we split it.

func (*DefaultEntryPoints) SetValue

func (dep *DefaultEntryPoints) SetValue(val interface{})

SetValue sets the EntryPoints map with val

func (*DefaultEntryPoints) String

func (dep *DefaultEntryPoints) String() string

String is the method to format the flag's value, part of the flag.Value interface. The String method's output will be used in diagnostics.

func (*DefaultEntryPoints) Type

func (dep *DefaultEntryPoints) Type() string

Type is type of the struct

type EntryPoint

type EntryPoint struct {
	Address              string
	TLS                  *tls.TLS          `export:"true"`
	Redirect             *types.Redirect   `export:"true"`
	Auth                 *types.Auth       `export:"true"`
	WhitelistSourceRange []string          // Deprecated
	WhiteList            *types.WhiteList  `export:"true"`
	Compress             bool              `export:"true"`
	ProxyProtocol        *ProxyProtocol    `export:"true"`
	ForwardedHeaders     *ForwardedHeaders `export:"true"`
}

EntryPoint holds an entry point configuration of the reverse proxy (ip, port, TLS...)

type EntryPoints

type EntryPoints map[string]*EntryPoint

EntryPoints holds entry points configuration of the reverse proxy (ip, port, TLS...)

func (*EntryPoints) Get

func (ep *EntryPoints) Get() interface{}

Get return the EntryPoints map

func (*EntryPoints) Set

func (ep *EntryPoints) Set(value string) error

Set is the method to set the flag value, part of the flag.Value interface. Set's argument is a string to be parsed to set the flag. It's a comma-separated list, so we split it.

func (*EntryPoints) SetValue

func (ep *EntryPoints) SetValue(val interface{})

SetValue sets the EntryPoints map with val

func (EntryPoints) String

func (ep EntryPoints) String() string

String is the method to format the flag's value, part of the flag.Value interface. The String method's output will be used in diagnostics.

func (*EntryPoints) Type

func (ep *EntryPoints) Type() string

Type is type of the struct

type ForwardedHeaders

type ForwardedHeaders struct {
	Insecure   bool `export:"true"`
	TrustedIPs []string
}

ForwardedHeaders Trust client forwarding headers

type ForwardingTimeouts

type ForwardingTimeouts struct {
	DialTimeout           flaeg.Duration `` /* 164-byte string literal not displayed */
	ResponseHeaderTimeout flaeg.Duration `` /* 175-byte string literal not displayed */
}

ForwardingTimeouts contains timeout configurations for forwarding requests to the backend servers.

type GlobalConfiguration

type GlobalConfiguration struct {
	LifeCycle                 *LifeCycle        `description:"Timeouts influencing the server life cycle" export:"true"`
	GraceTimeOut              flaeg.Duration    `short:"g" description:"(Deprecated) Duration to give active requests a chance to finish before Traefik stops" export:"true"` // Deprecated
	Debug                     bool              `short:"d" description:"Enable debug mode" export:"true"`
	CheckNewVersion           bool              `description:"Periodically check if a new version has been released" export:"true"`
	SendAnonymousUsage        bool              `description:"send periodically anonymous usage statistics" export:"true"`
	AccessLogsFile            string            `description:"(Deprecated) Access logs file" export:"true"` // Deprecated
	AccessLog                 *types.AccessLog  `description:"Access log settings" export:"true"`
	TraefikLogsFile           string            `description:"(Deprecated) Traefik logs file. Stdout is used when omitted or empty" export:"true"` // Deprecated
	TraefikLog                *types.TraefikLog `description:"Traefik log settings" export:"true"`
	Tracing                   *tracing.Tracing  `description:"OpenTracing configuration" export:"true"`
	LogLevel                  string            `short:"l" description:"Log level" export:"true"`
	EntryPoints               EntryPoints       `` /* 245-byte string literal not displayed */
	Cluster                   *types.Cluster
	Constraints               types.Constraints  `description:"Filter services by constraint, matching with service tags" export:"true"`
	ACME                      *acme.ACME         `description:"Enable ACME (Let's Encrypt): automatic SSL" export:"true"`
	DefaultEntryPoints        DefaultEntryPoints `description:"Entrypoints to be used by frontends that do not specify any entrypoint" export:"true"`
	ProvidersThrottleDuration flaeg.Duration     `` /* 227-byte string literal not displayed */
	MaxIdleConnsPerHost       int                `` /* 142-byte string literal not displayed */
	IdleTimeout               flaeg.Duration     `` // Deprecated
	/* 135-byte string literal not displayed */
	InsecureSkipVerify bool                    `description:"Disable SSL certificate verification" export:"true"`
	RootCAs            tls.FilesOrContents     `description:"Add cert file for self-signed certificate"`
	Retry              *Retry                  `description:"Enable retry sending request if network error" export:"true"`
	HealthCheck        *HealthCheckConfig      `description:"Health check parameters" export:"true"`
	RespondingTimeouts *RespondingTimeouts     `description:"Timeouts for incoming requests to the Traefik instance" export:"true"`
	ForwardingTimeouts *ForwardingTimeouts     `description:"Timeouts for requests forwarded to the backend servers" export:"true"`
	AllowMinWeightZero bool                    `description:"Allow weight to take 0 as minimum real value." export:"true"`         // Deprecated
	KeepTrailingSlash  bool                    `description:"Do not remove trailing slash." export:"true"`                         // Deprecated
	Web                *WebCompatibility       `description:"(Deprecated) Enable Web backend with default settings" export:"true"` // Deprecated
	Docker             *docker.Provider        `description:"Enable Docker backend with default settings" export:"true"`
	File               *file.Provider          `description:"Enable File backend with default settings" export:"true"`
	Marathon           *marathon.Provider      `description:"Enable Marathon backend with default settings" export:"true"`
	Consul             *consul.Provider        `description:"Enable Consul backend with default settings" export:"true"`
	ConsulCatalog      *consulcatalog.Provider `description:"Enable Consul catalog backend with default settings" export:"true"`
	Etcd               *etcd.Provider          `description:"Enable Etcd backend with default settings" export:"true"`
	Zookeeper          *zk.Provider            `description:"Enable Zookeeper backend with default settings" export:"true"`
	Boltdb             *boltdb.Provider        `description:"Enable Boltdb backend with default settings" export:"true"`
	Kubernetes         *kubernetes.Provider    `description:"Enable Kubernetes backend with default settings" export:"true"`
	Mesos              *mesos.Provider         `description:"Enable Mesos backend with default settings" export:"true"`
	Eureka             *eureka.Provider        `description:"Enable Eureka backend with default settings" export:"true"`
	ECS                *ecs.Provider           `description:"Enable ECS backend with default settings" export:"true"`
	Rancher            *rancher.Provider       `description:"Enable Rancher backend with default settings" export:"true"`
	DynamoDB           *dynamodb.Provider      `description:"Enable DynamoDB backend with default settings" export:"true"`
	ServiceFabric      *servicefabric.Provider `description:"Enable Service Fabric backend with default settings" export:"true"`
	Rest               *rest.Provider          `description:"Enable Rest backend with default settings" export:"true"`
	API                *api.Handler            `description:"Enable api/dashboard" export:"true"`
	Metrics            *types.Metrics          `description:"Enable a metrics exporter" export:"true"`
	Ping               *ping.Handler           `description:"Enable ping" export:"true"`
	HostResolver       *HostResolverConfig     `description:"Enable CNAME Flattening" export:"true"`
}

GlobalConfiguration holds global configuration (with providers, etc.). It's populated from the traefik configuration file passed as an argument to the binary.

func (*GlobalConfiguration) InitACMEProvider added in v1.7.0

func (gc *GlobalConfiguration) InitACMEProvider() (*acmeprovider.Provider, error)

InitACMEProvider create an acme provider from the ACME part of globalConfiguration

func (*GlobalConfiguration) SetEffectiveConfiguration added in v1.4.1

func (gc *GlobalConfiguration) SetEffectiveConfiguration(configFile string)

SetEffectiveConfiguration adds missing configuration parameters derived from existing ones. It also takes care of maintaining backwards compatibility.

func (*GlobalConfiguration) ValidateConfiguration added in v1.5.1

func (gc *GlobalConfiguration) ValidateConfiguration()

ValidateConfiguration validate that configuration is coherent

type HealthCheckConfig

type HealthCheckConfig struct {
	Interval flaeg.Duration `description:"Default periodicity of enabled health checks" export:"true"`
}

HealthCheckConfig contains health check configuration parameters.

type HostResolverConfig added in v1.7.0

type HostResolverConfig struct {
	CnameFlattening bool   `description:"A flag to enable/disable CNAME flattening" export:"true"`
	ResolvConfig    string `description:"resolv.conf used for DNS resolving" export:"true"`
	ResolvDepth     int    `description:"The maximal depth of DNS recursive resolving" export:"true"`
}

HostResolverConfig contain configuration for CNAME Flattening

type LifeCycle added in v1.5.0

type LifeCycle struct {
	RequestAcceptGraceTimeout flaeg.Duration `description:"Duration to keep accepting requests before Traefik initiates the graceful shutdown procedure"`
	GraceTimeOut              flaeg.Duration `description:"Duration to give active requests a chance to finish before Traefik stops"`
}

LifeCycle contains configurations relevant to the lifecycle (such as the shutdown phase) of Traefik.

type ProviderAggregator added in v1.7.0

type ProviderAggregator struct {
	// contains filtered or unexported fields
}

ProviderAggregator aggregate providers

func NewProviderAggregator added in v1.6.0

func NewProviderAggregator(gc *GlobalConfiguration) ProviderAggregator

NewProviderAggregator return an aggregate of all the providers configured in GlobalConfiguration

func (*ProviderAggregator) AddProvider added in v1.7.0

func (p *ProviderAggregator) AddProvider(provider provider.Provider) error

AddProvider add a provider in the providers map

func (ProviderAggregator) Init added in v1.7.0

Init the provider

func (ProviderAggregator) Provide added in v1.7.0

func (p ProviderAggregator) Provide(configurationChan chan<- types.ConfigMessage, pool *safe.Pool) error

Provide call the provide method of every providers

type ProxyProtocol

type ProxyProtocol struct {
	Insecure   bool `export:"true"`
	TrustedIPs []string
}

ProxyProtocol contains Proxy-Protocol configuration

type RespondingTimeouts

type RespondingTimeouts struct {
	ReadTimeout  flaeg.Duration `` /* 142-byte string literal not displayed */
	WriteTimeout flaeg.Duration `` /* 133-byte string literal not displayed */
	IdleTimeout  flaeg.Duration `` /* 194-byte string literal not displayed */
}

RespondingTimeouts contains timeout configurations for incoming requests to the Traefik instance.

type Retry

type Retry struct {
	Attempts int `description:"Number of attempts" export:"true"`
}

Retry contains request retry config

type WebCompatibility added in v1.5.0

type WebCompatibility struct {
	Address    string            `description:"(Deprecated) Web administration port" export:"true"`
	CertFile   string            `description:"(Deprecated) SSL certificate" export:"true"`
	KeyFile    string            `description:"(Deprecated) SSL certificate" export:"true"`
	ReadOnly   bool              `description:"(Deprecated) Enable read only API" export:"true"`
	Statistics *types.Statistics `description:"(Deprecated) Enable more detailed statistics" export:"true"`
	Metrics    *types.Metrics    `description:"(Deprecated) Enable a metrics exporter" export:"true"`
	Path       string            `description:"(Deprecated) Root path for dashboard and API" export:"true"`
	Auth       *types.Auth       `export:"true"`
	Debug      bool              `export:"true"`
}

WebCompatibility is a configuration to handle compatibility with deprecated web provider options

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL