Skip to content

Latest commit

 

History

History
1199 lines (665 loc) · 49.3 KB

File metadata and controls

1199 lines (665 loc) · 49.3 KB

API Reference

Packages

config.haproxy.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the config v1alpha1 API group

Resource Types

ACL

Appears in:

Field Description
name string Name
criterion string Criterion is the name of a sample fetch method, or one of its ACL specific declinations.
values string array Values are of the type supported by the criterion.

Backend

Backend is the Schema for the backend API

Field Description
apiVersion string config.haproxy.com/v1alpha1
kind string Backend
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec BackendSpec

BackendReference

Appears in:

Field Description
name string Name of a specific backend
regexMapping RegexBackendMapping Mapping of multiple backends

BackendSpec

BackendSpec defines the desired state of Backend

Appears in:

Field Description
mode string Mode can be either 'tcp' or 'http'. In TCP mode it is a layer 4 proxy. In HTTP mode it is a layer 7 proxy.
httpRequest HTTPRequestRules HTTPRequest rules define a set of rules which apply to layer 7 processing.
tcpRequest TCPRequestRule array TCPRequest rules perform an action on an incoming connection depending on a layer 4 condition.
acl ACL array ACL (Access Control Lists) provides a flexible solution to perform content switching and generally to take decisions based on content extracted from the request, the response or any environmental status
timeouts object (keys:string, values:Duration) Timeouts: check, connect, http-keep-alive, http-request, queue, server, tunnel. The timeout value specified in milliseconds by default, but can be in any other unit if the number is suffixed by the unit. More info: https://cbonte.github.io/haproxy-dconv/2.6/configuration.html
errorFiles ErrorFile array ErrorFiles custom error files to be used
forwardFor Forwardfor Forwardfor enable insertion of the X-Forwarded-For header to requests sent to servers
httpPretendKeepalive boolean HTTPPretendKeepalive will keep the connection alive. It is recommended not to enable this option by default.
checkTimeout Duration CheckTimeout sets an additional check timeout, but only after a connection has been already established.
servers Server array Servers defines the backend servers and its configuration.
serverTemplates ServerTemplate array ServerTemplates defines the backend server templates and its configuration.
balance Balance Balance defines the load balancing algorithm to be used in a backend.
hostRegex string HostRegex specifies a regular expression used for backend switching rules.
hostCertificate CertificateListElement HostCertificate specifies a certificate for that host used in the crt-list of a frontend
redispatch boolean Redispatch enable or disable session redistribution in case of connection failure
hashType HashType HashType specifies a method to use for mapping hashes to servers
cookie Cookie Cookie enables cookie-based persistence in a backend.

BackendSwitchingRule

Appears in:

Field Description
backend BackendReference Backend reference used to resolve the backend name.

Balance

Appears in:

Field Description
algorithm string Algorithm is the algorithm used to select a server when doing load balancing. This only applies when no persistence information is available, or when a connection is redispatched to another server.

BaseSpec

Appears in:

Field Description
mode string Mode can be either 'tcp' or 'http'. In TCP mode it is a layer 4 proxy. In HTTP mode it is a layer 7 proxy.
httpRequest HTTPRequestRules HTTPRequest rules define a set of rules which apply to layer 7 processing.
tcpRequest TCPRequestRule array TCPRequest rules perform an action on an incoming connection depending on a layer 4 condition.
acl ACL array ACL (Access Control Lists) provides a flexible solution to perform content switching and generally to take decisions based on content extracted from the request, the response or any environmental status
timeouts object (keys:string, values:Duration) Timeouts: check, connect, http-keep-alive, http-request, queue, server, tunnel. The timeout value specified in milliseconds by default, but can be in any other unit if the number is suffixed by the unit. More info: https://cbonte.github.io/haproxy-dconv/2.6/configuration.html
errorFiles ErrorFile array ErrorFiles custom error files to be used
forwardFor Forwardfor Forwardfor enable insertion of the X-Forwarded-For header to requests sent to servers
httpPretendKeepalive boolean HTTPPretendKeepalive will keep the connection alive. It is recommended not to enable this option by default.

