Documentation
¶
Index ¶
- Variables
- type AwsIam
- func (x *AwsIam) ClearCredentialProvider()
- func (x *AwsIam) ClearExpirationTime()
- func (x *AwsIam) GetCacheName() string
- func (x *AwsIam) GetCredentialProvider() *v31.AwsCredentialProvider
- func (x *AwsIam) GetExpirationTime() *durationpb.Duration
- func (x *AwsIam) GetRegion() string
- func (x *AwsIam) GetServiceName() string
- func (x *AwsIam) HasCredentialProvider() bool
- func (x *AwsIam) HasExpirationTime() bool
- func (*AwsIam) ProtoMessage()
- func (x *AwsIam) ProtoReflect() protoreflect.Message
- func (x *AwsIam) Reset()
- func (x *AwsIam) SetCacheName(v string)
- func (x *AwsIam) SetCredentialProvider(v *v31.AwsCredentialProvider)
- func (x *AwsIam) SetExpirationTime(v *durationpb.Duration)
- func (x *AwsIam) SetRegion(v string)
- func (x *AwsIam) SetServiceName(v string)
- func (x *AwsIam) String() string
- type AwsIam_builder
- type RedisExternalAuthProvider
- func (x *RedisExternalAuthProvider) ClearGrpcService()
- func (x *RedisExternalAuthProvider) GetEnableAuthExpiration() bool
- func (x *RedisExternalAuthProvider) GetGrpcService() *v3.GrpcService
- func (x *RedisExternalAuthProvider) HasGrpcService() bool
- func (*RedisExternalAuthProvider) ProtoMessage()
- func (x *RedisExternalAuthProvider) ProtoReflect() protoreflect.Message
- func (x *RedisExternalAuthProvider) Reset()
- func (x *RedisExternalAuthProvider) SetEnableAuthExpiration(v bool)
- func (x *RedisExternalAuthProvider) SetGrpcService(v *v3.GrpcService)
- func (x *RedisExternalAuthProvider) String() string
- type RedisExternalAuthProvider_builder
- type RedisProtocolOptions
- func (x *RedisProtocolOptions) ClearAuthPassword()
- func (x *RedisProtocolOptions) ClearAuthUsername()
- func (x *RedisProtocolOptions) ClearAwsIam()
- func (x *RedisProtocolOptions) GetAuthPassword() *v3.DataSource
- func (x *RedisProtocolOptions) GetAuthUsername() *v3.DataSource
- func (x *RedisProtocolOptions) GetAwsIam() *AwsIam
- func (x *RedisProtocolOptions) HasAuthPassword() bool
- func (x *RedisProtocolOptions) HasAuthUsername() bool
- func (x *RedisProtocolOptions) HasAwsIam() bool
- func (*RedisProtocolOptions) ProtoMessage()
- func (x *RedisProtocolOptions) ProtoReflect() protoreflect.Message
- func (x *RedisProtocolOptions) Reset()
- func (x *RedisProtocolOptions) SetAuthPassword(v *v3.DataSource)
- func (x *RedisProtocolOptions) SetAuthUsername(v *v3.DataSource)
- func (x *RedisProtocolOptions) SetAwsIam(v *AwsIam)
- func (x *RedisProtocolOptions) String() string
- type RedisProtocolOptions_builder
- type RedisProxy
- func (x *RedisProxy) ClearDownstreamAuthPassword()deprecated
- func (x *RedisProxy) ClearDownstreamAuthUsername()
- func (x *RedisProxy) ClearExternalAuthProvider()
- func (x *RedisProxy) ClearPrefixRoutes()
- func (x *RedisProxy) ClearSettings()
- func (x *RedisProxy) GetCustomCommands() []string
- func (x *RedisProxy) GetDownstreamAuthPassword() *v3.DataSourcedeprecated
- func (x *RedisProxy) GetDownstreamAuthPasswords() []*v3.DataSource
- func (x *RedisProxy) GetDownstreamAuthUsername() *v3.DataSource
- func (x *RedisProxy) GetExternalAuthProvider() *RedisExternalAuthProvider
- func (x *RedisProxy) GetFaults() []*RedisProxy_RedisFault
- func (x *RedisProxy) GetLatencyInMicros() bool
- func (x *RedisProxy) GetPrefixRoutes() *RedisProxy_PrefixRoutes
- func (x *RedisProxy) GetSettings() *RedisProxy_ConnPoolSettings
- func (x *RedisProxy) GetStatPrefix() string
- func (x *RedisProxy) HasDownstreamAuthPassword() booldeprecated
- func (x *RedisProxy) HasDownstreamAuthUsername() bool
- func (x *RedisProxy) HasExternalAuthProvider() bool
- func (x *RedisProxy) HasPrefixRoutes() bool
- func (x *RedisProxy) HasSettings() bool
- func (*RedisProxy) ProtoMessage()
- func (x *RedisProxy) ProtoReflect() protoreflect.Message
- func (x *RedisProxy) Reset()
- func (x *RedisProxy) SetCustomCommands(v []string)
- func (x *RedisProxy) SetDownstreamAuthPassword(v *v3.DataSource)deprecated
- func (x *RedisProxy) SetDownstreamAuthPasswords(v []*v3.DataSource)
- func (x *RedisProxy) SetDownstreamAuthUsername(v *v3.DataSource)
- func (x *RedisProxy) SetExternalAuthProvider(v *RedisExternalAuthProvider)
- func (x *RedisProxy) SetFaults(v []*RedisProxy_RedisFault)
- func (x *RedisProxy) SetLatencyInMicros(v bool)
- func (x *RedisProxy) SetPrefixRoutes(v *RedisProxy_PrefixRoutes)
- func (x *RedisProxy) SetSettings(v *RedisProxy_ConnPoolSettings)
- func (x *RedisProxy) SetStatPrefix(v string)
- func (x *RedisProxy) String() string
- type RedisProxy_ConnPoolSettings
- func (x *RedisProxy_ConnPoolSettings) ClearBufferFlushTimeout()
- func (x *RedisProxy_ConnPoolSettings) ClearConnectionRateLimit()
- func (x *RedisProxy_ConnPoolSettings) ClearDnsCacheConfig()
- func (x *RedisProxy_ConnPoolSettings) ClearMaxUpstreamUnknownConnections()
- func (x *RedisProxy_ConnPoolSettings) ClearOpTimeout()
- func (x *RedisProxy_ConnPoolSettings) GetBufferFlushTimeout() *durationpb.Duration
- func (x *RedisProxy_ConnPoolSettings) GetConnectionRateLimit() *RedisProxy_ConnectionRateLimit
- func (x *RedisProxy_ConnPoolSettings) GetDnsCacheConfig() *v32.DnsCacheConfig
- func (x *RedisProxy_ConnPoolSettings) GetEnableCommandStats() bool
- func (x *RedisProxy_ConnPoolSettings) GetEnableHashtagging() bool
- func (x *RedisProxy_ConnPoolSettings) GetEnableRedirection() bool
- func (x *RedisProxy_ConnPoolSettings) GetMaxBufferSizeBeforeFlush() uint32
- func (x *RedisProxy_ConnPoolSettings) GetMaxUpstreamUnknownConnections() *wrapperspb.UInt32Value
- func (x *RedisProxy_ConnPoolSettings) GetOpTimeout() *durationpb.Duration
- func (x *RedisProxy_ConnPoolSettings) GetReadPolicy() RedisProxy_ConnPoolSettings_ReadPolicy
- func (x *RedisProxy_ConnPoolSettings) HasBufferFlushTimeout() bool
- func (x *RedisProxy_ConnPoolSettings) HasConnectionRateLimit() bool
- func (x *RedisProxy_ConnPoolSettings) HasDnsCacheConfig() bool
- func (x *RedisProxy_ConnPoolSettings) HasMaxUpstreamUnknownConnections() bool
- func (x *RedisProxy_ConnPoolSettings) HasOpTimeout() bool
- func (*RedisProxy_ConnPoolSettings) ProtoMessage()
- func (x *RedisProxy_ConnPoolSettings) ProtoReflect() protoreflect.Message
- func (x *RedisProxy_ConnPoolSettings) Reset()
- func (x *RedisProxy_ConnPoolSettings) SetBufferFlushTimeout(v *durationpb.Duration)
- func (x *RedisProxy_ConnPoolSettings) SetConnectionRateLimit(v *RedisProxy_ConnectionRateLimit)
- func (x *RedisProxy_ConnPoolSettings) SetDnsCacheConfig(v *v32.DnsCacheConfig)
- func (x *RedisProxy_ConnPoolSettings) SetEnableCommandStats(v bool)
- func (x *RedisProxy_ConnPoolSettings) SetEnableHashtagging(v bool)
- func (x *RedisProxy_ConnPoolSettings) SetEnableRedirection(v bool)
- func (x *RedisProxy_ConnPoolSettings) SetMaxBufferSizeBeforeFlush(v uint32)
- func (x *RedisProxy_ConnPoolSettings) SetMaxUpstreamUnknownConnections(v *wrapperspb.UInt32Value)
- func (x *RedisProxy_ConnPoolSettings) SetOpTimeout(v *durationpb.Duration)
- func (x *RedisProxy_ConnPoolSettings) SetReadPolicy(v RedisProxy_ConnPoolSettings_ReadPolicy)
- func (x *RedisProxy_ConnPoolSettings) String() string
- type RedisProxy_ConnPoolSettings_ReadPolicy
- func (RedisProxy_ConnPoolSettings_ReadPolicy) Descriptor() protoreflect.EnumDescriptor
- func (x RedisProxy_ConnPoolSettings_ReadPolicy) Enum() *RedisProxy_ConnPoolSettings_ReadPolicy
- func (x RedisProxy_ConnPoolSettings_ReadPolicy) Number() protoreflect.EnumNumber
- func (x RedisProxy_ConnPoolSettings_ReadPolicy) String() string
- func (RedisProxy_ConnPoolSettings_ReadPolicy) Type() protoreflect.EnumType
- type RedisProxy_ConnPoolSettings_builder
- type RedisProxy_ConnectionRateLimit
- func (x *RedisProxy_ConnectionRateLimit) GetConnectionRateLimitPerSec() uint32
- func (*RedisProxy_ConnectionRateLimit) ProtoMessage()
- func (x *RedisProxy_ConnectionRateLimit) ProtoReflect() protoreflect.Message
- func (x *RedisProxy_ConnectionRateLimit) Reset()
- func (x *RedisProxy_ConnectionRateLimit) SetConnectionRateLimitPerSec(v uint32)
- func (x *RedisProxy_ConnectionRateLimit) String() string
- type RedisProxy_ConnectionRateLimit_builder
- type RedisProxy_PrefixRoutes
- func (x *RedisProxy_PrefixRoutes) ClearCatchAllRoute()
- func (x *RedisProxy_PrefixRoutes) GetCaseInsensitive() bool
- func (x *RedisProxy_PrefixRoutes) GetCatchAllRoute() *RedisProxy_PrefixRoutes_Route
- func (x *RedisProxy_PrefixRoutes) GetRoutes() []*RedisProxy_PrefixRoutes_Route
- func (x *RedisProxy_PrefixRoutes) HasCatchAllRoute() bool
- func (*RedisProxy_PrefixRoutes) ProtoMessage()
- func (x *RedisProxy_PrefixRoutes) ProtoReflect() protoreflect.Message
- func (x *RedisProxy_PrefixRoutes) Reset()
- func (x *RedisProxy_PrefixRoutes) SetCaseInsensitive(v bool)
- func (x *RedisProxy_PrefixRoutes) SetCatchAllRoute(v *RedisProxy_PrefixRoutes_Route)
- func (x *RedisProxy_PrefixRoutes) SetRoutes(v []*RedisProxy_PrefixRoutes_Route)
- func (x *RedisProxy_PrefixRoutes) String() string
- type RedisProxy_PrefixRoutes_Route
- func (x *RedisProxy_PrefixRoutes_Route) ClearReadCommandPolicy()
- func (x *RedisProxy_PrefixRoutes_Route) GetCluster() string
- func (x *RedisProxy_PrefixRoutes_Route) GetKeyFormatter() string
- func (x *RedisProxy_PrefixRoutes_Route) GetPrefix() string
- func (x *RedisProxy_PrefixRoutes_Route) GetReadCommandPolicy() *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy
- func (x *RedisProxy_PrefixRoutes_Route) GetRemovePrefix() bool
- func (x *RedisProxy_PrefixRoutes_Route) GetRequestMirrorPolicy() []*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy
- func (x *RedisProxy_PrefixRoutes_Route) HasReadCommandPolicy() bool
- func (*RedisProxy_PrefixRoutes_Route) ProtoMessage()
- func (x *RedisProxy_PrefixRoutes_Route) ProtoReflect() protoreflect.Message
- func (x *RedisProxy_PrefixRoutes_Route) Reset()
- func (x *RedisProxy_PrefixRoutes_Route) SetCluster(v string)
- func (x *RedisProxy_PrefixRoutes_Route) SetKeyFormatter(v string)
- func (x *RedisProxy_PrefixRoutes_Route) SetPrefix(v string)
- func (x *RedisProxy_PrefixRoutes_Route) SetReadCommandPolicy(v *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy)
- func (x *RedisProxy_PrefixRoutes_Route) SetRemovePrefix(v bool)
- func (x *RedisProxy_PrefixRoutes_Route) SetRequestMirrorPolicy(v []*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy)
- func (x *RedisProxy_PrefixRoutes_Route) String() string
- type RedisProxy_PrefixRoutes_Route_ReadCommandPolicy
- func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) GetCluster() string
- func (*RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) ProtoMessage()
- func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) ProtoReflect() protoreflect.Message
- func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) Reset()
- func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) SetCluster(v string)
- func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) String() string
- type RedisProxy_PrefixRoutes_Route_ReadCommandPolicy_builder
- type RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ClearRuntimeFraction()
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetCluster() string
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetExcludeReadCommands() bool
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetRuntimeFraction() *v3.RuntimeFractionalPercent
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) HasRuntimeFraction() bool
- func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ProtoMessage()
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ProtoReflect() protoreflect.Message
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) Reset()
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetCluster(v string)
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetExcludeReadCommands(v bool)
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetRuntimeFraction(v *v3.RuntimeFractionalPercent)
- func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) String() string
- type RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy_builder
- type RedisProxy_PrefixRoutes_Route_builder
- type RedisProxy_PrefixRoutes_builder
- type RedisProxy_RedisFault
- func (x *RedisProxy_RedisFault) ClearDelay()
- func (x *RedisProxy_RedisFault) ClearFaultEnabled()
- func (x *RedisProxy_RedisFault) GetCommands() []string
- func (x *RedisProxy_RedisFault) GetDelay() *durationpb.Duration
- func (x *RedisProxy_RedisFault) GetFaultEnabled() *v3.RuntimeFractionalPercent
- func (x *RedisProxy_RedisFault) GetFaultType() RedisProxy_RedisFault_RedisFaultType
- func (x *RedisProxy_RedisFault) HasDelay() bool
- func (x *RedisProxy_RedisFault) HasFaultEnabled() bool
- func (*RedisProxy_RedisFault) ProtoMessage()
- func (x *RedisProxy_RedisFault) ProtoReflect() protoreflect.Message
- func (x *RedisProxy_RedisFault) Reset()
- func (x *RedisProxy_RedisFault) SetCommands(v []string)
- func (x *RedisProxy_RedisFault) SetDelay(v *durationpb.Duration)
- func (x *RedisProxy_RedisFault) SetFaultEnabled(v *v3.RuntimeFractionalPercent)
- func (x *RedisProxy_RedisFault) SetFaultType(v RedisProxy_RedisFault_RedisFaultType)
- func (x *RedisProxy_RedisFault) String() string
- type RedisProxy_RedisFault_RedisFaultType
- func (RedisProxy_RedisFault_RedisFaultType) Descriptor() protoreflect.EnumDescriptor
- func (x RedisProxy_RedisFault_RedisFaultType) Enum() *RedisProxy_RedisFault_RedisFaultType
- func (x RedisProxy_RedisFault_RedisFaultType) Number() protoreflect.EnumNumber
- func (x RedisProxy_RedisFault_RedisFaultType) String() string
- func (RedisProxy_RedisFault_RedisFaultType) Type() protoreflect.EnumType
- type RedisProxy_RedisFault_builder
- type RedisProxy_builder
Constants ¶
This section is empty.
Variables ¶
var ( RedisProxy_ConnPoolSettings_ReadPolicy_name = map[int32]string{ 0: "MASTER", 1: "PREFER_MASTER", 2: "REPLICA", 3: "PREFER_REPLICA", 4: "ANY", } RedisProxy_ConnPoolSettings_ReadPolicy_value = map[string]int32{ "MASTER": 0, "PREFER_MASTER": 1, "REPLICA": 2, "PREFER_REPLICA": 3, "ANY": 4, } )
Enum value maps for RedisProxy_ConnPoolSettings_ReadPolicy.
var ( RedisProxy_RedisFault_RedisFaultType_name = map[int32]string{ 0: "DELAY", 1: "ERROR", } RedisProxy_RedisFault_RedisFaultType_value = map[string]int32{ "DELAY": 0, "ERROR": 1, } )
Enum value maps for RedisProxy_RedisFault_RedisFaultType.
var File_envoy_extensions_filters_network_redis_proxy_v3_redis_proxy_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type AwsIam ¶
type AwsIam struct {
// An AwsCredentialProvider, allowing the use of a specific credential provider chain or specific provider settings
CredentialProvider *v31.AwsCredentialProvider `protobuf:"bytes,1,opt,name=credential_provider,json=credentialProvider,proto3" json:"credential_provider,omitempty"`
// The name of the cache, used when generating the authentication token.
CacheName string `protobuf:"bytes,2,opt,name=cache_name,json=cacheName,proto3" json:"cache_name,omitempty"`
// The optional service name to be used in AWS IAM authentication. If not provided, the service name will be set to “elasticache“. For Amazon MemoryDB
// the service name should be set to “memorydb“.
ServiceName string `protobuf:"bytes,3,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
// The optional AWS region that your cache is located in. If not provided, the region will be deduced using the region provider chain
// as described in :ref:`config_http_filters_aws_request_signing_region`.
Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"`
// Number of seconds before the IAM authentication token will expire. If not set, defaults to 60s (1 minute). Maximum of 900s (15 minutes)
// Expiration of the current authentication token will automatically trigger generation of a new token.
// As envoy will automatically continue to generate new tokens as required, there is no substantial benefit to using a long expiration value here.
ExpirationTime *durationpb.Duration `protobuf:"bytes,5,opt,name=expiration_time,json=expirationTime,proto3" json:"expiration_time,omitempty"`
// contains filtered or unexported fields
}
[#next-free-field: 6]
func (*AwsIam) GetCredentialProvider ¶
func (x *AwsIam) GetCredentialProvider() *v31.AwsCredentialProvider
func (*AwsIam) GetExpirationTime ¶
func (x *AwsIam) GetExpirationTime() *durationpb.Duration
func (*AwsIam) ProtoReflect ¶
func (x *AwsIam) ProtoReflect() protoreflect.Message
func (*AwsIam) SetCredentialProvider ¶
func (x *AwsIam) SetCredentialProvider(v *v31.AwsCredentialProvider)
func (*AwsIam) SetExpirationTime ¶
func (x *AwsIam) SetExpirationTime(v *durationpb.Duration)
type AwsIam_builder ¶
type AwsIam_builder struct {
// An AwsCredentialProvider, allowing the use of a specific credential provider chain or specific provider settings
CredentialProvider *v31.AwsCredentialProvider
// The name of the cache, used when generating the authentication token.
CacheName string
// The optional service name to be used in AWS IAM authentication. If not provided, the service name will be set to “elasticache“. For Amazon MemoryDB
// the service name should be set to “memorydb“.
ServiceName string
// The optional AWS region that your cache is located in. If not provided, the region will be deduced using the region provider chain
// as described in :ref:`config_http_filters_aws_request_signing_region`.
Region string
// Number of seconds before the IAM authentication token will expire. If not set, defaults to 60s (1 minute). Maximum of 900s (15 minutes)
// Expiration of the current authentication token will automatically trigger generation of a new token.
// As envoy will automatically continue to generate new tokens as required, there is no substantial benefit to using a long expiration value here.
ExpirationTime *durationpb.Duration
// contains filtered or unexported fields
}
func (AwsIam_builder) Build ¶
func (b0 AwsIam_builder) Build() *AwsIam
type RedisExternalAuthProvider ¶
type RedisExternalAuthProvider struct {
// External auth gRPC service configuration.
// It will be called every time an AUTH command is received from a client.
GrpcService *v3.GrpcService `protobuf:"bytes,1,opt,name=grpc_service,json=grpcService,proto3" json:"grpc_service,omitempty"`
// If set to true, the filter will expect an expiration timestamp in the response from the external
// auth service. This timestamp will be used to disable any further commands from the client after
// the expiration time, unless a new AUTH command is received and the external auth service returns
// a new expiration timestamp.
EnableAuthExpiration bool `protobuf:"varint,2,opt,name=enable_auth_expiration,json=enableAuthExpiration,proto3" json:"enable_auth_expiration,omitempty"`
// contains filtered or unexported fields
}
RedisExternalAuthProvider specifies a gRPC service that can be used to authenticate Redis clients. This service will be called every time an AUTH command is received from a client. If the service returns an error, authentication is considered failed. If the service returns a success, the client is considered authenticated. The service can also return an expiration timestamp, which will be used to disable any further commands from the client after it passes, unless a new AUTH command is received and the external auth service returns a new expiration timestamp.
func (*RedisExternalAuthProvider) ClearGrpcService ¶
func (x *RedisExternalAuthProvider) ClearGrpcService()
func (*RedisExternalAuthProvider) GetEnableAuthExpiration ¶
func (x *RedisExternalAuthProvider) GetEnableAuthExpiration() bool
func (*RedisExternalAuthProvider) GetGrpcService ¶
func (x *RedisExternalAuthProvider) GetGrpcService() *v3.GrpcService
func (*RedisExternalAuthProvider) HasGrpcService ¶
func (x *RedisExternalAuthProvider) HasGrpcService() bool
func (*RedisExternalAuthProvider) ProtoMessage ¶
func (*RedisExternalAuthProvider) ProtoMessage()
func (*RedisExternalAuthProvider) ProtoReflect ¶
func (x *RedisExternalAuthProvider) ProtoReflect() protoreflect.Message
func (*RedisExternalAuthProvider) Reset ¶
func (x *RedisExternalAuthProvider) Reset()
func (*RedisExternalAuthProvider) SetEnableAuthExpiration ¶
func (x *RedisExternalAuthProvider) SetEnableAuthExpiration(v bool)
func (*RedisExternalAuthProvider) SetGrpcService ¶
func (x *RedisExternalAuthProvider) SetGrpcService(v *v3.GrpcService)
func (*RedisExternalAuthProvider) String ¶
func (x *RedisExternalAuthProvider) String() string
type RedisExternalAuthProvider_builder ¶
type RedisExternalAuthProvider_builder struct {
// External auth gRPC service configuration.
// It will be called every time an AUTH command is received from a client.
GrpcService *v3.GrpcService
// If set to true, the filter will expect an expiration timestamp in the response from the external
// auth service. This timestamp will be used to disable any further commands from the client after
// the expiration time, unless a new AUTH command is received and the external auth service returns
// a new expiration timestamp.
EnableAuthExpiration bool
// contains filtered or unexported fields
}
func (RedisExternalAuthProvider_builder) Build ¶
func (b0 RedisExternalAuthProvider_builder) Build() *RedisExternalAuthProvider
type RedisProtocolOptions ¶
type RedisProtocolOptions struct {
// Upstream server password as defined by the “requirepass“ directive
// `<https://redis.io/topics/config>`_ in the server's configuration file.
// If “aws_iam“ is set, this field is ignored.
AuthPassword *v3.DataSource `protobuf:"bytes,1,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"`
// Upstream server username as defined by the “user“ directive
// `<https://redis.io/topics/acl>`_ in the server's configuration file.
// If “aws_iam“` is set, this field will be used as the authenticating user for redis IAM authentication.
// See “Create a new IAM-enabled user“ under `Setup <https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth-iam.html#auth-iam-setup>`_ for more details.
AuthUsername *v3.DataSource `protobuf:"bytes,2,opt,name=auth_username,json=authUsername,proto3" json:"auth_username,omitempty"`
// The cluster level configuration for AWS IAM authentication
AwsIam *AwsIam `protobuf:"bytes,3,opt,name=aws_iam,json=awsIam,proto3" json:"aws_iam,omitempty"`
// contains filtered or unexported fields
}
RedisProtocolOptions specifies Redis upstream protocol options. This object is used in :ref:`typed_extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`, keyed by the name “envoy.filters.network.redis_proxy“.
func (*RedisProtocolOptions) ClearAuthPassword ¶
func (x *RedisProtocolOptions) ClearAuthPassword()
func (*RedisProtocolOptions) ClearAuthUsername ¶
func (x *RedisProtocolOptions) ClearAuthUsername()
func (*RedisProtocolOptions) ClearAwsIam ¶
func (x *RedisProtocolOptions) ClearAwsIam()
func (*RedisProtocolOptions) GetAuthPassword ¶
func (x *RedisProtocolOptions) GetAuthPassword() *v3.DataSource
func (*RedisProtocolOptions) GetAuthUsername ¶
func (x *RedisProtocolOptions) GetAuthUsername() *v3.DataSource
func (*RedisProtocolOptions) GetAwsIam ¶
func (x *RedisProtocolOptions) GetAwsIam() *AwsIam
func (*RedisProtocolOptions) HasAuthPassword ¶
func (x *RedisProtocolOptions) HasAuthPassword() bool
func (*RedisProtocolOptions) HasAuthUsername ¶
func (x *RedisProtocolOptions) HasAuthUsername() bool
func (*RedisProtocolOptions) HasAwsIam ¶
func (x *RedisProtocolOptions) HasAwsIam() bool
func (*RedisProtocolOptions) ProtoMessage ¶
func (*RedisProtocolOptions) ProtoMessage()
func (*RedisProtocolOptions) ProtoReflect ¶
func (x *RedisProtocolOptions) ProtoReflect() protoreflect.Message
func (*RedisProtocolOptions) Reset ¶
func (x *RedisProtocolOptions) Reset()
func (*RedisProtocolOptions) SetAuthPassword ¶
func (x *RedisProtocolOptions) SetAuthPassword(v *v3.DataSource)
func (*RedisProtocolOptions) SetAuthUsername ¶
func (x *RedisProtocolOptions) SetAuthUsername(v *v3.DataSource)
func (*RedisProtocolOptions) SetAwsIam ¶
func (x *RedisProtocolOptions) SetAwsIam(v *AwsIam)
func (*RedisProtocolOptions) String ¶
func (x *RedisProtocolOptions) String() string
type RedisProtocolOptions_builder ¶
type RedisProtocolOptions_builder struct {
// Upstream server password as defined by the “requirepass“ directive
// `<https://redis.io/topics/config>`_ in the server's configuration file.
// If “aws_iam“ is set, this field is ignored.
AuthPassword *v3.DataSource
// Upstream server username as defined by the “user“ directive
// `<https://redis.io/topics/acl>`_ in the server's configuration file.
// If “aws_iam“` is set, this field will be used as the authenticating user for redis IAM authentication.
// See “Create a new IAM-enabled user“ under `Setup <https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth-iam.html#auth-iam-setup>`_ for more details.
AuthUsername *v3.DataSource
// The cluster level configuration for AWS IAM authentication
AwsIam *AwsIam
// contains filtered or unexported fields
}
func (RedisProtocolOptions_builder) Build ¶
func (b0 RedisProtocolOptions_builder) Build() *RedisProtocolOptions
type RedisProxy ¶
type RedisProxy struct {
// The prefix to use when emitting :ref:`statistics <config_network_filters_redis_proxy_stats>`.
StatPrefix string `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
// Network settings for the connection pool to the upstream clusters.
Settings *RedisProxy_ConnPoolSettings `protobuf:"bytes,3,opt,name=settings,proto3" json:"settings,omitempty"`
// Indicates that latency stat should be computed in microseconds. By default it is computed in
// milliseconds. This does not apply to upstream command stats currently.
LatencyInMicros bool `protobuf:"varint,4,opt,name=latency_in_micros,json=latencyInMicros,proto3" json:"latency_in_micros,omitempty"`
// List of **unique** prefixes used to separate keys from different workloads to different
// clusters. Envoy will always favor the longest match first in case of overlap. A catch-all
// cluster can be used to forward commands when there is no match. Time complexity of the
// lookups are in O(min(longest key prefix, key length)).
//
// Example:
//
// .. code-block:: yaml
//
// prefix_routes:
// routes:
// - prefix: "ab"
// cluster: "cluster_a"
// - prefix: "abc"
// cluster: "cluster_b"
//
// When using the above routes, the following prefixes would be sent to:
//
// - “get abc:users“ would retrieve the key 'abc:users' from cluster_b.
// - “get ab:users“ would retrieve the key 'ab:users' from cluster_a.
// - “get z:users“ would return a NoUpstreamHost error. A :ref:`catch-all
// route<envoy_v3_api_field_extensions.filters.network.redis_proxy.v3.RedisProxy.PrefixRoutes.catch_all_route>`
// would have retrieved the key from that cluster instead.
//
// See the :ref:`configuration section
// <arch_overview_redis_configuration>` of the architecture overview for recommendations on
// configuring the backing clusters.
PrefixRoutes *RedisProxy_PrefixRoutes `protobuf:"bytes,5,opt,name=prefix_routes,json=prefixRoutes,proto3" json:"prefix_routes,omitempty"`
// Authenticate Redis client connections locally by forcing downstream clients to issue a `Redis
// AUTH command <https://redis.io/commands/auth>`_ with this password before enabling any other
// command. If an AUTH command's password matches this password, an "OK" response will be returned
// to the client. If the AUTH command password does not match this password, then an "ERR invalid
// password" error will be returned. If any other command is received before AUTH when this
// password is set, then a "NOAUTH Authentication required." error response will be sent to the
// client. If an AUTH command is received when the password is not set, then an "ERR Client sent
// AUTH, but no password is set" error will be returned.
//
// .. attention::
//
// This field is deprecated. Use :ref:`downstream_auth_passwords
// <envoy_v3_api_field_extensions.filters.network.redis_proxy.v3.RedisProxy.downstream_auth_passwords>`.
//
// Deprecated: Marked as deprecated in envoy/extensions/filters/network/redis_proxy/v3/redis_proxy.proto.
DownstreamAuthPassword *v3.DataSource `` /* 129-byte string literal not displayed */
// Authenticate Redis client connections locally by forcing downstream clients to issue a `Redis
// AUTH command <https://redis.io/commands/auth>`_ with one of these passwords before enabling any other
// command. If an AUTH command's password matches one of these passwords, an "OK" response will be returned
// to the client. If the AUTH command password does not match, then an "ERR invalid
// password" error will be returned. If any other command is received before AUTH when the
// password(s) are set, then a "NOAUTH Authentication required." error response will be sent to the
// client. If an AUTH command is received when the password is not set, then an "ERR Client sent
// AUTH, but no password is set" error will be returned.
DownstreamAuthPasswords []*v3.DataSource `` /* 132-byte string literal not displayed */
// List of faults to inject. Faults currently come in two flavors:
// - Delay, which delays a request.
// - Error, which responds to a request with an error. Errors can also have delays attached.
//
// Example:
//
// .. code-block:: yaml
//
// faults:
// - fault_type: ERROR
// fault_enabled:
// default_value:
// numerator: 10
// denominator: HUNDRED
// runtime_key: "bogus_key"
// commands:
// - GET
// - fault_type: DELAY
// fault_enabled:
// default_value:
// numerator: 10
// denominator: HUNDRED
// runtime_key: "bogus_key"
// delay: 2s
//
// See the :ref:`fault injection section
// <config_network_filters_redis_proxy_fault_injection>` for more information on how to configure this.
Faults []*RedisProxy_RedisFault `protobuf:"bytes,8,rep,name=faults,proto3" json:"faults,omitempty"`
// If a username is provided an ACL style AUTH command will be required with a username and password.
// Authenticate Redis client connections locally by forcing downstream clients to issue a `Redis
// AUTH command <https://redis.io/commands/auth>`_ with this username and the “downstream_auth_password“
// before enabling any other command. If an AUTH command's username and password matches this username
// and the “downstream_auth_password“ , an "OK" response will be returned to the client. If the AUTH
// command username or password does not match this username or the “downstream_auth_password“, then an
// "WRONGPASS invalid username-password pair" error will be returned. If any other command is received before AUTH when this
// password is set, then a "NOAUTH Authentication required." error response will be sent to the
// client. If an AUTH command is received when the password is not set, then an "ERR Client sent
// AUTH, but no ACL is set" error will be returned.
DownstreamAuthUsername *v3.DataSource `` /* 129-byte string literal not displayed */
// External authentication configuration. If set, instead of validating username and password against “downstream_auth_username“ and “downstream_auth_password“,
// the filter will call an external gRPC service to authenticate the client.
// A typical usage of this feature is for situations where the password is a one-time token that needs to be validated against a remote service, like a sidecar.
// Expiration is also supported, which will disable any further commands from the client after the expiration time, unless a new AUTH command is received and the external auth service returns a new expiration time.
// If the external auth service returns an error, authentication is considered failed.
// If this setting is set together with “downstream_auth_username“ and “downstream_auth_password“, the external auth service will be source of truth, but those fields will still be used for downstream authentication to the cluster.
// The API is defined by :ref:`RedisProxyExternalAuthRequest <envoy_v3_api_msg_service.redis_auth.v3.RedisProxyExternalAuthRequest>`.
ExternalAuthProvider *RedisExternalAuthProvider `protobuf:"bytes,10,opt,name=external_auth_provider,json=externalAuthProvider,proto3" json:"external_auth_provider,omitempty"`
// Optional configure redis custom commands for the proxy, eg -> ["my_custom_cmd1", "my_custom_cmd2"]
//
// .. note::
//
// The is to support redis's feature wherein new commands can be added using redis' modules api:
// https://redis.io/docs/latest/develop/reference/modules/
CustomCommands []string `protobuf:"bytes,11,rep,name=custom_commands,json=customCommands,proto3" json:"custom_commands,omitempty"`
// contains filtered or unexported fields
}
[#next-free-field: 12]
func (*RedisProxy) ClearDownstreamAuthPassword
deprecated
func (x *RedisProxy) ClearDownstreamAuthPassword()
Deprecated: Marked as deprecated in envoy/extensions/filters/network/redis_proxy/v3/redis_proxy.proto.
func (*RedisProxy) ClearDownstreamAuthUsername ¶
func (x *RedisProxy) ClearDownstreamAuthUsername()
func (*RedisProxy) ClearExternalAuthProvider ¶
func (x *RedisProxy) ClearExternalAuthProvider()
func (*RedisProxy) ClearPrefixRoutes ¶
func (x *RedisProxy) ClearPrefixRoutes()
func (*RedisProxy) ClearSettings ¶
func (x *RedisProxy) ClearSettings()
func (*RedisProxy) GetCustomCommands ¶
func (x *RedisProxy) GetCustomCommands() []string
func (*RedisProxy) GetDownstreamAuthPassword
deprecated
func (x *RedisProxy) GetDownstreamAuthPassword() *v3.DataSource
Deprecated: Marked as deprecated in envoy/extensions/filters/network/redis_proxy/v3/redis_proxy.proto.
func (*RedisProxy) GetDownstreamAuthPasswords ¶
func (x *RedisProxy) GetDownstreamAuthPasswords() []*v3.DataSource
func (*RedisProxy) GetDownstreamAuthUsername ¶
func (x *RedisProxy) GetDownstreamAuthUsername() *v3.DataSource
func (*RedisProxy) GetExternalAuthProvider ¶
func (x *RedisProxy) GetExternalAuthProvider() *RedisExternalAuthProvider
func (*RedisProxy) GetFaults ¶
func (x *RedisProxy) GetFaults() []*RedisProxy_RedisFault
func (*RedisProxy) GetLatencyInMicros ¶
func (x *RedisProxy) GetLatencyInMicros() bool
func (*RedisProxy) GetPrefixRoutes ¶
func (x *RedisProxy) GetPrefixRoutes() *RedisProxy_PrefixRoutes
func (*RedisProxy) GetSettings ¶
func (x *RedisProxy) GetSettings() *RedisProxy_ConnPoolSettings
func (*RedisProxy) GetStatPrefix ¶
func (x *RedisProxy) GetStatPrefix() string
func (*RedisProxy) HasDownstreamAuthPassword
deprecated
func (x *RedisProxy) HasDownstreamAuthPassword() bool
Deprecated: Marked as deprecated in envoy/extensions/filters/network/redis_proxy/v3/redis_proxy.proto.
func (*RedisProxy) HasDownstreamAuthUsername ¶
func (x *RedisProxy) HasDownstreamAuthUsername() bool
func (*RedisProxy) HasExternalAuthProvider ¶
func (x *RedisProxy) HasExternalAuthProvider() bool
func (*RedisProxy) HasPrefixRoutes ¶
func (x *RedisProxy) HasPrefixRoutes() bool
func (*RedisProxy) HasSettings ¶
func (x *RedisProxy) HasSettings() bool
func (*RedisProxy) ProtoMessage ¶
func (*RedisProxy) ProtoMessage()
func (*RedisProxy) ProtoReflect ¶
func (x *RedisProxy) ProtoReflect() protoreflect.Message
func (*RedisProxy) Reset ¶
func (x *RedisProxy) Reset()
func (*RedisProxy) SetCustomCommands ¶
func (x *RedisProxy) SetCustomCommands(v []string)
func (*RedisProxy) SetDownstreamAuthPassword
deprecated
func (x *RedisProxy) SetDownstreamAuthPassword(v *v3.DataSource)
Deprecated: Marked as deprecated in envoy/extensions/filters/network/redis_proxy/v3/redis_proxy.proto.
func (*RedisProxy) SetDownstreamAuthPasswords ¶
func (x *RedisProxy) SetDownstreamAuthPasswords(v []*v3.DataSource)
func (*RedisProxy) SetDownstreamAuthUsername ¶
func (x *RedisProxy) SetDownstreamAuthUsername(v *v3.DataSource)
func (*RedisProxy) SetExternalAuthProvider ¶
func (x *RedisProxy) SetExternalAuthProvider(v *RedisExternalAuthProvider)
func (*RedisProxy) SetFaults ¶
func (x *RedisProxy) SetFaults(v []*RedisProxy_RedisFault)
func (*RedisProxy) SetLatencyInMicros ¶
func (x *RedisProxy) SetLatencyInMicros(v bool)
func (*RedisProxy) SetPrefixRoutes ¶
func (x *RedisProxy) SetPrefixRoutes(v *RedisProxy_PrefixRoutes)
func (*RedisProxy) SetSettings ¶
func (x *RedisProxy) SetSettings(v *RedisProxy_ConnPoolSettings)
func (*RedisProxy) SetStatPrefix ¶
func (x *RedisProxy) SetStatPrefix(v string)
func (*RedisProxy) String ¶
func (x *RedisProxy) String() string
type RedisProxy_ConnPoolSettings ¶
type RedisProxy_ConnPoolSettings struct {
// Per-operation timeout in milliseconds. The timer starts when the first
// command of a pipeline is written to the backend connection. Each response received from Redis
// resets the timer since it signifies that the next command is being processed by the backend.
// The only exception to this behavior is when a connection to a backend is not yet established.
// In that case, the connect timeout on the cluster will govern the timeout until the connection
// is ready.
OpTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=op_timeout,json=opTimeout,proto3" json:"op_timeout,omitempty"`
// Use hash tagging on every redis key to guarantee that keys with the same hash tag will be
// forwarded to the same upstream. The hash key used for determining the upstream in a
// consistent hash ring configuration will be computed from the hash tagged key instead of the
// whole key. The algorithm used to compute the hash tag is identical to the `redis-cluster
// implementation <https://redis.io/topics/cluster-spec#keys-hash-tags>`_.
//
// Examples:
//
// * '{user1000}.following' and '{user1000}.followers' **will** be sent to the same upstream
// * '{user1000}.following' and '{user1001}.following' **might** be sent to the same upstream
EnableHashtagging bool `protobuf:"varint,2,opt,name=enable_hashtagging,json=enableHashtagging,proto3" json:"enable_hashtagging,omitempty"`
// Accept `moved and ask redirection
// <https://redis.io/topics/cluster-spec#redirection-and-resharding>`_ errors from upstream
// redis servers, and retry commands to the specified target server. The target server does not
// need to be known to the cluster manager. If the command cannot be redirected, then the
// original error is passed downstream unchanged. By default, this support is not enabled.
EnableRedirection bool `protobuf:"varint,3,opt,name=enable_redirection,json=enableRedirection,proto3" json:"enable_redirection,omitempty"`
// If “enable_redirection“ is set to true this option configures the DNS cache that the
// connection pool will use to resolve hostnames that are returned with MOVED and ASK responses.
// If no configuration is provided, DNS lookups will not be performed (and thus the MOVED/ASK errors
// will be propagated verbatim to the user).
DnsCacheConfig *v32.DnsCacheConfig `protobuf:"bytes,9,opt,name=dns_cache_config,json=dnsCacheConfig,proto3" json:"dns_cache_config,omitempty"`
// Maximum size of encoded request buffer before flush is triggered and encoded requests
// are sent upstream. If this is unset, the buffer flushes whenever it receives data
// and performs no batching.
// This feature makes it possible for multiple clients to send requests to Envoy and have
// them batched- for example if one is running several worker processes, each with its own
// Redis connection. There is no benefit to using this with a single downstream process.
// Recommended size (if enabled) is 1024 bytes.
MaxBufferSizeBeforeFlush uint32 `` /* 140-byte string literal not displayed */
// The encoded request buffer is flushed N milliseconds after the first request has been
// encoded, unless the buffer size has already exceeded “max_buffer_size_before_flush“.
// If “max_buffer_size_before_flush“ is not set, this flush timer is not used. Otherwise,
// the timer should be set according to the number of clients, overall request rate and
// desired maximum latency for a single command. For example, if there are many requests
// being batched together at a high rate, the buffer will likely be filled before the timer
// fires. Alternatively, if the request rate is lower the buffer will not be filled as often
// before the timer fires.
// If “max_buffer_size_before_flush“ is set, but “buffer_flush_timeout“ is not, the latter
// defaults to 3ms.
BufferFlushTimeout *durationpb.Duration `protobuf:"bytes,5,opt,name=buffer_flush_timeout,json=bufferFlushTimeout,proto3" json:"buffer_flush_timeout,omitempty"`
// “max_upstream_unknown_connections“ controls how many upstream connections to unknown hosts
// can be created at any given time by any given worker thread (see “enable_redirection“ for
// more details). If the host is unknown and a connection cannot be created due to enforcing
// this limit, then redirection will fail and the original redirection error will be passed
// downstream unchanged. This limit defaults to 100.
MaxUpstreamUnknownConnections *wrapperspb.UInt32Value `` /* 152-byte string literal not displayed */
// Enable per-command statistics per upstream cluster, in addition to the filter level aggregate
// count. These commands are measured in microseconds.
EnableCommandStats bool `protobuf:"varint,8,opt,name=enable_command_stats,json=enableCommandStats,proto3" json:"enable_command_stats,omitempty"`
// Read policy. The default is to read from the primary.
ReadPolicy RedisProxy_ConnPoolSettings_ReadPolicy `` /* 184-byte string literal not displayed */
// Ops or connection timeout triggers reconnection to redis server which could result in reconnection
// storm to busy redis server. This config is a protection to rate limit reconnection rate.
// If not set, there will be no rate limiting on the reconnection.
ConnectionRateLimit *RedisProxy_ConnectionRateLimit `protobuf:"bytes,10,opt,name=connection_rate_limit,json=connectionRateLimit,proto3" json:"connection_rate_limit,omitempty"`
// contains filtered or unexported fields
}
Redis connection pool settings. [#next-free-field: 11]
func (*RedisProxy_ConnPoolSettings) ClearBufferFlushTimeout ¶
func (x *RedisProxy_ConnPoolSettings) ClearBufferFlushTimeout()
func (*RedisProxy_ConnPoolSettings) ClearConnectionRateLimit ¶
func (x *RedisProxy_ConnPoolSettings) ClearConnectionRateLimit()
func (*RedisProxy_ConnPoolSettings) ClearDnsCacheConfig ¶
func (x *RedisProxy_ConnPoolSettings) ClearDnsCacheConfig()
func (*RedisProxy_ConnPoolSettings) ClearMaxUpstreamUnknownConnections ¶
func (x *RedisProxy_ConnPoolSettings) ClearMaxUpstreamUnknownConnections()
func (*RedisProxy_ConnPoolSettings) ClearOpTimeout ¶
func (x *RedisProxy_ConnPoolSettings) ClearOpTimeout()
func (*RedisProxy_ConnPoolSettings) GetBufferFlushTimeout ¶
func (x *RedisProxy_ConnPoolSettings) GetBufferFlushTimeout() *durationpb.Duration
func (*RedisProxy_ConnPoolSettings) GetConnectionRateLimit ¶
func (x *RedisProxy_ConnPoolSettings) GetConnectionRateLimit() *RedisProxy_ConnectionRateLimit
func (*RedisProxy_ConnPoolSettings) GetDnsCacheConfig ¶
func (x *RedisProxy_ConnPoolSettings) GetDnsCacheConfig() *v32.DnsCacheConfig
func (*RedisProxy_ConnPoolSettings) GetEnableCommandStats ¶
func (x *RedisProxy_ConnPoolSettings) GetEnableCommandStats() bool
func (*RedisProxy_ConnPoolSettings) GetEnableHashtagging ¶
func (x *RedisProxy_ConnPoolSettings) GetEnableHashtagging() bool
func (*RedisProxy_ConnPoolSettings) GetEnableRedirection ¶
func (x *RedisProxy_ConnPoolSettings) GetEnableRedirection() bool
func (*RedisProxy_ConnPoolSettings) GetMaxBufferSizeBeforeFlush ¶
func (x *RedisProxy_ConnPoolSettings) GetMaxBufferSizeBeforeFlush() uint32
func (*RedisProxy_ConnPoolSettings) GetMaxUpstreamUnknownConnections ¶
func (x *RedisProxy_ConnPoolSettings) GetMaxUpstreamUnknownConnections() *wrapperspb.UInt32Value
func (*RedisProxy_ConnPoolSettings) GetOpTimeout ¶
func (x *RedisProxy_ConnPoolSettings) GetOpTimeout() *durationpb.Duration
func (*RedisProxy_ConnPoolSettings) GetReadPolicy ¶
func (x *RedisProxy_ConnPoolSettings) GetReadPolicy() RedisProxy_ConnPoolSettings_ReadPolicy
func (*RedisProxy_ConnPoolSettings) HasBufferFlushTimeout ¶
func (x *RedisProxy_ConnPoolSettings) HasBufferFlushTimeout() bool
func (*RedisProxy_ConnPoolSettings) HasConnectionRateLimit ¶
func (x *RedisProxy_ConnPoolSettings) HasConnectionRateLimit() bool
func (*RedisProxy_ConnPoolSettings) HasDnsCacheConfig ¶
func (x *RedisProxy_ConnPoolSettings) HasDnsCacheConfig() bool
func (*RedisProxy_ConnPoolSettings) HasMaxUpstreamUnknownConnections ¶
func (x *RedisProxy_ConnPoolSettings) HasMaxUpstreamUnknownConnections() bool
func (*RedisProxy_ConnPoolSettings) HasOpTimeout ¶
func (x *RedisProxy_ConnPoolSettings) HasOpTimeout() bool
func (*RedisProxy_ConnPoolSettings) ProtoMessage ¶
func (*RedisProxy_ConnPoolSettings) ProtoMessage()
func (*RedisProxy_ConnPoolSettings) ProtoReflect ¶
func (x *RedisProxy_ConnPoolSettings) ProtoReflect() protoreflect.Message
func (*RedisProxy_ConnPoolSettings) Reset ¶
func (x *RedisProxy_ConnPoolSettings) Reset()
func (*RedisProxy_ConnPoolSettings) SetBufferFlushTimeout ¶
func (x *RedisProxy_ConnPoolSettings) SetBufferFlushTimeout(v *durationpb.Duration)
func (*RedisProxy_ConnPoolSettings) SetConnectionRateLimit ¶
func (x *RedisProxy_ConnPoolSettings) SetConnectionRateLimit(v *RedisProxy_ConnectionRateLimit)
func (*RedisProxy_ConnPoolSettings) SetDnsCacheConfig ¶
func (x *RedisProxy_ConnPoolSettings) SetDnsCacheConfig(v *v32.DnsCacheConfig)
func (*RedisProxy_ConnPoolSettings) SetEnableCommandStats ¶
func (x *RedisProxy_ConnPoolSettings) SetEnableCommandStats(v bool)
func (*RedisProxy_ConnPoolSettings) SetEnableHashtagging ¶
func (x *RedisProxy_ConnPoolSettings) SetEnableHashtagging(v bool)
func (*RedisProxy_ConnPoolSettings) SetEnableRedirection ¶
func (x *RedisProxy_ConnPoolSettings) SetEnableRedirection(v bool)
func (*RedisProxy_ConnPoolSettings) SetMaxBufferSizeBeforeFlush ¶
func (x *RedisProxy_ConnPoolSettings) SetMaxBufferSizeBeforeFlush(v uint32)
func (*RedisProxy_ConnPoolSettings) SetMaxUpstreamUnknownConnections ¶
func (x *RedisProxy_ConnPoolSettings) SetMaxUpstreamUnknownConnections(v *wrapperspb.UInt32Value)
func (*RedisProxy_ConnPoolSettings) SetOpTimeout ¶
func (x *RedisProxy_ConnPoolSettings) SetOpTimeout(v *durationpb.Duration)
func (*RedisProxy_ConnPoolSettings) SetReadPolicy ¶
func (x *RedisProxy_ConnPoolSettings) SetReadPolicy(v RedisProxy_ConnPoolSettings_ReadPolicy)
func (*RedisProxy_ConnPoolSettings) String ¶
func (x *RedisProxy_ConnPoolSettings) String() string
type RedisProxy_ConnPoolSettings_ReadPolicy ¶
type RedisProxy_ConnPoolSettings_ReadPolicy int32
ReadPolicy controls how Envoy routes read commands to Redis nodes. This is currently supported for Redis Cluster. All ReadPolicy settings except MASTER may return stale data because replication is asynchronous and requires some delay. You need to ensure that your application can tolerate stale data.
const ( // Default mode. Read from the current primary node. RedisProxy_ConnPoolSettings_MASTER RedisProxy_ConnPoolSettings_ReadPolicy = 0 // Read from the primary, but if it is unavailable, read from replica nodes. RedisProxy_ConnPoolSettings_PREFER_MASTER RedisProxy_ConnPoolSettings_ReadPolicy = 1 // Read from replica nodes. If multiple replica nodes are present within a shard, a random // node is selected. Healthy nodes have precedent over unhealthy nodes. RedisProxy_ConnPoolSettings_REPLICA RedisProxy_ConnPoolSettings_ReadPolicy = 2 // Read from the replica nodes (similar to REPLICA), but if all replicas are unavailable (not // present or unhealthy), read from the primary. RedisProxy_ConnPoolSettings_PREFER_REPLICA RedisProxy_ConnPoolSettings_ReadPolicy = 3 // Read from any node of the cluster. A random node is selected among the primary and // replicas, healthy nodes have precedent over unhealthy nodes. RedisProxy_ConnPoolSettings_ANY RedisProxy_ConnPoolSettings_ReadPolicy = 4 )
func (RedisProxy_ConnPoolSettings_ReadPolicy) Descriptor ¶
func (RedisProxy_ConnPoolSettings_ReadPolicy) Descriptor() protoreflect.EnumDescriptor
func (RedisProxy_ConnPoolSettings_ReadPolicy) Enum ¶
func (RedisProxy_ConnPoolSettings_ReadPolicy) Number ¶
func (x RedisProxy_ConnPoolSettings_ReadPolicy) Number() protoreflect.EnumNumber
func (RedisProxy_ConnPoolSettings_ReadPolicy) String ¶
func (x RedisProxy_ConnPoolSettings_ReadPolicy) String() string
func (RedisProxy_ConnPoolSettings_ReadPolicy) Type ¶
func (RedisProxy_ConnPoolSettings_ReadPolicy) Type() protoreflect.EnumType
type RedisProxy_ConnPoolSettings_builder ¶
type RedisProxy_ConnPoolSettings_builder struct {
// Per-operation timeout in milliseconds. The timer starts when the first
// command of a pipeline is written to the backend connection. Each response received from Redis
// resets the timer since it signifies that the next command is being processed by the backend.
// The only exception to this behavior is when a connection to a backend is not yet established.
// In that case, the connect timeout on the cluster will govern the timeout until the connection
// is ready.
OpTimeout *durationpb.Duration
// Use hash tagging on every redis key to guarantee that keys with the same hash tag will be
// forwarded to the same upstream. The hash key used for determining the upstream in a
// consistent hash ring configuration will be computed from the hash tagged key instead of the
// whole key. The algorithm used to compute the hash tag is identical to the `redis-cluster
// implementation <https://redis.io/topics/cluster-spec#keys-hash-tags>`_.
//
// Examples:
//
// * '{user1000}.following' and '{user1000}.followers' **will** be sent to the same upstream
// * '{user1000}.following' and '{user1001}.following' **might** be sent to the same upstream
EnableHashtagging bool
// Accept `moved and ask redirection
// <https://redis.io/topics/cluster-spec#redirection-and-resharding>`_ errors from upstream
// redis servers, and retry commands to the specified target server. The target server does not
// need to be known to the cluster manager. If the command cannot be redirected, then the
// original error is passed downstream unchanged. By default, this support is not enabled.
EnableRedirection bool
// If “enable_redirection“ is set to true this option configures the DNS cache that the
// connection pool will use to resolve hostnames that are returned with MOVED and ASK responses.
// If no configuration is provided, DNS lookups will not be performed (and thus the MOVED/ASK errors
// will be propagated verbatim to the user).
DnsCacheConfig *v32.DnsCacheConfig
// Maximum size of encoded request buffer before flush is triggered and encoded requests
// are sent upstream. If this is unset, the buffer flushes whenever it receives data
// and performs no batching.
// This feature makes it possible for multiple clients to send requests to Envoy and have
// them batched- for example if one is running several worker processes, each with its own
// Redis connection. There is no benefit to using this with a single downstream process.
// Recommended size (if enabled) is 1024 bytes.
MaxBufferSizeBeforeFlush uint32
// The encoded request buffer is flushed N milliseconds after the first request has been
// encoded, unless the buffer size has already exceeded “max_buffer_size_before_flush“.
// If “max_buffer_size_before_flush“ is not set, this flush timer is not used. Otherwise,
// the timer should be set according to the number of clients, overall request rate and
// desired maximum latency for a single command. For example, if there are many requests
// being batched together at a high rate, the buffer will likely be filled before the timer
// fires. Alternatively, if the request rate is lower the buffer will not be filled as often
// before the timer fires.
// If “max_buffer_size_before_flush“ is set, but “buffer_flush_timeout“ is not, the latter
// defaults to 3ms.
BufferFlushTimeout *durationpb.Duration
// “max_upstream_unknown_connections“ controls how many upstream connections to unknown hosts
// can be created at any given time by any given worker thread (see “enable_redirection“ for
// more details). If the host is unknown and a connection cannot be created due to enforcing
// this limit, then redirection will fail and the original redirection error will be passed
// downstream unchanged. This limit defaults to 100.
MaxUpstreamUnknownConnections *wrapperspb.UInt32Value
// Enable per-command statistics per upstream cluster, in addition to the filter level aggregate
// count. These commands are measured in microseconds.
EnableCommandStats bool
// Read policy. The default is to read from the primary.
ReadPolicy RedisProxy_ConnPoolSettings_ReadPolicy
// Ops or connection timeout triggers reconnection to redis server which could result in reconnection
// storm to busy redis server. This config is a protection to rate limit reconnection rate.
// If not set, there will be no rate limiting on the reconnection.
ConnectionRateLimit *RedisProxy_ConnectionRateLimit
// contains filtered or unexported fields
}
func (RedisProxy_ConnPoolSettings_builder) Build ¶
func (b0 RedisProxy_ConnPoolSettings_builder) Build() *RedisProxy_ConnPoolSettings
type RedisProxy_ConnectionRateLimit ¶
type RedisProxy_ConnectionRateLimit struct {
// Reconnection rate per sec. Rate limiting is implemented with TokenBucket.
ConnectionRateLimitPerSec uint32 `` /* 143-byte string literal not displayed */
// contains filtered or unexported fields
}
Configuration to limit reconnection rate to redis server to protect redis server from client reconnection storm.
func (*RedisProxy_ConnectionRateLimit) GetConnectionRateLimitPerSec ¶
func (x *RedisProxy_ConnectionRateLimit) GetConnectionRateLimitPerSec() uint32
func (*RedisProxy_ConnectionRateLimit) ProtoMessage ¶
func (*RedisProxy_ConnectionRateLimit) ProtoMessage()
func (*RedisProxy_ConnectionRateLimit) ProtoReflect ¶
func (x *RedisProxy_ConnectionRateLimit) ProtoReflect() protoreflect.Message
func (*RedisProxy_ConnectionRateLimit) Reset ¶
func (x *RedisProxy_ConnectionRateLimit) Reset()
func (*RedisProxy_ConnectionRateLimit) SetConnectionRateLimitPerSec ¶
func (x *RedisProxy_ConnectionRateLimit) SetConnectionRateLimitPerSec(v uint32)
func (*RedisProxy_ConnectionRateLimit) String ¶
func (x *RedisProxy_ConnectionRateLimit) String() string
type RedisProxy_ConnectionRateLimit_builder ¶
type RedisProxy_ConnectionRateLimit_builder struct {
// Reconnection rate per sec. Rate limiting is implemented with TokenBucket.
ConnectionRateLimitPerSec uint32
// contains filtered or unexported fields
}
func (RedisProxy_ConnectionRateLimit_builder) Build ¶
func (b0 RedisProxy_ConnectionRateLimit_builder) Build() *RedisProxy_ConnectionRateLimit
type RedisProxy_PrefixRoutes ¶
type RedisProxy_PrefixRoutes struct {
// List of prefix routes.
Routes []*RedisProxy_PrefixRoutes_Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
// Indicates that prefix matching should be case insensitive.
CaseInsensitive bool `protobuf:"varint,2,opt,name=case_insensitive,json=caseInsensitive,proto3" json:"case_insensitive,omitempty"`
// Optional catch-all route to forward commands that doesn't match any of the routes. The
// catch-all route becomes required when no routes are specified.
CatchAllRoute *RedisProxy_PrefixRoutes_Route `protobuf:"bytes,4,opt,name=catch_all_route,json=catchAllRoute,proto3" json:"catch_all_route,omitempty"`
// contains filtered or unexported fields
}
func (*RedisProxy_PrefixRoutes) ClearCatchAllRoute ¶
func (x *RedisProxy_PrefixRoutes) ClearCatchAllRoute()
func (*RedisProxy_PrefixRoutes) GetCaseInsensitive ¶
func (x *RedisProxy_PrefixRoutes) GetCaseInsensitive() bool
func (*RedisProxy_PrefixRoutes) GetCatchAllRoute ¶
func (x *RedisProxy_PrefixRoutes) GetCatchAllRoute() *RedisProxy_PrefixRoutes_Route
func (*RedisProxy_PrefixRoutes) GetRoutes ¶
func (x *RedisProxy_PrefixRoutes) GetRoutes() []*RedisProxy_PrefixRoutes_Route
func (*RedisProxy_PrefixRoutes) HasCatchAllRoute ¶
func (x *RedisProxy_PrefixRoutes) HasCatchAllRoute() bool
func (*RedisProxy_PrefixRoutes) ProtoMessage ¶
func (*RedisProxy_PrefixRoutes) ProtoMessage()
func (*RedisProxy_PrefixRoutes) ProtoReflect ¶
func (x *RedisProxy_PrefixRoutes) ProtoReflect() protoreflect.Message
func (*RedisProxy_PrefixRoutes) Reset ¶
func (x *RedisProxy_PrefixRoutes) Reset()
func (*RedisProxy_PrefixRoutes) SetCaseInsensitive ¶
func (x *RedisProxy_PrefixRoutes) SetCaseInsensitive(v bool)
func (*RedisProxy_PrefixRoutes) SetCatchAllRoute ¶
func (x *RedisProxy_PrefixRoutes) SetCatchAllRoute(v *RedisProxy_PrefixRoutes_Route)
func (*RedisProxy_PrefixRoutes) SetRoutes ¶
func (x *RedisProxy_PrefixRoutes) SetRoutes(v []*RedisProxy_PrefixRoutes_Route)
func (*RedisProxy_PrefixRoutes) String ¶
func (x *RedisProxy_PrefixRoutes) String() string
type RedisProxy_PrefixRoutes_Route ¶
type RedisProxy_PrefixRoutes_Route struct {
// String prefix that must match the beginning of the keys. Envoy will always favor the
// longest match.
Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`
// Indicates if the prefix needs to be removed from the key when forwarded.
RemovePrefix bool `protobuf:"varint,2,opt,name=remove_prefix,json=removePrefix,proto3" json:"remove_prefix,omitempty"`
// Upstream cluster to forward the command to.
Cluster string `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
// Indicates that the route has a request mirroring policy.
RequestMirrorPolicy []*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy `protobuf:"bytes,4,rep,name=request_mirror_policy,json=requestMirrorPolicy,proto3" json:"request_mirror_policy,omitempty"`
// Indicates how redis key should be formatted. To substitute redis key into the formatting
// expression, use %KEY% as a string replacement command.
KeyFormatter string `protobuf:"bytes,5,opt,name=key_formatter,json=keyFormatter,proto3" json:"key_formatter,omitempty"`
// Indicates that the route has a read command policy
ReadCommandPolicy *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy `protobuf:"bytes,6,opt,name=read_command_policy,json=readCommandPolicy,proto3" json:"read_command_policy,omitempty"`
// contains filtered or unexported fields
}
[#next-free-field: 7]
func (*RedisProxy_PrefixRoutes_Route) ClearReadCommandPolicy ¶
func (x *RedisProxy_PrefixRoutes_Route) ClearReadCommandPolicy()
func (*RedisProxy_PrefixRoutes_Route) GetCluster ¶
func (x *RedisProxy_PrefixRoutes_Route) GetCluster() string
func (*RedisProxy_PrefixRoutes_Route) GetKeyFormatter ¶
func (x *RedisProxy_PrefixRoutes_Route) GetKeyFormatter() string
func (*RedisProxy_PrefixRoutes_Route) GetPrefix ¶
func (x *RedisProxy_PrefixRoutes_Route) GetPrefix() string
func (*RedisProxy_PrefixRoutes_Route) GetReadCommandPolicy ¶
func (x *RedisProxy_PrefixRoutes_Route) GetReadCommandPolicy() *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy
func (*RedisProxy_PrefixRoutes_Route) GetRemovePrefix ¶
func (x *RedisProxy_PrefixRoutes_Route) GetRemovePrefix() bool
func (*RedisProxy_PrefixRoutes_Route) GetRequestMirrorPolicy ¶
func (x *RedisProxy_PrefixRoutes_Route) GetRequestMirrorPolicy() []*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy
func (*RedisProxy_PrefixRoutes_Route) HasReadCommandPolicy ¶
func (x *RedisProxy_PrefixRoutes_Route) HasReadCommandPolicy() bool
func (*RedisProxy_PrefixRoutes_Route) ProtoMessage ¶
func (*RedisProxy_PrefixRoutes_Route) ProtoMessage()
func (*RedisProxy_PrefixRoutes_Route) ProtoReflect ¶
func (x *RedisProxy_PrefixRoutes_Route) ProtoReflect() protoreflect.Message
func (*RedisProxy_PrefixRoutes_Route) Reset ¶
func (x *RedisProxy_PrefixRoutes_Route) Reset()
func (*RedisProxy_PrefixRoutes_Route) SetCluster ¶
func (x *RedisProxy_PrefixRoutes_Route) SetCluster(v string)
func (*RedisProxy_PrefixRoutes_Route) SetKeyFormatter ¶
func (x *RedisProxy_PrefixRoutes_Route) SetKeyFormatter(v string)
func (*RedisProxy_PrefixRoutes_Route) SetPrefix ¶
func (x *RedisProxy_PrefixRoutes_Route) SetPrefix(v string)
func (*RedisProxy_PrefixRoutes_Route) SetReadCommandPolicy ¶
func (x *RedisProxy_PrefixRoutes_Route) SetReadCommandPolicy(v *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy)
func (*RedisProxy_PrefixRoutes_Route) SetRemovePrefix ¶
func (x *RedisProxy_PrefixRoutes_Route) SetRemovePrefix(v bool)
func (*RedisProxy_PrefixRoutes_Route) SetRequestMirrorPolicy ¶
func (x *RedisProxy_PrefixRoutes_Route) SetRequestMirrorPolicy(v []*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy)
func (*RedisProxy_PrefixRoutes_Route) String ¶
func (x *RedisProxy_PrefixRoutes_Route) String() string
type RedisProxy_PrefixRoutes_Route_ReadCommandPolicy ¶
type RedisProxy_PrefixRoutes_Route_ReadCommandPolicy struct {
Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
// contains filtered or unexported fields
}
ReadCommandPolicy specifies that Envoy should route read commands to another cluster.
func (*RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) GetCluster ¶
func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) GetCluster() string
func (*RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) ProtoMessage ¶
func (*RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) ProtoMessage()
func (*RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) ProtoReflect ¶
func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) ProtoReflect() protoreflect.Message
func (*RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) Reset ¶
func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) Reset()
func (*RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) SetCluster ¶
func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) SetCluster(v string)
func (*RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) String ¶
func (x *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy) String() string
type RedisProxy_PrefixRoutes_Route_ReadCommandPolicy_builder ¶
type RedisProxy_PrefixRoutes_Route_ReadCommandPolicy_builder struct {
Cluster string
// contains filtered or unexported fields
}
func (RedisProxy_PrefixRoutes_Route_ReadCommandPolicy_builder) Build ¶
type RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy ¶
type RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy struct {
// Specifies the cluster that requests will be mirrored to. The cluster must
// exist in the cluster manager configuration.
Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
// If not specified or the runtime key is not present, all requests to the target cluster
// will be mirrored.
//
// If specified, Envoy will lookup the runtime key to get the percentage of requests to the
// mirror.
RuntimeFraction *v3.RuntimeFractionalPercent `protobuf:"bytes,2,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"`
// Set this to TRUE to only mirror write commands, this is effectively replicating the
// writes in a "fire and forget" manner.
ExcludeReadCommands bool `protobuf:"varint,3,opt,name=exclude_read_commands,json=excludeReadCommands,proto3" json:"exclude_read_commands,omitempty"`
// contains filtered or unexported fields
}
The router is capable of shadowing traffic from one cluster to another. The current implementation is "fire and forget," meaning Envoy will not wait for the shadow cluster to respond before returning the response from the primary cluster. All normal statistics are collected for the shadow cluster making this feature useful for testing.
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ClearRuntimeFraction ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ClearRuntimeFraction()
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetCluster ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetCluster() string
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetExcludeReadCommands ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetExcludeReadCommands() bool
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetRuntimeFraction ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetRuntimeFraction() *v3.RuntimeFractionalPercent
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) HasRuntimeFraction ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) HasRuntimeFraction() bool
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ProtoMessage ¶
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ProtoMessage()
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ProtoReflect ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ProtoReflect() protoreflect.Message
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) Reset ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) Reset()
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetCluster ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetCluster(v string)
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetExcludeReadCommands ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetExcludeReadCommands(v bool)
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetRuntimeFraction ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) SetRuntimeFraction(v *v3.RuntimeFractionalPercent)
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) String ¶
func (x *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) String() string
type RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy_builder ¶
type RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy_builder struct {
// Specifies the cluster that requests will be mirrored to. The cluster must
// exist in the cluster manager configuration.
Cluster string
// If not specified or the runtime key is not present, all requests to the target cluster
// will be mirrored.
//
// If specified, Envoy will lookup the runtime key to get the percentage of requests to the
// mirror.
RuntimeFraction *v3.RuntimeFractionalPercent
// Set this to TRUE to only mirror write commands, this is effectively replicating the
// writes in a "fire and forget" manner.
ExcludeReadCommands bool
// contains filtered or unexported fields
}
func (RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy_builder) Build ¶
type RedisProxy_PrefixRoutes_Route_builder ¶
type RedisProxy_PrefixRoutes_Route_builder struct {
// String prefix that must match the beginning of the keys. Envoy will always favor the
// longest match.
Prefix string
// Indicates if the prefix needs to be removed from the key when forwarded.
RemovePrefix bool
// Upstream cluster to forward the command to.
Cluster string
// Indicates that the route has a request mirroring policy.
RequestMirrorPolicy []*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy
// Indicates how redis key should be formatted. To substitute redis key into the formatting
// expression, use %KEY% as a string replacement command.
KeyFormatter string
// Indicates that the route has a read command policy
ReadCommandPolicy *RedisProxy_PrefixRoutes_Route_ReadCommandPolicy
// contains filtered or unexported fields
}
func (RedisProxy_PrefixRoutes_Route_builder) Build ¶
func (b0 RedisProxy_PrefixRoutes_Route_builder) Build() *RedisProxy_PrefixRoutes_Route
type RedisProxy_PrefixRoutes_builder ¶
type RedisProxy_PrefixRoutes_builder struct {
// List of prefix routes.
Routes []*RedisProxy_PrefixRoutes_Route
// Indicates that prefix matching should be case insensitive.
CaseInsensitive bool
// Optional catch-all route to forward commands that doesn't match any of the routes. The
// catch-all route becomes required when no routes are specified.
CatchAllRoute *RedisProxy_PrefixRoutes_Route
// contains filtered or unexported fields
}
func (RedisProxy_PrefixRoutes_builder) Build ¶
func (b0 RedisProxy_PrefixRoutes_builder) Build() *RedisProxy_PrefixRoutes
type RedisProxy_RedisFault ¶
type RedisProxy_RedisFault struct {
// Fault type.
FaultType RedisProxy_RedisFault_RedisFaultType `` /* 179-byte string literal not displayed */
// Percentage of requests fault applies to.
FaultEnabled *v3.RuntimeFractionalPercent `protobuf:"bytes,2,opt,name=fault_enabled,json=faultEnabled,proto3" json:"fault_enabled,omitempty"`
// Delay for all faults. If not set, defaults to zero
Delay *durationpb.Duration `protobuf:"bytes,3,opt,name=delay,proto3" json:"delay,omitempty"`
// Commands fault is restricted to, if any. If not set, fault applies to all commands
// other than auth and ping (due to special handling of those commands in Envoy).
Commands []string `protobuf:"bytes,4,rep,name=commands,proto3" json:"commands,omitempty"`
// contains filtered or unexported fields
}
RedisFault defines faults used for fault injection.
func (*RedisProxy_RedisFault) ClearDelay ¶
func (x *RedisProxy_RedisFault) ClearDelay()
func (*RedisProxy_RedisFault) ClearFaultEnabled ¶
func (x *RedisProxy_RedisFault) ClearFaultEnabled()
func (*RedisProxy_RedisFault) GetCommands ¶
func (x *RedisProxy_RedisFault) GetCommands() []string
func (*RedisProxy_RedisFault) GetDelay ¶
func (x *RedisProxy_RedisFault) GetDelay() *durationpb.Duration
func (*RedisProxy_RedisFault) GetFaultEnabled ¶
func (x *RedisProxy_RedisFault) GetFaultEnabled() *v3.RuntimeFractionalPercent
func (*RedisProxy_RedisFault) GetFaultType ¶
func (x *RedisProxy_RedisFault) GetFaultType() RedisProxy_RedisFault_RedisFaultType
func (*RedisProxy_RedisFault) HasDelay ¶
func (x *RedisProxy_RedisFault) HasDelay() bool
func (*RedisProxy_RedisFault) HasFaultEnabled ¶
func (x *RedisProxy_RedisFault) HasFaultEnabled() bool
func (*RedisProxy_RedisFault) ProtoMessage ¶
func (*RedisProxy_RedisFault) ProtoMessage()
func (*RedisProxy_RedisFault) ProtoReflect ¶
func (x *RedisProxy_RedisFault) ProtoReflect() protoreflect.Message
func (*RedisProxy_RedisFault) Reset ¶
func (x *RedisProxy_RedisFault) Reset()
func (*RedisProxy_RedisFault) SetCommands ¶
func (x *RedisProxy_RedisFault) SetCommands(v []string)
func (*RedisProxy_RedisFault) SetDelay ¶
func (x *RedisProxy_RedisFault) SetDelay(v *durationpb.Duration)
func (*RedisProxy_RedisFault) SetFaultEnabled ¶
func (x *RedisProxy_RedisFault) SetFaultEnabled(v *v3.RuntimeFractionalPercent)
func (*RedisProxy_RedisFault) SetFaultType ¶
func (x *RedisProxy_RedisFault) SetFaultType(v RedisProxy_RedisFault_RedisFaultType)
func (*RedisProxy_RedisFault) String ¶
func (x *RedisProxy_RedisFault) String() string
type RedisProxy_RedisFault_RedisFaultType ¶
type RedisProxy_RedisFault_RedisFaultType int32
const ( // Delays requests. This is the base fault; other faults can have delays added. RedisProxy_RedisFault_DELAY RedisProxy_RedisFault_RedisFaultType = 0 // Returns errors on requests. RedisProxy_RedisFault_ERROR RedisProxy_RedisFault_RedisFaultType = 1 )
func (RedisProxy_RedisFault_RedisFaultType) Descriptor ¶
func (RedisProxy_RedisFault_RedisFaultType) Descriptor() protoreflect.EnumDescriptor
func (RedisProxy_RedisFault_RedisFaultType) Enum ¶
func (x RedisProxy_RedisFault_RedisFaultType) Enum() *RedisProxy_RedisFault_RedisFaultType
func (RedisProxy_RedisFault_RedisFaultType) Number ¶
func (x RedisProxy_RedisFault_RedisFaultType) Number() protoreflect.EnumNumber
func (RedisProxy_RedisFault_RedisFaultType) String ¶
func (x RedisProxy_RedisFault_RedisFaultType) String() string
func (RedisProxy_RedisFault_RedisFaultType) Type ¶
func (RedisProxy_RedisFault_RedisFaultType) Type() protoreflect.EnumType
type RedisProxy_RedisFault_builder ¶
type RedisProxy_RedisFault_builder struct {
// Fault type.
FaultType RedisProxy_RedisFault_RedisFaultType
// Percentage of requests fault applies to.
FaultEnabled *v3.RuntimeFractionalPercent
// Delay for all faults. If not set, defaults to zero
Delay *durationpb.Duration
// Commands fault is restricted to, if any. If not set, fault applies to all commands
// other than auth and ping (due to special handling of those commands in Envoy).
Commands []string
// contains filtered or unexported fields
}
func (RedisProxy_RedisFault_builder) Build ¶
func (b0 RedisProxy_RedisFault_builder) Build() *RedisProxy_RedisFault
type RedisProxy_builder ¶
type RedisProxy_builder struct {
// The prefix to use when emitting :ref:`statistics <config_network_filters_redis_proxy_stats>`.
StatPrefix string
// Network settings for the connection pool to the upstream clusters.
Settings *RedisProxy_ConnPoolSettings
// Indicates that latency stat should be computed in microseconds. By default it is computed in
// milliseconds. This does not apply to upstream command stats currently.
LatencyInMicros bool
// List of **unique** prefixes used to separate keys from different workloads to different
// clusters. Envoy will always favor the longest match first in case of overlap. A catch-all
// cluster can be used to forward commands when there is no match. Time complexity of the
// lookups are in O(min(longest key prefix, key length)).
//
// Example:
//
// .. code-block:: yaml
//
// prefix_routes:
// routes:
// - prefix: "ab"
// cluster: "cluster_a"
// - prefix: "abc"
// cluster: "cluster_b"
//
// When using the above routes, the following prefixes would be sent to:
//
// - “get abc:users“ would retrieve the key 'abc:users' from cluster_b.
// - “get ab:users“ would retrieve the key 'ab:users' from cluster_a.
// - “get z:users“ would return a NoUpstreamHost error. A :ref:`catch-all
// route<envoy_v3_api_field_extensions.filters.network.redis_proxy.v3.RedisProxy.PrefixRoutes.catch_all_route>`
// would have retrieved the key from that cluster instead.
//
// See the :ref:`configuration section
// <arch_overview_redis_configuration>` of the architecture overview for recommendations on
// configuring the backing clusters.
PrefixRoutes *RedisProxy_PrefixRoutes
// Authenticate Redis client connections locally by forcing downstream clients to issue a `Redis
// AUTH command <https://redis.io/commands/auth>`_ with this password before enabling any other
// command. If an AUTH command's password matches this password, an "OK" response will be returned
// to the client. If the AUTH command password does not match this password, then an "ERR invalid
// password" error will be returned. If any other command is received before AUTH when this
// password is set, then a "NOAUTH Authentication required." error response will be sent to the
// client. If an AUTH command is received when the password is not set, then an "ERR Client sent
// AUTH, but no password is set" error will be returned.
//
// .. attention::
//
// This field is deprecated. Use :ref:`downstream_auth_passwords
// <envoy_v3_api_field_extensions.filters.network.redis_proxy.v3.RedisProxy.downstream_auth_passwords>`.
//
// Deprecated: Marked as deprecated in envoy/extensions/filters/network/redis_proxy/v3/redis_proxy.proto.
DownstreamAuthPassword *v3.DataSource
// Authenticate Redis client connections locally by forcing downstream clients to issue a `Redis
// AUTH command <https://redis.io/commands/auth>`_ with one of these passwords before enabling any other
// command. If an AUTH command's password matches one of these passwords, an "OK" response will be returned
// to the client. If the AUTH command password does not match, then an "ERR invalid
// password" error will be returned. If any other command is received before AUTH when the
// password(s) are set, then a "NOAUTH Authentication required." error response will be sent to the
// client. If an AUTH command is received when the password is not set, then an "ERR Client sent
// AUTH, but no password is set" error will be returned.
DownstreamAuthPasswords []*v3.DataSource
// List of faults to inject. Faults currently come in two flavors:
// - Delay, which delays a request.
// - Error, which responds to a request with an error. Errors can also have delays attached.
//
// Example:
//
// .. code-block:: yaml
//
// faults:
// - fault_type: ERROR
// fault_enabled:
// default_value:
// numerator: 10
// denominator: HUNDRED
// runtime_key: "bogus_key"
// commands:
// - GET
// - fault_type: DELAY
// fault_enabled:
// default_value:
// numerator: 10
// denominator: HUNDRED
// runtime_key: "bogus_key"
// delay: 2s
//
// See the :ref:`fault injection section
// <config_network_filters_redis_proxy_fault_injection>` for more information on how to configure this.
Faults []*RedisProxy_RedisFault
// If a username is provided an ACL style AUTH command will be required with a username and password.
// Authenticate Redis client connections locally by forcing downstream clients to issue a `Redis
// AUTH command <https://redis.io/commands/auth>`_ with this username and the “downstream_auth_password“
// before enabling any other command. If an AUTH command's username and password matches this username
// and the “downstream_auth_password“ , an "OK" response will be returned to the client. If the AUTH
// command username or password does not match this username or the “downstream_auth_password“, then an
// "WRONGPASS invalid username-password pair" error will be returned. If any other command is received before AUTH when this
// password is set, then a "NOAUTH Authentication required." error response will be sent to the
// client. If an AUTH command is received when the password is not set, then an "ERR Client sent
// AUTH, but no ACL is set" error will be returned.
DownstreamAuthUsername *v3.DataSource
// External authentication configuration. If set, instead of validating username and password against “downstream_auth_username“ and “downstream_auth_password“,
// the filter will call an external gRPC service to authenticate the client.
// A typical usage of this feature is for situations where the password is a one-time token that needs to be validated against a remote service, like a sidecar.
// Expiration is also supported, which will disable any further commands from the client after the expiration time, unless a new AUTH command is received and the external auth service returns a new expiration time.
// If the external auth service returns an error, authentication is considered failed.
// If this setting is set together with “downstream_auth_username“ and “downstream_auth_password“, the external auth service will be source of truth, but those fields will still be used for downstream authentication to the cluster.
// The API is defined by :ref:`RedisProxyExternalAuthRequest <envoy_v3_api_msg_service.redis_auth.v3.RedisProxyExternalAuthRequest>`.
ExternalAuthProvider *RedisExternalAuthProvider
// Optional configure redis custom commands for the proxy, eg -> ["my_custom_cmd1", "my_custom_cmd2"]
//
// .. note::
//
// The is to support redis's feature wherein new commands can be added using redis' modules api:
// https://redis.io/docs/latest/develop/reference/modules/
CustomCommands []string
// contains filtered or unexported fields
}
func (RedisProxy_builder) Build ¶
func (b0 RedisProxy_builder) Build() *RedisProxy
Source Files
¶
- redis_proxy.pb.go