Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ControllerConfig ¶
type ControllerConfig struct {
Userlists map[string]Userlist
Servers []*ingress.Server
Backends []*ingress.Backend
DefaultServer *HAProxyServer
HAServers []*HAProxyServer
TCPEndpoints []ingress.L4Service
UDPEndpoints []ingress.L4Service
PassthroughBackends []*ingress.SSLPassthroughBackend
HAPassthrough []*HAProxyPassthrough
Cfg *HAProxyConfig
BackendSlots map[string]*HAProxyBackendSlots
}
ControllerConfig has ingress generated and some transformations compatible with HAProxy
func (*ControllerConfig) Equal ¶
func (c1 *ControllerConfig) Equal(c2 *ControllerConfig) bool
Equal return the equality between two ControllerConfig
type HAProxyBackendSlot ¶
HAProxyBackendSlot combines BackendServerName with an ingress.Endpoint
type HAProxyBackendSlots ¶
type HAProxyBackendSlots struct {
// map from ip:port to server name
FullSlots map[string]HAProxyBackendSlot
// list of unused server names
EmptySlots []string
}
HAProxyBackendSlots contains used and empty backend server definitions
type HAProxyConfig ¶
type HAProxyConfig struct {
defaults.Backend `json:",squash"`
SSLCiphers string `json:"ssl-ciphers"`
SSLOptions string `json:"ssl-options"`
SSLDHParam `json:",squash"`
LoadServerState bool `json:"load-server-state"`
TimeoutHTTPRequest string `json:"timeout-http-request"`
TimeoutConnect string `json:"timeout-connect"`
TimeoutClient string `json:"timeout-client"`
TimeoutClientFin string `json:"timeout-client-fin"`
TimeoutServer string `json:"timeout-server"`
TimeoutQueue string `json:"timeout-queue"`
TimeoutServerFin string `json:"timeout-server-fin"`
TimeoutStop string `json:"timeout-stop"`
TimeoutTunnel string `json:"timeout-tunnel"`
TimeoutKeepAlive string `json:"timeout-keep-alive"`
BindIPAddrTCP string `json:"bind-ip-addr-tcp"`
BindIPAddrHTTP string `json:"bind-ip-addr-http"`
BindIPAddrStats string `json:"bind-ip-addr-stats"`
BindIPAddrHealthz string `json:"bind-ip-addr-healthz"`
Syslog string `json:"syslog-endpoint"`
BackendCheckInterval string `json:"backend-check-interval"`
Forwardfor string `json:"forwardfor"`
MaxConn int `json:"max-connections"`
NoTLSRedirect string `json:"no-tls-redirect-locations"`
SSLHeadersPrefix string `json:"ssl-headers-prefix"`
HealthzPort int `json:"healthz-port"`
HTTPStoHTTPPort int `json:"https-to-http-port"`
StatsPort int `json:"stats-port"`
StatsAuth string `json:"stats-auth"`
CookieKey string `json:"cookie-key"`
DynamicScaling bool `json:"dynamic-scaling"`
StatsSocket string
UseProxyProtocol bool `json:"use-proxy-protocol"`
StatsProxyProtocol bool `json:"stats-proxy-protocol"`
UseHostOnHTTPS bool `json:"use-host-on-https"`
HTTPLogFormat string `json:"http-log-format"`
HTTPSLogFormat string `json:"https-log-format"`
TCPLogFormat string `json:"tcp-log-format"`
DrainSupport bool `json:"drain-support"`
}
HAProxyConfig has HAProxy specific configurations from ConfigMap
type HAProxyLocation ¶
type HAProxyLocation struct {
IsRootLocation bool `json:"isDefaultLocation"`
Path string `json:"path"`
Backend string `json:"backend"`
CORS cors.CorsConfig `json:"cors"`
HSTS hsts.Config `json:"hsts"`
Rewrite rewrite.Redirect `json:"rewrite,omitempty"`
Redirect redirect.Redirect `json:"redirect,omitempty"`
Userlist Userlist `json:"userlist,omitempty"`
Proxy proxy.Configuration `json:"proxy,omitempty"`
RateLimit ratelimit.RateLimit `json:"rateLimit,omitempty"`
SSLRedirect bool `json:"sslRedirect,omitempty"`
HAMatchPath string `json:"haMatchPath"`
HAMatchTxnPath string `json:"haMatchTxnPath"`
HAWhitelist string `json:"whitelist,omitempty"`
HARateLimitWhiteList string `json:"rateLimitWhiteList,omitempty"`
}
HAProxyLocation has location data as a HAProxy friendly syntax
type HAProxyPassthrough ¶
type HAProxyPassthrough struct {
Hostname string `json:"hostname"`
Backend string `json:"backend"`
HostnameIsWildcard bool `json:"hostnameIsWildcard"`
}
HAProxyPassthrough has SSL passthrough configurations
type HAProxyServer ¶
type HAProxyServer struct {
IsDefaultServer bool `json:"isDefaultServer"`
IsCACert bool `json:"isCACert"`
UseHTTP bool `json:"useHTTP"`
UseHTTPS bool `json:"useHTTPS"`
Hostname string `json:"hostname"`
HostnameIsWildcard bool `json:"hostnameIsWildcard"`
HostnameLabel string `json:"hostnameLabel"`
HostnameSocket string `json:"hostnameSocket"`
ACLLabel string `json:"aclLabel"`
SSLCertificate string `json:"sslCertificate"`
SSLPemChecksum string `json:"sslPemChecksum"`
RootLocation *HAProxyLocation `json:"defaultLocation"`
Locations []*HAProxyLocation `json:"locations,omitempty"`
SSLRedirect bool `json:"sslRedirect"`
HSTS *hsts.Config `json:"hsts"`
CORS *cors.CorsConfig `json:"cors"`
HasRateLimit bool `json:"hasRateLimit"`
CertificateAuth authtls.AuthSSLConfig `json:"certificateAuth,omitempty"`
Alias string `json:"alias,omitempty"`
AliasIsRegex bool `json:"aliasIsRegex"`
}
HAProxyServer and HAProxyLocation build some missing pieces from ingress.Server used by HAProxy
Click to show internal directories.
Click to hide internal directories.