Bind

Appears in:

Field Description
name string Name for these sockets, which will be reported on the stats page.
address string Address can be a host name, an IPv4 address, an IPv6 address, or '*' (is equal to the special address "0.0.0.0").
port integer Port
portRangeEnd int64 PortRangeEnd if set it must be greater than Port
transparent boolean Transparent is an optional keyword which is supported only on certain Linux kernels. It indicates that the addresses will be bound even if they do not belong to the local machine, and that packets targeting any of these addresses will be intercepted just as if the addresses were locally configured. This normally requires that IP forwarding is enabled. Caution! do not use this with the default address '*', as it would redirect any traffic for the specified port.
ssl SSL SSL configures OpenSSL
sslCertificateList CertificateList This setting is only available when support for OpenSSL was built in. It designates a list of PEM file with an optional ssl configuration and a SNI filter per certificate.
hidden boolean Hidden hides the bind and prevent exposing the Bind in services or routes
acceptProxy boolean AcceptProxy enforces the use of the PROXY protocol over any connection accepted by any of the sockets declared on the same line.

CertificateListElement

Appears in:

Field Description
certificate SSLCertificate Certificate that will be presented to clients who provide a valid TLSServerNameIndication field matching the SNIFilter.
sniFilter string SNIFilter specifies the filter for the SSL Certificate. Wildcards are supported in the SNIFilter. Negative filter are also supported.
alpn string array Alpn enables the TLS ALPN extension and advertises the specified protocol list as supported on top of ALPN.

Check

Appears in:

Field Description
enabled boolean Enable enables health checks on a server. If not set, no health checking is performed, and the server is always considered available.
inter Duration Inter sets the interval between two consecutive health checks. If left unspecified, the delay defaults to 2000 ms.
rise int64 Rise specifies the number of consecutive successful health checks after a server will be considered as operational. This value defaults to 2 if unspecified.
fall int64 Fall specifies the number of consecutive unsuccessful health checks after a server will be considered as dead. This value defaults to 3 if unspecified.

Cookie

Appears in:

Field Description
name string Name of the cookie which will be monitored, modified or inserted in order to bring persistence.
mode CookieMode Mode could be 'rewrite', 'insert', 'prefix'. Select one.
indirect boolean Indirect no cookie will be emitted to a client which already has a valid one for the server which has processed the request.
noCache boolean NoCache recommended in conjunction with the insert mode when there is a cache between the client and HAProx
postOnly boolean PostOnly ensures that cookie insertion will only be performed on responses to POST requests.
preserve boolean Preserve only be used with "insert" and/or "indirect". It allows the server to emit the persistence cookie itself.
httpOnly boolean HTTPOnly add an "HttpOnly" cookie attribute when a cookie is inserted. It doesn't share the cookie with non-HTTP components.
secure boolean Secure add a "Secure" cookie attribute when a cookie is inserted. The user agent never emits this cookie over non-secure channels. The cookie will be presented only over SSL/TLS connections.
dynamic boolean Dynamic activates dynamic cookies, when used, a session cookie is dynamically created for each server, based on the IP and port of the server, and a secret key.
domain string array Domain specify the domain at which a cookie is inserted. You can specify several domain names by invoking this option multiple times.
maxIdle integer MaxIdle cookies are ignored after some idle time.
maxLife integer MaxLife cookies are ignored after some life time.
attribute string array Attribute add an extra attribute when a cookie is inserted.

CookieMode

Appears in:

Field Description
rewrite boolean Rewrite the cookie will be provided by the server.
insert boolean Insert cookie will have to be inserted by haproxy in server responses.
prefix boolean Prefix is needed in some specific environments where the client does not support more than one single cookie and the application already needs it.

Deny

Appears in:

Field Description
enabled boolean Enabled enables deny http request

