Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ControllerConfig ¶
type ControllerConfig struct { ConfigDefaults []string ConfigGlobal []string ConfigFrontend []string 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 StatsSSLCert *ingress.SSLCert Cfg *HAProxyConfig BackendSlots map[string]*HAProxyBackendSlots DNSResolvers map[string]dnsresolvers.DNSResolver Procs *HAProxyProcs }
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 ¶
type HAProxyBackendSlot struct { BackendServerName string BackendEndpoint *ingress.Endpoint Target string }
HAProxyBackendSlot combines BackendServerName with an ingress.Endpoint
type HAProxyBackendSlots ¶
type HAProxyBackendSlots struct { // map from ip:port to server name Slots []HAProxyBackendSlot // resolver name used for this Backend definition UseResolver string // total slots for backend, even if Slots[] is empty, eg using resolver TotalSlots int }
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"` TLSALPN string `json:"tls-alpn"` NbprocBalance int `json:"nbproc-balance"` NbprocSSL int `json:"nbproc-ssl"` Nbthread int `json:"nbthread"` 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"` SyslogFormat string `json:"syslog-format"` SyslogTag string `json:"syslog-tag"` ModSecurity string `json:"modsecurity-endpoints"` ModSecTimeoutHello string `json:"modsecurity-timeout-hello"` ModSecTimeoutIdle string `json:"modsecurity-timeout-idle"` ModSecTimeoutProc string `json:"modsecurity-timeout-processing"` BackendCheckInterval string `json:"backend-check-interval"` ConfigDefaults string `json:"config-defaults"` ConfigGlobal string `json:"config-global"` ConfigFrontend string `json:"config-frontend"` 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"` StatsSSLCert string `json:"stats-ssl-cert"` CookieKey string `json:"cookie-key"` StrictHost bool `json:"strict-host"` DynamicScaling bool `json:"dynamic-scaling"` SSLEngine string `json:"ssl-engine"` SSLModeAsync bool `json:"ssl-mode-async"` StatsSocket string UseProxyProtocol bool `json:"use-proxy-protocol"` StatsProxyProtocol bool `json:"stats-proxy-protocol"` UseHostOnHTTPS bool `json:"use-host-on-https"` HTTPPort int `json:"http-port"` HTTPLogFormat string `json:"http-log-format"` HTTPSPort int `json:"https-port"` HTTPSLogFormat string `json:"https-log-format"` TCPLogFormat string `json:"tcp-log-format"` DrainSupport bool `json:"drain-support"` DrainSupportRedispatch bool `json:"drain-support-redispatch"` DNSResolvers string `json:"dns-resolvers"` DNSTimeoutRetry string `json:"dns-timeout-retry"` DNSHoldObsolete string `json:"dns-hold-obsolete"` DNSHoldValid string `json:"dns-hold-valid"` DNSAcceptedPayloadSize int `json:"dns-accepted-payload-size"` DNSClusterDomain string `json:"dns-cluster-domain"` }
HAProxyConfig has HAProxy specific configurations from ConfigMap
type HAProxyLocation ¶
type HAProxyLocation struct { IsRootLocation bool `json:"isRootLocation"` IsDefBackend bool `json:"isDefBackend"` Path string `json:"path"` Backend string `json:"backend"` OAuth oauth.Config `json:"oauth"` CORS cors.CorsConfig `json:"cors"` HSTS hsts.Config `json:"hsts"` WAF waf.Config `json:"waf"` 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"` ACLLabel string `json:"aclLabel"` Backend string `json:"backend"` HTTPPassBackend string `json:"httpPassBackend"` HostnameIsWildcard bool `json:"hostnameIsWildcard"` AliasHost bool `json:"aliasHost"` AliasHostIsRegex bool `json:"aliasHostIsRegex"` AliasRegex bool `json:"aliasRegex"` }
HAProxyPassthrough has SSL passthrough configurations
type HAProxyProcs ¶ added in v0.7.1
type HAProxyProcs struct { Nbproc int NbprocBalance int NbprocSSL int Nbthread int BindprocBalance string BindprocSSL string CPUMap string }
HAProxyProcs process and thread related configuration
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"` WAF *waf.Config `json:"waf"` HasRateLimit bool `json:"hasRateLimit"` OAuth *oauth.Config `json:"oauth,omitempty"` CertificateAuth authtls.AuthSSLConfig `json:"certificateAuth,omitempty"` AliasHost string `json:"aliasHost,omitempty"` AliasHostIsRegex bool `json:"aliasHostIsRegex"` AliasRegex string `json:"aliasRegex"` }
HAProxyServer and HAProxyLocation build some missing pieces from ingress.Server used by HAProxy
type Logger ¶ added in v0.8.1
type Logger interface { InfoV(v int, msg string, args ...interface{}) Info(msg string, args ...interface{}) Warn(msg string, args ...interface{}) Error(msg string, args ...interface{}) Fatal(msg string, args ...interface{}) }
Logger ...