v1alpha1

package
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the config v1alpha1 API group +kubebuilder:object:generate=true +groupName=config.haproxy.com

Index

Constants

View Source
const (
	HTTPRequestRuleRedirectOptionDropQuery   = "drop-query"
	HTTPRequestRuleRedirectOptionAppendSlash = "append-slash"
	HTTPRequestRuleRedirectOptionSetCookie   = "set-cookie"
	HTTPRequestRuleRedirectOptionClearCookie = "clear-cookie"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "config.haproxy.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ACL

type ACL struct {
	// Name
	// +kubebuilder:validation:Pattern=^[^\s]+$
	Name string `json:"name"`
	// Criterion is the name of a sample fetch method, or one of its ACL
	// specific declinations.
	// +kubebuilder:validation:Pattern=^[^\s]+$
	Criterion string `json:"criterion"`
	// Values are of the type supported by the criterion.
	Values []string `json:"values"`
}

func (*ACL) DeepCopy

func (in *ACL) DeepCopy() *ACL

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACL.

func (*ACL) DeepCopyInto

func (in *ACL) DeepCopyInto(out *ACL)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ACL) FilePath

func (a *ACL) FilePath() string

func (*ACL) Model

func (a *ACL) Model() (models.ACL, error)

type Backend

type Backend struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   BackendSpec `json:"spec,omitempty"`
	Status Status      `json:"status,omitempty"`
}

Backend is the Schema for the backend API

func (*Backend) AddToParser

func (b *Backend) AddToParser(p parser.Parser) error

func (*Backend) DeepCopy

func (in *Backend) DeepCopy() *Backend

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backend.

func (*Backend) DeepCopyInto

func (in *Backend) DeepCopyInto(out *Backend)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Backend) DeepCopyObject

func (in *Backend) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Backend) GetStatus

func (b *Backend) GetStatus() Status

func (*Backend) Model

func (b *Backend) Model() (models.Backend, error)

func (*Backend) SetStatus

func (b *Backend) SetStatus(status Status)

type BackendList

type BackendList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Backend `json:"items"`
}

BackendList contains a list of Backend

func (*BackendList) DeepCopy

func (in *BackendList) DeepCopy() *BackendList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendList.

func (*BackendList) DeepCopyInto

func (in *BackendList) DeepCopyInto(out *BackendList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BackendList) DeepCopyObject

