types

package
v0.6.2 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2019 License: Apache-2.0 Imports: 11 Imported by: 7

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthUser

type AuthUser struct {
	Username  string
	Password  string
	Encrypted bool
}

AuthUser authorization info for basic authentication

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

type HAProxyBackendSlot struct {
	BackendServerName string
	BackendEndpoint   *ingress.Endpoint
}

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

type SSLDHParam

type SSLDHParam struct {
	DefaultMaxSize int    `json:"ssl-dh-default-max-size"`
	SecretName     string `json:"ssl-dh-param"`
	Filename       string
	PemSHA         string
}

SSLDHParam Diffie-Hellman related options

type Userlist

type Userlist struct {
	ListName string
	Realm    string
	Users    []AuthUser
}

Userlist list of users for basic authentication

Jump to

Keyboard shortcuts

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