Documentation ¶
Index ¶
- func FilterStageComparison(a, b FilterStage) int
- type ClusterGeneratorPlugin
- type EndpointPlugin
- type FilterStage
- type HttpFilterPlugin
- type InitParams
- type ListenerFilterChainPlugin
- type ListenerFilterPlugin
- type ListenerPlugin
- type Params
- type Plugin
- type RouteActionParams
- type RouteActionPlugin
- type RouteParams
- type RoutePlugin
- type StagedHttpFilter
- type StagedHttpFilterList
- type StagedListenerFilter
- type StagedListenerFilterList
- type UpstreamPlugin
- type VirtualHostParams
- type VirtualHostPlugin
- type WeightedDestinationPlugin
- type WellKnownFilterStage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FilterStageComparison ¶ added in v0.18.27
func FilterStageComparison(a, b FilterStage) int
FilterStageComparison helps implement the sort.Interface Less function for use in other implementations of sort.Interface returns -1 if less than, 0 if equal, 1 if greater than It is not sufficient to return a Less bool because calling functions need to know if equal or greater when Less is false
Types ¶
type ClusterGeneratorPlugin ¶
type ClusterGeneratorPlugin interface { Plugin GeneratedClusters(params Params) ([]*envoy_config_cluster_v3.Cluster, error) }
Generation plugins
type EndpointPlugin ¶ added in v1.4.0
type EndpointPlugin interface { Plugin ProcessEndpoints(params Params, in *v1.Upstream, out *envoy_config_endpoint_v3.ClusterLoadAssignment) error }
Endpoint is called after the envoy ClusterLoadAssignment has been created for the input Upstream, and allows the endpoints to be edited before being sent to envoy via EDS If one wishes to also modify the corresponding envoy Cluster the above UpstreamPlugin interface should be used.
type FilterStage ¶
type FilterStage struct { RelativeTo WellKnownFilterStage Weight int }
func AfterStage ¶ added in v0.18.27
func AfterStage(wellKnown WellKnownFilterStage) FilterStage
func BeforeStage ¶ added in v0.18.27
func BeforeStage(wellKnown WellKnownFilterStage) FilterStage
func DuringStage ¶ added in v0.18.27
func DuringStage(wellKnown WellKnownFilterStage) FilterStage
func RelativeToStage ¶ added in v0.18.27
func RelativeToStage(wellKnown WellKnownFilterStage, weight int) FilterStage
type HttpFilterPlugin ¶
type HttpFilterPlugin interface { Plugin HttpFilters(params Params, listener *v1.HttpListener) ([]StagedHttpFilter, error) }
type ListenerFilterChainPlugin ¶ added in v0.18.0
type ListenerFilterChainPlugin interface { Plugin ProcessListenerFilterChain(params Params, in *v1.Listener) ([]*envoy_config_listener_v3.FilterChain, error) }
Currently only supported for TCP listeners, plan to change this in the future
type ListenerFilterPlugin ¶
type ListenerPlugin ¶
type Plugin ¶
type Plugin interface {
Init(params InitParams) error
}
type RouteActionParams ¶ added in v0.18.32
type RouteActionParams struct { RouteParams Route *v1.Route }
type RouteActionPlugin ¶
type RouteActionPlugin interface { Plugin ProcessRouteAction(params RouteActionParams, inAction *v1.RouteAction, out *envoy_config_route_v3.RouteAction) error }
note: any route action plugin can be implemented as a route plugin suggestion: if your plugin requires configuration from a RoutePlugin field, implement the RoutePlugin interface
type RouteParams ¶ added in v0.14.0
type RouteParams struct { VirtualHostParams VirtualHost *v1.VirtualHost }
type RoutePlugin ¶
type RoutePlugin interface { Plugin ProcessRoute(params RouteParams, in *v1.Route, out *envoy_config_route_v3.Route) error }
type StagedHttpFilter ¶
type StagedHttpFilter struct { HttpFilter *envoyhttp.HttpFilter Stage FilterStage }
func NewStagedFilter ¶ added in v0.11.1
func NewStagedFilter(name string, stage FilterStage) StagedHttpFilter
func NewStagedFilterWithConfig ¶ added in v0.11.1
func NewStagedFilterWithConfig(name string, config proto.Message, stage FilterStage) (StagedHttpFilter, error)
type StagedHttpFilterList ¶ added in v0.18.27
type StagedHttpFilterList []StagedHttpFilter
func (StagedHttpFilterList) Len ¶ added in v0.18.27
func (s StagedHttpFilterList) Len() int
func (StagedHttpFilterList) Less ¶ added in v0.18.27
func (s StagedHttpFilterList) Less(i, j int) bool
filters by Relative Stage, Weighting, Name, Config Type-Url, Config Value, and (to ensure stability) index. The assumption is that if two filters are in the same stage, their order doesn't matter, and we just need to make sure it is stable.
func (StagedHttpFilterList) Swap ¶ added in v0.18.27
func (s StagedHttpFilterList) Swap(i, j int)
type StagedListenerFilter ¶
type StagedListenerFilter struct { ListenerFilter *envoy_config_listener_v3.Filter Stage FilterStage }
type StagedListenerFilterList ¶ added in v0.18.27
type StagedListenerFilterList []StagedListenerFilter
func (StagedListenerFilterList) Len ¶ added in v0.18.27
func (s StagedListenerFilterList) Len() int
func (StagedListenerFilterList) Less ¶ added in v0.18.27
func (s StagedListenerFilterList) Less(i, j int) bool
filters by Relative Stage, Weighting, Name, and (to ensure stability) index
func (StagedListenerFilterList) Swap ¶ added in v0.18.27
func (s StagedListenerFilterList) Swap(i, j int)
type UpstreamPlugin ¶
type UpstreamPlugin interface { Plugin ProcessUpstream(params Params, in *v1.Upstream, out *envoy_config_cluster_v3.Cluster) error }
UpstreamPlugin is called after the envoy Cluster has been created for the input Upstream, and allows the cluster to be edited before being sent to envoy via CDS
type VirtualHostParams ¶ added in v0.15.0
type VirtualHostPlugin ¶
type VirtualHostPlugin interface { Plugin ProcessVirtualHost(params VirtualHostParams, in *v1.VirtualHost, out *envoy_config_route_v3.VirtualHost) error }
type WeightedDestinationPlugin ¶ added in v0.18.7
type WeightedDestinationPlugin interface { Plugin ProcessWeightedDestination( params RouteParams, in *v1.WeightedDestination, out *envoy_config_route_v3.WeightedCluster_ClusterWeight, ) error }
type WellKnownFilterStage ¶ added in v0.18.27
type WellKnownFilterStage int
WellKnownFilterStages are represented by an integer that reflects their relative ordering
const ( FaultStage WellKnownFilterStage = iota // Fault injection // First Filter Stage CorsStage // Cors stage WafStage // Web application firewall stage AuthNStage // Authentication stage AuthZStage // Authorization stage RateLimitStage // Rate limiting stage AcceptedStage // Request passed all the checks and will be forwarded upstream OutAuthStage // Add auth for the upstream (i.e. aws λ) RouteStage // Request is going to upstream // Last Filter Stage )
If new well known filter stages are added, they should be inserted in a position corresponding to their order
Directories ¶
Path | Synopsis |
---|---|
mocks
Package mock_consul is a generated GoMock package.
|
Package mock_consul is a generated GoMock package. |
mocks
Package mock_hcm is a generated GoMock package.
|
Package mock_hcm is a generated GoMock package. |
internal
|
|
mocks
Package mock_kubernetes is a generated GoMock package.
|
Package mock_kubernetes is a generated GoMock package. |
mocks
Package mock_cache is a generated GoMock package.
|
Package mock_cache is a generated GoMock package. |