Documentation ¶
Overview ¶
Package fgw contains types for the gateway route
Index ¶
- type Backend
- type BackendLBPolicy
- type BackendLBPolicySpec
- type BackendRef
- type BackendSpec
- type BackendTLSPolicy
- type BackendTLSPolicySpec
- type BackendTLSPolicyValidation
- type BackendTarget
- type CircuitBreakerSpec
- type CommonResource
- type CommonRouteSpec
- type Config
- type ConfigSpec
- type FaultInjectionDelay
- type FaultInjectionSpec
- type FrontendTLSValidation
- type GRPCBackendRef
- type GRPCRoute
- type GRPCRouteFilter
- type GRPCRouteRule
- type GRPCRouteSpec
- type Gateway
- type GatewaySpec
- type GatewayTLSConfig
- type HTTPBackendRef
- type HTTPLogBatch
- type HTTPLogSpec
- type HTTPRequestMirrorFilter
- type HTTPRoute
- type HTTPRouteFilter
- type HTTPRouteRule
- type HTTPRouteSpec
- type HealthCheckConfig
- type HealthCheckPolicy
- type HealthCheckPolicySpec
- type Listener
- type ListenerFilter
- type MetricsSpec
- type ObjectMeta
- type PortHealthCheck
- type PortRetry
- type RateLimitSpec
- type Resource
- type RetryConfig
- type RetryPolicy
- type RetryPolicySpec
- type ServicePortName
- type TCPRoute
- type TCPRouteRule
- type TCPRouteSpec
- type TLSRoute
- type TLSRouteRule
- type TLSRouteSpec
- type UDPRoute
- type UDPRouteRule
- type UDPRouteSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backend ¶ added in v1.4.0
type Backend struct { CommonResource `json:",inline"` Spec BackendSpec `json:"spec"` Port int32 `json:"-"` // store the port for the backend temporarily }
func NewBackend ¶ added in v1.4.0
func NewBackend(svcPortName string, targets []BackendTarget) *Backend
type BackendLBPolicy ¶ added in v1.4.0
type BackendLBPolicy struct { CommonResource `json:",inline"` Spec BackendLBPolicySpec `json:"spec"` }
func (*BackendLBPolicy) AddTargetRef ¶ added in v1.4.0
func (p *BackendLBPolicy) AddTargetRef(ref BackendRef)
type BackendLBPolicySpec ¶ added in v1.4.0
type BackendLBPolicySpec struct { TargetRefs []BackendRef `json:"targetRefs" copier:"-" hash:"set"` SessionPersistence *gwv1.SessionPersistence `json:"sessionPersistence,omitempty"` Algorithm *gwpav1alpha2.LoadBalancerAlgorithm `json:"algorithm,omitempty"` }
type BackendRef ¶ added in v1.4.0
type BackendRef struct { Kind string `json:"kind"` Name string `json:"name"` Weight *int32 `json:"weight,omitempty"` }
func NewBackendRef ¶ added in v1.4.0
func NewBackendRef(name string) BackendRef
func NewBackendRefWithWeight ¶ added in v1.4.0
func NewBackendRefWithWeight(name string, weight int32) BackendRef
type BackendSpec ¶ added in v1.4.0
type BackendSpec struct {
Targets []BackendTarget `json:"targets,omitempty" hash:"set"`
}
type BackendTLSPolicy ¶ added in v1.4.0
type BackendTLSPolicy struct { CommonResource `json:",inline"` Spec BackendTLSPolicySpec `json:"spec"` }
func (*BackendTLSPolicy) AddTargetRef ¶ added in v1.4.0
func (p *BackendTLSPolicy) AddTargetRef(ref BackendRef)
type BackendTLSPolicySpec ¶ added in v1.4.0
type BackendTLSPolicySpec struct { TargetRefs []BackendRef `json:"targetRefs" copier:"-" hash:"set"` Validation BackendTLSPolicyValidation `json:"validation"` }
type BackendTLSPolicyValidation ¶ added in v1.4.0
type BackendTLSPolicyValidation struct { CACertificates []map[string]string `json:"caCertificates,omitempty" copier:"-" hash:"set"` WellKnownCACertificates *gwv1alpha3.WellKnownCACertificatesType `json:"wellKnownCACertificates,omitempty"` Hostname gwv1.PreciseHostname `json:"hostname"` }
type BackendTarget ¶ added in v1.4.0
type CircuitBreakerSpec ¶ added in v1.4.0
type CircuitBreakerSpec struct { LatencyThresholdInMilliseconds *int64 `json:"latencyThreshold,omitempty"` ErrorCountThreshold *int32 `json:"errorCountThreshold,omitempty"` ErrorRatioThreshold *float32 `json:"errorRatioThreshold,omitempty"` ConcurrencyThreshold *int32 `json:"concurrencyThreshold,omitempty"` CheckIntervalInMilliseconds *int64 `json:"checkInterval,omitempty"` BreakIntervalInMilliseconds *int64 `json:"breakInterval,omitempty"` CircuitBreakerResponse *extv1alpha1.CircuitBreakerResponse `json:"response,omitempty"` }
func (*CircuitBreakerSpec) BreakInterval ¶ added in v1.4.0
func (c *CircuitBreakerSpec) BreakInterval(breakInterval *metav1.Duration)
func (*CircuitBreakerSpec) CheckInterval ¶ added in v1.4.0
func (c *CircuitBreakerSpec) CheckInterval(checkInterval *metav1.Duration)
func (*CircuitBreakerSpec) LatencyThreshold ¶ added in v1.4.0
func (c *CircuitBreakerSpec) LatencyThreshold(latencyThreshold *metav1.Duration)
type CommonResource ¶ added in v1.4.0
type CommonResource struct { Kind string `json:"kind"` ObjectMeta ObjectMeta `json:"metadata"` }
func (*CommonResource) GetKind ¶ added in v1.4.0
func (r *CommonResource) GetKind() string
func (*CommonResource) GetName ¶ added in v1.4.0
func (r *CommonResource) GetName() string
func (*CommonResource) GetNamespace ¶ added in v1.4.0
func (r *CommonResource) GetNamespace() string
type CommonRouteSpec ¶ added in v1.4.0
type CommonRouteSpec struct {
ParentRefs []gwv1.ParentReference `json:"parentRefs,omitempty" hash:"set"`
}
type Config ¶ added in v1.4.0
type Config interface { GetVersion() string GetResources() []Resource GetSecrets() map[string]string GetFilters() map[extv1alpha1.FilterProtocol]map[extv1alpha1.FilterType]string }
Config is the configuration for the gateway
type ConfigSpec ¶
type ConfigSpec struct { Resources []Resource `json:"resources" hash:"set"` Secrets map[string]string `json:"secrets"` Filters map[extv1alpha1.FilterProtocol]map[extv1alpha1.FilterType]string `json:"filters"` Version string `json:"version" hash:"ignore"` }
func (*ConfigSpec) GetFilters ¶ added in v1.4.0
func (c *ConfigSpec) GetFilters() map[extv1alpha1.FilterProtocol]map[extv1alpha1.FilterType]string
func (*ConfigSpec) GetResources ¶ added in v1.4.0
func (c *ConfigSpec) GetResources() []Resource
func (*ConfigSpec) GetSecrets ¶ added in v1.4.0
func (c *ConfigSpec) GetSecrets() map[string]string
func (*ConfigSpec) GetVersion ¶ added in v1.4.0
func (c *ConfigSpec) GetVersion() string
type FaultInjectionDelay ¶
type FaultInjectionDelay struct { Percentage int32 `json:"percentage"` MinInMilliseconds *int64 `json:"min,omitempty"` MaxInMilliseconds *int64 `json:"max,omitempty"` }
func (*FaultInjectionDelay) Max ¶ added in v1.4.0
func (f *FaultInjectionDelay) Max(max *metav1.Duration)
func (*FaultInjectionDelay) Min ¶ added in v1.4.0
func (f *FaultInjectionDelay) Min(min *metav1.Duration)
type FaultInjectionSpec ¶ added in v1.4.0
type FaultInjectionSpec struct { Delay *FaultInjectionDelay `json:"delay,omitempty"` Abort *extv1alpha1.FaultInjectionAbort `json:"abort,omitempty"` }
type FrontendTLSValidation ¶ added in v1.4.0
type GRPCBackendRef ¶ added in v1.4.0
type GRPCBackendRef struct { Kind string `json:"kind"` Name string `json:"name"` Weight int32 `json:"weight,omitempty"` Filters []GRPCRouteFilter `json:"filters,omitempty" hash:"set"` }
func NewGRPCBackendRef ¶ added in v1.4.0
func NewGRPCBackendRef(name string, weight int32) GRPCBackendRef
type GRPCRoute ¶ added in v1.4.0
type GRPCRoute struct { CommonResource `json:",inline"` Spec GRPCRouteSpec `json:"spec,omitempty"` }
type GRPCRouteFilter ¶
type GRPCRouteFilter struct { Type gwv1.GRPCRouteFilterType `json:"type"` RequestHeaderModifier *gwv1.HTTPHeaderFilter `json:"requestHeaderModifier,omitempty"` ResponseHeaderModifier *gwv1.HTTPHeaderFilter `json:"responseHeaderModifier,omitempty"` RequestMirror *HTTPRequestMirrorFilter `json:"requestMirror,omitempty"` ExtensionConfig map[string]interface{} `json:"-"` Key string `json:"key,omitempty"` }
func (GRPCRouteFilter) MarshalJSON ¶ added in v1.4.0
func (f GRPCRouteFilter) MarshalJSON() ([]byte, error)
type GRPCRouteRule ¶ added in v1.4.0
type GRPCRouteRule struct { Matches []gwv1.GRPCRouteMatch `json:"matches,omitempty" hash:"set"` Filters []GRPCRouteFilter `json:"filters,omitempty" hash:"set"` BackendRefs []GRPCBackendRef `json:"backendRefs,omitempty" copier:"-" hash:"set"` SessionPersistence *gwv1.SessionPersistence `json:"sessionPersistence,omitempty"` }
type GRPCRouteSpec ¶ added in v1.4.0
type GRPCRouteSpec struct { CommonRouteSpec `json:",inline"` Hostnames []gwv1.Hostname `json:"hostnames,omitempty" hash:"set"` Rules []GRPCRouteRule `json:"rules,omitempty" copier:"-" hash:"set"` }
type Gateway ¶ added in v1.4.0
type Gateway struct { CommonResource `json:",inline"` Spec GatewaySpec `json:"spec"` }
type GatewaySpec ¶ added in v1.4.0
type GatewaySpec struct { GatewayClassName gwv1.ObjectName `json:"gatewayClassName"` Listeners []Listener `json:"listeners,omitempty" copier:"-" hash:"set"` Addresses []gwv1.GatewayAddress `json:"addresses,omitempty"` }
type GatewayTLSConfig ¶ added in v1.4.0
type GatewayTLSConfig struct { Mode *gwv1.TLSModeType `json:"mode,omitempty"` Certificates []map[string]string `json:"certificates,omitempty" copier:"-" hash:"set"` FrontendValidation *FrontendTLSValidation `json:"frontendValidation,omitempty" copier:"-"` Options map[gwv1.AnnotationKey]gwv1.AnnotationValue `json:"options,omitempty"` }
type HTTPBackendRef ¶ added in v1.4.0
type HTTPBackendRef struct { Kind string `json:"kind"` Name string `json:"name"` Weight int32 `json:"weight,omitempty"` Filters []HTTPRouteFilter `json:"filters,omitempty" hash:"set"` }
func NewHTTPBackendRef ¶ added in v1.4.0
func NewHTTPBackendRef(name string, weight int32) HTTPBackendRef
type HTTPLogBatch ¶ added in v1.4.0
type HTTPLogBatch struct { Size *int32 `json:"size,omitempty"` IntervalInMilliseconds *int64 `json:"interval,omitempty"` Prefix *string `json:"prefix,omitempty"` Postfix *string `json:"postfix,omitempty"` Separator *string `json:"separator,omitempty"` }
func (*HTTPLogBatch) Interval ¶ added in v1.4.0
func (b *HTTPLogBatch) Interval(interval *metav1.Duration)
type HTTPLogSpec ¶ added in v1.4.0
type HTTPRequestMirrorFilter ¶
type HTTPRequestMirrorFilter struct {
BackendRef BackendRef `json:"backendRef"`
}
type HTTPRoute ¶ added in v1.4.0
type HTTPRoute struct { CommonResource `json:",inline"` Spec HTTPRouteSpec `json:"spec"` }
type HTTPRouteFilter ¶
type HTTPRouteFilter struct { Type gwv1.HTTPRouteFilterType `json:"type"` RequestHeaderModifier *gwv1.HTTPHeaderFilter `json:"requestHeaderModifier,omitempty"` ResponseHeaderModifier *gwv1.HTTPHeaderFilter `json:"responseHeaderModifier,omitempty"` RequestMirror *HTTPRequestMirrorFilter `json:"requestMirror,omitempty"` RequestRedirect *gwv1.HTTPRequestRedirectFilter `json:"requestRedirect,omitempty"` URLRewrite *gwv1.HTTPURLRewriteFilter `json:"urlRewrite,omitempty"` ExtensionConfig map[string]interface{} `json:"-"` Key string `json:"key,omitempty"` }
func (HTTPRouteFilter) MarshalJSON ¶ added in v1.4.0
func (f HTTPRouteFilter) MarshalJSON() ([]byte, error)
type HTTPRouteRule ¶ added in v1.4.0
type HTTPRouteRule struct { Matches []gwv1.HTTPRouteMatch `json:"matches,omitempty" hash:"set"` Filters []HTTPRouteFilter `json:"filters,omitempty" hash:"set"` BackendRefs []HTTPBackendRef `json:"backendRefs,omitempty" copier:"-" hash:"set"` Timeouts *gwv1.HTTPRouteTimeouts `json:"timeouts,omitempty"` SessionPersistence *gwv1.SessionPersistence `json:"sessionPersistence,omitempty"` }
type HTTPRouteSpec ¶ added in v1.4.0
type HTTPRouteSpec struct { CommonRouteSpec `json:",inline"` Hostnames []gwv1.Hostname `json:"hostnames,omitempty" hash:"set"` Rules []HTTPRouteRule `json:"rules,omitempty" copier:"-" hash:"set"` }
type HealthCheckConfig ¶ added in v1.4.2
type HealthCheckConfig struct { IntervalInSeconds float64 `json:"interval"` MaxFails int32 `json:"maxFails"` FailTimeoutInSeconds *float64 `json:"failTimeout,omitempty"` Path *string `json:"path,omitempty"` Matches []gwpav1alpha2.HealthCheckMatch `json:"matches,omitempty"` }
func (*HealthCheckConfig) FailTimeout ¶ added in v1.4.2
func (c *HealthCheckConfig) FailTimeout(failTimeout *metav1.Duration)
func (*HealthCheckConfig) Interval ¶ added in v1.4.2
func (c *HealthCheckConfig) Interval(interval metav1.Duration)
type HealthCheckPolicy ¶ added in v1.4.0
type HealthCheckPolicy struct { CommonResource `json:",inline"` Spec HealthCheckPolicySpec `json:"spec"` }
func (*HealthCheckPolicy) AddPort ¶ added in v1.4.0
func (p *HealthCheckPolicy) AddPort(port gwpav1alpha2.PortHealthCheck)
func (*HealthCheckPolicy) AddTargetRef ¶ added in v1.4.0
func (p *HealthCheckPolicy) AddTargetRef(ref BackendRef)
type HealthCheckPolicySpec ¶ added in v1.4.0
type HealthCheckPolicySpec struct { TargetRefs []BackendRef `json:"targetRefs" copier:"-" hash:"set"` Ports []PortHealthCheck `json:"ports,omitempty" copier:"-" hash:"set"` DefaultHealthCheck *HealthCheckConfig `json:"healthCheck,omitempty"` }
type Listener ¶
type Listener struct { Name gwv1.SectionName `json:"name"` Hostname *gwv1.Hostname `json:"hostname,omitempty"` Port gwv1.PortNumber `json:"port"` Protocol gwv1.ProtocolType `json:"protocol"` TLS *GatewayTLSConfig `json:"tls,omitempty" copier:"-"` Filters []ListenerFilter `json:"routeFilters,omitempty" hash:"set" copier:"-"` }
type ListenerFilter ¶ added in v1.4.0
type ListenerFilter struct { Type extv1alpha1.FilterType `json:"type"` ExtensionConfig map[string]interface{} `json:"-"` Key string `json:"key,omitempty"` }
func (ListenerFilter) MarshalJSON ¶ added in v1.4.0
func (f ListenerFilter) MarshalJSON() ([]byte, error)
type MetricsSpec ¶ added in v1.4.0
type MetricsSpec struct {
SampleIntervalInMilliseconds *int64 `json:"sampleInterval,omitempty"`
}
func (*MetricsSpec) SampleInterval ¶ added in v1.4.0
func (m *MetricsSpec) SampleInterval(sampleInterval *metav1.Duration)
type ObjectMeta ¶ added in v1.4.0
type PortHealthCheck ¶ added in v1.4.2
type PortHealthCheck struct { Port gwv1.PortNumber `json:"port"` HealthCheck *HealthCheckConfig `json:"healthCheck,omitempty"` }
type PortRetry ¶ added in v1.4.2
type PortRetry struct { Port gwv1.PortNumber `json:"port"` Retry *RetryConfig `json:"retry,omitempty"` }
type RateLimitSpec ¶ added in v1.4.0
type RateLimitSpec struct { Burst *int32 `json:"burst,omitempty"` Requests *int32 `json:"requests,omitempty"` IntervalInMilliseconds *int64 `json:"interval,omitempty"` Backlog *int32 `json:"backlog,omitempty"` RateLimitResponse *extv1alpha1.RateLimitResponse `json:"response,omitempty"` }
func (*RateLimitSpec) Interval ¶ added in v1.4.0
func (r *RateLimitSpec) Interval(interval *metav1.Duration)
type RetryConfig ¶ added in v1.4.2
type RetryConfig struct { RetryOn []string `json:"retryOn,omitempty"` NumRetries *int32 `json:"numRetries,omitempty"` BackoffBaseIntervalInSeconds *float64 `json:"backoffBaseInterval,omitempty"` }
func (*RetryConfig) BackoffBaseInterval ¶ added in v1.4.2
func (c *RetryConfig) BackoffBaseInterval(backoffBaseInterval *metav1.Duration)
type RetryPolicy ¶ added in v1.4.0
type RetryPolicy struct { CommonResource `json:",inline"` Spec RetryPolicySpec `json:"spec"` }
func (*RetryPolicy) AddPort ¶ added in v1.4.0
func (p *RetryPolicy) AddPort(port gwpav1alpha2.PortRetry)
func (*RetryPolicy) AddTargetRef ¶ added in v1.4.0
func (p *RetryPolicy) AddTargetRef(ref BackendRef)
type RetryPolicySpec ¶ added in v1.4.0
type RetryPolicySpec struct { TargetRefs []BackendRef `json:"targetRefs" copier:"-" hash:"set"` Ports []PortRetry `json:"ports,omitempty" hash:"set"` DefaultRetry *RetryConfig `json:"retry,omitempty"` }
type ServicePortName ¶
type ServicePortName struct { types.NamespacedName SectionName string Port *int32 }
ServicePortName is a combination of a service name, namespace, and port
func (*ServicePortName) String ¶
func (spn *ServicePortName) String() string
type TCPRoute ¶ added in v1.4.0
type TCPRoute struct { CommonResource `json:",inline"` Spec TCPRouteSpec `json:"spec"` }
type TCPRouteRule ¶
type TCPRouteRule struct {
BackendRefs []BackendRef `json:"backendRefs,omitempty" copier:"-" hash:"set"`
}
type TCPRouteSpec ¶ added in v1.4.0
type TCPRouteSpec struct { CommonRouteSpec `json:",inline"` Rules []TCPRouteRule `json:"rules" copier:"-" hash:"set"` }
TCPRouteSpec defines the desired state of TCPRoute
type TLSRoute ¶ added in v1.4.0
type TLSRoute struct { CommonResource `json:",inline"` Spec TLSRouteSpec `json:"spec"` }
type TLSRouteRule ¶ added in v1.4.0
type TLSRouteRule struct {
BackendRefs []BackendRef `json:"backendRefs,omitempty" hash:"set"`
}
type TLSRouteSpec ¶ added in v1.4.0
type TLSRouteSpec struct { CommonRouteSpec `json:",inline"` Hostnames []gwv1alpha2.Hostname `json:"hostnames,omitempty" hash:"set"` Rules []TLSRouteRule `json:"rules" copier:"-" hash:"set"` }
TLSRouteSpec defines the desired state of a TLSRoute resource.
type UDPRoute ¶ added in v1.4.0
type UDPRoute struct { CommonResource `json:",inline"` Spec UDPRouteSpec `json:"spec"` }
type UDPRouteRule ¶
type UDPRouteRule struct {
BackendRefs []BackendRef `json:"backendRefs,omitempty" copier:"-" hash:"set"`
}
type UDPRouteSpec ¶ added in v1.4.0
type UDPRouteSpec struct { CommonRouteSpec `json:",inline"` Rules []UDPRouteRule `json:"rules" copier:"-" hash:"set"` }
Click to show internal directories.
Click to hide internal directories.