func (in *BackendList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BackendReference

type BackendReference struct {
	// Name of a specific backend
	Name *string `json:"name,omitempty"`
	// Mapping of multiple backends
	RegexMapping *RegexBackendMapping `json:"regexMapping,omitempty"`
}

func (*BackendReference) DeepCopy

func (in *BackendReference) DeepCopy() *BackendReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendReference.

func (*BackendReference) DeepCopyInto

func (in *BackendReference) DeepCopyInto(out *BackendReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BackendReference) String

func (b *BackendReference) String() string

type BackendSpec

type BackendSpec struct {
	BaseSpec `json:",inline"`
	// CheckTimeout sets an additional check timeout, but only after a connection has been already
	// established.
	// +optional
	CheckTimeout *metav1.Duration `json:"checkTimeout,omitempty"`
	// Servers defines the backend servers and its configuration.
	Servers []Server `json:"servers,omitempty"`
	// ServerTemplates defines the backend server templates and its configuration.
	ServerTemplates []ServerTemplate `json:"serverTemplates,omitempty"`
	// Balance defines the load balancing algorithm to be used in a backend.
	// +optional
	Balance *Balance `json:"balance,omitempty"`
	// HostRegex specifies a regular expression used for backend switching rules.
	// +optional
	HostRegex string `json:"hostRegex,omitempty"`
	// HostCertificate specifies a certificate for that host used in the crt-list of a frontend
	// +optional
	HostCertificate *CertificateListElement `json:"hostCertificate,omitempty"`
	// Redispatch enable or disable session redistribution in case of connection failure
	// +optional
	Redispatch *bool `json:"redispatch,omitempty"`
	// HashType specifies a method to use for mapping hashes to servers
	// +optional
	HashType *HashType `json:"hashType,omitempty"`
	// Cookie enables cookie-based persistence in a backend.
	// +optional
	Cookie *Cookie `json:"cookie,omitempty"`
	// HTTPChk Enables HTTP protocol to check on the servers health
	// +optional
	HTTPChk *HTTPChk `json:"httpchk,omitempty"`
	// TCPCheck Perform health checks using tcp-check send/expect sequences
	// +optional
	TCPCheck *bool `json:"tcpCheck,omitempty"`
}

BackendSpec defines the desired state of Backend

func (*BackendSpec) DeepCopy

func (in *BackendSpec) DeepCopy() *BackendSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendSpec.

func (*BackendSpec) DeepCopyInto

func (in *BackendSpec) DeepCopyInto(out *BackendSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackendSwitchingRule

type BackendSwitchingRule struct {
	Rule `json:",inline"`
	// Backend reference used to resolve the backend name.
	Backend BackendReference `json:"backend,omitempty"`
}

func (*BackendSwitchingRule) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendSwitchingRule.

func (*BackendSwitchingRule) DeepCopyInto

func (in *BackendSwitchingRule) DeepCopyInto(out *BackendSwitchingRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BackendSwitchingRule) Model

type Balance

type Balance struct {
	// 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.
	// +kubebuilder:validation:Enum=roundrobin;static-rr;leastconn;first;source;uri;hdr;random;rdp-cookie
	Algorithm string `json:"algorithm"`
}

func (*Balance) DeepCopy

func (in *Balance) DeepCopy() *Balance

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Balance.

func (*Balance) DeepCopyInto

func (in *Balance) DeepCopyInto(out *Balance)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Balance) Model

func (b *Balance) Model() (models.Balance, error)

type BaseSpec

type BaseSpec struct {
	// 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.
	// +kubebuilder:default=http
	// +kubebuilder:validation:Enum=http;tcp
	Mode string `json:"mode"`
	// HTTPRequest rules define a set of rules which apply to layer 7 processing.
	// +optional
	HTTPRequest *HTTPRequestRules `json:"httpRequest,omitempty"`
	// TCPRequest rules perform an action on an incoming connection depending on a layer 4 condition.
	// +optional
	TCPRequest []TCPRequestRule `json:"tcpRequest,omitempty"`
	// 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
	// +optional
	ACL []ACL `json:"acl,omitempty"`
	// 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
	// +optional
	Timeouts map[string]metav1.Duration `json:"timeouts"`
	// ErrorFiles custom error files to be used
	// +optional
	ErrorFiles []*ErrorFile `json:"errorFiles,omitempty"`
	// Forwardfor enable insertion of the X-Forwarded-For header to requests sent to servers
	// +optional
	Forwardfor *Forwardfor `json:"forwardFor,omitempty"`
	// HTTPPretendKeepalive will keep the connection alive. It is recommended not to enable this option by default.
	// +optional
	HTTPPretendKeepalive *bool `json:"httpPretendKeepalive,omitempty"`
}

func (*BaseSpec) AddToParser

func (b *BaseSpec) AddToParser(p parser.Parser, sectionType parser.Section, sectionName string) error

func (*BaseSpec) DeepCopy

func (in *BaseSpec) DeepCopy() *BaseSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BaseSpec.

func (*BaseSpec) DeepCopyInto

func (in *BaseSpec) DeepCopyInto(out *BaseSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Bind

type Bind struct {
	// Name for these sockets, which will be reported on the stats page.
	Name string `json:"name"`
	// Address can be a host name, an IPv4 address, an IPv6 address, or '*' (is equal to the special address "0.0.0.0").
	// +kubebuilder:validation:Pattern=^[^\s]+$
	// +optional
	Address string `json:"address,omitempty"`
	// Port
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	Port int64 `json:"port"`
	// PortRangeEnd if set it must be greater than Port
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	// +optional
	PortRangeEnd *int64 `json:"portRangeEnd,omitempty"`
	// 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.
	// +optional
	Transparent bool `json:"transparent,omitempty"`
	// SSL configures OpenSSL
	// +optional
	SSL *SSL `json:"ssl,omitempty"`
	// 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.
	// +optional
	SSLCertificateList *CertificateList `json:"sslCertificateList,omitempty"`
	// Hidden hides the bind and prevent exposing the Bind in services or routes
	// +optional
	Hidden *bool `json:"hidden,omitempty"`
	// AcceptProxy enforces the use of the PROXY protocol over any connection accepted by any of
	// the sockets declared on the same line.
	// +optional
	AcceptProxy *bool `json:"acceptProxy,omitempty"`
}

func (*Bind) DeepCopy

func (in *Bind) DeepCopy() *Bind

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Bind.

func (*Bind) DeepCopyInto

func (in *Bind) DeepCopyInto(out *Bind)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Bind) Model

func (b *Bind) Model() (models.Bind, error)

type CertificateList

type CertificateList struct {
	// Name is the name of the certificate list
	Name string `json:"name"`
	// Elements is a list of SSL configuration and a SNI filter per certificate. If backend switching based on regex is used the host certificate
	Elements []CertificateListElement `json:"elements,omitempty"`
	// LabelSelector to select multiple backend certificates
	LabelSelector *metav1.LabelSelector `json:"selector,omitempty"`
}

func (*CertificateList) DeepCopy

func (in *CertificateList) DeepCopy() *CertificateList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateList.

func (*CertificateList) DeepCopyInto

func (in *CertificateList) DeepCopyInto(out *CertificateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateList) FilePath

func (r *CertificateList) FilePath() string

type CertificateListElement

type CertificateListElement struct {
	// Certificate that will be presented to clients who provide a valid
	// TLSServerNameIndication field matching the SNIFilter.
	Certificate SSLCertificate `json:"certificate"`
	// SNIFilter specifies the filter for the SSL Certificate.  Wildcards are supported in the SNIFilter. Negative filter are also supported.
	SNIFilter string `json:"sniFilter"`
	// Alpn enables the TLS ALPN extension and advertises the specified protocol
	// list as supported on top of ALPN.
	// +optional
	Alpn []string `json:"alpn,omitempty"`
}

func (*CertificateListElement) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateListElement.

func (*CertificateListElement) DeepCopyInto

func (in *CertificateListElement) DeepCopyInto(out *CertificateListElement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Check

type Check struct {
	// Enable enables health checks on a server. If not set, no health checking is performed, and the server is always
	// considered available.
	Enabled bool `json:"enabled"`
	// Inter sets the interval between two consecutive health checks. If left unspecified, the delay defaults to 2000 ms.
	// +optional
	Inter *metav1.Duration `json:"inter,omitempty"`
	// Rise specifies the number of consecutive successful health checks after a server will be considered as operational.
	// This value defaults to 2 if unspecified.
	// +optional
	Rise *int64 `json:"rise,omitempty"`
	// Fall specifies the number of consecutive unsuccessful health checks after a server will be considered as dead.
	// This value defaults to 3 if unspecified.
	// +optional
	Fall *int64 `json:"fall,omitempty"`
}

func (*Check) DeepCopy

func (in *Check) DeepCopy() *Check

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Check.

func (*Check) DeepCopyInto

func (in *Check) DeepCopyInto(out *Check)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Cookie struct {
	// Name of the cookie which will be monitored, modified or inserted in order to bring persistence.
	Name string `json:"name,omitempty"`
	// Mode could be 'rewrite', 'insert', 'prefix'. Select one.
	// +optional
	Mode CookieMode `json:"mode,omitempty"`
	// Indirect no cookie will be emitted to a client which already has a valid one
	// for the server which has processed the request.
	// +optional
	Indirect *bool `json:"indirect,omitempty"`
	// NoCache recommended in conjunction with the insert mode when there is a cache
	// between the client and HAProx
	// +optional
	NoCache *bool `json:"noCache,omitempty"`
	// PostOnly ensures that cookie insertion will only be performed on responses to POST requests.
	// +optional
	PostOnly *bool `json:"postOnly,omitempty"`
	// Preserve only be used with "insert" and/or "indirect". It allows the server
	// to emit the persistence cookie itself.
	// +optional
	Preserve *bool `json:"preserve,omitempty"`
	// HTTPOnly add an "HttpOnly" cookie attribute when a cookie is inserted.
	// It doesn't share the cookie with non-HTTP components.
	// +optional
	HTTPOnly *bool `json:"httpOnly,omitempty"`
	// 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.
	// +optional
	Secure *bool `json:"secure,omitempty"`
	// 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.
	// +optional
	Dynamic *bool `json:"dynamic,omitempty"`
	// Domain specify the domain at which a cookie is inserted. You can specify
	// several domain names by invoking this option multiple times.
	// +optional
	Domain []string `json:"domain,omitempty"`
	// MaxIdle cookies are ignored after some idle time.
	// +optional
	MaxIdle int64 `json:"maxIdle,omitempty"`
	// MaxLife cookies are ignored after some life time.
	// +optional
	MaxLife int64 `json:"maxLife,omitempty"`
	// Attribute add an extra attribute when a cookie is inserted.
	// +optional
	Attribute []string `json:"attribute,omitempty"`
}

func (*Cookie) DeepCopy

func (in *Cookie) DeepCopy() *Cookie

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cookie.

func (*Cookie) DeepCopyInto

func (in *Cookie) DeepCopyInto(out *Cookie)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CookieMode

type CookieMode struct {
	// Rewrite the cookie will be provided by the server.
	Rewrite bool `json:"rewrite"`
	// Insert cookie will have to be inserted by haproxy in server responses.
	Insert bool `json:"insert"`
	// Prefix is needed in some specific environments where the client does not support
	// more than one single cookie and the application already needs it.
	Prefix bool `json:"prefix"`
}

func (*CookieMode) DeepCopy

func (in *CookieMode) DeepCopy() *CookieMode

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CookieMode.

func (*CookieMode) DeepCopyInto

func (in *CookieMode) DeepCopyInto(out *CookieMode)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Deny

type Deny struct {
	Rule `json:",inline"`
	// Enabled enables deny http request
	Enabled bool `json:"enabled"`
	// DenyStatus is the HTTP status code.
	// +kubebuilder:validation:Minimum=200
	// +kubebuilder:validation:Maximum=599
	// +optional
	DenyStatus *int64 `json:"denyStatus,omitempty"`
}

func (*Deny) DeepCopy

func (in *Deny) DeepCopy() *Deny

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deny.

func (*Deny) DeepCopyInto

func (in *Deny) DeepCopyInto(out *Deny)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ErrorFile

type ErrorFile struct {
	// Code is the HTTP status code.
	// +kubebuilder:validation:Enum=200;400;401;403;404;405;407;408;410;413;425;429;500;501;502;503;504
	Code int64 `json:"code"`
	// File designates a file containing the full HTTP response.
	File StaticHTTPFile `json:"file"`
}

func (*ErrorFile) DeepCopy

func (in *ErrorFile) DeepCopy() *ErrorFile

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorFile.

func (*ErrorFile) DeepCopyInto

func (in *ErrorFile) DeepCopyInto(out *ErrorFile)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ErrorFile) Model

func (e *ErrorFile) Model() (models.Errorfile, error)

type ErrorFileValueFrom

type ErrorFileValueFrom struct {
	// ConfigMapKeyRef selects a key of a ConfigMap.
	// +optional
	ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty"`
}

func (*ErrorFileValueFrom) DeepCopy

func (in *ErrorFileValueFrom) DeepCopy() *ErrorFileValueFrom

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorFileValueFrom.

func (*ErrorFileValueFrom) DeepCopyInto

func (in *ErrorFileValueFrom) DeepCopyInto(out *ErrorFileValueFrom)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Forwardfor

type Forwardfor struct {
	Enabled bool `json:"enabled"`
	// Pattern: ^[^\s]+$
	Except string `json:"except,omitempty"`
	// Pattern: ^[^\s]+$
	Header string `json:"header,omitempty"`
	Ifnone bool   `json:"ifnone,omitempty"`
}

func (*Forwardfor) DeepCopy

func (in *Forwardfor) DeepCopy() *Forwardfor

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Forwardfor.

func (*Forwardfor) DeepCopyInto

func (in *Forwardfor) DeepCopyInto(out *Forwardfor)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Frontend

type Frontend struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FrontendSpec `json:"spec,omitempty"`
	Status Status       `json:"status,omitempty"`
}

