diff --git a/mesh/v1alpha1/config.pb.go b/mesh/v1alpha1/config.pb.go index 33e9b4b7f5..9113cf2515 100644 --- a/mesh/v1alpha1/config.pb.go +++ b/mesh/v1alpha1/config.pb.go @@ -23,7 +23,7 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" import google_protobuf "github.com/gogo/protobuf/types" -import istio_networking_v1alpha32 "istio.io/api/networking/v1alpha3" +import istio_networking_v1alpha33 "istio.io/api/networking/v1alpha3" import io "io" @@ -125,24 +125,21 @@ func (MeshConfig_AccessLogEncoding) EnumDescriptor() ([]byte, []int) { type MeshConfig_OutboundTrafficPolicy_Mode int32 const ( - // outbound traffic will be restricted to services defined in the service registry as well as those defined - // through ServiceEntries + // outbound traffic will be restricted to services defined in the + // service registry as well as those defined through ServiceEntries MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY MeshConfig_OutboundTrafficPolicy_Mode = 0 - // outbound traffic to unknown destinations will be allowed, in case there are no services or ServiceEntries for the destination port + // outbound traffic to unknown destinations will be allowed, in case + // there are no services or ServiceEntries for the destination port MeshConfig_OutboundTrafficPolicy_ALLOW_ANY MeshConfig_OutboundTrafficPolicy_Mode = 1 - // not implemented. outbound traffic will be restricted to destinations defined in VirtualServices only - MeshConfig_OutboundTrafficPolicy_VIRTUAL_SERVICE_ONLY MeshConfig_OutboundTrafficPolicy_Mode = 2 ) var MeshConfig_OutboundTrafficPolicy_Mode_name = map[int32]string{ 0: "REGISTRY_ONLY", 1: "ALLOW_ANY", - 2: "VIRTUAL_SERVICE_ONLY", } var MeshConfig_OutboundTrafficPolicy_Mode_value = map[string]int32{ - "REGISTRY_ONLY": 0, - "ALLOW_ANY": 1, - "VIRTUAL_SERVICE_ONLY": 2, + "REGISTRY_ONLY": 0, + "ALLOW_ANY": 1, } func (x MeshConfig_OutboundTrafficPolicy_Mode) String() string { @@ -152,34 +149,6 @@ func (MeshConfig_OutboundTrafficPolicy_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptorConfig, []int{0, 0, 0} } -type MeshConfig_DefaultServiceDependency_Mode int32 - -const ( - // Configure routes to services in all namespaces, i.e. import - // services from all namespaces. - MeshConfig_DefaultServiceDependency_ALL_NAMESPACES MeshConfig_DefaultServiceDependency_Mode = 0 - // Only configure routes to services that are in the same namespace - // as the workload as well as services in namespaces specified in - // importNamespaces. - MeshConfig_DefaultServiceDependency_SAME_NAMESPACE MeshConfig_DefaultServiceDependency_Mode = 1 -) - -var MeshConfig_DefaultServiceDependency_Mode_name = map[int32]string{ - 0: "ALL_NAMESPACES", - 1: "SAME_NAMESPACE", -} -var MeshConfig_DefaultServiceDependency_Mode_value = map[string]int32{ - "ALL_NAMESPACES": 0, - "SAME_NAMESPACE": 1, -} - -func (x MeshConfig_DefaultServiceDependency_Mode) String() string { - return proto.EnumName(MeshConfig_DefaultServiceDependency_Mode_name, int32(x)) -} -func (MeshConfig_DefaultServiceDependency_Mode) EnumDescriptor() ([]byte, []int) { - return fileDescriptorConfig, []int{0, 1, 0} -} - // MeshConfig defines mesh-wide variables shared by all Envoy instances in the // Istio service mesh. // @@ -211,7 +180,7 @@ type MeshConfig struct { PolicyCheckFailOpen bool `protobuf:"varint,25,opt,name=policy_check_fail_open,json=policyCheckFailOpen,proto3" json:"policy_check_fail_open,omitempty"` // Enable session affinity for envoy mixer reports so that calls from a proxy will // always target the same mixer instance. - SidecarToTelemetrySessionAffinity bool `protobuf:"varint,31,opt,name=sidecar_to_telemetry_session_affinity,json=sidecarToTelemetrySessionAffinity,proto3" json:"sidecar_to_telemetry_session_affinity,omitempty"` + SidecarToTelemetrySessionAffinity bool `protobuf:"varint,30,opt,name=sidecar_to_telemetry_session_affinity,json=sidecarToTelemetrySessionAffinity,proto3" json:"sidecar_to_telemetry_session_affinity,omitempty"` // Port on which Envoy should listen for incoming connections from // other services. ProxyListenPort int32 `protobuf:"varint,4,opt,name=proxy_listen_port,json=proxyListenPort,proto3" json:"proxy_listen_port,omitempty"` @@ -220,7 +189,7 @@ type MeshConfig struct { // Connection timeout used by Envoy. (MUST BE >=1ms) ConnectTimeout *google_protobuf.Duration `protobuf:"bytes,6,opt,name=connect_timeout,json=connectTimeout" json:"connect_timeout,omitempty"` // If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives. - TcpKeepalive *istio_networking_v1alpha32.ConnectionPoolSettings_TCPSettings_TcpKeepalive `protobuf:"bytes,28,opt,name=tcp_keepalive,json=tcpKeepalive" json:"tcp_keepalive,omitempty"` + TcpKeepalive *istio_networking_v1alpha33.ConnectionPoolSettings_TCPSettings_TcpKeepalive `protobuf:"bytes,28,opt,name=tcp_keepalive,json=tcpKeepalive" json:"tcp_keepalive,omitempty"` // Class of ingress resources to be processed by Istio ingress // controller. This corresponds to the value of // "kubernetes.io/ingress.class" annotation. @@ -253,12 +222,14 @@ type MeshConfig struct { DefaultConfig *ProxyConfig `protobuf:"bytes,14,opt,name=default_config,json=defaultConfig" json:"default_config,omitempty"` // $hide_from_docs MixerAddress string `protobuf:"bytes,16,opt,name=mixer_address,json=mixerAddress,proto3" json:"mixer_address,omitempty"` - // Set the default behavior of the sidecar for handling outbound traffic from the application. - // While the default mode should work out of the box, if your application uses one or more external services that - // are not known apriori, setting the policy to ALLOW_ANY will cause the sidecars to route traffic to the any - // requested destination. - // Users are strongly encouraged to use ServiceEntries to explicitly declare any external dependencies, - // instead of using allow_any. + // Set the default behavior of the sidecar for handling outbound traffic + // from the application. If your application uses one or more external + // services that are not known apriori, setting the policy to ALLOW_ANY + // will cause the sidecars to route any unknown traffic originating from + // the application to its requested destination. Users are strongly + // encouraged to use ServiceEntries to explicitly declare any external + // dependencies, instead of using allow_any, so that traffic to these + // services can be monitored. OutboundTrafficPolicy *MeshConfig_OutboundTrafficPolicy `protobuf:"bytes,17,opt,name=outbound_traffic_policy,json=outboundTrafficPolicy" json:"outbound_traffic_policy,omitempty"` // Enables clide side policy checks. EnableClientSidePolicyCheck bool `protobuf:"varint,19,opt,name=enable_client_side_policy_check,json=enableClientSidePolicyCheck,proto3" json:"enable_client_side_policy_check,omitempty"` @@ -285,17 +256,11 @@ type MeshConfig struct { // and pass to sds server, which will be used to request key/cert eventually. // If both enable_sds_token_mount and sds_use_k8s_sa_jwt are set to true, enable_sds_token_mount(trustworthy jwt) takes precedence. // This isn't supported for non-k8s case. - SdsUseK8SSaJwt bool `protobuf:"varint,30,opt,name=sds_use_k8s_sa_jwt,json=sdsUseK8sSaJwt,proto3" json:"sds_use_k8s_sa_jwt,omitempty"` + SdsUseK8SSaJwt bool `protobuf:"varint,29,opt,name=sds_use_k8s_sa_jwt,json=sdsUseK8sSaJwt,proto3" json:"sds_use_k8s_sa_jwt,omitempty"` // The trust domain corresponds to the trust root of a system. // Refer to https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain // Fallback to old identity format(without trust domain) if not set. TrustDomain string `protobuf:"bytes,26,opt,name=trust_domain,json=trustDomain,proto3" json:"trust_domain,omitempty"` - // The default service dependency setting associated with every workload - // in the mesh. Pilot will program the routes in the sidecars and - // gateways accordingly. If omitted, sidecars will be configured to reach - // every service in the mesh. The default scope can be overridden by - // supplying a ServiceDependency resource per namespace. - DefaultServiceDependency *MeshConfig_DefaultServiceDependency `protobuf:"bytes,29,opt,name=default_service_dependency,json=defaultServiceDependency" json:"default_service_dependency,omitempty"` } func (m *MeshConfig) Reset() { *m = MeshConfig{} } @@ -359,7 +324,7 @@ func (m *MeshConfig) GetConnectTimeout() *google_protobuf.Duration { return nil } -func (m *MeshConfig) GetTcpKeepalive() *istio_networking_v1alpha32.ConnectionPoolSettings_TCPSettings_TcpKeepalive { +func (m *MeshConfig) GetTcpKeepalive() *istio_networking_v1alpha33.ConnectionPoolSettings_TCPSettings_TcpKeepalive { if m != nil { return m.TcpKeepalive } @@ -499,13 +464,6 @@ func (m *MeshConfig) GetTrustDomain() string { return "" } -func (m *MeshConfig) GetDefaultServiceDependency() *MeshConfig_DefaultServiceDependency { - if m != nil { - return m.DefaultServiceDependency - } - return nil -} - type MeshConfig_OutboundTrafficPolicy struct { Mode MeshConfig_OutboundTrafficPolicy_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode" json:"mode,omitempty"` } @@ -524,41 +482,6 @@ func (m *MeshConfig_OutboundTrafficPolicy) GetMode() MeshConfig_OutboundTrafficP return MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY } -// Default service dependency settings for each workload in the -// mesh. ServiceDependencycontrols the reachability of workloads to other -// services in the mesh. -type MeshConfig_DefaultServiceDependency struct { - // REQUIRED: The default import setting for every workload in the mesh. - ImportMode MeshConfig_DefaultServiceDependency_Mode `protobuf:"varint,1,opt,name=import_mode,json=importMode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_DefaultServiceDependency_Mode" json:"import_mode,omitempty"` - // Specifies one or more namespaces that should be imported by default - // in all user defined ServiceDependency resources in addition to the - // namespaces explicitly specified by the end user. Use this setting to - // automatically import services/resources from namespaces such as - // istio-system that all workloads in the mesh depend upon. - ImportNamespaces []string `protobuf:"bytes,2,rep,name=import_namespaces,json=importNamespaces" json:"import_namespaces,omitempty"` -} - -func (m *MeshConfig_DefaultServiceDependency) Reset() { *m = MeshConfig_DefaultServiceDependency{} } -func (m *MeshConfig_DefaultServiceDependency) String() string { return proto.CompactTextString(m) } -func (*MeshConfig_DefaultServiceDependency) ProtoMessage() {} -func (*MeshConfig_DefaultServiceDependency) Descriptor() ([]byte, []int) { - return fileDescriptorConfig, []int{0, 1} -} - -func (m *MeshConfig_DefaultServiceDependency) GetImportMode() MeshConfig_DefaultServiceDependency_Mode { - if m != nil { - return m.ImportMode - } - return MeshConfig_DefaultServiceDependency_ALL_NAMESPACES -} - -func (m *MeshConfig_DefaultServiceDependency) GetImportNamespaces() []string { - if m != nil { - return m.ImportNamespaces - } - return nil -} - // ConfigSource describes information about a configuration store inside a // mesh. A single control plane instance can interact with one or more data // sources. @@ -570,7 +493,7 @@ type ConfigSource struct { // Use the tls_settings to specify the tls mode to use. If the MCP server // uses Istio MTLS and shares the root CA with Pilot, specify the TLS // mode as ISTIO_MUTUAL. - TlsSettings *istio_networking_v1alpha32.TLSSettings `protobuf:"bytes,2,opt,name=tls_settings,json=tlsSettings" json:"tls_settings,omitempty"` + TlsSettings *istio_networking_v1alpha33.TLSSettings `protobuf:"bytes,2,opt,name=tls_settings,json=tlsSettings" json:"tls_settings,omitempty"` } func (m *ConfigSource) Reset() { *m = ConfigSource{} } @@ -585,7 +508,7 @@ func (m *ConfigSource) GetAddress() string { return "" } -func (m *ConfigSource) GetTlsSettings() *istio_networking_v1alpha32.TLSSettings { +func (m *ConfigSource) GetTlsSettings() *istio_networking_v1alpha33.TLSSettings { if m != nil { return m.TlsSettings } @@ -595,13 +518,11 @@ func (m *ConfigSource) GetTlsSettings() *istio_networking_v1alpha32.TLSSettings func init() { proto.RegisterType((*MeshConfig)(nil), "istio.mesh.v1alpha1.MeshConfig") proto.RegisterType((*MeshConfig_OutboundTrafficPolicy)(nil), "istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy") - proto.RegisterType((*MeshConfig_DefaultServiceDependency)(nil), "istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency") proto.RegisterType((*ConfigSource)(nil), "istio.mesh.v1alpha1.ConfigSource") proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_IngressControllerMode", MeshConfig_IngressControllerMode_name, MeshConfig_IngressControllerMode_value) proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_AuthPolicy", MeshConfig_AuthPolicy_name, MeshConfig_AuthPolicy_value) proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_AccessLogEncoding", MeshConfig_AccessLogEncoding_name, MeshConfig_AccessLogEncoding_value) proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode", MeshConfig_OutboundTrafficPolicy_Mode_name, MeshConfig_OutboundTrafficPolicy_Mode_value) - proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_DefaultServiceDependency_Mode", MeshConfig_DefaultServiceDependency_Mode_name, MeshConfig_DefaultServiceDependency_Mode_value) } func (m *MeshConfig) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -843,20 +764,8 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) { } i += n6 } - if m.DefaultServiceDependency != nil { - dAtA[i] = 0xea - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintConfig(dAtA, i, uint64(m.DefaultServiceDependency.Size())) - n7, err := m.DefaultServiceDependency.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } if m.SdsUseK8SSaJwt { - dAtA[i] = 0xf0 + dAtA[i] = 0xe8 i++ dAtA[i] = 0x1 i++ @@ -868,7 +777,7 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) { i++ } if m.SidecarToTelemetrySessionAffinity { - dAtA[i] = 0xf8 + dAtA[i] = 0xf0 i++ dAtA[i] = 0x1 i++ @@ -905,44 +814,6 @@ func (m *MeshConfig_OutboundTrafficPolicy) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *MeshConfig_DefaultServiceDependency) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MeshConfig_DefaultServiceDependency) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.ImportMode != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintConfig(dAtA, i, uint64(m.ImportMode)) - } - if len(m.ImportNamespaces) > 0 { - for _, s := range m.ImportNamespaces { - dAtA[i] = 0x12 - i++ - l = len(s) - for l >= 1<<7 { - dAtA[i] = uint8(uint64(l)&0x7f | 0x80) - l >>= 7 - i++ - } - dAtA[i] = uint8(l) - i++ - i += copy(dAtA[i:], s) - } - } - return i, nil -} - func (m *ConfigSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -968,11 +839,11 @@ func (m *ConfigSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintConfig(dAtA, i, uint64(m.TlsSettings.Size())) - n8, err := m.TlsSettings.MarshalTo(dAtA[i:]) + n7, err := m.TlsSettings.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n7 } return i, nil } @@ -1085,10 +956,6 @@ func (m *MeshConfig) Size() (n int) { l = m.TcpKeepalive.Size() n += 2 + l + sovConfig(uint64(l)) } - if m.DefaultServiceDependency != nil { - l = m.DefaultServiceDependency.Size() - n += 2 + l + sovConfig(uint64(l)) - } if m.SdsUseK8SSaJwt { n += 3 } @@ -1107,21 +974,6 @@ func (m *MeshConfig_OutboundTrafficPolicy) Size() (n int) { return n } -func (m *MeshConfig_DefaultServiceDependency) Size() (n int) { - var l int - _ = l - if m.ImportMode != 0 { - n += 1 + sovConfig(uint64(m.ImportMode)) - } - if len(m.ImportNamespaces) > 0 { - for _, s := range m.ImportNamespaces { - l = len(s) - n += 1 + l + sovConfig(uint64(l)) - } - } - return n -} - func (m *ConfigSource) Size() (n int) { var l int _ = l @@ -1857,46 +1709,13 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.TcpKeepalive == nil { - m.TcpKeepalive = &istio_networking_v1alpha32.ConnectionPoolSettings_TCPSettings_TcpKeepalive{} + m.TcpKeepalive = &istio_networking_v1alpha33.ConnectionPoolSettings_TCPSettings_TcpKeepalive{} } if err := m.TcpKeepalive.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 29: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DefaultServiceDependency", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowConfig - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthConfig - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DefaultServiceDependency == nil { - m.DefaultServiceDependency = &MeshConfig_DefaultServiceDependency{} - } - if err := m.DefaultServiceDependency.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 30: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field SdsUseK8SSaJwt", wireType) } @@ -1916,7 +1735,7 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { } } m.SdsUseK8SSaJwt = bool(v != 0) - case 31: + case 30: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field SidecarToTelemetrySessionAffinity", wireType) } @@ -2026,104 +1845,6 @@ func (m *MeshConfig_OutboundTrafficPolicy) Unmarshal(dAtA []byte) error { } return nil } -func (m *MeshConfig_DefaultServiceDependency) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowConfig - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DefaultServiceDependency: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DefaultServiceDependency: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ImportMode", wireType) - } - m.ImportMode = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowConfig - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ImportMode |= (MeshConfig_DefaultServiceDependency_Mode(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImportNamespaces", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowConfig - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthConfig - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ImportNamespaces = append(m.ImportNamespaces, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipConfig(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthConfig - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *ConfigSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -2209,7 +1930,7 @@ func (m *ConfigSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.TlsSettings == nil { - m.TlsSettings = &istio_networking_v1alpha32.TLSSettings{} + m.TlsSettings = &istio_networking_v1alpha33.TLSSettings{} } if err := m.TlsSettings.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -2344,87 +2065,80 @@ var ( func init() { proto.RegisterFile("mesh/v1alpha1/config.proto", fileDescriptorConfig) } var fileDescriptorConfig = []byte{ - // 1303 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x5f, 0x6f, 0xdb, 0xb6, - 0x16, 0x8f, 0x92, 0xb4, 0x49, 0x8f, 0xff, 0x44, 0x66, 0x9a, 0x96, 0x75, 0x7b, 0x53, 0x37, 0x17, - 0x6d, 0x83, 0xdc, 0x0b, 0x07, 0x4d, 0x30, 0xa0, 0x1b, 0xb0, 0x07, 0xd7, 0x76, 0x5a, 0xa7, 0x8e, - 0x6d, 0x48, 0x4a, 0xb7, 0xee, 0x61, 0x84, 0x22, 0xd1, 0x36, 0x17, 0x59, 0x14, 0x44, 0x3a, 0x6d, - 0x3e, 0xd5, 0xbe, 0xc6, 0x1e, 0xf7, 0xb6, 0xd7, 0xa1, 0xfb, 0x22, 0x03, 0x49, 0x29, 0x76, 0x5b, - 0x77, 0x19, 0xfa, 0x26, 0xfd, 0xce, 0xef, 0x9c, 0x43, 0xfe, 0x0e, 0xcf, 0x21, 0xa1, 0x3a, 0xa1, - 0x62, 0xbc, 0x7f, 0xf1, 0xcc, 0x8f, 0x92, 0xb1, 0xff, 0x6c, 0x3f, 0xe0, 0xf1, 0x90, 0x8d, 0xea, - 0x49, 0xca, 0x25, 0x47, 0x9b, 0x4c, 0x48, 0xc6, 0xeb, 0x8a, 0x51, 0xcf, 0x19, 0xd5, 0xed, 0x11, - 0xe7, 0xa3, 0x88, 0xee, 0x6b, 0xca, 0xd9, 0x74, 0xb8, 0x1f, 0x4e, 0x53, 0x5f, 0x32, 0x1e, 0x1b, - 0xa7, 0xea, 0xbd, 0x8f, 0x03, 0x26, 0x29, 0x7f, 0x7f, 0x99, 0x99, 0xf6, 0x62, 0x2a, 0xdf, 0xf1, - 0xf4, 0x9c, 0xc5, 0xa3, 0x9c, 0x70, 0xb8, 0x1f, 0x52, 0x21, 0x59, 0xac, 0x23, 0x90, 0x74, 0x1a, - 0x51, 0xc3, 0xdd, 0xf9, 0x0b, 0x01, 0x9c, 0x50, 0x31, 0x6e, 0xea, 0x05, 0xa1, 0xff, 0x03, 0x9a, - 0xb0, 0xf7, 0x34, 0x25, 0xc1, 0x98, 0x06, 0xe7, 0x44, 0xd0, 0xf4, 0x82, 0xa6, 0xd8, 0xaa, 0x59, - 0xbb, 0xb7, 0x1c, 0x5b, 0x5b, 0x9a, 0xca, 0xe0, 0x6a, 0x1c, 0xd5, 0x61, 0xd3, 0xb0, 0x53, 0x9a, - 0xf0, 0x54, 0xe6, 0xf4, 0x65, 0x4d, 0xaf, 0x68, 0x93, 0xa3, 0x2d, 0x19, 0xff, 0x00, 0xb6, 0x42, - 0x26, 0xfc, 0xb3, 0x88, 0x92, 0x84, 0x47, 0x2c, 0xb8, 0x34, 0x69, 0x04, 0x5e, 0xa9, 0x59, 0xbb, - 0xeb, 0xce, 0x66, 0x66, 0x1c, 0x68, 0x9b, 0x4e, 0x24, 0xd0, 0x1e, 0x54, 0xf4, 0xde, 0x48, 0xc4, - 0x84, 0xa4, 0x31, 0x51, 0xe1, 0xf0, 0x6a, 0xcd, 0xda, 0xbd, 0xe1, 0x6c, 0x68, 0x43, 0x57, 0xe3, - 0x03, 0x9e, 0x4a, 0xf4, 0x04, 0x0c, 0x44, 0xc6, 0x52, 0x26, 0x86, 0x79, 0x43, 0x33, 0x4b, 0x1a, - 0x7e, 0x25, 0x65, 0xa2, 0x79, 0x2f, 0x60, 0x23, 0xe0, 0x71, 0x4c, 0x03, 0x49, 0x24, 0x9b, 0x50, - 0x3e, 0x95, 0xf8, 0x66, 0xcd, 0xda, 0x2d, 0x1c, 0xdc, 0xab, 0x1b, 0xd5, 0xeb, 0xb9, 0xea, 0xf5, - 0x56, 0xa6, 0xba, 0x53, 0xce, 0x3c, 0x3c, 0xe3, 0x80, 0xfe, 0x0b, 0x25, 0x16, 0x8f, 0x52, 0x2a, - 0x04, 0x09, 0x22, 0x5f, 0x08, 0xbc, 0xa6, 0x77, 0x5d, 0xcc, 0xc0, 0xa6, 0xc2, 0xd0, 0x53, 0xd8, - 0xc8, 0x49, 0x4a, 0x1b, 0x16, 0x50, 0xbc, 0xae, 0x69, 0xe5, 0x0c, 0x76, 0x0d, 0x8a, 0x26, 0x70, - 0xf7, 0x2a, 0x1a, 0x8f, 0x65, 0xca, 0xa3, 0x88, 0xa6, 0x64, 0xc2, 0x43, 0x8a, 0x6f, 0xd5, 0xac, - 0xdd, 0xf2, 0xc1, 0x37, 0xf5, 0x05, 0x87, 0xa4, 0x3e, 0xab, 0x5c, 0xbd, 0x93, 0xe5, 0xbd, 0xf2, - 0x3e, 0xe1, 0x21, 0x75, 0xb6, 0xd8, 0x22, 0x18, 0xf5, 0xa1, 0xe0, 0x4f, 0xe5, 0x38, 0xab, 0x02, - 0x06, 0x9d, 0x62, 0xef, 0xba, 0x14, 0x8d, 0xa9, 0x1c, 0x9b, 0xda, 0xbc, 0x58, 0xc6, 0x96, 0x03, - 0xfe, 0xd5, 0x3f, 0xea, 0x40, 0x25, 0x0d, 0x05, 0x49, 0xe9, 0x30, 0xa5, 0x62, 0x4c, 0x42, 0x1a, - 0xf9, 0x97, 0xb8, 0x70, 0x8d, 0xa6, 0x3a, 0xca, 0x46, 0x1a, 0x0a, 0xc7, 0xb8, 0xb5, 0x94, 0x17, - 0x7a, 0x0c, 0x65, 0x1a, 0xeb, 0x33, 0x22, 0x53, 0x3f, 0x60, 0xf1, 0x08, 0x17, 0xf5, 0xe9, 0x28, - 0x19, 0xd4, 0x33, 0xa0, 0xaa, 0xb5, 0x1f, 0x04, 0x4a, 0xb0, 0x88, 0x8f, 0xc8, 0x90, 0x45, 0x14, - 0x97, 0xb4, 0xb4, 0x25, 0x03, 0x77, 0xf9, 0xe8, 0x88, 0x45, 0x14, 0xbd, 0x84, 0x72, 0x48, 0x87, - 0xfe, 0x34, 0x92, 0xc4, 0x34, 0x1d, 0x2e, 0xeb, 0x65, 0xd5, 0x16, 0xee, 0x76, 0xa0, 0xce, 0x89, - 0xd9, 0xae, 0x53, 0xca, 0xfc, 0xb2, 0xd6, 0x78, 0x0a, 0x25, 0x73, 0xd8, 0xfd, 0x30, 0x54, 0x92, - 0x62, 0x5b, 0xa5, 0xd3, 0x7b, 0x28, 0x6a, 0x43, 0xc3, 0xe0, 0xaa, 0x96, 0x7c, 0x2a, 0xcf, 0xf8, - 0x34, 0x0e, 0xd5, 0x16, 0x86, 0x43, 0x16, 0xe4, 0x42, 0x57, 0x74, 0xea, 0x6b, 0x6b, 0xd9, 0xcf, - 0xdc, 0x3d, 0xe3, 0x6d, 0x34, 0x76, 0xb6, 0xf8, 0x22, 0x18, 0xb5, 0xe0, 0x61, 0xa6, 0x57, 0x10, - 0x31, 0x1a, 0x4b, 0x22, 0x58, 0xf8, 0x71, 0x7f, 0xe1, 0x4d, 0x2d, 0xe0, 0x7d, 0x43, 0x6b, 0x6a, - 0x96, 0xcb, 0xc2, 0xf9, 0x3e, 0x43, 0x35, 0x28, 0x8a, 0x50, 0x90, 0x69, 0x28, 0x48, 0xe2, 0xcb, - 0x31, 0xbe, 0xad, 0xb5, 0x04, 0x11, 0x8a, 0xd3, 0x50, 0x0c, 0x7c, 0x39, 0x56, 0x25, 0x16, 0x9f, - 0x95, 0x78, 0xeb, 0x5f, 0x95, 0x58, 0x7c, 0x52, 0xe2, 0x57, 0x50, 0x36, 0xb5, 0x20, 0x82, 0x4f, - 0xd3, 0x80, 0x0a, 0x7c, 0xa7, 0xb6, 0xb2, 0x5b, 0x38, 0x78, 0xb4, 0x50, 0x18, 0x23, 0x8a, 0xab, - 0x99, 0x4e, 0x29, 0x98, 0xfb, 0x13, 0xe8, 0x10, 0xee, 0x64, 0x9b, 0x57, 0x6b, 0x93, 0xfc, 0x9c, - 0xc6, 0x64, 0xc2, 0xa7, 0xb1, 0xc4, 0x77, 0xcd, 0x48, 0x31, 0x56, 0x37, 0x14, 0x9e, 0xb2, 0x9d, - 0x28, 0x93, 0x1a, 0x29, 0xf3, 0x47, 0x87, 0xa7, 0x13, 0x5f, 0x62, 0xac, 0x37, 0xbc, 0x31, 0x3b, - 0x3c, 0x1a, 0x56, 0x09, 0xe6, 0xa5, 0x24, 0x43, 0x9f, 0x45, 0x84, 0x27, 0x34, 0xc6, 0xf7, 0x4c, - 0x82, 0x64, 0x26, 0xe2, 0x91, 0xcf, 0xa2, 0x7e, 0x42, 0x63, 0xf4, 0x08, 0x8a, 0x32, 0x9d, 0x0a, - 0x49, 0x42, 0x3e, 0xf1, 0x59, 0x8c, 0xab, 0x3a, 0x76, 0x41, 0x63, 0x2d, 0x0d, 0x21, 0x1f, 0x36, - 0xe7, 0xd6, 0x40, 0xe3, 0x80, 0x87, 0xea, 0xa8, 0xdf, 0xd7, 0x9d, 0xf8, 0xec, 0xda, 0x4e, 0xcc, - 0x57, 0xd9, 0xce, 0x1c, 0x9d, 0x8a, 0xff, 0x29, 0x84, 0x38, 0x94, 0x64, 0x90, 0x90, 0x73, 0x4a, - 0x13, 0x3f, 0x62, 0x17, 0x14, 0x3f, 0xd0, 0xc5, 0x3a, 0xce, 0x82, 0xcf, 0x2e, 0x89, 0x3c, 0xc5, - 0xa1, 0x92, 0x5a, 0xcd, 0x38, 0xc6, 0xe3, 0x01, 0xe7, 0x91, 0x4b, 0xa5, 0x64, 0xf1, 0x48, 0xd4, - 0xbd, 0xe6, 0x60, 0xf6, 0x1d, 0x24, 0xaf, 0xf3, 0x88, 0x4e, 0x51, 0xce, 0xfd, 0xa1, 0x0b, 0xa8, - 0xe6, 0xad, 0x96, 0x4d, 0x3b, 0x12, 0xd2, 0x84, 0xc6, 0x21, 0x8d, 0x83, 0x4b, 0xfc, 0x1f, 0x9d, - 0xfd, 0xf9, 0x75, 0x5b, 0x6b, 0x99, 0x08, 0xd9, 0x60, 0x6c, 0x5d, 0xf9, 0x3b, 0x38, 0xfc, 0x82, - 0x05, 0xed, 0x01, 0xd2, 0x67, 0x57, 0x50, 0x72, 0xfe, 0x5c, 0x10, 0xe1, 0x93, 0x5f, 0xde, 0x49, - 0xbc, 0xad, 0xeb, 0x53, 0x56, 0x27, 0x58, 0xd0, 0xd7, 0xcf, 0x85, 0xeb, 0x1f, 0xbf, 0x93, 0x68, - 0x00, 0x8f, 0x55, 0x7f, 0x04, 0x7e, 0x4a, 0x24, 0x27, 0x92, 0x46, 0x74, 0x42, 0x65, 0x7a, 0x49, - 0x04, 0x15, 0x42, 0x5d, 0x8d, 0xaa, 0xb3, 0x62, 0x26, 0x2f, 0xf1, 0x43, 0xed, 0xfe, 0x28, 0x23, - 0x7b, 0xdc, 0xcb, 0xa9, 0xae, 0x61, 0x36, 0x32, 0x62, 0xf5, 0x57, 0x0b, 0xb6, 0x16, 0x36, 0x2c, - 0xea, 0xc1, 0xaa, 0x9e, 0xe0, 0x96, 0x2e, 0xea, 0x77, 0x5f, 0xd5, 0xf5, 0x75, 0x3d, 0xc6, 0x75, - 0x9c, 0x9d, 0x23, 0x58, 0xd5, 0xd3, 0xbb, 0x02, 0x25, 0xa7, 0xfd, 0xb2, 0xe3, 0x7a, 0xce, 0x5b, - 0xd2, 0xef, 0x75, 0xdf, 0xda, 0x4b, 0xa8, 0x04, 0xb7, 0x1a, 0xdd, 0x6e, 0xff, 0x07, 0xd2, 0xe8, - 0xbd, 0xb5, 0x2d, 0xf4, 0x00, 0x6e, 0xbf, 0xe9, 0x38, 0xde, 0x69, 0xa3, 0x4b, 0xdc, 0xb6, 0xf3, - 0xa6, 0xd3, 0x6c, 0x1b, 0xe2, 0x72, 0x75, 0x79, 0xdd, 0xaa, 0xfe, 0x61, 0x01, 0xfe, 0x92, 0xcc, - 0xe8, 0x67, 0x28, 0xb0, 0x89, 0xbe, 0xcd, 0xe7, 0xd6, 0xfe, 0xfd, 0xd7, 0x56, 0xcd, 0x2c, 0x1f, - 0x4c, 0x44, 0xbd, 0xf8, 0xff, 0x41, 0x25, 0x8b, 0x1f, 0xfb, 0x13, 0x2a, 0x12, 0x5f, 0xb5, 0xff, - 0x72, 0x6d, 0x45, 0x3d, 0x30, 0x8c, 0xa1, 0x77, 0x85, 0xef, 0xd4, 0xb3, 0x1d, 0x23, 0x28, 0x37, - 0xba, 0x5d, 0xd2, 0x6b, 0x9c, 0xb4, 0xdd, 0x41, 0xa3, 0xd9, 0x76, 0xed, 0x25, 0x85, 0xb9, 0x8d, - 0x93, 0xf6, 0x0c, 0xb4, 0xad, 0x9d, 0x6f, 0x61, 0x6b, 0xe1, 0x3d, 0x88, 0xd6, 0x60, 0xa5, 0x7f, - 0x74, 0x64, 0x2f, 0xa1, 0x02, 0xac, 0xb5, 0xda, 0x47, 0x8d, 0xd3, 0xae, 0x67, 0x5b, 0x08, 0xe0, - 0xa6, 0xeb, 0x39, 0x9d, 0xa6, 0x67, 0x2f, 0xef, 0x3c, 0x01, 0x98, 0xdd, 0x6f, 0x68, 0x1d, 0x56, - 0x7b, 0xfd, 0x5e, 0xdb, 0x5e, 0x42, 0x65, 0x80, 0x93, 0x53, 0xad, 0xa4, 0xd7, 0x75, 0x6d, 0x6b, - 0xe7, 0x29, 0x54, 0x3e, 0xeb, 0x3e, 0x45, 0xf7, 0xda, 0x3f, 0x7a, 0xf6, 0x92, 0xfa, 0x3a, 0x76, - 0xfb, 0x3d, 0xdb, 0x3a, 0x5e, 0x5d, 0xdf, 0xb0, 0xed, 0xe3, 0xd5, 0x75, 0x64, 0x6f, 0xee, 0x08, - 0x28, 0xce, 0x4f, 0x31, 0x84, 0x61, 0x2d, 0xbf, 0x45, 0xcc, 0xdb, 0x2a, 0xff, 0x45, 0x1d, 0x28, - 0xca, 0x48, 0xbd, 0x16, 0x4c, 0xbb, 0xe9, 0xb7, 0x54, 0xe1, 0xe0, 0xc9, 0x3f, 0xf4, 0xac, 0xd7, - 0x75, 0xf3, 0xe6, 0x74, 0x0a, 0x32, 0x12, 0xf9, 0xcf, 0x8b, 0xdd, 0xdf, 0x3e, 0x6c, 0x5b, 0xbf, - 0x7f, 0xd8, 0xb6, 0xfe, 0xfc, 0xb0, 0x6d, 0xfd, 0x54, 0x35, 0x11, 0x18, 0xdf, 0xf7, 0x13, 0xb6, - 0xff, 0xd1, 0xe3, 0xf1, 0xec, 0xa6, 0x9e, 0xdb, 0x87, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xb0, - 0x28, 0x52, 0xaf, 0xa5, 0x0a, 0x00, 0x00, + // 1186 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdf, 0x6e, 0xdb, 0xb6, + 0x17, 0x8e, 0x52, 0xb7, 0x49, 0xe9, 0x3f, 0x91, 0x99, 0xa6, 0x65, 0xd3, 0xdf, 0x2f, 0x73, 0x3d, + 0xb4, 0x35, 0x82, 0xc1, 0x46, 0x13, 0x0c, 0xe8, 0x76, 0xe7, 0x3a, 0x4e, 0xeb, 0xd4, 0x89, 0x0d, + 0x49, 0xe9, 0xd6, 0xdd, 0x10, 0x8a, 0x44, 0xdb, 0x5c, 0x64, 0x51, 0x10, 0xa9, 0xb6, 0x79, 0x8a, + 0x3d, 0xc9, 0xde, 0x63, 0x97, 0x7b, 0x84, 0xa1, 0x4f, 0x32, 0xf0, 0x50, 0xaa, 0x9d, 0xd6, 0x58, + 0x86, 0xdd, 0x99, 0xdf, 0xf9, 0xce, 0x39, 0xe4, 0x77, 0xfe, 0xc8, 0x68, 0x77, 0xce, 0xe4, 0xac, + 0xf3, 0xfe, 0xb9, 0x1f, 0x25, 0x33, 0xff, 0x79, 0x27, 0x10, 0xf1, 0x84, 0x4f, 0xdb, 0x49, 0x2a, + 0x94, 0xc0, 0xdb, 0x5c, 0x2a, 0x2e, 0xda, 0x9a, 0xd1, 0x2e, 0x18, 0xbb, 0x7b, 0x53, 0x21, 0xa6, + 0x11, 0xeb, 0x00, 0xe5, 0x22, 0x9b, 0x74, 0xc2, 0x2c, 0xf5, 0x15, 0x17, 0xb1, 0x71, 0xda, 0x7d, + 0x78, 0x3d, 0x60, 0x92, 0x8a, 0x8f, 0x57, 0xb9, 0x69, 0x3f, 0x66, 0xea, 0x83, 0x48, 0x2f, 0x79, + 0x3c, 0x2d, 0x08, 0x87, 0x9d, 0x90, 0x49, 0xc5, 0x63, 0x88, 0x40, 0xd3, 0x2c, 0x62, 0x86, 0xdb, + 0xfc, 0xcd, 0x46, 0xe8, 0x94, 0xc9, 0x59, 0x0f, 0x2e, 0x84, 0xbf, 0x43, 0x78, 0xce, 0x3f, 0xb2, + 0x94, 0x06, 0x33, 0x16, 0x5c, 0x52, 0xc9, 0xd2, 0xf7, 0x2c, 0x25, 0x56, 0xc3, 0x6a, 0xdd, 0x75, + 0x6c, 0xb0, 0xf4, 0xb4, 0xc1, 0x05, 0x1c, 0xb7, 0xd1, 0xb6, 0x61, 0xa7, 0x2c, 0x11, 0xa9, 0x2a, + 0xe8, 0xeb, 0x40, 0xaf, 0x83, 0xc9, 0x01, 0x4b, 0xce, 0x3f, 0x40, 0x3b, 0x21, 0x97, 0xfe, 0x45, + 0xc4, 0x68, 0x22, 0x22, 0x1e, 0x5c, 0x99, 0x34, 0x92, 0xdc, 0x6a, 0x58, 0xad, 0x4d, 0x67, 0x3b, + 0x37, 0x8e, 0xc1, 0x06, 0x89, 0x24, 0xde, 0x47, 0x75, 0x78, 0x1b, 0x8d, 0xb8, 0x54, 0x2c, 0xa6, + 0x3a, 0x1c, 0x29, 0x35, 0xac, 0xd6, 0x6d, 0x67, 0x0b, 0x0c, 0x43, 0xc0, 0xc7, 0x22, 0x55, 0xf8, + 0x29, 0x32, 0x10, 0x9d, 0x29, 0x95, 0x18, 0xe6, 0x6d, 0x60, 0x56, 0x01, 0x7e, 0xad, 0x54, 0x02, + 0xbc, 0x97, 0x68, 0x2b, 0x10, 0x71, 0xcc, 0x02, 0x45, 0x15, 0x9f, 0x33, 0x91, 0x29, 0x72, 0xa7, + 0x61, 0xb5, 0xca, 0x07, 0x0f, 0xdb, 0x46, 0xf5, 0x76, 0xa1, 0x7a, 0xfb, 0x28, 0x57, 0xdd, 0xa9, + 0xe5, 0x1e, 0x9e, 0x71, 0xc0, 0xdf, 0xa2, 0x2a, 0x8f, 0xa7, 0x29, 0x93, 0x92, 0x06, 0x91, 0x2f, + 0x25, 0xd9, 0x80, 0x57, 0x57, 0x72, 0xb0, 0xa7, 0x31, 0xfc, 0x0c, 0x6d, 0x15, 0x24, 0xad, 0x0d, + 0x0f, 0x18, 0xd9, 0x04, 0x5a, 0x2d, 0x87, 0x5d, 0x83, 0xe2, 0x39, 0x7a, 0xf0, 0x39, 0x9a, 0x88, + 0x55, 0x2a, 0xa2, 0x88, 0xa5, 0x74, 0x2e, 0x42, 0x46, 0xee, 0x36, 0xac, 0x56, 0xed, 0xe0, 0xfb, + 0xf6, 0x8a, 0x26, 0x69, 0x2f, 0x2a, 0xd7, 0x1e, 0xe4, 0x79, 0x3f, 0x7b, 0x9f, 0x8a, 0x90, 0x39, + 0x3b, 0x7c, 0x15, 0x8c, 0x47, 0xa8, 0xec, 0x67, 0x6a, 0x96, 0x57, 0x81, 0x20, 0x48, 0xb1, 0x7f, + 0x53, 0x8a, 0x6e, 0xa6, 0x66, 0xa6, 0x36, 0x2f, 0xd7, 0x89, 0xe5, 0x20, 0xff, 0xf3, 0x19, 0x0f, + 0x50, 0x3d, 0x0d, 0x25, 0x4d, 0xd9, 0x24, 0x65, 0x72, 0x46, 0x43, 0x16, 0xf9, 0x57, 0xa4, 0x7c, + 0x83, 0xa6, 0x10, 0x65, 0x2b, 0x0d, 0xa5, 0x63, 0xdc, 0x8e, 0xb4, 0x17, 0x7e, 0x82, 0x6a, 0x2c, + 0x86, 0x1e, 0x51, 0xa9, 0x1f, 0xf0, 0x78, 0x4a, 0x2a, 0xd0, 0x1d, 0x55, 0x83, 0x7a, 0x06, 0xd4, + 0xb5, 0xf6, 0x83, 0x40, 0x0b, 0x16, 0x89, 0x29, 0x9d, 0xf0, 0x88, 0x91, 0x2a, 0x48, 0x5b, 0x35, + 0xf0, 0x50, 0x4c, 0x8f, 0x79, 0xc4, 0xf0, 0x2b, 0x54, 0x0b, 0xd9, 0xc4, 0xcf, 0x22, 0x45, 0xcd, + 0xd0, 0x91, 0x1a, 0x5c, 0xab, 0xb1, 0xf2, 0xb5, 0x63, 0xdd, 0x27, 0xe6, 0xb9, 0x4e, 0x35, 0xf7, + 0xcb, 0x47, 0xe3, 0x19, 0xaa, 0x9a, 0x66, 0xf7, 0xc3, 0x50, 0x4b, 0x4a, 0x6c, 0x9d, 0x0e, 0xde, + 0x50, 0x01, 0x43, 0xd7, 0xe0, 0xba, 0x96, 0x22, 0x53, 0x17, 0x22, 0x8b, 0x43, 0xfd, 0x84, 0xc9, + 0x84, 0x07, 0x85, 0xd0, 0x75, 0x48, 0x7d, 0x63, 0x2d, 0x47, 0xb9, 0xbb, 0x67, 0xbc, 0x8d, 0xc6, + 0xce, 0x8e, 0x58, 0x05, 0xe3, 0x23, 0xf4, 0x4d, 0xae, 0x57, 0x10, 0x71, 0x16, 0x2b, 0x2a, 0x79, + 0x78, 0x7d, 0xbe, 0xc8, 0x36, 0x08, 0xf8, 0xc8, 0xd0, 0x7a, 0xc0, 0x72, 0x79, 0xb8, 0x3c, 0x67, + 0xb8, 0x81, 0x2a, 0x32, 0x94, 0x34, 0x0b, 0x25, 0x4d, 0x7c, 0x35, 0x23, 0xf7, 0x40, 0x4b, 0x24, + 0x43, 0x79, 0x1e, 0xca, 0xb1, 0xaf, 0x66, 0xba, 0xc4, 0xf2, 0xab, 0x12, 0xef, 0xfc, 0xab, 0x12, + 0xcb, 0x2f, 0x4a, 0xfc, 0x1a, 0xd5, 0x4c, 0x2d, 0xa8, 0x14, 0x59, 0x1a, 0x30, 0x49, 0xee, 0x37, + 0x6e, 0xb5, 0xca, 0x07, 0x8f, 0x57, 0x0a, 0x63, 0x44, 0x71, 0x81, 0xe9, 0x54, 0x83, 0xa5, 0x93, + 0xc4, 0x87, 0xe8, 0x7e, 0xfe, 0x78, 0x7d, 0x37, 0x25, 0x2e, 0x59, 0x4c, 0xe7, 0x22, 0x8b, 0x15, + 0x79, 0x60, 0x56, 0x8a, 0xb1, 0xba, 0xa1, 0xf4, 0xb4, 0xed, 0x54, 0x9b, 0xf4, 0x4a, 0x59, 0x6e, + 0x1d, 0x91, 0xce, 0x7d, 0x45, 0x08, 0x3c, 0x78, 0x6b, 0xd1, 0x3c, 0x00, 0xeb, 0x04, 0xcb, 0x52, + 0xd2, 0x89, 0xcf, 0x23, 0x2a, 0x12, 0x16, 0x93, 0x87, 0x26, 0x41, 0xb2, 0x10, 0xf1, 0xd8, 0xe7, + 0xd1, 0x28, 0x61, 0x31, 0x7e, 0x8c, 0x2a, 0x2a, 0xcd, 0xa4, 0xa2, 0xa1, 0x98, 0xfb, 0x3c, 0x26, + 0xbb, 0x10, 0xbb, 0x0c, 0xd8, 0x11, 0x40, 0xd8, 0x47, 0xdb, 0x4b, 0x77, 0x60, 0x71, 0x20, 0x42, + 0xdd, 0xea, 0x8f, 0x60, 0x12, 0x9f, 0xdf, 0x38, 0x89, 0xc5, 0x2d, 0xfb, 0xb9, 0xa3, 0x53, 0xf7, + 0xbf, 0x84, 0xb0, 0x40, 0x55, 0x15, 0x24, 0xf4, 0x92, 0xb1, 0xc4, 0x8f, 0xf8, 0x7b, 0x46, 0xfe, + 0x07, 0xc5, 0x3a, 0xc9, 0x83, 0x2f, 0x3e, 0x12, 0x45, 0x8a, 0x43, 0x2d, 0xb5, 0xde, 0x71, 0x5c, + 0xc4, 0x63, 0x21, 0x22, 0x97, 0x29, 0xc5, 0xe3, 0xa9, 0x6c, 0x7b, 0xbd, 0xf1, 0xe2, 0x77, 0x90, + 0xbc, 0x29, 0x22, 0x3a, 0x15, 0xb5, 0x74, 0xc2, 0xfb, 0x08, 0x43, 0x0f, 0x49, 0x46, 0x2f, 0x5f, + 0x48, 0x2a, 0x7d, 0xfa, 0xeb, 0x07, 0x45, 0xfe, 0x0f, 0x3a, 0xd5, 0x74, 0x27, 0x49, 0xf6, 0xe6, + 0x85, 0x74, 0xfd, 0x93, 0x0f, 0x0a, 0x8f, 0xd1, 0x13, 0xdd, 0xa7, 0x81, 0x9f, 0x52, 0x25, 0xa8, + 0x62, 0x11, 0x9b, 0x33, 0x95, 0x5e, 0x51, 0xc9, 0xa4, 0xd4, 0x9f, 0x28, 0xdd, 0xe1, 0x31, 0x57, + 0x57, 0x64, 0x0f, 0xdc, 0x1f, 0xe7, 0x64, 0x4f, 0x78, 0x05, 0xd5, 0x35, 0xcc, 0x6e, 0x4e, 0xdc, + 0xfd, 0xdd, 0x42, 0x3b, 0x2b, 0x07, 0x07, 0x9f, 0xa1, 0x12, 0x6c, 0x52, 0x0b, 0xc4, 0xfd, 0xf1, + 0x3f, 0x4d, 0x5f, 0x1b, 0xd6, 0x29, 0xc4, 0x69, 0x1e, 0xa1, 0x12, 0x6c, 0xd1, 0x3a, 0xaa, 0x3a, + 0xfd, 0x57, 0x03, 0xd7, 0x73, 0xde, 0xd1, 0xd1, 0xd9, 0xf0, 0x9d, 0xbd, 0x86, 0xab, 0xe8, 0x6e, + 0x77, 0x38, 0x1c, 0xfd, 0x44, 0xbb, 0x67, 0xef, 0x6c, 0xab, 0x59, 0xda, 0x5c, 0xb7, 0xd7, 0xf7, + 0xef, 0xbd, 0x1d, 0x38, 0xde, 0x79, 0x77, 0x48, 0xdd, 0xbe, 0xf3, 0x76, 0xd0, 0xeb, 0x03, 0xb9, + 0xf9, 0x03, 0xda, 0x59, 0xb9, 0xb3, 0xf1, 0x06, 0xba, 0x35, 0x3a, 0x3e, 0xb6, 0xd7, 0x70, 0x19, + 0x6d, 0x1c, 0xf5, 0x8f, 0xbb, 0xe7, 0x43, 0xcf, 0xb6, 0x30, 0x42, 0x77, 0x5c, 0xcf, 0x19, 0xf4, + 0x3c, 0x7b, 0xbd, 0xf9, 0x14, 0xa1, 0xc5, 0x2e, 0xc6, 0x9b, 0xa8, 0x74, 0x36, 0x3a, 0xeb, 0xdb, + 0x6b, 0xb8, 0x86, 0xd0, 0xe9, 0x39, 0x64, 0xf2, 0x86, 0xae, 0x6d, 0x35, 0x9f, 0xa1, 0xfa, 0x57, + 0x9d, 0xa2, 0xe9, 0x5e, 0xff, 0x67, 0xcf, 0x5e, 0xd3, 0xbf, 0x4e, 0xdc, 0xd1, 0x99, 0x6d, 0x9d, + 0x94, 0x36, 0xb7, 0x6c, 0xfb, 0xa4, 0xb4, 0x89, 0xed, 0xed, 0xa6, 0x44, 0x95, 0xe5, 0x89, 0xc3, + 0x04, 0x6d, 0x14, 0x1b, 0xcf, 0xfc, 0x0f, 0x28, 0x8e, 0x78, 0x80, 0x2a, 0x2a, 0xd2, 0x5f, 0x36, + 0xd3, 0x1a, 0xf0, 0xdd, 0x2f, 0x1f, 0x3c, 0xfd, 0x87, 0xfe, 0xf2, 0x86, 0x6e, 0xd1, 0x48, 0x4e, + 0x59, 0x45, 0xb2, 0x38, 0xbc, 0x6c, 0xfd, 0xf1, 0x69, 0xcf, 0xfa, 0xf3, 0xd3, 0x9e, 0xf5, 0xd7, + 0xa7, 0x3d, 0xeb, 0x97, 0x5d, 0x13, 0x81, 0x8b, 0x8e, 0x9f, 0xf0, 0xce, 0xb5, 0x3f, 0x3a, 0x17, + 0x77, 0x60, 0xc7, 0x1c, 0xfe, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x7a, 0x45, 0xbf, 0x51, 0x09, + 0x00, 0x00, } diff --git a/mesh/v1alpha1/config.proto b/mesh/v1alpha1/config.proto index 5ec49566cc..80e9590ffb 100644 --- a/mesh/v1alpha1/config.proto +++ b/mesh/v1alpha1/config.proto @@ -63,7 +63,7 @@ message MeshConfig { // Enable session affinity for envoy mixer reports so that calls from a proxy will // always target the same mixer instance. - bool sidecar_to_telemetry_session_affinity = 31; + bool sidecar_to_telemetry_session_affinity = 30; // Port on which Envoy should listen for incoming connections from // other services. @@ -155,23 +155,27 @@ message MeshConfig { message OutboundTrafficPolicy { enum Mode { - // outbound traffic will be restricted to services defined in the service registry as well as those defined - // through ServiceEntries + // outbound traffic will be restricted to services defined in the + // service registry as well as those defined through ServiceEntries REGISTRY_ONLY = 0; - // outbound traffic to unknown destinations will be allowed, in case there are no services or ServiceEntries for the destination port + // outbound traffic to unknown destinations will be allowed, in case + // there are no services or ServiceEntries for the destination port ALLOW_ANY = 1; - // not implemented. outbound traffic will be restricted to destinations defined in VirtualServices only - VIRTUAL_SERVICE_ONLY = 2 [deprecated=true]; + + reserved 2; + reserved "VIRTUAL_SERVICE_ONLY"; } Mode mode = 1; } - // Set the default behavior of the sidecar for handling outbound traffic from the application. - // While the default mode should work out of the box, if your application uses one or more external services that - // are not known apriori, setting the policy to ALLOW_ANY will cause the sidecars to route traffic to the any - // requested destination. - // Users are strongly encouraged to use ServiceEntries to explicitly declare any external dependencies, - // instead of using allow_any. + // Set the default behavior of the sidecar for handling outbound traffic + // from the application. If your application uses one or more external + // services that are not known apriori, setting the policy to ALLOW_ANY + // will cause the sidecars to route any unknown traffic originating from + // the application to its requested destination. Users are strongly + // encouraged to use ServiceEntries to explicitly declare any external + // dependencies, instead of using allow_any, so that traffic to these + // services can be monitored. OutboundTrafficPolicy outbound_traffic_policy = 17; reserved 18; @@ -206,48 +210,15 @@ message MeshConfig { // and pass to sds server, which will be used to request key/cert eventually. // If both enable_sds_token_mount and sds_use_k8s_sa_jwt are set to true, enable_sds_token_mount(trustworthy jwt) takes precedence. // This isn't supported for non-k8s case. - bool sds_use_k8s_sa_jwt = 30; + bool sds_use_k8s_sa_jwt = 29; // The trust domain corresponds to the trust root of a system. // Refer to https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain // Fallback to old identity format(without trust domain) if not set. string trust_domain = 26; - // Default service dependency settings for each workload in the - // mesh. ServiceDependencycontrols the reachability of workloads to other - // services in the mesh. - message DefaultServiceDependency { - enum Mode { - // Configure routes to services in all namespaces, i.e. import - // services from all namespaces. - ALL_NAMESPACES = 0; - - // Only configure routes to services that are in the same namespace - // as the workload as well as services in namespaces specified in - // importNamespaces. - SAME_NAMESPACE = 1; - } - - // REQUIRED: The default import setting for every workload in the mesh. - Mode import_mode = 1; - - // Specifies one or more namespaces that should be imported by default - // in all user defined ServiceDependency resources in addition to the - // namespaces explicitly specified by the end user. Use this setting to - // automatically import services/resources from namespaces such as - // istio-system that all workloads in the mesh depend upon. - repeated string import_namespaces = 2; - } - - // The default service dependency setting associated with every workload - // in the mesh. Pilot will program the routes in the sidecars and - // gateways accordingly. If omitted, sidecars will be configured to reach - // every service in the mesh. The default scope can be overridden by - // supplying a ServiceDependency resource per namespace. - DefaultServiceDependency default_service_dependency = 29; - // $hide_from_docs - // Next available field number: 32 + // Next available field number: 31 } // ConfigSource describes information about a configuration store inside a diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html index 58bb0ebab7..a581ca038b 100644 --- a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html +++ b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html @@ -4,7 +4,7 @@ generator: protoc-gen-docs aliases: - /docs/reference/config/service-mesh.html -number_of_entries: 18 +number_of_entries: 16 ---

AuthenticationPolicy

@@ -268,12 +268,14 @@

MeshConfig

outboundTrafficPolicy MeshConfig.OutboundTrafficPolicy -

Set the default behavior of the sidecar for handling outbound traffic from the application. -While the default mode should work out of the box, if your application uses one or more external services that -are not known apriori, setting the policy to ALLOWANY will cause the sidecars to route traffic to the any -requested destination. -Users are strongly encouraged to use ServiceEntries to explicitly declare any external dependencies, -instead of using allowany.

+

Set the default behavior of the sidecar for handling outbound traffic +from the application. If your application uses one or more external +services that are not known apriori, setting the policy to ALLOWANY +will cause the sidecars to route any unknown traffic originating from +the application to its requested destination. Users are strongly +encouraged to use ServiceEntries to explicitly declare any external +dependencies, instead of using allowany, so that traffic to these +services can be monitored.

@@ -312,18 +314,6 @@

MeshConfig

Refer to https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain Fallback to old identity format(without trust domain) if not set.

- - - -defaultServiceDependency -MeshConfig.DefaultServiceDependency - -

The default service dependency setting associated with every workload -in the mesh. Pilot will program the routes in the sidecars and -gateways accordingly. If omitted, sidecars will be configured to reach -every service in the mesh. The default scope can be overridden by -supplying a ServiceDependency resource per namespace.

- @@ -347,74 +337,6 @@

MeshConfig.AccessLogEncoding

JSON - - - - -
-

MeshConfig.DefaultServiceDependency

-
-

Default service dependency settings for each workload in the -mesh. ServiceDependencycontrols the reachability of workloads to other -services in the mesh.

- - - - - - - - - - - - - - - - - - - - - -
FieldTypeDescription
importModeMeshConfig.DefaultServiceDependency.Mode -

REQUIRED: The default import setting for every workload in the mesh.

- -
importNamespacesstring[] -

Specifies one or more namespaces that should be imported by default -in all user defined ServiceDependency resources in addition to the -namespaces explicitly specified by the end user. Use this setting to -automatically import services/resources from namespaces such as -istio-system that all workloads in the mesh depend upon.

- -
-
-

MeshConfig.DefaultServiceDependency.Mode

-
- - - - - - - - - - - - - - - @@ -495,22 +417,16 @@

MeshConfig.OutboundTrafficPolicy.

- - - - diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go index 33824eba8f..7788ca4ef0 100644 --- a/networking/v1alpha3/destination_rule.pb.go +++ b/networking/v1alpha3/destination_rule.pb.go @@ -8,8 +8,8 @@ networking/v1alpha3/destination_rule.proto networking/v1alpha3/envoy_filter.proto networking/v1alpha3/gateway.proto - networking/v1alpha3/service_dependency.proto networking/v1alpha3/service_entry.proto + networking/v1alpha3/sidecar.proto networking/v1alpha3/virtual_service.proto It has these top-level messages: @@ -24,8 +24,11 @@ Gateway Server Port - ServiceDependency ServiceEntry + Sidecar + IstioIngressListener + IstioEgressListener + WorkloadSelector VirtualService Destination HTTPRoute @@ -4869,100 +4872,100 @@ func init() { } var fileDescriptorDestinationRule = []byte{ - // 1511 bytes of a gzipped FileDescriptorProto + // 1506 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcf, 0x6f, 0x1b, 0x37, - 0x16, 0xb6, 0x7e, 0x58, 0xb6, 0x9f, 0x6c, 0x59, 0xe6, 0x7a, 0xb3, 0x8a, 0x16, 0x70, 0xbc, 0xc2, - 0x62, 0xe3, 0xcd, 0x26, 0xa3, 0xb5, 0x83, 0x00, 0x69, 0x82, 0x14, 0xb1, 0x6c, 0x21, 0x72, 0x23, + 0x16, 0xb6, 0x7e, 0x58, 0xb6, 0x9f, 0x6c, 0x59, 0xe6, 0x7a, 0xb3, 0x8a, 0x16, 0x70, 0x1c, 0x61, + 0xb1, 0xf1, 0x66, 0x37, 0xa3, 0xb5, 0x83, 0x00, 0x69, 0x82, 0x14, 0xb1, 0x6c, 0x21, 0x72, 0x23, 0x5b, 0x02, 0x25, 0xa3, 0x45, 0x80, 0x62, 0x40, 0x8d, 0x68, 0x89, 0xf1, 0x68, 0x38, 0x1d, 0x72, 0x14, 0x3b, 0x97, 0xfe, 0x03, 0x3d, 0x07, 0xbd, 0xf6, 0x4f, 0xe9, 0xad, 0xe8, 0xa9, 0xd7, 0xf6, 0xd2, 0x22, 0xd7, 0x1e, 0x7a, 0xea, 0xa5, 0x87, 0xa2, 0x20, 0x87, 0x23, 0xc9, 0x89, 0x62, 0xc7, - 0x48, 0x72, 0xe3, 0xf0, 0x7d, 0xdf, 0x23, 0xf9, 0xde, 0xc7, 0xc7, 0x37, 0x70, 0xc3, 0xa3, 0xf2, + 0x48, 0x72, 0xe3, 0xf0, 0x7d, 0xdf, 0x23, 0xf9, 0xde, 0xc7, 0xc7, 0x37, 0x70, 0xd3, 0xa3, 0xf2, 0x19, 0x0f, 0x8e, 0x99, 0xd7, 0x2b, 0x0f, 0x37, 0x89, 0xeb, 0xf7, 0xc9, 0xed, 0x72, 0x97, 0x0a, 0xc9, 0x3c, 0x22, 0x19, 0xf7, 0xec, 0x20, 0x74, 0xa9, 0xe5, 0x07, 0x5c, 0x72, 0x74, 0x95, 0x09, 0xc9, 0xb8, 0x35, 0x66, 0x58, 0x31, 0xa3, 0xb8, 0xd6, 0xe3, 0xbc, 0xe7, 0xd2, 0xb2, 0x06, 0x76, - 0xc2, 0xa3, 0x72, 0x37, 0x0c, 0x34, 0x3f, 0xa2, 0x16, 0xff, 0x3b, 0x6d, 0x99, 0x21, 0x0b, 0x64, - 0x48, 0x5c, 0x5b, 0xd0, 0x60, 0xc8, 0x1c, 0xb3, 0x4a, 0xf1, 0xe6, 0x34, 0xa8, 0x81, 0xd8, 0x5d, - 0xea, 0x53, 0xaf, 0x4b, 0x3d, 0xe7, 0xd4, 0xa0, 0x57, 0x7b, 0xbc, 0xc7, 0xf5, 0xb0, 0xac, 0x46, - 0xd1, 0x6c, 0xe9, 0xcf, 0x04, 0x2c, 0xef, 0x8e, 0x0f, 0x81, 0x43, 0x97, 0x22, 0x04, 0xe9, 0x3e, - 0x17, 0xb2, 0x90, 0x58, 0x4f, 0x6c, 0x2c, 0x60, 0x3d, 0x46, 0x0d, 0xc8, 0xc9, 0x80, 0x1c, 0x1d, - 0x31, 0xc7, 0xf6, 0xb9, 0xcb, 0x9c, 0xd3, 0x42, 0x72, 0x3d, 0xb1, 0x91, 0xdd, 0xda, 0xb0, 0xde, - 0x78, 0x54, 0xab, 0x1d, 0x11, 0x9a, 0x1a, 0x8f, 0x97, 0xe4, 0xe4, 0x27, 0xba, 0x0f, 0x73, 0x22, - 0xec, 0x08, 0x2a, 0x45, 0x21, 0xb5, 0x9e, 0xda, 0xc8, 0x6e, 0xfd, 0xeb, 0x1c, 0x4f, 0x2d, 0x8d, - 0xc4, 0x31, 0x03, 0xed, 0xc1, 0xa2, 0xc3, 0xbd, 0x23, 0xd6, 0xb3, 0x85, 0xc3, 0x7d, 0x5a, 0x48, - 0xaf, 0x27, 0x36, 0x72, 0x5b, 0xff, 0x39, 0xc7, 0xc3, 0x8e, 0x86, 0xb7, 0x14, 0x1a, 0x67, 0x9d, - 0xf1, 0x47, 0xe9, 0xa7, 0x0c, 0x2c, 0x9d, 0xd9, 0x28, 0x6a, 0xc3, 0x92, 0xcb, 0x49, 0xd7, 0xee, - 0x10, 0x97, 0x78, 0x0e, 0x0d, 0x74, 0x1c, 0xb2, 0x5b, 0xe5, 0x73, 0xbc, 0xd7, 0x39, 0xe9, 0x56, - 0x0c, 0xbc, 0x45, 0xa5, 0x64, 0x5e, 0x4f, 0xe0, 0x45, 0x77, 0x62, 0x16, 0x3d, 0x81, 0x65, 0x87, - 0x7b, 0x1e, 0x75, 0xb4, 0x56, 0x7c, 0xce, 0x5d, 0x13, 0xc1, 0xcd, 0xf3, 0x77, 0x6d, 0x18, 0x4d, - 0xce, 0xdd, 0x91, 0xe7, 0x9c, 0x73, 0x66, 0x1e, 0x7d, 0x06, 0x2b, 0x3c, 0x94, 0x2e, 0xa3, 0x81, - 0xdd, 0xa5, 0x32, 0x32, 0x14, 0x52, 0xda, 0xfb, 0xff, 0xce, 0xf1, 0xde, 0x88, 0x38, 0xbb, 0x31, - 0x05, 0xe7, 0xf9, 0x2b, 0x33, 0xe8, 0x2e, 0xa4, 0xa4, 0x2b, 0x74, 0x7c, 0xb3, 0xe7, 0xc6, 0xb7, - 0x5d, 0x6f, 0x8d, 0xb6, 0xa7, 0x28, 0xe8, 0x29, 0xfc, 0xcd, 0xe7, 0x81, 0xb4, 0x5d, 0x3a, 0xa4, - 0x4a, 0xb8, 0x91, 0xad, 0x30, 0xab, 0x73, 0x7d, 0xef, 0x6d, 0x55, 0x63, 0x35, 0x79, 0x20, 0xcf, - 0xea, 0x68, 0x45, 0xb9, 0xad, 0x2b, 0xaf, 0xf1, 0x82, 0xc5, 0x17, 0x29, 0x58, 0x79, 0x0d, 0x88, - 0xee, 0x43, 0x5a, 0x41, 0x4d, 0xfa, 0xae, 0x9f, 0xb3, 0xa4, 0xe2, 0xb6, 0xa8, 0x4b, 0x1d, 0xc9, - 0x03, 0xac, 0x49, 0xaf, 0x8b, 0x20, 0xf9, 0x81, 0x44, 0x90, 0xfa, 0xa0, 0x22, 0x48, 0xbf, 0x47, - 0x11, 0xcc, 0x5e, 0x5a, 0x04, 0xa5, 0xdf, 0x12, 0x90, 0x89, 0xee, 0xae, 0x2a, 0x2a, 0x1e, 0x19, - 0xd0, 0xb8, 0xa8, 0xa8, 0x31, 0xaa, 0x42, 0xc6, 0x25, 0x1d, 0xea, 0x8a, 0x42, 0x52, 0xcb, 0xe2, - 0xd6, 0x85, 0x25, 0xc0, 0xaa, 0x6b, 0x7c, 0xd5, 0x93, 0xc1, 0x29, 0x36, 0xe4, 0x29, 0xb5, 0x29, - 0xf5, 0x4e, 0xb5, 0xa9, 0xf8, 0x11, 0x64, 0x27, 0xd6, 0x41, 0x79, 0x48, 0x1d, 0xd3, 0x53, 0xb3, - 0x73, 0x35, 0x44, 0xab, 0x30, 0x3b, 0x24, 0x6e, 0x48, 0xb5, 0x2a, 0x16, 0x70, 0xf4, 0x71, 0x2f, - 0x79, 0x37, 0x51, 0xfa, 0x75, 0x0e, 0x56, 0xa7, 0x09, 0x01, 0x61, 0xc8, 0x08, 0x36, 0xf0, 0xdd, - 0x28, 0x02, 0xb9, 0xad, 0xbb, 0x97, 0x54, 0x92, 0xd5, 0xd2, 0xec, 0x7a, 0xa5, 0x36, 0x83, 0x8d, - 0x27, 0x74, 0xac, 0xe5, 0x24, 0x98, 0x90, 0xd4, 0x93, 0x76, 0x9f, 0x88, 0xbe, 0x91, 0xe9, 0xc3, - 0xcb, 0x3a, 0xdf, 0x19, 0xb9, 0xa9, 0x11, 0xd1, 0xd7, 0x8b, 0xe4, 0x9c, 0x33, 0x73, 0xe8, 0x4b, - 0x28, 0xb8, 0xdc, 0x21, 0x2e, 0x93, 0xa7, 0xf6, 0x33, 0xca, 0x7a, 0x7d, 0x39, 0xbe, 0xd5, 0x51, - 0x05, 0xaf, 0x5e, 0x76, 0xd5, 0xba, 0xf1, 0xf7, 0xa9, 0x76, 0x67, 0xa6, 0xf1, 0x15, 0x77, 0xda, - 0xb4, 0x28, 0xfe, 0x9e, 0x84, 0xfc, 0xab, 0xfb, 0x44, 0x37, 0x20, 0xdf, 0x97, 0xd2, 0xb7, 0xfb, - 0x94, 0x74, 0x69, 0x60, 0x8f, 0x25, 0xa6, 0x4e, 0xa0, 0x2c, 0x35, 0x6d, 0x38, 0x50, 0x72, 0xf3, - 0x20, 0xab, 0xb1, 0x0e, 0xe7, 0xc7, 0x8c, 0x9a, 0x50, 0x3d, 0x7e, 0xd7, 0x50, 0x59, 0xb5, 0x76, - 0xbb, 0xb9, 0xa3, 0x5d, 0xd6, 0x66, 0x30, 0xa8, 0x15, 0xa2, 0x2f, 0xf4, 0x6f, 0x58, 0x0a, 0x05, - 0xb5, 0x05, 0x0f, 0x03, 0x87, 0xda, 0xcc, 0xd7, 0xb2, 0x9c, 0xaf, 0xcd, 0xe0, 0x6c, 0x28, 0x68, - 0x4b, 0xcf, 0xee, 0xf9, 0xe8, 0x06, 0xac, 0x0c, 0x98, 0xc7, 0x06, 0xe1, 0xc0, 0x0e, 0x98, 0xd7, - 0xb3, 0x05, 0x7b, 0x1e, 0x3d, 0x68, 0x69, 0xbc, 0x6c, 0x0c, 0x98, 0x79, 0xbd, 0x16, 0x7b, 0x4e, - 0x8b, 0x3d, 0x80, 0xf1, 0x6a, 0x53, 0xaf, 0x14, 0x82, 0xb4, 0x4f, 0x64, 0xdf, 0x08, 0x53, 0x8f, - 0xd1, 0x26, 0xa4, 0xa4, 0x8c, 0x2b, 0xcd, 0x55, 0x2b, 0x6a, 0x40, 0xac, 0xb8, 0x01, 0xb1, 0x76, - 0x4d, 0x03, 0x52, 0x49, 0x7f, 0xfd, 0xf3, 0xb5, 0x04, 0x56, 0xd8, 0x0a, 0xc0, 0xbc, 0x92, 0x93, - 0x7d, 0x4c, 0x4f, 0x8b, 0xdf, 0x26, 0xe0, 0xef, 0x53, 0x33, 0xa5, 0x16, 0x3b, 0x0a, 0xf8, 0x20, - 0xde, 0x80, 0x1a, 0xa3, 0xcf, 0x21, 0x29, 0xb9, 0xb9, 0xcf, 0xfb, 0xef, 0x45, 0x10, 0x56, 0x9b, - 0x47, 0xf7, 0x3d, 0x29, 0x79, 0xf1, 0x0e, 0xcc, 0x99, 0xcf, 0x8b, 0xae, 0xe5, 0xd2, 0xe4, 0xb5, - 0xac, 0xc1, 0x7c, 0x7c, 0x7f, 0xd0, 0x32, 0x64, 0x71, 0xe3, 0xf0, 0x60, 0xd7, 0xc6, 0x8d, 0xca, - 0xde, 0x41, 0x7e, 0x06, 0xe5, 0x00, 0xea, 0xd5, 0xed, 0x56, 0xdb, 0xde, 0x69, 0x1c, 0x1c, 0xe4, - 0x13, 0x08, 0x20, 0x83, 0xb7, 0x0f, 0x76, 0x1b, 0xfb, 0xf9, 0xa4, 0x02, 0x37, 0xb7, 0x5b, 0xad, - 0x76, 0x0d, 0x37, 0x0e, 0x1f, 0xd5, 0xf2, 0xa9, 0x4a, 0x16, 0x16, 0xdc, 0x8e, 0xa9, 0x33, 0xa5, - 0x17, 0x19, 0xb8, 0x32, 0xbd, 0x3c, 0xa3, 0x06, 0xa4, 0xa4, 0xe3, 0x9b, 0xc7, 0xe7, 0xc1, 0xa5, - 0xcb, 0xbb, 0xd5, 0xde, 0x69, 0x4e, 0xd4, 0x52, 0xc7, 0x47, 0x18, 0xd2, 0x4a, 0x5b, 0x46, 0xb6, - 0x1f, 0x5f, 0xde, 0xa3, 0x52, 0xce, 0xc8, 0xa5, 0xf6, 0x55, 0xfc, 0x23, 0x09, 0xd9, 0x89, 0x85, - 0xd0, 0x75, 0x58, 0x1e, 0x90, 0x13, 0x7b, 0xfc, 0xb2, 0x08, 0x7d, 0x80, 0x59, 0x9c, 0x1b, 0x90, - 0x93, 0xb1, 0x5b, 0x81, 0x2a, 0xa3, 0x87, 0xcc, 0x96, 0x6c, 0x40, 0x79, 0x28, 0xcd, 0xbe, 0xde, - 0x2c, 0xaf, 0xd1, 0x83, 0xd5, 0x8e, 0x08, 0x88, 0xc3, 0x92, 0x74, 0x7c, 0xfb, 0x98, 0x52, 0x9f, - 0xb8, 0x6c, 0x48, 0x8d, 0x40, 0x3f, 0x79, 0xa7, 0x58, 0x59, 0x6d, 0xc7, 0x7f, 0x1c, 0x7b, 0xc4, - 0x8b, 0x72, 0xe2, 0xab, 0xf8, 0x55, 0x02, 0x16, 0x27, 0xcd, 0xe8, 0x0a, 0x64, 0xfc, 0x80, 0x77, - 0x68, 0x74, 0xca, 0x25, 0x6c, 0xbe, 0xd0, 0x2d, 0x48, 0xab, 0x53, 0x5d, 0x7c, 0x24, 0x0d, 0x43, - 0x77, 0x60, 0x9e, 0x79, 0x92, 0x06, 0x43, 0x72, 0xf1, 0x25, 0xc3, 0x23, 0x68, 0xf1, 0xc7, 0x04, - 0x2c, 0x4e, 0xe6, 0x04, 0xdd, 0x87, 0xa2, 0xca, 0xca, 0xa6, 0xad, 0x72, 0xa0, 0xba, 0x77, 0x55, - 0x0e, 0x02, 0xfa, 0x45, 0x48, 0x85, 0x8c, 0x13, 0xf1, 0x0f, 0x8d, 0xd8, 0x27, 0x27, 0xcd, 0xc8, - 0x8e, 0x8d, 0x19, 0xdd, 0x04, 0xa4, 0x4c, 0x5b, 0x9a, 0x3c, 0x22, 0x25, 0x35, 0x49, 0x97, 0xc8, - 0xad, 0x7d, 0x72, 0x32, 0x42, 0x3f, 0x80, 0x7f, 0x4e, 0xe2, 0x6c, 0x9f, 0x06, 0x13, 0x59, 0xd7, - 0xa7, 0x98, 0xc5, 0x85, 0xc1, 0x98, 0xd1, 0xa4, 0xc1, 0x38, 0xf8, 0xe8, 0x1a, 0x64, 0x23, 0xba, - 0x0c, 0x18, 0x8d, 0xda, 0xc3, 0x59, 0x0c, 0x1a, 0xae, 0x67, 0x4a, 0xdf, 0x24, 0x21, 0xff, 0x6a, - 0x67, 0x81, 0x6e, 0x01, 0x52, 0x6f, 0x0a, 0x75, 0x42, 0xc9, 0x86, 0xd4, 0xa6, 0x41, 0xc0, 0x83, - 0xf8, 0x5c, 0x2b, 0x13, 0x96, 0xaa, 0x36, 0x9c, 0x09, 0x6b, 0xf2, 0xad, 0xc3, 0x8a, 0x1e, 0x01, - 0xea, 0x10, 0x41, 0x6d, 0xfa, 0xd4, 0xb4, 0x59, 0x3a, 0x95, 0x17, 0xe6, 0x25, 0xaf, 0x48, 0x55, - 0xc3, 0x51, 0x12, 0x45, 0xff, 0x87, 0x55, 0x75, 0xc8, 0x91, 0x1f, 0x9f, 0x06, 0x0e, 0xf5, 0xa4, - 0x39, 0x2d, 0x1a, 0x90, 0x93, 0x18, 0xde, 0x8c, 0x2c, 0x2a, 0x07, 0x03, 0xe6, 0xa9, 0xb7, 0xc8, - 0x95, 0xfd, 0x11, 0x7e, 0x36, 0xca, 0xc1, 0x80, 0x79, 0x35, 0x6d, 0x30, 0xe8, 0xd2, 0xf7, 0xea, - 0xf2, 0x8d, 0x3b, 0x26, 0x54, 0x81, 0xf4, 0x80, 0x77, 0xe3, 0xfe, 0xc0, 0x7a, 0xbb, 0x3e, 0x4b, - 0x8d, 0x15, 0x0b, 0x6b, 0xae, 0x0e, 0xb1, 0xcb, 0x54, 0x37, 0xe0, 0xd0, 0x40, 0xb2, 0x23, 0xe6, - 0x10, 0x19, 0x77, 0x29, 0x2b, 0x91, 0x65, 0x67, 0x6c, 0x50, 0x79, 0xf4, 0x03, 0x36, 0x24, 0x92, - 0xaa, 0x4a, 0xaf, 0x83, 0xb4, 0x80, 0xc1, 0x4c, 0x3d, 0xa6, 0xa7, 0xaa, 0x20, 0x38, 0x64, 0xd2, - 0x57, 0x94, 0xec, 0x05, 0x9c, 0x73, 0xc8, 0x84, 0x23, 0xa1, 0x5e, 0x31, 0x11, 0x76, 0x54, 0x3c, - 0x6c, 0xe2, 0x4a, 0xfd, 0x0e, 0x47, 0xcd, 0xfe, 0x02, 0x5e, 0x36, 0x86, 0x6d, 0x57, 0xaa, 0x67, - 0x58, 0xa8, 0xc2, 0x2d, 0x3c, 0x56, 0xc8, 0x44, 0x85, 0x5b, 0x78, 0xac, 0xf4, 0x10, 0xe6, 0xcc, - 0x39, 0x50, 0x16, 0xe6, 0x76, 0xf7, 0x5a, 0xdb, 0x95, 0x7a, 0x35, 0x3f, 0xa3, 0x2a, 0x71, 0x6b, - 0x6f, 0xbf, 0x59, 0xaf, 0x46, 0x55, 0x79, 0xff, 0xb0, 0x7d, 0xb8, 0x5d, 0xcf, 0x27, 0x51, 0x1e, - 0x16, 0xf7, 0x5a, 0xed, 0xbd, 0x86, 0x6d, 0x66, 0x52, 0x15, 0xeb, 0xbb, 0x97, 0x6b, 0x89, 0x1f, - 0x5e, 0xae, 0x25, 0x7e, 0x79, 0xb9, 0x96, 0x78, 0xb2, 0x1e, 0xc5, 0x8e, 0xf1, 0x32, 0xf1, 0x59, - 0x79, 0xca, 0x6f, 0x72, 0x27, 0xa3, 0x15, 0x70, 0xfb, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf9, - 0xac, 0x46, 0x5e, 0xd6, 0x0f, 0x00, 0x00, + 0xc2, 0xa3, 0x72, 0x37, 0x0c, 0x34, 0x3f, 0xa2, 0x16, 0xff, 0x33, 0x6d, 0x99, 0x21, 0x0b, 0x64, + 0x48, 0x5c, 0x5b, 0xd0, 0x60, 0xc8, 0x1c, 0xb3, 0x4a, 0xf1, 0xfa, 0x34, 0xa8, 0x60, 0x5d, 0xea, + 0x90, 0xc0, 0x40, 0x56, 0x7b, 0xbc, 0xc7, 0xf5, 0xb0, 0xac, 0x46, 0xd1, 0x6c, 0xe9, 0xcf, 0x04, + 0x2c, 0xef, 0x8e, 0x77, 0x8e, 0x43, 0x97, 0x22, 0x04, 0xe9, 0x3e, 0x17, 0xb2, 0x90, 0x58, 0x4f, + 0x6c, 0x2c, 0x60, 0x3d, 0x46, 0x0d, 0xc8, 0xc9, 0x80, 0x1c, 0x1d, 0x31, 0xc7, 0xf6, 0xb9, 0xcb, + 0x9c, 0xd3, 0x42, 0x72, 0x3d, 0xb1, 0x91, 0xdd, 0xda, 0xb0, 0xde, 0x78, 0x3e, 0xab, 0x1d, 0x11, + 0x9a, 0x1a, 0x8f, 0x97, 0xe4, 0xe4, 0x27, 0xba, 0x0f, 0x73, 0x22, 0xec, 0x08, 0x2a, 0x45, 0x21, + 0xb5, 0x9e, 0xda, 0xc8, 0x6e, 0x5d, 0x3f, 0xc7, 0x53, 0x4b, 0x23, 0x71, 0xcc, 0x40, 0x7b, 0xb0, + 0xe8, 0x70, 0xef, 0x88, 0xf5, 0x6c, 0xe1, 0x70, 0x9f, 0x16, 0xd2, 0xeb, 0x89, 0x8d, 0xdc, 0xd6, + 0xbf, 0xcf, 0xf1, 0xb0, 0xa3, 0xe1, 0x2d, 0x85, 0xc6, 0x59, 0x67, 0xfc, 0x51, 0xfa, 0x29, 0x03, + 0x4b, 0x67, 0x36, 0x8a, 0xda, 0xb0, 0xe4, 0x72, 0xd2, 0xb5, 0x3b, 0xc4, 0x25, 0x9e, 0x43, 0x03, + 0x1d, 0x87, 0xec, 0x56, 0xf9, 0x1c, 0xef, 0x75, 0x4e, 0xba, 0x15, 0x03, 0x6f, 0x51, 0x29, 0x99, + 0xd7, 0x13, 0x78, 0xd1, 0x9d, 0x98, 0x45, 0x4f, 0x60, 0xd9, 0xe1, 0x9e, 0x47, 0x1d, 0x2d, 0x10, + 0x9f, 0x73, 0xd7, 0x44, 0x70, 0xf3, 0xfc, 0x5d, 0x1b, 0x46, 0x93, 0x73, 0x77, 0xe4, 0x39, 0xe7, + 0x9c, 0x99, 0x47, 0x9f, 0xc1, 0x0a, 0x0f, 0xa5, 0xcb, 0x68, 0x60, 0x77, 0xa9, 0x8c, 0x0c, 0x85, + 0x94, 0xf6, 0xfe, 0xdf, 0x73, 0xbc, 0x37, 0x22, 0xce, 0x6e, 0x4c, 0xc1, 0x79, 0xfe, 0xca, 0x0c, + 0xba, 0x0b, 0x29, 0xe9, 0x0a, 0x1d, 0xdf, 0xec, 0xb9, 0xf1, 0x6d, 0xd7, 0x5b, 0xa3, 0xed, 0x29, + 0x0a, 0x7a, 0x0a, 0x7f, 0xf3, 0x79, 0x20, 0x6d, 0x97, 0x0e, 0xa9, 0x52, 0x6b, 0x64, 0x2b, 0xcc, + 0xea, 0x5c, 0xdf, 0x7b, 0x5b, 0xd5, 0x58, 0x4d, 0x1e, 0xc8, 0xb3, 0x3a, 0x5a, 0x51, 0x6e, 0xeb, + 0xca, 0x6b, 0xbc, 0x60, 0xf1, 0x45, 0x0a, 0x56, 0x5e, 0x03, 0xa2, 0xfb, 0x90, 0x56, 0x50, 0x93, + 0xbe, 0x1b, 0xe7, 0x2c, 0xa9, 0xb8, 0x2d, 0xea, 0x52, 0x47, 0xf2, 0x00, 0x6b, 0xd2, 0xeb, 0x22, + 0x48, 0x7e, 0x20, 0x11, 0xa4, 0x3e, 0xa8, 0x08, 0xd2, 0xef, 0x51, 0x04, 0xb3, 0x97, 0x16, 0x41, + 0xe9, 0xb7, 0x04, 0x64, 0xa2, 0xbb, 0xab, 0x8a, 0x8a, 0x47, 0x06, 0x34, 0x2e, 0x2a, 0x6a, 0x8c, + 0xaa, 0x90, 0x71, 0x49, 0x87, 0xba, 0xa2, 0x90, 0xd4, 0xb2, 0xb8, 0x75, 0x61, 0x09, 0xb0, 0xea, + 0x1a, 0x5f, 0xf5, 0x64, 0x70, 0x8a, 0x0d, 0x79, 0x4a, 0x6d, 0x4a, 0xbd, 0x53, 0x6d, 0x2a, 0x7e, + 0x04, 0xd9, 0x89, 0x75, 0x50, 0x1e, 0x52, 0xc7, 0xf4, 0xd4, 0xec, 0x5c, 0x0d, 0xd1, 0x2a, 0xcc, + 0x0e, 0x89, 0x1b, 0x52, 0xad, 0x8a, 0x05, 0x1c, 0x7d, 0xdc, 0x4b, 0xde, 0x4d, 0x94, 0x7e, 0x9d, + 0x83, 0xd5, 0x69, 0x42, 0x40, 0x18, 0x32, 0x82, 0x0d, 0x7c, 0x37, 0x8a, 0x40, 0x6e, 0xeb, 0xee, + 0x25, 0x95, 0x64, 0xb5, 0x34, 0xbb, 0x5e, 0xa9, 0xcd, 0x60, 0xe3, 0x09, 0x1d, 0x6b, 0x39, 0x09, + 0x26, 0x24, 0xf5, 0xa4, 0xdd, 0x27, 0xa2, 0x6f, 0x64, 0xfa, 0xf0, 0xb2, 0xce, 0x77, 0x46, 0x6e, + 0x6a, 0x44, 0xf4, 0xf5, 0x22, 0x39, 0xe7, 0xcc, 0x1c, 0xfa, 0x12, 0x0a, 0x2e, 0x77, 0x88, 0xcb, + 0xe4, 0xa9, 0xfd, 0x8c, 0xb2, 0x5e, 0x5f, 0x8e, 0x6f, 0x75, 0x54, 0xc1, 0xab, 0x97, 0x5d, 0xb5, + 0x6e, 0xfc, 0x7d, 0xaa, 0xdd, 0x99, 0x69, 0x7c, 0xc5, 0x9d, 0x36, 0x2d, 0x8a, 0xbf, 0x27, 0x21, + 0xff, 0xea, 0x3e, 0xd1, 0x4d, 0xc8, 0xf7, 0xa5, 0xf4, 0xed, 0x3e, 0x25, 0x5d, 0x1a, 0xd8, 0x63, + 0x89, 0xa9, 0x13, 0x28, 0x4b, 0x4d, 0x1b, 0x0e, 0x94, 0xdc, 0x3c, 0xc8, 0x6a, 0xac, 0xc3, 0xf9, + 0x31, 0xa3, 0x26, 0x54, 0x8f, 0xdf, 0x35, 0x54, 0x56, 0xad, 0xdd, 0x6e, 0xee, 0x68, 0x97, 0xb5, + 0x19, 0x0c, 0x6a, 0x85, 0xe8, 0x0b, 0xfd, 0x0b, 0x96, 0x42, 0x41, 0x6d, 0xc1, 0xc3, 0xc0, 0xa1, + 0x36, 0xf3, 0xb5, 0x2c, 0xe7, 0x6b, 0x33, 0x38, 0x1b, 0x0a, 0xda, 0xd2, 0xb3, 0x7b, 0x3e, 0xba, + 0x09, 0x2b, 0x03, 0xe6, 0xb1, 0x41, 0x38, 0xb0, 0x03, 0xe6, 0xf5, 0x6c, 0xc1, 0x9e, 0x47, 0x0f, + 0x5a, 0x1a, 0x2f, 0x1b, 0x03, 0x66, 0x5e, 0xaf, 0xc5, 0x9e, 0xd3, 0x62, 0x0f, 0x60, 0xbc, 0xda, + 0xd4, 0x2b, 0x85, 0x20, 0xed, 0x13, 0xd9, 0x37, 0xc2, 0xd4, 0x63, 0xb4, 0x09, 0x29, 0x29, 0xe3, + 0x4a, 0x73, 0xd5, 0x8a, 0xba, 0x0e, 0x2b, 0xee, 0x3a, 0xac, 0x5d, 0xd3, 0x75, 0x54, 0xd2, 0x5f, + 0xff, 0x7c, 0x2d, 0x81, 0x15, 0xb6, 0x02, 0x30, 0xaf, 0xe4, 0x64, 0x1f, 0xd3, 0xd3, 0xe2, 0xb7, + 0x09, 0xf8, 0xfb, 0xd4, 0x4c, 0xa9, 0xc5, 0x8e, 0x02, 0x3e, 0x88, 0x37, 0xa0, 0xc6, 0xe8, 0x73, + 0x48, 0x4a, 0x6e, 0xee, 0xf3, 0xfe, 0x7b, 0x11, 0x84, 0xd5, 0xe6, 0xd1, 0x7d, 0x4f, 0x4a, 0x5e, + 0xbc, 0x03, 0x73, 0xe6, 0xf3, 0xa2, 0x6b, 0xb9, 0x34, 0x79, 0x2d, 0x6b, 0x30, 0x1f, 0xdf, 0x1f, + 0xb4, 0x0c, 0x59, 0xdc, 0x38, 0x3c, 0xd8, 0xb5, 0x71, 0xa3, 0xb2, 0x77, 0x90, 0x9f, 0x41, 0x39, + 0x80, 0x7a, 0x75, 0xbb, 0xd5, 0xb6, 0x77, 0x1a, 0x07, 0x07, 0xf9, 0x04, 0x02, 0xc8, 0xe0, 0xed, + 0x83, 0xdd, 0xc6, 0x7e, 0x3e, 0xa9, 0xc0, 0xcd, 0xed, 0x56, 0xab, 0x5d, 0xc3, 0x8d, 0xc3, 0x47, + 0xb5, 0x7c, 0xaa, 0x92, 0x85, 0x05, 0xb7, 0x63, 0xea, 0x4c, 0xe9, 0x45, 0x06, 0xae, 0x4c, 0x2f, + 0xcf, 0xa8, 0x01, 0x29, 0xe9, 0xf8, 0xe6, 0xf1, 0x79, 0x70, 0xe9, 0xf2, 0x6e, 0xb5, 0x77, 0x9a, + 0x13, 0xb5, 0xd4, 0xf1, 0x11, 0x86, 0xb4, 0xd2, 0x96, 0x91, 0xed, 0xc7, 0x97, 0xf7, 0xa8, 0x94, + 0x33, 0x72, 0xa9, 0x7d, 0x15, 0xff, 0x48, 0x42, 0x76, 0x62, 0x21, 0x74, 0x03, 0x96, 0x07, 0xe4, + 0xc4, 0x1e, 0xbf, 0x2c, 0x42, 0x1f, 0x60, 0x16, 0xe7, 0x06, 0xe4, 0x64, 0xec, 0x56, 0xa0, 0xca, + 0xe8, 0x21, 0xb3, 0x25, 0x1b, 0x50, 0x1e, 0x4a, 0xb3, 0xaf, 0x37, 0xcb, 0x6b, 0xf4, 0x60, 0xb5, + 0x23, 0x02, 0xe2, 0xb0, 0x24, 0x1d, 0xdf, 0x3e, 0xa6, 0xd4, 0x27, 0x2e, 0x1b, 0x52, 0x23, 0xd0, + 0x4f, 0xde, 0x29, 0x56, 0x56, 0xdb, 0xf1, 0x1f, 0xc7, 0x1e, 0xf1, 0xa2, 0x9c, 0xf8, 0x2a, 0x7e, + 0x95, 0x80, 0xc5, 0x49, 0x33, 0xba, 0x02, 0x19, 0x3f, 0xe0, 0x1d, 0x1a, 0x9d, 0x72, 0x09, 0x9b, + 0x2f, 0x74, 0x0b, 0xd2, 0xea, 0x54, 0x17, 0x1f, 0x49, 0xc3, 0xd0, 0x1d, 0x98, 0x67, 0x9e, 0xa4, + 0xc1, 0x90, 0x5c, 0x7c, 0xc9, 0xf0, 0x08, 0x5a, 0xfc, 0x31, 0x01, 0x8b, 0x93, 0x39, 0x41, 0xf7, + 0xa1, 0xa8, 0xb2, 0xb2, 0x69, 0xab, 0x1c, 0xf8, 0xd4, 0xeb, 0xaa, 0x72, 0x10, 0xd0, 0x2f, 0x42, + 0x2a, 0x64, 0x9c, 0x88, 0x7f, 0x68, 0xc4, 0x3e, 0x39, 0x69, 0x46, 0x76, 0x6c, 0xcc, 0xe8, 0x7f, + 0x80, 0x94, 0x69, 0x4b, 0x93, 0x47, 0xa4, 0xa4, 0x26, 0xe9, 0x12, 0xb9, 0xb5, 0x4f, 0x4e, 0x46, + 0xe8, 0x07, 0xf0, 0xcf, 0x49, 0x9c, 0xed, 0xd3, 0x60, 0x22, 0xeb, 0xfa, 0x14, 0xb3, 0xb8, 0x30, + 0x18, 0x33, 0x9a, 0x34, 0x18, 0x07, 0x1f, 0x5d, 0x83, 0x6c, 0x44, 0x97, 0x01, 0xa3, 0x51, 0x7b, + 0x38, 0x8b, 0x41, 0xc3, 0xf5, 0x4c, 0xe9, 0x9b, 0x24, 0xe4, 0x5f, 0xed, 0x2c, 0xd0, 0x2d, 0x40, + 0xea, 0x4d, 0xa1, 0x4e, 0x28, 0xd9, 0x90, 0xda, 0x34, 0x08, 0x78, 0x10, 0x9f, 0x6b, 0x65, 0xc2, + 0x52, 0xd5, 0x86, 0x33, 0x61, 0x4d, 0xbe, 0x75, 0x58, 0xd1, 0x23, 0x40, 0x1d, 0x22, 0xa8, 0x4d, + 0x9f, 0x9a, 0x36, 0x4b, 0xa7, 0xf2, 0xc2, 0xbc, 0xe4, 0x15, 0xa9, 0x6a, 0x38, 0x4a, 0xa2, 0xe8, + 0xff, 0xb0, 0xaa, 0x0e, 0x39, 0xf2, 0xe3, 0xd3, 0xc0, 0xa1, 0x9e, 0x34, 0xa7, 0x45, 0x03, 0x72, + 0x12, 0xc3, 0x9b, 0x91, 0x45, 0xe5, 0x60, 0xc0, 0x3c, 0xf5, 0x16, 0xb9, 0xb2, 0x3f, 0xc2, 0xcf, + 0x46, 0x39, 0x18, 0x30, 0xaf, 0xa6, 0x0d, 0x06, 0x5d, 0xfa, 0x5e, 0x5d, 0xbe, 0x71, 0xc7, 0x84, + 0x2a, 0x90, 0x1e, 0xf0, 0x6e, 0xdc, 0x1f, 0x58, 0x6f, 0xd7, 0x67, 0xa9, 0xb1, 0x62, 0x61, 0xcd, + 0xd5, 0x21, 0x76, 0x99, 0xea, 0x06, 0x1c, 0x1a, 0x48, 0x76, 0xc4, 0x1c, 0x22, 0xe3, 0x2e, 0x65, + 0x25, 0xb2, 0xec, 0x8c, 0x0d, 0x2a, 0x8f, 0x7e, 0xc0, 0x86, 0x44, 0x52, 0x55, 0xe9, 0x75, 0x90, + 0x16, 0x30, 0x98, 0xa9, 0xc7, 0xf4, 0x54, 0x15, 0x04, 0x87, 0x4c, 0xfa, 0x8a, 0x92, 0xbd, 0x80, + 0x73, 0x0e, 0x99, 0x70, 0x24, 0xd4, 0x2b, 0x26, 0xc2, 0x8e, 0x8a, 0x87, 0x4d, 0x5c, 0xa9, 0xdf, + 0xe1, 0xa8, 0xd9, 0x5f, 0xc0, 0xcb, 0xc6, 0xb0, 0xed, 0x4a, 0xf5, 0x0c, 0x0b, 0x55, 0xb8, 0x85, + 0xc7, 0x0a, 0x99, 0xa8, 0x70, 0x0b, 0x8f, 0x95, 0x1e, 0xc2, 0x9c, 0x39, 0x07, 0xca, 0xc2, 0xdc, + 0xee, 0x5e, 0x6b, 0xbb, 0x52, 0xaf, 0xe6, 0x67, 0x54, 0x25, 0x6e, 0xed, 0xed, 0x37, 0xeb, 0xd5, + 0xa8, 0x2a, 0xef, 0x1f, 0xb6, 0x0f, 0xb7, 0xeb, 0xf9, 0x24, 0xca, 0xc3, 0xe2, 0x5e, 0xab, 0xbd, + 0xd7, 0xb0, 0xcd, 0x4c, 0xaa, 0x62, 0x7d, 0xf7, 0x72, 0x2d, 0xf1, 0xc3, 0xcb, 0xb5, 0xc4, 0x2f, + 0x2f, 0xd7, 0x12, 0x4f, 0xd6, 0xa3, 0xd8, 0x31, 0x5e, 0x26, 0x3e, 0x2b, 0x4f, 0xf9, 0x37, 0xee, + 0x64, 0xb4, 0x02, 0x6e, 0xff, 0x15, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xbb, 0x7b, 0xfa, 0xcb, 0x0f, + 0x00, 0x00, } diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto index bef39882ee..757bca7c73 100644 --- a/networking/v1alpha3/destination_rule.proto +++ b/networking/v1alpha3/destination_rule.proto @@ -15,7 +15,7 @@ syntax = "proto3"; import "google/protobuf/duration.proto"; import "networking/v1alpha3/virtual_service.proto"; -import "networking/v1alpha3/service_dependency.proto"; +import "networking/v1alpha3/sidecar.proto"; import "gogoproto/gogo.proto"; package istio.networking.v1alpha3; diff --git a/networking/v1alpha3/gateway.pb.go b/networking/v1alpha3/gateway.pb.go index 2ae532566e..37c3bcf532 100644 --- a/networking/v1alpha3/gateway.pb.go +++ b/networking/v1alpha3/gateway.pb.go @@ -237,10 +237,10 @@ type Gateway struct { // REQUIRED: A list of server specifications. Servers []*Server `protobuf:"bytes,1,rep,name=servers" 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. + // on which this gateway configuration should be applied. The scope of + // label search is restricted to the configuration namespace in which the + // the resource is present. In other words, the Gateway resource must + // reside in the same namespace as the gateway workload. Selector map[string]string `protobuf:"bytes,2,rep,name=selector" json:"selector,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } @@ -326,8 +326,14 @@ func (m *Gateway) GetSelector() map[string]string { // ``` type Server struct { // REQUIRED: The Port on which the proxy should listen for incoming - // connections + // connections. If using unix domain socket, use 0 as the port number, + // with a valid protocol and port name, along with the bind parameter. Port *Port `protobuf:"bytes,1,opt,name=port" json:"port,omitempty"` + // $hide_from_docs + // The ip or the unix domain socket to which the listener should be bound + // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux + // abstract namespace). + Bind string `protobuf:"bytes,4,opt,name=bind,proto3" json:"bind,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 @@ -347,6 +353,10 @@ type Server struct { // these options to control if all http requests should be redirected to // https, and the TLS modes to use. Tls *Server_TLSOptions `protobuf:"bytes,3,opt,name=tls" json:"tls,omitempty"` + // The loopback IP endpoint or unix domain socket to which traffic should + // be forwarded to by default. Format should be 127.0.0.1:PORT or + // unix:///path/to/socket or unix://@foobar (Linux abstract namespace). + DefaultEndpoint string `protobuf:"bytes,5,opt,name=default_endpoint,json=defaultEndpoint,proto3" json:"default_endpoint,omitempty"` } func (m *Server) Reset() { *m = Server{} } @@ -361,6 +371,13 @@ func (m *Server) GetPort() *Port { return nil } +func (m *Server) GetBind() string { + if m != nil { + return m.Bind + } + return "" +} + func (m *Server) GetHosts() []string { if m != nil { return m.Hosts @@ -375,6 +392,13 @@ func (m *Server) GetTls() *Server_TLSOptions { return nil } +func (m *Server) GetDefaultEndpoint() string { + if m != nil { + return m.DefaultEndpoint + } + return "" +} + 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. @@ -617,6 +641,18 @@ func (m *Server) MarshalTo(dAtA []byte) (int, error) { } i += n2 } + if len(m.Bind) > 0 { + dAtA[i] = 0x22 + i++ + i = encodeVarintGateway(dAtA, i, uint64(len(m.Bind))) + i += copy(dAtA[i:], m.Bind) + } + if len(m.DefaultEndpoint) > 0 { + dAtA[i] = 0x2a + i++ + i = encodeVarintGateway(dAtA, i, uint64(len(m.DefaultEndpoint))) + i += copy(dAtA[i:], m.DefaultEndpoint) + } return i, nil } @@ -792,6 +828,14 @@ func (m *Server) Size() (n int) { l = m.Tls.Size() n += 1 + l + sovGateway(uint64(l)) } + l = len(m.Bind) + if l > 0 { + n += 1 + l + sovGateway(uint64(l)) + } + l = len(m.DefaultEndpoint) + if l > 0 { + n += 1 + l + sovGateway(uint64(l)) + } return n } @@ -1190,6 +1234,64 @@ func (m *Server) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGateway + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGateway + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultEndpoint", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGateway + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGateway + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultEndpoint = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGateway(dAtA[iNdEx:]) @@ -1718,44 +1820,47 @@ var ( func init() { proto.RegisterFile("networking/v1alpha3/gateway.proto", fileDescriptorGateway) } var fileDescriptorGateway = []byte{ - // 623 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x5d, 0x4f, 0xdb, 0x3c, - 0x18, 0x25, 0x6d, 0xe9, 0xc7, 0x53, 0x0a, 0xc1, 0x42, 0xaf, 0xf2, 0x72, 0xc1, 0x47, 0xa7, 0x69, - 0x68, 0xda, 0x52, 0x68, 0x77, 0x81, 0x86, 0x34, 0xa9, 0x9b, 0x10, 0x9d, 0x56, 0x68, 0xe5, 0xb4, - 0x5c, 0xec, 0x26, 0x32, 0xc1, 0xa3, 0x86, 0x34, 0x8e, 0x6c, 0xb7, 0xd0, 0xbf, 0xb6, 0x5f, 0xb0, - 0x4b, 0xf6, 0x0f, 0x26, 0x7e, 0xc9, 0x64, 0x27, 0xa5, 0xdd, 0x17, 0x13, 0xda, 0x9d, 0xcf, 0xf1, - 0x39, 0xe7, 0xf1, 0xf3, 0xd8, 0x09, 0x6c, 0x47, 0x54, 0x5d, 0x73, 0x71, 0xc5, 0xa2, 0x8b, 0xda, - 0x78, 0x8f, 0x84, 0xf1, 0x80, 0x34, 0x6a, 0x17, 0x44, 0xd1, 0x6b, 0x32, 0x71, 0x63, 0xc1, 0x15, - 0x47, 0xff, 0x33, 0xa9, 0x18, 0x77, 0x67, 0x42, 0x77, 0x2a, 0xac, 0x7e, 0xb5, 0xa0, 0x70, 0x94, - 0x88, 0xd1, 0x01, 0x14, 0x24, 0x15, 0x63, 0x2a, 0xa4, 0x63, 0x6d, 0x65, 0x77, 0xca, 0xf5, 0x6d, - 0xf7, 0x8f, 0x46, 0xd7, 0x33, 0x4a, 0x3c, 0x75, 0xa0, 0x36, 0x14, 0x25, 0x0d, 0x69, 0xa0, 0xb8, - 0x70, 0x32, 0xc6, 0xbd, 0xfb, 0x80, 0x3b, 0x2d, 0xe9, 0x7a, 0xa9, 0xe5, 0x30, 0x52, 0x62, 0x82, - 0xef, 0x13, 0xd6, 0x0f, 0xa0, 0xf2, 0xc3, 0x16, 0xb2, 0x21, 0x7b, 0x45, 0x27, 0x8e, 0xb5, 0x65, - 0xed, 0x94, 0xb0, 0x5e, 0xa2, 0x35, 0x58, 0x1c, 0x93, 0x70, 0x44, 0x9d, 0x8c, 0xe1, 0x12, 0xf0, - 0x3a, 0xb3, 0x6f, 0x55, 0x6f, 0xf3, 0x90, 0x4f, 0x8e, 0x87, 0x1a, 0x90, 0x8b, 0xb9, 0x50, 0xc6, - 0x57, 0xae, 0x6f, 0x3e, 0x70, 0xa2, 0x2e, 0x17, 0x0a, 0x1b, 0xb1, 0x4e, 0x1e, 0x70, 0xa9, 0xa4, - 0xe9, 0xa3, 0x84, 0x13, 0x80, 0xde, 0x40, 0x56, 0x85, 0xd2, 0xc9, 0x9a, 0xa4, 0x17, 0x7f, 0x9d, - 0x8c, 0xdb, 0x6b, 0x7b, 0x9d, 0x58, 0x31, 0x1e, 0x49, 0xac, 0x8d, 0xeb, 0x9f, 0x17, 0x01, 0x66, - 0x1c, 0x7a, 0x0a, 0xcb, 0x03, 0xa5, 0x62, 0xe9, 0x0b, 0x7a, 0xce, 0x04, 0x0d, 0x92, 0x33, 0x16, - 0x71, 0xc5, 0xb0, 0x38, 0x25, 0x51, 0x0b, 0x72, 0x43, 0x7e, 0x9e, 0x34, 0xb9, 0x5c, 0x7f, 0xf5, - 0x98, 0xb2, 0x7a, 0xa9, 0xbd, 0xd8, 0x24, 0xa0, 0x97, 0x80, 0x92, 0xbb, 0xf2, 0x03, 0x2a, 0x14, - 0xfb, 0xc4, 0x02, 0xa2, 0xa8, 0x69, 0xa7, 0x84, 0x57, 0x93, 0x9d, 0x77, 0xb3, 0x0d, 0xb4, 0x09, - 0xe5, 0x58, 0xb0, 0x31, 0x51, 0xd4, 0xd7, 0x83, 0xcf, 0x19, 0x1d, 0xa4, 0xd4, 0x07, 0x3a, 0x41, - 0xcf, 0x60, 0x25, 0x20, 0xf3, 0x59, 0xd2, 0x59, 0x34, 0xa2, 0xe5, 0x80, 0xcc, 0x05, 0x49, 0xf4, - 0x1c, 0x56, 0xe5, 0xe8, 0xec, 0x92, 0x06, 0xca, 0x27, 0xa1, 0xf2, 0x23, 0x32, 0xa4, 0xd2, 0xc9, - 0x9b, 0xd1, 0xae, 0xa4, 0x1b, 0xcd, 0x50, 0x9d, 0x68, 0x1a, 0x5d, 0xc2, 0xda, 0x90, 0x45, 0xbe, - 0x79, 0xb6, 0x01, 0x0f, 0x7d, 0xfd, 0xb4, 0x18, 0x8f, 0x9c, 0x82, 0x69, 0x7f, 0xff, 0xb1, 0xed, - 0x77, 0xd3, 0x1c, 0x8c, 0x86, 0x2c, 0x9a, 0x82, 0xd3, 0x24, 0xd3, 0xd4, 0x22, 0x37, 0xbf, 0xd6, - 0x2a, 0xfe, 0x73, 0x2d, 0x72, 0xf3, 0x73, 0xad, 0x27, 0x50, 0x09, 0x58, 0x3c, 0xa0, 0xc2, 0x97, - 0x23, 0xa6, 0x47, 0x55, 0x32, 0xfd, 0x2f, 0x25, 0xa4, 0x67, 0xb8, 0x6a, 0x0b, 0x0a, 0xe9, 0x95, - 0xa1, 0x15, 0x28, 0x77, 0x9b, 0x9e, 0xd7, 0x6b, 0xe1, 0x4e, 0xff, 0xa8, 0x65, 0x2f, 0x20, 0x80, - 0xbc, 0xf7, 0xfe, 0xb8, 0xdb, 0x3e, 0xb4, 0x2d, 0xbd, 0x3e, 0xee, 0xf7, 0xfa, 0xcd, 0xb6, 0x9d, - 0x41, 0x6b, 0x60, 0x37, 0xfb, 0xbd, 0x8e, 0x3f, 0xaf, 0xce, 0x56, 0x3b, 0x50, 0x9e, 0x3b, 0x11, - 0x5a, 0x82, 0x62, 0xaf, 0xed, 0xf9, 0x5a, 0x68, 0x2f, 0xa0, 0xb2, 0x29, 0x73, 0xba, 0xe7, 0xef, - 0xda, 0xd6, 0x0c, 0xec, 0xd9, 0x99, 0x19, 0xa8, 0xdb, 0xd9, 0x19, 0x68, 0xd8, 0xb9, 0xea, 0x09, - 0xe4, 0xf4, 0x07, 0x82, 0xfe, 0x83, 0x7c, 0x34, 0x1a, 0x9e, 0x51, 0x61, 0x5e, 0x6b, 0x05, 0xa7, - 0x08, 0xad, 0x43, 0x71, 0x3a, 0xc7, 0xf4, 0x7b, 0xbc, 0xc7, 0x08, 0x41, 0x4e, 0xdf, 0x79, 0xfa, - 0xd4, 0xcc, 0xfa, 0xad, 0xfb, 0xe5, 0x6e, 0xc3, 0xba, 0xbd, 0xdb, 0xb0, 0xbe, 0xdd, 0x6d, 0x58, - 0x1f, 0xb7, 0x92, 0x51, 0x33, 0x5e, 0x23, 0x31, 0xab, 0xfd, 0xe6, 0x7f, 0x76, 0x96, 0x37, 0x69, - 0x8d, 0xef, 0x01, 0x00, 0x00, 0xff, 0xff, 0x60, 0xb9, 0xea, 0xae, 0xed, 0x04, 0x00, 0x00, + // 657 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xcb, 0x4e, 0xdb, 0x4c, + 0x14, 0xc6, 0x49, 0xc8, 0xe5, 0x84, 0x10, 0x33, 0x42, 0xbf, 0xfc, 0xb3, 0xe0, 0x92, 0xaa, 0x2a, + 0xad, 0x5a, 0x07, 0x92, 0x2e, 0x50, 0x91, 0x2a, 0xa5, 0x15, 0x22, 0x55, 0x03, 0x89, 0xec, 0x84, + 0x45, 0x37, 0xd6, 0xc4, 0x19, 0xc8, 0x80, 0xe3, 0xb1, 0x66, 0x26, 0x81, 0x3c, 0x45, 0xdf, 0xa7, + 0x4f, 0xd0, 0x65, 0xfb, 0x06, 0x15, 0x4f, 0x52, 0xcd, 0xd8, 0x21, 0xe9, 0x8d, 0x0a, 0x75, 0x77, + 0xce, 0x77, 0xce, 0xf7, 0x9d, 0xdb, 0xd8, 0xb0, 0x13, 0x12, 0x79, 0xcd, 0xf8, 0x15, 0x0d, 0x2f, + 0xaa, 0x93, 0x7d, 0x1c, 0x44, 0x43, 0x5c, 0xaf, 0x5e, 0x60, 0x49, 0xae, 0xf1, 0xd4, 0x8e, 0x38, + 0x93, 0x0c, 0xfd, 0x4f, 0x85, 0xa4, 0xcc, 0x9e, 0x27, 0xda, 0xb3, 0xc4, 0xca, 0x57, 0x03, 0x72, + 0xc7, 0x71, 0x32, 0x3a, 0x84, 0x9c, 0x20, 0x7c, 0x42, 0xb8, 0xb0, 0x8c, 0xed, 0xf4, 0x6e, 0xb1, + 0xb6, 0x63, 0xff, 0x91, 0x68, 0xbb, 0x3a, 0xd3, 0x99, 0x31, 0x50, 0x0b, 0xf2, 0x82, 0x04, 0xc4, + 0x97, 0x8c, 0x5b, 0x29, 0xcd, 0xde, 0xbb, 0x87, 0x9d, 0x94, 0xb4, 0xdd, 0x84, 0x72, 0x14, 0x4a, + 0x3e, 0x75, 0xee, 0x14, 0x36, 0x0e, 0xa1, 0xf4, 0x43, 0x08, 0x99, 0x90, 0xbe, 0x22, 0x53, 0xcb, + 0xd8, 0x36, 0x76, 0x0b, 0x8e, 0x32, 0xd1, 0x3a, 0x2c, 0x4f, 0x70, 0x30, 0x26, 0x56, 0x4a, 0x63, + 0xb1, 0xf3, 0x2a, 0x75, 0x60, 0x54, 0x3e, 0xe6, 0x20, 0x1b, 0xb7, 0x87, 0xea, 0x90, 0x89, 0x18, + 0x97, 0x9a, 0x57, 0xac, 0x6d, 0xdd, 0xd3, 0x51, 0x87, 0x71, 0xe9, 0xe8, 0x64, 0xa5, 0x3c, 0x64, + 0x42, 0x0a, 0x3d, 0x47, 0xc1, 0x89, 0x1d, 0xf4, 0x1a, 0xd2, 0x32, 0x10, 0x56, 0x5a, 0x2b, 0x3d, + 0xff, 0xeb, 0x66, 0xec, 0x6e, 0xcb, 0x6d, 0x47, 0x92, 0xb2, 0x50, 0x38, 0x8a, 0x88, 0x10, 0x64, + 0xfa, 0x34, 0x1c, 0x58, 0x19, 0xdd, 0xae, 0xb6, 0xd1, 0x53, 0x30, 0x07, 0xe4, 0x1c, 0x8f, 0x03, + 0xe9, 0x91, 0x70, 0x10, 0x31, 0x1a, 0x4a, 0x6b, 0x59, 0xc7, 0xcb, 0x09, 0x7e, 0x94, 0xc0, 0x1b, + 0x9f, 0x96, 0x01, 0xe6, 0x92, 0xe8, 0x31, 0xac, 0x0e, 0xa5, 0x8c, 0x84, 0xc7, 0xc9, 0x80, 0x72, + 0xe2, 0xc7, 0x23, 0xe6, 0x9d, 0x92, 0x46, 0x9d, 0x04, 0x44, 0x4d, 0xc8, 0x8c, 0xd8, 0x20, 0xde, + 0xd1, 0x6a, 0xed, 0xe5, 0x43, 0xba, 0x56, 0xa6, 0xe2, 0x3a, 0x5a, 0x01, 0xbd, 0x00, 0x14, 0x9f, + 0xda, 0xf3, 0x09, 0x97, 0xf4, 0x9c, 0xfa, 0x58, 0x12, 0xbd, 0x8d, 0x82, 0xb3, 0x16, 0x47, 0xde, + 0xce, 0x03, 0x68, 0x0b, 0x8a, 0x11, 0xa7, 0x13, 0x2c, 0x89, 0xa7, 0xee, 0x16, 0x0f, 0x0d, 0x09, + 0xf4, 0x9e, 0x4c, 0xd1, 0x13, 0x28, 0xfb, 0x78, 0x51, 0x4b, 0x24, 0x93, 0xaf, 0xfa, 0x78, 0x41, + 0x48, 0xa0, 0x67, 0xb0, 0x26, 0xc6, 0xfd, 0x4b, 0xe2, 0x4b, 0x0f, 0x07, 0xd2, 0x0b, 0xf1, 0x88, + 0x08, 0x2b, 0xab, 0x2f, 0x53, 0x4e, 0x02, 0x8d, 0x40, 0x9e, 0x2a, 0x18, 0x5d, 0xc2, 0xfa, 0x88, + 0x86, 0x9e, 0x7e, 0xf5, 0x3e, 0x0b, 0x3c, 0xf5, 0x32, 0x29, 0x0b, 0xad, 0x9c, 0x1e, 0xff, 0xe0, + 0xa1, 0xe3, 0x77, 0x12, 0x1d, 0x07, 0x8d, 0x68, 0x38, 0x73, 0xce, 0x62, 0x4d, 0x5d, 0x0b, 0xdf, + 0xfc, 0x5a, 0x2b, 0xff, 0xcf, 0xb5, 0xf0, 0xcd, 0xcf, 0xb5, 0x1e, 0x41, 0xc9, 0xa7, 0xd1, 0x90, + 0x70, 0x4f, 0x8c, 0xa9, 0x5a, 0x55, 0x41, 0xcf, 0xbf, 0x12, 0x83, 0xae, 0xc6, 0x2a, 0x4d, 0xc8, + 0x25, 0x27, 0x43, 0x65, 0x28, 0x76, 0x1a, 0xae, 0xdb, 0x6d, 0x3a, 0xed, 0xde, 0x71, 0xd3, 0x5c, + 0x42, 0x00, 0x59, 0xf7, 0xdd, 0x49, 0xa7, 0x75, 0x64, 0x1a, 0xca, 0x3e, 0xe9, 0x75, 0x7b, 0x8d, + 0x96, 0x99, 0x42, 0xeb, 0x60, 0x36, 0x7a, 0xdd, 0xb6, 0xb7, 0x98, 0x9d, 0xae, 0xb4, 0xa1, 0xb8, + 0xd0, 0x11, 0x5a, 0x81, 0x7c, 0xb7, 0xe5, 0x7a, 0x2a, 0xd1, 0x5c, 0x42, 0x45, 0x5d, 0xe6, 0x6c, + 0xdf, 0xdb, 0x33, 0x8d, 0xb9, 0xb3, 0x6f, 0xa6, 0xe6, 0x4e, 0xcd, 0x4c, 0xcf, 0x9d, 0xba, 0x99, + 0xa9, 0x9c, 0x42, 0x46, 0x7d, 0x5f, 0xe8, 0x3f, 0xc8, 0x86, 0xe3, 0x51, 0x9f, 0x70, 0xfd, 0x5a, + 0x4b, 0x4e, 0xe2, 0xa1, 0x0d, 0xc8, 0xcf, 0xf6, 0x98, 0x7c, 0xce, 0x77, 0xbe, 0xfa, 0x6e, 0xd4, + 0xcd, 0x93, 0xa7, 0xa6, 0xed, 0x37, 0xf6, 0xe7, 0xdb, 0x4d, 0xe3, 0xcb, 0xed, 0xa6, 0xf1, 0xed, + 0x76, 0xd3, 0xf8, 0xb0, 0x1d, 0xaf, 0x9a, 0xb2, 0x2a, 0x8e, 0x68, 0xf5, 0x37, 0xbf, 0xc3, 0x7e, + 0x56, 0xab, 0xd5, 0xbf, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x88, 0xe5, 0x6d, 0x2c, 0x05, 0x00, + 0x00, } diff --git a/networking/v1alpha3/gateway.proto b/networking/v1alpha3/gateway.proto index 4f857dd8d2..0cfb8bcefc 100644 --- a/networking/v1alpha3/gateway.proto +++ b/networking/v1alpha3/gateway.proto @@ -158,10 +158,10 @@ message Gateway { repeated Server servers = 1; // 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. + // on which this gateway configuration should be applied. The scope of + // label search is restricted to the configuration namespace in which the + // the resource is present. In other words, the Gateway resource must + // reside in the same namespace as the gateway workload. map selector = 2; } @@ -228,9 +228,16 @@ message Gateway { // ``` message Server { // REQUIRED: The Port on which the proxy should listen for incoming - // connections + // connections. If using unix domain socket, use 0 as the port number, + // with a valid protocol and port name, along with the bind parameter. Port port = 1; + // $hide_from_docs + // The ip or the unix domain socket to which the listener should be bound + // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux + // abstract namespace). + string bind = 4; + // 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 @@ -334,6 +341,11 @@ message Server { // these options to control if all http requests should be redirected to // https, and the TLS modes to use. TLSOptions tls = 3; + + // The loopback IP endpoint or unix domain socket to which traffic should + // be forwarded to by default. Format should be 127.0.0.1:PORT or + // unix:///path/to/socket or unix://@foobar (Linux abstract namespace). + string default_endpoint = 5; } // Port describes the properties of a specific port of a service. diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index b301c39578..a035e74a5c 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -43,7 +43,7 @@

ConfigScope

a namespace when the namespace is imported. By default all configuration artifacts are public. Configurations with private scope will not be imported when the namespace containing the configuration is -imported in a ServiceDependency.

+imported in a Sidecar.

NameDescription
ALL_NAMESPACES -

Configure routes to services in all namespaces, i.e. import -services from all namespaces.

- -
SAME_NAMESPACE -

Only configure routes to services that are in the same namespace -as the workload as well as services in namespaces specified in -importNamespaces.

-
REGISTRY_ONLY -

outbound traffic will be restricted to services defined in the service registry as well as those defined -through ServiceEntries

+

outbound traffic will be restricted to services defined in the +service registry as well as those defined through ServiceEntries

ALLOW_ANY -

outbound traffic to unknown destinations will be allowed, in case there are no services or ServiceEntries for the destination port

- -
VIRTUAL_SERVICE_ONLY -

not implemented. outbound traffic will be restricted to destinations defined in VirtualServices only

+

outbound traffic to unknown destinations will be allowed, in case +there are no services or ServiceEntries for the destination port

@@ -1228,10 +1228,10 @@

Gateway

@@ -2132,6 +2132,57 @@

Headers.HeaderOperations

+ + +
map<string, string>

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.

+on which this gateway configuration should be applied. The scope of +label search is restricted to the configuration namespace in which the +the resource is present. In other words, the Gateway resource must +reside in the same namespace as the gateway workload.

Remove a the specified headers

+
+
+

IstioEgressListener

+
+

IstioEgressListener specifies the properties of an outbound traffic +listener on the sidecar proxy attached to a workload.

+ + + + + + + + + + + + + + + + + + + @@ -2782,7 +2833,8 @@

Server

@@ -2815,6 +2867,16 @@

Server

these options to control if all http requests should be redirected to https, and the TLS modes to use.

+ + + + + + @@ -3015,186 +3077,6 @@

Server.TLSOptions.TLSmode

their respective endpoints. Use of this mode assumes that both the source and the destination are using Istio mTLS to secure traffic.

- - - -
FieldTypeDescription
captureModeCaptureMode +

When the bind address is an IP, the captureMode option dictates +how traffic to the listener is expected to be captured (or not).

+ +
hostsstring[] +

One or more services/virtualServices exposed by the listener in +namespace/dnsName format. Publicly scoped services and +VirtualServices from remote namespaces corresponding to the specified +hosts will be imported. The service in a namespace can be a service in +the service registry (e.g., a kubernetes or cloud foundry service) or +a service specified via ServiceEntry configuration. In addition, any +publicly scoped DestinationRule associated with the imported services +will also be imported.

+ +

Set the namespace to * to import a particular service from any +available namespace (e.g., “*/foo.example.com”). Set the dnsName field +to * to import all services from the specified namespace (e.g., +“prod/*”). The services should be specified using FQDN format.

+ +

NOTE: Only exported services and configuration artifacts from a +namespace can be imported. Private services/configuration will not be +imported. Refer to the scope setting associated with VirtualService, +DestinationRule, ServiceEntry, etc. for details.

+
Port

REQUIRED: The Port on which the proxy should listen for incoming -connections

+connections. If using unix domain socket, use 0 as the port number, +with a valid protocol and port name, along with the bind parameter.

defaultEndpointstring +

The loopback IP endpoint or unix domain socket to which traffic should +be forwarded to by default. Format should be 127.0.0.1:PORT or +unix:///path/to/socket or unix://@foobar (Linux abstract namespace).

+
-
-

ServiceDependency

-
-

ServiceDependency describes the set of services that a workload depends on -for its operation. In other words, it describes the properties of -outgoing traffic from a given workload. By default, the service mesh -established by Istio will have a full mesh connectivity - i.e. every -workload will have proxy configuration required to reach every other -workload in the mesh. However most connectivity graphs are sparse in -practice. The ServiceDependency provides a way to declare the service -dependencies associated with each workload such that the amount of -configuration sent to the sidecars can be scoped to the requisite -dependencies.

- -

Services and configuration in a mesh are organized into one or more -namespaces (e.g., a Kubernetes namespace or a CF org/space). Workloads -in a namespace have an implicit dependency on other workloads in the -same namespace. In addition, to declare dependencies on workloads in -other namespaces, a ServiceDependency resource has to be specified in the -current namespace. Each namespace MUST have only one ServiceDependency -resource named “default”. The behavior of the system is undefined if -more than one ServiceDependency resource exists in a given namespace. The set -of dependencies specified in a ServiceDependency resource will be used to -compute the sidecar configuration for every workload in the namespace.

- -

NOTE 1: If workloads in the mesh depend only on other workloads in the -same namespace, set defaultServiceDependency.importMode to SAME_NAMESPACE -in the mesh global config map (in values.yaml).

- -

NOTE 2: To facilitate incremental pruning of the` sidecar -configuration, the default import mode for the mesh is set to -ALL_NAMESPACES. In other words, every workload will be able to reach -every other workload. Adding a ServiceDependency resource in a namespace will -automatically prune the configuration for the workloads in that -namespace.

- -

The following examples illustrate a few specific use cases of ServiceDependency.

- -

The example below declares a ServiceDependency resource in the prod-us1 -namespace that specifies that workloads in the namespace will be able to -reach the services in the prod-apis namespace only.

- -
apiVersion: networking.istio.io/v1alpha3
-kind: ServiceDependency
-metadata:
-  name: default
-  namespace: prod-us1
-spec:
-  dependencies:
-  - imports:
-    - namespace: prod-apis
-
- -

In a mesh where the default service dependency is set to SAME_NAMESPACE -only, if one or more workloads need to be able to reach every other -service in the mesh (e.g., metrics collection server), the following -ServiceDependency resource can be used to specify such a dependency:

- -
apiVersion: networking.istio.io/v1alpha3
-kind: ServiceDependency
-metadata:
-  name: default
-  namespace: metrics-collection
-spec:
-  dependencies:
-  - imports:
-    - namespace: '*'
-
- -

The configuration above will allow workloads in the metrics-collection -namespace to access service in any namespace while workloads in other -namespaces will be configured for namespace local access as per the -global default service dependency (SAME_NAMESPACE).

- - - - - - - - - - - - - - - - -
FieldTypeDescription
dependenciesServiceDependency.Dependency[] -

REQUIRED. The set of services that workloads in this namespace are -expected to talk to, in addition to other workloads in the same -namespace. Dependencies describe the properties of outbound traffic from -a given workload.

- -
-
-

ServiceDependency.Dependency

-
-

Dependency describes a workload and the set of service dependencies -for the workload.

- - - - - - - - - - - - - - - - -
FieldTypeDescription
importsServiceDependency.Import[] -

REQUIRED: Import describes the set of namespaces whose exported -services will be accessed by the workloads selected by the -sourceWorkloadLabels. The sidecars attached to the workloads will be -configured with information required to reach other services in the -same namespace and the imported services. In addition to the -explicitly specified namespaces, namespaces specified in the global -mesh config (through defaultServiceDependency.importNamespaces) will also be -imported.

- -
-
-

ServiceDependency.Import

-
-

Import describes the set of namespaces whose exported services -(real/virtual) will be accessed by workloads in a given namespace. The -sidecars attached to the workloads will be configured with information -required to reach the imported services only. The gateways in the -current namespace will only honor imported VirtualServices instead of -every VirtualService that binds itself to the gateway.

- -

Importing a service from a namespace will automatically import the -exported configuration artifacts associated with the service, such as -VirtualService, DestinationRule, etc. The service in a namespace can be -a service in the service registry (e.g., a kubernetes or cloud foundry -service) or a service specified via ServiceEntry configuration.

- -

NOTE: Only exported services and configuration artifacts from a -namespace can be imported. Private services/configuration will not be -imported. See the scope setting associated with VirtualService, -DestinationRule, ServiceEntry, etc.

- - - - - - - - - - - - - - - - - - - @@ -3735,6 +3617,75 @@

ServiceEntry.Resolution

the destination IP address. DNS resolution cannot be used with unix domain socket endpoints.

+ + + +
FieldTypeDescription
namespacestring -

The configuration namespace whose services need to be imported. -Specify * to import all namespaces. The import can be scoped further -by specifying individual hosts.

- -
hoststring -

A FQDN or wildcard prefixed DNS name of the host to import from the -specified namespace. The hostnames include names of services from the -service registry as well as those specified in a VirtualService.

-
+
+

Sidecar

+
+

Sidecar describes the configuration of the sidecar proxy that mediates +inbound and outbound communication to the workload it is attached to. By +default, Istio will program all sidecar proxies in the mesh with the +necessary configuration required to reach every workload in the mesh, as +well as accept traffic on all the ports associated with the +workload. The Sidecar resource provides a way to fine tune the set of +ports, protocols that the proxy will accept when forwarding traffic to +and from the workload. In addition, it is possible to restrict the set +of services that the proxy can reach when forwarding outbound traffic +from the workload.

+ +

Services and configuration in a mesh are organized into one or more +namespaces (e.g., a Kubernetes namespace or a CF org/space). A Sidecar +resource in a namespace will apply to one or more workloads in the same +namespace, selected using the workloadSelector. In the absence of a +workloadSelector, it will apply to all workloads in the same +namespace. When determining the Sidecar resource to be applied to a +workload, preference will be given to the resource with a +workloadSelector that selects this workload, over a Sidecar resource +without any workloadSelector.

+ +

NOTE: Each namespace can have only one Sidecar resource without any +workload selector. The behavior of the system is undefined if more +than one selector-less Sidecar resources exist in a given namespace. The +behavior of the system is undefined if two or more Sidecar resources +with a workload selector select the same workload.

+ +

The example below delcares a Sidecar resource in the prod-us1 namespace +that configures the sidecar to allow egress traffic to public services +in the prod-us1, prod-apis, and the istio-system namespaces.

+ +
apiVersion: networking.istio.io/v1alpha3
+kind: Sidecar
+metadata:
+  name: default
+  namespace: prod-us1
+spec:
+  egress:
+  - hosts:
+    - "prod-us1/*"
+    - "prod-apis/*"
+    - "istio-system/*"
+
+ + + + + + + + + + + + + + @@ -4505,3 +4456,36 @@

VirtualService

FieldTypeDescription
egressIstioEgressListener[] +

Egress specifies the configuration of the sidecar for processing +outbound traffic from the attached workload to other services in the +mesh. If omitted, Istio will autoconfigure the sidecar to be able to +reach every service in the mesh that is visible to this namespace.

+
+

WorkloadSelector

+
+

WorkloadSelector specifies the criteria used to determine if the Gateway +or Sidecar resource can be applied to a proxy. The matching criteria +includes the metadata associated with a proxy, workload info such as +labels attached to the pod/VM, or any other info that the proxy provides +to Istio during the initial handshake. If multiple conditions are +specified, all conditions need to match in order for the workload to be +selected. Currently, only label based selection mechanism is supported.

+ + + + + + + + + + + + + + + + +
FieldTypeDescription
labelsmap<string, string> +

One or more labels that indicate a specific set of pods/VMs on which +this sidecar configuration should be applied. The scope of label +search is restricted to the configuration namespace in which the the +resource is present.

+ +
+
diff --git a/networking/v1alpha3/service_dependency.pb.go b/networking/v1alpha3/service_dependency.pb.go deleted file mode 100644 index 9056219e7b..0000000000 --- a/networking/v1alpha3/service_dependency.pb.go +++ /dev/null @@ -1,938 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: networking/v1alpha3/service_dependency.proto - -package v1alpha3 - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// ConfigScope defines the visibility of an Istio configuration artifact in -// a namespace when the namespace is imported. By default all -// configuration artifacts are public. Configurations with private scope -// will not be imported when the namespace containing the configuration is -// imported in a ServiceDependency. -type ConfigScope int32 - -const ( - // Config with this scope are visible to all workloads in the mesh - ConfigScope_PUBLIC ConfigScope = 0 - // Configs with this scope are visible to only workloads in the same - // namespace as the configuration resource. - ConfigScope_PRIVATE ConfigScope = 1 -) - -var ConfigScope_name = map[int32]string{ - 0: "PUBLIC", - 1: "PRIVATE", -} -var ConfigScope_value = map[string]int32{ - "PUBLIC": 0, - "PRIVATE": 1, -} - -func (x ConfigScope) String() string { - return proto.EnumName(ConfigScope_name, int32(x)) -} -func (ConfigScope) EnumDescriptor() ([]byte, []int) { return fileDescriptorServiceDependency, []int{0} } - -// `ServiceDependency` describes the set of services that a workload depends on -// for its operation. In other words, it describes the properties of -// outgoing traffic from a given workload. By default, the service mesh -// established by Istio will have a full mesh connectivity - i.e. every -// workload will have proxy configuration required to reach every other -// workload in the mesh. However most connectivity graphs are sparse in -// practice. The ServiceDependency provides a way to declare the service -// dependencies associated with each workload such that the amount of -// configuration sent to the sidecars can be scoped to the requisite -// dependencies. -// -// Services and configuration in a mesh are organized into one or more -// namespaces (e.g., a Kubernetes namespace or a CF org/space). Workloads -// in a namespace have an implicit dependency on other workloads in the -// same namespace. In addition, to declare dependencies on workloads in -// other namespaces, a ServiceDependency resource has to be specified in the -// current namespace. *_Each namespace MUST have only one ServiceDependency -// resource named "default"_*. The behavior of the system is undefined if -// more than one ServiceDependency resource exists in a given namespace. The set -// of dependencies specified in a ServiceDependency resource will be used to -// compute the sidecar configuration for every workload in the namespace. -// -// NOTE 1: If workloads in the mesh depend only on other workloads in the -// same namespace, set defaultServiceDependency.importMode to SAME_NAMESPACE -// in the mesh global config map (in values.yaml). -// -// NOTE 2: To facilitate incremental pruning of the` sidecar -// configuration, the default import mode for the mesh is set to -// ALL_NAMESPACES. In other words, every workload will be able to reach -// every other workload. Adding a ServiceDependency resource in a namespace will -// automatically prune the configuration for the workloads in that -// namespace. -// -// The following examples illustrate a few specific use cases of ServiceDependency. -// -// The example below declares a ServiceDependency resource in the prod-us1 -// namespace that specifies that workloads in the namespace will be able to -// reach the services in the prod-apis namespace only. -// -// ```yaml -// apiVersion: networking.istio.io/v1alpha3 -// kind: ServiceDependency -// metadata: -// name: default -// namespace: prod-us1 -// spec: -// dependencies: -// - imports: -// - namespace: prod-apis -// ``` -// -// In a mesh where the default service dependency is set to SAME_NAMESPACE -// only, if one or more workloads need to be able to reach every other -// service in the mesh (e.g., metrics collection server), the following -// ServiceDependency resource can be used to specify such a dependency: -// -// ```yaml -// apiVersion: networking.istio.io/v1alpha3 -// kind: ServiceDependency -// metadata: -// name: default -// namespace: metrics-collection -// spec: -// dependencies: -// - imports: -// - namespace: '*' -// ``` -// -// The configuration above will allow workloads in the metrics-collection -// namespace to access service in any namespace while workloads in other -// namespaces will be configured for namespace local access as per the -// global default service dependency (SAME_NAMESPACE). -// -type ServiceDependency struct { - // REQUIRED. The set of services that workloads in this namespace are - // expected to talk to, in addition to other workloads in the same - // namespace. Dependencies describe the properties of outbound traffic from - // a given workload. - Dependencies []*ServiceDependency_Dependency `protobuf:"bytes,1,rep,name=dependencies" json:"dependencies,omitempty"` -} - -func (m *ServiceDependency) Reset() { *m = ServiceDependency{} } -func (m *ServiceDependency) String() string { return proto.CompactTextString(m) } -func (*ServiceDependency) ProtoMessage() {} -func (*ServiceDependency) Descriptor() ([]byte, []int) { - return fileDescriptorServiceDependency, []int{0} -} - -func (m *ServiceDependency) GetDependencies() []*ServiceDependency_Dependency { - if m != nil { - return m.Dependencies - } - return nil -} - -// Import describes the set of namespaces whose exported services -// (real/virtual) will be accessed by workloads in a given namespace. The -// sidecars attached to the workloads will be configured with information -// required to reach the imported services only. The gateways in the -// current namespace will only honor imported VirtualServices instead of -// every VirtualService that binds itself to the gateway. -// -// Importing a service from a namespace will automatically import the -// exported configuration artifacts associated with the service, such as -// VirtualService, DestinationRule, etc. The service in a namespace can be -// a service in the service registry (e.g., a kubernetes or cloud foundry -// service) or a service specified via ServiceEntry configuration. -// -// NOTE: Only exported services and configuration artifacts from a -// namespace can be imported. Private services/configuration will not be -// imported. See the scope setting associated with VirtualService, -// DestinationRule, ServiceEntry, etc. -type ServiceDependency_Import struct { - // The configuration namespace whose services need to be imported. - // Specify * to import all namespaces. The import can be scoped further - // by specifying individual hosts. - Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` - // A FQDN or wildcard prefixed DNS name of the host to import from the - // specified namespace. The hostnames include names of services from the - // service registry as well as those specified in a VirtualService. - Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` -} - -func (m *ServiceDependency_Import) Reset() { *m = ServiceDependency_Import{} } -func (m *ServiceDependency_Import) String() string { return proto.CompactTextString(m) } -func (*ServiceDependency_Import) ProtoMessage() {} -func (*ServiceDependency_Import) Descriptor() ([]byte, []int) { - return fileDescriptorServiceDependency, []int{0, 0} -} - -func (m *ServiceDependency_Import) GetNamespace() string { - if m != nil { - return m.Namespace - } - return "" -} - -func (m *ServiceDependency_Import) GetHost() string { - if m != nil { - return m.Host - } - return "" -} - -// Dependency describes a workload and the set of service dependencies -// for the workload. -type ServiceDependency_Dependency struct { - // [#not-implemented-hide:] - // One or more labels that indicate a specific set of pods/VMs on which - // this dependency configuration should be applied. The scope of label - // search is platform dependent. On Kubernetes, for example, the scope - // includes pods running in the namespace in which the ServiceDependency - // resource is present. If the sourceWorkloadLabels are omitted, the - // imports specified will be applicable to all workloads in the current - // configuration namespace. - // NOTE: source_workload_labels are currently not supported. - SourceWorkloadLabels map[string]string `protobuf:"bytes,1,rep,name=source_workload_labels,json=sourceWorkloadLabels" json:"source_workload_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // REQUIRED: Import describes the set of namespaces whose exported - // services will be accessed by the workloads selected by the - // sourceWorkloadLabels. The sidecars attached to the workloads will be - // configured with information required to reach other services in the - // same namespace and the imported services. In addition to the - // explicitly specified namespaces, namespaces specified in the global - // mesh config (through defaultServiceDependency.importNamespaces) will also be - // imported. - Imports []*ServiceDependency_Import `protobuf:"bytes,2,rep,name=imports" json:"imports,omitempty"` -} - -func (m *ServiceDependency_Dependency) Reset() { *m = ServiceDependency_Dependency{} } -func (m *ServiceDependency_Dependency) String() string { return proto.CompactTextString(m) } -func (*ServiceDependency_Dependency) ProtoMessage() {} -func (*ServiceDependency_Dependency) Descriptor() ([]byte, []int) { - return fileDescriptorServiceDependency, []int{0, 1} -} - -func (m *ServiceDependency_Dependency) GetSourceWorkloadLabels() map[string]string { - if m != nil { - return m.SourceWorkloadLabels - } - return nil -} - -func (m *ServiceDependency_Dependency) GetImports() []*ServiceDependency_Import { - if m != nil { - return m.Imports - } - return nil -} - -func init() { - proto.RegisterType((*ServiceDependency)(nil), "istio.networking.v1alpha3.ServiceDependency") - proto.RegisterType((*ServiceDependency_Import)(nil), "istio.networking.v1alpha3.ServiceDependency.Import") - proto.RegisterType((*ServiceDependency_Dependency)(nil), "istio.networking.v1alpha3.ServiceDependency.Dependency") - proto.RegisterEnum("istio.networking.v1alpha3.ConfigScope", ConfigScope_name, ConfigScope_value) -} -func (m *ServiceDependency) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceDependency) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Dependencies) > 0 { - for _, msg := range m.Dependencies { - dAtA[i] = 0xa - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *ServiceDependency_Import) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceDependency_Import) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Namespace) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(len(m.Namespace))) - i += copy(dAtA[i:], m.Namespace) - } - if len(m.Host) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(len(m.Host))) - i += copy(dAtA[i:], m.Host) - } - return i, nil -} - -func (m *ServiceDependency_Dependency) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceDependency_Dependency) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.SourceWorkloadLabels) > 0 { - for k, _ := range m.SourceWorkloadLabels { - dAtA[i] = 0xa - i++ - v := m.SourceWorkloadLabels[k] - mapSize := 1 + len(k) + sovServiceDependency(uint64(len(k))) + 1 + len(v) + sovServiceDependency(uint64(len(v))) - i = encodeVarintServiceDependency(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.Imports) > 0 { - for _, msg := range m.Imports { - dAtA[i] = 0x12 - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func encodeVarintServiceDependency(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return offset + 1 -} -func (m *ServiceDependency) Size() (n int) { - var l int - _ = l - if len(m.Dependencies) > 0 { - for _, e := range m.Dependencies { - l = e.Size() - n += 1 + l + sovServiceDependency(uint64(l)) - } - } - return n -} - -func (m *ServiceDependency_Import) Size() (n int) { - var l int - _ = l - l = len(m.Namespace) - if l > 0 { - n += 1 + l + sovServiceDependency(uint64(l)) - } - l = len(m.Host) - if l > 0 { - n += 1 + l + sovServiceDependency(uint64(l)) - } - return n -} - -func (m *ServiceDependency_Dependency) Size() (n int) { - var l int - _ = l - if len(m.SourceWorkloadLabels) > 0 { - for k, v := range m.SourceWorkloadLabels { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovServiceDependency(uint64(len(k))) + 1 + len(v) + sovServiceDependency(uint64(len(v))) - n += mapEntrySize + 1 + sovServiceDependency(uint64(mapEntrySize)) - } - } - if len(m.Imports) > 0 { - for _, e := range m.Imports { - l = e.Size() - n += 1 + l + sovServiceDependency(uint64(l)) - } - } - return n -} - -func sovServiceDependency(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozServiceDependency(x uint64) (n int) { - return sovServiceDependency(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *ServiceDependency) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ServiceDependency: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ServiceDependency: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Dependencies", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Dependencies = append(m.Dependencies, &ServiceDependency_Dependency{}) - if err := m.Dependencies[len(m.Dependencies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipServiceDependency(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthServiceDependency - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceDependency_Import) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Import: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Import: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Host", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Host = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipServiceDependency(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthServiceDependency - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceDependency_Dependency) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Dependency: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Dependency: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceWorkloadLabels", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SourceWorkloadLabels == nil { - m.SourceWorkloadLabels = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthServiceDependency - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthServiceDependency - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipServiceDependency(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthServiceDependency - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.SourceWorkloadLabels[mapkey] = mapvalue - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Imports", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Imports = append(m.Imports, &ServiceDependency_Import{}) - if err := m.Imports[len(m.Imports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipServiceDependency(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthServiceDependency - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipServiceDependency(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthServiceDependency - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipServiceDependency(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthServiceDependency = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowServiceDependency = fmt.Errorf("proto: integer overflow") -) - -func init() { - proto.RegisterFile("networking/v1alpha3/service_dependency.proto", fileDescriptorServiceDependency) -} - -var fileDescriptorServiceDependency = []byte{ - // 357 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0xc9, 0x4b, 0x2d, 0x29, - 0xcf, 0x2f, 0xca, 0xce, 0xcc, 0x4b, 0xd7, 0x2f, 0x33, 0x4c, 0xcc, 0x29, 0xc8, 0x48, 0x34, 0xd6, - 0x2f, 0x4e, 0x2d, 0x2a, 0xcb, 0x4c, 0x4e, 0x8d, 0x4f, 0x49, 0x2d, 0x48, 0xcd, 0x4b, 0x49, 0xcd, - 0x4b, 0xae, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0xcc, 0x2c, 0x2e, 0xc9, 0xcc, 0xd7, - 0x43, 0xe8, 0xd1, 0x83, 0xe9, 0x51, 0xba, 0xcb, 0xcc, 0x25, 0x18, 0x0c, 0xd1, 0xe7, 0x02, 0xd7, - 0x26, 0x14, 0xcd, 0xc5, 0x03, 0x37, 0x24, 0x33, 0xb5, 0x58, 0x82, 0x51, 0x81, 0x59, 0x83, 0xdb, - 0xc8, 0x5c, 0x0f, 0xa7, 0x39, 0x7a, 0x18, 0x66, 0xe8, 0x21, 0x98, 0x41, 0x28, 0x86, 0x49, 0x59, - 0x71, 0xb1, 0x79, 0xe6, 0x16, 0xe4, 0x17, 0x95, 0x08, 0xc9, 0x70, 0x71, 0xe6, 0x25, 0xe6, 0xa6, - 0x16, 0x17, 0x24, 0x26, 0xa7, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x06, 0x21, 0x04, 0x84, 0x84, - 0xb8, 0x58, 0x32, 0xf2, 0x8b, 0x4b, 0x24, 0x98, 0xc0, 0x12, 0x60, 0xb6, 0xd4, 0x3a, 0x26, 0x2e, - 0x2e, 0x24, 0x77, 0xb6, 0x33, 0x72, 0x89, 0x15, 0xe7, 0x97, 0x16, 0x25, 0xa7, 0xc6, 0x83, 0x5c, - 0x94, 0x93, 0x9f, 0x98, 0x12, 0x9f, 0x93, 0x98, 0x94, 0x9a, 0x03, 0x73, 0x72, 0x20, 0x99, 0x4e, - 0xd6, 0x0b, 0x06, 0x9b, 0x1a, 0x0e, 0x35, 0xd4, 0x07, 0x6c, 0xa6, 0x6b, 0x5e, 0x49, 0x51, 0x65, - 0x90, 0x48, 0x31, 0x16, 0x29, 0x21, 0x5f, 0x2e, 0xf6, 0x4c, 0xb0, 0xa7, 0x8a, 0x25, 0x98, 0xc0, - 0x36, 0x1b, 0x93, 0x64, 0x33, 0x24, 0x40, 0x82, 0x60, 0x66, 0x48, 0xb9, 0x73, 0x49, 0xe2, 0x74, - 0x81, 0x90, 0x00, 0x17, 0x73, 0x76, 0x6a, 0x25, 0x34, 0xc0, 0x40, 0x4c, 0x21, 0x11, 0x2e, 0xd6, - 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x68, 0x58, 0x41, 0x38, 0x56, 0x4c, 0x16, 0x8c, 0x5a, 0x6a, 0x5c, - 0xdc, 0xce, 0xf9, 0x79, 0x69, 0x99, 0xe9, 0xc1, 0xc9, 0xf9, 0x05, 0xa9, 0x42, 0x5c, 0x5c, 0x6c, - 0x01, 0xa1, 0x4e, 0x3e, 0x9e, 0xce, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0x01, 0x41, 0x9e, 0x61, - 0x8e, 0x21, 0xae, 0x02, 0x8c, 0x4e, 0x7a, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, - 0xe0, 0x91, 0x1c, 0x63, 0x94, 0x02, 0xc4, 0xed, 0x99, 0xf9, 0xfa, 0x89, 0x05, 0x99, 0xfa, 0x58, - 0xd2, 0x5a, 0x12, 0x1b, 0x38, 0x65, 0x19, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x25, 0xbe, - 0xb4, 0x89, 0x02, 0x00, 0x00, -} diff --git a/networking/v1alpha3/service_dependency.proto b/networking/v1alpha3/service_dependency.proto deleted file mode 100644 index a5c5de84b7..0000000000 --- a/networking/v1alpha3/service_dependency.proto +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright 2018 Istio Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package istio.networking.v1alpha3; - -option go_package = "istio.io/api/networking/v1alpha3"; - -// `ServiceDependency` describes the set of services that a workload depends on -// for its operation. In other words, it describes the properties of -// outgoing traffic from a given workload. By default, the service mesh -// established by Istio will have a full mesh connectivity - i.e. every -// workload will have proxy configuration required to reach every other -// workload in the mesh. However most connectivity graphs are sparse in -// practice. The ServiceDependency provides a way to declare the service -// dependencies associated with each workload such that the amount of -// configuration sent to the sidecars can be scoped to the requisite -// dependencies. -// -// Services and configuration in a mesh are organized into one or more -// namespaces (e.g., a Kubernetes namespace or a CF org/space). Workloads -// in a namespace have an implicit dependency on other workloads in the -// same namespace. In addition, to declare dependencies on workloads in -// other namespaces, a ServiceDependency resource has to be specified in the -// current namespace. *_Each namespace MUST have only one ServiceDependency -// resource named "default"_*. The behavior of the system is undefined if -// more than one ServiceDependency resource exists in a given namespace. The set -// of dependencies specified in a ServiceDependency resource will be used to -// compute the sidecar configuration for every workload in the namespace. -// -// NOTE 1: If workloads in the mesh depend only on other workloads in the -// same namespace, set defaultServiceDependency.importMode to SAME_NAMESPACE -// in the mesh global config map (in values.yaml). -// -// NOTE 2: To facilitate incremental pruning of the` sidecar -// configuration, the default import mode for the mesh is set to -// ALL_NAMESPACES. In other words, every workload will be able to reach -// every other workload. Adding a ServiceDependency resource in a namespace will -// automatically prune the configuration for the workloads in that -// namespace. -// -// The following examples illustrate a few specific use cases of ServiceDependency. -// -// The example below declares a ServiceDependency resource in the prod-us1 -// namespace that specifies that workloads in the namespace will be able to -// reach the services in the prod-apis namespace only. -// -// ```yaml -// apiVersion: networking.istio.io/v1alpha3 -// kind: ServiceDependency -// metadata: -// name: default -// namespace: prod-us1 -// spec: -// dependencies: -// - imports: -// - namespace: prod-apis -// ``` -// -// In a mesh where the default service dependency is set to SAME_NAMESPACE -// only, if one or more workloads need to be able to reach every other -// service in the mesh (e.g., metrics collection server), the following -// ServiceDependency resource can be used to specify such a dependency: -// -// ```yaml -// apiVersion: networking.istio.io/v1alpha3 -// kind: ServiceDependency -// metadata: -// name: default -// namespace: metrics-collection -// spec: -// dependencies: -// - imports: -// - namespace: '*' -// ``` -// -// The configuration above will allow workloads in the metrics-collection -// namespace to access service in any namespace while workloads in other -// namespaces will be configured for namespace local access as per the -// global default service dependency (SAME_NAMESPACE). -// -message ServiceDependency { - // Import describes the set of namespaces whose exported services - // (real/virtual) will be accessed by workloads in a given namespace. The - // sidecars attached to the workloads will be configured with information - // required to reach the imported services only. The gateways in the - // current namespace will only honor imported VirtualServices instead of - // every VirtualService that binds itself to the gateway. - // - // Importing a service from a namespace will automatically import the - // exported configuration artifacts associated with the service, such as - // VirtualService, DestinationRule, etc. The service in a namespace can be - // a service in the service registry (e.g., a kubernetes or cloud foundry - // service) or a service specified via ServiceEntry configuration. - // - // NOTE: Only exported services and configuration artifacts from a - // namespace can be imported. Private services/configuration will not be - // imported. See the scope setting associated with VirtualService, - // DestinationRule, ServiceEntry, etc. - message Import { - // The configuration namespace whose services need to be imported. - // Specify * to import all namespaces. The import can be scoped further - // by specifying individual hosts. - string namespace = 1; - - // A FQDN or wildcard prefixed DNS name of the host to import from the - // specified namespace. The hostnames include names of services from the - // service registry as well as those specified in a VirtualService. - string host = 2; - }; - - // Dependency describes a workload and the set of service dependencies - // for the workload. - message Dependency { - // [#not-implemented-hide:] - // One or more labels that indicate a specific set of pods/VMs on which - // this dependency configuration should be applied. The scope of label - // search is platform dependent. On Kubernetes, for example, the scope - // includes pods running in the namespace in which the ServiceDependency - // resource is present. If the sourceWorkloadLabels are omitted, the - // imports specified will be applicable to all workloads in the current - // configuration namespace. - // NOTE: source_workload_labels are currently not supported. - map source_workload_labels = 1; - - // REQUIRED: Import describes the set of namespaces whose exported - // services will be accessed by the workloads selected by the - // sourceWorkloadLabels. The sidecars attached to the workloads will be - // configured with information required to reach other services in the - // same namespace and the imported services. In addition to the - // explicitly specified namespaces, namespaces specified in the global - // mesh config (through defaultServiceDependency.importNamespaces) will also be - // imported. - repeated Import imports = 2; - }; - - // REQUIRED. The set of services that workloads in this namespace are - // expected to talk to, in addition to other workloads in the same - // namespace. Dependencies describe the properties of outbound traffic from - // a given workload. - repeated Dependency dependencies = 1; -} - -// ConfigScope defines the visibility of an Istio configuration artifact in -// a namespace when the namespace is imported. By default all -// configuration artifacts are public. Configurations with private scope -// will not be imported when the namespace containing the configuration is -// imported in a ServiceDependency. -enum ConfigScope { - // Config with this scope are visible to all workloads in the mesh - PUBLIC = 0; - - // Configs with this scope are visible to only workloads in the same - // namespace as the configuration resource. - PRIVATE = 1; -} diff --git a/networking/v1alpha3/service_entry.pb.go b/networking/v1alpha3/service_entry.pb.go index ba15812abd..2642cde348 100644 --- a/networking/v1alpha3/service_entry.pb.go +++ b/networking/v1alpha3/service_entry.pb.go @@ -1538,38 +1538,38 @@ var ( func init() { proto.RegisterFile("networking/v1alpha3/service_entry.proto", fileDescriptorServiceEntry) } var fileDescriptorServiceEntry = []byte{ - // 524 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0xdd, 0x6e, 0xd3, 0x30, - 0x14, 0x9e, 0x9b, 0x2d, 0x6d, 0x4e, 0x37, 0x54, 0x2c, 0x84, 0x42, 0x84, 0x4a, 0xe8, 0x05, 0x54, - 0x02, 0xa5, 0xa3, 0x13, 0xd2, 0xf8, 0xb9, 0x19, 0x23, 0x12, 0x95, 0x4a, 0x00, 0xb7, 0x17, 0x88, - 0x9b, 0x2a, 0x4b, 0x4d, 0x6b, 0x2d, 0x8a, 0xa3, 0xd8, 0x6b, 0xd5, 0xb7, 0xe0, 0x31, 0x78, 0x14, - 0x2e, 0x79, 0x04, 0xd4, 0x27, 0x41, 0x71, 0x9c, 0xa6, 0x17, 0xa3, 0x6c, 0x77, 0xf9, 0x4e, 0xce, - 0xf7, 0xf9, 0x3b, 0xfe, 0x8e, 0xe1, 0x69, 0x42, 0xe5, 0x92, 0x67, 0x97, 0x2c, 0x99, 0xf5, 0x16, - 0x2f, 0xc2, 0x38, 0x9d, 0x87, 0x27, 0x3d, 0x41, 0xb3, 0x05, 0x8b, 0xe8, 0x84, 0x26, 0x32, 0x5b, - 0x79, 0x69, 0xc6, 0x25, 0xc7, 0x0f, 0x98, 0x90, 0x8c, 0x7b, 0x55, 0xbb, 0x57, 0xb6, 0x3b, 0x8f, - 0xaf, 0xd3, 0x98, 0x85, 0x92, 0x2e, 0x43, 0xcd, 0x76, 0x9e, 0xef, 0x3a, 0x66, 0x4a, 0x53, 0x9a, - 0x4c, 0x69, 0x12, 0xe9, 0xee, 0xce, 0xcf, 0x3a, 0x1c, 0x8e, 0x8a, 0x9f, 0x7e, 0x6e, 0x01, 0xdf, - 0x83, 0x83, 0x39, 0x17, 0x52, 0xd8, 0xc8, 0x35, 0xba, 0x16, 0x29, 0x00, 0x7e, 0x08, 0x56, 0x38, - 0x9d, 0x66, 0x54, 0x08, 0x2a, 0xec, 0x9a, 0xfa, 0x53, 0x15, 0xf0, 0x4b, 0x38, 0x48, 0x79, 0x26, - 0x85, 0x6d, 0xb8, 0x46, 0xb7, 0xd9, 0x7f, 0xe4, 0xfd, 0x73, 0x00, 0xef, 0x33, 0xcf, 0x24, 0x29, - 0xba, 0xf1, 0x10, 0x1a, 0x31, 0x8f, 0x42, 0xc9, 0x78, 0x62, 0xef, 0xbb, 0xa8, 0x7b, 0xa7, 0x7f, - 0xbc, 0x83, 0xb9, 0xed, 0xd2, 0x1b, 0x6a, 0x1e, 0xd9, 0x28, 0x60, 0x02, 0x90, 0x51, 0xc1, 0xe3, - 0x2b, 0xa5, 0x77, 0xa0, 0xf4, 0xfa, 0x37, 0xd5, 0x23, 0x1b, 0x26, 0xd9, 0x52, 0xc1, 0x01, 0x58, - 0x34, 0x99, 0xa6, 0x9c, 0x25, 0x52, 0xd8, 0xa6, 0x1a, 0xee, 0xc6, 0x16, 0x7d, 0x4d, 0x24, 0x95, - 0x04, 0x1e, 0xc0, 0x61, 0xc4, 0x93, 0xef, 0x6c, 0x36, 0x11, 0x11, 0x4f, 0xa9, 0x5d, 0x57, 0x2e, - 0x9f, 0xec, 0x90, 0x3c, 0x57, 0xed, 0xa3, 0xbc, 0x9b, 0x34, 0xa3, 0x0a, 0x38, 0x3f, 0x0c, 0x68, - 0x94, 0x47, 0x60, 0x1b, 0xea, 0x3a, 0x0d, 0x1b, 0xb9, 0xa8, 0x6b, 0x91, 0x12, 0xe2, 0x2f, 0x65, - 0x34, 0x35, 0xe5, 0xfe, 0xcd, 0x6d, 0xdd, 0xab, 0xc0, 0x84, 0xaa, 0x95, 0xb1, 0x8d, 0xc1, 0x8c, - 0xc3, 0x0b, 0x1a, 0x97, 0x71, 0xbf, 0xbd, 0xb5, 0xe6, 0x50, 0xd1, 0x0b, 0x51, 0xad, 0x95, 0x8f, - 0xa0, 0x05, 0xd4, 0x2e, 0x58, 0xa4, 0x84, 0xd8, 0x29, 0xd6, 0x24, 0x66, 0x72, 0xa5, 0x62, 0xb5, - 0xc8, 0x06, 0xe3, 0xfb, 0x60, 0x2e, 0x29, 0x9b, 0xcd, 0xa5, 0x6d, 0xba, 0xa8, 0x7b, 0x44, 0x34, - 0x72, 0x4e, 0x01, 0x2a, 0xe3, 0xb8, 0x05, 0xc6, 0x25, 0x5d, 0xe9, 0xab, 0xc9, 0x3f, 0xf3, 0x2d, - 0x5f, 0x84, 0xf1, 0x15, 0xb5, 0x6b, 0x8a, 0x56, 0x80, 0xd7, 0xb5, 0x53, 0xe4, 0xbc, 0x82, 0xe6, - 0x96, 0xbd, 0xff, 0x51, 0xad, 0x2d, 0x6a, 0xe7, 0x18, 0x1a, 0xe5, 0x5e, 0xe2, 0xbb, 0x70, 0xf4, - 0xd1, 0x1f, 0x7d, 0x98, 0xf8, 0x5f, 0xc7, 0x3e, 0x09, 0xce, 0x86, 0xad, 0xbd, 0x4d, 0x69, 0x10, - 0xe8, 0x12, 0xea, 0x3c, 0x03, 0xa8, 0x36, 0x0f, 0x37, 0x60, 0x3f, 0xf8, 0x14, 0xf8, 0xad, 0x3d, - 0x0c, 0x60, 0x8e, 0xc6, 0x67, 0xe3, 0xc1, 0x79, 0x0b, 0xe1, 0x3a, 0x18, 0xef, 0x83, 0x51, 0xab, - 0xf6, 0xce, 0xfb, 0xb5, 0x6e, 0xa3, 0xdf, 0xeb, 0x36, 0xfa, 0xb3, 0x6e, 0xa3, 0x6f, 0x6e, 0x71, - 0xe9, 0x8c, 0xf7, 0xc2, 0x94, 0xf5, 0xae, 0x79, 0xf3, 0x17, 0xa6, 0x7a, 0xe1, 0x27, 0x7f, 0x03, - 0x00, 0x00, 0xff, 0xff, 0xe4, 0x0f, 0x29, 0x22, 0x78, 0x04, 0x00, 0x00, + // 521 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0xcd, 0x6e, 0xd3, 0x4c, + 0x14, 0xed, 0xc4, 0x8d, 0x13, 0xdf, 0xb4, 0x9f, 0xf2, 0x8d, 0x10, 0x1a, 0x22, 0x14, 0x4c, 0x16, + 0x10, 0x09, 0xc9, 0x29, 0xa9, 0x90, 0xca, 0xcf, 0xa6, 0x14, 0x4b, 0x44, 0x0a, 0x06, 0x26, 0x59, + 0x20, 0x36, 0xd1, 0xd4, 0x19, 0x92, 0x51, 0x2d, 0x8f, 0xe5, 0x99, 0x26, 0xca, 0x5b, 0xf0, 0x18, + 0x3c, 0x0a, 0x4b, 0x1e, 0x01, 0xe5, 0x49, 0x50, 0xc6, 0x76, 0x9c, 0x45, 0x28, 0xed, 0xce, 0xe7, + 0xfa, 0x9c, 0x73, 0xcf, 0xcc, 0xbd, 0x03, 0x4f, 0x63, 0xae, 0x97, 0x32, 0xbd, 0x12, 0xf1, 0xac, + 0xb7, 0x78, 0xce, 0xa2, 0x64, 0xce, 0x4e, 0x7b, 0x8a, 0xa7, 0x0b, 0x11, 0xf2, 0x09, 0x8f, 0x75, + 0xba, 0xf2, 0x92, 0x54, 0x6a, 0x89, 0x1f, 0x08, 0xa5, 0x85, 0xf4, 0x4a, 0xba, 0x57, 0xd0, 0x5b, + 0x8f, 0xf7, 0x79, 0xcc, 0x98, 0xe6, 0x4b, 0x96, 0xab, 0xf7, 0x53, 0x94, 0x98, 0xf2, 0x90, 0xa5, + 0x19, 0xa5, 0xf3, 0xa3, 0x06, 0x47, 0xa3, 0xac, 0xb1, 0xbf, 0xe9, 0x8b, 0xef, 0x41, 0x75, 0x2e, + 0x95, 0x56, 0x04, 0xb9, 0x56, 0xd7, 0xa1, 0x19, 0xc0, 0x0f, 0xc1, 0x61, 0xd3, 0x69, 0xca, 0x95, + 0xe2, 0x8a, 0x54, 0xcc, 0x9f, 0xb2, 0x80, 0x5f, 0x40, 0x35, 0x91, 0xa9, 0x56, 0xc4, 0x72, 0xad, + 0x6e, 0xa3, 0xff, 0xc8, 0xfb, 0x6b, 0x6a, 0xef, 0x93, 0x4c, 0x35, 0xcd, 0xd8, 0x78, 0x08, 0xf5, + 0x48, 0x86, 0x4c, 0x0b, 0x19, 0x93, 0x43, 0x17, 0x75, 0xff, 0xeb, 0x9f, 0xdc, 0xa0, 0xdc, 0x4d, + 0xe9, 0x0d, 0x73, 0x1d, 0xdd, 0x3a, 0x60, 0x0a, 0x90, 0x72, 0x25, 0xa3, 0x6b, 0xe3, 0x57, 0x35, + 0x7e, 0xfd, 0xdb, 0xfa, 0xd1, 0xad, 0x92, 0xee, 0xb8, 0xe0, 0x00, 0x1c, 0x1e, 0x4f, 0x13, 0x29, + 0x62, 0xad, 0x88, 0x6d, 0x0e, 0x77, 0xeb, 0x88, 0x7e, 0x2e, 0xa4, 0xa5, 0x05, 0x1e, 0xc0, 0x51, + 0x28, 0xe3, 0x6f, 0x62, 0x36, 0x51, 0xa1, 0x4c, 0x38, 0xa9, 0x99, 0x94, 0x4f, 0x6e, 0xb0, 0xbc, + 0x30, 0xf4, 0xd1, 0x86, 0x4d, 0x1b, 0x61, 0x09, 0x5a, 0xdf, 0x2d, 0xa8, 0x17, 0x2d, 0x30, 0x81, + 0x5a, 0x3e, 0x0d, 0x82, 0x5c, 0xd4, 0x75, 0x68, 0x01, 0xf1, 0xe7, 0x62, 0x34, 0x15, 0x93, 0xfe, + 0xf5, 0x5d, 0xd3, 0x9b, 0x81, 0x29, 0x53, 0x2b, 0xc6, 0x36, 0x06, 0x3b, 0x62, 0x97, 0x3c, 0x2a, + 0xc6, 0xfd, 0xe6, 0xce, 0x9e, 0x43, 0x23, 0xcf, 0x4c, 0x73, 0xaf, 0xcd, 0x11, 0x72, 0x03, 0xb3, + 0x0b, 0x0e, 0x2d, 0x20, 0x6e, 0x65, 0x6b, 0x12, 0x09, 0xbd, 0x32, 0x63, 0x75, 0xe8, 0x16, 0xe3, + 0xfb, 0x60, 0x2f, 0xb9, 0x98, 0xcd, 0x35, 0xb1, 0x5d, 0xd4, 0x3d, 0xa6, 0x39, 0x6a, 0x9d, 0x01, + 0x94, 0xc1, 0x71, 0x13, 0xac, 0x2b, 0xbe, 0xca, 0xaf, 0x66, 0xf3, 0xb9, 0xd9, 0xf2, 0x05, 0x8b, + 0xae, 0x39, 0xa9, 0x18, 0x59, 0x06, 0x5e, 0x55, 0xce, 0x50, 0xeb, 0x25, 0x34, 0x76, 0xe2, 0xfd, + 0x4b, 0xea, 0xec, 0x48, 0x3b, 0x27, 0x50, 0x2f, 0xf6, 0x12, 0xff, 0x0f, 0xc7, 0x1f, 0xfc, 0xd1, + 0xfb, 0x89, 0xff, 0x65, 0xec, 0xd3, 0xe0, 0x7c, 0xd8, 0x3c, 0xd8, 0x96, 0x06, 0x41, 0x5e, 0x42, + 0x9d, 0x67, 0x00, 0xe5, 0xe6, 0xe1, 0x3a, 0x1c, 0x06, 0x1f, 0x03, 0xbf, 0x79, 0x80, 0x01, 0xec, + 0xd1, 0xf8, 0x7c, 0x3c, 0xb8, 0x68, 0x22, 0x5c, 0x03, 0xeb, 0x5d, 0x30, 0x6a, 0x56, 0xde, 0x7a, + 0x3f, 0xd7, 0x6d, 0xf4, 0x6b, 0xdd, 0x46, 0xbf, 0xd7, 0x6d, 0xf4, 0xd5, 0xcd, 0x2e, 0x5d, 0xc8, + 0x1e, 0x4b, 0x44, 0x6f, 0xcf, 0x43, 0xbf, 0xb4, 0xcd, 0x0b, 0x3f, 0xfd, 0x13, 0x00, 0x00, 0xff, + 0xff, 0x52, 0x1f, 0x71, 0x64, 0x6d, 0x04, 0x00, 0x00, } diff --git a/networking/v1alpha3/service_entry.proto b/networking/v1alpha3/service_entry.proto index c1f233f260..b4f16f8b34 100644 --- a/networking/v1alpha3/service_entry.proto +++ b/networking/v1alpha3/service_entry.proto @@ -15,7 +15,7 @@ syntax = "proto3"; import "networking/v1alpha3/gateway.proto"; -import "networking/v1alpha3/service_dependency.proto"; +import "networking/v1alpha3/sidecar.proto"; package istio.networking.v1alpha3; diff --git a/networking/v1alpha3/sidecar.pb.go b/networking/v1alpha3/sidecar.pb.go new file mode 100644 index 0000000000..6c4e074c0f --- /dev/null +++ b/networking/v1alpha3/sidecar.pb.go @@ -0,0 +1,1405 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: networking/v1alpha3/sidecar.proto + +package v1alpha3 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// ConfigScope defines the visibility of an Istio configuration artifact in +// a namespace when the namespace is imported. By default all +// configuration artifacts are public. Configurations with private scope +// will not be imported when the namespace containing the configuration is +// imported in a Sidecar. +type ConfigScope int32 + +const ( + // Config with this scope are visible to all workloads in the mesh + ConfigScope_PUBLIC ConfigScope = 0 + // Configs with this scope are visible to only workloads in the same + // namespace as the configuration resource. + ConfigScope_PRIVATE ConfigScope = 1 +) + +var ConfigScope_name = map[int32]string{ + 0: "PUBLIC", + 1: "PRIVATE", +} +var ConfigScope_value = map[string]int32{ + "PUBLIC": 0, + "PRIVATE": 1, +} + +func (x ConfigScope) String() string { + return proto.EnumName(ConfigScope_name, int32(x)) +} +func (ConfigScope) EnumDescriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{0} } + +// $hide_from_docs +// CaptureMode describes how traffic to a listener is expected to be +// captured. Applicable only when the listener is bound to an IP. +type CaptureMode int32 + +const ( + // The default capture mode defined by the environment + CaptureMode_DEFAULT CaptureMode = 0 + // Capture traffic using IPtables redirection + CaptureMode_IPTABLES CaptureMode = 1 + // No traffic capture. When used in egress listener, the application is + // expected to explicitly communicate with the listener port/unix + // domain socket. When used in ingress listener, care needs to be taken + // to ensure that the listener port is not in use by other processes on + // the host. + CaptureMode_NONE CaptureMode = 2 +) + +var CaptureMode_name = map[int32]string{ + 0: "DEFAULT", + 1: "IPTABLES", + 2: "NONE", +} +var CaptureMode_value = map[string]int32{ + "DEFAULT": 0, + "IPTABLES": 1, + "NONE": 2, +} + +func (x CaptureMode) String() string { + return proto.EnumName(CaptureMode_name, int32(x)) +} +func (CaptureMode) EnumDescriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{1} } + +// `Sidecar` describes the configuration of the sidecar proxy that mediates +// inbound and outbound communication to the workload it is attached to. By +// default, Istio will program all sidecar proxies in the mesh with the +// necessary configuration required to reach every workload in the mesh, as +// well as accept traffic on all the ports associated with the +// workload. The Sidecar resource provides a way to fine tune the set of +// ports, protocols that the proxy will accept when forwarding traffic to +// and from the workload. In addition, it is possible to restrict the set +// of services that the proxy can reach when forwarding outbound traffic +// from the workload. +// +// Services and configuration in a mesh are organized into one or more +// namespaces (e.g., a Kubernetes namespace or a CF org/space). A Sidecar +// resource in a namespace will apply to one or more workloads in the same +// namespace, selected using the workloadSelector. In the absence of a +// workloadSelector, it will apply to all workloads in the same +// namespace. When determining the Sidecar resource to be applied to a +// workload, preference will be given to the resource with a +// workloadSelector that selects this workload, over a Sidecar resource +// without any workloadSelector. +// +// NOTE: *_Each namespace can have only one Sidecar resource without any +// workload selector_*. The behavior of the system is undefined if more +// than one selector-less Sidecar resources exist in a given namespace. The +// behavior of the system is undefined if two or more Sidecar resources +// with a workload selector select the same workload. +// +// The example below delcares a Sidecar resource in the prod-us1 namespace +// that configures the sidecar to allow egress traffic to public services +// in the prod-us1, prod-apis, and the istio-system namespaces. +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: Sidecar +// metadata: +// name: default +// namespace: prod-us1 +// spec: +// egress: +// - hosts: +// - "prod-us1/*" +// - "prod-apis/*" +// - "istio-system/*" +// ``` +// +type Sidecar struct { + // $hide_from_docs + // Criteria used to select the specific set of pods/VMs on which this + // sidecar configuration should be applied. If omitted, the sidecar + // configuration will be applied to all workloads in the current config + // namespace. + WorkloadSelector *WorkloadSelector `protobuf:"bytes,1,opt,name=workload_selector,json=workloadSelector" json:"workload_selector,omitempty"` + // $hide_from_docs + // Ingress specifies the configuration of the sidecar for processing + // inbound traffic to the attached workload. If omitted, Istio will + // autoconfigure the sidecar based on the information about the workload + // obtained from the orchestration platform (e.g., exposed ports, services, + // etc.). + Ingress []*IstioIngressListener `protobuf:"bytes,2,rep,name=ingress" json:"ingress,omitempty"` + // Egress specifies the configuration of the sidecar for processing + // outbound traffic from the attached workload to other services in the + // mesh. If omitted, Istio will autoconfigure the sidecar to be able to + // reach every service in the mesh that is visible to this namespace. + Egress []*IstioEgressListener `protobuf:"bytes,3,rep,name=egress" json:"egress,omitempty"` +} + +func (m *Sidecar) Reset() { *m = Sidecar{} } +func (m *Sidecar) String() string { return proto.CompactTextString(m) } +func (*Sidecar) ProtoMessage() {} +func (*Sidecar) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{0} } + +func (m *Sidecar) GetWorkloadSelector() *WorkloadSelector { + if m != nil { + return m.WorkloadSelector + } + return nil +} + +func (m *Sidecar) GetIngress() []*IstioIngressListener { + if m != nil { + return m.Ingress + } + return nil +} + +func (m *Sidecar) GetEgress() []*IstioEgressListener { + if m != nil { + return m.Egress + } + return nil +} + +// $hide_from_docs +// IstioIngressListener specifies the properties of an inbound +// traffic listener on the sidecar proxy attached to a workload. +type IstioIngressListener struct { + // REQUIRED. The port associated with the listener. If using + // unix domain socket, use 0 as the port number, with a valid + // protocol. + Port *Port `protobuf:"bytes,1,opt,name=port" json:"port,omitempty"` + // The ip or the unix domain socket to which the listener should be bound + // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux + // abstract namespace). If omitted, Istio will autoconfigure the defaults + // based on imported services and the workload to which this + // configuration is applied to. + Bind string `protobuf:"bytes,2,opt,name=bind,proto3" json:"bind,omitempty"` + // When the bind address is an IP, the captureMode option dictates + // how traffic to the listener is expected to be captured (or not). + CaptureMode CaptureMode `protobuf:"varint,3,opt,name=capture_mode,json=captureMode,proto3,enum=istio.networking.v1alpha3.CaptureMode" json:"capture_mode,omitempty"` + // The loopback IP endpoint or unix domain socket to which traffic should + // be forwarded to by default. This configuration can be used to redirect + // traffic arriving at the bind point on the sidecar to a port or unix + // domain socket where the application workload is listening for + // connections. Format should be 127.0.0.1:PORT or unix:///path/to/socket + DefaultEndpoint string `protobuf:"bytes,4,opt,name=default_endpoint,json=defaultEndpoint,proto3" json:"default_endpoint,omitempty"` +} + +func (m *IstioIngressListener) Reset() { *m = IstioIngressListener{} } +func (m *IstioIngressListener) String() string { return proto.CompactTextString(m) } +func (*IstioIngressListener) ProtoMessage() {} +func (*IstioIngressListener) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{1} } + +func (m *IstioIngressListener) GetPort() *Port { + if m != nil { + return m.Port + } + return nil +} + +func (m *IstioIngressListener) GetBind() string { + if m != nil { + return m.Bind + } + return "" +} + +func (m *IstioIngressListener) GetCaptureMode() CaptureMode { + if m != nil { + return m.CaptureMode + } + return CaptureMode_DEFAULT +} + +func (m *IstioIngressListener) GetDefaultEndpoint() string { + if m != nil { + return m.DefaultEndpoint + } + return "" +} + +// IstioEgressListener specifies the properties of an outbound traffic +// listener on the sidecar proxy attached to a workload. +type IstioEgressListener struct { + // $hide_from_docs + // The port associated with the listener. If using unix domain socket, + // use 0 as the port number, with a valid protocol. The port if + // specified, will be used as the default destination port associated + // with the imported hosts. If the port is omitted, Istio will infer the + // listener ports based on the imported hosts. Note that when multiple + // egress listeners are specified, where one or more listeners have + // specific ports while others have no port, the hosts exposed on a + // listener port will be based on the listener with the most specific + // port. + Port *Port `protobuf:"bytes,1,opt,name=port" json:"port,omitempty"` + // $hide_from_docs + // The ip or the unix domain socket to which the listener should be bound + // to. Port MUST be specified if bind is not empty. Format: + // x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux abstract + // namespace). If omitted, Istio will autoconfigure the defaults based on + // imported services and the workload to which this configuration is + // applied to. + Bind string `protobuf:"bytes,2,opt,name=bind,proto3" json:"bind,omitempty"` + // When the bind address is an IP, the captureMode option dictates + // how traffic to the listener is expected to be captured (or not). + CaptureMode CaptureMode `protobuf:"varint,3,opt,name=capture_mode,json=captureMode,proto3,enum=istio.networking.v1alpha3.CaptureMode" json:"capture_mode,omitempty"` + // One or more services/virtualServices exposed by the listener in + // namespace/dnsName format. Publicly scoped services and + // VirtualServices from remote namespaces corresponding to the specified + // hosts will be imported. The service in a namespace can be a service in + // the service registry (e.g., a kubernetes or cloud foundry service) or + // a service specified via ServiceEntry configuration. In addition, any + // publicly scoped DestinationRule associated with the imported services + // will also be imported. + // + // Set the namespace to * to import a particular service from any + // available namespace (e.g., "*/foo.example.com"). Set the dnsName field + // to * to import all services from the specified namespace (e.g., + // "prod/*"). The services should be specified using FQDN format. + // + // NOTE: Only exported services and configuration artifacts from a + // namespace can be imported. Private services/configuration will not be + // imported. Refer to the scope setting associated with VirtualService, + // DestinationRule, ServiceEntry, etc. for details. + Hosts []string `protobuf:"bytes,4,rep,name=hosts" json:"hosts,omitempty"` +} + +func (m *IstioEgressListener) Reset() { *m = IstioEgressListener{} } +func (m *IstioEgressListener) String() string { return proto.CompactTextString(m) } +func (*IstioEgressListener) ProtoMessage() {} +func (*IstioEgressListener) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{2} } + +func (m *IstioEgressListener) GetPort() *Port { + if m != nil { + return m.Port + } + return nil +} + +func (m *IstioEgressListener) GetBind() string { + if m != nil { + return m.Bind + } + return "" +} + +func (m *IstioEgressListener) GetCaptureMode() CaptureMode { + if m != nil { + return m.CaptureMode + } + return CaptureMode_DEFAULT +} + +func (m *IstioEgressListener) GetHosts() []string { + if m != nil { + return m.Hosts + } + return nil +} + +// WorkloadSelector specifies the criteria used to determine if the Gateway +// or Sidecar resource can be applied to a proxy. The matching criteria +// includes the metadata associated with a proxy, workload info such as +// labels attached to the pod/VM, or any other info that the proxy provides +// to Istio during the initial handshake. If multiple conditions are +// specified, all conditions need to match in order for the workload to be +// selected. Currently, only label based selection mechanism is supported. +type WorkloadSelector struct { + // One or more labels that indicate a specific set of pods/VMs on which + // this sidecar configuration should be applied. The scope of label + // search is restricted to the configuration namespace in which the the + // resource is present. + Labels map[string]string `protobuf:"bytes,1,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *WorkloadSelector) Reset() { *m = WorkloadSelector{} } +func (m *WorkloadSelector) String() string { return proto.CompactTextString(m) } +func (*WorkloadSelector) ProtoMessage() {} +func (*WorkloadSelector) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{3} } + +func (m *WorkloadSelector) GetLabels() map[string]string { + if m != nil { + return m.Labels + } + return nil +} + +func init() { + proto.RegisterType((*Sidecar)(nil), "istio.networking.v1alpha3.Sidecar") + proto.RegisterType((*IstioIngressListener)(nil), "istio.networking.v1alpha3.IstioIngressListener") + proto.RegisterType((*IstioEgressListener)(nil), "istio.networking.v1alpha3.IstioEgressListener") + proto.RegisterType((*WorkloadSelector)(nil), "istio.networking.v1alpha3.WorkloadSelector") + proto.RegisterEnum("istio.networking.v1alpha3.ConfigScope", ConfigScope_name, ConfigScope_value) + proto.RegisterEnum("istio.networking.v1alpha3.CaptureMode", CaptureMode_name, CaptureMode_value) +} +func (m *Sidecar) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Sidecar) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.WorkloadSelector != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.WorkloadSelector.Size())) + n1, err := m.WorkloadSelector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if len(m.Ingress) > 0 { + for _, msg := range m.Ingress { + dAtA[i] = 0x12 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Egress) > 0 { + for _, msg := range m.Egress { + dAtA[i] = 0x1a + i++ + i = encodeVarintSidecar(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *IstioIngressListener) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IstioIngressListener) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Port != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.Port.Size())) + n2, err := m.Port.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if len(m.Bind) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(m.Bind))) + i += copy(dAtA[i:], m.Bind) + } + if m.CaptureMode != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.CaptureMode)) + } + if len(m.DefaultEndpoint) > 0 { + dAtA[i] = 0x22 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(m.DefaultEndpoint))) + i += copy(dAtA[i:], m.DefaultEndpoint) + } + return i, nil +} + +func (m *IstioEgressListener) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IstioEgressListener) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Port != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.Port.Size())) + n3, err := m.Port.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if len(m.Bind) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(m.Bind))) + i += copy(dAtA[i:], m.Bind) + } + if m.CaptureMode != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.CaptureMode)) + } + if len(m.Hosts) > 0 { + for _, s := range m.Hosts { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *WorkloadSelector) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WorkloadSelector) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Labels) > 0 { + for k, _ := range m.Labels { + dAtA[i] = 0xa + i++ + v := m.Labels[k] + mapSize := 1 + len(k) + sovSidecar(uint64(len(k))) + 1 + len(v) + sovSidecar(uint64(len(v))) + i = encodeVarintSidecar(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func encodeVarintSidecar(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Sidecar) Size() (n int) { + var l int + _ = l + if m.WorkloadSelector != nil { + l = m.WorkloadSelector.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + if len(m.Ingress) > 0 { + for _, e := range m.Ingress { + l = e.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + } + if len(m.Egress) > 0 { + for _, e := range m.Egress { + l = e.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + } + return n +} + +func (m *IstioIngressListener) Size() (n int) { + var l int + _ = l + if m.Port != nil { + l = m.Port.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + l = len(m.Bind) + if l > 0 { + n += 1 + l + sovSidecar(uint64(l)) + } + if m.CaptureMode != 0 { + n += 1 + sovSidecar(uint64(m.CaptureMode)) + } + l = len(m.DefaultEndpoint) + if l > 0 { + n += 1 + l + sovSidecar(uint64(l)) + } + return n +} + +func (m *IstioEgressListener) Size() (n int) { + var l int + _ = l + if m.Port != nil { + l = m.Port.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + l = len(m.Bind) + if l > 0 { + n += 1 + l + sovSidecar(uint64(l)) + } + if m.CaptureMode != 0 { + n += 1 + sovSidecar(uint64(m.CaptureMode)) + } + if len(m.Hosts) > 0 { + for _, s := range m.Hosts { + l = len(s) + n += 1 + l + sovSidecar(uint64(l)) + } + } + return n +} + +func (m *WorkloadSelector) Size() (n int) { + var l int + _ = l + if len(m.Labels) > 0 { + for k, v := range m.Labels { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovSidecar(uint64(len(k))) + 1 + len(v) + sovSidecar(uint64(len(v))) + n += mapEntrySize + 1 + sovSidecar(uint64(mapEntrySize)) + } + } + return n +} + +func sovSidecar(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozSidecar(x uint64) (n int) { + return sovSidecar(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Sidecar) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Sidecar: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Sidecar: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WorkloadSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WorkloadSelector == nil { + m.WorkloadSelector = &WorkloadSelector{} + } + if err := m.WorkloadSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ingress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ingress = append(m.Ingress, &IstioIngressListener{}) + if err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Egress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Egress = append(m.Egress, &IstioEgressListener{}) + if err := m.Egress[len(m.Egress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IstioIngressListener) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IstioIngressListener: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioIngressListener: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Port == nil { + m.Port = &Port{} + } + if err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CaptureMode", wireType) + } + m.CaptureMode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CaptureMode |= (CaptureMode(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultEndpoint", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultEndpoint = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IstioEgressListener) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IstioEgressListener: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioEgressListener: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Port == nil { + m.Port = &Port{} + } + if err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CaptureMode", wireType) + } + m.CaptureMode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CaptureMode |= (CaptureMode(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hosts", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WorkloadSelector) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WorkloadSelector: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WorkloadSelector: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthSidecar + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthSidecar + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Labels[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipSidecar(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSidecar + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSidecar + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSidecar + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthSidecar + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSidecar + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipSidecar(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthSidecar = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowSidecar = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("networking/v1alpha3/sidecar.proto", fileDescriptorSidecar) } + +var fileDescriptorSidecar = []byte{ + // 496 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0x3f, 0x6f, 0xd3, 0x40, + 0x18, 0xc6, 0x7b, 0xb1, 0x49, 0x9a, 0xd7, 0x15, 0x98, 0xa3, 0x83, 0xe9, 0x10, 0x4c, 0x86, 0xca, + 0x14, 0xc9, 0x16, 0xc9, 0xc0, 0x9f, 0x2d, 0x09, 0xae, 0x64, 0xc9, 0xb4, 0x91, 0x93, 0x02, 0x62, + 0x89, 0x2e, 0xf6, 0x35, 0x3d, 0xd5, 0xf8, 0xac, 0xf3, 0xa5, 0x51, 0xbe, 0x0c, 0x5f, 0x85, 0x95, + 0x91, 0x85, 0x1d, 0xe5, 0x43, 0x30, 0x23, 0xff, 0xa9, 0x5a, 0xa2, 0x10, 0xc4, 0xd6, 0xed, 0xde, + 0xf7, 0x9e, 0xe7, 0xf7, 0xfa, 0xf1, 0xdd, 0xc1, 0xd3, 0x84, 0xca, 0x05, 0x17, 0x97, 0x2c, 0x99, + 0x39, 0x57, 0x2f, 0x48, 0x9c, 0x5e, 0x90, 0xae, 0x93, 0xb1, 0x88, 0x86, 0x44, 0xd8, 0xa9, 0xe0, + 0x92, 0xe3, 0xc7, 0x2c, 0x93, 0x8c, 0xdb, 0x37, 0x42, 0xfb, 0x5a, 0x78, 0xb0, 0xd1, 0x3d, 0x23, + 0x92, 0x2e, 0xc8, 0xb2, 0x74, 0xb7, 0x7f, 0x21, 0x68, 0x8c, 0x4a, 0x1e, 0xfe, 0x08, 0x0f, 0x73, + 0x75, 0xcc, 0x49, 0x34, 0xc9, 0x68, 0x4c, 0x43, 0xc9, 0x85, 0x81, 0x4c, 0x64, 0x69, 0x9d, 0xe7, + 0xf6, 0x5f, 0xa7, 0xd8, 0x1f, 0x2a, 0xcf, 0xa8, 0xb2, 0x04, 0xfa, 0x62, 0xad, 0x83, 0x3d, 0x68, + 0xb0, 0x64, 0x26, 0x68, 0x96, 0x19, 0x35, 0x53, 0xb1, 0xb4, 0x8e, 0xb3, 0x85, 0xe7, 0xe5, 0x3b, + 0x5e, 0x29, 0xf7, 0x59, 0x26, 0x69, 0x42, 0x45, 0x70, 0xed, 0xc7, 0xc7, 0x50, 0xa7, 0x25, 0x49, + 0x29, 0x48, 0xf6, 0xbf, 0x48, 0xee, 0x9f, 0xa0, 0xca, 0xdd, 0xfe, 0x81, 0x60, 0x7f, 0xd3, 0x24, + 0xdc, 0x05, 0x35, 0xe5, 0x42, 0x56, 0xc1, 0x9f, 0x6c, 0xc1, 0x0f, 0xb9, 0x90, 0x41, 0x21, 0xc6, + 0x18, 0xd4, 0x29, 0x4b, 0x22, 0xa3, 0x66, 0x22, 0xab, 0x19, 0x14, 0x6b, 0xec, 0xc1, 0x5e, 0x48, + 0x52, 0x39, 0x17, 0x74, 0xf2, 0x99, 0x47, 0xd4, 0x50, 0x4c, 0x64, 0xdd, 0xef, 0x1c, 0x6e, 0x01, + 0x0e, 0x4a, 0xf9, 0x3b, 0x1e, 0xd1, 0x40, 0x0b, 0x6f, 0x0a, 0xfc, 0x0c, 0xf4, 0x88, 0x9e, 0x93, + 0x79, 0x2c, 0x27, 0x34, 0x89, 0x52, 0xce, 0x12, 0x69, 0xa8, 0xc5, 0xa8, 0x07, 0x55, 0xdf, 0xad, + 0xda, 0xed, 0xaf, 0x08, 0x1e, 0x6d, 0xc8, 0x7d, 0x27, 0x63, 0xed, 0xc3, 0xbd, 0x0b, 0x9e, 0xc9, + 0xcc, 0x50, 0x4d, 0xc5, 0x6a, 0x06, 0x65, 0xd1, 0xfe, 0x82, 0x40, 0x5f, 0xbf, 0x53, 0xf8, 0x14, + 0xea, 0x31, 0x99, 0xd2, 0x38, 0x33, 0x50, 0x71, 0xec, 0x2f, 0xff, 0xe3, 0x42, 0xda, 0x7e, 0xe1, + 0x74, 0x13, 0x29, 0x96, 0x41, 0x85, 0x39, 0x78, 0x0d, 0xda, 0xad, 0x36, 0xd6, 0x41, 0xb9, 0xa4, + 0xcb, 0xe2, 0xef, 0x34, 0x83, 0x7c, 0x99, 0x7f, 0xdc, 0x15, 0x89, 0xe7, 0xb4, 0x0a, 0x5f, 0x16, + 0x6f, 0x6a, 0xaf, 0xd0, 0xd1, 0x21, 0x68, 0x03, 0x9e, 0x9c, 0xb3, 0xd9, 0x28, 0xe4, 0x29, 0xc5, + 0x00, 0xf5, 0xe1, 0x59, 0xdf, 0xf7, 0x06, 0xfa, 0x0e, 0xd6, 0xa0, 0x31, 0x0c, 0xbc, 0xf7, 0xbd, + 0xb1, 0xab, 0xa3, 0xa3, 0x0e, 0x68, 0xb7, 0xa2, 0xe7, 0x7b, 0x6f, 0xdd, 0xe3, 0xde, 0x99, 0x3f, + 0xd6, 0x77, 0xf0, 0x1e, 0xec, 0x7a, 0xc3, 0x71, 0xaf, 0xef, 0xbb, 0x23, 0x1d, 0xe1, 0x5d, 0x50, + 0x4f, 0x4e, 0x4f, 0x5c, 0xbd, 0xd6, 0xb7, 0xbf, 0xad, 0x5a, 0xe8, 0xfb, 0xaa, 0x85, 0x7e, 0xae, + 0x5a, 0xe8, 0x93, 0x59, 0x86, 0x64, 0xdc, 0x21, 0x29, 0x73, 0x36, 0xbc, 0xe6, 0x69, 0xbd, 0x78, + 0xc6, 0xdd, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x62, 0xef, 0x1c, 0x27, 0x29, 0x04, 0x00, 0x00, +} diff --git a/networking/v1alpha3/sidecar.proto b/networking/v1alpha3/sidecar.proto new file mode 100644 index 0000000000..369b6be38c --- /dev/null +++ b/networking/v1alpha3/sidecar.proto @@ -0,0 +1,251 @@ +// Copyright 2018 Istio Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +import "networking/v1alpha3/gateway.proto"; + +package istio.networking.v1alpha3; + +option go_package = "istio.io/api/networking/v1alpha3"; + +// `Sidecar` describes the configuration of the sidecar proxy that mediates +// inbound and outbound communication to the workload it is attached to. By +// default, Istio will program all sidecar proxies in the mesh with the +// necessary configuration required to reach every workload in the mesh, as +// well as accept traffic on all the ports associated with the +// workload. The Sidecar resource provides a way to fine tune the set of +// ports, protocols that the proxy will accept when forwarding traffic to +// and from the workload. In addition, it is possible to restrict the set +// of services that the proxy can reach when forwarding outbound traffic +// from the workload. +// +// Services and configuration in a mesh are organized into one or more +// namespaces (e.g., a Kubernetes namespace or a CF org/space). A Sidecar +// resource in a namespace will apply to one or more workloads in the same +// namespace, selected using the workloadSelector. In the absence of a +// workloadSelector, it will apply to all workloads in the same +// namespace. When determining the Sidecar resource to be applied to a +// workload, preference will be given to the resource with a +// workloadSelector that selects this workload, over a Sidecar resource +// without any workloadSelector. +// +// NOTE: *_Each namespace can have only one Sidecar resource without any +// workload selector_*. The behavior of the system is undefined if more +// than one selector-less Sidecar resources exist in a given namespace. The +// behavior of the system is undefined if two or more Sidecar resources +// with a workload selector select the same workload. +// +// The example below delcares a Sidecar resource in the prod-us1 namespace +// that configures the sidecar to allow egress traffic to public services +// in the prod-us1, prod-apis, and the istio-system namespaces. +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: Sidecar +// metadata: +// name: default +// namespace: prod-us1 +// spec: +// egress: +// - hosts: +// - "prod-us1/*" +// - "prod-apis/*" +// - "istio-system/*" +// ``` +// +message Sidecar { + // $hide_from_docs + // Criteria used to select the specific set of pods/VMs on which this + // sidecar configuration should be applied. If omitted, the sidecar + // configuration will be applied to all workloads in the current config + // namespace. + WorkloadSelector workload_selector = 1; + + // $hide_from_docs + // Ingress specifies the configuration of the sidecar for processing + // inbound traffic to the attached workload. If omitted, Istio will + // autoconfigure the sidecar based on the information about the workload + // obtained from the orchestration platform (e.g., exposed ports, services, + // etc.). + repeated IstioIngressListener ingress = 2; + + // Egress specifies the configuration of the sidecar for processing + // outbound traffic from the attached workload to other services in the + // mesh. If omitted, Istio will autoconfigure the sidecar to be able to + // reach every service in the mesh that is visible to this namespace. + repeated IstioEgressListener egress = 3; +} + +// $hide_from_docs +// IstioIngressListener specifies the properties of an inbound +// traffic listener on the sidecar proxy attached to a workload. +message IstioIngressListener { + // REQUIRED. The port associated with the listener. If using + // unix domain socket, use 0 as the port number, with a valid + // protocol. + Port port = 1; + + // The ip or the unix domain socket to which the listener should be bound + // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux + // abstract namespace). If omitted, Istio will autoconfigure the defaults + // based on imported services and the workload to which this + // configuration is applied to. + string bind = 2; + + // When the bind address is an IP, the captureMode option dictates + // how traffic to the listener is expected to be captured (or not). + CaptureMode capture_mode = 3; + + // The loopback IP endpoint or unix domain socket to which traffic should + // be forwarded to by default. This configuration can be used to redirect + // traffic arriving at the bind point on the sidecar to a port or unix + // domain socket where the application workload is listening for + // connections. Format should be 127.0.0.1:PORT or unix:///path/to/socket + string default_endpoint = 4; +} + +// IstioEgressListener specifies the properties of an outbound traffic +// listener on the sidecar proxy attached to a workload. +message IstioEgressListener { + // $hide_from_docs + // The port associated with the listener. If using unix domain socket, + // use 0 as the port number, with a valid protocol. The port if + // specified, will be used as the default destination port associated + // with the imported hosts. If the port is omitted, Istio will infer the + // listener ports based on the imported hosts. Note that when multiple + // egress listeners are specified, where one or more listeners have + // specific ports while others have no port, the hosts exposed on a + // listener port will be based on the listener with the most specific + // port. + Port port = 1; + + // $hide_from_docs + // The ip or the unix domain socket to which the listener should be bound + // to. Port MUST be specified if bind is not empty. Format: + // x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux abstract + // namespace). If omitted, Istio will autoconfigure the defaults based on + // imported services and the workload to which this configuration is + // applied to. + string bind = 2; + + // When the bind address is an IP, the captureMode option dictates + // how traffic to the listener is expected to be captured (or not). + CaptureMode capture_mode = 3; + + // One or more services/virtualServices exposed by the listener in + // namespace/dnsName format. Publicly scoped services and + // VirtualServices from remote namespaces corresponding to the specified + // hosts will be imported. The service in a namespace can be a service in + // the service registry (e.g., a kubernetes or cloud foundry service) or + // a service specified via ServiceEntry configuration. In addition, any + // publicly scoped DestinationRule associated with the imported services + // will also be imported. + // + // Set the namespace to * to import a particular service from any + // available namespace (e.g., "*/foo.example.com"). Set the dnsName field + // to * to import all services from the specified namespace (e.g., + // "prod/*"). The services should be specified using FQDN format. + // + // NOTE: Only exported services and configuration artifacts from a + // namespace can be imported. Private services/configuration will not be + // imported. Refer to the scope setting associated with VirtualService, + // DestinationRule, ServiceEntry, etc. for details. + repeated string hosts = 4; +} + +// ConfigScope defines the visibility of an Istio configuration artifact in +// a namespace when the namespace is imported. By default all +// configuration artifacts are public. Configurations with private scope +// will not be imported when the namespace containing the configuration is +// imported in a Sidecar. +enum ConfigScope { + // Config with this scope are visible to all workloads in the mesh + PUBLIC = 0; + + // Configs with this scope are visible to only workloads in the same + // namespace as the configuration resource. + PRIVATE = 1; +} + +// WorkloadSelector specifies the criteria used to determine if the Gateway +// or Sidecar resource can be applied to a proxy. The matching criteria +// includes the metadata associated with a proxy, workload info such as +// labels attached to the pod/VM, or any other info that the proxy provides +// to Istio during the initial handshake. If multiple conditions are +// specified, all conditions need to match in order for the workload to be +// selected. Currently, only label based selection mechanism is supported. +message WorkloadSelector { + // One or more labels that indicate a specific set of pods/VMs on which + // this sidecar configuration should be applied. The scope of label + // search is restricted to the configuration namespace in which the the + // resource is present. + map labels = 1; + + // $hide_from_docs + // other forms of identification supplied by the proxy + // when connecting to Pilot, such as X509 fields, tenant IDs, JWT, + // etc. This has nothing to do with the request level authN etc. +} + +// $hide_from_docs +// CaptureMode describes how traffic to a listener is expected to be +// captured. Applicable only when the listener is bound to an IP. +enum CaptureMode { + // The default capture mode defined by the environment + DEFAULT = 0; + + // Capture traffic using IPtables redirection + IPTABLES = 1; + + // No traffic capture. When used in egress listener, the application is + // expected to explicitly communicate with the listener port/unix + // domain socket. When used in ingress listener, care needs to be taken + // to ensure that the listener port is not in use by other processes on + // the host. + NONE = 2; +} + +// $hide_from_docs +// The example below delcares a Sidecar resource in the prod-us1 namespace +// that accepts inbound HTTP traffic on port 9080 and forwards +// it to the attached workload listening on a unix domain socket. In the +// egress direction, in addition to the istio-system namespace, the sidecar +// proxies only HTTP traffic bound for port 9080 for services in the +// prod-us1 namespace. +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: Sidecar +// metadata: +// name: default +// namespace: prod-us1 +// spec: +// ingress: +// - port: +// number: 9080 +// protocol: HTTP +// name: somename +// defaultEndpoint: unix:///var/run/someuds.sock +// egress: +// - hosts: +// - "istio-system/*" +// - port: +// number: 9080 +// protocol: HTTP +// name: egresshttp +// hosts: +// - "prod-us1/*" +// ``` +// diff --git a/networking/v1alpha3/virtual_service.pb.go b/networking/v1alpha3/virtual_service.pb.go index 6affd52148..0e2c10eb3c 100644 --- a/networking/v1alpha3/virtual_service.pb.go +++ b/networking/v1alpha3/virtual_service.pb.go @@ -9131,119 +9131,119 @@ func init() { } var fileDescriptorVirtualService = []byte{ - // 1818 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x73, 0xe3, 0x48, - 0x15, 0x1f, 0xd9, 0x96, 0xff, 0x3c, 0x3b, 0x99, 0xa4, 0xc9, 0xce, 0x6a, 0xcc, 0xd6, 0x90, 0xf5, - 0xb2, 0x4b, 0xa8, 0xdd, 0x75, 0x0a, 0x0f, 0x2c, 0xa9, 0x65, 0x76, 0x76, 0x93, 0xcc, 0xcc, 0x7a, - 0xa8, 0x19, 0x26, 0x25, 0x87, 0x3d, 0x70, 0x51, 0xc9, 0xd2, 0x8b, 0x2d, 0x46, 0x96, 0x44, 0xab, - 0x95, 0xc4, 0xc5, 0x91, 0x3f, 0x77, 0x28, 0xae, 0x14, 0x9f, 0x82, 0x0b, 0x17, 0xae, 0x9c, 0x28, - 0x3e, 0x01, 0x35, 0x35, 0x07, 0xae, 0x7c, 0x05, 0xaa, 0xff, 0x48, 0x56, 0xe2, 0xc4, 0xb2, 0xc3, - 0x40, 0xed, 0x29, 0xee, 0xee, 0xf7, 0x7b, 0xfd, 0xfa, 0x75, 0xbf, 0xf7, 0x7e, 0x7a, 0x81, 0xef, - 0x06, 0xc8, 0xce, 0x42, 0xfa, 0xd2, 0x0b, 0x46, 0xbb, 0xa7, 0xdf, 0xb3, 0xfd, 0x68, 0x6c, 0xdf, - 0xdf, 0x3d, 0xf5, 0x28, 0x4b, 0x6c, 0xdf, 0x8a, 0x91, 0x9e, 0x7a, 0x0e, 0x76, 0x23, 0x1a, 0xb2, - 0x90, 0xdc, 0xf5, 0x62, 0xe6, 0x85, 0xdd, 0x19, 0xa0, 0x9b, 0x02, 0xda, 0xf7, 0x46, 0x61, 0x38, - 0xf2, 0x71, 0x57, 0x08, 0x0e, 0x93, 0x93, 0x5d, 0x37, 0xa1, 0x36, 0xf3, 0xc2, 0x40, 0x42, 0xe7, - 0xd7, 0xcf, 0xa8, 0x1d, 0x45, 0x48, 0x63, 0xb5, 0xfe, 0xd1, 0x55, 0x56, 0xa8, 0xdd, 0x2d, 0x17, - 0x23, 0x0c, 0x5c, 0x0c, 0x9c, 0xa9, 0x94, 0xee, 0xfc, 0xb9, 0x04, 0xeb, 0x5f, 0x49, 0x13, 0x07, - 0x52, 0x86, 0x6c, 0x81, 0x3e, 0x0e, 0x63, 0x16, 0x1b, 0xda, 0x76, 0x79, 0xa7, 0x61, 0xca, 0x01, - 0x69, 0x43, 0x7d, 0x64, 0x33, 0x3c, 0xb3, 0xa7, 0xb1, 0x51, 0x12, 0x0b, 0xd9, 0x98, 0xec, 0x41, - 0x65, 0xcc, 0x58, 0x64, 0x94, 0xb7, 0xcb, 0x3b, 0xcd, 0xde, 0xb7, 0xbb, 0xd7, 0x1e, 0xae, 0xdb, - 0x3f, 0x3e, 0x3e, 0x32, 0xc3, 0x84, 0xa1, 0x29, 0x10, 0xe4, 0x07, 0x50, 0x66, 0x4e, 0x64, 0x54, - 0x04, 0xf0, 0xbd, 0x05, 0xc0, 0xe3, 0x43, 0x85, 0xe3, 0xf2, 0x02, 0xe6, 0xc7, 0x86, 0x5e, 0x0c, - 0x7b, 0x36, 0x48, 0x61, 0x7e, 0x4c, 0x9e, 0x42, 0xcb, 0x09, 0x83, 0x13, 0x6f, 0x64, 0xc5, 0x4e, - 0x18, 0xa1, 0x51, 0xdd, 0xd6, 0x76, 0xd6, 0x7b, 0x1f, 0x2c, 0xc0, 0x1f, 0x0a, 0xf1, 0x01, 0x97, - 0x36, 0x9b, 0xce, 0x6c, 0xd0, 0x39, 0x85, 0xe6, 0x23, 0x8c, 0x99, 0x17, 0x88, 0xab, 0x21, 0x04, - 0x2a, 0xdc, 0x4d, 0x86, 0xb6, 0xad, 0xed, 0x34, 0x4c, 0xf1, 0x9b, 0xdc, 0x81, 0x6a, 0x9c, 0x0c, - 0x63, 0x64, 0x46, 0x49, 0xcc, 0xaa, 0x11, 0xf9, 0x11, 0x54, 0xa2, 0x90, 0x32, 0xa3, 0xbc, 0xad, - 0xed, 0x34, 0x7b, 0xdf, 0x59, 0xb0, 0xfb, 0x51, 0x48, 0xd9, 0x00, 0x7d, 0x74, 0x58, 0x48, 0x4d, - 0x01, 0xea, 0xfc, 0x1b, 0xa0, 0x91, 0x39, 0x91, 0xec, 0x83, 0x3e, 0xb1, 0x99, 0x33, 0x16, 0x57, - 0xd5, 0xec, 0x7d, 0x58, 0xe0, 0xf9, 0xe7, 0x5c, 0xd6, 0xc4, 0x5f, 0x24, 0x18, 0x33, 0x53, 0x22, - 0xc9, 0x63, 0xd0, 0x29, 0xd7, 0x25, 0x2e, 0xb5, 0xd9, 0xdb, 0x5d, 0xe6, 0xf2, 0x72, 0x27, 0x37, - 0x25, 0x9a, 0x1c, 0x42, 0x9d, 0xa2, 0xeb, 0x51, 0x74, 0x96, 0x39, 0x98, 0xd0, 0xa4, 0xc4, 0xcd, - 0x0c, 0x48, 0xbe, 0x80, 0x1a, 0xc5, 0x33, 0xea, 0x31, 0x34, 0x2a, 0x42, 0xc7, 0x07, 0x85, 0x3a, - 0x84, 0xb4, 0x99, 0xc2, 0xc8, 0x87, 0xb0, 0x79, 0x86, 0xc3, 0x38, 0x74, 0x5e, 0x22, 0xb3, 0x92, - 0x68, 0x44, 0x6d, 0x17, 0x0d, 0x7d, 0x5b, 0xdb, 0xa9, 0x9b, 0x1b, 0xd9, 0xc2, 0x4f, 0xe5, 0x3c, - 0xb9, 0x0f, 0x35, 0xe6, 0x4d, 0x30, 0x4c, 0x98, 0x78, 0x09, 0xcd, 0xde, 0xdd, 0xae, 0x8c, 0xad, - 0x6e, 0x1a, 0x5b, 0xdd, 0x47, 0x2a, 0xf6, 0xcc, 0x54, 0x92, 0x3c, 0xe4, 0x36, 0x32, 0xea, 0x61, - 0x6c, 0xd4, 0x04, 0xa8, 0xf0, 0xb9, 0x23, 0xa3, 0x53, 0x33, 0x05, 0x91, 0x43, 0xd0, 0x4f, 0xec, - 0xc4, 0x67, 0x46, 0x5d, 0xa0, 0x3f, 0x2e, 0x40, 0x3f, 0xe1, 0xb2, 0x4f, 0x83, 0x9f, 0xa3, 0x23, - 0xbd, 0x2d, 0xb0, 0xe4, 0x21, 0x54, 0x27, 0x1e, 0xa5, 0x21, 0x35, 0x1a, 0x85, 0x7e, 0xca, 0x5f, - 0x96, 0x42, 0x91, 0x27, 0xd0, 0x74, 0x42, 0x1a, 0x5b, 0x51, 0xe8, 0x7b, 0xce, 0xd4, 0x00, 0xa1, - 0xe4, 0xfd, 0x85, 0x71, 0x40, 0xe3, 0x23, 0x21, 0x6c, 0x82, 0x93, 0xfd, 0x26, 0x43, 0x58, 0xe7, - 0xb9, 0x27, 0x70, 0xad, 0x31, 0xda, 0x2e, 0xd2, 0xd8, 0x68, 0x8a, 0x57, 0xf4, 0xc3, 0x65, 0x5e, - 0x51, 0x77, 0x5f, 0x40, 0xfb, 0x12, 0xf9, 0x38, 0x60, 0x74, 0x7a, 0x50, 0x32, 0x34, 0x73, 0xcd, - 0xce, 0xcf, 0x93, 0x4f, 0xe1, 0x6d, 0x8a, 0x93, 0xf0, 0x14, 0x2d, 0x8a, 0x71, 0x14, 0x06, 0x31, - 0x66, 0x9b, 0xb5, 0x78, 0x1e, 0x12, 0x98, 0xb7, 0xa4, 0x88, 0xa9, 0x24, 0x52, 0xec, 0x2f, 0xe1, - 0x6d, 0x65, 0xdf, 0x1c, 0x76, 0x4d, 0x18, 0xfa, 0xf9, 0x0a, 0x86, 0x5e, 0x52, 0x3e, 0x33, 0xf8, - 0x2d, 0xfb, 0xaa, 0x75, 0xb2, 0x07, 0x77, 0x32, 0xc3, 0x45, 0xc8, 0x65, 0x7b, 0xaf, 0x67, 0x76, - 0x6f, 0xa5, 0x76, 0x0b, 0x81, 0x14, 0x79, 0x0e, 0x77, 0x32, 0xb3, 0x2f, 0x22, 0x6f, 0x0b, 0xab, - 0x1f, 0xae, 0x64, 0x75, 0x5e, 0xf5, 0xcc, 0xe8, 0x2d, 0xfb, 0x8a, 0x65, 0xf2, 0x00, 0x6a, 0xe9, - 0x56, 0x1b, 0xe2, 0x51, 0x74, 0x16, 0x6d, 0x25, 0x25, 0xcd, 0x14, 0xd2, 0xfe, 0x02, 0xc8, 0xfc, - 0x9d, 0x92, 0x0d, 0x28, 0xbf, 0xc4, 0xa9, 0x4a, 0x8d, 0xfc, 0x27, 0xaf, 0x30, 0xa7, 0xb6, 0x9f, - 0xa0, 0x4a, 0x8c, 0x72, 0xf0, 0x69, 0x69, 0x4f, 0x6b, 0xf7, 0xa1, 0x7d, 0xbd, 0xb3, 0x57, 0xd2, - 0xf4, 0x25, 0xdc, 0xbd, 0xd6, 0x01, 0xab, 0x28, 0xea, 0xfc, 0xab, 0x0c, 0xb5, 0xd4, 0x3d, 0xcf, - 0x79, 0xf0, 0x0b, 0x75, 0x02, 0xdb, 0xec, 0xdd, 0x2f, 0x76, 0x8f, 0xfa, 0xfb, 0x22, 0x42, 0x99, - 0x4a, 0x62, 0x33, 0xd5, 0x41, 0x5e, 0xf0, 0xa4, 0x29, 0xcf, 0x29, 0xf6, 0xbd, 0xa1, 0xbe, 0x4c, - 0x49, 0xfb, 0x2f, 0x25, 0xd8, 0xb8, 0xbc, 0x4c, 0x7e, 0x02, 0x65, 0x5e, 0x84, 0x64, 0x89, 0x78, - 0x70, 0x83, 0x0d, 0xba, 0x03, 0x64, 0xc2, 0x6f, 0x26, 0x57, 0xc4, 0xf5, 0xd9, 0xae, 0xab, 0xea, - 0xc5, 0x8d, 0xf4, 0xed, 0xbb, 0xae, 0xd2, 0x67, 0xbb, 0x2e, 0xaf, 0x93, 0x32, 0x0a, 0x04, 0x7f, - 0x68, 0x98, 0x6a, 0xd4, 0xfe, 0x04, 0xea, 0xe9, 0xc6, 0x2b, 0xdd, 0xfc, 0x27, 0x50, 0x4f, 0x37, - 0x58, 0xe9, 0xa2, 0x7f, 0xaf, 0x41, 0x3d, 0xe5, 0x0b, 0x3c, 0x4d, 0xe7, 0x2b, 0xeb, 0xc7, 0x8b, - 0x39, 0x86, 0x28, 0xac, 0xfb, 0x8c, 0x51, 0x6f, 0x98, 0x30, 0x8c, 0xd3, 0xda, 0xba, 0x7f, 0xb1, - 0xb6, 0x2e, 0x2a, 0xcf, 0xd7, 0xd4, 0xd5, 0xce, 0xef, 0xb8, 0x51, 0x8a, 0xfb, 0x90, 0x83, 0x8b, - 0x46, 0x7d, 0xb4, 0x40, 0xdf, 0xb3, 0xef, 0xff, 0xef, 0x6c, 0xfa, 0x93, 0x0e, 0x1b, 0x97, 0xe9, - 0x04, 0xd9, 0x83, 0x72, 0x42, 0x3d, 0x15, 0x16, 0x8b, 0xea, 0xd1, 0x80, 0x51, 0x2f, 0x18, 0x49, - 0x2c, 0x87, 0xf0, 0x62, 0x16, 0x3b, 0x63, 0x9c, 0xa4, 0x31, 0xb0, 0x2c, 0x58, 0xa1, 0x44, 0x31, - 0x44, 0x36, 0x0e, 0x5d, 0x45, 0x3c, 0x96, 0xc6, 0x4b, 0x14, 0x79, 0x04, 0x0d, 0x3b, 0x61, 0xe3, - 0x90, 0x7a, 0x6c, 0xba, 0x04, 0xef, 0xc8, 0xab, 0x98, 0x01, 0x89, 0x39, 0xcb, 0x9c, 0x92, 0x96, - 0xee, 0xad, 0x40, 0xc6, 0xba, 0xf9, 0xec, 0x94, 0xe5, 0x53, 0xce, 0x2a, 0x05, 0x53, 0xe4, 0xec, - 0x64, 0x4d, 0x12, 0x40, 0x32, 0x84, 0xb5, 0x38, 0x4c, 0xa8, 0x83, 0x96, 0x6f, 0x0f, 0xd1, 0xe7, - 0x2c, 0x84, 0xef, 0xf6, 0xd9, 0x2a, 0xbb, 0x0d, 0x84, 0x82, 0x67, 0x02, 0x2f, 0xb7, 0x6c, 0xc5, - 0xb9, 0xa9, 0x0b, 0x5c, 0xbf, 0x7e, 0x91, 0xeb, 0xb7, 0x87, 0xd0, 0x2a, 0x48, 0xa5, 0x0f, 0xf2, - 0x11, 0xb6, 0xbc, 0x2f, 0x73, 0x11, 0xfc, 0x39, 0x6c, 0xce, 0x99, 0xb8, 0x52, 0x28, 0xff, 0x5d, - 0x87, 0xad, 0xab, 0xd8, 0x2a, 0xe9, 0x43, 0xd3, 0x9d, 0x0d, 0x97, 0x78, 0xad, 0xf9, 0xe7, 0x9f, - 0x87, 0xf2, 0xac, 0x75, 0x86, 0xde, 0x68, 0x2c, 0xd9, 0xbd, 0x6e, 0xaa, 0xd1, 0x22, 0xba, 0x52, - 0x2e, 0xa2, 0x2b, 0xbf, 0xd5, 0xae, 0xe7, 0x2b, 0xf2, 0x13, 0xe9, 0xc7, 0x2b, 0xd2, 0xf3, 0x37, - 0x4e, 0x5d, 0xf4, 0x02, 0xea, 0xf2, 0x2b, 0xed, 0x5a, 0xee, 0x52, 0x15, 0x27, 0x78, 0x7a, 0xd3, - 0x13, 0xdc, 0x90, 0xc6, 0xd4, 0x56, 0xa7, 0x31, 0x5f, 0x43, 0x12, 0xc2, 0x60, 0xe3, 0xff, 0xff, - 0x96, 0x3b, 0x7f, 0x2d, 0xc1, 0xe6, 0x5c, 0x21, 0x21, 0xbb, 0xf0, 0x8d, 0x1c, 0xd8, 0x8a, 0x93, - 0x61, 0x80, 0x59, 0xb7, 0x80, 0xe4, 0x96, 0x06, 0x72, 0x25, 0x4b, 0x63, 0xa5, 0x5c, 0x1a, 0x7b, - 0x2f, 0x4b, 0x63, 0x12, 0x2f, 0x72, 0x77, 0x23, 0xcd, 0x43, 0x12, 0x49, 0x9c, 0xcb, 0xb9, 0xae, - 0x52, 0x48, 0x7f, 0xe7, 0xcc, 0x5d, 0x29, 0xd9, 0xe9, 0x97, 0x92, 0xdd, 0x7f, 0x9d, 0x88, 0xfe, - 0x59, 0x02, 0x32, 0xcf, 0x0f, 0xc8, 0x37, 0xa1, 0x11, 0x07, 0x9e, 0x95, 0x6f, 0xb3, 0xd4, 0xe3, - 0xc0, 0xeb, 0x8b, 0x4e, 0xcb, 0x35, 0xfe, 0x2d, 0x15, 0xfa, 0xb7, 0xbc, 0xc8, 0xbf, 0x95, 0x2b, - 0xfc, 0xeb, 0x5e, 0xf6, 0xaf, 0x5e, 0xf8, 0x51, 0x34, 0x7f, 0x98, 0x95, 0x1c, 0x5c, 0x7d, 0xd3, - 0x0e, 0x7e, 0x08, 0xad, 0x7c, 0x33, 0x81, 0x63, 0x53, 0x1a, 0xd2, 0x90, 0xf4, 0xe2, 0x9d, 0x7c, - 0x79, 0x97, 0xf8, 0xd9, 0x44, 0xe7, 0x33, 0x68, 0xe6, 0x1a, 0x09, 0x2b, 0xc3, 0x11, 0x9a, 0xb9, - 0x1a, 0x46, 0xee, 0x80, 0x8e, 0xe7, 0xb6, 0xa3, 0xfa, 0x40, 0xfd, 0x5b, 0xa6, 0x1c, 0x12, 0x03, - 0xaa, 0x11, 0xc5, 0x13, 0xef, 0x5c, 0x6a, 0xe8, 0xdf, 0x32, 0xd5, 0x98, 0x23, 0x28, 0x8e, 0xf0, - 0x5c, 0xbe, 0x7f, 0x8e, 0x10, 0xc3, 0x83, 0x16, 0x80, 0xe0, 0x6b, 0x16, 0x9b, 0x46, 0xd8, 0xf9, - 0x8d, 0xa6, 0xba, 0x3e, 0xc8, 0xfd, 0xd3, 0x86, 0xba, 0xcd, 0x18, 0x4e, 0x22, 0xf1, 0x78, 0x78, - 0xc0, 0x66, 0x63, 0xb2, 0x0f, 0xb7, 0x23, 0xa4, 0x16, 0xa3, 0x53, 0x2b, 0xed, 0x6d, 0x94, 0x8a, - 0x7a, 0x1b, 0x6b, 0x11, 0xd2, 0x63, 0x3a, 0x3d, 0x56, 0x1d, 0x8e, 0xbb, 0xfc, 0xab, 0x84, 0x2b, - 0x08, 0x03, 0x15, 0x95, 0xa2, 0x79, 0x31, 0x7d, 0x11, 0x74, 0xfe, 0x58, 0x02, 0x98, 0xb5, 0x02, - 0xc8, 0xbb, 0xd0, 0xb2, 0x7d, 0x3f, 0x3c, 0xb3, 0x42, 0xea, 0x8d, 0xbc, 0x40, 0xbd, 0xe4, 0xa6, - 0x98, 0x7b, 0x21, 0xa6, 0xf8, 0x3b, 0x94, 0x22, 0x92, 0x6c, 0xa5, 0xcf, 0x58, 0xe2, 0x9e, 0xcb, - 0xb9, 0x99, 0xd0, 0x85, 0x4a, 0xa9, 0x84, 0xd2, 0x9c, 0xfe, 0x3e, 0xac, 0xe3, 0x79, 0x14, 0x5e, - 0x2a, 0x89, 0x0d, 0x73, 0x4d, 0xce, 0xa6, 0x62, 0x3d, 0xa8, 0x4d, 0xec, 0x73, 0xcb, 0x1e, 0xc9, - 0xbe, 0xcf, 0xc2, 0x83, 0x57, 0x27, 0xf6, 0xf9, 0xfe, 0x08, 0xc9, 0x97, 0xb0, 0x29, 0xf7, 0x77, - 0x28, 0xba, 0x18, 0x30, 0xcf, 0xf6, 0x63, 0xd5, 0x12, 0x6a, 0xcf, 0xa1, 0x0f, 0xc2, 0xd0, 0xff, - 0x8a, 0xbf, 0x3f, 0x73, 0x43, 0x80, 0x0e, 0x67, 0x98, 0xce, 0x1f, 0x74, 0x20, 0xf3, 0x5d, 0x1b, - 0xf2, 0x14, 0x74, 0x17, 0x7d, 0x7b, 0xba, 0xcc, 0x47, 0xe3, 0x1c, 0xba, 0xfb, 0x88, 0x43, 0x4d, - 0xa9, 0x81, 0xab, 0xb2, 0x87, 0x69, 0x32, 0x5d, 0x59, 0xd5, 0x3e, 0x87, 0x9a, 0x52, 0x43, 0xfb, - 0xd7, 0x25, 0xd0, 0x85, 0x6e, 0xf2, 0x0e, 0xd4, 0x22, 0xa4, 0x0e, 0x06, 0xf2, 0xe1, 0xea, 0xa2, - 0xb2, 0xa6, 0x53, 0xe4, 0x01, 0x34, 0x4f, 0xbc, 0x73, 0x74, 0x2d, 0x79, 0x86, 0xa2, 0xe7, 0xd4, - 0xbf, 0x65, 0x82, 0x90, 0x97, 0xba, 0xfb, 0xb0, 0xc9, 0x2f, 0x28, 0x90, 0x2e, 0x52, 0x3a, 0xca, - 0xc5, 0x3a, 0x36, 0x72, 0x28, 0xa9, 0xe9, 0x00, 0x40, 0x99, 0x34, 0xbb, 0xdc, 0x45, 0x75, 0xfd, - 0x48, 0x0a, 0x9b, 0x39, 0xd4, 0xc1, 0x26, 0xdc, 0x1e, 0x33, 0x16, 0x49, 0x33, 0x44, 0x6c, 0xb5, - 0x5f, 0x69, 0xa0, 0x0b, 0xbf, 0x14, 0xb8, 0xe1, 0x5d, 0x68, 0x0a, 0x68, 0xcc, 0x6c, 0x96, 0xc4, - 0xb2, 0x52, 0xf2, 0xb3, 0xf2, 0xc9, 0x81, 0x98, 0xe3, 0x22, 0x23, 0x1a, 0x39, 0xa9, 0x48, 0x1a, - 0xd2, 0xc0, 0x27, 0x67, 0x22, 0x1c, 0xd0, 0xb3, 0x50, 0xb4, 0xef, 0x2a, 0xa9, 0x88, 0x98, 0x7c, - 0x2c, 0x9a, 0x73, 0x6f, 0xe2, 0x9c, 0x2d, 0x00, 0xb1, 0x81, 0x4c, 0x1f, 0x4f, 0xa0, 0x95, 0x6f, - 0x25, 0xf3, 0x74, 0x14, 0x24, 0x93, 0x21, 0x52, 0x71, 0xce, 0x35, 0x9e, 0x8e, 0xe4, 0x98, 0x6c, - 0x41, 0x25, 0xb0, 0xd5, 0x97, 0x18, 0xb7, 0x4b, 0x8c, 0x0e, 0xaa, 0xb2, 0xc0, 0x74, 0xbe, 0x05, - 0x35, 0xb5, 0xd9, 0x2c, 0x23, 0x73, 0x0d, 0x9a, 0xca, 0xc8, 0x07, 0xdd, 0xbf, 0xbd, 0xbe, 0xa7, - 0xfd, 0xe3, 0xf5, 0x3d, 0xed, 0xd5, 0xeb, 0x7b, 0xda, 0xcf, 0xb6, 0xa5, 0xcd, 0x5e, 0xb8, 0x6b, - 0x47, 0xde, 0xee, 0x15, 0xff, 0x96, 0x18, 0x56, 0xc5, 0xcd, 0xdf, 0xff, 0x4f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x0d, 0x63, 0x49, 0x86, 0x3a, 0x19, 0x00, 0x00, + // 1812 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x73, 0x1b, 0x49, + 0x15, 0xcf, 0x48, 0x1a, 0xfd, 0x79, 0x92, 0x1d, 0xbb, 0xf1, 0x66, 0x27, 0x62, 0x2b, 0x38, 0x5a, + 0x76, 0x31, 0xb5, 0xac, 0x5c, 0x28, 0xb0, 0xb8, 0x96, 0x6c, 0x76, 0x6d, 0x27, 0x59, 0x85, 0x4a, + 0x88, 0x6b, 0x64, 0xf6, 0xc0, 0x65, 0xaa, 0x35, 0xd3, 0x96, 0x86, 0x8c, 0x66, 0x86, 0xee, 0x1e, + 0xdb, 0x2a, 0x8e, 0xfc, 0xb9, 0x43, 0x71, 0xa5, 0xf8, 0x14, 0x5c, 0xb8, 0x70, 0xe5, 0x44, 0xf1, + 0x09, 0xa8, 0x54, 0x0e, 0x5c, 0xf9, 0x0a, 0x54, 0xff, 0x99, 0xd1, 0xd8, 0xb2, 0x35, 0x92, 0x09, + 0x14, 0x27, 0xab, 0xbb, 0xdf, 0xef, 0xf5, 0xeb, 0xd7, 0xfd, 0xde, 0xfb, 0xcd, 0x33, 0x7c, 0x3b, + 0x24, 0xfc, 0x2c, 0xa2, 0xaf, 0xfc, 0x70, 0xb4, 0x7b, 0xfa, 0x5d, 0x1c, 0xc4, 0x63, 0xfc, 0x60, + 0xf7, 0xd4, 0xa7, 0x3c, 0xc1, 0x81, 0xc3, 0x08, 0x3d, 0xf5, 0x5d, 0xd2, 0x8d, 0x69, 0xc4, 0x23, + 0x74, 0xd7, 0x67, 0xdc, 0x8f, 0xba, 0x33, 0x40, 0x37, 0x05, 0xb4, 0xef, 0x8d, 0xa2, 0x68, 0x14, + 0x90, 0x5d, 0x29, 0x38, 0x4c, 0x4e, 0x76, 0xbd, 0x84, 0x62, 0xee, 0x47, 0xa1, 0x82, 0xce, 0xaf, + 0x9f, 0x51, 0x1c, 0xc7, 0x84, 0x32, 0xbd, 0x7e, 0xff, 0x2a, 0x2b, 0x98, 0xef, 0x11, 0x17, 0x53, + 0x25, 0xd2, 0xf9, 0x53, 0x09, 0xd6, 0xbf, 0x52, 0x76, 0x0d, 0x94, 0x59, 0x68, 0x0b, 0xcc, 0x71, + 0xc4, 0x38, 0xb3, 0x8c, 0xed, 0xf2, 0x4e, 0xc3, 0x56, 0x03, 0xd4, 0x86, 0xfa, 0x08, 0x73, 0x72, + 0x86, 0xa7, 0xcc, 0x2a, 0xc9, 0x85, 0x6c, 0x8c, 0xf6, 0xa0, 0x32, 0xe6, 0x3c, 0xb6, 0xca, 0xdb, + 0xe5, 0x9d, 0x66, 0xef, 0x9b, 0xdd, 0x6b, 0x4f, 0xd4, 0xed, 0x1f, 0x1f, 0x1f, 0xd9, 0x51, 0xc2, + 0x89, 0x2d, 0x11, 0xe8, 0xfb, 0x50, 0xe6, 0x6e, 0x6c, 0x55, 0x24, 0xf0, 0xfd, 0x05, 0xc0, 0xe3, + 0x43, 0x8d, 0x13, 0xf2, 0x12, 0x16, 0x30, 0xcb, 0x2c, 0x86, 0x3d, 0x1f, 0xa4, 0xb0, 0x80, 0xa1, + 0x67, 0xd0, 0x72, 0xa3, 0xf0, 0xc4, 0x1f, 0x39, 0xcc, 0x8d, 0x62, 0x62, 0x55, 0xb7, 0x8d, 0x9d, + 0xf5, 0xde, 0x87, 0x0b, 0xf0, 0x87, 0x52, 0x7c, 0x20, 0xa4, 0xed, 0xa6, 0x3b, 0x1b, 0x74, 0x4e, + 0xa1, 0xf9, 0x98, 0x30, 0xee, 0x87, 0xf2, 0x3e, 0x10, 0x82, 0x8a, 0x70, 0x93, 0x65, 0x6c, 0x1b, + 0x3b, 0x0d, 0x5b, 0xfe, 0x46, 0x77, 0xa0, 0xca, 0x92, 0x21, 0x23, 0xdc, 0x2a, 0xc9, 0x59, 0x3d, + 0x42, 0x3f, 0x84, 0x4a, 0x1c, 0x51, 0x6e, 0x95, 0xb7, 0x8d, 0x9d, 0x66, 0xef, 0x5b, 0x0b, 0x76, + 0x3f, 0x8a, 0x28, 0x1f, 0x90, 0x80, 0xb8, 0x3c, 0xa2, 0xb6, 0x04, 0x75, 0xfe, 0x05, 0xd0, 0xc8, + 0x9c, 0x88, 0xf6, 0xc1, 0x9c, 0x60, 0xee, 0x8e, 0xe5, 0x55, 0x35, 0x7b, 0x1f, 0x15, 0x78, 0xfe, + 0x85, 0x90, 0xb5, 0xc9, 0xcf, 0x13, 0xc2, 0xb8, 0xad, 0x90, 0xe8, 0x09, 0x98, 0x54, 0xe8, 0x92, + 0x97, 0xda, 0xec, 0xed, 0x2e, 0x73, 0x79, 0xb9, 0x93, 0xdb, 0x0a, 0x8d, 0x0e, 0xa1, 0x4e, 0x89, + 0xe7, 0x53, 0xe2, 0x2e, 0x73, 0x30, 0xa9, 0x49, 0x8b, 0xdb, 0x19, 0x10, 0x7d, 0x01, 0x35, 0x4a, + 0xce, 0xa8, 0xcf, 0x89, 0x55, 0x91, 0x3a, 0x3e, 0x2c, 0xd4, 0x21, 0xa5, 0xed, 0x14, 0x86, 0x3e, + 0x82, 0xcd, 0x33, 0x32, 0x64, 0x91, 0xfb, 0x8a, 0x70, 0x27, 0x89, 0x47, 0x14, 0x7b, 0xc4, 0x32, + 0xb7, 0x8d, 0x9d, 0xba, 0xbd, 0x91, 0x2d, 0xfc, 0x44, 0xcd, 0xa3, 0x07, 0x50, 0xe3, 0xfe, 0x84, + 0x44, 0x09, 0x97, 0x2f, 0xa1, 0xd9, 0xbb, 0xdb, 0x55, 0x01, 0xd5, 0x4d, 0x03, 0xaa, 0xfb, 0x58, + 0x07, 0x9c, 0x9d, 0x4a, 0xa2, 0x47, 0xc2, 0x46, 0x4e, 0x7d, 0xc2, 0xac, 0x9a, 0x04, 0x15, 0x3e, + 0x77, 0xc2, 0xe9, 0xd4, 0x4e, 0x41, 0xe8, 0x10, 0xcc, 0x13, 0x9c, 0x04, 0xdc, 0xaa, 0x4b, 0xf4, + 0xc7, 0x05, 0xe8, 0xa7, 0x42, 0xf6, 0x59, 0xf8, 0x33, 0xe2, 0x2a, 0x6f, 0x4b, 0x2c, 0x7a, 0x04, + 0xd5, 0x89, 0x4f, 0x69, 0x44, 0xad, 0x46, 0xa1, 0x9f, 0xf2, 0x97, 0xa5, 0x51, 0xe8, 0x29, 0x34, + 0xdd, 0x88, 0x32, 0x27, 0x8e, 0x02, 0xdf, 0x9d, 0x5a, 0x20, 0x95, 0x7c, 0xb0, 0x30, 0x0e, 0x28, + 0x3b, 0x92, 0xc2, 0x36, 0xb8, 0xd9, 0x6f, 0x34, 0x84, 0x75, 0x91, 0x70, 0x42, 0xcf, 0x19, 0x13, + 0xec, 0x11, 0xca, 0xac, 0xa6, 0x7c, 0x45, 0x3f, 0x58, 0xe6, 0x15, 0x75, 0xf7, 0x25, 0xb4, 0xaf, + 0x90, 0x4f, 0x42, 0x4e, 0xa7, 0x07, 0x25, 0xcb, 0xb0, 0xd7, 0x70, 0x7e, 0x1e, 0x7d, 0x0a, 0xef, + 0x52, 0x32, 0x89, 0x4e, 0x89, 0x43, 0x09, 0x8b, 0xa3, 0x90, 0x91, 0x6c, 0xb3, 0x96, 0xc8, 0x43, + 0x12, 0xf3, 0x8e, 0x12, 0xb1, 0xb5, 0x44, 0x8a, 0xfd, 0x05, 0xbc, 0xab, 0xed, 0x9b, 0xc3, 0xae, + 0x49, 0x43, 0x3f, 0x5f, 0xc1, 0xd0, 0x4b, 0xca, 0x67, 0x06, 0xbf, 0x83, 0xaf, 0x5a, 0x47, 0x7b, + 0x70, 0x27, 0x33, 0x5c, 0x86, 0x5c, 0xb6, 0xf7, 0x7a, 0x66, 0xf7, 0x56, 0x6a, 0xb7, 0x14, 0x48, + 0x91, 0xe7, 0x70, 0x27, 0x33, 0xfb, 0x22, 0xf2, 0xb6, 0xb4, 0xfa, 0xd1, 0x4a, 0x56, 0xe7, 0x55, + 0xcf, 0x8c, 0xde, 0xc2, 0x57, 0x2c, 0xa3, 0x87, 0x50, 0x4b, 0xb7, 0xda, 0x90, 0x8f, 0xa2, 0xb3, + 0x68, 0x2b, 0x25, 0x69, 0xa7, 0x90, 0xf6, 0x17, 0x80, 0xe6, 0xef, 0x14, 0x6d, 0x40, 0xf9, 0x15, + 0x99, 0xea, 0xd4, 0x28, 0x7e, 0x8a, 0x0a, 0x73, 0x8a, 0x83, 0x84, 0xe8, 0xc4, 0xa8, 0x06, 0x9f, + 0x96, 0xf6, 0x8c, 0x76, 0x1f, 0xda, 0xd7, 0x3b, 0x7b, 0x25, 0x4d, 0x5f, 0xc2, 0xdd, 0x6b, 0x1d, + 0xb0, 0x8a, 0xa2, 0xce, 0x3f, 0xcb, 0x50, 0x4b, 0xdd, 0xf3, 0x42, 0x04, 0xbf, 0x54, 0x27, 0xb1, + 0xcd, 0xde, 0x83, 0x62, 0xf7, 0xe8, 0xbf, 0x2f, 0x63, 0xa2, 0x52, 0x09, 0xb3, 0x53, 0x1d, 0xe8, + 0xa5, 0x48, 0x9a, 0xea, 0x9c, 0x72, 0xdf, 0x1b, 0xea, 0xcb, 0x94, 0xb4, 0xff, 0x5c, 0x82, 0x8d, + 0xcb, 0xcb, 0xe8, 0xc7, 0x50, 0x16, 0x45, 0x48, 0x95, 0x88, 0x87, 0x37, 0xd8, 0xa0, 0x3b, 0x20, + 0x5c, 0xfa, 0xcd, 0x16, 0x8a, 0x84, 0x3e, 0xec, 0x79, 0xba, 0x5e, 0xdc, 0x48, 0xdf, 0xbe, 0xe7, + 0x69, 0x7d, 0xd8, 0xf3, 0x44, 0x9d, 0x54, 0x51, 0x20, 0xf9, 0x43, 0xc3, 0xd6, 0xa3, 0xf6, 0x27, + 0x50, 0x4f, 0x37, 0x5e, 0xe9, 0xe6, 0x3f, 0x81, 0x7a, 0xba, 0xc1, 0x4a, 0x17, 0xfd, 0x3b, 0x03, + 0xea, 0x29, 0x5f, 0x10, 0x69, 0x3a, 0x5f, 0x59, 0x3f, 0x5e, 0xcc, 0x31, 0x64, 0x61, 0xdd, 0xe7, + 0x9c, 0xfa, 0xc3, 0x84, 0x13, 0x96, 0xd6, 0xd6, 0xfd, 0x8b, 0xb5, 0x75, 0x51, 0x79, 0xbe, 0xa6, + 0xae, 0x76, 0x7e, 0x2b, 0x8c, 0xd2, 0xdc, 0x07, 0x1d, 0x5c, 0x34, 0xea, 0x3b, 0x0b, 0xf4, 0x3d, + 0xff, 0xde, 0x7f, 0xcf, 0xa6, 0x3f, 0x9a, 0xb0, 0x71, 0x99, 0x4e, 0xa0, 0x3d, 0x28, 0x27, 0xd4, + 0xd7, 0x61, 0xb1, 0xa8, 0x1e, 0x0d, 0x38, 0xf5, 0xc3, 0x91, 0xc2, 0x0a, 0x88, 0x28, 0x66, 0xcc, + 0x1d, 0x93, 0x49, 0x1a, 0x03, 0xcb, 0x82, 0x35, 0x4a, 0x16, 0x43, 0xc2, 0xc7, 0x91, 0xa7, 0x89, + 0xc7, 0xd2, 0x78, 0x85, 0x42, 0x8f, 0xa1, 0x81, 0x13, 0x3e, 0x8e, 0xa8, 0xcf, 0xa7, 0x4b, 0xf0, + 0x8e, 0xbc, 0x8a, 0x19, 0x10, 0xd9, 0xb3, 0xcc, 0xa9, 0x68, 0xe9, 0xde, 0x0a, 0x64, 0xac, 0x9b, + 0xcf, 0x4e, 0x59, 0x3e, 0x15, 0xac, 0x52, 0x32, 0x45, 0xc1, 0x4e, 0xd6, 0x14, 0x01, 0x44, 0x43, + 0x58, 0x63, 0x51, 0x42, 0x5d, 0xe2, 0x04, 0x78, 0x48, 0x02, 0xc1, 0x42, 0xc4, 0x6e, 0x9f, 0xad, + 0xb2, 0xdb, 0x40, 0x2a, 0x78, 0x2e, 0xf1, 0x6a, 0xcb, 0x16, 0xcb, 0x4d, 0x5d, 0xe0, 0xfa, 0xf5, + 0x8b, 0x5c, 0xbf, 0x3d, 0x84, 0x56, 0x41, 0x2a, 0x7d, 0x98, 0x8f, 0xb0, 0xe5, 0x7d, 0x99, 0x8b, + 0xe0, 0xcf, 0x61, 0x73, 0xce, 0xc4, 0x95, 0x42, 0xf9, 0x6f, 0x26, 0x6c, 0x5d, 0xc5, 0x56, 0x51, + 0x1f, 0x9a, 0xde, 0x6c, 0xb8, 0xc4, 0x6b, 0xcd, 0x3f, 0xff, 0x3c, 0x54, 0x64, 0xad, 0x33, 0xe2, + 0x8f, 0xc6, 0x8a, 0xdd, 0x9b, 0xb6, 0x1e, 0x2d, 0xa2, 0x2b, 0xe5, 0x22, 0xba, 0xf2, 0x1b, 0xe3, + 0x7a, 0xbe, 0xa2, 0x3e, 0x91, 0x7e, 0xb4, 0x22, 0x3d, 0x7f, 0xeb, 0xd4, 0xc5, 0x2c, 0xa0, 0x2e, + 0xbf, 0x34, 0xae, 0xe5, 0x2e, 0x55, 0x79, 0x82, 0x67, 0x37, 0x3d, 0xc1, 0x0d, 0x69, 0x4c, 0x6d, + 0x75, 0x1a, 0xf3, 0x7f, 0x48, 0x42, 0x38, 0x6c, 0xfc, 0xef, 0xdf, 0x72, 0xe7, 0x2f, 0x25, 0xd8, + 0x9c, 0x2b, 0x24, 0x68, 0x17, 0xbe, 0x96, 0x03, 0x3b, 0x2c, 0x19, 0x86, 0x24, 0xeb, 0x16, 0xa0, + 0xdc, 0xd2, 0x40, 0xad, 0x64, 0x69, 0xac, 0x94, 0x4b, 0x63, 0xef, 0x67, 0x69, 0x4c, 0xe1, 0x65, + 0xee, 0x6e, 0xa4, 0x79, 0x48, 0x21, 0x91, 0x7b, 0x39, 0xd7, 0x55, 0x0a, 0xe9, 0xef, 0x9c, 0xb9, + 0x2b, 0x25, 0x3b, 0xf3, 0x52, 0xb2, 0xfb, 0x8f, 0x13, 0xd1, 0x3f, 0x4a, 0x80, 0xe6, 0xf9, 0x01, + 0xfa, 0x3a, 0x34, 0x58, 0xe8, 0x3b, 0xf9, 0x36, 0x4b, 0x9d, 0x85, 0x7e, 0x5f, 0x76, 0x5a, 0xae, + 0xf1, 0x6f, 0xa9, 0xd0, 0xbf, 0xe5, 0x45, 0xfe, 0xad, 0x5c, 0xe1, 0x5f, 0xef, 0xb2, 0x7f, 0xcd, + 0xc2, 0x8f, 0xa2, 0xf9, 0xc3, 0xac, 0xe4, 0xe0, 0xea, 0xdb, 0x76, 0xf0, 0x23, 0x68, 0xe5, 0x9b, + 0x09, 0x02, 0x9b, 0xd2, 0x90, 0x86, 0xa2, 0x17, 0xef, 0xe5, 0xcb, 0xbb, 0xc2, 0xcf, 0x26, 0x3a, + 0x9f, 0x41, 0x33, 0xd7, 0x48, 0x58, 0x19, 0x4e, 0xa0, 0x99, 0xab, 0x61, 0xe8, 0x0e, 0x98, 0xe4, + 0x1c, 0xbb, 0xba, 0x0f, 0xd4, 0xbf, 0x65, 0xab, 0x21, 0xb2, 0xa0, 0x1a, 0x53, 0x72, 0xe2, 0x9f, + 0x2b, 0x0d, 0xfd, 0x5b, 0xb6, 0x1e, 0x0b, 0x04, 0x25, 0x23, 0x72, 0xae, 0xde, 0xbf, 0x40, 0xc8, + 0xe1, 0x41, 0x0b, 0x40, 0xf2, 0x35, 0x87, 0x4f, 0x63, 0xd2, 0xf9, 0xb5, 0xa1, 0xbb, 0x3e, 0x44, + 0xf8, 0xa7, 0x0d, 0x75, 0xcc, 0x39, 0x99, 0xc4, 0xf2, 0xf1, 0x88, 0x80, 0xcd, 0xc6, 0x68, 0x1f, + 0x6e, 0xc7, 0x84, 0x3a, 0x9c, 0x4e, 0x9d, 0xb4, 0xb7, 0x51, 0x2a, 0xea, 0x6d, 0xac, 0xc5, 0x84, + 0x1e, 0xd3, 0xe9, 0xb1, 0xee, 0x70, 0xdc, 0x15, 0x5f, 0x25, 0x42, 0x41, 0x14, 0xea, 0xa8, 0x94, + 0xcd, 0x8b, 0xe9, 0xcb, 0xb0, 0xf3, 0x87, 0x12, 0xc0, 0xac, 0x15, 0x80, 0xee, 0x43, 0x0b, 0x07, + 0x41, 0x74, 0xe6, 0x44, 0xd4, 0x1f, 0xf9, 0xa1, 0x7e, 0xc9, 0x4d, 0x39, 0xf7, 0x52, 0x4e, 0x89, + 0x77, 0xa8, 0x44, 0x14, 0xd9, 0x4a, 0x9f, 0xb1, 0xc2, 0xbd, 0x50, 0x73, 0x33, 0xa1, 0x0b, 0x95, + 0x52, 0x0b, 0xa5, 0x39, 0xfd, 0x03, 0x58, 0x27, 0xe7, 0x71, 0x74, 0xa9, 0x24, 0x36, 0xec, 0x35, + 0x35, 0x9b, 0x8a, 0xf5, 0xa0, 0x36, 0xc1, 0xe7, 0x0e, 0x1e, 0xa9, 0xbe, 0xcf, 0xc2, 0x83, 0x57, + 0x27, 0xf8, 0x7c, 0x7f, 0x44, 0xd0, 0x97, 0xb0, 0xa9, 0xf6, 0x77, 0x29, 0xf1, 0x48, 0xc8, 0x7d, + 0x1c, 0x30, 0xdd, 0x12, 0x6a, 0xcf, 0xa1, 0x0f, 0xa2, 0x28, 0xf8, 0x4a, 0xbc, 0x3f, 0x7b, 0x43, + 0x82, 0x0e, 0x67, 0x98, 0xce, 0xef, 0x4d, 0x40, 0xf3, 0x5d, 0x1b, 0xf4, 0x0c, 0x4c, 0x8f, 0x04, + 0x78, 0xba, 0xcc, 0x47, 0xe3, 0x1c, 0xba, 0xfb, 0x58, 0x40, 0x6d, 0xa5, 0x41, 0xa8, 0xc2, 0xc3, + 0x34, 0x99, 0xae, 0xac, 0x6a, 0x5f, 0x40, 0x6d, 0xa5, 0xa1, 0xfd, 0xab, 0x12, 0x98, 0x52, 0x37, + 0x7a, 0x0f, 0x6a, 0x31, 0xa1, 0x2e, 0x09, 0xd5, 0xc3, 0x35, 0x65, 0x65, 0x4d, 0xa7, 0xd0, 0x43, + 0x68, 0x9e, 0xf8, 0xe7, 0xc4, 0x73, 0xd4, 0x19, 0x8a, 0x9e, 0x53, 0xff, 0x96, 0x0d, 0x52, 0x5e, + 0xe9, 0xee, 0xc3, 0xa6, 0xb8, 0xa0, 0x50, 0xb9, 0x48, 0xeb, 0x28, 0x17, 0xeb, 0xd8, 0xc8, 0xa1, + 0x94, 0xa6, 0x03, 0x00, 0x6d, 0xd2, 0xec, 0x72, 0x17, 0xd5, 0xf5, 0x23, 0x25, 0x6c, 0xe7, 0x50, + 0x07, 0x9b, 0x70, 0x7b, 0xcc, 0x79, 0xac, 0xcc, 0x90, 0xb1, 0xd5, 0x7e, 0x6d, 0x80, 0x29, 0xfd, + 0x52, 0xe0, 0x86, 0xfb, 0xd0, 0x94, 0x50, 0xc6, 0x31, 0x4f, 0x98, 0xaa, 0x94, 0xe2, 0xac, 0x62, + 0x72, 0x20, 0xe7, 0x84, 0xc8, 0x88, 0xc6, 0x6e, 0x2a, 0x92, 0x86, 0x34, 0x88, 0xc9, 0x99, 0x88, + 0x00, 0xf4, 0x1c, 0x22, 0xdb, 0x77, 0x95, 0x54, 0x44, 0x4e, 0x3e, 0x91, 0xcd, 0xb9, 0xb7, 0x71, + 0xce, 0x16, 0x80, 0xdc, 0x40, 0xa5, 0x8f, 0xa7, 0xd0, 0xca, 0xb7, 0x92, 0x45, 0x3a, 0x0a, 0x93, + 0xc9, 0x90, 0x50, 0x79, 0xce, 0x35, 0x91, 0x8e, 0xd4, 0x18, 0x6d, 0x41, 0x25, 0xc4, 0xfa, 0x4b, + 0x4c, 0xd8, 0x25, 0x47, 0x07, 0x55, 0x55, 0x60, 0x3a, 0xdf, 0x80, 0x9a, 0xde, 0x6c, 0x96, 0x91, + 0x85, 0x06, 0x43, 0x67, 0xe4, 0x83, 0xee, 0x5f, 0xdf, 0xdc, 0x33, 0xfe, 0xfe, 0xe6, 0x9e, 0xf1, + 0xfa, 0xcd, 0x3d, 0xe3, 0xa7, 0xdb, 0xca, 0x66, 0x3f, 0xda, 0xc5, 0xb1, 0xbf, 0x7b, 0xc5, 0xff, + 0x22, 0x86, 0x55, 0x79, 0xf3, 0x0f, 0xfe, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x2f, 0xaf, 0xea, 0xb9, + 0x2f, 0x19, 0x00, 0x00, } diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto index 34e60cb9ce..860c614246 100644 --- a/networking/v1alpha3/virtual_service.proto +++ b/networking/v1alpha3/virtual_service.proto @@ -16,7 +16,7 @@ syntax = "proto3"; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; -import "networking/v1alpha3/service_dependency.proto"; +import "networking/v1alpha3/sidecar.proto"; // $title: Traffic Routing // $description: Configuration affecting traffic routing. diff --git a/proto.lock b/proto.lock index 62c8010adc..95cf510647 100644 --- a/proto.lock +++ b/proto.lock @@ -684,24 +684,13 @@ { "name": "ALLOW_ANY", "integer": 1 - }, - { - "name": "VIRTUAL_SERVICE_ONLY", - "integer": 2 - } - ] - }, - { - "name": "DefaultServiceDependency.Mode", - "enum_fields": [ - { - "name": "ALL_NAMESPACES", - "integer": 0 - }, - { - "name": "SAME_NAMESPACE", - "integer": 1 } + ], + "reserved_ids": [ + 2 + ], + "reserved_names": [ + "VIRTUAL_SERVICE_ONLY" ] } ], @@ -730,7 +719,7 @@ "type": "bool" }, { - "id": 31, + "id": 30, "name": "sidecar_to_telemetry_session_affinity", "type": "bool" }, @@ -841,7 +830,7 @@ "type": "bool" }, { - "id": 30, + "id": 29, "name": "sds_use_k8s_sa_jwt", "type": "bool" }, @@ -849,11 +838,6 @@ "id": 26, "name": "trust_domain", "type": "string" - }, - { - "id": 29, - "name": "default_service_dependency", - "type": "DefaultServiceDependency" } ], "reserved_ids": [ @@ -870,22 +854,6 @@ "type": "Mode" } ] - }, - { - "name": "DefaultServiceDependency", - "fields": [ - { - "id": 1, - "name": "import_mode", - "type": "Mode" - }, - { - "id": 2, - "name": "import_namespaces", - "type": "string", - "is_repeated": true - } - ] } ] }, @@ -3095,6 +3063,11 @@ "name": "port", "type": "Port" }, + { + "id": 4, + "name": "bind", + "type": "string" + }, { "id": 2, "name": "hosts", @@ -3105,6 +3078,11 @@ "id": 3, "name": "tls", "type": "TLSOptions" + }, + { + "id": 5, + "name": "default_endpoint", + "type": "string" } ], "messages": [ @@ -3185,77 +3163,6 @@ ] } }, - { - "protopath": "networking:/:v1alpha3:/:service_dependency.proto", - "def": { - "enums": [ - { - "name": "ConfigScope", - "enum_fields": [ - { - "name": "PUBLIC", - "integer": 0 - }, - { - "name": "PRIVATE", - "integer": 1 - } - ] - } - ], - "messages": [ - { - "name": "ServiceDependency", - "fields": [ - { - "id": 1, - "name": "dependencies", - "type": "Dependency", - "is_repeated": true - } - ], - "messages": [ - { - "name": "Import", - "fields": [ - { - "id": 1, - "name": "namespace", - "type": "string" - }, - { - "id": 2, - "name": "host", - "type": "string" - } - ] - }, - { - "name": "Dependency", - "fields": [ - { - "id": 2, - "name": "imports", - "type": "Import", - "is_repeated": true - } - ], - "maps": [ - { - "key_type": "string", - "field": { - "id": 1, - "name": "source_workload_labels", - "type": "string" - } - } - ] - } - ] - } - ] - } - }, { "protopath": "networking:/:v1alpha3:/:service_entry.proto", "def": { @@ -3384,6 +3291,131 @@ ] } }, + { + "protopath": "networking:/:v1alpha3:/:sidecar.proto", + "def": { + "enums": [ + { + "name": "ConfigScope", + "enum_fields": [ + { + "name": "PUBLIC", + "integer": 0 + }, + { + "name": "PRIVATE", + "integer": 1 + } + ] + }, + { + "name": "CaptureMode", + "enum_fields": [ + { + "name": "DEFAULT", + "integer": 0 + }, + { + "name": "IPTABLES", + "integer": 1 + }, + { + "name": "NONE", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "Sidecar", + "fields": [ + { + "id": 1, + "name": "workload_selector", + "type": "WorkloadSelector" + }, + { + "id": 2, + "name": "ingress", + "type": "IstioIngressListener", + "is_repeated": true + }, + { + "id": 3, + "name": "egress", + "type": "IstioEgressListener", + "is_repeated": true + } + ] + }, + { + "name": "IstioIngressListener", + "fields": [ + { + "id": 1, + "name": "port", + "type": "Port" + }, + { + "id": 2, + "name": "bind", + "type": "string" + }, + { + "id": 3, + "name": "capture_mode", + "type": "CaptureMode" + }, + { + "id": 4, + "name": "default_endpoint", + "type": "string" + } + ] + }, + { + "name": "IstioEgressListener", + "fields": [ + { + "id": 1, + "name": "port", + "type": "Port" + }, + { + "id": 2, + "name": "bind", + "type": "string" + }, + { + "id": 3, + "name": "capture_mode", + "type": "CaptureMode" + }, + { + "id": 4, + "name": "hosts", + "type": "string", + "is_repeated": true + } + ] + }, + { + "name": "WorkloadSelector", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "labels", + "type": "string" + } + } + ] + } + ] + } + }, { "protopath": "networking:/:v1alpha3:/:virtual_service.proto", "def": { diff --git a/python/istio_api/mesh/v1alpha1/config_pb2.py b/python/istio_api/mesh/v1alpha1/config_pb2.py index 9567835eac..1893c3beda 100644 --- a/python/istio_api/mesh/v1alpha1/config_pb2.py +++ b/python/istio_api/mesh/v1alpha1/config_pb2.py @@ -22,7 +22,7 @@ name='mesh/v1alpha1/config.proto', package='istio.mesh.v1alpha1', syntax='proto3', - serialized_pb=_b('\n\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\"\xb2\x0e\n\nMeshConfig\x12\x1a\n\x12mixer_check_server\x18\x01 \x01(\t\x12\x1b\n\x13mixer_report_server\x18\x02 \x01(\t\x12\x1d\n\x15\x64isable_policy_checks\x18\x03 \x01(\x08\x12\x1e\n\x16policy_check_fail_open\x18\x19 \x01(\x08\x12-\n%sidecar_to_telemetry_session_affinity\x18\x1f \x01(\x08\x12\x19\n\x11proxy_listen_port\x18\x04 \x01(\x05\x12\x17\n\x0fproxy_http_port\x18\x05 \x01(\x05\x12\x32\n\x0f\x63onnect_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x61\n\rtcp_keepalive\x18\x1c \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive\x12\x15\n\ringress_class\x18\x07 \x01(\t\x12\x17\n\x0fingress_service\x18\x08 \x01(\t\x12V\n\x17ingress_controller_mode\x18\t \x01(\x0e\x32\x35.istio.mesh.v1alpha1.MeshConfig.IngressControllerMode\x12\x43\n\x0b\x61uth_policy\x18\n \x01(\x0e\x32*.istio.mesh.v1alpha1.MeshConfig.AuthPolicyB\x02\x18\x01\x12\x38\n\x11rds_refresh_delay\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x16\n\x0e\x65nable_tracing\x18\x0c \x01(\x08\x12\x17\n\x0f\x61\x63\x63\x65ss_log_file\x18\r \x01(\t\x12\x19\n\x11\x61\x63\x63\x65ss_log_format\x18\x18 \x01(\t\x12N\n\x13\x61\x63\x63\x65ss_log_encoding\x18\x1b \x01(\x0e\x32\x31.istio.mesh.v1alpha1.MeshConfig.AccessLogEncoding\x12\x38\n\x0e\x64\x65\x66\x61ult_config\x18\x0e \x01(\x0b\x32 .istio.mesh.v1alpha1.ProxyConfig\x12\x19\n\rmixer_address\x18\x10 \x01(\tB\x02\x18\x01\x12V\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy\x12\'\n\x1f\x65nable_client_side_policy_check\x18\x13 \x01(\x08\x12\x14\n\x0csds_uds_path\x18\x14 \x01(\t\x12\x38\n\x11sds_refresh_delay\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x39\n\x0e\x63onfig_sources\x18\x16 \x03(\x0b\x32!.istio.mesh.v1alpha1.ConfigSource\x12\x1e\n\x16\x65nable_sds_token_mount\x18\x17 \x01(\x08\x12\x1a\n\x12sds_use_k8s_sa_jwt\x18\x1e \x01(\x08\x12\x14\n\x0ctrust_domain\x18\x1a \x01(\t\x12\\\n\x1a\x64\x65\x66\x61ult_service_dependency\x18\x1d \x01(\x0b\x32\x38.istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency\x1a\xa9\x01\n\x15OutboundTrafficPolicy\x12H\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode\"F\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01\x12\x1c\n\x14VIRTUAL_SERVICE_ONLY\x10\x02\x1a\x02\x08\x01\x1a\xb9\x01\n\x18\x44\x65\x66\x61ultServiceDependency\x12R\n\x0bimport_mode\x18\x01 \x01(\x0e\x32=.istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency.Mode\x12\x19\n\x11import_namespaces\x18\x02 \x03(\t\".\n\x04Mode\x12\x12\n\x0e\x41LL_NAMESPACES\x10\x00\x12\x12\n\x0eSAME_NAMESPACE\x10\x01\"9\n\x15IngressControllerMode\x12\x07\n\x03OFF\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06STRICT\x10\x02\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\"\'\n\x11\x41\x63\x63\x65ssLogEncoding\x12\x08\n\x04TEXT\x10\x00\x12\x08\n\x04JSON\x10\x01J\x04\x08\x0f\x10\x10J\x04\x08\x12\x10\x13\"]\n\x0c\x43onfigSource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12<\n\x0ctls_settings\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettingsB\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') + serialized_pb=_b('\n\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\"\x96\x0c\n\nMeshConfig\x12\x1a\n\x12mixer_check_server\x18\x01 \x01(\t\x12\x1b\n\x13mixer_report_server\x18\x02 \x01(\t\x12\x1d\n\x15\x64isable_policy_checks\x18\x03 \x01(\x08\x12\x1e\n\x16policy_check_fail_open\x18\x19 \x01(\x08\x12-\n%sidecar_to_telemetry_session_affinity\x18\x1e \x01(\x08\x12\x19\n\x11proxy_listen_port\x18\x04 \x01(\x05\x12\x17\n\x0fproxy_http_port\x18\x05 \x01(\x05\x12\x32\n\x0f\x63onnect_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x61\n\rtcp_keepalive\x18\x1c \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive\x12\x15\n\ringress_class\x18\x07 \x01(\t\x12\x17\n\x0fingress_service\x18\x08 \x01(\t\x12V\n\x17ingress_controller_mode\x18\t \x01(\x0e\x32\x35.istio.mesh.v1alpha1.MeshConfig.IngressControllerMode\x12\x43\n\x0b\x61uth_policy\x18\n \x01(\x0e\x32*.istio.mesh.v1alpha1.MeshConfig.AuthPolicyB\x02\x18\x01\x12\x38\n\x11rds_refresh_delay\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x16\n\x0e\x65nable_tracing\x18\x0c \x01(\x08\x12\x17\n\x0f\x61\x63\x63\x65ss_log_file\x18\r \x01(\t\x12\x19\n\x11\x61\x63\x63\x65ss_log_format\x18\x18 \x01(\t\x12N\n\x13\x61\x63\x63\x65ss_log_encoding\x18\x1b \x01(\x0e\x32\x31.istio.mesh.v1alpha1.MeshConfig.AccessLogEncoding\x12\x38\n\x0e\x64\x65\x66\x61ult_config\x18\x0e \x01(\x0b\x32 .istio.mesh.v1alpha1.ProxyConfig\x12\x19\n\rmixer_address\x18\x10 \x01(\tB\x02\x18\x01\x12V\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy\x12\'\n\x1f\x65nable_client_side_policy_check\x18\x13 \x01(\x08\x12\x14\n\x0csds_uds_path\x18\x14 \x01(\t\x12\x38\n\x11sds_refresh_delay\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x39\n\x0e\x63onfig_sources\x18\x16 \x03(\x0b\x32!.istio.mesh.v1alpha1.ConfigSource\x12\x1e\n\x16\x65nable_sds_token_mount\x18\x17 \x01(\x08\x12\x1a\n\x12sds_use_k8s_sa_jwt\x18\x1d \x01(\x08\x12\x14\n\x0ctrust_domain\x18\x1a \x01(\t\x1a\xa7\x01\n\x15OutboundTrafficPolicy\x12H\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode\"D\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01\"\x04\x08\x02\x10\x02*\x14VIRTUAL_SERVICE_ONLY\"9\n\x15IngressControllerMode\x12\x07\n\x03OFF\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06STRICT\x10\x02\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\"\'\n\x11\x41\x63\x63\x65ssLogEncoding\x12\x08\n\x04TEXT\x10\x00\x12\x08\n\x04JSON\x10\x01J\x04\x08\x0f\x10\x10J\x04\x08\x12\x10\x13\"]\n\x0c\x43onfigSource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12<\n\x0ctls_settings\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettingsB\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,mesh_dot_v1alpha1_dot_proxy__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_destination__rule__pb2.DESCRIPTOR,]) @@ -42,40 +42,14 @@ name='ALLOW_ANY', index=1, number=1, options=None, type=None), - _descriptor.EnumValueDescriptor( - name='VIRTUAL_SERVICE_ONLY', index=2, number=2, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001')), - type=None), ], containing_type=None, options=None, - serialized_start=1587, - serialized_end=1657, + serialized_start=1493, + serialized_end=1561, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE) -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE = _descriptor.EnumDescriptor( - name='Mode', - full_name='istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency.Mode', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='ALL_NAMESPACES', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SAME_NAMESPACE', index=1, number=1, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=1799, - serialized_end=1845, -) -_sym_db.RegisterEnumDescriptor(_MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE) - _MESHCONFIG_INGRESSCONTROLLERMODE = _descriptor.EnumDescriptor( name='IngressControllerMode', full_name='istio.mesh.v1alpha1.MeshConfig.IngressControllerMode', @@ -97,8 +71,8 @@ ], containing_type=None, options=None, - serialized_start=1847, - serialized_end=1904, + serialized_start=1563, + serialized_end=1620, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_INGRESSCONTROLLERMODE) @@ -119,8 +93,8 @@ ], containing_type=None, options=None, - serialized_start=1906, - serialized_end=1944, + serialized_start=1622, + serialized_end=1660, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_AUTHPOLICY) @@ -141,8 +115,8 @@ ], containing_type=None, options=None, - serialized_start=1946, - serialized_end=1985, + serialized_start=1662, + serialized_end=1701, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_ACCESSLOGENCODING) @@ -174,46 +148,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1488, - serialized_end=1657, -) - -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY = _descriptor.Descriptor( - name='DefaultServiceDependency', - full_name='istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='import_mode', full_name='istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency.import_mode', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='import_namespaces', full_name='istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency.import_namespaces', index=1, - number=2, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1660, - serialized_end=1845, + serialized_start=1394, + serialized_end=1561, ) _MESHCONFIG = _descriptor.Descriptor( @@ -253,7 +189,7 @@ options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='sidecar_to_telemetry_session_affinity', full_name='istio.mesh.v1alpha1.MeshConfig.sidecar_to_telemetry_session_affinity', index=4, - number=31, type=8, cpp_type=7, label=1, + number=30, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -407,7 +343,7 @@ options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='sds_use_k8s_sa_jwt', full_name='istio.mesh.v1alpha1.MeshConfig.sds_use_k8s_sa_jwt', index=26, - number=30, type=8, cpp_type=7, label=1, + number=29, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -419,17 +355,10 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='default_service_dependency', full_name='istio.mesh.v1alpha1.MeshConfig.default_service_dependency', index=28, - number=29, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), ], extensions=[ ], - nested_types=[_MESHCONFIG_OUTBOUNDTRAFFICPOLICY, _MESHCONFIG_DEFAULTSERVICEDEPENDENCY, ], + nested_types=[_MESHCONFIG_OUTBOUNDTRAFFICPOLICY, ], enum_types=[ _MESHCONFIG_INGRESSCONTROLLERMODE, _MESHCONFIG_AUTHPOLICY, @@ -442,7 +371,7 @@ oneofs=[ ], serialized_start=155, - serialized_end=1997, + serialized_end=1713, ) @@ -479,16 +408,13 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1999, - serialized_end=2092, + serialized_start=1715, + serialized_end=1808, ) _MESHCONFIG_OUTBOUNDTRAFFICPOLICY.fields_by_name['mode'].enum_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE _MESHCONFIG_OUTBOUNDTRAFFICPOLICY.containing_type = _MESHCONFIG _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.containing_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY.fields_by_name['import_mode'].enum_type = _MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY.containing_type = _MESHCONFIG -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE.containing_type = _MESHCONFIG_DEFAULTSERVICEDEPENDENCY _MESHCONFIG.fields_by_name['connect_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _MESHCONFIG.fields_by_name['tcp_keepalive'].message_type = networking_dot_v1alpha3_dot_destination__rule__pb2._CONNECTIONPOOLSETTINGS_TCPSETTINGS_TCPKEEPALIVE _MESHCONFIG.fields_by_name['ingress_controller_mode'].enum_type = _MESHCONFIG_INGRESSCONTROLLERMODE @@ -499,7 +425,6 @@ _MESHCONFIG.fields_by_name['outbound_traffic_policy'].message_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY _MESHCONFIG.fields_by_name['sds_refresh_delay'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _MESHCONFIG.fields_by_name['config_sources'].message_type = _CONFIGSOURCE -_MESHCONFIG.fields_by_name['default_service_dependency'].message_type = _MESHCONFIG_DEFAULTSERVICEDEPENDENCY _MESHCONFIG_INGRESSCONTROLLERMODE.containing_type = _MESHCONFIG _MESHCONFIG_AUTHPOLICY.containing_type = _MESHCONFIG _MESHCONFIG_ACCESSLOGENCODING.containing_type = _MESHCONFIG @@ -516,20 +441,12 @@ # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy) )) , - - DefaultServiceDependency = _reflection.GeneratedProtocolMessageType('DefaultServiceDependency', (_message.Message,), dict( - DESCRIPTOR = _MESHCONFIG_DEFAULTSERVICEDEPENDENCY, - __module__ = 'mesh.v1alpha1.config_pb2' - # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency) - )) - , DESCRIPTOR = _MESHCONFIG, __module__ = 'mesh.v1alpha1.config_pb2' # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig) )) _sym_db.RegisterMessage(MeshConfig) _sym_db.RegisterMessage(MeshConfig.OutboundTrafficPolicy) -_sym_db.RegisterMessage(MeshConfig.DefaultServiceDependency) ConfigSource = _reflection.GeneratedProtocolMessageType('ConfigSource', (_message.Message,), dict( DESCRIPTOR = _CONFIGSOURCE, @@ -541,8 +458,6 @@ DESCRIPTOR.has_options = True DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\032istio.io/api/mesh/v1alpha1')) -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.values_by_name["VIRTUAL_SERVICE_ONLY"].has_options = True -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.values_by_name["VIRTUAL_SERVICE_ONLY"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001')) _MESHCONFIG.fields_by_name['auth_policy'].has_options = True _MESHCONFIG.fields_by_name['auth_policy']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) _MESHCONFIG.fields_by_name['rds_refresh_delay'].has_options = True diff --git a/python/istio_api/networking/v1alpha3/destination_rule_pb2.py b/python/istio_api/networking/v1alpha3/destination_rule_pb2.py index 0d804386c9..461d8fcdfb 100644 --- a/python/istio_api/networking/v1alpha3/destination_rule_pb2.py +++ b/python/istio_api/networking/v1alpha3/destination_rule_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from networking.v1alpha3 import virtual_service_pb2 as networking_dot_v1alpha3_dot_virtual__service__pb2 -from networking.v1alpha3 import service_dependency_pb2 as networking_dot_v1alpha3_dot_service__dependency__pb2 +from networking.v1alpha3 import sidecar_pb2 as networking_dot_v1alpha3_dot_sidecar__pb2 from gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 @@ -23,9 +23,9 @@ name='networking/v1alpha3/destination_rule.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n*networking/v1alpha3/destination_rule.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a)networking/v1alpha3/virtual_service.proto\x1a,networking/v1alpha3/service_dependency.proto\x1a\x14gogoproto/gogo.proto\"\xd3\x01\n\x0f\x44\x65stinationRule\x12\x0c\n\x04host\x18\x01 \x01(\t\x12@\n\x0etraffic_policy\x18\x02 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x12\x32\n\x07subsets\x18\x03 \x03(\x0b\x32!.istio.networking.v1alpha3.Subset\x12<\n\x0c\x63onfig_scope\x18\x04 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\"\xd7\x05\n\rTrafficPolicy\x12\x46\n\rload_balancer\x18\x01 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x02 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x03 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\x12W\n\x13port_level_settings\x18\x05 \x03(\x0b\x32:.istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy\x1a\xdb\x02\n\x11PortTrafficPolicy\x12\x35\n\x04port\x18\x01 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\x12\x46\n\rload_balancer\x18\x02 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x03 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x04 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x05 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\"\xc6\x01\n\x06Subset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x06labels\x18\x02 \x03(\x0b\x32-.istio.networking.v1alpha3.Subset.LabelsEntry\x12@\n\x0etraffic_policy\x18\x03 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xda\x06\n\x14LoadBalancerSettings\x12J\n\x06simple\x18\x01 \x01(\x0e\x32\x38.istio.networking.v1alpha3.LoadBalancerSettings.SimpleLBH\x00\x12[\n\x0f\x63onsistent_hash\x18\x02 \x01(\x0b\x32@.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLBH\x00\x12g\n\x18locality_weight_settings\x18\x03 \x03(\x0b\x32\x45.istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting\x1a\xaa\x02\n\x10\x43onsistentHashLB\x12\x1a\n\x10http_header_name\x18\x01 \x01(\tH\x00\x12\x62\n\x0bhttp_cookie\x18\x02 \x01(\x0b\x32K.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookieH\x00\x12\x17\n\ruse_source_ip\x18\x03 \x01(\x08H\x00\x12\x19\n\x11minimum_ring_size\x18\x04 \x01(\x04\x1aV\n\nHTTPCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12,\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01\x42\n\n\x08hash_key\x1a\xab\x01\n\x15LocalityWeightSetting\x12\x0c\n\x04\x66rom\x18\x01 \x01(\t\x12Y\n\x02to\x18\x02 \x03(\x0b\x32M.istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting.ToEntry\x1a)\n\x07ToEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"H\n\x08SimpleLB\x12\x0f\n\x0bROUND_ROBIN\x10\x00\x12\x0e\n\nLEAST_CONN\x10\x01\x12\n\n\x06RANDOM\x10\x02\x12\x0f\n\x0bPASSTHROUGH\x10\x03\x42\x0b\n\tlb_policy\"\xf3\x04\n\x16\x43onnectionPoolSettings\x12J\n\x03tcp\x18\x01 \x01(\x0b\x32=.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings\x12L\n\x04http\x18\x02 \x01(\x0b\x32>.istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings\x1a\xb3\x02\n\x0bTCPSettings\x12\x17\n\x0fmax_connections\x18\x01 \x01(\x05\x12\x32\n\x0f\x63onnect_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x61\n\rtcp_keepalive\x18\x03 \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive\x1at\n\x0cTcpKeepalive\x12\x0e\n\x06probes\x18\x01 \x01(\r\x12\'\n\x04time\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12+\n\x08interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x88\x01\n\x0cHTTPSettings\x12\"\n\x1ahttp1_max_pending_requests\x18\x01 \x01(\x05\x12\x1a\n\x12http2_max_requests\x18\x02 \x01(\x05\x12#\n\x1bmax_requests_per_connection\x18\x03 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x04 \x01(\x05\"\xcc\x01\n\x10OutlierDetection\x12\x1a\n\x12\x63onsecutive_errors\x18\x01 \x01(\x05\x12+\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x12\x62\x61se_ejection_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1c\n\x14max_ejection_percent\x18\x04 \x01(\x05\x12\x1a\n\x12min_health_percent\x18\x05 \x01(\x05\"\xff\x01\n\x0bTLSSettings\x12<\n\x04mode\x18\x01 \x01(\x0e\x32..istio.networking.v1alpha3.TLSSettings.TLSmode\x12\x1a\n\x12\x63lient_certificate\x18\x02 \x01(\t\x12\x13\n\x0bprivate_key\x18\x03 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x04 \x01(\t\x12\x19\n\x11subject_alt_names\x18\x05 \x03(\t\x12\x0b\n\x03sni\x18\x06 \x01(\t\"@\n\x07TLSmode\x12\x0b\n\x07\x44ISABLE\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\n\n\x06MUTUAL\x10\x02\x12\x10\n\x0cISTIO_MUTUAL\x10\x03\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n*networking/v1alpha3/destination_rule.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a)networking/v1alpha3/virtual_service.proto\x1a!networking/v1alpha3/sidecar.proto\x1a\x14gogoproto/gogo.proto\"\xd3\x01\n\x0f\x44\x65stinationRule\x12\x0c\n\x04host\x18\x01 \x01(\t\x12@\n\x0etraffic_policy\x18\x02 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x12\x32\n\x07subsets\x18\x03 \x03(\x0b\x32!.istio.networking.v1alpha3.Subset\x12<\n\x0c\x63onfig_scope\x18\x04 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\"\xd7\x05\n\rTrafficPolicy\x12\x46\n\rload_balancer\x18\x01 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x02 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x03 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\x12W\n\x13port_level_settings\x18\x05 \x03(\x0b\x32:.istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy\x1a\xdb\x02\n\x11PortTrafficPolicy\x12\x35\n\x04port\x18\x01 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\x12\x46\n\rload_balancer\x18\x02 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x03 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x04 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x05 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\"\xc6\x01\n\x06Subset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x06labels\x18\x02 \x03(\x0b\x32-.istio.networking.v1alpha3.Subset.LabelsEntry\x12@\n\x0etraffic_policy\x18\x03 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xda\x06\n\x14LoadBalancerSettings\x12J\n\x06simple\x18\x01 \x01(\x0e\x32\x38.istio.networking.v1alpha3.LoadBalancerSettings.SimpleLBH\x00\x12[\n\x0f\x63onsistent_hash\x18\x02 \x01(\x0b\x32@.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLBH\x00\x12g\n\x18locality_weight_settings\x18\x03 \x03(\x0b\x32\x45.istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting\x1a\xaa\x02\n\x10\x43onsistentHashLB\x12\x1a\n\x10http_header_name\x18\x01 \x01(\tH\x00\x12\x62\n\x0bhttp_cookie\x18\x02 \x01(\x0b\x32K.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookieH\x00\x12\x17\n\ruse_source_ip\x18\x03 \x01(\x08H\x00\x12\x19\n\x11minimum_ring_size\x18\x04 \x01(\x04\x1aV\n\nHTTPCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12,\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01\x42\n\n\x08hash_key\x1a\xab\x01\n\x15LocalityWeightSetting\x12\x0c\n\x04\x66rom\x18\x01 \x01(\t\x12Y\n\x02to\x18\x02 \x03(\x0b\x32M.istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting.ToEntry\x1a)\n\x07ToEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"H\n\x08SimpleLB\x12\x0f\n\x0bROUND_ROBIN\x10\x00\x12\x0e\n\nLEAST_CONN\x10\x01\x12\n\n\x06RANDOM\x10\x02\x12\x0f\n\x0bPASSTHROUGH\x10\x03\x42\x0b\n\tlb_policy\"\xf3\x04\n\x16\x43onnectionPoolSettings\x12J\n\x03tcp\x18\x01 \x01(\x0b\x32=.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings\x12L\n\x04http\x18\x02 \x01(\x0b\x32>.istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings\x1a\xb3\x02\n\x0bTCPSettings\x12\x17\n\x0fmax_connections\x18\x01 \x01(\x05\x12\x32\n\x0f\x63onnect_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x61\n\rtcp_keepalive\x18\x03 \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive\x1at\n\x0cTcpKeepalive\x12\x0e\n\x06probes\x18\x01 \x01(\r\x12\'\n\x04time\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12+\n\x08interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x88\x01\n\x0cHTTPSettings\x12\"\n\x1ahttp1_max_pending_requests\x18\x01 \x01(\x05\x12\x1a\n\x12http2_max_requests\x18\x02 \x01(\x05\x12#\n\x1bmax_requests_per_connection\x18\x03 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x04 \x01(\x05\"\xcc\x01\n\x10OutlierDetection\x12\x1a\n\x12\x63onsecutive_errors\x18\x01 \x01(\x05\x12+\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x12\x62\x61se_ejection_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1c\n\x14max_ejection_percent\x18\x04 \x01(\x05\x12\x1a\n\x12min_health_percent\x18\x05 \x01(\x05\"\xff\x01\n\x0bTLSSettings\x12<\n\x04mode\x18\x01 \x01(\x0e\x32..istio.networking.v1alpha3.TLSSettings.TLSmode\x12\x1a\n\x12\x63lient_certificate\x18\x02 \x01(\t\x12\x13\n\x0bprivate_key\x18\x03 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x04 \x01(\t\x12\x19\n\x11subject_alt_names\x18\x05 \x03(\t\x12\x0b\n\x03sni\x18\x06 \x01(\t\"@\n\x07TLSmode\x12\x0b\n\x07\x44ISABLE\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\n\n\x06MUTUAL\x10\x02\x12\x10\n\x0cISTIO_MUTUAL\x10\x03\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , - dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_virtual__service__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_service__dependency__pb2.DESCRIPTOR,gogoproto_dot_gogo__pb2.DESCRIPTOR,]) + dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_virtual__service__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_sidecar__pb2.DESCRIPTOR,gogoproto_dot_gogo__pb2.DESCRIPTOR,]) @@ -54,8 +54,8 @@ ], containing_type=None, options=None, - serialized_start=2135, - serialized_end=2207, + serialized_start=2124, + serialized_end=2196, ) _sym_db.RegisterEnumDescriptor(_LOADBALANCERSETTINGS_SIMPLELB) @@ -84,8 +84,8 @@ ], containing_type=None, options=None, - serialized_start=3251, - serialized_end=3315, + serialized_start=3240, + serialized_end=3304, ) _sym_db.RegisterEnumDescriptor(_TLSSETTINGS_TLSMODE) @@ -137,8 +137,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=217, - serialized_end=428, + serialized_start=206, + serialized_end=417, ) @@ -196,8 +196,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=811, - serialized_end=1158, + serialized_start=800, + serialized_end=1147, ) _TRAFFICPOLICY = _descriptor.Descriptor( @@ -254,8 +254,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=431, - serialized_end=1158, + serialized_start=420, + serialized_end=1147, ) @@ -292,8 +292,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1314, - serialized_end=1359, + serialized_start=1303, + serialized_end=1348, ) _SUBSET = _descriptor.Descriptor( @@ -336,8 +336,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1161, - serialized_end=1359, + serialized_start=1150, + serialized_end=1348, ) @@ -381,8 +381,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1861, - serialized_end=1947, + serialized_start=1850, + serialized_end=1936, ) _LOADBALANCERSETTINGS_CONSISTENTHASHLB = _descriptor.Descriptor( @@ -435,8 +435,8 @@ name='hash_key', full_name='istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.hash_key', index=0, containing_type=None, fields=[]), ], - serialized_start=1661, - serialized_end=1959, + serialized_start=1650, + serialized_end=1948, ) _LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING_TOENTRY = _descriptor.Descriptor( @@ -472,8 +472,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2092, - serialized_end=2133, + serialized_start=2081, + serialized_end=2122, ) _LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING = _descriptor.Descriptor( @@ -509,8 +509,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1962, - serialized_end=2133, + serialized_start=1951, + serialized_end=2122, ) _LOADBALANCERSETTINGS = _descriptor.Descriptor( @@ -557,8 +557,8 @@ name='lb_policy', full_name='istio.networking.v1alpha3.LoadBalancerSettings.lb_policy', index=0, containing_type=None, fields=[]), ], - serialized_start=1362, - serialized_end=2220, + serialized_start=1351, + serialized_end=2209, ) @@ -602,8 +602,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2595, - serialized_end=2711, + serialized_start=2584, + serialized_end=2700, ) _CONNECTIONPOOLSETTINGS_TCPSETTINGS = _descriptor.Descriptor( @@ -646,8 +646,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2404, - serialized_end=2711, + serialized_start=2393, + serialized_end=2700, ) _CONNECTIONPOOLSETTINGS_HTTPSETTINGS = _descriptor.Descriptor( @@ -697,8 +697,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2714, - serialized_end=2850, + serialized_start=2703, + serialized_end=2839, ) _CONNECTIONPOOLSETTINGS = _descriptor.Descriptor( @@ -734,8 +734,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2223, - serialized_end=2850, + serialized_start=2212, + serialized_end=2839, ) @@ -793,8 +793,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2853, - serialized_end=3057, + serialized_start=2842, + serialized_end=3046, ) @@ -860,13 +860,13 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3060, - serialized_end=3315, + serialized_start=3049, + serialized_end=3304, ) _DESTINATIONRULE.fields_by_name['traffic_policy'].message_type = _TRAFFICPOLICY _DESTINATIONRULE.fields_by_name['subsets'].message_type = _SUBSET -_DESTINATIONRULE.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_service__dependency__pb2._CONFIGSCOPE +_DESTINATIONRULE.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_sidecar__pb2._CONFIGSCOPE _TRAFFICPOLICY_PORTTRAFFICPOLICY.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_virtual__service__pb2._PORTSELECTOR _TRAFFICPOLICY_PORTTRAFFICPOLICY.fields_by_name['load_balancer'].message_type = _LOADBALANCERSETTINGS _TRAFFICPOLICY_PORTTRAFFICPOLICY.fields_by_name['connection_pool'].message_type = _CONNECTIONPOOLSETTINGS diff --git a/python/istio_api/networking/v1alpha3/gateway_pb2.py b/python/istio_api/networking/v1alpha3/gateway_pb2.py index 3a492b02fd..991c4f8169 100644 --- a/python/istio_api/networking/v1alpha3/gateway_pb2.py +++ b/python/istio_api/networking/v1alpha3/gateway_pb2.py @@ -19,7 +19,7 @@ name='networking/v1alpha3/gateway.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n!networking/v1alpha3/gateway.proto\x12\x19istio.networking.v1alpha3\"\xb2\x01\n\x07Gateway\x12\x32\n\x07servers\x18\x01 \x03(\x0b\x32!.istio.networking.v1alpha3.Server\x12\x42\n\x08selector\x18\x02 \x03(\x0b\x32\x30.istio.networking.v1alpha3.Gateway.SelectorEntry\x1a/\n\rSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb3\x05\n\x06Server\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\r\n\x05hosts\x18\x02 \x03(\t\x12\x39\n\x03tls\x18\x03 \x01(\x0b\x32,.istio.networking.v1alpha3.Server.TLSOptions\x1a\xaf\x04\n\nTLSOptions\x12\x16\n\x0ehttps_redirect\x18\x01 \x01(\x08\x12\x42\n\x04mode\x18\x02 \x01(\x0e\x32\x34.istio.networking.v1alpha3.Server.TLSOptions.TLSmode\x12\x1a\n\x12server_certificate\x18\x03 \x01(\t\x12\x13\n\x0bprivate_key\x18\x04 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x05 \x01(\t\x12\x19\n\x11subject_alt_names\x18\x06 \x03(\t\x12V\n\x14min_protocol_version\x18\x07 \x01(\x0e\x32\x38.istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol\x12V\n\x14max_protocol_version\x18\x08 \x01(\x0e\x32\x38.istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol\x12\x15\n\rcipher_suites\x18\t \x03(\t\"H\n\x07TLSmode\x12\x0f\n\x0bPASSTHROUGH\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\n\n\x06MUTUAL\x10\x02\x12\x14\n\x10\x41UTO_PASSTHROUGH\x10\x03\"O\n\x0bTLSProtocol\x12\x0c\n\x08TLS_AUTO\x10\x00\x12\x0b\n\x07TLSV1_0\x10\x01\x12\x0b\n\x07TLSV1_1\x10\x02\x12\x0b\n\x07TLSV1_2\x10\x03\x12\x0b\n\x07TLSV1_3\x10\x04\"6\n\x04Port\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x10\n\x08protocol\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\tB\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n!networking/v1alpha3/gateway.proto\x12\x19istio.networking.v1alpha3\"\xb2\x01\n\x07Gateway\x12\x32\n\x07servers\x18\x01 \x03(\x0b\x32!.istio.networking.v1alpha3.Server\x12\x42\n\x08selector\x18\x02 \x03(\x0b\x32\x30.istio.networking.v1alpha3.Gateway.SelectorEntry\x1a/\n\rSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xdb\x05\n\x06Server\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x04 \x01(\t\x12\r\n\x05hosts\x18\x02 \x03(\t\x12\x39\n\x03tls\x18\x03 \x01(\x0b\x32,.istio.networking.v1alpha3.Server.TLSOptions\x12\x18\n\x10\x64\x65\x66\x61ult_endpoint\x18\x05 \x01(\t\x1a\xaf\x04\n\nTLSOptions\x12\x16\n\x0ehttps_redirect\x18\x01 \x01(\x08\x12\x42\n\x04mode\x18\x02 \x01(\x0e\x32\x34.istio.networking.v1alpha3.Server.TLSOptions.TLSmode\x12\x1a\n\x12server_certificate\x18\x03 \x01(\t\x12\x13\n\x0bprivate_key\x18\x04 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x05 \x01(\t\x12\x19\n\x11subject_alt_names\x18\x06 \x03(\t\x12V\n\x14min_protocol_version\x18\x07 \x01(\x0e\x32\x38.istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol\x12V\n\x14max_protocol_version\x18\x08 \x01(\x0e\x32\x38.istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol\x12\x15\n\rcipher_suites\x18\t \x03(\t\"H\n\x07TLSmode\x12\x0f\n\x0bPASSTHROUGH\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\n\n\x06MUTUAL\x10\x02\x12\x14\n\x10\x41UTO_PASSTHROUGH\x10\x03\"O\n\x0bTLSProtocol\x12\x0c\n\x08TLS_AUTO\x10\x00\x12\x0b\n\x07TLSV1_0\x10\x01\x12\x0b\n\x07TLSV1_1\x10\x02\x12\x0b\n\x07TLSV1_2\x10\x03\x12\x0b\n\x07TLSV1_3\x10\x04\"6\n\x04Port\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x10\n\x08protocol\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\tB\"Z istio.io/api/networking/v1alpha3b\x06proto3') ) @@ -49,8 +49,8 @@ ], containing_type=None, options=None, - serialized_start=784, - serialized_end=856, + serialized_start=824, + serialized_end=896, ) _sym_db.RegisterEnumDescriptor(_SERVER_TLSOPTIONS_TLSMODE) @@ -83,8 +83,8 @@ ], containing_type=None, options=None, - serialized_start=858, - serialized_end=937, + serialized_start=898, + serialized_end=977, ) _sym_db.RegisterEnumDescriptor(_SERVER_TLSOPTIONS_TLSPROTOCOL) @@ -248,8 +248,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=378, - serialized_end=937, + serialized_start=418, + serialized_end=977, ) _SERVER = _descriptor.Descriptor( @@ -267,19 +267,33 @@ is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='hosts', full_name='istio.networking.v1alpha3.Server.hosts', index=1, + name='bind', full_name='istio.networking.v1alpha3.Server.bind', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hosts', full_name='istio.networking.v1alpha3.Server.hosts', index=2, number=2, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tls', full_name='istio.networking.v1alpha3.Server.tls', index=2, + name='tls', full_name='istio.networking.v1alpha3.Server.tls', index=3, number=3, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_endpoint', full_name='istio.networking.v1alpha3.Server.default_endpoint', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -293,7 +307,7 @@ oneofs=[ ], serialized_start=246, - serialized_end=937, + serialized_end=977, ) @@ -337,8 +351,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=939, - serialized_end=993, + serialized_start=979, + serialized_end=1033, ) _GATEWAY_SELECTORENTRY.containing_type = _GATEWAY diff --git a/python/istio_api/networking/v1alpha3/service_dependency_pb2.py b/python/istio_api/networking/v1alpha3/service_dependency_pb2.py deleted file mode 100644 index 995a079b31..0000000000 --- a/python/istio_api/networking/v1alpha3/service_dependency_pb2.py +++ /dev/null @@ -1,241 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: networking/v1alpha3/service_dependency.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='networking/v1alpha3/service_dependency.proto', - package='istio.networking.v1alpha3', - syntax='proto3', - serialized_pb=_b('\n,networking/v1alpha3/service_dependency.proto\x12\x19istio.networking.v1alpha3\"\x92\x03\n\x11ServiceDependency\x12M\n\x0c\x64\x65pendencies\x18\x01 \x03(\x0b\x32\x37.istio.networking.v1alpha3.ServiceDependency.Dependency\x1a)\n\x06Import\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x1a\x82\x02\n\nDependency\x12q\n\x16source_workload_labels\x18\x01 \x03(\x0b\x32Q.istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry\x12\x44\n\x07imports\x18\x02 \x03(\x0b\x32\x33.istio.networking.v1alpha3.ServiceDependency.Import\x1a;\n\x19SourceWorkloadLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*&\n\x0b\x43onfigScope\x12\n\n\x06PUBLIC\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') -) - -_CONFIGSCOPE = _descriptor.EnumDescriptor( - name='ConfigScope', - full_name='istio.networking.v1alpha3.ConfigScope', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='PUBLIC', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PRIVATE', index=1, number=1, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=480, - serialized_end=518, -) -_sym_db.RegisterEnumDescriptor(_CONFIGSCOPE) - -ConfigScope = enum_type_wrapper.EnumTypeWrapper(_CONFIGSCOPE) -PUBLIC = 0 -PRIVATE = 1 - - - -_SERVICEDEPENDENCY_IMPORT = _descriptor.Descriptor( - name='Import', - full_name='istio.networking.v1alpha3.ServiceDependency.Import', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='namespace', full_name='istio.networking.v1alpha3.ServiceDependency.Import.namespace', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='host', full_name='istio.networking.v1alpha3.ServiceDependency.Import.host', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=176, - serialized_end=217, -) - -_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY = _descriptor.Descriptor( - name='SourceWorkloadLabelsEntry', - full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry.value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=419, - serialized_end=478, -) - -_SERVICEDEPENDENCY_DEPENDENCY = _descriptor.Descriptor( - name='Dependency', - full_name='istio.networking.v1alpha3.ServiceDependency.Dependency', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='source_workload_labels', full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.source_workload_labels', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='imports', full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.imports', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY, ], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=220, - serialized_end=478, -) - -_SERVICEDEPENDENCY = _descriptor.Descriptor( - name='ServiceDependency', - full_name='istio.networking.v1alpha3.ServiceDependency', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='dependencies', full_name='istio.networking.v1alpha3.ServiceDependency.dependencies', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_SERVICEDEPENDENCY_IMPORT, _SERVICEDEPENDENCY_DEPENDENCY, ], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=76, - serialized_end=478, -) - -_SERVICEDEPENDENCY_IMPORT.containing_type = _SERVICEDEPENDENCY -_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY.containing_type = _SERVICEDEPENDENCY_DEPENDENCY -_SERVICEDEPENDENCY_DEPENDENCY.fields_by_name['source_workload_labels'].message_type = _SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY -_SERVICEDEPENDENCY_DEPENDENCY.fields_by_name['imports'].message_type = _SERVICEDEPENDENCY_IMPORT -_SERVICEDEPENDENCY_DEPENDENCY.containing_type = _SERVICEDEPENDENCY -_SERVICEDEPENDENCY.fields_by_name['dependencies'].message_type = _SERVICEDEPENDENCY_DEPENDENCY -DESCRIPTOR.message_types_by_name['ServiceDependency'] = _SERVICEDEPENDENCY -DESCRIPTOR.enum_types_by_name['ConfigScope'] = _CONFIGSCOPE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -ServiceDependency = _reflection.GeneratedProtocolMessageType('ServiceDependency', (_message.Message,), dict( - - Import = _reflection.GeneratedProtocolMessageType('Import', (_message.Message,), dict( - DESCRIPTOR = _SERVICEDEPENDENCY_IMPORT, - __module__ = 'networking.v1alpha3.service_dependency_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceDependency.Import) - )) - , - - Dependency = _reflection.GeneratedProtocolMessageType('Dependency', (_message.Message,), dict( - - SourceWorkloadLabelsEntry = _reflection.GeneratedProtocolMessageType('SourceWorkloadLabelsEntry', (_message.Message,), dict( - DESCRIPTOR = _SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY, - __module__ = 'networking.v1alpha3.service_dependency_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry) - )) - , - DESCRIPTOR = _SERVICEDEPENDENCY_DEPENDENCY, - __module__ = 'networking.v1alpha3.service_dependency_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceDependency.Dependency) - )) - , - DESCRIPTOR = _SERVICEDEPENDENCY, - __module__ = 'networking.v1alpha3.service_dependency_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceDependency) - )) -_sym_db.RegisterMessage(ServiceDependency) -_sym_db.RegisterMessage(ServiceDependency.Import) -_sym_db.RegisterMessage(ServiceDependency.Dependency) -_sym_db.RegisterMessage(ServiceDependency.Dependency.SourceWorkloadLabelsEntry) - - -DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z istio.io/api/networking/v1alpha3')) -_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY.has_options = True -_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) -# @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/networking/v1alpha3/service_entry_pb2.py b/python/istio_api/networking/v1alpha3/service_entry_pb2.py index c3c269209f..0375749f9a 100644 --- a/python/istio_api/networking/v1alpha3/service_entry_pb2.py +++ b/python/istio_api/networking/v1alpha3/service_entry_pb2.py @@ -14,16 +14,16 @@ from networking.v1alpha3 import gateway_pb2 as networking_dot_v1alpha3_dot_gateway__pb2 -from networking.v1alpha3 import service_dependency_pb2 as networking_dot_v1alpha3_dot_service__dependency__pb2 +from networking.v1alpha3 import sidecar_pb2 as networking_dot_v1alpha3_dot_sidecar__pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='networking/v1alpha3/service_entry.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n\'networking/v1alpha3/service_entry.proto\x12\x19istio.networking.v1alpha3\x1a!networking/v1alpha3/gateway.proto\x1a,networking/v1alpha3/service_dependency.proto\"\x96\x06\n\x0cServiceEntry\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x11\n\taddresses\x18\x02 \x03(\t\x12.\n\x05ports\x18\x03 \x03(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x42\n\x08location\x18\x04 \x01(\x0e\x32\x30.istio.networking.v1alpha3.ServiceEntry.Location\x12\x46\n\nresolution\x18\x05 \x01(\x0e\x32\x32.istio.networking.v1alpha3.ServiceEntry.Resolution\x12\x43\n\tendpoints\x18\x06 \x03(\x0b\x32\x30.istio.networking.v1alpha3.ServiceEntry.Endpoint\x12<\n\x0c\x63onfig_scope\x18\x07 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\x1a\xc5\x02\n\x08\x45ndpoint\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12J\n\x05ports\x18\x02 \x03(\x0b\x32;.istio.networking.v1alpha3.ServiceEntry.Endpoint.PortsEntry\x12L\n\x06labels\x18\x03 \x03(\x0b\x32<.istio.networking.v1alpha3.ServiceEntry.Endpoint.LabelsEntry\x12\x0f\n\x07network\x18\x04 \x01(\t\x12\x10\n\x08locality\x18\x05 \x01(\t\x12\x0e\n\x06weight\x18\x06 \x01(\r\x1a,\n\nPortsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"0\n\x08Location\x12\x11\n\rMESH_EXTERNAL\x10\x00\x12\x11\n\rMESH_INTERNAL\x10\x01\"+\n\nResolution\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06STATIC\x10\x01\x12\x07\n\x03\x44NS\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n\'networking/v1alpha3/service_entry.proto\x12\x19istio.networking.v1alpha3\x1a!networking/v1alpha3/gateway.proto\x1a!networking/v1alpha3/sidecar.proto\"\x96\x06\n\x0cServiceEntry\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x11\n\taddresses\x18\x02 \x03(\t\x12.\n\x05ports\x18\x03 \x03(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x42\n\x08location\x18\x04 \x01(\x0e\x32\x30.istio.networking.v1alpha3.ServiceEntry.Location\x12\x46\n\nresolution\x18\x05 \x01(\x0e\x32\x32.istio.networking.v1alpha3.ServiceEntry.Resolution\x12\x43\n\tendpoints\x18\x06 \x03(\x0b\x32\x30.istio.networking.v1alpha3.ServiceEntry.Endpoint\x12<\n\x0c\x63onfig_scope\x18\x07 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\x1a\xc5\x02\n\x08\x45ndpoint\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12J\n\x05ports\x18\x02 \x03(\x0b\x32;.istio.networking.v1alpha3.ServiceEntry.Endpoint.PortsEntry\x12L\n\x06labels\x18\x03 \x03(\x0b\x32<.istio.networking.v1alpha3.ServiceEntry.Endpoint.LabelsEntry\x12\x0f\n\x07network\x18\x04 \x01(\t\x12\x10\n\x08locality\x18\x05 \x01(\t\x12\x0e\n\x06weight\x18\x06 \x01(\r\x1a,\n\nPortsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"0\n\x08Location\x12\x11\n\rMESH_EXTERNAL\x10\x00\x12\x11\n\rMESH_INTERNAL\x10\x01\"+\n\nResolution\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06STATIC\x10\x01\x12\x07\n\x03\x44NS\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , - dependencies=[networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_service__dependency__pb2.DESCRIPTOR,]) + dependencies=[networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_sidecar__pb2.DESCRIPTOR,]) @@ -44,8 +44,8 @@ ], containing_type=None, options=None, - serialized_start=849, - serialized_end=897, + serialized_start=838, + serialized_end=886, ) _sym_db.RegisterEnumDescriptor(_SERVICEENTRY_LOCATION) @@ -70,8 +70,8 @@ ], containing_type=None, options=None, - serialized_start=899, - serialized_end=942, + serialized_start=888, + serialized_end=931, ) _sym_db.RegisterEnumDescriptor(_SERVICEENTRY_RESOLUTION) @@ -109,8 +109,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=756, - serialized_end=800, + serialized_start=745, + serialized_end=789, ) _SERVICEENTRY_ENDPOINT_LABELSENTRY = _descriptor.Descriptor( @@ -146,8 +146,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=802, - serialized_end=847, + serialized_start=791, + serialized_end=836, ) _SERVICEENTRY_ENDPOINT = _descriptor.Descriptor( @@ -211,8 +211,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=522, - serialized_end=847, + serialized_start=511, + serialized_end=836, ) _SERVICEENTRY = _descriptor.Descriptor( @@ -285,8 +285,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=152, - serialized_end=942, + serialized_start=141, + serialized_end=931, ) _SERVICEENTRY_ENDPOINT_PORTSENTRY.containing_type = _SERVICEENTRY_ENDPOINT @@ -298,7 +298,7 @@ _SERVICEENTRY.fields_by_name['location'].enum_type = _SERVICEENTRY_LOCATION _SERVICEENTRY.fields_by_name['resolution'].enum_type = _SERVICEENTRY_RESOLUTION _SERVICEENTRY.fields_by_name['endpoints'].message_type = _SERVICEENTRY_ENDPOINT -_SERVICEENTRY.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_service__dependency__pb2._CONFIGSCOPE +_SERVICEENTRY.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_sidecar__pb2._CONFIGSCOPE _SERVICEENTRY_LOCATION.containing_type = _SERVICEENTRY _SERVICEENTRY_RESOLUTION.containing_type = _SERVICEENTRY DESCRIPTOR.message_types_by_name['ServiceEntry'] = _SERVICEENTRY diff --git a/python/istio_api/networking/v1alpha3/sidecar_pb2.py b/python/istio_api/networking/v1alpha3/sidecar_pb2.py new file mode 100644 index 0000000000..33b4779367 --- /dev/null +++ b/python/istio_api/networking/v1alpha3/sidecar_pb2.py @@ -0,0 +1,360 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: networking/v1alpha3/sidecar.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from networking.v1alpha3 import gateway_pb2 as networking_dot_v1alpha3_dot_gateway__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='networking/v1alpha3/sidecar.proto', + package='istio.networking.v1alpha3', + syntax='proto3', + serialized_pb=_b('\n!networking/v1alpha3/sidecar.proto\x12\x19istio.networking.v1alpha3\x1a!networking/v1alpha3/gateway.proto\"\xd3\x01\n\x07Sidecar\x12\x46\n\x11workload_selector\x18\x01 \x01(\x0b\x32+.istio.networking.v1alpha3.WorkloadSelector\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.IstioIngressListener\x12>\n\x06\x65gress\x18\x03 \x03(\x0b\x32..istio.networking.v1alpha3.IstioEgressListener\"\xab\x01\n\x14IstioIngressListener\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\x18\n\x10\x64\x65\x66\x61ult_endpoint\x18\x04 \x01(\t\"\x9f\x01\n\x13IstioEgressListener\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\r\n\x05hosts\x18\x04 \x03(\t\"\x8a\x01\n\x10WorkloadSelector\x12G\n\x06labels\x18\x01 \x03(\x0b\x32\x37.istio.networking.v1alpha3.WorkloadSelector.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*&\n\x0b\x43onfigScope\x12\n\n\x06PUBLIC\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01*2\n\x0b\x43\x61ptureMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08IPTABLES\x10\x01\x12\x08\n\x04NONE\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + , + dependencies=[networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,]) + +_CONFIGSCOPE = _descriptor.EnumDescriptor( + name='ConfigScope', + full_name='istio.networking.v1alpha3.ConfigScope', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='PUBLIC', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PRIVATE', index=1, number=1, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=790, + serialized_end=828, +) +_sym_db.RegisterEnumDescriptor(_CONFIGSCOPE) + +ConfigScope = enum_type_wrapper.EnumTypeWrapper(_CONFIGSCOPE) +_CAPTUREMODE = _descriptor.EnumDescriptor( + name='CaptureMode', + full_name='istio.networking.v1alpha3.CaptureMode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IPTABLES', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NONE', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=830, + serialized_end=880, +) +_sym_db.RegisterEnumDescriptor(_CAPTUREMODE) + +CaptureMode = enum_type_wrapper.EnumTypeWrapper(_CAPTUREMODE) +PUBLIC = 0 +PRIVATE = 1 +DEFAULT = 0 +IPTABLES = 1 +NONE = 2 + + + +_SIDECAR = _descriptor.Descriptor( + name='Sidecar', + full_name='istio.networking.v1alpha3.Sidecar', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='workload_selector', full_name='istio.networking.v1alpha3.Sidecar.workload_selector', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ingress', full_name='istio.networking.v1alpha3.Sidecar.ingress', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='egress', full_name='istio.networking.v1alpha3.Sidecar.egress', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=100, + serialized_end=311, +) + + +_ISTIOINGRESSLISTENER = _descriptor.Descriptor( + name='IstioIngressListener', + full_name='istio.networking.v1alpha3.IstioIngressListener', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='port', full_name='istio.networking.v1alpha3.IstioIngressListener.port', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bind', full_name='istio.networking.v1alpha3.IstioIngressListener.bind', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='capture_mode', full_name='istio.networking.v1alpha3.IstioIngressListener.capture_mode', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_endpoint', full_name='istio.networking.v1alpha3.IstioIngressListener.default_endpoint', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=314, + serialized_end=485, +) + + +_ISTIOEGRESSLISTENER = _descriptor.Descriptor( + name='IstioEgressListener', + full_name='istio.networking.v1alpha3.IstioEgressListener', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='port', full_name='istio.networking.v1alpha3.IstioEgressListener.port', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bind', full_name='istio.networking.v1alpha3.IstioEgressListener.bind', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='capture_mode', full_name='istio.networking.v1alpha3.IstioEgressListener.capture_mode', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hosts', full_name='istio.networking.v1alpha3.IstioEgressListener.hosts', index=3, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=488, + serialized_end=647, +) + + +_WORKLOADSELECTOR_LABELSENTRY = _descriptor.Descriptor( + name='LabelsEntry', + full_name='istio.networking.v1alpha3.WorkloadSelector.LabelsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.networking.v1alpha3.WorkloadSelector.LabelsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='istio.networking.v1alpha3.WorkloadSelector.LabelsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=743, + serialized_end=788, +) + +_WORKLOADSELECTOR = _descriptor.Descriptor( + name='WorkloadSelector', + full_name='istio.networking.v1alpha3.WorkloadSelector', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='labels', full_name='istio.networking.v1alpha3.WorkloadSelector.labels', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_WORKLOADSELECTOR_LABELSENTRY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=650, + serialized_end=788, +) + +_SIDECAR.fields_by_name['workload_selector'].message_type = _WORKLOADSELECTOR +_SIDECAR.fields_by_name['ingress'].message_type = _ISTIOINGRESSLISTENER +_SIDECAR.fields_by_name['egress'].message_type = _ISTIOEGRESSLISTENER +_ISTIOINGRESSLISTENER.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_gateway__pb2._PORT +_ISTIOINGRESSLISTENER.fields_by_name['capture_mode'].enum_type = _CAPTUREMODE +_ISTIOEGRESSLISTENER.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_gateway__pb2._PORT +_ISTIOEGRESSLISTENER.fields_by_name['capture_mode'].enum_type = _CAPTUREMODE +_WORKLOADSELECTOR_LABELSENTRY.containing_type = _WORKLOADSELECTOR +_WORKLOADSELECTOR.fields_by_name['labels'].message_type = _WORKLOADSELECTOR_LABELSENTRY +DESCRIPTOR.message_types_by_name['Sidecar'] = _SIDECAR +DESCRIPTOR.message_types_by_name['IstioIngressListener'] = _ISTIOINGRESSLISTENER +DESCRIPTOR.message_types_by_name['IstioEgressListener'] = _ISTIOEGRESSLISTENER +DESCRIPTOR.message_types_by_name['WorkloadSelector'] = _WORKLOADSELECTOR +DESCRIPTOR.enum_types_by_name['ConfigScope'] = _CONFIGSCOPE +DESCRIPTOR.enum_types_by_name['CaptureMode'] = _CAPTUREMODE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Sidecar = _reflection.GeneratedProtocolMessageType('Sidecar', (_message.Message,), dict( + DESCRIPTOR = _SIDECAR, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Sidecar) + )) +_sym_db.RegisterMessage(Sidecar) + +IstioIngressListener = _reflection.GeneratedProtocolMessageType('IstioIngressListener', (_message.Message,), dict( + DESCRIPTOR = _ISTIOINGRESSLISTENER, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.IstioIngressListener) + )) +_sym_db.RegisterMessage(IstioIngressListener) + +IstioEgressListener = _reflection.GeneratedProtocolMessageType('IstioEgressListener', (_message.Message,), dict( + DESCRIPTOR = _ISTIOEGRESSLISTENER, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.IstioEgressListener) + )) +_sym_db.RegisterMessage(IstioEgressListener) + +WorkloadSelector = _reflection.GeneratedProtocolMessageType('WorkloadSelector', (_message.Message,), dict( + + LabelsEntry = _reflection.GeneratedProtocolMessageType('LabelsEntry', (_message.Message,), dict( + DESCRIPTOR = _WORKLOADSELECTOR_LABELSENTRY, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.WorkloadSelector.LabelsEntry) + )) + , + DESCRIPTOR = _WORKLOADSELECTOR, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.WorkloadSelector) + )) +_sym_db.RegisterMessage(WorkloadSelector) +_sym_db.RegisterMessage(WorkloadSelector.LabelsEntry) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z istio.io/api/networking/v1alpha3')) +_WORKLOADSELECTOR_LABELSENTRY.has_options = True +_WORKLOADSELECTOR_LABELSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +# @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py index 7df90ca370..4bff1527b2 100644 --- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py +++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py @@ -15,16 +15,16 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -from networking.v1alpha3 import service_dependency_pb2 as networking_dot_v1alpha3_dot_service__dependency__pb2 +from networking.v1alpha3 import sidecar_pb2 as networking_dot_v1alpha3_dot_sidecar__pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='networking/v1alpha3/virtual_service.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a,networking/v1alpha3/service_dependency.proto\"\x87\x02\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\x12<\n\x0c\x63onfig_scope\x18\x06 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xf9\x08\n\tHTTPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12\x19\n\x11websocket_upgrade\x18\x05 \x01(\x08\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12S\n\x0e\x61ppend_headers\x18\x0b \x03(\x0b\x32\x37.istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntryB\x02\x18\x01\x12#\n\x17remove_response_headers\x18\x0c \x03(\tB\x02\x18\x01\x12\x64\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x0e \x03(\tB\x02\x18\x01\x12\x62\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\xc0\x04\n\x10HTTPMatchRequest\x12\x33\n\x03uri\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06scheme\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06method\x18\x03 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x39\n\tauthority\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.istio.networking.v1alpha3.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12T\n\rsource_labels\x18\x07 \x03(\x0b\x32=.istio.networking.v1alpha3.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x1aV\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbc\x04\n\x14HTTPRouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12#\n\x17remove_response_headers\x18\x03 \x03(\tB\x02\x18\x01\x12o\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x05 \x03(\tB\x02\x18\x01\x12m\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"_\n\x10RouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"-\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"c\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a!networking/v1alpha3/sidecar.proto\"\x87\x02\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\x12<\n\x0c\x63onfig_scope\x18\x06 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xf9\x08\n\tHTTPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12\x19\n\x11websocket_upgrade\x18\x05 \x01(\x08\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12S\n\x0e\x61ppend_headers\x18\x0b \x03(\x0b\x32\x37.istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntryB\x02\x18\x01\x12#\n\x17remove_response_headers\x18\x0c \x03(\tB\x02\x18\x01\x12\x64\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x0e \x03(\tB\x02\x18\x01\x12\x62\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\xc0\x04\n\x10HTTPMatchRequest\x12\x33\n\x03uri\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06scheme\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06method\x18\x03 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x39\n\tauthority\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.istio.networking.v1alpha3.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12T\n\rsource_labels\x18\x07 \x03(\x0b\x32=.istio.networking.v1alpha3.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x1aV\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbc\x04\n\x14HTTPRouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12#\n\x17remove_response_headers\x18\x03 \x03(\tB\x02\x18\x01\x12o\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x05 \x03(\tB\x02\x18\x01\x12m\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"_\n\x10RouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"-\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"c\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , - dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_service__dependency__pb2.DESCRIPTOR,]) + dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_sidecar__pb2.DESCRIPTOR,]) @@ -90,8 +90,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=183, - serialized_end=446, + serialized_start=172, + serialized_end=435, ) @@ -135,8 +135,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=448, - serialized_end=546, + serialized_start=437, + serialized_end=535, ) @@ -173,8 +173,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1519, - serialized_end=1571, + serialized_start=1508, + serialized_end=1560, ) _HTTPROUTE_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( @@ -210,8 +210,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1573, - serialized_end=1633, + serialized_start=1562, + serialized_end=1622, ) _HTTPROUTE_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -247,8 +247,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1635, - serialized_end=1694, + serialized_start=1624, + serialized_end=1683, ) _HTTPROUTE = _descriptor.Descriptor( @@ -382,8 +382,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=549, - serialized_end=1694, + serialized_start=538, + serialized_end=1683, ) @@ -420,8 +420,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2036, - serialized_end=2078, + serialized_start=2025, + serialized_end=2067, ) _HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor( @@ -457,8 +457,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2080, - serialized_end=2122, + serialized_start=2069, + serialized_end=2111, ) _HEADERS_HEADEROPERATIONS = _descriptor.Descriptor( @@ -501,8 +501,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1850, - serialized_end=2122, + serialized_start=1839, + serialized_end=2111, ) _HEADERS = _descriptor.Descriptor( @@ -538,8 +538,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1697, - serialized_end=2122, + serialized_start=1686, + serialized_end=2111, ) @@ -576,8 +576,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2125, - serialized_end=2257, + serialized_start=2114, + serialized_end=2246, ) @@ -614,8 +614,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2260, - serialized_end=2391, + serialized_start=2249, + serialized_end=2380, ) @@ -652,8 +652,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2831, - serialized_end=2917, + serialized_start=2820, + serialized_end=2906, ) _HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor( @@ -689,8 +689,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2919, - serialized_end=2970, + serialized_start=2908, + serialized_end=2959, ) _HTTPMATCHREQUEST = _descriptor.Descriptor( @@ -768,8 +768,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2394, - serialized_end=2970, + serialized_start=2383, + serialized_end=2959, ) @@ -806,8 +806,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1573, - serialized_end=1633, + serialized_start=1562, + serialized_end=1622, ) _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -843,8 +843,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1635, - serialized_end=1694, + serialized_start=1624, + serialized_end=1683, ) _HTTPROUTEDESTINATION = _descriptor.Descriptor( @@ -915,8 +915,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2973, - serialized_end=3545, + serialized_start=2962, + serialized_end=3534, ) @@ -953,8 +953,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3547, - serialized_end=3642, + serialized_start=3536, + serialized_end=3631, ) @@ -991,8 +991,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2919, - serialized_end=2970, + serialized_start=2908, + serialized_end=2959, ) _L4MATCHATTRIBUTES = _descriptor.Descriptor( @@ -1049,8 +1049,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3645, - serialized_end=3888, + serialized_start=3634, + serialized_end=3877, ) @@ -1087,8 +1087,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2919, - serialized_end=2970, + serialized_start=2908, + serialized_end=2959, ) _TLSMATCHATTRIBUTES = _descriptor.Descriptor( @@ -1152,8 +1152,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3891, - serialized_end=4155, + serialized_start=3880, + serialized_end=4144, ) @@ -1190,8 +1190,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4157, - serialized_end=4203, + serialized_start=4146, + serialized_end=4192, ) @@ -1228,8 +1228,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4205, - serialized_end=4250, + serialized_start=4194, + serialized_end=4239, ) @@ -1276,8 +1276,8 @@ name='match_type', full_name='istio.networking.v1alpha3.StringMatch.match_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4252, - serialized_end=4331, + serialized_start=4241, + serialized_end=4320, ) @@ -1321,8 +1321,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4333, - serialized_end=4432, + serialized_start=4322, + serialized_end=4421, ) @@ -1387,8 +1387,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4435, - serialized_end=4638, + serialized_start=4424, + serialized_end=4627, ) @@ -1442,8 +1442,8 @@ name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4800, - serialized_end=5009, + serialized_start=4789, + serialized_end=4998, ) _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( @@ -1503,8 +1503,8 @@ name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type', index=0, containing_type=None, fields=[]), ], - serialized_start=5012, - serialized_end=5179, + serialized_start=5001, + serialized_end=5168, ) _HTTPFAULTINJECTION = _descriptor.Descriptor( @@ -1540,8 +1540,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4641, - serialized_end=5179, + serialized_start=4630, + serialized_end=5168, ) @@ -1581,8 +1581,8 @@ name='port', full_name='istio.networking.v1alpha3.PortSelector.port', index=0, containing_type=None, fields=[]), ], - serialized_start=5181, - serialized_end=5237, + serialized_start=5170, + serialized_end=5226, ) @@ -1612,14 +1612,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5239, - serialized_end=5263, + serialized_start=5228, + serialized_end=5252, ) _VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE _VIRTUALSERVICE.fields_by_name['tls'].message_type = _TLSROUTE _VIRTUALSERVICE.fields_by_name['tcp'].message_type = _TCPROUTE -_VIRTUALSERVICE.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_service__dependency__pb2._CONFIGSCOPE +_VIRTUALSERVICE.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_sidecar__pb2._CONFIGSCOPE _DESTINATION.fields_by_name['port'].message_type = _PORTSELECTOR _HTTPROUTE_APPENDHEADERSENTRY.containing_type = _HTTPROUTE _HTTPROUTE_APPENDRESPONSEHEADERSENTRY.containing_type = _HTTPROUTE