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"`
// Additional HTTP headers to add before forwarding a request to the
// destination service.
AppendHeaders map[string]string `json:"appendHeaders,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.