ErrorFile

Appears in:

Field Description
code integer Code is the HTTP status code.
file StaticHTTPFile File designates a file containing the full HTTP response.

ErrorFileValueFrom

Underlying type: struct{ConfigMapKeyRef *k8s.io/api/core/v1.ConfigMapKeySelector "json:"configMapKeyRef,omitempty""}

Appears in:

Forwardfor

Appears in:

Field Description
enabled boolean
except string Pattern: ^[^\s]+$
header string Pattern: ^[^\s]+$
ifnone boolean

Frontend

Frontend is the Schema for the frontends API

Field Description
apiVersion string config.haproxy.com/v1alpha1
kind string Frontend
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec FrontendSpec

FrontendSpec

FrontendSpec defines the desired state of Frontend

Appears in:

Field Description
mode string Mode can be either 'tcp' or 'http'. In TCP mode it is a layer 4 proxy. In HTTP mode it is a layer 7 proxy.
httpRequest HTTPRequestRules HTTPRequest rules define a set of rules which apply to layer 7 processing.
tcpRequest TCPRequestRule array TCPRequest rules perform an action on an incoming connection depending on a layer 4 condition.
acl ACL array ACL (Access Control Lists) provides a flexible solution to perform content switching and generally to take decisions based on content extracted from the request, the response or any environmental status
timeouts object (keys:string, values:Duration) Timeouts: check, connect, http-keep-alive, http-request, queue, server, tunnel. The timeout value specified in milliseconds by default, but can be in any other unit if the number is suffixed by the unit. More info: https://cbonte.github.io/haproxy-dconv/2.6/configuration.html
errorFiles ErrorFile array ErrorFiles custom error files to be used
forwardFor Forwardfor Forwardfor enable insertion of the X-Forwarded-For header to requests sent to servers
httpPretendKeepalive boolean HTTPPretendKeepalive will keep the connection alive. It is recommended not to enable this option by default.
binds Bind array Binds defines the frontend listening addresses, ports and its configuration.
backendSwitching BackendSwitchingRule array BackendSwitching rules specify the specific backend used if/unless an ACL-based condition is matched.
defaultBackend LocalObjectReference DefaultBackend to use when no 'use_backend' rule has been matched.

HTTPHeaderRule

Appears in:

Field Description
name string Name specifies the header name
value HTTPHeaderValue Value specifies the header value

HTTPHeaderValue

Underlying type: struct{Env *k8s.io/api/core/v1.EnvVar "json:"env,omitempty""; Str *string "json:"str,omitempty""; Format *string "json:"format,omitempty""}

Appears in:

HTTPPathRule

Appears in:

Field Description
format string Value specifies the path value

HTTPRequestRules

Appears in:

Field Description
setHeader HTTPHeaderRule array SetHeader sets HTTP header fields
setPath HTTPPathRule array SetPath sets request path
addHeader HTTPHeaderRule array AddHeader appends HTTP header fields
redirect Redirect array Redirect performs an HTTP redirection based on a redirect rule.
replacePath ReplacePath array ReplacePath matches the value of the path using a regex and completely replaces it with the specified format. The replacement does not modify the scheme, the authority and the query-string.
deny Deny Deny stops the evaluation of the rules and immediately rejects the request and emits an HTTP 403 error. Optionally the status code specified as an argument to deny_status.
denyStatus int64 DenyStatus is the HTTP status code.
return HTTPReturn Return stops the evaluation of the rules and immediately returns a response.

HTTPReturn

Appears in:

Field Description
content HTTPReturnContent Content is a full HTTP response specifying the errorfile to use, or the response payload specifying the file or the string to use.

HTTPReturnContent

Underlying type: struct{Type string "json:"type""; Format string "json:"format""; Value string "json:"value""}

Appears in:

HashType

Appears in:

Field Description
method string
function string
modifier string

Hold

Appears in:

