fgw

package
v1.4.0-alpha.2 Latest Latest
Warning

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

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

Documentation

Overview

Package fgw contains types for the gateway route

Index

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 {
	Kind       string      `json:"kind"`
	ObjectMeta ObjectMeta  `json:"metadata"`
	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 {
	Kind       string              `json:"kind"`
	ObjectMeta ObjectMeta          `json:"metadata"`
	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"`
}

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 {
	Kind       string               `json:"kind"`
	ObjectMeta ObjectMeta           `json:"metadata"`
	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 BackendTarget struct {
	Address string            `json:"address"`
	Port    *int32            `json:"port"`
	Weight  int32             `json:"weight,omitempty"`
	Tags    map[string]string `json:"tags,omitempty"`
}

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
}

Config is the configuration for the gateway

type ConfigSpec

type ConfigSpec struct {
	Resources []interface{}                                    `json:"resources" hash:"set"`
	Secrets   map[string]string                                `json:"secrets"`
	Filters   map[extv1alpha1.FilterProtocol]map[string]string `json:"filters"`
	Version   string                                           `json:"version" hash:"ignore"`
}

func (*ConfigSpec) GetVersion added in v1.4.0

func (c *ConfigSpec) GetVersion() string

type FrontendTLSValidation added in v1.4.0

type FrontendTLSValidation struct {
	CACertificates []map[string]string `json:"caCertificates,omitempty" copier:"-" hash:"set"`
}

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 {
	Kind       string        `json:"kind"`
	ObjectMeta ObjectMeta    `json:"metadata"`
	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]string        `json:"extensionConfig,omitempty"`
}

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 {
	Kind       string      `json:"kind"`
	ObjectMeta ObjectMeta  `json:"metadata"`
	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 HTTPRequestMirrorFilter

type HTTPRequestMirrorFilter struct {
	BackendRef BackendRef `json:"backendRef"`
}

type HTTPRoute added in v1.4.0

type HTTPRoute struct {
	Kind       string        `json:"kind"`
	ObjectMeta ObjectMeta    `json:"metadata"`
	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]string               `json:"extensionConfig,omitempty"`
}

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 HealthCheckPolicy added in v1.4.0

type HealthCheckPolicy struct {
	Kind       string                `json:"kind"`
	ObjectMeta ObjectMeta            `json:"metadata"`
	Spec       HealthCheckPolicySpec `json:"spec"`
}

func (*HealthCheckPolicy) AddPort added in v1.4.0

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              []gwpav1alpha2.PortHealthCheck  `json:"ports,omitempty" copier:"-" hash:"set"`
	DefaultHealthCheck *gwpav1alpha2.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:"-"`
}

type ObjectMeta added in v1.4.0

type ObjectMeta struct {
	Namespace string `json:"namespace,omitempty"`
	Name      string `json:"name"`
}

type RetryPolicy added in v1.4.0

type RetryPolicy struct {
	Kind       string          `json:"kind"`
	ObjectMeta ObjectMeta      `json:"metadata"`
	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        []gwpav1alpha2.PortRetry  `json:"ports,omitempty" hash:"set"`
	DefaultRetry *gwpav1alpha2.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 {
	Kind       string       `json:"kind"`
	ObjectMeta ObjectMeta   `json:"metadata"`
	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 {
	Kind       string       `json:"kind"`
	ObjectMeta ObjectMeta   `json:"metadata"`
	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 {
	Kind       string       `json:"kind"`
	ObjectMeta ObjectMeta   `json:"metadata"`
	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"`
}

Jump to

Keyboard shortcuts

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