Frontend is the Schema for the frontends API

func (*Frontend) AddToParser

func (f *Frontend) AddToParser(p parser.Parser) error

func (*Frontend) DeepCopy

func (in *Frontend) DeepCopy() *Frontend

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Frontend.

func (*Frontend) DeepCopyInto

func (in *Frontend) DeepCopyInto(out *Frontend)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Frontend) DeepCopyObject

func (in *Frontend) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Frontend) GetStatus

func (f *Frontend) GetStatus() Status

func (*Frontend) Model

func (f *Frontend) Model() (models.Frontend, error)

func (*Frontend) SetStatus

func (f *Frontend) SetStatus(status Status)

type FrontendList

type FrontendList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Frontend `json:"items"`
}

FrontendList contains a list of Fronted

func (*FrontendList) DeepCopy

func (in *FrontendList) DeepCopy() *FrontendList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FrontendList.

func (*FrontendList) DeepCopyInto

func (in *FrontendList) DeepCopyInto(out *FrontendList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FrontendList) DeepCopyObject

func (in *FrontendList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FrontendSpec

type FrontendSpec struct {
	BaseSpec `json:",inline"`
	// Binds defines the frontend listening addresses, ports and its configuration.
	// +kubebuilder:validation:MinItems=1
	Binds []Bind `json:"binds"`
	// BackendSwitching rules specify the specific backend used if/unless an ACL-based condition is matched.
	// +optional
	BackendSwitching []BackendSwitchingRule `json:"backendSwitching,omitempty"`
	// DefaultBackend to use when no 'use_backend' rule has been matched.
	DefaultBackend corev1.LocalObjectReference `json:"defaultBackend"`
}

FrontendSpec defines the desired state of Frontend

func (*FrontendSpec) DeepCopy

func (in *FrontendSpec) DeepCopy() *FrontendSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FrontendSpec.

func (*FrontendSpec) DeepCopyInto

func (in *FrontendSpec) DeepCopyInto(out *FrontendSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPChk added in v1.0.6

type HTTPChk struct {
	// URI
	URI string `json:"uri,omitempty"`
	// Method http method
	// +optional
	// Enum: [HEAD PUT POST GET TRACE PATCH DELETE CONNECT OPTIONS]
	// +kubebuilder:validation:Enum=HEAD;PUT;POST;GET;TRACE;PATCH;DELETE;CONNECT;OPTIONS;
	Method string `json:"method,omitempty"`
}

func (*HTTPChk) DeepCopy added in v1.0.6

func (in *HTTPChk) DeepCopy() *HTTPChk

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPChk.

func (*HTTPChk) DeepCopyInto added in v1.0.6

func (in *HTTPChk) DeepCopyInto(out *HTTPChk)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPHeaderRule

type HTTPHeaderRule struct {
	Rule `json:",inline"`
	// Name specifies the header name
	Name string `json:"name"`
	// Value specifies the header value
	Value HTTPHeaderValue `json:"value"`
}

func (*HTTPHeaderRule) DeepCopy

func (in *HTTPHeaderRule) DeepCopy() *HTTPHeaderRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPHeaderRule.

func (*HTTPHeaderRule) DeepCopyInto

func (in *HTTPHeaderRule) DeepCopyInto(out *HTTPHeaderRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPHeaderValue

type HTTPHeaderValue struct {
	// Env variable with the header value
	Env *corev1.EnvVar `json:"env,omitempty"`
	// Str with the header value
	Str *string `json:"str,omitempty"`
	// Format specifies the format of the header value (implicit default is '%s')
	Format *string `json:"format,omitempty"`
}

func (*HTTPHeaderValue) DeepCopy

func (in *HTTPHeaderValue) DeepCopy() *HTTPHeaderValue

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPHeaderValue.

func (*HTTPHeaderValue) DeepCopyInto

func (in *HTTPHeaderValue) DeepCopyInto(out *HTTPHeaderValue)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HTTPHeaderValue) String

func (h *HTTPHeaderValue) String() string

type HTTPPathRule

type HTTPPathRule struct {
	Rule `json:",inline"`
	// Value specifies the path value
	Value string `json:"format,omitempty"`
}

func (*HTTPPathRule) DeepCopy

func (in *HTTPPathRule) DeepCopy() *HTTPPathRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPPathRule.

func (*HTTPPathRule) DeepCopyInto

func (in *HTTPPathRule) DeepCopyInto(out *HTTPPathRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPPretendKeepalive

type HTTPPretendKeepalive struct {
	Enabled bool `json:"enabled"`
}

func (*HTTPPretendKeepalive) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPPretendKeepalive.

func (*HTTPPretendKeepalive) DeepCopyInto

func (in *HTTPPretendKeepalive) DeepCopyInto(out *HTTPPretendKeepalive)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPRequestRules

type HTTPRequestRules struct {
	// SetHeader sets HTTP header fields
	SetHeader []HTTPHeaderRule `json:"setHeader,omitempty"`
	// SetPath sets request path
	SetPath []HTTPPathRule `json:"setPath,omitempty"`
	// AddHeader appends HTTP header fields
	AddHeader []HTTPHeaderRule `json:"addHeader,omitempty"`
	// Redirect performs an HTTP redirection based on a redirect rule.
	// +optional
	Redirect []Redirect `json:"redirect,omitempty"`
	// 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.
	// +optional
	ReplacePath []ReplacePath `json:"replacePath,omitempty"`
	// 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.
	// +optional
	Deny []Deny `json:"deny,omitempty"`
	// Return stops the evaluation of the rules and immediately returns a response.
	Return *HTTPReturn `json:"return,omitempty"`
}

func (*HTTPRequestRules) DeepCopy

func (in *HTTPRequestRules) DeepCopy() *HTTPRequestRules

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRequestRules.

func (*HTTPRequestRules) DeepCopyInto

func (in *HTTPRequestRules) DeepCopyInto(out *HTTPRequestRules)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HTTPRequestRules) Model

type HTTPReturn

type HTTPReturn struct {
	// Status can be optionally specified, the default status code used for the response is 200.
	// +kubebuilder:default=200
	Status *int64 `json:"status,omitempty"`
	// Content is a full HTTP response specifying the errorfile to use, or the response payload specifying the file or the string to use.
	Content HTTPReturnContent `json:"content"`
}

func (*HTTPReturn) DeepCopy

func (in *HTTPReturn) DeepCopy() *HTTPReturn

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPReturn.

func (*HTTPReturn) DeepCopyInto

func (in *HTTPReturn) DeepCopyInto(out *HTTPReturn)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPReturnContent

type HTTPReturnContent struct {
	// Type specifies the content-type of the HTTP response.
	Type string `json:"type"`
	// ContentFormat defines the format of the Content. Can be one an errorfile or a string.
	// +kubebuilder:validation:Enum=default-errorfile;errorfile;errorfiles;file;lf-file;string;lf-string
	Format string `json:"format"`
	// Value specifying the file or the string to use.
	Value string `json:"value"`
}

func (*HTTPReturnContent) DeepCopy

func (in *HTTPReturnContent) DeepCopy() *HTTPReturnContent

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPReturnContent.

func (*HTTPReturnContent) DeepCopyInto

func (in *HTTPReturnContent) DeepCopyInto(out *HTTPReturnContent)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HashType

type HashType struct {
	// +kubebuilder:validation:Enum=map-based;consistent
	// +optional
	Method string `json:"method,omitempty"`
	// +kubebuilder:validation:Enum=sdbm;djb2;wt6;crc32
	// +optional
	Function string `json:"function,omitempty"`
	// +kubebuilder:validation:Enum=avalanche
	// +optional
	Modifier string `json:"modifier,omitempty"`
}

func (*HashType) DeepCopy

func (in *HashType) DeepCopy() *HashType

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HashType.

func (*HashType) DeepCopyInto

func (in *HashType) DeepCopyInto(out *HashType)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HashType) Model

func (h *HashType) Model() (*models.HashType, error)

type Hold

type Hold struct {
	// Nx defines interval between two successive name resolution when the last answer was nx.
	Nx *metav1.Duration `json:"nx,omitempty"`
	// Obsolete defines interval between two successive name resolution when the last answer was obsolete.
	Obsolete *metav1.Duration `json:"obsolete,omitempty"`
	// Other defines interval between two successive name resolution when the last answer was other.
	Other *metav1.Duration `json:"other,omitempty"`
	// Refused defines interval between two successive name resolution when the last answer was nx.
	Refused *metav1.Duration `json:"refused,omitempty"`
	// Timeout defines interval between two successive name resolution when the last answer was timeout.
	Timeout *metav1.Duration `json:"timeout,omitempty"`
	// Valid defines interval between two successive name resolution when the last answer was valid.
	Valid *metav1.Duration `json:"valid,omitempty"`
}

func (*Hold) DeepCopy

func (in *Hold) DeepCopy() *Hold

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hold.

func (*Hold) DeepCopyInto

func (in *Hold) DeepCopyInto(out *Hold)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Listen

type Listen struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ListenSpec `json:"spec,omitempty"`
	Status Status     `json:"status,omitempty"`
}