Field Description
nx Duration Nx defines interval between two successive name resolution when the last answer was nx.
obsolete Duration Obsolete defines interval between two successive name resolution when the last answer was obsolete.
other Duration Other defines interval between two successive name resolution when the last answer was other.
refused Duration Refused defines interval between two successive name resolution when the last answer was nx.
timeout Duration Timeout defines interval between two successive name resolution when the last answer was timeout.
valid Duration Valid defines interval between two successive name resolution when the last answer was valid.

Listen

Listen is the Schema for the frontends API

Field Description
apiVersion string config.haproxy.com/v1alpha1
kind string Listen
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ListenSpec

ListenSpec

ListenSpec defines the desired state of Listen

Appears in:

Field Description
mode string Mode can be either 'tcp' or 'http'. In TCP mode it is a layer 4 proxy. In HTTP mode it is a layer 7 proxy.
httpRequest HTTPRequestRules HTTPRequest rules define a set of rules which apply to layer 7 processing.
tcpRequest TCPRequestRule array TCPRequest rules perform an action on an incoming connection depending on a layer 4 condition.
acl ACL array ACL (Access Control Lists) provides a flexible solution to perform content switching and generally to take decisions based on content extracted from the request, the response or any environmental status
timeouts object (keys:string, values:Duration) Timeouts: check, connect, http-keep-alive, http-request, queue, server, tunnel. The timeout value specified in milliseconds by default, but can be in any other unit if the number is suffixed by the unit. More info: https://cbonte.github.io/haproxy-dconv/2.6/configuration.html
errorFiles ErrorFile array ErrorFiles custom error files to be used
forwardFor Forwardfor Forwardfor enable insertion of the X-Forwarded-For header to requests sent to servers
httpPretendKeepalive boolean HTTPPretendKeepalive will keep the connection alive. It is recommended not to enable this option by default.
binds Bind array Binds defines the frontend listening addresses, ports and its configuration.
servers Server array Servers defines the backend servers and its configuration.
serverTemplates ServerTemplate array ServerTemplates defines the backend server templates and its configuration.
checkTimeout Duration CheckTimeout sets an additional check timeout, but only after a connection has been already established.
balance Balance Balance defines the load balancing algorithm to be used in a backend.
redispatch boolean Redispatch enable or disable session redistribution in case of connection failure
hashType HashType HashType Specify a method to use for mapping hashes to servers
cookie Cookie Cookie enables cookie-based persistence in a backend.
hostCertificate CertificateListElement HostCertificate specifies a certificate for that host used in the crt-list of a frontend

Nameserver

Appears in:

Field Description
name string Name specifies a unique name of the nameserver.
address string Address
port integer Port

ProxyProtocol

Appears in:

Field Description
v1 boolean V1 parameter enforces use of the PROXY protocol version 1.
v2 ProxyProtocolV2 V2 parameter enforces use of the PROXY protocol version 2.
v2SSL boolean V2SSL parameter add the SSL information extension of the PROXY protocol to the PROXY protocol header.
v2SSLCN boolean V2SSLCN parameter add the SSL information extension of the PROXY protocol to the PROXY protocol header and he SSL information extension along with the Common Name from the subject of the client certificate (if any), is added to the PROXY protocol header.

ProxyProtocolV2Options

Appears in:

Field Description
ssl boolean Ssl is equivalent to use V2SSL.
certCn boolean CertCn is equivalent to use V2SSLCN.
sslCipher boolean SslCipher is the name of the used cipher.
certSig boolean CertSig is the signature algorithm of the used certificate.
certKey boolean CertKey is the key algorithm of the used certificate.
authority boolean Authority is the host name value passed by the client (only SNI from a TLS)
crc32C boolean Crc32c is the checksum of the PROXYv2 header.
uniqueID boolean UniqueId sends a unique ID generated using the frontend's "unique-id-format" within the PROXYv2 header. This unique-id is primarily meant for "mode tcp". It can lead to unexpected results in "mode http".

Redirect

Appears in:

