dynamic

package
v1.7.35 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultHealthCheckInterval is the default value for the ServerHealthCheck interval.
	DefaultHealthCheckInterval = ptypes.Duration(30 * time.Second)
	// DefaultHealthCheckTimeout is the default value for the ServerHealthCheck timeout.
	DefaultHealthCheckTimeout = ptypes.Duration(5 * time.Second)

	// DefaultPassHostHeader is the default value for the ServersLoadBalancer passHostHeader.
	DefaultPassHostHeader = true

	// DefaultFlushInterval is the default value for the ResponseForwarding flush interval.
	DefaultFlushInterval = ptypes.Duration(100 * time.Millisecond)

	// MirroringDefaultMirrorBody is the Mirroring.MirrorBody option default value.
	MirroringDefaultMirrorBody = true
	// MirroringDefaultMaxBodySize is the Mirroring.MaxBodySize option default value.
	MirroringDefaultMaxBodySize int64 = -1
	// FailoverErrorsDefaultMaxRequestBodyBytes is the Failover.Errors.MaxBodySize option default value.
	FailoverErrorsDefaultMaxRequestBodyBytes int64 = -1
)
View Source
const (
	// ForwardAuthDefaultMaxBodySize is the ForwardAuth.MaxBodySize option default value.
	ForwardAuthDefaultMaxBodySize int64 = -1
	// RetryDefaultMaxRequestBodyBytes is the Retry.MaxRequestBodyBytes option default value.
	RetryDefaultMaxRequestBodyBytes int64 = -1
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AddPrefix

type AddPrefix struct {
	// Prefix is the string to add before the current path in the requested URL.
	// It should include a leading slash (/).
	// +kubebuilder:validation:XValidation:message="must start with a '/'",rule="self.startsWith('/')"
	Prefix string `json:"prefix,omitempty" toml:"prefix,omitempty" yaml:"prefix,omitempty" export:"true"`
}

AddPrefix holds the add prefix middleware configuration. This middleware updates the path of a request before forwarding it. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/addprefix/

func (*AddPrefix) DeepCopy

func (in *AddPrefix) DeepCopy() *AddPrefix

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

func (*AddPrefix) DeepCopyInto

func (in *AddPrefix) DeepCopyInto(out *AddPrefix)

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

type AuthTLSPassCertificateToUpstream

type AuthTLSPassCertificateToUpstream struct {
	ClientAuthType string                `json:"clientAuthType,omitempty" toml:"clientAuthType,omitempty" yaml:"clientAuthType,omitempty" export:"true"`
	CAFiles        []types.FileOrContent `json:"caFiles,omitempty" toml:"caFiles,omitempty" yaml:"caFiles,omitempty" export:"true"`
}

AuthTLSPassCertificateToUpstream holds the pass TLS client cert middleware for ingress-nginx provider.

func (*AuthTLSPassCertificateToUpstream) DeepCopy

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

func (*AuthTLSPassCertificateToUpstream) DeepCopyInto

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

type BalancerStrategy

type BalancerStrategy string
const (
	// BalancerStrategyWRR is the weighted round-robin strategy.
	BalancerStrategyWRR BalancerStrategy = "wrr"
	// BalancerStrategyP2C is the power of two choices strategy.
	BalancerStrategyP2C BalancerStrategy = "p2c"
	// BalancerStrategyHRW is the highest random weight strategy.
	BalancerStrategyHRW BalancerStrategy = "hrw"
	// BalancerStrategyLeastTime is the least-time strategy.
	BalancerStrategyLeastTime BalancerStrategy = "leasttime"
)

type BasicAuth

type BasicAuth struct {
	// Users is an array of authorized users.
	// Each user must be declared using the name:hashed-password format.
	// Tip: Use htpasswd to generate the passwords.
	Users Users `json:"users,omitempty" toml:"users,omitempty" yaml:"users,omitempty" loggable:"false"`
	// UsersFile is the path to an external file that contains the authorized users.
	UsersFile string `json:"usersFile,omitempty" toml:"usersFile,omitempty" yaml:"usersFile,omitempty"`
	// Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme.
	// Default: ingress.
	Realm string `json:"realm,omitempty" toml:"realm,omitempty" yaml:"realm,omitempty"`
	// RemoveHeader sets the removeHeader option to true to remove the authorization header before forwarding the request to your service.
	// Default: false.
	RemoveHeader bool `json:"removeHeader,omitempty" toml:"removeHeader,omitempty" yaml:"removeHeader,omitempty" export:"true"`
	// HeaderField defines a header field to store the authenticated user.
	// More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/basicauth/#headerfield
	HeaderField string `json:"headerField,omitempty" toml:"headerField,omitempty" yaml:"headerField,omitempty" export:"true"`
}

BasicAuth holds the basic auth middleware configuration. This middleware restricts access to your services to known users. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/basicauth/

func (*BasicAuth) DeepCopy

func (in *BasicAuth) DeepCopy() *BasicAuth

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

func (*BasicAuth) DeepCopyInto

func (in *BasicAuth) DeepCopyInto(out *BasicAuth)

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

type Buffering

type Buffering struct {
	// MaxRequestBodyBytes defines the maximum allowed body size for the request (in bytes).
	// If the request exceeds the allowed size, it is not forwarded to the service, and the client gets a 413 (Request Entity Too Large) response.
	// Default: 0 (no maximum).
	MaxRequestBodyBytes int64 `json:"maxRequestBodyBytes,omitempty" toml:"maxRequestBodyBytes,omitempty" yaml:"maxRequestBodyBytes,omitempty" export:"true"`
	// MemRequestBodyBytes defines the threshold (in bytes) from which the request will be buffered on disk instead of in memory.
	// Default: 1048576 (1Mi).
	MemRequestBodyBytes int64 `json:"memRequestBodyBytes,omitempty" toml:"memRequestBodyBytes,omitempty" yaml:"memRequestBodyBytes,omitempty" export:"true"`
	// MaxResponseBodyBytes defines the maximum allowed response size from the service (in bytes).
	// If the response exceeds the allowed size, it is not forwarded to the client. The client gets a 500 (Internal Server Error) response instead.
	// Default: 0 (no maximum).
	MaxResponseBodyBytes int64 `` /* 127-byte string literal not displayed */
	// MemResponseBodyBytes defines the threshold (in bytes) from which the response will be buffered on disk instead of in memory.
	// Default: 1048576 (1Mi).
	MemResponseBodyBytes int64 `` /* 127-byte string literal not displayed */
	// RetryExpression defines the retry conditions.
	// It is a logical combination of functions with operators AND (&&) and OR (||).
	// More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/buffering/#retryexpression
	RetryExpression string `json:"retryExpression,omitempty" toml:"retryExpression,omitempty" yaml:"retryExpression,omitempty" export:"true"`

	// Only configurable via code, not via configuration files.
	DisableRequestBuffer  bool `json:"disableRequestBuffer,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
	DisableResponseBuffer bool `json:"disableResponseBuffer,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
}

Buffering holds the buffering middleware configuration. This middleware retries or limits the size of requests that can be forwarded to backends. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/buffering/#maxrequestbodybytes

func (*Buffering) DeepCopy

func (in *Buffering) DeepCopy() *Buffering

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

func (*Buffering) DeepCopyInto

func (in *Buffering) DeepCopyInto(out *Buffering)

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

type Chain

type Chain struct {
	// Middlewares is the list of middleware names which composes the chain.
	Middlewares []string `json:"middlewares,omitempty" toml:"middlewares,omitempty" yaml:"middlewares,omitempty" export:"true"`
}

Chain holds the chain middleware configuration. This middleware enables to define reusable combinations of other pieces of middleware.

func (*Chain) DeepCopy

func (in *Chain) DeepCopy() *Chain

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

func (*Chain) DeepCopyInto

func (in *Chain) DeepCopyInto(out *Chain)

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

type CircuitBreaker

type CircuitBreaker struct {
	// Expression defines the expression that, once matched, opens the circuit breaker and applies the fallback mechanism instead of calling the services.
	Expression string `json:"expression,omitempty" toml:"expression,omitempty" yaml:"expression,omitempty" export:"true"`
	// CheckPeriod is the interval between successive checks of the circuit breaker condition (when in standby state).
	CheckPeriod ptypes.Duration `json:"checkPeriod,omitempty" toml:"checkPeriod,omitempty" yaml:"checkPeriod,omitempty" export:"true"`
	// FallbackDuration is the duration for which the circuit breaker will wait before trying to recover (from a tripped state).
	FallbackDuration ptypes.Duration `json:"fallbackDuration,omitempty" toml:"fallbackDuration,omitempty" yaml:"fallbackDuration,omitempty" export:"true"`
	// RecoveryDuration is the duration for which the circuit breaker will try to recover (as soon as it is in recovering state).
	RecoveryDuration ptypes.Duration `json:"recoveryDuration,omitempty" toml:"recoveryDuration,omitempty" yaml:"recoveryDuration,omitempty" export:"true"`
	// ResponseCode is the status code that the circuit breaker will return while it is in the open state.
	ResponseCode int `json:"responseCode,omitempty" toml:"responseCode,omitempty" yaml:"responseCode,omitempty" export:"true"`
}

CircuitBreaker holds the circuit breaker middleware configuration. This middleware protects the system from stacking requests to unhealthy services, resulting in cascading failures. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/circuitbreaker/

func (*CircuitBreaker) DeepCopy

func (in *CircuitBreaker) DeepCopy() *CircuitBreaker

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

func (*CircuitBreaker) DeepCopyInto

func (in *CircuitBreaker) DeepCopyInto(out *CircuitBreaker)

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

func (*CircuitBreaker) SetDefaults

func (c *CircuitBreaker) SetDefaults()

SetDefaults sets the default values on a RateLimit.

type ClientTLS

type ClientTLS struct {
	CA                 string `description:"TLS CA" json:"ca,omitempty" toml:"ca,omitempty" yaml:"ca,omitempty"`
	Cert               string `description:"TLS cert" json:"cert,omitempty" toml:"cert,omitempty" yaml:"cert,omitempty"`
	Key                string `description:"TLS key" json:"key,omitempty" toml:"key,omitempty" yaml:"key,omitempty" loggable:"false"`
	InsecureSkipVerify bool   `` /* 160-byte string literal not displayed */
	// Deprecated: TLS client authentication is a server side option (see https://github.com/golang/go/blob/740a490f71d026bb7d2d13cb8fa2d6d6e0572b70/src/crypto/tls/common.go#L634).
	CAOptional *bool `` /* 127-byte string literal not displayed */
}

ClientTLS holds TLS specific configurations as client CA, Cert and Key can be either path or file contents. TODO: remove this struct when CAOptional option will be removed.

func (*ClientTLS) DeepCopy

func (in *ClientTLS) DeepCopy() *ClientTLS

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

func (*ClientTLS) DeepCopyInto

func (in *ClientTLS) DeepCopyInto(out *ClientTLS)

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

type Compress

type Compress struct {
	// ExcludedContentTypes defines the list of content types to compare the Content-Type header of the incoming requests and responses before compressing.
	// `application/grpc` is always excluded.
	ExcludedContentTypes []string `` /* 127-byte string literal not displayed */
	// IncludedContentTypes defines the list of content types to compare the Content-Type header of the responses before compressing.
	IncludedContentTypes []string `` /* 127-byte string literal not displayed */
	// MinResponseBodyBytes defines the minimum amount of bytes a response body must have to be compressed.
	// Default: 1024.
	// +kubebuilder:validation:Minimum=0
	MinResponseBodyBytes int `` /* 127-byte string literal not displayed */
	// Encodings defines the list of supported compression algorithms.
	Encodings []string `json:"encodings,omitempty" toml:"encodings,omitempty" yaml:"encodings,omitempty" export:"true"`
	// DefaultEncoding specifies the default encoding if the `Accept-Encoding` header is not in the request or contains a wildcard (`*`).
	DefaultEncoding string `json:"defaultEncoding,omitempty" toml:"defaultEncoding,omitempty" yaml:"defaultEncoding,omitempty" export:"true"`
}

Compress holds the compress middleware configuration. This middleware compresses responses before sending them to the client, using gzip, brotli, or zstd compression.

func (*Compress) DeepCopy

func (in *Compress) DeepCopy() *Compress

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

func (*Compress) DeepCopyInto

func (in *Compress) DeepCopyInto(out *Compress)

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

func (*Compress) SetDefaults

func (c *Compress) SetDefaults()

type Configuration

type Configuration struct {
	HTTP *HTTPConfiguration `json:"http,omitempty" toml:"http,omitempty" yaml:"http,omitempty" export:"true"`
	TCP  *TCPConfiguration  `json:"tcp,omitempty" toml:"tcp,omitempty" yaml:"tcp,omitempty" export:"true"`
	UDP  *UDPConfiguration  `json:"udp,omitempty" toml:"udp,omitempty" yaml:"udp,omitempty" export:"true"`
	TLS  *TLSConfiguration  `json:"tls,omitempty" toml:"tls,omitempty" yaml:"tls,omitempty" export:"true"`
}

Configuration is the root of the dynamic configuration.

func (*Configuration) DeepCopy

func (in *Configuration) DeepCopy() *Configuration

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

func (*Configuration) DeepCopyInto

func (in *Configuration) DeepCopyInto(out *Configuration)

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

type Configurations

type Configurations map[string]*Configuration

Configurations is for currentConfigurations Map.

func (Configurations) DeepCopy

func (in Configurations) DeepCopy() Configurations

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

func (Configurations) DeepCopyInto

func (in Configurations) DeepCopyInto(out *Configurations)

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

type ContentType

type ContentType struct {
	// AutoDetect specifies whether to let the `Content-Type` header, if it has not been set by the backend,
	// be automatically set to a value derived from the contents of the response.
	//
	// Deprecated: AutoDetect option is deprecated, Content-Type middleware is only meant to be used to enable the content-type detection, please remove any usage of this option.
	AutoDetect *bool `json:"autoDetect,omitempty" toml:"autoDetect,omitempty" yaml:"autoDetect,omitempty" export:"true"`
}

ContentType holds the content-type middleware configuration. This middleware exists to enable the correct behavior until at least the default one can be changed in a future version.

func (*ContentType) DeepCopy

func (in *ContentType) DeepCopy() *ContentType

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

func (*ContentType) DeepCopyInto

func (in *ContentType) DeepCopyInto(out *ContentType)

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

type Cookie struct {
	// Name defines the Cookie name.
	Name string `json:"name,omitempty" toml:"name,omitempty" yaml:"name,omitempty" export:"true"`
	// Secure defines whether the cookie can only be transmitted over an encrypted connection (i.e. HTTPS).
	Secure bool `json:"secure,omitempty" toml:"secure,omitempty" yaml:"secure,omitempty" export:"true"`
	// HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript.
	HTTPOnly bool `json:"httpOnly,omitempty" toml:"httpOnly,omitempty" yaml:"httpOnly,omitempty" export:"true"`
	// SameSite defines the same site policy.
	// More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
	// +kubebuilder:validation:Enum=none;lax;strict
	SameSite string `json:"sameSite,omitempty" toml:"sameSite,omitempty" yaml:"sameSite,omitempty" export:"true"`
	// MaxAge defines the number of seconds until the cookie expires.
	// When set to a negative number, the cookie expires immediately.
	// When set to zero, the cookie never expires.
	MaxAge int `json:"maxAge,omitempty" toml:"maxAge,omitempty" yaml:"maxAge,omitempty" export:"true"`
	// Path defines the path that must exist in the requested URL for the browser to send the Cookie header.
	// When not provided the cookie will be sent on every request to the domain.
	// More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#pathpath-value
	Path *string `json:"path,omitempty" toml:"path,omitempty" yaml:"path,omitempty" export:"true"`
	// Domain defines the host to which the cookie will be sent.
	// More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#domaindomain-value
	Domain string `json:"domain,omitempty" toml:"domain,omitempty" yaml:"domain,omitempty"`

	// Expires defines the number of seconds to add to the current time to calculate the expiration date of the cookie.
	// This option is exposed only for the Ingress NGINX provider.
	Expires int `json:"-" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
}

Cookie holds the sticky configuration based on cookie.

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.

func (*Cookie) SetDefaults

func (c *Cookie) SetDefaults()

SetDefaults set the default values for a Cookie.

type DigestAuth

type DigestAuth struct {
	// Users defines the authorized users.
	// Each user should be declared using the name:realm:encoded-password format.
	Users Users `json:"users,omitempty" toml:"users,omitempty" yaml:"users,omitempty" loggable:"false"`
	// UsersFile is the path to an external file that contains the authorized users for the middleware.
	UsersFile string `json:"usersFile,omitempty" toml:"usersFile,omitempty" yaml:"usersFile,omitempty"`
	// RemoveHeader defines whether to remove the authorization header before forwarding the request to the backend.
	RemoveHeader bool `json:"removeHeader,omitempty" toml:"removeHeader,omitempty" yaml:"removeHeader,omitempty" export:"true"`
	// Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme.
	// Default: ingress.
	Realm string `json:"realm,omitempty" toml:"realm,omitempty" yaml:"realm,omitempty"`
	// HeaderField defines a header field to store the authenticated user.
	// More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/basicauth/#headerfield
	HeaderField string `json:"headerField,omitempty" toml:"headerField,omitempty" yaml:"headerField,omitempty" export:"true"`
}

DigestAuth holds the digest auth middleware configuration. This middleware restricts access to your services to known users. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/digestauth/

func (*DigestAuth) DeepCopy

func (in *DigestAuth) DeepCopy() *DigestAuth

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

func (*DigestAuth) DeepCopyInto

func (in *DigestAuth) DeepCopyInto(out *DigestAuth)

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

type EncodedCharacters

type EncodedCharacters struct {
	// AllowEncodedSlash defines whether requests with encoded slash characters in the path are allowed.
	AllowEncodedSlash bool `json:"allowEncodedSlash,omitempty" toml:"allowEncodedSlash,omitempty" yaml:"allowEncodedSlash,omitempty" export:"true"`
	// AllowEncodedBackSlash defines whether requests with encoded back slash characters in the path are allowed.
	AllowEncodedBackSlash bool `` /* 130-byte string literal not displayed */
	// AllowEncodedNullCharacter defines whether requests with encoded null characters in the path are allowed.
	AllowEncodedNullCharacter bool `` /* 142-byte string literal not displayed */
	// AllowEncodedSemicolon defines whether requests with encoded semicolon characters in the path are allowed.
	AllowEncodedSemicolon bool `` /* 130-byte string literal not displayed */
	// AllowEncodedPercent defines whether requests with encoded percent characters in the path are allowed.
	AllowEncodedPercent bool `json:"allowEncodedPercent,omitempty" toml:"allowEncodedPercent,omitempty" yaml:"allowEncodedPercent,omitempty" export:"true"`
	// AllowEncodedQuestionMark defines whether requests with encoded question mark characters in the path are allowed.
	AllowEncodedQuestionMark bool `` /* 139-byte string literal not displayed */
	// AllowEncodedHash defines whether requests with encoded hash characters in the path are allowed.
	AllowEncodedHash bool `json:"allowEncodedHash,omitempty" toml:"allowEncodedHash,omitempty" yaml:"allowEncodedHash,omitempty" export:"true"`
}

EncodedCharacters configures which encoded characters are allowed in the request path.

func (*EncodedCharacters) DeepCopy

func (in *EncodedCharacters) DeepCopy() *EncodedCharacters

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

func (*EncodedCharacters) DeepCopyInto

func (in *EncodedCharacters) DeepCopyInto(out *EncodedCharacters)

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

type ErrorPage

type ErrorPage struct {
	// Status defines which status or range of statuses should result in an error page.
	// It can be either a status code as a number (500),
	// as multiple comma-separated numbers (500,502),
	// as ranges by separating two codes with a dash (500-599),
	// or a combination of the two (404,418,500-599).
	Status []string `json:"status,omitempty" toml:"status,omitempty" yaml:"status,omitempty" export:"true"`
	// StatusRewrites defines a mapping of status codes that should be returned instead of the original error status codes.
	// For example: "418": 404 or "410-418": 404
	StatusRewrites map[string]int `json:"statusRewrites,omitempty" toml:"statusRewrites,omitempty" yaml:"statusRewrites,omitempty" export:"true"`
	// Service defines the name of the service that will serve the error page.
	Service string `json:"service,omitempty" toml:"service,omitempty" yaml:"service,omitempty" export:"true"`
	// Query defines the URL for the error page (hosted by service).
	// The {status} variable can be used in order to insert the status code in the URL.
	// The {originalStatus} variable can be used in order to insert the upstream status code in the URL.
	// The {url} variable can be used in order to insert the escaped request URL.
	Query string `json:"query,omitempty" toml:"query,omitempty" yaml:"query,omitempty" export:"true"`
}

ErrorPage holds the custom error middleware configuration. This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes.

func (*ErrorPage) DeepCopy

func (in *ErrorPage) DeepCopy() *ErrorPage

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

func (*ErrorPage) DeepCopyInto

func (in *ErrorPage) DeepCopyInto(out *ErrorPage)

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

type Failover

type Failover struct {
	Service     string         `json:"service,omitempty" toml:"service,omitempty" yaml:"service,omitempty" export:"true"`
	Fallback    string         `json:"fallback,omitempty" toml:"fallback,omitempty" yaml:"fallback,omitempty" export:"true"`
	HealthCheck *HealthCheck   `` /* 137-byte string literal not displayed */
	Errors      *FailoverError `json:"errors,omitempty" toml:"errors,omitempty" yaml:"errors,omitempty" export:"true"`
}

Failover holds the Failover configuration.

func (*Failover) DeepCopy

func (in *Failover) DeepCopy() *Failover

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

func (*Failover) DeepCopyInto

func (in *Failover) DeepCopyInto(out *Failover)

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

type FailoverError

type FailoverError struct {
	MaxRequestBodyBytes *int64   `json:"maxRequestBodyBytes,omitempty" toml:"maxRequestBodyBytes,omitempty" yaml:"maxRequestBodyBytes,omitempty" export:"true"`
	Status              []string `json:"status,omitempty" toml:"status,omitempty" yaml:"status,omitempty" export:"true"`
}

FailoverError holds errors configuration.

func (*FailoverError) DeepCopy

func (in *FailoverError) DeepCopy() *FailoverError

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

func (*FailoverError) DeepCopyInto

func (in *FailoverError) DeepCopyInto(out *FailoverError)

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

func (*FailoverError) SetDefaults

func (m *FailoverError) SetDefaults()

SetDefaults Default values for a WRRService.

type ForwardAuth

type ForwardAuth struct {
	// Address defines the authentication server address.
	Address string `json:"address,omitempty" toml:"address,omitempty" yaml:"address,omitempty"`
	// TLS defines the configuration used to secure the connection to the authentication server.
	TLS *ClientTLS `json:"tls,omitempty" toml:"tls,omitempty" yaml:"tls,omitempty" export:"true"`
	// TrustForwardHeader defines whether to trust (ie: forward) all X-Forwarded-* headers.
	TrustForwardHeader bool `json:"trustForwardHeader,omitempty" toml:"trustForwardHeader,omitempty" yaml:"trustForwardHeader,omitempty" export:"true"`
	// AuthResponseHeaders defines the list of headers to copy from the authentication server response and set on forwarded request, replacing any existing conflicting headers.
	AuthResponseHeaders []string `json:"authResponseHeaders,omitempty" toml:"authResponseHeaders,omitempty" yaml:"authResponseHeaders,omitempty" export:"true"`
	// AuthResponseHeadersRegex defines the regex to match headers to copy from the authentication server response and set on forwarded request, after stripping all headers that match the regex.
	// More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/forwardauth/#authresponseheadersregex
	AuthResponseHeadersRegex string `` /* 139-byte string literal not displayed */
	// AuthRequestHeaders defines the list of the headers to copy from the request to the authentication server.
	// If not set or empty then all request headers are passed.
	AuthRequestHeaders []string `json:"authRequestHeaders,omitempty" toml:"authRequestHeaders,omitempty" yaml:"authRequestHeaders,omitempty" export:"true"`
	// MaxResponseBodySize defines the maximum body size in bytes allowed in the response from the authentication server.
	MaxResponseBodySize *int64 `json:"maxResponseBodySize,omitempty" toml:"maxResponseBodySize,omitempty" yaml:"maxResponseBodySize,omitempty" export:"true"`
	// AddAuthCookiesToResponse defines the list of cookies to copy from the authentication server response to the response.
	AddAuthCookiesToResponse []string `` /* 139-byte string literal not displayed */
	// HeaderField defines a header field to store the authenticated user.
	// More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/forwardauth/#headerfield
	HeaderField string `json:"headerField,omitempty" toml:"headerField,omitempty" yaml:"headerField,omitempty" export:"true"`
	// ForwardBody defines whether to send the request body to the authentication server.
	ForwardBody bool `json:"forwardBody,omitempty" toml:"forwardBody,omitempty" yaml:"forwardBody,omitempty" export:"true"`
	// MaxBodySize defines the maximum body size in bytes allowed to be forwarded to the authentication server.
	MaxBodySize *int64 `json:"maxBodySize,omitempty" toml:"maxBodySize,omitempty" yaml:"maxBodySize,omitempty" export:"true"`
	// PreserveLocationHeader defines whether to forward the Location header to the client as is or prefix it with the domain name of the authentication server.
	PreserveLocationHeader bool `` /* 133-byte string literal not displayed */
	// PreserveRequestMethod defines whether to preserve the original request method while forwarding the request to the authentication server.
	PreserveRequestMethod bool `` /* 130-byte string literal not displayed */
	// AuthSigninURL specifies the URL to redirect to when the authentication server returns 401 Unauthorized.
	AuthSigninURL string `json:"authSigninURL,omitempty" toml:"authSigninURL,omitempty" yaml:"authSigninURL,omitempty" export:"true"`
	// Interpolate activates variable interpolation for Address and AuthSigninURL config options.
	// Currently, this is only used by the NGINX provider to support variable substitution.
	Interpolate bool `json:"interpolate,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
}

ForwardAuth holds the forward auth middleware configuration. This middleware delegates the request authentication to a Service. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/forwardauth/

func (*ForwardAuth) DeepCopy

func (in *ForwardAuth) DeepCopy() *ForwardAuth

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

func (*ForwardAuth) DeepCopyInto

func (in *ForwardAuth) DeepCopyInto(out *ForwardAuth)

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

func (*ForwardAuth) SetDefaults

func (f *ForwardAuth) SetDefaults()

type ForwardingTimeouts

type ForwardingTimeouts struct {
	DialTimeout           ptypes.Duration `` /* 228-byte string literal not displayed */
	ResponseHeaderTimeout ptypes.Duration `` /* 293-byte string literal not displayed */
	IdleConnTimeout       ptypes.Duration `` /* 230-byte string literal not displayed */
	ReadIdleTimeout       ptypes.Duration `` /* 291-byte string literal not displayed */
	PingTimeout           ptypes.Duration `` /* 214-byte string literal not displayed */

	// related to NGINX provider
	ReadTimeout  ptypes.Duration `` /* 241-byte string literal not displayed */
	WriteTimeout ptypes.Duration `` /* 244-byte string literal not displayed */
}

ForwardingTimeouts contains timeout configurations for forwarding requests to the backend servers.

func (*ForwardingTimeouts) DeepCopy

func (in *ForwardingTimeouts) DeepCopy() *ForwardingTimeouts

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

func (*ForwardingTimeouts) DeepCopyInto

func (in *ForwardingTimeouts) DeepCopyInto(out *ForwardingTimeouts)

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

func (*ForwardingTimeouts) SetDefaults

func (f *ForwardingTimeouts) SetDefaults()

SetDefaults sets the default values.

type GRPCStatus

type GRPCStatus struct {
	Code codes.Code `json:"code,omitempty" toml:"code,omitempty" yaml:"code,omitempty" export:"true"`
	Msg  string     `json:"msg,omitempty" toml:"msg,omitempty" yaml:"msg,omitempty" export:"true"`
}

func (*GRPCStatus) DeepCopy

func (in *GRPCStatus) DeepCopy() *GRPCStatus

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

func (*GRPCStatus) DeepCopyInto

func (in *GRPCStatus) DeepCopyInto(out *GRPCStatus)

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

type GrpcWeb

type GrpcWeb struct {
	// AllowOrigins is a list of allowable origins.
	// Can also be a wildcard origin "*".
	AllowOrigins []string `json:"allowOrigins,omitempty" toml:"allowOrigins,omitempty" yaml:"allowOrigins,omitempty"`
}

GrpcWeb holds the gRPC web middleware configuration. This middleware converts a gRPC web request to an HTTP/2 gRPC request.

func (*GrpcWeb) DeepCopy

func (in *GrpcWeb) DeepCopy() *GrpcWeb

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

func (*GrpcWeb) DeepCopyInto

func (in *GrpcWeb) DeepCopyInto(out *GrpcWeb)

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

type HRWService

type HRWService struct {
	Name   string `json:"name,omitempty" toml:"name,omitempty" yaml:"name,omitempty" export:"true"`
	Weight *int   `json:"weight,omitempty" toml:"weight,omitempty" yaml:"weight,omitempty" export:"true"`
}

HRWService is a reference to a service load-balanced with highest random weight.

func (*HRWService) DeepCopy

func (in *HRWService) DeepCopy() *HRWService

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

func (*HRWService) DeepCopyInto

func (in *HRWService) DeepCopyInto(out *HRWService)

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

func (*HRWService) SetDefaults

func (w *HRWService) SetDefaults()

SetDefaults Default values for a HRWService.

type HTTPConfiguration

type HTTPConfiguration struct {
	ext.HTTP `yaml:",inline"`

	Routers           map[string]*Router           `json:"routers,omitempty" toml:"routers,omitempty" yaml:"routers,omitempty" export:"true"`
	Services          map[string]*Service          `json:"services,omitempty" toml:"services,omitempty" yaml:"services,omitempty" export:"true"`
	Middlewares       map[string]*Middleware       `json:"middlewares,omitempty" toml:"middlewares,omitempty" yaml:"middlewares,omitempty" export:"true"`
	Models            map[string]*Model            `json:"models,omitempty" toml:"models,omitempty" yaml:"models,omitempty" export:"true"`
	ServersTransports map[string]*ServersTransport `` /* 128-byte string literal not displayed */
}

HTTPConfiguration contains all the HTTP configuration parameters.

func (*HTTPConfiguration) DeepCopy

func (in *HTTPConfiguration) DeepCopy() *HTTPConfiguration

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

func (*HTTPConfiguration) DeepCopyInto

func (in *HTTPConfiguration) DeepCopyInto(out *HTTPConfiguration)

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

type HeaderModifier

type HeaderModifier struct {
	Set    map[string]string `json:"set,omitempty"`
	Add    map[string]string `json:"add,omitempty"`
	Remove []string          `json:"remove,omitempty"`
}

HeaderModifier holds the request/response header modifier configuration.

func (*HeaderModifier) DeepCopy

func (in *HeaderModifier) DeepCopy() *HeaderModifier

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

func (*HeaderModifier) DeepCopyInto

func (in *HeaderModifier) DeepCopyInto(out *HeaderModifier)

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

type Headers

type Headers struct {
	// CustomRequestHeaders defines the header names and values to apply to the request.
	CustomRequestHeaders map[string]string `` /* 127-byte string literal not displayed */
	// CustomResponseHeaders defines the header names and values to apply to the response.
	CustomResponseHeaders map[string]string `` /* 130-byte string literal not displayed */

	// AccessControlAllowCredentials defines whether the request can include user credentials.
	AccessControlAllowCredentials bool `` /* 154-byte string literal not displayed */
	// AccessControlAllowHeaders defines the Access-Control-Request-Headers values sent in preflight response.
	AccessControlAllowHeaders []string `` /* 142-byte string literal not displayed */
	// AccessControlAllowMethods defines the Access-Control-Request-Method values sent in preflight response.
	AccessControlAllowMethods []string `` /* 142-byte string literal not displayed */
	// AccessControlAllowOriginList is a list of allowable origins. Can also be a wildcard origin "*".
	AccessControlAllowOriginList []string `` /* 137-byte string literal not displayed */
	// AccessControlAllowOriginListRegex is a list of allowable origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/).
	AccessControlAllowOriginListRegex []string `` /* 152-byte string literal not displayed */
	// AccessControlExposeHeaders defines the Access-Control-Expose-Headers values sent in preflight response.
	AccessControlExposeHeaders []string `` /* 145-byte string literal not displayed */
	// AccessControlMaxAge defines the time that a preflight request may be cached.
	AccessControlMaxAge int64 `json:"accessControlMaxAge,omitempty" toml:"accessControlMaxAge,omitempty" yaml:"accessControlMaxAge,omitempty" export:"true"`
	// AddVaryHeader defines whether the Vary header is automatically added/updated when the AccessControlAllowOriginList is set.
	AddVaryHeader bool `json:"addVaryHeader,omitempty" toml:"addVaryHeader,omitempty" yaml:"addVaryHeader,omitempty" export:"true"`
	// AllowedHosts defines the fully qualified list of allowed domain names.
	AllowedHosts []string `json:"allowedHosts,omitempty" toml:"allowedHosts,omitempty" yaml:"allowedHosts,omitempty"`
	// HostsProxyHeaders defines the header keys that may hold a proxied hostname value for the request.
	HostsProxyHeaders []string `json:"hostsProxyHeaders,omitempty" toml:"hostsProxyHeaders,omitempty" yaml:"hostsProxyHeaders,omitempty" export:"true"`
	// SSLProxyHeaders defines the header keys with associated values that would indicate a valid HTTPS request.
	// It can be useful when using other proxies (example: "X-Forwarded-Proto": "https").
	SSLProxyHeaders map[string]string `json:"sslProxyHeaders,omitempty" toml:"sslProxyHeaders,omitempty" yaml:"sslProxyHeaders,omitempty"`
	// STSSeconds defines the max-age of the Strict-Transport-Security header.
	// If set to 0, the header is not set.
	// +kubebuilder:validation:Minimum=0
	STSSeconds int64 `json:"stsSeconds,omitempty" toml:"stsSeconds,omitempty" yaml:"stsSeconds,omitempty" export:"true"`
	// STSIncludeSubdomains defines whether the includeSubDomains directive is appended to the Strict-Transport-Security header.
	STSIncludeSubdomains bool `` /* 127-byte string literal not displayed */
	// STSPreload defines whether the preload flag is appended to the Strict-Transport-Security header.
	STSPreload bool `json:"stsPreload,omitempty" toml:"stsPreload,omitempty" yaml:"stsPreload,omitempty" export:"true"`
	// ForceSTSHeader defines whether to add the STS header even when the connection is HTTP.
	ForceSTSHeader bool `json:"forceSTSHeader,omitempty" toml:"forceSTSHeader,omitempty" yaml:"forceSTSHeader,omitempty" export:"true"`
	// FrameDeny defines whether to add the X-Frame-Options header with the DENY value.
	FrameDeny bool `json:"frameDeny,omitempty" toml:"frameDeny,omitempty" yaml:"frameDeny,omitempty" export:"true"`
	// CustomFrameOptionsValue defines the X-Frame-Options header value.
	// This overrides the FrameDeny option.
	CustomFrameOptionsValue string `json:"customFrameOptionsValue,omitempty" toml:"customFrameOptionsValue,omitempty" yaml:"customFrameOptionsValue,omitempty"`
	// ContentTypeNosniff defines whether to add the X-Content-Type-Options header with the nosniff value.
	ContentTypeNosniff bool `json:"contentTypeNosniff,omitempty" toml:"contentTypeNosniff,omitempty" yaml:"contentTypeNosniff,omitempty" export:"true"`
	// BrowserXSSFilter defines whether to add the X-XSS-Protection header with the value 1; mode=block.
	BrowserXSSFilter bool `json:"browserXssFilter,omitempty" toml:"browserXssFilter,omitempty" yaml:"browserXssFilter,omitempty" export:"true"`
	// CustomBrowserXSSValue defines the X-XSS-Protection header value.
	// This overrides the BrowserXssFilter option.
	CustomBrowserXSSValue string `json:"customBrowserXSSValue,omitempty" toml:"customBrowserXSSValue,omitempty" yaml:"customBrowserXSSValue,omitempty"`
	// ContentSecurityPolicy defines the Content-Security-Policy header value.
	ContentSecurityPolicy string `json:"contentSecurityPolicy,omitempty" toml:"contentSecurityPolicy,omitempty" yaml:"contentSecurityPolicy,omitempty"`
	// ContentSecurityPolicyReportOnly defines the Content-Security-Policy-Report-Only header value.
	ContentSecurityPolicyReportOnly string `` /* 146-byte string literal not displayed */
	// PublicKey is the public key that implements HPKP to prevent MITM attacks with forged certificates.
	PublicKey string `json:"publicKey,omitempty" toml:"publicKey,omitempty" yaml:"publicKey,omitempty"`
	// ReferrerPolicy defines the Referrer-Policy header value.
	// This allows sites to control whether browsers forward the Referer header to other sites.
	ReferrerPolicy string `json:"referrerPolicy,omitempty" toml:"referrerPolicy,omitempty" yaml:"referrerPolicy,omitempty" export:"true"`
	// PermissionsPolicy defines the Permissions-Policy header value.
	// This allows sites to control browser features.
	PermissionsPolicy string `json:"permissionsPolicy,omitempty" toml:"permissionsPolicy,omitempty" yaml:"permissionsPolicy,omitempty" export:"true"`
	// IsDevelopment defines whether to mitigate the unwanted effects of the AllowedHosts, SSL, and STS options when developing.
	// Usually testing takes place using HTTP, not HTTPS, and on localhost, not your production domain.
	// If you would like your development environment to mimic production with complete Host blocking, SSL redirects,
	// and STS headers, leave this as false.
	IsDevelopment bool `json:"isDevelopment,omitempty" toml:"isDevelopment,omitempty" yaml:"isDevelopment,omitempty" export:"true"`

	// Deprecated: FeaturePolicy option is deprecated, please use PermissionsPolicy instead.
	FeaturePolicy *string `json:"featurePolicy,omitempty" toml:"featurePolicy,omitempty" yaml:"featurePolicy,omitempty" export:"true"`
	// Deprecated: SSLRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead.
	SSLRedirect *bool `json:"sslRedirect,omitempty" toml:"sslRedirect,omitempty" yaml:"sslRedirect,omitempty" export:"true"`
	// Deprecated: SSLTemporaryRedirect option is deprecated, please use EntryPoint redirection or RedirectScheme instead.
	SSLTemporaryRedirect *bool `` /* 127-byte string literal not displayed */
	// Deprecated: SSLHost option is deprecated, please use RedirectRegex instead.
	SSLHost *string `json:"sslHost,omitempty" toml:"sslHost,omitempty" yaml:"sslHost,omitempty"`
	// Deprecated: SSLForceHost option is deprecated, please use RedirectRegex instead.
	SSLForceHost *bool `json:"sslForceHost,omitempty" toml:"sslForceHost,omitempty" yaml:"sslForceHost,omitempty" export:"true"`
}

Headers holds the headers middleware configuration. This middleware manages the requests and responses headers. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/headers/#customrequestheaders

func (*Headers) DeepCopy

func (in *Headers) DeepCopy() *Headers

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

func (*Headers) DeepCopyInto

func (in *Headers) DeepCopyInto(out *Headers)

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

func (*Headers) HasCorsHeadersDefined

func (h *Headers) HasCorsHeadersDefined() bool

HasCorsHeadersDefined checks to see if any of the cors header elements have been set.

func (*Headers) HasCustomHeadersDefined

func (h *Headers) HasCustomHeadersDefined() bool

HasCustomHeadersDefined checks to see if any of the custom header elements have been set.

func (*Headers) HasSecureHeadersDefined

func (h *Headers) HasSecureHeadersDefined() bool

HasSecureHeadersDefined checks to see if any of the secure header elements have been set.

type HealthCheck

type HealthCheck struct{}

HealthCheck controls healthcheck awareness and propagation at the services level.

func (*HealthCheck) DeepCopy

func (in *HealthCheck) DeepCopy() *HealthCheck

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

func (*HealthCheck) DeepCopyInto

func (in *HealthCheck) DeepCopyInto(out *HealthCheck)

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

type HighestRandomWeight

type HighestRandomWeight struct {
	Services []HRWService `json:"services,omitempty" toml:"services,omitempty" yaml:"services,omitempty" export:"true"`
	// HealthCheck enables automatic self-healthcheck for this service, i.e.
	// whenever one of its children is reported as down, this service becomes aware of it,
	// and takes it into account (i.e. it ignores the down child) when running the
	// load-balancing algorithm. In addition, if the parent of this service also has
	// HealthCheck enabled, this service reports to its parent any status change.
	HealthCheck *HealthCheck `` /* 153-byte string literal not displayed */
}

HighestRandomWeight is a weighted sticky load-balancer of services.

func (*HighestRandomWeight) DeepCopy

func (in *HighestRandomWeight) DeepCopy() *HighestRandomWeight

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

func (*HighestRandomWeight) DeepCopyInto

func (in *HighestRandomWeight) DeepCopyInto(out *HighestRandomWeight)

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

type IPAllowList

type IPAllowList struct {
	// SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation).
	SourceRange []string    `json:"sourceRange,omitempty" toml:"sourceRange,omitempty" yaml:"sourceRange,omitempty"`
	IPStrategy  *IPStrategy `` /* 150-byte string literal not displayed */
	// RejectStatusCode defines the HTTP status code used for refused requests.
	// If not set, the default is 403 (Forbidden).
	RejectStatusCode int `` /* 168-byte string literal not displayed */
}

IPAllowList holds the IP allowlist middleware configuration. This middleware limits allowed requests based on the client IP. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/ipallowlist/

func (*IPAllowList) DeepCopy

func (in *IPAllowList) DeepCopy() *IPAllowList

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

func (*IPAllowList) DeepCopyInto

func (in *IPAllowList) DeepCopyInto(out *IPAllowList)

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

type IPStrategy

type IPStrategy struct {
	// Depth tells Ingress to use the X-Forwarded-For header and take the IP located at the depth position (starting from the right).
	// +kubebuilder:validation:Minimum=0
	Depth int `json:"depth,omitempty" toml:"depth,omitempty" yaml:"depth,omitempty" export:"true"`
	// ExcludedIPs configures Ingress to scan the X-Forwarded-For header and select the first IP not in the list.
	ExcludedIPs []string `json:"excludedIPs,omitempty" toml:"excludedIPs,omitempty" yaml:"excludedIPs,omitempty"`
	// IPv6Subnet configures Ingress to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.
	IPv6Subnet *int `json:"ipv6Subnet,omitempty" toml:"ipv6Subnet,omitempty" yaml:"ipv6Subnet,omitempty"`
}

IPStrategy holds the IP strategy configuration used by Ingress to determine the client IP. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/ipallowlist/#ipstrategy

func (*IPStrategy) DeepCopy

func (in *IPStrategy) DeepCopy() *IPStrategy

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

func (*IPStrategy) DeepCopyInto

func (in *IPStrategy) DeepCopyInto(out *IPStrategy)

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

func (*IPStrategy) Get

func (s *IPStrategy) Get() (ip.Strategy, error)

Get an IP selection strategy. If nil return the RemoteAddr strategy else return a strategy based on the configuration using the X-Forwarded-For Header. Depth override the ExcludedIPs.

type IPWhiteList deprecated

type IPWhiteList struct {
	// SourceRange defines the set of allowed IPs (or ranges of allowed IPs by using CIDR notation). Required.
	SourceRange []string    `json:"sourceRange,omitempty" toml:"sourceRange,omitempty" yaml:"sourceRange,omitempty"`
	IPStrategy  *IPStrategy `` /* 150-byte string literal not displayed */
}

IPWhiteList holds the IP whitelist middleware configuration. This middleware limits allowed requests based on the client IP. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/ipwhitelist/

Deprecated: please use IPAllowList instead.

func (*IPWhiteList) DeepCopy

func (in *IPWhiteList) DeepCopy() *IPWhiteList

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

func (*IPWhiteList) DeepCopyInto

func (in *IPWhiteList) DeepCopyInto(out *IPWhiteList)

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

type InFlightReq

type InFlightReq struct {
	// Amount defines the maximum amount of allowed simultaneous in-flight request.
	// The middleware responds with HTTP 429 Too Many Requests if there are already amount requests in progress (based on the same sourceCriterion strategy).
	// +kubebuilder:validation:Minimum=0
	Amount int64 `json:"amount,omitempty" toml:"amount,omitempty" yaml:"amount,omitempty" export:"true"`
	// SourceCriterion defines what criterion is used to group requests as originating from a common source.
	// If several strategies are defined at the same time, an error will be raised.
	// If none are set, the default is to use the requestHost.
	// More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/inflightreq/#sourcecriterion
	SourceCriterion *SourceCriterion `json:"sourceCriterion,omitempty" toml:"sourceCriterion,omitempty" yaml:"sourceCriterion,omitempty" export:"true"`
}

InFlightReq holds the in-flight request middleware configuration. This middleware limits the number of requests being processed and served concurrently. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/inflightreq/

func (*InFlightReq) DeepCopy

func (in *InFlightReq) DeepCopy() *InFlightReq

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

func (*InFlightReq) DeepCopyInto

func (in *InFlightReq) DeepCopyInto(out *InFlightReq)

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

type Message

type Message struct {
	ProviderName  string
	Configuration *Configuration
}

Message holds configuration information exchanged between parts of ingress.

func (*Message) DeepCopy

func (in *Message) DeepCopy() *Message

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

func (*Message) DeepCopyInto

func (in *Message) DeepCopyInto(out *Message)

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

type Middleware

type Middleware struct {
	AddPrefix        *AddPrefix        `json:"addPrefix,omitempty" toml:"addPrefix,omitempty" yaml:"addPrefix,omitempty" export:"true"`
	StripPrefix      *StripPrefix      `json:"stripPrefix,omitempty" toml:"stripPrefix,omitempty" yaml:"stripPrefix,omitempty" export:"true"`
	StripPrefixRegex *StripPrefixRegex `json:"stripPrefixRegex,omitempty" toml:"stripPrefixRegex,omitempty" yaml:"stripPrefixRegex,omitempty" export:"true"`
	ReplacePath      *ReplacePath      `json:"replacePath,omitempty" toml:"replacePath,omitempty" yaml:"replacePath,omitempty" export:"true"`
	ReplacePathRegex *ReplacePathRegex `json:"replacePathRegex,omitempty" toml:"replacePathRegex,omitempty" yaml:"replacePathRegex,omitempty" export:"true"`
	Chain            *Chain            `json:"chain,omitempty" toml:"chain,omitempty" yaml:"chain,omitempty" export:"true"`
	// Deprecated: please use IPAllowList instead.
	IPWhiteList       *IPWhiteList       `json:"ipWhiteList,omitempty" toml:"ipWhiteList,omitempty" yaml:"ipWhiteList,omitempty" export:"true"`
	IPAllowList       *IPAllowList       `json:"ipAllowList,omitempty" toml:"ipAllowList,omitempty" yaml:"ipAllowList,omitempty" export:"true"`
	Headers           *Headers           `json:"headers,omitempty" toml:"headers,omitempty" yaml:"headers,omitempty" export:"true"`
	EncodedCharacters *EncodedCharacters `json:"encodedCharacters,omitempty" toml:"encodedCharacters,omitempty" yaml:"encodedCharacters,omitempty" export:"true"`
	Errors            *ErrorPage         `json:"errors,omitempty" toml:"errors,omitempty" yaml:"errors,omitempty" export:"true"`
	RateLimit         *RateLimit         `json:"rateLimit,omitempty" toml:"rateLimit,omitempty" yaml:"rateLimit,omitempty" export:"true"`
	RedirectRegex     *RedirectRegex     `json:"redirectRegex,omitempty" toml:"redirectRegex,omitempty" yaml:"redirectRegex,omitempty" export:"true"`
	RedirectScheme    *RedirectScheme    `json:"redirectScheme,omitempty" toml:"redirectScheme,omitempty" yaml:"redirectScheme,omitempty" export:"true"`
	BasicAuth         *BasicAuth         `json:"basicAuth,omitempty" toml:"basicAuth,omitempty" yaml:"basicAuth,omitempty" export:"true"`
	DigestAuth        *DigestAuth        `json:"digestAuth,omitempty" toml:"digestAuth,omitempty" yaml:"digestAuth,omitempty" export:"true"`
	ForwardAuth       *ForwardAuth       `json:"forwardAuth,omitempty" toml:"forwardAuth,omitempty" yaml:"forwardAuth,omitempty" export:"true"`
	InFlightReq       *InFlightReq       `json:"inFlightReq,omitempty" toml:"inFlightReq,omitempty" yaml:"inFlightReq,omitempty" export:"true"`
	Buffering         *Buffering         `json:"buffering,omitempty" toml:"buffering,omitempty" yaml:"buffering,omitempty" export:"true"`
	CircuitBreaker    *CircuitBreaker    `json:"circuitBreaker,omitempty" toml:"circuitBreaker,omitempty" yaml:"circuitBreaker,omitempty" export:"true"`
	Compress          *Compress          `` /* 144-byte string literal not displayed */
	PassTLSClientCert *PassTLSClientCert `json:"passTLSClientCert,omitempty" toml:"passTLSClientCert,omitempty" yaml:"passTLSClientCert,omitempty" export:"true"`
	Retry             *Retry             `json:"retry,omitempty" toml:"retry,omitempty" yaml:"retry,omitempty" export:"true"`
	ContentType       *ContentType       `` /* 153-byte string literal not displayed */
	GrpcWeb           *GrpcWeb           `json:"grpcWeb,omitempty" toml:"grpcWeb,omitempty" yaml:"grpcWeb,omitempty" export:"true"`
	StaticFiles       *StaticFiles       `json:"staticFiles,omitempty" toml:"staticFiles,omitempty" yaml:"staticFiles,omitempty" export:"true"`

	Plugin map[string]PluginConf `json:"plugin,omitempty" toml:"plugin,omitempty" yaml:"plugin,omitempty" export:"true"`

	// Gateway API filter middlewares.
	RequestHeaderModifier  *HeaderModifier  `json:"requestHeaderModifier,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
	ResponseHeaderModifier *HeaderModifier  `json:"responseHeaderModifier,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
	RequestRedirect        *RequestRedirect `json:"requestRedirect,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
	URLRewrite             *URLRewrite      `json:"URLRewrite,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`

	// ingress-nginx middlewares.
	AuthTLSPassCertificateToUpstream *AuthTLSPassCertificateToUpstream `json:"authTLSPassCertificateToUpstream,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
}

Middleware holds the Middleware configuration.

func (*Middleware) DeepCopy

func (in *Middleware) DeepCopy() *Middleware

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

func (*Middleware) DeepCopyInto

func (in *Middleware) DeepCopyInto(out *Middleware)

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

type MirrorService

type MirrorService struct {
	Name    string `json:"name,omitempty" toml:"name,omitempty" yaml:"name,omitempty" export:"true"`
	Percent int    `json:"percent,omitempty" toml:"percent,omitempty" yaml:"percent,omitempty" export:"true"`
}

MirrorService holds the MirrorService configuration.

func (*MirrorService) DeepCopy

func (in *MirrorService) DeepCopy() *MirrorService

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

func (*MirrorService) DeepCopyInto

func (in *MirrorService) DeepCopyInto(out *MirrorService)

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

type Mirroring

type Mirroring struct {
	Service     string          `json:"service,omitempty" toml:"service,omitempty" yaml:"service,omitempty" export:"true"`
	MirrorBody  *bool           `json:"mirrorBody,omitempty" toml:"mirrorBody,omitempty" yaml:"mirrorBody,omitempty" export:"true"`
	MaxBodySize *int64          `json:"maxBodySize,omitempty" toml:"maxBodySize,omitempty" yaml:"maxBodySize,omitempty" export:"true"`
	Mirrors     []MirrorService `json:"mirrors,omitempty" toml:"mirrors,omitempty" yaml:"mirrors,omitempty" export:"true"`
	HealthCheck *HealthCheck    `` /* 153-byte string literal not displayed */
}

Mirroring holds the Mirroring configuration.

func (*Mirroring) DeepCopy

func (in *Mirroring) DeepCopy() *Mirroring

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

func (*Mirroring) DeepCopyInto

func (in *Mirroring) DeepCopyInto(out *Mirroring)

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

func (*Mirroring) SetDefaults

func (m *Mirroring) SetDefaults()

SetDefaults Default values for a WRRService.

type Model

type Model struct {
	Middlewares                 []string                           `json:"middlewares,omitempty" toml:"middlewares,omitempty" yaml:"middlewares,omitempty" export:"true"`
	TLS                         *RouterTLSConfig                   `` /* 129-byte string literal not displayed */
	Observability               RouterObservabilityConfig          `json:"observability,omitempty" toml:"observability,omitempty" yaml:"observability,omitempty" export:"true"`
	DeniedEncodedPathCharacters *RouterDeniedEncodedPathCharacters `json:"-" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
	DefaultRuleSyntax           string                             `json:"-" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
}

Model holds model configuration.

func (*Model) DeepCopy

func (in *Model) DeepCopy() *Model

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

func (*Model) DeepCopyInto

func (in *Model) DeepCopyInto(out *Model)

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

type PassTLSClientCert

type PassTLSClientCert struct {
	// PEM sets the X-Forwarded-Tls-Client-Cert header with the certificate.
	PEM bool `json:"pem,omitempty" toml:"pem,omitempty" yaml:"pem,omitempty" export:"true"`
	// Info selects the specific client certificate details you want to add to the X-Forwarded-Tls-Client-Cert-Info header.
	Info *TLSClientCertificateInfo `json:"info,omitempty" toml:"info,omitempty" yaml:"info,omitempty" export:"true"`
}

PassTLSClientCert holds the pass TLS client cert middleware configuration. This middleware adds the selected data from the passed client TLS certificate to a header. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/passtlsclientcert/

func (*PassTLSClientCert) DeepCopy

func (in *PassTLSClientCert) DeepCopy() *PassTLSClientCert

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

func (*PassTLSClientCert) DeepCopyInto

func (in *PassTLSClientCert) DeepCopyInto(out *PassTLSClientCert)

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

type PassiveServerHealthCheck

type PassiveServerHealthCheck struct {
	// FailureWindow defines the time window during which the failed attempts must occur for the server to be marked as unhealthy. It also defines for how long the server will be considered unhealthy.
	FailureWindow ptypes.Duration `json:"failureWindow,omitempty" toml:"failureWindow,omitempty" yaml:"failureWindow,omitempty" export:"true"`
	// MaxFailedAttempts is the number of consecutive failed attempts allowed within the failure window before marking the server as unhealthy.
	MaxFailedAttempts int `json:"maxFailedAttempts,omitempty" toml:"maxFailedAttempts,omitempty" yaml:"maxFailedAttempts,omitempty" export:"true"`
}

func (*PassiveServerHealthCheck) DeepCopy

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

func (*PassiveServerHealthCheck) DeepCopyInto

func (in *PassiveServerHealthCheck) DeepCopyInto(out *PassiveServerHealthCheck)

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

func (*PassiveServerHealthCheck) SetDefaults

func (p *PassiveServerHealthCheck) SetDefaults()

type PluginConf

type PluginConf map[string]any

PluginConf holds the plugin configuration.

func (*PluginConf) DeepCopy

func (in *PluginConf) DeepCopy() *PluginConf

DeepCopy is a deepcopy function, copying the receiver, creating a new PluginConf.

func (*PluginConf) DeepCopyInto

func (in *PluginConf) DeepCopyInto(out *PluginConf)

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

type ProxyProtocol

type ProxyProtocol struct {
	// Version defines the PROXY Protocol version to use.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=2
	Version int `` /* 145-byte string literal not displayed */
}

ProxyProtocol holds the PROXY Protocol configuration. More info: https://hanzo.ai/docs/ingress/v3.6/routing/services/#proxy-protocol

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.

func (*ProxyProtocol) SetDefaults

func (p *ProxyProtocol) SetDefaults()

SetDefaults Default values for a ProxyProtocol.

type RateLimit

type RateLimit struct {
	// Average is the maximum rate, by default in requests/s, allowed for the given source.
	// It defaults to 0, which means no rate limiting.
	// The rate is actually defined by dividing Average by Period. So for a rate below 1req/s,
	// one needs to define a Period larger than a second.
	Average int64 `json:"average,omitempty" toml:"average,omitempty" yaml:"average,omitempty" export:"true"`

	// Period, in combination with Average, defines the actual maximum rate, such as:
	// r = Average / Period. It defaults to a second.
	Period ptypes.Duration `json:"period,omitempty" toml:"period,omitempty" yaml:"period,omitempty" export:"true"`

	// Burst is the maximum number of requests allowed to arrive in the same arbitrarily small period of time.
	// It defaults to 1.
	Burst int64 `json:"burst,omitempty" toml:"burst,omitempty" yaml:"burst,omitempty" export:"true"`

	// SourceCriterion defines what criterion is used to group requests as originating from a common source.
	// If several strategies are defined at the same time, an error will be raised.
	// If none are set, the default is to use the request's remote address field (as an ipStrategy).
	SourceCriterion *SourceCriterion `json:"sourceCriterion,omitempty" toml:"sourceCriterion,omitempty" yaml:"sourceCriterion,omitempty" export:"true"`

	// Redis stores the configuration for using Redis as a bucket in the rate-limiting algorithm.
	// If not specified, Ingress will default to an in-memory bucket for the algorithm.
	Redis *Redis `json:"redis,omitempty" toml:"redis,omitempty" yaml:"redis,omitempty" export:"true"`
}

RateLimit holds the rate limit configuration. This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is.

func (*RateLimit) DeepCopy

func (in *RateLimit) DeepCopy() *RateLimit

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

func (*RateLimit) DeepCopyInto

func (in *RateLimit) DeepCopyInto(out *RateLimit)

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

func (*RateLimit) SetDefaults

func (r *RateLimit) SetDefaults()

SetDefaults sets the default values on a RateLimit.

type RedirectRegex

type RedirectRegex struct {
	// Regex defines the regex used to match and capture elements from the request URL.
	Regex string `json:"regex,omitempty" toml:"regex,omitempty" yaml:"regex,omitempty"`
	// Replacement defines how to modify the URL to have the new target URL.
	Replacement string `json:"replacement,omitempty" toml:"replacement,omitempty" yaml:"replacement,omitempty"`
	// Permanent defines whether the redirection is permanent (308).
	Permanent bool `json:"permanent,omitempty" toml:"permanent,omitempty" yaml:"permanent,omitempty" export:"true"`

	// StatusCode is for supporting the NGINX annotations related to redirect.
	StatusCode *int `json:"-" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
}

RedirectRegex holds the redirect regex middleware configuration. This middleware redirects a request using regex matching and replacement. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/redirectregex/#regex

func (*RedirectRegex) DeepCopy

func (in *RedirectRegex) DeepCopy() *RedirectRegex

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

func (*RedirectRegex) DeepCopyInto

func (in *RedirectRegex) DeepCopyInto(out *RedirectRegex)

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

type RedirectScheme

type RedirectScheme struct {
	// Scheme defines the scheme of the new URL.
	Scheme string `json:"scheme,omitempty" toml:"scheme,omitempty" yaml:"scheme,omitempty" export:"true"`
	// Port defines the port of the new URL.
	Port string `json:"port,omitempty" toml:"port,omitempty" yaml:"port,omitempty" export:"true"`
	// Permanent defines whether the redirection is permanent.
	// For HTTP GET requests a 301 is returned, otherwise a 308 is returned.
	Permanent bool `json:"permanent,omitempty" toml:"permanent,omitempty" yaml:"permanent,omitempty" export:"true"`
	// ForcePermanentRedirect is an internal field (not exposed in configuration).
	// When set to true, this forces the use of permanent redirects 308, regardless of the request method.
	// Used by the provider ingress-ngin.
	ForcePermanentRedirect bool `json:"-" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
}

RedirectScheme holds the redirect scheme middleware configuration. This middleware redirects requests from a scheme/port to another. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/redirectscheme/

func (*RedirectScheme) DeepCopy

func (in *RedirectScheme) DeepCopy() *RedirectScheme

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

func (*RedirectScheme) DeepCopyInto

func (in *RedirectScheme) DeepCopyInto(out *RedirectScheme)

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

type Redis

type Redis struct {
	// Endpoints contains either a single address or a seed list of host:port addresses.
	// Default value is ["localhost:6379"].
	Endpoints []string `json:"endpoints,omitempty" toml:"endpoints,omitempty" yaml:"endpoints,omitempty"`
	// TLS defines TLS-specific configurations, including the CA, certificate, and key,
	// which can be provided as a file path or file content.
	TLS *types.ClientTLS `json:"tls,omitempty" toml:"tls,omitempty" yaml:"tls,omitempty" export:"true"`
	// Username defines the username to connect to the Redis server.
	Username string `json:"username,omitempty" toml:"username,omitempty" yaml:"username,omitempty" loggable:"false"`
	// Password defines the password to connect to the Redis server.
	Password string `json:"password,omitempty" toml:"password,omitempty" yaml:"password,omitempty" loggable:"false"`
	// DB defines the Redis database that will be selected after connecting to the server.
	DB int `json:"db,omitempty" toml:"db,omitempty" yaml:"db,omitempty"`
	// PoolSize defines the initial number of socket connections.
	// If the pool runs out of available connections, additional ones will be created beyond PoolSize.
	// This can be limited using MaxActiveConns.
	// Default value is 0, meaning 10 connections per every available CPU as reported by runtime.GOMAXPROCS.
	PoolSize int `json:"poolSize,omitempty" toml:"poolSize,omitempty" yaml:"poolSize,omitempty" export:"true"`
	// MinIdleConns defines the minimum number of idle connections.
	// Default value is 0, and idle connections are not closed by default.
	MinIdleConns int `json:"minIdleConns,omitempty" toml:"minIdleConns,omitempty" yaml:"minIdleConns,omitempty" export:"true"`
	// MaxActiveConns defines the maximum number of connections allocated by the pool at a given time.
	// Default value is 0, meaning there is no limit.
	MaxActiveConns int `json:"maxActiveConns,omitempty" toml:"maxActiveConns,omitempty" yaml:"maxActiveConns,omitempty" export:"true"`
	// ReadTimeout defines the timeout for socket read operations.
	// Default value is 3 seconds.
	ReadTimeout *ptypes.Duration `json:"readTimeout,omitempty" toml:"readTimeout,omitempty" yaml:"readTimeout,omitempty" export:"true"`
	// WriteTimeout defines the timeout for socket write operations.
	// Default value is 3 seconds.
	WriteTimeout *ptypes.Duration `json:"writeTimeout,omitempty" toml:"writeTimeout,omitempty" yaml:"writeTimeout,omitempty" export:"true"`
	// DialTimeout sets the timeout for establishing new connections.
	// Default value is 5 seconds.
	DialTimeout *ptypes.Duration `json:"dialTimeout,omitempty" toml:"dialTimeout,omitempty" yaml:"dialTimeout,omitempty" export:"true"`
}

Redis holds the Redis configuration.

func (*Redis) DeepCopy

func (in *Redis) DeepCopy() *Redis

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

func (*Redis) DeepCopyInto

func (in *Redis) DeepCopyInto(out *Redis)

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

func (*Redis) SetDefaults

func (r *Redis) SetDefaults()

SetDefaults sets the default values on a RateLimit.

type ReplacePath

type ReplacePath struct {
	// Path defines the path to use as replacement in the request URL.
	Path string `json:"path,omitempty" toml:"path,omitempty" yaml:"path,omitempty" export:"true"`
}

ReplacePath holds the replace path middleware configuration. This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/replacepath/

func (*ReplacePath) DeepCopy

func (in *ReplacePath) DeepCopy() *ReplacePath

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

func (*ReplacePath) DeepCopyInto

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

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

type ReplacePathRegex

type ReplacePathRegex struct {
	// Regex defines the regular expression used to match and capture the path from the request URL.
	Regex string `json:"regex,omitempty" toml:"regex,omitempty" yaml:"regex,omitempty" export:"true"`
	// Replacement defines the replacement path format, which can include captured variables.
	Replacement string `json:"replacement,omitempty" toml:"replacement,omitempty" yaml:"replacement,omitempty" export:"true"`
}

ReplacePathRegex holds the replace path regex middleware configuration. This middleware replaces the path of a URL using regex matching and replacement. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/replacepathregex/

func (*ReplacePathRegex) DeepCopy

func (in *ReplacePathRegex) DeepCopy() *ReplacePathRegex

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

func (*ReplacePathRegex) DeepCopyInto

func (in *ReplacePathRegex) DeepCopyInto(out *ReplacePathRegex)

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

type RequestRedirect

type RequestRedirect struct {
	Scheme     *string `json:"scheme,omitempty"`
	Hostname   *string `json:"hostname,omitempty"`
	Port       *string `json:"port,omitempty"`
	Path       *string `json:"path,omitempty"`
	PathPrefix *string `json:"pathPrefix,omitempty"`
	StatusCode int     `json:"statusCode,omitempty"`
}

RequestRedirect holds the request redirect middleware configuration.

func (*RequestRedirect) DeepCopy

func (in *RequestRedirect) DeepCopy() *RequestRedirect

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

func (*RequestRedirect) DeepCopyInto

func (in *RequestRedirect) DeepCopyInto(out *RequestRedirect)

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

type ResponseForwarding

type ResponseForwarding struct {
	// FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
	// A negative value means to flush immediately after each write to the client.
	// This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
	// for such responses, writes are flushed to the client immediately.
	// Default: 100ms
	FlushInterval ptypes.Duration `json:"flushInterval,omitempty" toml:"flushInterval,omitempty" yaml:"flushInterval,omitempty" export:"true"`
}

ResponseForwarding holds the response forwarding configuration.

func (*ResponseForwarding) DeepCopy

func (in *ResponseForwarding) DeepCopy() *ResponseForwarding

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

func (*ResponseForwarding) DeepCopyInto

func (in *ResponseForwarding) DeepCopyInto(out *ResponseForwarding)

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

func (*ResponseForwarding) SetDefaults

func (r *ResponseForwarding) SetDefaults()

SetDefaults Default values for a ResponseForwarding.

type Retry

type Retry struct {
	// Attempts defines how many times the request should be retried.
	Attempts int `json:"attempts,omitempty" toml:"attempts,omitempty" yaml:"attempts,omitempty" export:"true"`
	// Timeout defines how much time the middleware is allowed to retry the request.
	Timeout ptypes.Duration `json:"timeout,omitempty" toml:"timeout,omitempty" yaml:"timeout,omitempty" export:"true"`
	// InitialInterval defines the first wait time in the exponential backoff series.
	// The maximum interval is calculated as twice the initialInterval.
	// If unspecified, requests will be retried immediately.
	// The value of initialInterval should be provided in seconds or as a valid duration format,
	// see https://pkg.go.dev/time#ParseDuration.
	InitialInterval ptypes.Duration `json:"initialInterval,omitempty" toml:"initialInterval,omitempty" yaml:"initialInterval,omitempty" export:"true"`
	// MaxRequestBodyBytes defines the maximum size for the request body.
	MaxRequestBodyBytes *int64 `json:"maxRequestBodyBytes,omitempty" toml:"maxRequestBodyBytes,omitempty" yaml:"maxRequestBodyBytes,omitempty" export:"true"`
	// Status defines the range of HTTP status codes to retry on.
	Status []string `json:"status,omitempty" toml:"status,omitempty" yaml:"status,omitempty" export:"true"`
	// DisableRetryOnNetworkError defines whether to disable the retry if an error occurs when transmitting the request to the server.
	DisableRetryOnNetworkError bool `` /* 145-byte string literal not displayed */
	// RetryNonIdempotentMethod activates the retry for non-idempotent methods (POST, LOCK, PATCH)
	RetryNonIdempotentMethod bool `` /* 139-byte string literal not displayed */
}

Retry holds the retry middleware configuration. This middleware reissues requests a given number of times to a backend server if that server does not reply. As soon as the server answers, the middleware stops retrying, regardless of the response status. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/retry/

func (*Retry) DeepCopy

func (in *Retry) DeepCopy() *Retry

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

func (*Retry) DeepCopyInto

func (in *Retry) DeepCopyInto(out *Retry)

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

func (*Retry) SetDefaults

func (r *Retry) SetDefaults()

type Router

type Router struct {
	ext.Router `yaml:",inline"`

	EntryPoints []string `json:"entryPoints,omitempty" toml:"entryPoints,omitempty" yaml:"entryPoints,omitempty" export:"true"`
	Middlewares []string `json:"middlewares,omitempty" toml:"middlewares,omitempty" yaml:"middlewares,omitempty" export:"true"`
	Service     string   `json:"service,omitempty" toml:"service,omitempty" yaml:"service,omitempty" export:"true"`
	Rule        string   `json:"rule,omitempty" toml:"rule,omitempty" yaml:"rule,omitempty"`
	ParentRefs  []string `json:"parentRefs,omitempty" toml:"parentRefs,omitempty" yaml:"parentRefs,omitempty" label:"-" export:"true"`
	// Deprecated: Please do not use this field and rewrite the router rules to use the v3 syntax.
	RuleSyntax                  string                             `json:"ruleSyntax,omitempty" toml:"ruleSyntax,omitempty" yaml:"ruleSyntax,omitempty" export:"true"`
	Priority                    int                                `json:"priority,omitempty" toml:"priority,omitempty,omitzero" yaml:"priority,omitempty" export:"true"`
	TLS                         *RouterTLSConfig                   `` /* 129-byte string literal not displayed */
	Observability               *RouterObservabilityConfig         `json:"observability,omitempty" toml:"observability,omitempty" yaml:"observability,omitempty" export:"true"`
	DefaultRule                 bool                               `json:"-" toml:"-" yaml:"-" label:"-" file:"-"`
	DeniedEncodedPathCharacters *RouterDeniedEncodedPathCharacters `json:"-" toml:"-" yaml:"-" label:"-" file:"-" kv:"-"`
}

Router holds the router configuration.

func (*Router) DeepCopy

func (in *Router) DeepCopy() *Router

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

func (*Router) DeepCopyInto

func (in *Router) DeepCopyInto(out *Router)

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

type RouterDeniedEncodedPathCharacters

type RouterDeniedEncodedPathCharacters struct {
	AllowEncodedSlash         bool `` /* 212-byte string literal not displayed */
	AllowEncodedBackSlash     bool `` /* 229-byte string literal not displayed */
	AllowEncodedNullCharacter bool `` /* 235-byte string literal not displayed */
	AllowEncodedSemicolon     bool `` /* 228-byte string literal not displayed */
	AllowEncodedPercent       bool `` /* 220-byte string literal not displayed */
	AllowEncodedQuestionMark  bool `` /* 241-byte string literal not displayed */
	AllowEncodedHash          bool `` /* 208-byte string literal not displayed */
}

RouterDeniedEncodedPathCharacters configures which encoded characters are allowed in the request path.

func (*RouterDeniedEncodedPathCharacters) DeepCopy

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

func (*RouterDeniedEncodedPathCharacters) DeepCopyInto

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

func (*RouterDeniedEncodedPathCharacters) Map

func (r *RouterDeniedEncodedPathCharacters) Map() map[string]struct{}

Map returns a map of unallowed encoded characters.

type RouterObservabilityConfig

type RouterObservabilityConfig struct {
	// AccessLogs enables access logs for this router.
	AccessLogs *bool `json:"accessLogs,omitempty" toml:"accessLogs,omitempty" yaml:"accessLogs,omitempty" export:"true"`
	// Metrics enables metrics for this router.
	Metrics *bool `json:"metrics,omitempty" toml:"metrics,omitempty" yaml:"metrics,omitempty" export:"true"`
	// Tracing enables tracing for this router.
	Tracing *bool `json:"tracing,omitempty" toml:"tracing,omitempty" yaml:"tracing,omitempty" export:"true"`
	// TraceVerbosity defines the verbosity level of the tracing for this router.
	// +kubebuilder:validation:Enum=minimal;detailed
	// +kubebuilder:default=minimal
	TraceVerbosity otypes.TracingVerbosity `json:"traceVerbosity,omitempty" toml:"traceVerbosity,omitempty" yaml:"traceVerbosity,omitempty" export:"true"`
}

RouterObservabilityConfig holds the observability configuration for a router.

func (*RouterObservabilityConfig) DeepCopy

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

func (*RouterObservabilityConfig) DeepCopyInto

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

func (*RouterObservabilityConfig) SetDefaults

func (r *RouterObservabilityConfig) SetDefaults()

SetDefaults Default values for a RouterObservabilityConfig.

type RouterTCPTLSConfig

type RouterTCPTLSConfig struct {
	Passthrough  bool           `json:"passthrough" toml:"passthrough" yaml:"passthrough" export:"true"`
	Options      string         `json:"options,omitempty" toml:"options,omitempty" yaml:"options,omitempty" export:"true"`
	CertResolver string         `json:"certResolver,omitempty" toml:"certResolver,omitempty" yaml:"certResolver,omitempty" export:"true"`
	Domains      []types.Domain `json:"domains,omitempty" toml:"domains,omitempty" yaml:"domains,omitempty" export:"true"`
}

RouterTCPTLSConfig holds the TLS configuration for a router.

func (*RouterTCPTLSConfig) DeepCopy

func (in *RouterTCPTLSConfig) DeepCopy() *RouterTCPTLSConfig

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

func (*RouterTCPTLSConfig) DeepCopyInto

func (in *RouterTCPTLSConfig) DeepCopyInto(out *RouterTCPTLSConfig)

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

type RouterTLSConfig

type RouterTLSConfig struct {
	Options      string         `json:"options,omitempty" toml:"options,omitempty" yaml:"options,omitempty" export:"true"`
	CertResolver string         `json:"certResolver,omitempty" toml:"certResolver,omitempty" yaml:"certResolver,omitempty" export:"true"`
	Domains      []types.Domain `json:"domains,omitempty" toml:"domains,omitempty" yaml:"domains,omitempty" export:"true"`
}

RouterTLSConfig holds the TLS configuration for a router.

func (*RouterTLSConfig) DeepCopy

func (in *RouterTLSConfig) DeepCopy() *RouterTLSConfig

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

func (*RouterTLSConfig) DeepCopyInto

func (in *RouterTLSConfig) DeepCopyInto(out *RouterTLSConfig)

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

type Server

type Server struct {
	URL          string `json:"url,omitempty" toml:"url,omitempty" yaml:"url,omitempty"`
	Weight       *int   `json:"weight,omitempty" toml:"weight,omitempty" yaml:"weight,omitempty" export:"true"`
	PreservePath bool   `json:"preservePath,omitempty" toml:"preservePath,omitempty" yaml:"preservePath,omitempty" export:"true"`
	Fenced       bool   `json:"fenced,omitempty" toml:"-" yaml:"-" label:"-" file:"-" kv:"-"`
	// Scheme can only be defined with label Providers.
	Scheme string `json:"-" toml:"-" yaml:"-" file:"-" kv:"-"`
	Port   string `json:"-" toml:"-" yaml:"-" file:"-" kv:"-"`
}

Server holds the server configuration.

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.

type ServerHealthCheck

type ServerHealthCheck struct {
	Scheme            string            `json:"scheme,omitempty" toml:"scheme,omitempty" yaml:"scheme,omitempty" export:"true"`
	Mode              string            `json:"mode,omitempty" toml:"mode,omitempty" yaml:"mode,omitempty" export:"true"`
	Path              string            `json:"path,omitempty" toml:"path,omitempty" yaml:"path,omitempty" export:"true"`
	Method            string            `json:"method,omitempty" toml:"method,omitempty" yaml:"method,omitempty" export:"true"`
	Status            int               `json:"status,omitempty" toml:"status,omitempty" yaml:"status,omitempty" export:"true"`
	Port              int               `json:"port,omitempty" toml:"port,omitempty,omitzero" yaml:"port,omitempty" export:"true"`
	Interval          ptypes.Duration   `json:"interval,omitempty" toml:"interval,omitempty" yaml:"interval,omitempty" export:"true"`
	UnhealthyInterval *ptypes.Duration  `json:"unhealthyInterval,omitempty" toml:"unhealthyInterval,omitempty" yaml:"unhealthyInterval,omitempty" export:"true"`
	Timeout           ptypes.Duration   `json:"timeout,omitempty" toml:"timeout,omitempty" yaml:"timeout,omitempty" export:"true"`
	Hostname          string            `json:"hostname,omitempty" toml:"hostname,omitempty" yaml:"hostname,omitempty"`
	FollowRedirects   *bool             `json:"followRedirects,omitempty" toml:"followRedirects,omitempty" yaml:"followRedirects,omitempty" export:"true"`
	Headers           map[string]string `json:"headers,omitempty" toml:"headers,omitempty" yaml:"headers,omitempty" export:"true"`
}

ServerHealthCheck holds the HealthCheck configuration.

func (*ServerHealthCheck) DeepCopy

func (in *ServerHealthCheck) DeepCopy() *ServerHealthCheck

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

func (*ServerHealthCheck) DeepCopyInto

func (in *ServerHealthCheck) DeepCopyInto(out *ServerHealthCheck)

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

func (*ServerHealthCheck) SetDefaults

func (h *ServerHealthCheck) SetDefaults()

SetDefaults Default values for a HealthCheck.

type ServersLoadBalancer

type ServersLoadBalancer struct {
	Sticky   *Sticky          `` /* 138-byte string literal not displayed */
	Servers  []Server         `json:"servers,omitempty" toml:"servers,omitempty" yaml:"servers,omitempty" label-slice-as-struct:"server" export:"true"`
	Strategy BalancerStrategy `json:"strategy,omitempty" toml:"strategy,omitempty" yaml:"strategy,omitempty" export:"true"`
	// HealthCheck enables regular active checks of the responsiveness of the
	// children servers of this load-balancer. To propagate status changes (e.g. all
	// servers of this service are down) upwards, HealthCheck must also be enabled on
	// the parent(s) of this service.
	HealthCheck *ServerHealthCheck `json:"healthCheck,omitempty" toml:"healthCheck,omitempty" yaml:"healthCheck,omitempty" export:"true"`
	// PassiveHealthCheck enables passive health checks for children servers of this load-balancer.
	PassiveHealthCheck *PassiveServerHealthCheck `json:"passiveHealthCheck,omitempty" toml:"passiveHealthCheck,omitempty" yaml:"passiveHealthCheck,omitempty" export:"true"`
	PassHostHeader     *bool                     `json:"passHostHeader" toml:"passHostHeader" yaml:"passHostHeader" export:"true"`
	ResponseForwarding *ResponseForwarding       `json:"responseForwarding,omitempty" toml:"responseForwarding,omitempty" yaml:"responseForwarding,omitempty" export:"true"`
	ServersTransport   string                    `json:"serversTransport,omitempty" toml:"serversTransport,omitempty" yaml:"serversTransport,omitempty" export:"true"`
}

ServersLoadBalancer holds the ServersLoadBalancer configuration.

func (*ServersLoadBalancer) DeepCopy

func (in *ServersLoadBalancer) DeepCopy() *ServersLoadBalancer

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

func (*ServersLoadBalancer) DeepCopyInto

func (in *ServersLoadBalancer) DeepCopyInto(out *ServersLoadBalancer)

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

func (*ServersLoadBalancer) Merge

func (l *ServersLoadBalancer) Merge(other *ServersLoadBalancer) bool

Merge merges the other load balancer into this one. Returns true if merge succeeded, false if configurations conflict.

func (*ServersLoadBalancer) SetDefaults

func (l *ServersLoadBalancer) SetDefaults()

SetDefaults Default values for a ServersLoadBalancer.

type ServersTransport

type ServersTransport struct {
	ServerName          string                  `` /* 148-byte string literal not displayed */
	InsecureSkipVerify  bool                    `` /* 174-byte string literal not displayed */
	RootCAs             []types.FileOrContent   `` /* 160-byte string literal not displayed */
	Certificates        ingresstls.Certificates `` /* 165-byte string literal not displayed */
	CipherSuites        []string                `` /* 183-byte string literal not displayed */
	MinVersion          string                  `` /* 183-byte string literal not displayed */
	MaxVersion          string                  `` /* 183-byte string literal not displayed */
	MaxIdleConnsPerHost int                     `` /* 293-byte string literal not displayed */
	ForwardingTimeouts  *ForwardingTimeouts     `` /* 203-byte string literal not displayed */
	DisableHTTP2        bool                    `` /* 171-byte string literal not displayed */
	PeerCertURI         string                  `` /* 202-byte string literal not displayed */
	Spiffe              *Spiffe                 `` /* 170-byte string literal not displayed */
}

ServersTransport options to configure communication between Ingress and the servers.

func (*ServersTransport) DeepCopy

func (in *ServersTransport) DeepCopy() *ServersTransport

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

func (*ServersTransport) DeepCopyInto

func (in *ServersTransport) DeepCopyInto(out *ServersTransport)

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

type Service

type Service struct {
	Middlewares         []string             `json:"middlewares,omitempty" toml:"middlewares,omitempty" yaml:"middlewares,omitempty" export:"true"`
	LoadBalancer        *ServersLoadBalancer `json:"loadBalancer,omitempty" toml:"loadBalancer,omitempty" yaml:"loadBalancer,omitempty" export:"true"`
	HighestRandomWeight *HighestRandomWeight `` /* 134-byte string literal not displayed */
	Weighted            *WeightedRoundRobin  `json:"weighted,omitempty" toml:"weighted,omitempty" yaml:"weighted,omitempty" label:"-" export:"true"`
	Mirroring           *Mirroring           `json:"mirroring,omitempty" toml:"mirroring,omitempty" yaml:"mirroring,omitempty" label:"-" export:"true"`
	Failover            *Failover            `json:"failover,omitempty" toml:"failover,omitempty" yaml:"failover,omitempty" label:"-" export:"true"`
}

Service holds a service configuration (can only be of one type at the same time).

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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

func (*Service) Merge

func (s *Service) Merge(other *Service) bool

Merge merges another Service into this one. Returns true if the merge succeeds, false if configurations conflict.

type SourceCriterion

type SourceCriterion struct {
	IPStrategy *IPStrategy `json:"ipStrategy,omitempty" toml:"ipStrategy,omitempty" yaml:"ipStrategy,omitempty" export:"true"`
	// RequestHeaderName defines the name of the header used to group incoming requests.
	RequestHeaderName string `json:"requestHeaderName,omitempty" toml:"requestHeaderName,omitempty" yaml:"requestHeaderName,omitempty" export:"true"`
	// RequestHost defines whether to consider the request Host as the source.
	RequestHost bool `json:"requestHost,omitempty" toml:"requestHost,omitempty" yaml:"requestHost,omitempty" export:"true"`
}

SourceCriterion defines what criterion is used to group requests as originating from a common source. If none are set, the default is to use the request's remote address field. All fields are mutually exclusive.

func (*SourceCriterion) DeepCopy

func (in *SourceCriterion) DeepCopy() *SourceCriterion

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

func (*SourceCriterion) DeepCopyInto

func (in *SourceCriterion) DeepCopyInto(out *SourceCriterion)

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

type Spiffe

type Spiffe struct {
	// IDs defines the allowed SPIFFE IDs (takes precedence over the SPIFFE TrustDomain).
	IDs []string `` /* 155-byte string literal not displayed */
	// TrustDomain defines the allowed SPIFFE trust domain.
	TrustDomain string `` /* 141-byte string literal not displayed */
}

Spiffe holds the SPIFFE configuration.

func (*Spiffe) DeepCopy

func (in *Spiffe) DeepCopy() *Spiffe

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

func (*Spiffe) DeepCopyInto

func (in *Spiffe) DeepCopyInto(out *Spiffe)

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

type StaticFiles

type StaticFiles struct {
	// Root directory to serve files from.
	Root string `json:"root,omitempty" toml:"root,omitempty" yaml:"root,omitempty" export:"true"`
	// EnableDirectoryListing enables directory browsing.
	EnableDirectoryListing bool `` /* 133-byte string literal not displayed */
	// IndexFiles is a list of filenames to try when a directory is requested.
	IndexFiles []string `json:"indexFiles,omitempty" toml:"indexFiles,omitempty" yaml:"indexFiles,omitempty" export:"true"`
	// SPAMode redirects all not-found requests to a single page.
	SPAMode bool `json:"spaMode,omitempty" toml:"spaMode,omitempty" yaml:"spaMode,omitempty" export:"true"`
	// SPAIndex is the file to serve in SPA mode.
	SPAIndex string `json:"spaIndex,omitempty" toml:"spaIndex,omitempty" yaml:"spaIndex,omitempty" export:"true"`
	// ErrorPage404 is the path to a custom 404 error page relative to root.
	ErrorPage404 string `json:"errorPage404,omitempty" toml:"errorPage404,omitempty" yaml:"errorPage404,omitempty" export:"true"`
	// CacheControl maps file extensions to Cache-Control header values.
	CacheControl map[string]string `json:"cacheControl,omitempty" toml:"cacheControl,omitempty" yaml:"cacheControl,omitempty" export:"true"`
}

StaticFiles holds the static file server middleware configuration. This middleware serves static files directly from the ingress layer.

func (*StaticFiles) DeepCopy

func (in *StaticFiles) DeepCopy() *StaticFiles

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

func (*StaticFiles) DeepCopyInto

func (in *StaticFiles) DeepCopyInto(out *StaticFiles)

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

type Sticky

type Sticky struct {
	// Cookie defines the sticky cookie configuration.
	Cookie *Cookie `` /* 138-byte string literal not displayed */
}

Sticky holds the sticky configuration.

func (*Sticky) DeepCopy

func (in *Sticky) DeepCopy() *Sticky

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

func (*Sticky) DeepCopyInto

func (in *Sticky) DeepCopyInto(out *Sticky)

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

type StripPrefix

type StripPrefix struct {
	// Prefixes defines the prefixes to strip from the request URL.
	Prefixes []string `json:"prefixes,omitempty" toml:"prefixes,omitempty" yaml:"prefixes,omitempty" export:"true"`

	// Deprecated: ForceSlash option is deprecated, please remove any usage of this option.
	// ForceSlash ensures that the resulting stripped path is not the empty string, by replacing it with / when necessary.
	// Default: true.
	ForceSlash *bool `json:"forceSlash,omitempty" toml:"forceSlash,omitempty" yaml:"forceSlash,omitempty" export:"true"`
}

StripPrefix holds the strip prefix middleware configuration. This middleware removes the specified prefixes from the URL path. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/stripprefix/

func (*StripPrefix) DeepCopy

func (in *StripPrefix) DeepCopy() *StripPrefix

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

func (*StripPrefix) DeepCopyInto

func (in *StripPrefix) DeepCopyInto(out *StripPrefix)

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

type StripPrefixRegex

type StripPrefixRegex struct {
	// Regex defines the regular expression to match the path prefix from the request URL.
	Regex []string `json:"regex,omitempty" toml:"regex,omitempty" yaml:"regex,omitempty" export:"true"`
}

StripPrefixRegex holds the strip prefix regex middleware configuration. This middleware removes the matching prefixes from the URL path. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/http/stripprefixregex/

func (*StripPrefixRegex) DeepCopy

func (in *StripPrefixRegex) DeepCopy() *StripPrefixRegex

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

func (*StripPrefixRegex) DeepCopyInto

func (in *StripPrefixRegex) DeepCopyInto(out *StripPrefixRegex)

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

type TCPConfiguration

type TCPConfiguration struct {
	Routers           map[string]*TCPRouter           `json:"routers,omitempty" toml:"routers,omitempty" yaml:"routers,omitempty" export:"true"`
	Services          map[string]*TCPService          `json:"services,omitempty" toml:"services,omitempty" yaml:"services,omitempty" export:"true"`
	Middlewares       map[string]*TCPMiddleware       `json:"middlewares,omitempty" toml:"middlewares,omitempty" yaml:"middlewares,omitempty" export:"true"`
	Models            map[string]*TCPModel            `json:"-" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
	ServersTransports map[string]*TCPServersTransport `` /* 128-byte string literal not displayed */
}

TCPConfiguration contains all the TCP configuration parameters.

func (*TCPConfiguration) DeepCopy

func (in *TCPConfiguration) DeepCopy() *TCPConfiguration

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

func (*TCPConfiguration) DeepCopyInto

func (in *TCPConfiguration) DeepCopyInto(out *TCPConfiguration)

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

type TCPIPAllowList

type TCPIPAllowList struct {
	// SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation).
	SourceRange []string `json:"sourceRange,omitempty" toml:"sourceRange,omitempty" yaml:"sourceRange,omitempty"`
}

TCPIPAllowList holds the TCP IPAllowList middleware configuration. This middleware limits allowed requests based on the client IP. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/tcp/ipallowlist/

func (*TCPIPAllowList) DeepCopy

func (in *TCPIPAllowList) DeepCopy() *TCPIPAllowList

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

func (*TCPIPAllowList) DeepCopyInto

func (in *TCPIPAllowList) DeepCopyInto(out *TCPIPAllowList)

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

type TCPIPWhiteList deprecated

type TCPIPWhiteList struct {
	// SourceRange defines the allowed IPs (or ranges of allowed IPs by using CIDR notation).
	SourceRange []string `json:"sourceRange,omitempty" toml:"sourceRange,omitempty" yaml:"sourceRange,omitempty"`
}

TCPIPWhiteList holds the TCP IPWhiteList middleware configuration.

Deprecated: please use IPAllowList instead.

func (*TCPIPWhiteList) DeepCopy

func (in *TCPIPWhiteList) DeepCopy() *TCPIPWhiteList

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

func (*TCPIPWhiteList) DeepCopyInto

func (in *TCPIPWhiteList) DeepCopyInto(out *TCPIPWhiteList)

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

type TCPInFlightConn

type TCPInFlightConn struct {
	// Amount defines the maximum amount of allowed simultaneous connections.
	// The middleware closes the connection if there are already amount connections opened.
	// +kubebuilder:validation:Minimum=0
	Amount int64 `json:"amount,omitempty" toml:"amount,omitempty" yaml:"amount,omitempty" export:"true"`
}

TCPInFlightConn holds the TCP InFlightConn middleware configuration. This middleware prevents services from being overwhelmed with high load, by limiting the number of allowed simultaneous connections for one IP. More info: https://hanzo.ai/docs/ingress/v3.6/middlewares/tcp/inflightconn/

func (*TCPInFlightConn) DeepCopy

func (in *TCPInFlightConn) DeepCopy() *TCPInFlightConn

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

func (*TCPInFlightConn) DeepCopyInto

func (in *TCPInFlightConn) DeepCopyInto(out *TCPInFlightConn)

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

type TCPMiddleware

type TCPMiddleware struct {
	InFlightConn *TCPInFlightConn `json:"inFlightConn,omitempty" toml:"inFlightConn,omitempty" yaml:"inFlightConn,omitempty" export:"true"`
	// Deprecated: please use IPAllowList instead.
	IPWhiteList *TCPIPWhiteList `json:"ipWhiteList,omitempty" toml:"ipWhiteList,omitempty" yaml:"ipWhiteList,omitempty" export:"true"`
	IPAllowList *TCPIPAllowList `json:"ipAllowList,omitempty" toml:"ipAllowList,omitempty" yaml:"ipAllowList,omitempty" export:"true"`
}

TCPMiddleware holds the TCPMiddleware configuration.

func (*TCPMiddleware) DeepCopy

func (in *TCPMiddleware) DeepCopy() *TCPMiddleware

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

func (*TCPMiddleware) DeepCopyInto

func (in *TCPMiddleware) DeepCopyInto(out *TCPMiddleware)

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

type TCPModel

type TCPModel struct {
	DefaultRuleSyntax string `json:"-" toml:"-" yaml:"-" label:"-" file:"-" kv:"-" export:"true"`
}

TCPModel is a set of default router's values.

func (*TCPModel) DeepCopy

func (in *TCPModel) DeepCopy() *TCPModel

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

func (*TCPModel) DeepCopyInto

func (in *TCPModel) DeepCopyInto(out *TCPModel)

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

type TCPRouter

type TCPRouter struct {
	EntryPoints []string `json:"entryPoints,omitempty" toml:"entryPoints,omitempty" yaml:"entryPoints,omitempty" export:"true"`
	Middlewares []string `json:"middlewares,omitempty" toml:"middlewares,omitempty" yaml:"middlewares,omitempty" export:"true"`
	Service     string   `json:"service,omitempty" toml:"service,omitempty" yaml:"service,omitempty" export:"true"`
	Rule        string   `json:"rule,omitempty" toml:"rule,omitempty" yaml:"rule,omitempty"`
	// Deprecated: Please do not use this field and rewrite the router rules to use the v3 syntax.
	RuleSyntax string              `json:"ruleSyntax,omitempty" toml:"ruleSyntax,omitempty" yaml:"ruleSyntax,omitempty" export:"true"`
	Priority   int                 `json:"priority,omitempty" toml:"priority,omitempty,omitzero" yaml:"priority,omitempty" export:"true"`
	TLS        *RouterTCPTLSConfig `` /* 129-byte string literal not displayed */
}

TCPRouter holds the router configuration.

func (*TCPRouter) DeepCopy

func (in *TCPRouter) DeepCopy() *TCPRouter

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

func (*TCPRouter) DeepCopyInto

func (in *TCPRouter) DeepCopyInto(out *TCPRouter)

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

type TCPServer

type TCPServer struct {
	Address string `json:"address,omitempty" toml:"address,omitempty" yaml:"address,omitempty" label:"-"`
	Port    string `json:"-" toml:"-" yaml:"-"`
	TLS     bool   `json:"tls,omitempty" toml:"tls,omitempty" yaml:"tls,omitempty"`
}

TCPServer holds a TCP Server configuration.

func (*TCPServer) DeepCopy

func (in *TCPServer) DeepCopy() *TCPServer

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

func (*TCPServer) DeepCopyInto

func (in *TCPServer) DeepCopyInto(out *TCPServer)

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

type TCPServerHealthCheck

type TCPServerHealthCheck struct {
	Port              int              `json:"port,omitempty" toml:"port,omitempty,omitzero" yaml:"port,omitempty" export:"true"`
	Send              string           `json:"send,omitempty" toml:"send,omitempty" yaml:"send,omitempty" export:"true"`
	Expect            string           `json:"expect,omitempty" toml:"expect,omitempty" yaml:"expect,omitempty" export:"true"`
	Interval          ptypes.Duration  `json:"interval,omitempty" toml:"interval,omitempty" yaml:"interval,omitempty" export:"true"`
	UnhealthyInterval *ptypes.Duration `json:"unhealthyInterval,omitempty" toml:"unhealthyInterval,omitempty" yaml:"unhealthyInterval,omitempty" export:"true"`
	Timeout           ptypes.Duration  `json:"timeout,omitempty" toml:"timeout,omitempty" yaml:"timeout,omitempty" export:"true"`
}

TCPServerHealthCheck holds the HealthCheck configuration.

func (*TCPServerHealthCheck) DeepCopy

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

func (*TCPServerHealthCheck) DeepCopyInto

func (in *TCPServerHealthCheck) DeepCopyInto(out *TCPServerHealthCheck)

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

func (*TCPServerHealthCheck) SetDefaults

func (t *TCPServerHealthCheck) SetDefaults()

SetDefaults sets the default values for a TCPServerHealthCheck.

type TCPServersLoadBalancer

type TCPServersLoadBalancer struct {
	Servers          []TCPServer `json:"servers,omitempty" toml:"servers,omitempty" yaml:"servers,omitempty" label-slice-as-struct:"server" export:"true"`
	ServersTransport string      `json:"serversTransport,omitempty" toml:"serversTransport,omitempty" yaml:"serversTransport,omitempty" export:"true"`
	// ProxyProtocol holds the PROXY Protocol configuration.
	//
	// Deprecated: use ServersTransport to configure ProxyProtocol instead.
	ProxyProtocol *ProxyProtocol `` /* 159-byte string literal not displayed */
	// TerminationDelay, corresponds to the deadline that the proxy sets, after one
	// of its connected peers indicates it has closed the writing capability of its
	// connection, to close the reading capability as well, hence fully terminating the
	// connection. It is a duration in milliseconds, defaulting to 100. A negative value
	// means an infinite deadline (i.e. the reading capability is never closed).
	//
	// Deprecated: use ServersTransport to configure the TerminationDelay instead.
	TerminationDelay *int                  `json:"terminationDelay,omitempty" toml:"terminationDelay,omitempty" yaml:"terminationDelay,omitempty" export:"true"`
	HealthCheck      *TCPServerHealthCheck `` /* 153-byte string literal not displayed */
}

TCPServersLoadBalancer holds the LoadBalancerService configuration.

func (*TCPServersLoadBalancer) DeepCopy

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

func (*TCPServersLoadBalancer) DeepCopyInto

func (in *TCPServersLoadBalancer) DeepCopyInto(out *TCPServersLoadBalancer)

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

func (*TCPServersLoadBalancer) Merge

Merge merges the other load balancer into this one. Returns true if the merge succeeds, false if configurations conflict.

type TCPServersTransport

type TCPServersTransport struct {
	DialKeepAlive ptypes.Duration `` /* 467-byte string literal not displayed */
	DialTimeout   ptypes.Duration `` /* 236-byte string literal not displayed */
	// ProxyProtocol holds the PROXY Protocol configuration.
	ProxyProtocol *ProxyProtocol `` /* 215-byte string literal not displayed */
	// TerminationDelay, corresponds to the deadline that the proxy sets, after one
	// of its connected peers indicates it has closed the writing capability of its
	// connection, to close the reading capability as well, hence fully terminating the
	// connection. It is a duration in milliseconds, defaulting to 100. A negative value
	// means an infinite deadline (i.e. the reading capability is never closed).
	TerminationDelay ptypes.Duration  `` /* 256-byte string literal not displayed */
	TLS              *TLSClientConfig `` /* 174-byte string literal not displayed */
}

TCPServersTransport options to configure communication between Ingress and the servers.

func (*TCPServersTransport) DeepCopy

func (in *TCPServersTransport) DeepCopy() *TCPServersTransport

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

func (*TCPServersTransport) DeepCopyInto

func (in *TCPServersTransport) DeepCopyInto(out *TCPServersTransport)

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

func (*TCPServersTransport) SetDefaults

func (t *TCPServersTransport) SetDefaults()

SetDefaults sets the default values for a TCPServersTransport.

type TCPService

type TCPService struct {
	LoadBalancer *TCPServersLoadBalancer `json:"loadBalancer,omitempty" toml:"loadBalancer,omitempty" yaml:"loadBalancer,omitempty" export:"true"`
	Weighted     *TCPWeightedRoundRobin  `json:"weighted,omitempty" toml:"weighted,omitempty" yaml:"weighted,omitempty" label:"-" export:"true"`
}

TCPService holds a tcp service configuration (can only be of one type at the same time).

func (*TCPService) DeepCopy

func (in *TCPService) DeepCopy() *TCPService

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

func (*TCPService) DeepCopyInto

func (in *TCPService) DeepCopyInto(out *TCPService)

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

func (*TCPService) Merge

func (s *TCPService) Merge(other *TCPService) bool

Merge merges another TCPService into this one. Returns true if the merge succeeds, false if configurations conflict.

type TCPWRRService

type TCPWRRService struct {
	Name   string `json:"name,omitempty" toml:"name,omitempty" yaml:"name,omitempty" export:"true"`
	Weight *int   `json:"weight,omitempty" toml:"weight,omitempty" yaml:"weight,omitempty" export:"true"`
}

TCPWRRService is a reference to a tcp service load-balanced with weighted round robin.

func (*TCPWRRService) DeepCopy

func (in *TCPWRRService) DeepCopy() *TCPWRRService

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

func (*TCPWRRService) DeepCopyInto

func (in *TCPWRRService) DeepCopyInto(out *TCPWRRService)

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

func (*TCPWRRService) SetDefaults

func (w *TCPWRRService) SetDefaults()

SetDefaults Default values for a TCPWRRService.

type TCPWeightedRoundRobin

type TCPWeightedRoundRobin struct {
	Services    []TCPWRRService `json:"services,omitempty" toml:"services,omitempty" yaml:"services,omitempty" export:"true"`
	HealthCheck *HealthCheck    `` /* 153-byte string literal not displayed */
}

TCPWeightedRoundRobin is a weighted round robin tcp load-balancer of services.

func (*TCPWeightedRoundRobin) DeepCopy

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

func (*TCPWeightedRoundRobin) DeepCopyInto

func (in *TCPWeightedRoundRobin) DeepCopyInto(out *TCPWeightedRoundRobin)

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

type TLSClientCertificateInfo

type TLSClientCertificateInfo struct {
	// NotAfter defines whether to add the Not After information from the Validity part.
	NotAfter bool `json:"notAfter,omitempty" toml:"notAfter,omitempty" yaml:"notAfter,omitempty" export:"true"`
	// NotBefore defines whether to add the Not Before information from the Validity part.
	NotBefore bool `json:"notBefore,omitempty" toml:"notBefore,omitempty" yaml:"notBefore,omitempty" export:"true"`
	// Sans defines whether to add the Subject Alternative Name information from the Subject Alternative Name part.
	Sans bool `json:"sans,omitempty" toml:"sans,omitempty" yaml:"sans,omitempty" export:"true"`
	// SerialNumber defines whether to add the client serialNumber information.
	SerialNumber bool `json:"serialNumber,omitempty" toml:"serialNumber,omitempty" yaml:"serialNumber,omitempty" export:"true"`
	// Subject defines the client certificate subject details to add to the X-Forwarded-Tls-Client-Cert-Info header.
	Subject *TLSClientCertificateSubjectDNInfo `json:"subject,omitempty" toml:"subject,omitempty" yaml:"subject,omitempty" export:"true"`
	// Issuer defines the client certificate issuer details to add to the X-Forwarded-Tls-Client-Cert-Info header.
	Issuer *TLSClientCertificateIssuerDNInfo `json:"issuer,omitempty" toml:"issuer,omitempty" yaml:"issuer,omitempty" export:"true"`
}

TLSClientCertificateInfo holds the client TLS certificate info configuration.

func (*TLSClientCertificateInfo) DeepCopy

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

func (*TLSClientCertificateInfo) DeepCopyInto

func (in *TLSClientCertificateInfo) DeepCopyInto(out *TLSClientCertificateInfo)

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

type TLSClientCertificateIssuerDNInfo

type TLSClientCertificateIssuerDNInfo struct {
	// Country defines whether to add the country information into the issuer.
	Country bool `json:"country,omitempty" toml:"country,omitempty" yaml:"country,omitempty" export:"true"`
	// Province defines whether to add the province information into the issuer.
	Province bool `json:"province,omitempty" toml:"province,omitempty" yaml:"province,omitempty" export:"true"`
	// Locality defines whether to add the locality information into the issuer.
	Locality bool `json:"locality,omitempty" toml:"locality,omitempty" yaml:"locality,omitempty" export:"true"`
	// Organization defines whether to add the organization information into the issuer.
	Organization bool `json:"organization,omitempty" toml:"organization,omitempty" yaml:"organization,omitempty" export:"true"`
	// CommonName defines whether to add the organizationalUnit information into the issuer.
	CommonName bool `json:"commonName,omitempty" toml:"commonName,omitempty" yaml:"commonName,omitempty" export:"true"`
	// SerialNumber defines whether to add the serialNumber information into the issuer.
	SerialNumber bool `json:"serialNumber,omitempty" toml:"serialNumber,omitempty" yaml:"serialNumber,omitempty" export:"true"`
	// DomainComponent defines whether to add the domainComponent information into the issuer.
	DomainComponent bool `json:"domainComponent,omitempty" toml:"domainComponent,omitempty" yaml:"domainComponent,omitempty" export:"true"`
}

TLSClientCertificateIssuerDNInfo holds the client TLS certificate distinguished name info configuration. cf https://tools.ietf.org/html/rfc3739

func (*TLSClientCertificateIssuerDNInfo) DeepCopy

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

func (*TLSClientCertificateIssuerDNInfo) DeepCopyInto

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

type TLSClientCertificateSubjectDNInfo

type TLSClientCertificateSubjectDNInfo struct {
	// Country defines whether to add the country information into the subject.
	Country bool `json:"country,omitempty" toml:"country,omitempty" yaml:"country,omitempty" export:"true"`
	// Province defines whether to add the province information into the subject.
	Province bool `json:"province,omitempty" toml:"province,omitempty" yaml:"province,omitempty" export:"true"`
	// Locality defines whether to add the locality information into the subject.
	Locality bool `json:"locality,omitempty" toml:"locality,omitempty" yaml:"locality,omitempty" export:"true"`
	// Organization defines whether to add the organization information into the subject.
	Organization bool `json:"organization,omitempty" toml:"organization,omitempty" yaml:"organization,omitempty" export:"true"`
	// OrganizationalUnit defines whether to add the organizationalUnit information into the subject.
	OrganizationalUnit bool `json:"organizationalUnit,omitempty" toml:"organizationalUnit,omitempty" yaml:"organizationalUnit,omitempty" export:"true"`
	// CommonName defines whether to add the organizationalUnit information into the subject.
	CommonName bool `json:"commonName,omitempty" toml:"commonName,omitempty" yaml:"commonName,omitempty" export:"true"`
	// SerialNumber defines whether to add the serialNumber information into the subject.
	SerialNumber bool `json:"serialNumber,omitempty" toml:"serialNumber,omitempty" yaml:"serialNumber,omitempty" export:"true"`
	// DomainComponent defines whether to add the domainComponent information into the subject.
	DomainComponent bool `json:"domainComponent,omitempty" toml:"domainComponent,omitempty" yaml:"domainComponent,omitempty" export:"true"`
}

TLSClientCertificateSubjectDNInfo holds the client TLS certificate distinguished name info configuration. cf https://tools.ietf.org/html/rfc3739

func (*TLSClientCertificateSubjectDNInfo) DeepCopy

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

func (*TLSClientCertificateSubjectDNInfo) DeepCopyInto

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

type TLSClientConfig

type TLSClientConfig struct {
	ServerName         string                  `` /* 148-byte string literal not displayed */
	InsecureSkipVerify bool                    `` /* 174-byte string literal not displayed */
	RootCAs            []types.FileOrContent   `` /* 160-byte string literal not displayed */
	Certificates       ingresstls.Certificates `` /* 165-byte string literal not displayed */
	PeerCertURI        string                  `` /* 202-byte string literal not displayed */
	Spiffe             *Spiffe                 `` /* 174-byte string literal not displayed */
}

TLSClientConfig options to configure TLS communication between Ingress and the servers.

func (*TLSClientConfig) DeepCopy

func (in *TLSClientConfig) DeepCopy() *TLSClientConfig

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

func (*TLSClientConfig) DeepCopyInto

func (in *TLSClientConfig) DeepCopyInto(out *TLSClientConfig)

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

type TLSConfiguration

type TLSConfiguration struct {
	Certificates []*tls.CertAndStores   `json:"certificates,omitempty"  toml:"certificates,omitempty" yaml:"certificates,omitempty" label:"-" export:"true"`
	Options      map[string]tls.Options `json:"options,omitempty" toml:"options,omitempty" yaml:"options,omitempty" label:"-" export:"true"`
	Stores       map[string]tls.Store   `json:"stores,omitempty" toml:"stores,omitempty" yaml:"stores,omitempty" export:"true"`
}

TLSConfiguration contains all the configuration parameters of a TLS connection.

func (*TLSConfiguration) DeepCopy

func (in *TLSConfiguration) DeepCopy() *TLSConfiguration

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

func (*TLSConfiguration) DeepCopyInto

func (in *TLSConfiguration) DeepCopyInto(out *TLSConfiguration)

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

type UDPConfiguration

type UDPConfiguration struct {
	Routers  map[string]*UDPRouter  `json:"routers,omitempty" toml:"routers,omitempty" yaml:"routers,omitempty" export:"true"`
	Services map[string]*UDPService `json:"services,omitempty" toml:"services,omitempty" yaml:"services,omitempty" export:"true"`
}

UDPConfiguration contains all the UDP configuration parameters.

func (*UDPConfiguration) DeepCopy

func (in *UDPConfiguration) DeepCopy() *UDPConfiguration

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

func (*UDPConfiguration) DeepCopyInto

func (in *UDPConfiguration) DeepCopyInto(out *UDPConfiguration)

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

type UDPRouter

type UDPRouter struct {
	EntryPoints []string `json:"entryPoints,omitempty" toml:"entryPoints,omitempty" yaml:"entryPoints,omitempty" export:"true"`
	Service     string   `json:"service,omitempty" toml:"service,omitempty" yaml:"service,omitempty" export:"true"`
}

UDPRouter defines the configuration for an UDP router.

func (*UDPRouter) DeepCopy

func (in *UDPRouter) DeepCopy() *UDPRouter

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

func (*UDPRouter) DeepCopyInto

func (in *UDPRouter) DeepCopyInto(out *UDPRouter)

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

type UDPServer

type UDPServer struct {
	Address string `json:"address,omitempty" toml:"address,omitempty" yaml:"address,omitempty" label:"-"`
	Port    string `json:"-" toml:"-" yaml:"-" file:"-"`
}

UDPServer defines a UDP server configuration.

func (*UDPServer) DeepCopy

func (in *UDPServer) DeepCopy() *UDPServer

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

func (*UDPServer) DeepCopyInto

func (in *UDPServer) DeepCopyInto(out *UDPServer)

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

type UDPServersLoadBalancer

type UDPServersLoadBalancer struct {
	Servers []UDPServer `json:"servers,omitempty" toml:"servers,omitempty" yaml:"servers,omitempty" label-slice-as-struct:"server" export:"true"`
}

UDPServersLoadBalancer defines the configuration for a load-balancer of UDP servers.

func (*UDPServersLoadBalancer) DeepCopy

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

func (*UDPServersLoadBalancer) DeepCopyInto

func (in *UDPServersLoadBalancer) DeepCopyInto(out *UDPServersLoadBalancer)

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

func (*UDPServersLoadBalancer) Merge

Merge merges the other load balancer into this one. Returns true if merge succeeded, false if configurations conflict.

type UDPService

type UDPService struct {
	LoadBalancer *UDPServersLoadBalancer `json:"loadBalancer,omitempty" toml:"loadBalancer,omitempty" yaml:"loadBalancer,omitempty" export:"true"`
	Weighted     *UDPWeightedRoundRobin  `json:"weighted,omitempty" toml:"weighted,omitempty" yaml:"weighted,omitempty" label:"-" export:"true"`
}

UDPService defines the configuration for a UDP service. All fields are mutually exclusive.

func (*UDPService) DeepCopy

func (in *UDPService) DeepCopy() *UDPService

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

func (*UDPService) DeepCopyInto

func (in *UDPService) DeepCopyInto(out *UDPService)

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

func (*UDPService) Merge

func (s *UDPService) Merge(other *UDPService) bool

Merge merges another UDPService into this one. Returns true if the merge succeeds, false if configurations conflict.

type UDPWRRService

type UDPWRRService struct {
	Name   string `json:"name,omitempty" toml:"name,omitempty" yaml:"name,omitempty" export:"true"`
	Weight *int   `json:"weight,omitempty" toml:"weight,omitempty" yaml:"weight,omitempty" export:"true"`
}

UDPWRRService is a reference to a UDP service load-balanced with weighted round robin.

func (*UDPWRRService) DeepCopy

func (in *UDPWRRService) DeepCopy() *UDPWRRService

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

func (*UDPWRRService) DeepCopyInto

func (in *UDPWRRService) DeepCopyInto(out *UDPWRRService)

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

func (*UDPWRRService) SetDefaults

func (w *UDPWRRService) SetDefaults()

SetDefaults sets the default values for a UDPWRRService.

type UDPWeightedRoundRobin

type UDPWeightedRoundRobin struct {
	Services []UDPWRRService `json:"services,omitempty" toml:"services,omitempty" yaml:"services,omitempty" export:"true"`
}

UDPWeightedRoundRobin is a weighted round robin UDP load-balancer of services.

func (*UDPWeightedRoundRobin) DeepCopy

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

func (*UDPWeightedRoundRobin) DeepCopyInto

func (in *UDPWeightedRoundRobin) DeepCopyInto(out *UDPWeightedRoundRobin)

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

type URLRewrite

type URLRewrite struct {
	Hostname   *string `json:"hostname,omitempty"`
	Path       *string `json:"path,omitempty"`
	PathPrefix *string `json:"pathPrefix,omitempty"`
}

URLRewrite holds the URL rewrite middleware configuration.

func (*URLRewrite) DeepCopy

func (in *URLRewrite) DeepCopy() *URLRewrite

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

func (*URLRewrite) DeepCopyInto

func (in *URLRewrite) DeepCopyInto(out *URLRewrite)

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

type Users

type Users []string

Users holds a list of users.

func (Users) DeepCopy

func (in Users) DeepCopy() Users

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

func (Users) DeepCopyInto

func (in Users) DeepCopyInto(out *Users)

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

type WRRService

type WRRService struct {
	Name   string `json:"name,omitempty" toml:"name,omitempty" yaml:"name,omitempty" export:"true"`
	Weight *int   `json:"weight,omitempty" toml:"weight,omitempty" yaml:"weight,omitempty" export:"true"`

	// Headers defines the HTTP headers that should be added to the request when calling the service.
	// This is required by the Knative implementation which expects specific headers to be sent.
	Headers map[string]string `json:"-" toml:"-" yaml:"-" label:"-" file:"-"`

	// Status defines an HTTP status code that should be returned when calling the service.
	// This is required by the Gateway API implementation which expects specific HTTP status to be returned.
	Status *int `json:"-" toml:"-" yaml:"-" label:"-" file:"-"`
	// GRPCStatus defines a GRPC status code that should be returned when calling the service.
	// This is required by the Gateway API implementation which expects specific GRPC status to be returned.
	GRPCStatus *GRPCStatus `json:"-" toml:"-" yaml:"-" label:"-" file:"-"`
}

WRRService is a reference to a service load-balanced with weighted round-robin.

func (*WRRService) DeepCopy

func (in *WRRService) DeepCopy() *WRRService

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

func (*WRRService) DeepCopyInto

func (in *WRRService) DeepCopyInto(out *WRRService)

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

func (*WRRService) SetDefaults

func (w *WRRService) SetDefaults()

SetDefaults Default values for a WRRService.

type WeightedRoundRobin

type WeightedRoundRobin struct {
	Services []WRRService `json:"services,omitempty" toml:"services,omitempty" yaml:"services,omitempty" export:"true"`
	Sticky   *Sticky      `json:"sticky,omitempty" toml:"sticky,omitempty" yaml:"sticky,omitempty" export:"true"`
	// HealthCheck enables automatic self-healthcheck for this service, i.e.
	// whenever one of its children is reported as down, this service becomes aware of it,
	// and takes it into account (i.e. it ignores the down child) when running the
	// load-balancing algorithm. In addition, if the parent of this service also has
	// HealthCheck enabled, this service reports to its parent any status change.
	HealthCheck *HealthCheck `` /* 153-byte string literal not displayed */
}

WeightedRoundRobin is a weighted round robin load-balancer of services.

func (*WeightedRoundRobin) DeepCopy

func (in *WeightedRoundRobin) DeepCopy() *WeightedRoundRobin

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

func (*WeightedRoundRobin) DeepCopyInto

func (in *WeightedRoundRobin) DeepCopyInto(out *WeightedRoundRobin)

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