Listen is the Schema for the frontends API

func (*Listen) AddToParser

func (l *Listen) AddToParser(p parser.Parser) error

func (*Listen) DeepCopy

func (in *Listen) DeepCopy() *Listen

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Listen.

func (*Listen) DeepCopyInto

func (in *Listen) DeepCopyInto(out *Listen)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Listen) DeepCopyObject

func (in *Listen) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Listen) GetStatus

func (l *Listen) GetStatus() Status

func (*Listen) SetStatus

func (l *Listen) SetStatus(status Status)

func (*Listen) ToBackend

func (l *Listen) ToBackend() *Backend

func (*Listen) ToFrontend

func (l *Listen) ToFrontend() *Frontend

type ListenList

type ListenList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Listen `json:"items"`
}

ListenList contains a list of Listen

func (*ListenList) DeepCopy

func (in *ListenList) DeepCopy() *ListenList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenList.

func (*ListenList) DeepCopyInto

func (in *ListenList) DeepCopyInto(out *ListenList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ListenList) DeepCopyObject

func (in *ListenList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ListenSpec

type ListenSpec struct {
	BaseSpec `json:",inline"`
	// Binds defines the frontend listening addresses, ports and its configuration.
	// +kubebuilder:validation:MinItems=1
	Binds []Bind `json:"binds"`
	// Servers defines the backend servers and its configuration.
	// +optional
	Servers []Server `json:"servers,omitempty"`
	// ServerTemplates defines the backend server templates and its configuration.
	// +optional
	ServerTemplates []ServerTemplate `json:"serverTemplates,omitempty"`
	// CheckTimeout sets an additional check timeout, but only after a connection has been already
	// established.
	// +optional
	CheckTimeout *metav1.Duration `json:"checkTimeout,omitempty"`
	// Balance defines the load balancing algorithm to be used in a backend.
	// +optional
	Balance *Balance `json:"balance,omitempty"`
	// Redispatch enable or disable session redistribution in case of connection failure
	// +optional
	Redispatch *bool `json:"redispatch,omitempty"`
	// HashType Specify a method to use for mapping hashes to servers
	// +optional
	HashType *HashType `json:"hashType,omitempty"`
	// Cookie enables cookie-based persistence in a backend.
	// +optional
	Cookie *Cookie `json:"cookie,omitempty"`
	// HostCertificate specifies a certificate for that host used in the crt-list of a frontend
	// +optional
	HostCertificate *CertificateListElement `json:"hostCertificate,omitempty"`
	// HTTPCheck Enables HTTP protocol to check on the servers health
	// +optional
	HTTPCheck *HTTPChk `json:"httpCheck,omitempty"`
	// TCPCheck Perform health checks using tcp-check send/expect sequences
	// +optional
	TCPCheck *bool `json:"tcpCheck,omitempty"`
}

ListenSpec defines the desired state of Listen

func (*ListenSpec) DeepCopy

func (in *ListenSpec) DeepCopy() *ListenSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenSpec.

func (*ListenSpec) DeepCopyInto

func (in *ListenSpec) DeepCopyInto(out *ListenSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Nameserver

type Nameserver struct {
	// Name specifies a unique name of the nameserver.
	// +kubebuilder:validation:Pattern="^[A-Za-z0-9-_.:]+$"
	Name string `json:"name"`
	// Address
	// +kubebuilder:validation:Pattern=^[^\s]+$
	Address string `json:"address"`
	// Port
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	Port int64 `json:"port,omitempty"`
}

func (*Nameserver) DeepCopy

func (in *Nameserver) DeepCopy() *Nameserver

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Nameserver.

func (*Nameserver) DeepCopyInto

func (in *Nameserver) DeepCopyInto(out *Nameserver)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Nameserver) Model

func (n *Nameserver) Model() (models.Nameserver, error)

type Object

type Object interface {
	client.Object
	SetStatus(status Status)
	GetStatus() Status
	AddToParser(p parser.Parser) error
}

type ProxyProtocol

type ProxyProtocol struct {
	// V1 parameter enforces use of the PROXY protocol version 1.
	// +optional
	V1 bool `json:"v1"`
	// V2 parameter enforces use of the PROXY protocol version 2.
	// +optional
	V2 *ProxyProtocolV2 `json:"v2"`
	// V2SSL parameter add the SSL information extension of the PROXY protocol to the PROXY protocol header.
	// +optional
	V2SSL bool `json:"v2SSL"`
	// 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.
	// +optional
	V2SSLCN bool `json:"v2SSLCN"`
}

func (*ProxyProtocol) DeepCopy

func (in *ProxyProtocol) DeepCopy() *ProxyProtocol

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyProtocol.

func (*ProxyProtocol) DeepCopyInto

func (in *ProxyProtocol) DeepCopyInto(out *ProxyProtocol)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProxyProtocolV2

type ProxyProtocolV2 struct {
	// Enabled enables the PROXY protocol version 2.
	// +optional
	Enabled bool `json:"enabled"`
	// Options is a list of options to add to the PROXY protocol header.
	// +optional
	Options *ProxyProtocolV2Options `json:"options,omitempty"`
}

func (*ProxyProtocolV2) DeepCopy

func (in *ProxyProtocolV2) DeepCopy() *ProxyProtocolV2

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyProtocolV2.

func (*ProxyProtocolV2) DeepCopyInto

func (in *ProxyProtocolV2) DeepCopyInto(out *ProxyProtocolV2)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProxyProtocolV2Options

type ProxyProtocolV2Options struct {
	// Ssl is equivalent to use V2SSL.
	// +optional
	Ssl bool `json:"ssl"`
	// CertCn is equivalent to use V2SSLCN.
	// +optional
	CertCn bool `json:"certCn"`
	// SslCipher is the name of the used cipher.
	// +optional
	SslCipher bool `json:"sslCipher"`
	// CertSig is the signature algorithm of the used certificate.
	// +optional
	CertSig bool `json:"certSig"`
	// CertKey is the key algorithm of the used certificate.
	// +optional
	CertKey bool `json:"certKey"`
	// Authority is the host name value passed by the client (only SNI from a TLS)
	// +optional
	Authority bool `json:"authority"`
	// Crc32c is the checksum of the PROXYv2 header.
	// +optional
	Crc32c bool `json:"crc32C"`
	// 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".
	// +optional
	UniqueID bool `json:"uniqueID"`
}

func (*ProxyProtocolV2Options) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyProtocolV2Options.

func (*ProxyProtocolV2Options) DeepCopyInto

func (in *ProxyProtocolV2Options) DeepCopyInto(out *ProxyProtocolV2Options)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Redirect

type Redirect struct {
	// +optional
	Rule `json:",inline"`
	// Code indicates which type of HTTP redirection is desired.
	// +kubebuilder:validation:Enum=301;302;303;307;308
	// +optional
	Code *int64 `json:"code,omitempty"`
	// Type selects a mode and value to redirect
	// +optional
	Type RedirectType `json:"type,omitempty"`
	// Value to redirect
	// +optional
	Value string `json:"value,omitempty"`
	// Value to redirect
	// +optional
	Option *RedirectOption `json:"option,omitempty"`
}

func (*Redirect) DeepCopy

func (in *Redirect) DeepCopy() *Redirect

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Redirect.

func (*Redirect) DeepCopyInto

func (in *Redirect) DeepCopyInto(out *Redirect)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RedirectCookie

type RedirectCookie struct {
	// Name
	// +optional
	Name string `json:"name,omitempty"`
	// Value
	// +optional
	Value string `json:"value,omitempty"`
}

func (*RedirectCookie) DeepCopy

func (in *RedirectCookie) DeepCopy() *RedirectCookie

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedirectCookie.

func (*RedirectCookie) DeepCopyInto

func (in *RedirectCookie) DeepCopyInto(out *RedirectCookie)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RedirectOption

type RedirectOption struct {
	// DropQuery removes the query string from the original URL when performing the concatenation.
	// +optional
	DropQuery bool `json:"dropQuery,omitempty"`
	// AppendSlash adds a / character at the end of the URL.
	// +optional
	AppendSlash bool `json:"appendSlash,omitempty"`
	// SetCookie adds header to the redirection. It will be added with NAME (and optionally "=value")
	// +optional
	SetCookie *RedirectCookie `json:"SetCookie,omitempty"`
	// ClearCookie is to instruct the browser to delete the cookie. It will be added with NAME (and optionally "=").
	// To add "=" type any string in the value field
	// +optional
	ClearCookie *RedirectCookie `json:"ClearCookie,omitempty"`
}

func (*RedirectOption) DeepCopy

func (in *RedirectOption) DeepCopy() *RedirectOption

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedirectOption.

func (*RedirectOption) DeepCopyInto

func (in *RedirectOption) DeepCopyInto(out *RedirectOption)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RedirectType

type RedirectType struct {
	// Location replaces the entire location of a URL.
	// +optional
	Location bool `json:"location"`
	// Prefix adds a prefix to the URL's location.
	// +optional
	Prefix bool `json:"insert"`
	// Scheme redirects to a different scheme.
	// +optional
	Scheme bool `json:"prefix"`
}

func (*RedirectType) DeepCopy

func (in *RedirectType) DeepCopy() *RedirectType

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedirectType.

func (*RedirectType) DeepCopyInto

func (in *RedirectType) DeepCopyInto(out *RedirectType)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegexBackendMapping

type RegexBackendMapping struct {
	// Name to identify the mapping
	Name string `json:"name"`
	// Parameter which will be used for the mapping (default: base)
	// +kubebuilder:default=base
	Parameter string `json:"parameter"`
	// LabelSelector to select multiple backends
	LabelSelector metav1.LabelSelector `json:"selector"`
}

func (*RegexBackendMapping) DeepCopy

func (in *RegexBackendMapping) DeepCopy() *RegexBackendMapping

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegexBackendMapping.

func (*RegexBackendMapping) DeepCopyInto

func (in *RegexBackendMapping) DeepCopyInto(out *RegexBackendMapping)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RegexBackendMapping) FilePath