Field Description
code int64 Code indicates which type of HTTP redirection is desired.
type RedirectType Type selects a mode and value to redirect
value string Value to redirect
option RedirectOption Value to redirect

RedirectCookie

Appears in:

Field Description
name string Name
value string Value

RedirectType

Underlying type: struct{Location bool "json:"location""; Prefix bool "json:"insert""; Scheme bool "json:"prefix""}

Appears in:

RegexBackendMapping

Appears in:

Field Description
name string Name to identify the mapping
parameter string Parameter which will be used for the mapping (default: base)
selector LabelSelector LabelSelector to select multiple backends

ReplacePath

Appears in:

Field Description
matchRegex string MatchRegex is a string pattern used to identify the paths that need to be replaced.
replaceFmt string ReplaceFmt defines the format string used to replace the values that match the pattern.

Resolver

Resolver is the Schema for the Resolver API

Field Description
apiVersion string config.haproxy.com/v1alpha1
kind string Resolver
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ResolverSpec

ResolverSpec

ResolverSpec defines the desired state of Resolver

Appears in:

Field Description
nameservers Nameserver array Nameservers used to configure a nameservers.
acceptedPayloadSize int64 AcceptedPayloadSize defines the maximum payload size accepted by HAProxy and announced to all the name servers configured in this resolver.
parseResolvConf boolean ParseResolvConf if true, adds all nameservers found in /etc/resolv.conf to this resolvers nameservers list.
resolveRetries int64 ResolveRetries defines the number of queries to send to resolve a server name before giving up. Default value: 3
hold Hold Hold defines the period during which the last name resolution should be kept based on the last resolution status.
timeouts Timeouts Timeouts defines timeouts related to name resolution.

Rule

Underlying type: struct{ConditionType string "json:"conditionType,omitempty""; Condition string "json:"condition,omitempty""}

Appears in:

SSL

Appears in:

Field Description
enabled boolean Enabled enables SSL deciphering on connections instantiated from this listener. A certificate is necessary. All contents in the buffers will appear in clear text, so that ACLs and HTTP processing will only have access to deciphered contents. SSLv3 is disabled per default, set MinVersion to SSLv3 to enable it.
minVersion string MinVersion enforces use of the specified version or upper on SSL connections instantiated from this listener.
verify string Verify is only available when support for OpenSSL was built in. If set to 'none', client certificate is not requested. This is the default. In other cases, a client certificate is requested. If the client does not provide a certificate after the request and if 'Verify' is set to 'required', then the handshake is aborted, while it would have succeeded if set to 'optional'. The verification of the certificate provided by the client using CAs from CACertificate. On verify failure the handshake abortes, regardless of the 'verify' option.
caCertificate SSLCertificate CACertificate configures the CACertificate used for the Server or Bind client certificate
certificate SSLCertificate Certificate configures a PEM based Certificate file containing both the required certificates and any associated private keys.
sni string SNI parameter evaluates the sample fetch expression, converts it to a string and uses the result as the host name sent in the SNI TLS extension to the server.
alpn string array Alpn enables the TLS ALPN extension and advertises the specified protocol list as supported on top of ALPN.

SSLCertificate

Appears in:

Field Description
name string
value string
valueFrom SSLCertificateValueFrom array

SSLCertificateValueFrom

Appears in:

Field Description
configMapKeyRef ConfigMapKeySelector ConfigMapKeyRef selects a key of a ConfigMap
secretKeyRef SecretKeySelector SecretKeyRef selects a key of a secret in the pod namespace

Server

Appears in:

