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.