func (r *RegexBackendMapping) FilePath() string

func (*RegexBackendMapping) FoundCondition

func (r *RegexBackendMapping) FoundCondition() string

type ReplacePath added in v1.0.3

type ReplacePath struct {
	Rule `json:",inline"`
	// MatchRegex is a string pattern used to identify the paths that need to be replaced.
	MatchRegex string `json:"matchRegex"`
	// ReplaceFmt defines the format string used to replace the values that match the pattern.
	ReplaceFmt string `json:"replaceFmt"`
}

func (*ReplacePath) DeepCopy added in v1.0.6

func (in *ReplacePath) DeepCopy() *ReplacePath

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplacePath.

func (*ReplacePath) DeepCopyInto added in v1.0.6

func (in *ReplacePath) DeepCopyInto(out *ReplacePath)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Resolver

type Resolver struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ResolverSpec `json:"spec,omitempty"`
	Status Status       `json:"status,omitempty"`
}

Resolver is the Schema for the Resolver API

func (*Resolver) AddToParser

func (r *Resolver) AddToParser(p parser.Parser) error

func (*Resolver) DeepCopy

func (in *Resolver) DeepCopy() *Resolver

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resolver.

func (*Resolver) DeepCopyInto

func (in *Resolver) DeepCopyInto(out *Resolver)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Resolver) DeepCopyObject