Field Description
ssl SSL SSL configures OpenSSL
weight int64 Weight parameter is used to adjust the server weight relative to other servers. All servers will receive a load proportional to their weight relative to the sum of all weights.
check Check Check configures the health checks of the server.
initAddr string InitAddr indicates in what order the server address should be resolved upon startup if it uses an FQDN. Attempts are made to resolve the address by applying in turn each of the methods mentioned in the comma-delimited list. The first method which succeeds is used.
resolvers LocalObjectReference Resolvers points to an existing resolvers to resolve current server hostname.
sendProxy boolean SendProxy enforces use of the PROXY protocol over any connection established to this server. The PROXY protocol informs the other end about the layer 3/4 addresses of the incoming connection, so that it can know the client address or the public address it accessed to, whatever the upper layer protocol.
SendProxyV2 ProxyProtocol SendProxyV2 preparing new update.
verifyHost string VerifyHost is only available when support for OpenSSL was built in, and only takes effect if pec.ssl.verify' is set to 'required'. This directive sets a default static hostname to check the server certificate against when no SNI was used to connect to the server.
cookie boolean Cookie sets the cookie value assigned to the server.
name string Name of the server.
address string Address can be a host name, an IPv4 address, an IPv6 address.
port integer Port

ServerParams

Appears in:

Field Description
ssl SSL SSL configures OpenSSL
weight int64 Weight parameter is used to adjust the server weight relative to other servers. All servers will receive a load proportional to their weight relative to the sum of all weights.
check Check Check configures the health checks of the server.
initAddr string InitAddr indicates in what order the server address should be resolved upon startup if it uses an FQDN. Attempts are made to resolve the address by applying in turn each of the methods mentioned in the comma-delimited list. The first method which succeeds is used.
resolvers LocalObjectReference Resolvers points to an existing resolvers to resolve current server hostname.
sendProxy boolean SendProxy enforces use of the PROXY protocol over any connection established to this server. The PROXY protocol informs the other end about the layer 3/4 addresses of the incoming connection, so that it can know the client address or the public address it accessed to, whatever the upper layer protocol.
SendProxyV2 ProxyProtocol SendProxyV2 preparing new update.
verifyHost string VerifyHost is only available when support for OpenSSL was built in, and only takes effect if pec.ssl.verify' is set to 'required'. This directive sets a default static hostname to check the server certificate against when no SNI was used to connect to the server.
cookie boolean Cookie sets the cookie value assigned to the server.

ServerTemplate

Appears in:

Field Description
ssl SSL SSL configures OpenSSL
weight int64 Weight parameter is used to adjust the server weight relative to other servers. All servers will receive a load proportional to their weight relative to the sum of all weights.
check Check Check configures the health checks of the server.
initAddr string InitAddr indicates in what order the server address should be resolved upon startup if it uses an FQDN. Attempts are made to resolve the address by applying in turn each of the methods mentioned in the comma-delimited list. The first method which succeeds is used.
resolvers LocalObjectReference Resolvers points to an existing resolvers to resolve current server hostname.
sendProxy boolean SendProxy enforces use of the PROXY protocol over any connection established to this server. The PROXY protocol informs the other end about the layer 3/4 addresses of the incoming connection, so that it can know the client address or the public address it accessed to, whatever the upper layer protocol.
SendProxyV2 ProxyProtocol SendProxyV2 preparing new update.
verifyHost string VerifyHost is only available when support for OpenSSL was built in, and only takes effect if pec.ssl.verify' is set to 'required'. This directive sets a default static hostname to check the server certificate against when no SNI was used to connect to the server.
cookie boolean Cookie sets the cookie value assigned to the server.
prefix string Prefix for the server names to be built.
numMin int64 NumMin is the min number of servers as server name suffixes this template initializes.
num integer Num is the max number of servers as server name suffixes this template initializes.
fqdn string FQDN for all the servers this template initializes.
port integer Port

StaticHTTPFile

Appears in:

Field Description
name string
value string
valueFrom ErrorFileValueFrom

StatusPhase

Underlying type: string

StatusPhase is a label for the phase of an object at the current time.

Appears in:

TCPRequestRule

Appears in:

Field Description
type string Type specifies the type of the tcp-request rule.
action string Action defines the action to perform if the condition applies.
timeout Duration Timeout sets timeout for the action

Timeouts

Appears in:

