Documentation ¶
Index ¶
- type AccessLog
- type Admin
- type CDS
- type Cluster
- type ClusterManager
- type Config
- type ConfigWriter
- type Filter
- type Host
- type HttpConnectionManager
- type HttpConnectionManagerConfig
- type LDS
- type Listener
- type OutlierDetection
- type RDS
- type RateLimitService
- type Route
- type RouteConfig
- type Router
- type RouterConfig
- type Runtime
- type SDS
- type SDSHost
- type SSLContext
- type Tracing
- type VirtualHost
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cluster ¶
type Cluster struct { Name string `json:"name"` Type string `json:"type"` ConnectTimeoutMs int `json:"connect_timeout_ms"` PerConnectionBufferLimitBytes int `json:"per_connection_buffer_limit_bytes,omitempty"` LBType string `json:"lb_type"` Hosts []Host `json:"hosts,omitempty"` ServiceName string `json:"service_name,omitempty"` // *HealthCheck `json:"health_check,omitempty"` MaxRequestsPerConnection int `json:"max_requests_per_connection,omitempty"` }
type ClusterManager ¶
type ClusterManager struct { Clusters []*Cluster `json:"clusters"` *SDS `json:"sds,omitempty"` LocalClusterName string `json:"local_cluster_namei,omitempty"` *OutlierDetection `json:"outlier_detection,omitempty"` *CDS `json:"cds,omitempty"` }
type Config ¶
type Config struct { Listeners []*Listener `json:"listeners"` *LDS `json:"lds,omitempty"` *Admin `json:"admin,omitempty"` ClusterManager `json:"cluster_manager"` FlagsPath string `json:"flags_path,omitempty"` StatsdUDPIPAddress string `json:"statsd_udp_ip_address,omitempty"` StatsdTCPClusterName string `json:"statsd_tcp_cluster_name,omitempty"` StatsdFlushIntervalMs string `json:"stats_flush_interval_ms,omitempty"` WatchdogMissTimeoutMs string `json:"watchdog_miss_timeout_ms,omitempty"` WatchdogMegamissTimeoutMs string `json:"watchdog_megamiss_timeout_ms,omitempty"` WatchdogKillTimeoutMs string `json:"watchdog_kill_timeout_ms,omitempty"` WatchdogMultikillTimeoutMs string `json:"watchdog_multikill_timeout_ms,omitempty"` *Tracing `json:"tracing,omitempty"` *RateLimitService `json:"rate_limit_service,omitempty"` *Runtime `json:"runtime,omitempty"` }
Config is the top level Envoy configuration.
type ConfigWriter ¶
type ConfigWriter struct { // AdminAccessLogPath is the path to write the access log for the administration server. // Defaults to /dev/null. AdminAccessLogPath string // AdminAddress is the TCP address that the administration server will listen on. // Defaults to 127.0.0.1. AdminAddress string // AdminPort is the port that the administration server will listen on. // Defaults to 9001. AdminPort int // XDSAddress is the TCP address of the XDS management server. For JSON configurations // this is the address of the v1 REST API server. For YAML configurations this is the // address of the v2 gRPC management server. // Defaults to 127.0.0.1. XDSAddress string // XDSRESTPort is the management server port that provides the v1 REST API. // Defaults to 8000. XDSRESTPort int // XDSGRPCPort is the management server port that provides the v2 gRPC API. // Defaults to 8001. XDSGRPCPort int }
A ConfigWriter knows how to write a bootstap Envoy configuration in both JSON and YAML formats.
type HttpConnectionManager ¶
type HttpConnectionManager struct { Type string `json:"type"` // must be "read" Name string `json:"name"` // must be "http_connection_manager" Config HttpConnectionManagerConfig `json:"config"` }
type HttpConnectionManagerConfig ¶
type HttpConnectionManagerConfig struct { CodecType string `json:"codec_type"` // one of http1, http2, auto StatPrefix string `json:"stat_prefix"` *RDS `json:"rds,omitempty"` *RouteConfig `json:"route_config,omitempty"` Filters []Filter `json:"filters"` AddUserAgent bool `json:"add_user_agent,omitempty"` *Tracing `json:"tracing,omitempty"` // "http1_settings": "{...}", // "http2_settings": "{...}", ServerName string `json:"server_name,omitempty"` // defaults to "envoy" IdleTimeoutSeconds int `json:"idle_timeout_s,omitempty"` DrainTimeoutMs int `json:"drain_timeout_ms,omitempty"` AccessLog []AccessLog `json:"access_log,omitempty"` UseRemoteAddress bool `json:"use_remote_address,omitempty"` ForwardClientCert string `json:"forward_client_cert,omitempty"` // "set_current_client_cert": "...", GenerateRequestID bool `json:"generate_request_id,omitempty"` }
type Listener ¶
type Listener struct { Name string `json:"name,omitempty"` Address string `json:"address"` Filters []Filter `json:"filters"` SSLContext *SSLContext `json:"ssl_context,omitempty"` BindToPort string `json:"bind_to_port,omitempty"` // bool, defaults to "true" UseProxyProto string `json:"use_proxy_proto,omitempty"` // bool, defaults to "false" UseOriginalDest string `json:"use_original_dst,omitempty"` // bool, defaults to "false" PerConnectionBufferLimitBytes string `json:"per_connection_buffer_limit_bytes,omitempty"` // integer, defaults to 1MiB }
type OutlierDetection ¶
type OutlierDetection struct {
EventLogPath string `json:"event_log_path,omitempty"`
}
type RateLimitService ¶
type RateLimitService struct { }
type Route ¶
type Route struct { Prefix string `json:"prefix,omitempty"` Path string `json:"path,omitempty"` Regex string `json:"regex,omitempty"` Cluster string `json:"cluster,omitempty"` ClusterHeader string `json:"cluster_header,omitempty"` // "weighted_clusters" : "{...}", HostRedirect string `json:"host_redirect,omitempty"` PathRedirect string `json:"path_redirect,omitempty"` PrefixRewrite string `json:"prefix_rewrite,omitempty"` HostRewrite string `json:"host_rewrite,omitempty"` AutoHostRewrite bool `json:"auto_host_rewrite,omitempty"` // "case_sensitive": "...", UseWebsocket bool `json:"use_websocket,omitempty"` TimeoutMS int `json:"timeout_ms,omitempty"` // "runtime": "{...}", // "retry_policy": "{...}", // "shadow": "{...}", Priority string `json:"priority,omitempty"` }
type RouteConfig ¶
type RouteConfig struct { ValidateClusters bool `json:"validate_clusters,omitempty"` VirtualHosts []*VirtualHost `json:"virtual_hosts"` }
type Router ¶
type Router struct { Type string `json:"type"` // must be "decoder" Name string `json:"name"` // must be "router" Config RouterConfig `json:"config"` }
type RouterConfig ¶
type RouterConfig struct {
DynamicStats bool `json:"dynamic_stats,omitempty"`
}
type SSLContext ¶
type SSLContext struct { }
type VirtualHost ¶
type VirtualHost struct { Name string `json:"name"` Domains []string `json:"domains"` Routes []Route `json:"routes"` RequireSSL string `json:"require_ssl,omitempty"` }
func (*VirtualHost) AddDomain ¶
func (v *VirtualHost) AddDomain(d string)
func (*VirtualHost) AddRoute ¶
func (v *VirtualHost) AddRoute(r Route)
Click to show internal directories.
Click to hide internal directories.