pub struct UDPRouteRulesBackendRefs {
pub group: Option<String>,
pub kind: Option<String>,
pub name: String,
pub namespace: Option<String>,
pub port: Option<i32>,
pub weight: Option<i32>,
}
Expand description
BackendRef defines how a Route should forward a request to a Kubernetes resource.
Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace’s owner to accept the reference. See the ReferenceGrant documentation for details.
gateway:experimental:description
When the BackendRef points to a Kubernetes Service, implementations SHOULD honor the appProtocol field if it is set for the target Service Port.
Implementations supporting appProtocol SHOULD recognize the Kubernetes Standard Application Protocols defined in KEP-3726.
If a Service appProtocol isn’t specified, an implementation MAY infer the backend protocol through its own means. Implementations MAY infer the protocol from the Route type referring to the backend Service.
If a Route is not able to send traffic to the backend using the specified protocol then the backend is considered invalid. Implementations MUST set the “ResolvedRefs” condition to “False” with the “UnsupportedProtocol” reason.
</gateway:experimental:description>
Note that when the BackendTLSPolicy object is enabled by the implementation, there are some extra rules about validity to consider here. See the fields where this struct is used for more information about the exact behavior.
Fields§
§group: Option<String>
Group is the group of the referent. For example, “gateway.networking.k8s.io”. When unspecified or empty string, core API group is inferred.
kind: Option<String>
Kind is the Kubernetes resource kind of the referent. For example “Service”.
Defaults to “Service” when not specified.
ExternalName services can refer to CNAME DNS records that may live outside of the cluster and as such are difficult to reason about in terms of conformance. They also may not be safe to forward to (see CVE-2021-25740 for more information). Implementations SHOULD NOT support ExternalName Services.
Support: Core (Services with a type other than ExternalName)
Support: Implementation-specific (Services with type ExternalName)
name: String
Name is the name of the referent.
namespace: Option<String>
Namespace is the namespace of the backend. When unspecified, the local namespace is inferred.
Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace’s owner to accept the reference. See the ReferenceGrant documentation for details.
Support: Core
port: Option<i32>
Port specifies the destination port number to use for this resource. Port is required when the referent is a Kubernetes Service. In this case, the port number is the service port number, not the target port. For other resources, destination port might be derived from the referent resource or this field.
weight: Option<i32>
Weight specifies the proportion of requests forwarded to the referenced backend. This is computed as weight/(sum of all weights in this BackendRefs list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. Weight is not a percentage and the sum of weights does not need to equal 100.
If only one backend is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weight is set to 0, no traffic should be forwarded for this entry. If unspecified, weight defaults to 1.
Support for this field varies based on the context where used.
Trait Implementations§
Source§impl Clone for UDPRouteRulesBackendRefs
impl Clone for UDPRouteRulesBackendRefs
Source§fn clone(&self) -> UDPRouteRulesBackendRefs
fn clone(&self) -> UDPRouteRulesBackendRefs
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for UDPRouteRulesBackendRefs
impl Debug for UDPRouteRulesBackendRefs
Source§impl Default for UDPRouteRulesBackendRefs
impl Default for UDPRouteRulesBackendRefs
Source§fn default() -> UDPRouteRulesBackendRefs
fn default() -> UDPRouteRulesBackendRefs
Source§impl<'de> Deserialize<'de> for UDPRouteRulesBackendRefs
impl<'de> Deserialize<'de> for UDPRouteRulesBackendRefs
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for UDPRouteRulesBackendRefs
impl JsonSchema for UDPRouteRulesBackendRefs
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moreSource§impl PartialEq for UDPRouteRulesBackendRefs
impl PartialEq for UDPRouteRulesBackendRefs
Source§impl Serialize for UDPRouteRulesBackendRefs
impl Serialize for UDPRouteRulesBackendRefs
impl StructuralPartialEq for UDPRouteRulesBackendRefs
Auto Trait Implementations§
impl Freeze for UDPRouteRulesBackendRefs
impl RefUnwindSafe for UDPRouteRulesBackendRefs
impl Send for UDPRouteRulesBackendRefs
impl Sync for UDPRouteRulesBackendRefs
impl Unpin for UDPRouteRulesBackendRefs
impl UnwindSafe for UDPRouteRulesBackendRefs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more