Field Description
resolve Duration Resolve time to trigger name resolutions when no other time applied. Default value: 1s
retry Duration Retry time between two DNS queries, when no valid response have been received. Default value: 1s

proxy.haproxy.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the proxy v1alpha1 API group

Resource Types

Configuration

Appears in:

Field Description
global GlobalConfiguration Global contains the global HAProxy configuration settings
defaults DefaultsConfiguration Defaults presets settings for all frontend, backend and listen
selector LabelSelector LabelSelector to select other configuration objects of the config.haproxy.com API

DefaultsConfiguration

Appears in:

Field Description
mode string Mode can be either 'tcp' or 'http'. In tcp mode it is a layer 4 proxy. In http mode it is a layer 7 proxy.
errorFiles ErrorFile array ErrorFiles custom error files to be used
timeouts object (keys:string, values:Duration) Timeouts: check, client, client-fin, connect, http-keep-alive, http-request, queue, server, server-fin, tunnel. The timeout value specified in milliseconds by default, but can be in any other unit if the number is suffixed by the unit. More info: https://cbonte.github.io/haproxy-dconv/2.6/configuration.html
logging DefaultsLoggingConfiguration Logging is used to configure default logging for all proxies.
additionalParameters string AdditionalParameters can be used to specify any further configuration statements which are not covered in this section explicitly.

DefaultsLoggingConfiguration

Appears in:

Field Description
enabled boolean Enabled will enable logs for all proxies
httpLog boolean HTTPLog enables HTTP log format which is the most complete and the best suited for HTTP proxies. It provides the same level of information as the TCP format with additional features which are specific to the HTTP protocol.
tcpLog boolean TCPLog enables advanced logging of TCP connections with session state and timers. By default, the log output format is very poor, as it only contains the source and destination addresses, and the instance name.

GlobalConfiguration

Appears in:

Field Description
reload boolean Reload enables auto-reload of the configuration using sockets. Requires an image that supports this feature.
statsTimeout Duration StatsTimeout sets the timeout on the stats socket. Default is set to 10 seconds.
logging GlobalLoggingConfiguration Logging is used to enable and configure logging in the global section of the HAProxy configuration.
additionalParameters string AdditionalParameters can be used to specify any further configuration statements which are not covered in this section explicitly.
additionalCertificates SSLCertificate array AdditionalCertificates can be used to include global ssl certificates which can bes used in any listen
maxconn int64 Maxconn sets the maximum per-process number of concurrent connections. Proxies will stop accepting connections when this limit is reached.
nbthread int64 Nbthread this setting is only available when support for threads was built in. It makes HAProxy run on specified number of threads.
tune GlobalTuneOptions TuneOptions sets the global tune options.
ssl GlobalSSL GlobalSSL sets the global SSL options.
hardStopAfter Duration HardStopAfter is the maximum time the instance will remain alive when a soft-stop is received.

GlobalLoggingConfiguration

Appears in:

Field Description
enabled boolean Enabled will toggle the creation of a global syslog server.
address string Address can be a filesystem path to a UNIX domain socket or a remote syslog target (IPv4/IPv6 address optionally followed by a colon and a UDP port).
facility string Facility must be one of the 24 standard syslog facilities.
level string Level can be specified to filter outgoing messages. By default, all messages are sent.
format string Format is the log format used when generating syslog messages.
sendHostname boolean SendHostname sets the hostname field in the syslog header. Generally used if one is not relaying logs through an intermediate syslog server.
hostname string Hostname specifies a value for the syslog hostname header, otherwise uses the hostname of the system.

GlobalSSL

Appears in:

Field Description
defaultBindCiphers string array DefaultBindCiphers sets the list of cipher algorithms ("cipher suite") that are negotiated during the SSL/TLS handshake up to TLSv1.2 for all binds which do not explicitly define theirs.
defaultBindCipherSuites string array DefaultBindCipherSuites sets the default list of cipher algorithms ("cipher suite") that are negotiated during the TLSv1.3 handshake for all binds which do not explicitly define theirs.
defaultBindOptions GlobalSSLDefaultBindOptions DefaultBindOptions sets default ssl-options to force on all binds.

