Documentation ¶
Index ¶
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type Destination
- type DestinationRule
- type DestinationRuleList
- type DestinationRuleSpec
- type DestinationWeight
- type EnvoyFilter
- type EnvoyFilterList
- type EnvoyFilterSpec
- type Filter
- type FilterConfig
- type GRPCService
- type Gateway
- type GatewayList
- type GatewaySpec
- type GoogleGRPC
- type HTTPMatchRequest
- type HTTPRewrite
- type HTTPRoute
- type InsertPosition
- type L4MatchAttributes
- type ListenerMatch
- type LoadBalancerSettings
- type Port
- type PortSelector
- type Server
- type Server_TLSOptions
- type StringMatch
- type TCPRoute
- type TLSSettings
- type TrafficPolicy
- type TrafficPolicy_PortTrafficPolicy
- type VirtualService
- type VirtualServiceList
- type VirtualServiceSpec
Constants ¶
This section is empty.
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: networking.GroupName, Version: "v1alpha3"}
SchemeGroupVersion is group version used to register these objects
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type Destination ¶
type Destination struct { // REQUIRED. The name of a service from the service registry. Service // names are looked up from the platform's service registry (e.g., // Kubernetes services, Consul services, etc.) and from the hosts // declared by [ServiceEntry](#ServiceEntry). Traffic forwarded to // destinations that are not found in either of the two, will be dropped. // // *Note for Kubernetes users*: When short names are used (e.g. "reviews" // instead of "reviews.default.svc.cluster.local"), Istio will interpret // the short name based on the namespace of the rule, not the service. A // rule in the "default" namespace containing a host "reviews will be // interpreted as "reviews.default.svc.cluster.local", irrespective of // the actual namespace associated with the reviews service. _To avoid // potential misconfigurations, it is recommended to always use fully // qualified domain names over short names._ Host string `json:"host,omitempty"` // The name of a subset within the service. Applicable only to services // within the mesh. The subset must be defined in a corresponding // DestinationRule. Subset string `json:"subset,omitempty"` // Specifies the port on the host that is being addressed. If a service // exposes only a single port it is not required to explicitly select the // port. Port *PortSelector `json:"port,omitempty"` }
func (*Destination) DeepCopy ¶
func (in *Destination) DeepCopy() *Destination
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Destination.
func (*Destination) DeepCopyInto ¶
func (in *Destination) DeepCopyInto(out *Destination)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DestinationRule ¶
type DestinationRule struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DestinationRuleSpec `json:"spec"` }
func (*DestinationRule) DeepCopy ¶
func (in *DestinationRule) DeepCopy() *DestinationRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DestinationRule.
func (*DestinationRule) DeepCopyInto ¶
func (in *DestinationRule) DeepCopyInto(out *DestinationRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DestinationRule) DeepCopyObject ¶
func (in *DestinationRule) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DestinationRuleList ¶
type DestinationRuleList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []DestinationRule `json:"items"` }
func (*DestinationRuleList) DeepCopy ¶
func (in *DestinationRuleList) DeepCopy() *DestinationRuleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DestinationRuleList.
func (*DestinationRuleList) DeepCopyInto ¶
func (in *DestinationRuleList) DeepCopyInto(out *DestinationRuleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DestinationRuleList) DeepCopyObject ¶
func (in *DestinationRuleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DestinationRuleSpec ¶
type DestinationRuleSpec struct { // REQUIRED. The name of a service from the service registry. Service // names are looked up from the platform's service registry (e.g., // Kubernetes services, Consul services, etc.) and from the hosts // declared by [ServiceEntries](#ServiceEntry). Rules defined for // services that do not exist in the service registry will be ignored. // // *Note for Kubernetes users*: When short names are used (e.g. "reviews" // instead of "reviews.default.svc.cluster.local"), Istio will interpret // the short name based on the namespace of the rule, not the service. A // rule in the "default" namespace containing a host "reviews will be // interpreted as "reviews.default.svc.cluster.local", irrespective of // the actual namespace associated with the reviews service. _To avoid // potential misconfigurations, it is recommended to always use fully // qualified domain names over short names._ // // Note that the host field applies to both HTTP and TCP services. Host string `json:"host,omitempty"` // Traffic policies to apply (load balancing policy, connection pool // sizes, outlier detection). TrafficPolicy *TrafficPolicy `json:"trafficPolicy,omitempty"` }
func (*DestinationRuleSpec) DeepCopy ¶
func (in *DestinationRuleSpec) DeepCopy() *DestinationRuleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DestinationRuleSpec.
func (*DestinationRuleSpec) DeepCopyInto ¶
func (in *DestinationRuleSpec) DeepCopyInto(out *DestinationRuleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DestinationWeight ¶
type DestinationWeight struct { // REQUIRED. Destination uniquely identifies the instances of a service // to which the request/connection should be forwarded to. Destination *Destination `json:"destination,omitempty"` // REQUIRED. The proportion of traffic to be forwarded to the service // version. (0-100). Sum of weights across destinations SHOULD BE == 100. // If there is only destination in a rule, the weight value is assumed to // be 100. Weight int32 `json:"weight,omitempty"` }
func (*DestinationWeight) DeepCopy ¶
func (in *DestinationWeight) DeepCopy() *DestinationWeight
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DestinationWeight.
func (*DestinationWeight) DeepCopyInto ¶
func (in *DestinationWeight) DeepCopyInto(out *DestinationWeight)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvoyFilter ¶
type EnvoyFilter struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec EnvoyFilterSpec `json:"spec"` }
func (*EnvoyFilter) DeepCopy ¶
func (in *EnvoyFilter) DeepCopy() *EnvoyFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyFilter.
func (*EnvoyFilter) DeepCopyInto ¶
func (in *EnvoyFilter) DeepCopyInto(out *EnvoyFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EnvoyFilter) DeepCopyObject ¶
func (in *EnvoyFilter) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EnvoyFilterList ¶
type EnvoyFilterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []EnvoyFilter `json:"items"` }
func (*EnvoyFilterList) DeepCopy ¶
func (in *EnvoyFilterList) DeepCopy() *EnvoyFilterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyFilterList.
func (*EnvoyFilterList) DeepCopyInto ¶
func (in *EnvoyFilterList) DeepCopyInto(out *EnvoyFilterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EnvoyFilterList) DeepCopyObject ¶
func (in *EnvoyFilterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EnvoyFilterSpec ¶
type EnvoyFilterSpec struct { WorkloadLabels map[string]string `json:"workloadLabels,omitempty"` Filters []Filter `json:"filters"` }
func (*EnvoyFilterSpec) DeepCopy ¶
func (in *EnvoyFilterSpec) DeepCopy() *EnvoyFilterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyFilterSpec.
func (*EnvoyFilterSpec) DeepCopyInto ¶
func (in *EnvoyFilterSpec) DeepCopyInto(out *EnvoyFilterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Filter ¶
type Filter struct { // Insert position in the filter chain. Defaults to FIRST InsertPosition InsertPosition `json:"insertPosition"` // Filter will be added to the listener only if the match conditions are true. // If not specified, the filters will be applied to all listeners. ListenerMatch ListenerMatch `json:"listenerMatch"` // REQUIRED: The type of filter to instantiate. FilterType string `json:"filterType"` // REQUIRED: The name of the filter to instantiate. The name must match a supported // filter _compiled into_ Envoy. FilterName string `json:"filterName"` // REQUIRED: Filter specific configuration which depends on the filter being // instantiated. FilterConfig FilterConfig `json:"filterConfig"` }
func (*Filter) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Filter.
func (*Filter) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FilterConfig ¶
type FilterConfig struct {
GRPCService GRPCService `json:"grpc_service"`
}
func (*FilterConfig) DeepCopy ¶
func (in *FilterConfig) DeepCopy() *FilterConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilterConfig.
func (*FilterConfig) DeepCopyInto ¶
func (in *FilterConfig) DeepCopyInto(out *FilterConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GRPCService ¶
type GRPCService struct { GoogleGRPC GoogleGRPC `json:"google_grpc"` Timeout string `json:"timeout"` }
func (*GRPCService) DeepCopy ¶
func (in *GRPCService) DeepCopy() *GRPCService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCService.
func (*GRPCService) DeepCopyInto ¶
func (in *GRPCService) DeepCopyInto(out *GRPCService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Gateway ¶
type Gateway struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec GatewaySpec `json:"spec"` }
func (*Gateway) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Gateway.
func (*Gateway) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Gateway) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GatewayList ¶
type GatewayList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []Gateway `json:"items"` }
func (*GatewayList) DeepCopy ¶
func (in *GatewayList) DeepCopy() *GatewayList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayList.
func (*GatewayList) DeepCopyInto ¶
func (in *GatewayList) DeepCopyInto(out *GatewayList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GatewayList) DeepCopyObject ¶
func (in *GatewayList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GatewaySpec ¶
type GatewaySpec struct { // REQUIRED: A list of server specifications. Servers []*Server `json:"servers,omitempty"` // REQUIRED: One or more labels that indicate a specific set of pods/VMs // on which this gateway configuration should be applied. // The scope of label search is platform dependent. // On Kubernetes, for example, the scope includes pods running in // all reachable namespaces. Selector map[string]string `json:"selector,omitempty"` }
func (*GatewaySpec) DeepCopy ¶
func (in *GatewaySpec) DeepCopy() *GatewaySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewaySpec.
func (*GatewaySpec) DeepCopyInto ¶
func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GoogleGRPC ¶
type GoogleGRPC struct { TargetUri string `json:"target_uri"` StatPrefix string `json:"stat_prefix"` }
func (*GoogleGRPC) DeepCopy ¶
func (in *GoogleGRPC) DeepCopy() *GoogleGRPC
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GoogleGRPC.
func (*GoogleGRPC) DeepCopyInto ¶
func (in *GoogleGRPC) DeepCopyInto(out *GoogleGRPC)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HTTPMatchRequest ¶
type HTTPMatchRequest struct { // URI to match // values are case-sensitive and formatted as follows: // // - `exact: "value"` for exact string match // // - `prefix: "value"` for prefix-based match // // - `regex: "value"` for ECMAscript style regex-based match // Uri *StringMatch `json:"uri,omitempty"` // URI Scheme // values are case-sensitive and formatted as follows: // // - `exact: "value"` for exact string match // // - `prefix: "value"` for prefix-based match // // - `regex: "value"` for ECMAscript style regex-based match // Scheme *StringMatch `json:"scheme,omitempty"` // HTTP Method // values are case-sensitive and formatted as follows: // // - `exact: "value"` for exact string match // // - `prefix: "value"` for prefix-based match // // - `regex: "value"` for ECMAscript style regex-based match // Method *StringMatch `json:"method,omitempty"` // HTTP Authority // values are case-sensitive and formatted as follows: // // - `exact: "value"` for exact string match // // - `prefix: "value"` for prefix-based match // // - `regex: "value"` for ECMAscript style regex-based match // Authority *StringMatch `json:"authority,omitempty"` // The header keys must be lowercase and use hyphen as the separator, // e.g. _x-request-id_. // // Header values are case-sensitive and formatted as follows: // // - `exact: "value"` for exact string match // // - `prefix: "value"` for prefix-based match // // - `regex: "value"` for ECMAscript style regex-based match // // **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored. Headers map[string]*StringMatch `json:"headers,omitempty"` // Specifies the ports on the host that is being addressed. Many services // only expose a single port or label ports with the protocols they support, // in these cases it is not required to explicitly select the port. Port uint32 `json:"port,omitempty"` // One or more labels that constrain the applicability of a rule to // workloads with the given labels. If the VirtualService has a list of // gateways specified at the top, it should include the reserved gateway // `mesh` in order for this field to be applicable. SourceLabels map[string]string `json:"sourceLabels,omitempty"` // Names of gateways where the rule should be applied to. Gateway names // at the top of the VirtualService (if any) are overridden. The gateway match is // independent of sourceLabels. Gateways []string `json:"gateways,omitempty"` }
func (*HTTPMatchRequest) DeepCopy ¶
func (in *HTTPMatchRequest) DeepCopy() *HTTPMatchRequest
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPMatchRequest.
func (*HTTPMatchRequest) DeepCopyInto ¶
func (in *HTTPMatchRequest) DeepCopyInto(out *HTTPMatchRequest)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HTTPRewrite ¶
type HTTPRewrite struct { // rewrite the path (or the prefix) portion of the URI with this // value. If the original URI was matched based on prefix, the value // provided in this field will replace the corresponding matched prefix. Uri string `json:"uri,omitempty"` // rewrite the Authority/Host header with this value. Authority string `json:"authority,omitempty"` }
func (*HTTPRewrite) DeepCopy ¶
func (in *HTTPRewrite) DeepCopy() *HTTPRewrite
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRewrite.
func (*HTTPRewrite) DeepCopyInto ¶
func (in *HTTPRewrite) DeepCopyInto(out *HTTPRewrite)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HTTPRoute ¶
type HTTPRoute struct { // Match conditions to be satisfied for the rule to be // activated. All conditions inside a single match block have AND // semantics, while the list of match blocks have OR semantics. The rule // is matched if any one of the match blocks succeed. Match []*HTTPMatchRequest `json:"match,omitempty"` // A http rule can either redirect or forward (default) traffic. The // forwarding target can be one of several versions of a service (see // glossary in beginning of document). Weights associated with the // service version determine the proportion of traffic it receives. Route []*DestinationWeight `json:"route,omitempty"` // Rewrite HTTP URIs and Authority headers. Rewrite cannot be used with // Redirect primitive. Rewrite will be performed before forwarding. Rewrite *HTTPRewrite `json:"rewrite,omitempty"` }
func (*HTTPRoute) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRoute.
func (*HTTPRoute) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InsertPosition ¶
type InsertPosition struct { // Position of this filter in the filter chain. Index string `json:"index,omitempty"` // If BEFORE or AFTER position is specified, specify the name of the // filter relative to which this filter should be inserted. RelativeTo string `json:"relativeTo,omitempty"` }
Indicates the relative index in the filter chain where the filter should be inserted.
func (*InsertPosition) DeepCopy ¶
func (in *InsertPosition) DeepCopy() *InsertPosition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InsertPosition.
func (*InsertPosition) DeepCopyInto ¶
func (in *InsertPosition) DeepCopyInto(out *InsertPosition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type L4MatchAttributes ¶
type L4MatchAttributes struct { // IPv4 or IPv6 ip addresses of destination with optional subnet. E.g., // a.b.c.d/xx form or just a.b.c.d. DestinationSubnets []string `json:"destinationSubnets,omitempty"` // Specifies the port on the host that is being addressed. Many services // only expose a single port or label ports with the protocols they support, // in these cases it is not required to explicitly select the port. Port uint32 `json:"port,omitempty"` // IPv4 or IPv6 ip address of source with optional subnet. E.g., a.b.c.d/xx // form or just a.b.c.d // $hide_from_docs SourceSubnet string `json:"sourceSubnet,omitempty"` // One or more labels that constrain the applicability of a rule to // workloads with the given labels. If the VirtualService has a list of // gateways specified at the top, it should include the reserved gateway // `mesh` in order for this field to be applicable. SourceLabels map[string]string `json:"sourceLabels,omitempty"` // Names of gateways where the rule should be applied to. Gateway names // at the top of the VirtualService (if any) are overridden. The gateway // match is independent of sourceLabels. Gateways []string `json:"gateways,omitempty"` }
L4 connection match attributes. Note that L4 connection matching support is incomplete.
func (*L4MatchAttributes) DeepCopy ¶
func (in *L4MatchAttributes) DeepCopy() *L4MatchAttributes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L4MatchAttributes.
func (*L4MatchAttributes) DeepCopyInto ¶
func (in *L4MatchAttributes) DeepCopyInto(out *L4MatchAttributes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ListenerMatch ¶
type ListenerMatch struct { // The service port/gateway port to which traffic is being // sent/received. If not specified, matches all listeners. Even though // inbound listeners are generated for the instance/pod ports, only // service ports should be used to match listeners. PortNumber uint32 `json:"portNumber,omitempty"` // Instead of using specific port numbers, a set of ports matching a // given port name prefix can be selected. E.g., "mongo" selects ports // named mongo-port, mongo, mongoDB, MONGO, etc. Matching is case // insensitive. PortNamePrefix string `json:"portNamePrefix,omitempty"` // Inbound vs outbound sidecar listener or gateway listener. If not specified, // matches all listeners. ListenerType string `json:"listenerType,omitempty"` // Selects a class of listeners for the same protocol. If not // specified, applies to listeners on all protocols. Use the protocol // selection to select all HTTP listeners (includes HTTP2/gRPC/HTTPS // where Envoy terminates TLS) or all TCP listeners (includes HTTPS // passthrough using SNI). ListenerProtocol string `json:"listenerProtocol,omitempty"` // One or more IP addresses to which the listener is bound. If // specified, should match at least one address in the list. Address []string `json:"address,omitempty"` }
All conditions specified in the ListenerMatch must be met for the filter to be applied to a listener.
func (*ListenerMatch) DeepCopy ¶
func (in *ListenerMatch) DeepCopy() *ListenerMatch
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerMatch.
func (*ListenerMatch) DeepCopyInto ¶
func (in *ListenerMatch) DeepCopyInto(out *ListenerMatch)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancerSettings ¶
type LoadBalancerSettings struct { // Upstream load balancing policy. // // Types that are valid to be assigned to LbPolicy: // *LoadBalancerSettings_Simple // *LoadBalancerSettings_ConsistentHash Simple string `json:"simple,omitempty"` }
func (*LoadBalancerSettings) DeepCopy ¶
func (in *LoadBalancerSettings) DeepCopy() *LoadBalancerSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerSettings.
func (*LoadBalancerSettings) DeepCopyInto ¶
func (in *LoadBalancerSettings) DeepCopyInto(out *LoadBalancerSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Port ¶
type Port struct { // REQUIRED: A valid non-negative integer port number. Number uint32 `json:"number,omitempty"` // REQUIRED: The protocol exposed on the port. // MUST BE one of HTTP|HTTPS|GRPC|HTTP2|MONGO|TCP|TLS. // TLS is used to indicate secure connections to non HTTP services. Protocol string `json:"protocol,omitempty"` // Label assigned to the port. Name string `json:"name,omitempty"` }
Port describes the properties of a specific port of a service.
func (*Port) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Port.
func (*Port) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortSelector ¶
type PortSelector struct { // Types that are valid to be assigned to Port: // *PortSelector_Number // *PortSelector_Name Number uint32 `json:"number,omitempty"` }
PortSelector specifies the number of a port to be used for matching or selection for final routing.
func (*PortSelector) DeepCopy ¶
func (in *PortSelector) DeepCopy() *PortSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSelector.
func (*PortSelector) DeepCopyInto ¶
func (in *PortSelector) DeepCopyInto(out *PortSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Server ¶
type Server struct { // REQUIRED: The Port on which the proxy should listen for incoming // connections Port *Port `json:"port,omitempty"` // REQUIRED. A list of hosts exposed by this gateway. At least one // host is required. While typically applicable to // HTTP services, it can also be used for TCP services using TLS with // SNI. May contain a wildcard prefix for the bottom-level component of // a domain name. For example `*.foo.com` matches `bar.foo.com` // and `*.com` matches `bar.foo.com`, `example.com`, and so on. // // **Note**: A `VirtualService` that is bound to a gateway must have one // or more hosts that match the hosts specified in a server. The match // could be an exact match or a suffix match with the server's hosts. For // example, if the server's hosts specifies "*.example.com", // VirtualServices with hosts dev.example.com, prod.example.com will // match. However, VirtualServices with hosts example.com or // newexample.com will not match. Hosts []string `json:"hosts,omitempty"` // Set of TLS related options that govern the server's behavior. Use // these options to control if all http requests should be redirected to // https, and the TLS modes to use. Tls *Server_TLSOptions `json:"tls,omitempty"` }
func (*Server) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server.
func (*Server) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Server_TLSOptions ¶
type Server_TLSOptions struct { // If set to true, the load balancer will send a 301 redirect for all // http connections, asking the clients to use HTTPS. HttpsRedirect bool `json:"httpsRedirect,omitempty"` // Optional: Indicates whether connections to this port should be // secured using TLS. The value of this field determines how TLS is // enforced. Mode string `json:"mode,omitempty"` // REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file // holding the server-side TLS certificate to use. ServerCertificate string `json:"serverCertificate,omitempty"` // REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file // holding the server's private key. PrivateKey string `json:"privateKey,omitempty"` // REQUIRED if mode is `MUTUAL`. The path to a file containing // certificate authority certificates to use in verifying a presented // client side certificate. CaCertificates string `json:"caCertificates,omitempty"` // A list of alternate names to verify the subject identity in the // certificate presented by the client. SubjectAltNames []string `json:"subjectAltNames,omitempty"` }
func (*Server_TLSOptions) DeepCopy ¶
func (in *Server_TLSOptions) DeepCopy() *Server_TLSOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server_TLSOptions.
func (*Server_TLSOptions) DeepCopyInto ¶
func (in *Server_TLSOptions) DeepCopyInto(out *Server_TLSOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StringMatch ¶
type StringMatch struct { Exact string `json:"exact,omitempty"` Prefix string `json:"prefix,omitempty"` Regex string `json:"regex,omitempty"` }
func (*StringMatch) DeepCopy ¶
func (in *StringMatch) DeepCopy() *StringMatch
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringMatch.
func (*StringMatch) DeepCopyInto ¶
func (in *StringMatch) DeepCopyInto(out *StringMatch)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TCPRoute ¶
type TCPRoute struct { // Match conditions to be satisfied for the rule to be // activated. All conditions inside a single match block have AND // semantics, while the list of match blocks have OR semantics. The rule // is matched if any one of the match blocks succeed. Match []*L4MatchAttributes `json:"match,omitempty"` // The destination to which the connection should be forwarded to. // Currently, only one destination is allowed for TCP services. When TCP // weighted routing support is introduced in Envoy, multiple destinations // with weights can be specified. Route []*DestinationWeight `json:"route,omitempty"` }
func (*TCPRoute) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPRoute.
func (*TCPRoute) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSSettings ¶
type TLSSettings struct { // REQUIRED: Indicates whether connections to this port should be secured // using TLS. The value of this field determines how TLS is enforced. Mode string `json:"mode,omitempty"` // REQUIRED if mode is `MUTUAL`. The path to the file holding the // client-side TLS certificate to use. // Should be empty if mode is `ISTIO_MUTUAL`. ClientCertificate string `json:"clientCertificate,omitempty"` // REQUIRED if mode is `MUTUAL`. The path to the file holding the // client's private key. // Should be empty if mode is `ISTIO_MUTUAL`. PrivateKey string `json:"privateKey,omitempty"` // OPTIONAL: The path to the file containing certificate authority // certificates to use in verifying a presented server certificate. If // omitted, the proxy will not verify the server's certificate. // Should be empty if mode is `ISTIO_MUTUAL`. CaCertificates string `json:"caCertificates,omitempty"` // A list of alternate names to verify the subject identity in the // certificate. If specified, the proxy will verify that the server // certificate's subject alt name matches one of the specified values. // Should be empty if mode is `ISTIO_MUTUAL`. SubjectAltNames []string `json:"subjectAltNames,omitempty"` // SNI string to present to the server during TLS handshake. // Should be empty if mode is `ISTIO_MUTUAL`. Sni string `json:"sni,omitempty"` }
func (*TLSSettings) DeepCopy ¶
func (in *TLSSettings) DeepCopy() *TLSSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSettings.
func (*TLSSettings) DeepCopyInto ¶
func (in *TLSSettings) DeepCopyInto(out *TLSSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrafficPolicy ¶
type TrafficPolicy struct { // Settings controlling the load balancer algorithms. LoadBalancer *LoadBalancerSettings `json:"loadBalancer,omitempty"` // Settings controlling the volume of connections to an upstream service //ConnectionPool *ConnectionPoolSettings `json:"connectionPool,omitempty"` // Settings controlling eviction of unhealthy hosts from the load balancing pool //OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"` // TLS related settings for connections to the upstream service. //Tls *TLSSettings `json:"tls,omitempty"` // Traffic policies specific to individual ports. Note that port level // settings will override the destination-level settings. Traffic // settings specified at the destination-level will not be inherited when // overridden by port-level settings, i.e. default values will be applied // to fields omitted in port-level traffic policies. PortLevelSettings []*TrafficPolicy_PortTrafficPolicy `json:"portLevelSettings,omitempty"` }
Traffic policies to apply for a specific destination, across all destination ports. See DestinationRule for examples.
func (*TrafficPolicy) DeepCopy ¶
func (in *TrafficPolicy) DeepCopy() *TrafficPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrafficPolicy.
func (*TrafficPolicy) DeepCopyInto ¶
func (in *TrafficPolicy) DeepCopyInto(out *TrafficPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TrafficPolicy_PortTrafficPolicy ¶
type TrafficPolicy_PortTrafficPolicy struct { // Specifies the port name or number of a port on the destination service // on which this policy is being applied. // // Names must comply with DNS label syntax (rfc1035) and therefore cannot // collide with numbers. If there are multiple ports on a service with // the same protocol the names should be of the form <protocol-name>-<DNS // label>. Port *PortSelector `json:"port,omitempty"` // Settings controlling the load balancer algorithms. //LoadBalancer *LoadBalancerSettings `protobuf:"bytes,2,opt,name=load_balancer,json=loadBalancer" json:"load_balancer,omitempty"` // Settings controlling the volume of connections to an upstream service //ConnectionPool *ConnectionPoolSettings `protobuf:"bytes,3,opt,name=connection_pool,json=connectionPool" json:"connection_pool,omitempty"` // Settings controlling eviction of unhealthy hosts from the load balancing pool //OutlierDetection *OutlierDetection `protobuf:"bytes,4,opt,name=outlier_detection,json=outlierDetection" json:"outlier_detection,omitempty"` // TLS related settings for connections to the upstream service. Tls *TLSSettings `json:"tls,omitempty"` }
Traffic policies that apply to specific ports of the service
func (*TrafficPolicy_PortTrafficPolicy) DeepCopy ¶
func (in *TrafficPolicy_PortTrafficPolicy) DeepCopy() *TrafficPolicy_PortTrafficPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrafficPolicy_PortTrafficPolicy.
func (*TrafficPolicy_PortTrafficPolicy) DeepCopyInto ¶
func (in *TrafficPolicy_PortTrafficPolicy) DeepCopyInto(out *TrafficPolicy_PortTrafficPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualService ¶
type VirtualService struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VirtualServiceSpec `json:"spec"` }
func (*VirtualService) DeepCopy ¶
func (in *VirtualService) DeepCopy() *VirtualService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualService.
func (*VirtualService) DeepCopyInto ¶
func (in *VirtualService) DeepCopyInto(out *VirtualService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualService) DeepCopyObject ¶
func (in *VirtualService) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualServiceList ¶
type VirtualServiceList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []VirtualService `json:"items"` }
func (*VirtualServiceList) DeepCopy ¶
func (in *VirtualServiceList) DeepCopy() *VirtualServiceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceList.
func (*VirtualServiceList) DeepCopyInto ¶
func (in *VirtualServiceList) DeepCopyInto(out *VirtualServiceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualServiceList) DeepCopyObject ¶
func (in *VirtualServiceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualServiceSpec ¶
type VirtualServiceSpec struct { // REQUIRED. The destination hosts to which traffic is being sent. Could // be a DNS name with wildcard prefix or an IP address. Depending on the // platform, short-names can also be used instead of a FQDN (i.e. has no // dots in the name). In such a scenario, the FQDN of the host would be // derived based on the underlying platform. // // **A host name can be defined by only one VirtualService**. A single // VirtualService can be used to describe traffic properties for multiple // HTTP and TCP ports. // // *Note for Kubernetes users*: When short names are used (e.g. "reviews" // instead of "reviews.default.svc.cluster.local"), Istio will interpret // the short name based on the namespace of the rule, not the service. A // rule in the "default" namespace containing a host "reviews will be // interpreted as "reviews.default.svc.cluster.local", irrespective of // the actual namespace associated with the reviews service. _To avoid // potential misconfigurations, it is recommended to always use fully // qualified domain names over short names._ // // The hosts field applies to both HTTP and TCP services. Service inside // the mesh, i.e., those found in the service registry, must always be // referred to using their alphanumeric names. IP addresses are allowed // only for services defined via the Gateway. Hosts []string `json:"hosts,omitempty"` // The names of gateways and sidecars that should apply these routes. A // single VirtualService is used for sidecars inside the mesh as well as // for one or more gateways. The selection condition imposed by this // field can be overridden using the source field in the match conditions // of protocol-specific routes. The reserved word `mesh` is used to imply // all the sidecars in the mesh. When this field is omitted, the default // gateway (`mesh`) will be used, which would apply the rule to all // sidecars in the mesh. If a list of gateway names is provided, the // rules will apply only to the gateways. To apply the rules to both // gateways and sidecars, specify `mesh` as one of the gateway names. Gateways []string `json:"gateways,omitempty"` // An ordered list of route rules for HTTP traffic. HTTP routes will be // applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway // ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service // entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching // an incoming request is used. Http []*HTTPRoute `json:"http,omitempty"` // An ordered list of route rule for non-terminated TLS & HTTPS // traffic. Routing is typically performed using the SNI value presented // by the ClientHello message. TLS routes will be applied to platform // service ports named 'https-*', 'tls-*', unterminated gateway ports using // HTTPS/TLS protocols (i.e. with "passthrough" TLS mode) and service // entry ports using HTTPS/TLS protocols. The first rule matching an // incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports // without associated virtual service will be treated as opaque TCP // traffic. //Tls []*TLSRoute `protobuf:"bytes,5,rep,name=tls" json:"tls,omitempty"` // An ordered list of route rules for opaque TCP traffic. TCP routes will // be applied to any port that is not a HTTP or TLS port. The first rule // matching an incoming request is used. Tcp []*TCPRoute `json:"tcp,omitempty"` }
func (*VirtualServiceSpec) DeepCopy ¶
func (in *VirtualServiceSpec) DeepCopy() *VirtualServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceSpec.
func (*VirtualServiceSpec) DeepCopyInto ¶
func (in *VirtualServiceSpec) DeepCopyInto(out *VirtualServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.