func (in *Resolver) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Resolver) GetStatus

func (r *Resolver) GetStatus() Status

func (*Resolver) Model

func (r *Resolver) Model() (models.Resolver, error)

func (*Resolver) SetStatus

func (r *Resolver) SetStatus(status Status)

type ResolverList

type ResolverList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Resolver `json:"items"`
}

ResolverList contains a list of Resolver

func (*ResolverList) DeepCopy

func (in *ResolverList) DeepCopy() *ResolverList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResolverList.

func (*ResolverList) DeepCopyInto

func (in *ResolverList) DeepCopyInto(out *ResolverList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ResolverList) DeepCopyObject

func (in *ResolverList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ResolverSpec

type ResolverSpec struct {
	// Nameservers used to configure a nameservers.
	Nameservers []Nameserver `json:"nameservers,omitempty"`
	// AcceptedPayloadSize defines the maximum payload size accepted by HAProxy and announced to all the  name servers
	// configured in this resolver.
	// +kubebuilder:validation:Maximum=8192
	// +kubebuilder:validation:Minimum=512
	// +optional
	AcceptedPayloadSize *int64 `json:"acceptedPayloadSize,omitempty"`
	// ParseResolvConf if true, adds all nameservers found in /etc/resolv.conf to this resolvers nameservers list.
	// +optional
	ParseResolvConf *bool `json:"parseResolvConf,omitempty"`
	// ResolveRetries defines the number <nb> of queries to send to resolve a server name before giving up. Default value: 3
	// +kubebuilder:validation:Minimum=1
	// +optional
	ResolveRetries *int64 `json:"resolveRetries,omitempty"`
	// Hold defines the period during which the last name resolution should be kept based on the last resolution status.
	// +optional
	Hold *Hold `json:"hold,omitempty"`
	// Timeouts defines timeouts related to name resolution.
	// +optional
	Timeouts *Timeouts `json:"timeouts,omitempty"`
}

ResolverSpec defines the desired state of Resolver

func (*ResolverSpec) DeepCopy

func (in *ResolverSpec) DeepCopy() *ResolverSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResolverSpec.

func (*ResolverSpec) DeepCopyInto

func (in *ResolverSpec) DeepCopyInto(out *ResolverSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Rule

type Rule struct {
	// ConditionType specifies the type of the condition matching ('if' or 'unless')
	// +kubebuilder:validation:Enum=if;unless
	// +optional
	ConditionType string `json:"conditionType,omitempty"`
	// Condition is a condition composed of ACLs.
	// +optional
	Condition string `json:"condition,omitempty"`
}

func (*Rule) DeepCopy

func (in *Rule) DeepCopy() *Rule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.

func (*Rule) DeepCopyInto

func (in *Rule) DeepCopyInto(out *Rule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SSL

type SSL struct {
	// 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.
	Enabled bool `json:"enabled"`
	// MinVersion enforces use of the specified version or upper on SSL connections
	// instantiated from this listener.
	// +kubebuilder:validation:Enum=SSLv3;TLSv1.0;TLSv1.1;TLSv1.2;TLSv1.3
	// +optional
	MinVersion string `json:"minVersion,omitempty"`
	// 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.
	// +kubebuilder:validation:Enum=none;optional;required
	// +optional
	Verify string `json:"verify,omitempty"`
	// CACertificate configures the CACertificate used for the Server or Bind client certificate
	// +optional
	CACertificate *SSLCertificate `json:"caCertificate,omitempty"`
	// Certificate configures a PEM based Certificate file containing both the required certificates and any
	// associated private keys.
	// +optional
	Certificate *SSLCertificate `json:"certificate,omitempty"`
	// 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.
	// +optional
	SNI string `json:"sni,omitempty"`
	// Alpn enables the TLS ALPN extension and advertises the specified protocol
	// list as supported on top of ALPN.
	// +optional
	Alpn []string `json:"alpn,omitempty"`
}

func (*SSL) DeepCopy

func (in *SSL) DeepCopy() *SSL

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSL.

func (*SSL) DeepCopyInto

func (in *SSL) DeepCopyInto(out *SSL)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SSLCertificate

type SSLCertificate struct {
	Name      string                    `json:"name"`
	Value     *string                   `json:"value,omitempty"`
	ValueFrom []SSLCertificateValueFrom `json:"valueFrom,omitempty"`
}

func (*SSLCertificate) DeepCopy

func (in *SSLCertificate) DeepCopy() *SSLCertificate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSLCertificate.

func (*SSLCertificate) DeepCopyInto

func (in *SSLCertificate) DeepCopyInto(out *SSLCertificate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SSLCertificate) FilePath

func (s *SSLCertificate) FilePath() string

type SSLCertificateValueFrom

type SSLCertificateValueFrom struct {
	// ConfigMapKeyRef selects a key of a ConfigMap
	// +optional
	ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty"`
	// SecretKeyRef selects a key of a secret in the pod namespace
	// +optional
	SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty"`
}

func (*SSLCertificateValueFrom) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSLCertificateValueFrom.

func (*SSLCertificateValueFrom) DeepCopyInto

func (in *SSLCertificateValueFrom) DeepCopyInto(out *SSLCertificateValueFrom)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Server

type Server struct {
	ServerParams `json:",inline"`
	// Name of the server.
	Name string `json:"name"`
	// Address can be a host name, an IPv4 address, an IPv6 address.
	// +kubebuilder:validation:Pattern=^[^\s]+$
	Address string `json:"address"`
	// Port
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	Port int64 `json:"port"`
}

func (*Server) DeepCopy

func (in *Server) DeepCopy() *Server

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server.

func (*Server) DeepCopyInto

func (in *Server) DeepCopyInto(out *Server)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Server) Model

func (s *Server) Model() (models.Server, error)

type ServerParams

type ServerParams struct {
	// SSL configures OpenSSL
	// +optional
	SSL *SSL `json:"ssl,omitempty"`
	// 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.
	// +kubebuilder:validation:Maximum=256
	// +kubebuilder:validation:Minimum=0
	Weight *int64 `json:"weight,omitempty"`
	// Check configures the health checks of the server.
	// +optional
	Check *Check `json:"check,omitempty"`
	// 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.
	// +optional
	InitAddr *string `json:"initAddr,omitempty"`
	// Resolvers points to an existing resolvers to resolve current server hostname.
	// +optional
	Resolvers *corev1.LocalObjectReference `json:"resolvers,omitempty"`
	// 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.
	// +optional
	SendProxy *bool `json:"sendProxy,omitempty"`
	// SendProxyV2 preparing new update.
	SendProxyV2 *ProxyProtocol `json:"SendProxyV2,omitempty"`
	// 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.
	// +optional
	VerifyHost string `json:"verifyHost,omitempty"`
	// CheckSNI This option allows you to specify the SNI to be used when doing health checks over SSL
	// +optional
	CheckSNI string `json:"checkSNI,omitempty"`
	// Cookie sets the cookie value assigned to the server.
	// +optional
	Cookie bool `json:"cookie,omitempty"`
}

func (*ServerParams) DeepCopy

func (in *ServerParams) DeepCopy() *ServerParams

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerParams.

func (*ServerParams) DeepCopyInto

func (in *ServerParams) DeepCopyInto(out *ServerParams)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerTemplate

type ServerTemplate struct {
	ServerParams `json:",inline"`
	// Prefix for the server names to be built.
	// +kubebuilder:validation:Pattern=^[^\s]+$
	Prefix string `json:"prefix"`
	// NumMin is the min number of servers as server name suffixes this template initializes.
	// +optional
	NumMin *int64 `json:"numMin,omitempty"`
	// Num is the max number of servers as server name suffixes this template initializes.
	Num int64 `json:"num"`
	// FQDN for all the servers this template initializes.
	FQDN string `json:"fqdn"`
	// Port
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	Port int64 `json:"port"`
}

func (*ServerTemplate) DeepCopy

func (in *ServerTemplate) DeepCopy() *ServerTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerTemplate.

func (*ServerTemplate) DeepCopyInto

func (in *ServerTemplate) DeepCopyInto(out *ServerTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerTemplate) Model

func (s *ServerTemplate) Model() (models.ServerTemplate, error)

type StaticHTTPFile

type StaticHTTPFile struct {
	Name      string             `json:"name"`
	Value     *string            `json:"value,omitempty"`
	ValueFrom ErrorFileValueFrom `json:"valueFrom,omitempty"`
}

func (*StaticHTTPFile) DeepCopy

func (in *StaticHTTPFile) DeepCopy() *StaticHTTPFile

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticHTTPFile.

func (*StaticHTTPFile) DeepCopyInto

func (in *StaticHTTPFile) DeepCopyInto(out *StaticHTTPFile)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StaticHTTPFile) FilePath

func (s *StaticHTTPFile) FilePath() string

type Status

type Status struct {
	// Phase is a simple, high-level summary of where the object is in its lifecycle.
	Phase StatusPhase `json:"phase"`
	// ObservedGeneration the generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// Error shows the actual error message if Phase is 'Error'.
	// +optional
	Error string `json:"error,omitempty"`
}

Status defines the observed state of an object

func (*Status) DeepCopy

func (in *Status) DeepCopy() *Status

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status.

func (*Status) DeepCopyInto

func (in *Status) DeepCopyInto(out *Status)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StatusPhase

type StatusPhase string

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

const (
	StatusPhaseActive        StatusPhase = "Active"
	StatusPhaseInternalError StatusPhase = "Error"
)

These are the valid statuses of a listen configuration.

type TCPRequestRule

type TCPRequestRule struct {
	Rule `json:",inline"`
	// Type specifies the type of the tcp-request rule.
	// +kubebuilder:validation:Enum=connection;content;inspect-delay;session
	Type string `json:"type"`
	// Action defines the action to perform if the condition applies.
	// +kubebuilder:validation:Enum=accept;capture;do-resolve;expect-netscaler-cip;expect-proxy;reject;sc-inc-gpc0;sc-inc-gpc1;sc-set-gpt0;send-spoe-group;set-dst-port;set-dst;set-priority;set-src;set-var;silent-drop;track-sc0;track-sc1;track-sc2;unset-var;use-service;lua
	// +optional
	Action *string `json:"action"`
	// Timeout sets timeout for the action
	// +optional
	Timeout *metav1.Duration `json:"timeout"`
}

func (*TCPRequestRule) DeepCopy

func (in *TCPRequestRule) DeepCopy() *TCPRequestRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPRequestRule.

func (*TCPRequestRule) DeepCopyInto

func (in *TCPRequestRule) DeepCopyInto(out *TCPRequestRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TCPRequestRule) Model

func (t *TCPRequestRule) Model() (models.TCPRequestRule, error)

type Timeouts

type Timeouts struct {
	// Resolve time to trigger name resolutions when no other time applied. Default value: 1s
	// +optional
	Resolve *metav1.Duration `json:"resolve,omitempty"`
	// Retry time between two DNS queries, when no valid response have been received. Default value: 1s
	// +optional
	Retry *metav1.Duration `json:"retry,omitempty"`
}

func (*Timeouts) DeepCopy

func (in *Timeouts) DeepCopy() *Timeouts

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timeouts.

func (*Timeouts) DeepCopyInto

func (in *Timeouts) DeepCopyInto(out *Timeouts)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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