GlobalSSLDefaultBindOptions

Underlying type: struct{MinVersion *string "json:"minVersion,omitempty""}

Appears in:

GlobalSSLTuneOptions

Underlying type: struct{CacheSize *int64 "json:"cacheSize,omitempty""; Keylog string "json:"keylog,omitempty""; Lifetime *k8s.io/apimachinery/pkg/apis/meta/v1.Duration "json:"lifetime,omitempty""; ForcePrivateCache bool "json:"forcePrivateCache,omitempty""; MaxRecord *int64 "json:"maxRecord,omitempty""; DefaultDHParam int64 "json:"defaultDHParam,omitempty""; CtxCacheSize int64 "json:"ctxCacheSize,omitempty""; CaptureBufferSize *int64 "json:"captureBufferSize,omitempty""}

Appears in:

GlobalTuneOptions

Appears in:

Field Description
maxrewrite int64 Maxrewrite sets the reserved buffer space to this size in bytes. The reserved space is used for header rewriting or appending. The first reads on sockets will never fill more than bufsize-maxrewrite.
bufsize int64 Bufsize sets the buffer size to this size (in bytes). Lower values allow more sessions to coexist in the same amount of RAM, and higher values allow some applications with very large cookies to work.
ssl GlobalSSLTuneOptions SSL sets the SSL tune options.

Instance

Instance is the Schema for the instances API

Field Description
apiVersion string proxy.haproxy.com/v1alpha1
kind string Instance
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec InstanceSpec

InstancePhase

Underlying type: string

InstancePhase is a label for the phase of a Instance at the current time.

Appears in:

InstanceSpec

InstanceSpec defines the desired state of Instance

Appears in:

Field Description
replicas integer Replicas is the desired number of replicas of the HAProxy Instance.
network Network Network contains the configuration of Route, Services and other network related configuration.
configuration Configuration Configuration is used to bootstrap the global and defaults section of the HAProxy configuration.
image string Image specifies the HaProxy image including th tag.
sidecars Container array Sidecars additional sidecar containers
serviceAccountName string ServiceAccountName is the name of the ServiceAccount to use to run this Instance.
allowPrivilegedPorts boolean AllowPrivilegedPorts allows to bind sockets with port numbers less than 1024.
placement Placement Placement define how the instance's pods should be scheduled.
imagePullPolicy PullPolicy ImagePullPolicy one of Always, Never, IfNotPresent.
metrics Metrics Metrics defines the metrics endpoint and scraping configuration.
labels object (keys:string, values:string) Labels additional labels for the ha-proxy pods

Metrics

Appears in:

Field Description
enabled boolean Enabled will enable metrics globally for Instance.
address string Address to bind the metrics endpoint (default: '0.0.0.0').
port integer Port specifies the port used for metrics.
relabelings RelabelConfig array RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
interval Duration Interval at which metrics should be scraped If not specified Prometheus' global scrape interval is used.

Network

Appears in:

Field Description
hostNetwork boolean HostNetwork will enable the usage of host network.
hostIPs object (keys:string, values:string) HostIPs defines an environment variable BIND_ADDRESS in the instance based on the provided host to IP mapping
route RouteSpec Route defines the desired state for OpenShift Routes.
service ServiceSpec Service defines the desired state for a Service.

Placement

Appears in:

Field Description
nodeSelector object (keys:string, values:string) NodeSelector is a selector which must be true for the pod to fit on a node.
topologySpreadConstraints TopologySpreadConstraint array TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints.

RouteSpec

Appears in:

Field Description
enabled boolean Enabled will toggle the creation of OpenShift Routes.
tls TLSConfig TLS provides the ability to configure certificates and termination for the route.

ServiceSpec

Appears in:

Field Description
enabled boolean Enabled will toggle the creation of a Service.