diff --git a/Makefile b/Makefile index a74a1d6f..5d804e31 100644 --- a/Makefile +++ b/Makefile @@ -351,6 +351,9 @@ clean-envoy: proto-commit: @$(docker_lock) commit +proto-commit-force: + @$(docker_lock) commit --force + ##################### # Lint ##################### diff --git a/mesh/v1alpha1/config.pb.go b/mesh/v1alpha1/config.pb.go index f613644c..7ae7af46 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_v1alpha31 "istio.io/api/networking/v1alpha3" +import istio_networking_v1alpha32 "istio.io/api/networking/v1alpha3" import io "io" @@ -152,6 +152,34 @@ func (MeshConfig_OutboundTrafficPolicy_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptorConfig, []int{0, 0, 0} } +type MeshConfig_DefaultNetworkScope_Mode int32 + +const ( + // Configure routes to services in all namespaces, i.e. import + // services from all namespaces. + MeshConfig_DefaultNetworkScope_ALL_NAMESPACES MeshConfig_DefaultNetworkScope_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_DefaultNetworkScope_SAME_NAMESPACE MeshConfig_DefaultNetworkScope_Mode = 1 +) + +var MeshConfig_DefaultNetworkScope_Mode_name = map[int32]string{ + 0: "ALL_NAMESPACES", + 1: "SAME_NAMESPACE", +} +var MeshConfig_DefaultNetworkScope_Mode_value = map[string]int32{ + "ALL_NAMESPACES": 0, + "SAME_NAMESPACE": 1, +} + +func (x MeshConfig_DefaultNetworkScope_Mode) String() string { + return proto.EnumName(MeshConfig_DefaultNetworkScope_Mode_name, int32(x)) +} +func (MeshConfig_DefaultNetworkScope_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. // @@ -189,7 +217,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_v1alpha31.ConnectionPoolSettings_TCPSettings_TcpKeepalive `protobuf:"bytes,28,opt,name=tcp_keepalive,json=tcpKeepalive" json:"tcp_keepalive,omitempty"` + TcpKeepalive *istio_networking_v1alpha32.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. @@ -250,6 +278,12 @@ type MeshConfig struct { // 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 network scope 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 overriden by supplying a + // NetworkScope resource per namespace. + DefaultNetworkScope *MeshConfig_DefaultNetworkScope `protobuf:"bytes,29,opt,name=default_network_scope,json=defaultNetworkScope" json:"default_network_scope,omitempty"` } func (m *MeshConfig) Reset() { *m = MeshConfig{} } @@ -306,7 +340,7 @@ func (m *MeshConfig) GetConnectTimeout() *google_protobuf.Duration { return nil } -func (m *MeshConfig) GetTcpKeepalive() *istio_networking_v1alpha31.ConnectionPoolSettings_TCPSettings_TcpKeepalive { +func (m *MeshConfig) GetTcpKeepalive() *istio_networking_v1alpha32.ConnectionPoolSettings_TCPSettings_TcpKeepalive { if m != nil { return m.TcpKeepalive } @@ -439,6 +473,13 @@ func (m *MeshConfig) GetTrustDomain() string { return "" } +func (m *MeshConfig) GetDefaultNetworkScope() *MeshConfig_DefaultNetworkScope { + if m != nil { + return m.DefaultNetworkScope + } + 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"` } @@ -457,6 +498,41 @@ func (m *MeshConfig_OutboundTrafficPolicy) GetMode() MeshConfig_OutboundTrafficP return MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY } +// Default network scope settings for each workload in the mesh. Network +// scope controls the reachability of workloads to other services in the +// mesh. +type MeshConfig_DefaultNetworkScope struct { + // REQUIRED: The default import setting for every workload in the mesh. + ImportMode MeshConfig_DefaultNetworkScope_Mode `protobuf:"varint,1,opt,name=import_mode,json=importMode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_DefaultNetworkScope_Mode" json:"import_mode,omitempty"` + // Specifies one or more namespaces that should be imported by default + // in all user defined NetworkScope 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_DefaultNetworkScope) Reset() { *m = MeshConfig_DefaultNetworkScope{} } +func (m *MeshConfig_DefaultNetworkScope) String() string { return proto.CompactTextString(m) } +func (*MeshConfig_DefaultNetworkScope) ProtoMessage() {} +func (*MeshConfig_DefaultNetworkScope) Descriptor() ([]byte, []int) { + return fileDescriptorConfig, []int{0, 1} +} + +func (m *MeshConfig_DefaultNetworkScope) GetImportMode() MeshConfig_DefaultNetworkScope_Mode { + if m != nil { + return m.ImportMode + } + return MeshConfig_DefaultNetworkScope_ALL_NAMESPACES +} + +func (m *MeshConfig_DefaultNetworkScope) 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. @@ -468,7 +544,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_v1alpha31.TLSSettings `protobuf:"bytes,2,opt,name=tls_settings,json=tlsSettings" json:"tls_settings,omitempty"` + TlsSettings *istio_networking_v1alpha32.TLSSettings `protobuf:"bytes,2,opt,name=tls_settings,json=tlsSettings" json:"tls_settings,omitempty"` } func (m *ConfigSource) Reset() { *m = ConfigSource{} } @@ -483,7 +559,7 @@ func (m *ConfigSource) GetAddress() string { return "" } -func (m *ConfigSource) GetTlsSettings() *istio_networking_v1alpha31.TLSSettings { +func (m *ConfigSource) GetTlsSettings() *istio_networking_v1alpha32.TLSSettings { if m != nil { return m.TlsSettings } @@ -493,11 +569,13 @@ func (m *ConfigSource) GetTlsSettings() *istio_networking_v1alpha31.TLSSettings func init() { proto.RegisterType((*MeshConfig)(nil), "istio.mesh.v1alpha1.MeshConfig") proto.RegisterType((*MeshConfig_OutboundTrafficPolicy)(nil), "istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy") + proto.RegisterType((*MeshConfig_DefaultNetworkScope)(nil), "istio.mesh.v1alpha1.MeshConfig.DefaultNetworkScope") 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_DefaultNetworkScope_Mode", MeshConfig_DefaultNetworkScope_Mode_name, MeshConfig_DefaultNetworkScope_Mode_value) } func (m *MeshConfig) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -739,6 +817,18 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) { } i += n6 } + if m.DefaultNetworkScope != nil { + dAtA[i] = 0xea + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintConfig(dAtA, i, uint64(m.DefaultNetworkScope.Size())) + n7, err := m.DefaultNetworkScope.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + } return i, nil } @@ -765,6 +855,44 @@ func (m *MeshConfig_OutboundTrafficPolicy) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *MeshConfig_DefaultNetworkScope) 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_DefaultNetworkScope) 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) @@ -790,11 +918,11 @@ func (m *ConfigSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintConfig(dAtA, i, uint64(m.TlsSettings.Size())) - n7, err := m.TlsSettings.MarshalTo(dAtA[i:]) + n8, err := m.TlsSettings.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n8 } return i, nil } @@ -907,6 +1035,10 @@ func (m *MeshConfig) Size() (n int) { l = m.TcpKeepalive.Size() n += 2 + l + sovConfig(uint64(l)) } + if m.DefaultNetworkScope != nil { + l = m.DefaultNetworkScope.Size() + n += 2 + l + sovConfig(uint64(l)) + } return n } @@ -919,6 +1051,21 @@ func (m *MeshConfig_OutboundTrafficPolicy) Size() (n int) { return n } +func (m *MeshConfig_DefaultNetworkScope) 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 @@ -1654,12 +1801,45 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.TcpKeepalive == nil { - m.TcpKeepalive = &istio_networking_v1alpha31.ConnectionPoolSettings_TCPSettings_TcpKeepalive{} + m.TcpKeepalive = &istio_networking_v1alpha32.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 DefaultNetworkScope", 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.DefaultNetworkScope == nil { + m.DefaultNetworkScope = &MeshConfig_DefaultNetworkScope{} + } + if err := m.DefaultNetworkScope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipConfig(dAtA[iNdEx:]) @@ -1750,6 +1930,104 @@ func (m *MeshConfig_OutboundTrafficPolicy) Unmarshal(dAtA []byte) error { } return nil } +func (m *MeshConfig_DefaultNetworkScope) 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: DefaultNetworkScope: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DefaultNetworkScope: 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_DefaultNetworkScope_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 @@ -1835,7 +2113,7 @@ func (m *ConfigSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.TlsSettings == nil { - m.TlsSettings = &istio_networking_v1alpha31.TLSSettings{} + m.TlsSettings = &istio_networking_v1alpha32.TLSSettings{} } if err := m.TlsSettings.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -1970,75 +2248,82 @@ var ( func init() { proto.RegisterFile("mesh/v1alpha1/config.proto", fileDescriptorConfig) } var fileDescriptorConfig = []byte{ - // 1117 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x6e, 0xdb, 0x36, - 0x14, 0x8e, 0xd2, 0xb4, 0x49, 0x8f, 0xff, 0x64, 0xa6, 0x6e, 0x59, 0xb7, 0xc8, 0xdc, 0x0c, 0x6b, - 0x8d, 0x62, 0x90, 0xd1, 0x04, 0xbb, 0xd8, 0xee, 0x52, 0xc7, 0x69, 0x9d, 0x39, 0xb1, 0x21, 0x29, - 0xdd, 0xba, 0x1b, 0x42, 0x91, 0x68, 0x9b, 0x88, 0x2c, 0x6a, 0x22, 0xd5, 0xb5, 0xcf, 0xb3, 0xc7, - 0xd8, 0x0b, 0xec, 0x72, 0x8f, 0x30, 0xf4, 0x49, 0x06, 0x92, 0x52, 0xed, 0xb4, 0xc6, 0x32, 0xec, - 0xce, 0xfc, 0xce, 0x77, 0xce, 0x21, 0xbf, 0xf3, 0x23, 0x43, 0x7b, 0x41, 0xc5, 0xbc, 0xf7, 0xee, - 0x45, 0x10, 0xa7, 0xf3, 0xe0, 0x45, 0x2f, 0xe4, 0xc9, 0x94, 0xcd, 0x9c, 0x34, 0xe3, 0x92, 0xa3, - 0x5d, 0x26, 0x24, 0xe3, 0x8e, 0x62, 0x38, 0x25, 0xa3, 0xbd, 0x37, 0xe3, 0x7c, 0x16, 0xd3, 0x9e, - 0xa6, 0x5c, 0xe6, 0xd3, 0x5e, 0x94, 0x67, 0x81, 0x64, 0x3c, 0x31, 0x4e, 0xed, 0x87, 0xd7, 0x03, - 0xa6, 0x19, 0x7f, 0xff, 0xa1, 0x30, 0x3d, 0x4f, 0xa8, 0xfc, 0x8d, 0x67, 0x57, 0x2c, 0x99, 0x95, - 0x84, 0xc3, 0x5e, 0x44, 0x85, 0x64, 0x89, 0x8e, 0x40, 0xb2, 0x3c, 0xa6, 0x86, 0xbb, 0xff, 0x7b, - 0x03, 0xe0, 0x8c, 0x8a, 0x79, 0x5f, 0x5f, 0x08, 0x7d, 0x0b, 0x68, 0xc1, 0xde, 0xd3, 0x8c, 0x84, - 0x73, 0x1a, 0x5e, 0x11, 0x41, 0xb3, 0x77, 0x34, 0xc3, 0x56, 0xc7, 0xea, 0xde, 0x75, 0x6d, 0x6d, - 0xe9, 0x2b, 0x83, 0xa7, 0x71, 0xe4, 0xc0, 0xae, 0x61, 0x67, 0x34, 0xe5, 0x99, 0x2c, 0xe9, 0x9b, - 0x9a, 0xde, 0xd4, 0x26, 0x57, 0x5b, 0x0a, 0xfe, 0x01, 0xb4, 0x22, 0x26, 0x82, 0xcb, 0x98, 0x92, - 0x94, 0xc7, 0x2c, 0xfc, 0x60, 0xd2, 0x08, 0x7c, 0xab, 0x63, 0x75, 0x77, 0xdc, 0xdd, 0xc2, 0x38, - 0xd1, 0x36, 0x9d, 0x48, 0xa0, 0xe7, 0xd0, 0xd4, 0x6f, 0x23, 0x31, 0x13, 0x92, 0x26, 0x44, 0x85, - 0xc3, 0x5b, 0x1d, 0xab, 0x7b, 0xdb, 0x6d, 0x68, 0xc3, 0x48, 0xe3, 0x13, 0x9e, 0x49, 0xf4, 0x14, - 0x0c, 0x44, 0xe6, 0x52, 0xa6, 0x86, 0x79, 0x5b, 0x33, 0x6b, 0x1a, 0x7e, 0x2d, 0x65, 0xaa, 0x79, - 0x2f, 0xa1, 0x11, 0xf2, 0x24, 0xa1, 0xa1, 0x24, 0x92, 0x2d, 0x28, 0xcf, 0x25, 0xbe, 0xd3, 0xb1, - 0xba, 0x95, 0x83, 0x87, 0x8e, 0x51, 0xdd, 0x29, 0x55, 0x77, 0x8e, 0x0b, 0xd5, 0xdd, 0x7a, 0xe1, - 0xe1, 0x1b, 0x07, 0xf4, 0x35, 0xd4, 0x58, 0x32, 0xcb, 0xa8, 0x10, 0x24, 0x8c, 0x03, 0x21, 0xf0, - 0xb6, 0x7e, 0x75, 0xb5, 0x00, 0xfb, 0x0a, 0x43, 0xcf, 0xa0, 0x51, 0x92, 0x94, 0x36, 0x2c, 0xa4, - 0x78, 0x47, 0xd3, 0xea, 0x05, 0xec, 0x19, 0x14, 0x2d, 0xe0, 0xc1, 0xa7, 0x68, 0x3c, 0x91, 0x19, - 0x8f, 0x63, 0x9a, 0x91, 0x05, 0x8f, 0x28, 0xbe, 0xdb, 0xb1, 0xba, 0xf5, 0x83, 0xef, 0x9c, 0x35, - 0x4d, 0xe2, 0x2c, 0x2b, 0xe7, 0x0c, 0x8b, 0xbc, 0x9f, 0xbc, 0xcf, 0x78, 0x44, 0xdd, 0x16, 0x5b, - 0x07, 0xa3, 0x31, 0x54, 0x82, 0x5c, 0xce, 0x8b, 0x2a, 0x60, 0xd0, 0x29, 0x9e, 0xdf, 0x94, 0xe2, - 0x28, 0x97, 0x73, 0x53, 0x9b, 0x97, 0x9b, 0xd8, 0x72, 0x21, 0xf8, 0x74, 0x46, 0x43, 0x68, 0x66, - 0x91, 0x20, 0x19, 0x9d, 0x66, 0x54, 0xcc, 0x49, 0x44, 0xe3, 0xe0, 0x03, 0xae, 0xdc, 0xa0, 0xa9, - 0x8e, 0xd2, 0xc8, 0x22, 0xe1, 0x1a, 0xb7, 0x63, 0xe5, 0x85, 0xbe, 0x81, 0x3a, 0x4d, 0x74, 0x8f, - 0xc8, 0x2c, 0x08, 0x59, 0x32, 0xc3, 0x55, 0xdd, 0x1d, 0x35, 0x83, 0xfa, 0x06, 0x54, 0xb5, 0x0e, - 0xc2, 0x50, 0x09, 0x16, 0xf3, 0x19, 0x99, 0xb2, 0x98, 0xe2, 0x9a, 0x96, 0xb6, 0x66, 0xe0, 0x11, - 0x9f, 0x9d, 0xb0, 0x98, 0xa2, 0x57, 0x50, 0x8f, 0xe8, 0x34, 0xc8, 0x63, 0x49, 0xcc, 0xd0, 0xe1, - 0xba, 0xbe, 0x56, 0x67, 0xed, 0x6b, 0x27, 0xaa, 0x4f, 0xcc, 0x73, 0xdd, 0x5a, 0xe1, 0x57, 0x8c, - 0xc6, 0x33, 0xa8, 0x99, 0x66, 0x0f, 0xa2, 0x48, 0x49, 0x8a, 0x6d, 0x95, 0x4e, 0xbf, 0xa1, 0xaa, - 0x0d, 0x47, 0x06, 0x47, 0xbf, 0xc2, 0x03, 0x9e, 0xcb, 0x4b, 0x9e, 0x27, 0x91, 0x7a, 0xc2, 0x74, - 0xca, 0xc2, 0x52, 0xe8, 0xa6, 0x4e, 0x7d, 0x63, 0x2d, 0xc7, 0x85, 0xbb, 0x6f, 0xbc, 0x57, 0x34, - 0x6f, 0xf1, 0x75, 0x26, 0x74, 0x0c, 0x5f, 0x15, 0x9a, 0x85, 0x31, 0xa3, 0x89, 0x24, 0x82, 0x45, - 0xd7, 0x67, 0x0c, 0xef, 0x6a, 0x11, 0x1f, 0x19, 0x5a, 0x5f, 0xb3, 0x3c, 0x16, 0xad, 0xce, 0x1a, - 0xea, 0x40, 0x55, 0x44, 0x82, 0xe4, 0x91, 0x20, 0x69, 0x20, 0xe7, 0xf8, 0x9e, 0xd6, 0x13, 0x44, - 0x24, 0x2e, 0x22, 0x31, 0x09, 0xe4, 0x5c, 0x95, 0x59, 0x7c, 0x51, 0xe6, 0xd6, 0x7f, 0x2a, 0xb3, - 0xf8, 0xac, 0xcc, 0xaf, 0xa1, 0x6e, 0xea, 0x41, 0x04, 0xcf, 0xb3, 0x90, 0x0a, 0x7c, 0xbf, 0x73, - 0xab, 0x5b, 0x39, 0x78, 0xb2, 0x56, 0x1c, 0x23, 0x8c, 0xa7, 0x99, 0x6e, 0x2d, 0x5c, 0x39, 0x09, - 0x74, 0x08, 0xf7, 0x8b, 0xc7, 0xab, 0xbb, 0x49, 0x7e, 0x45, 0x13, 0xb2, 0xe0, 0x79, 0x22, 0xf1, - 0x03, 0xb3, 0x56, 0x8c, 0xd5, 0x8b, 0x84, 0xaf, 0x6c, 0x67, 0xca, 0xa4, 0xd6, 0xca, 0x6a, 0xfb, - 0xf0, 0x6c, 0x11, 0x48, 0x8c, 0xf5, 0x83, 0x1b, 0xcb, 0x06, 0xd2, 0xb0, 0x4a, 0xb0, 0x2a, 0x25, - 0x99, 0x06, 0x2c, 0x26, 0x3c, 0xa5, 0x09, 0x7e, 0x68, 0x12, 0xa4, 0x4b, 0x11, 0x4f, 0x02, 0x16, - 0x8f, 0x53, 0x9a, 0xa0, 0x27, 0x50, 0x95, 0x59, 0x2e, 0x24, 0x89, 0xf8, 0x22, 0x60, 0x09, 0x6e, - 0xeb, 0xd8, 0x15, 0x8d, 0x1d, 0x6b, 0x08, 0x05, 0xb0, 0xbb, 0x72, 0x07, 0x9a, 0x84, 0x3c, 0x52, - 0xed, 0xfe, 0x48, 0x4f, 0xe3, 0x8b, 0x1b, 0xa7, 0xb1, 0xbc, 0xe5, 0xa0, 0x70, 0x74, 0x9b, 0xc1, - 0xe7, 0x10, 0xe2, 0x50, 0x93, 0x61, 0x4a, 0xae, 0x28, 0x4d, 0x83, 0x98, 0xbd, 0xa3, 0xf8, 0xb1, - 0x2e, 0xd6, 0x69, 0x11, 0x7c, 0xf9, 0xa1, 0x28, 0x53, 0x1c, 0x2a, 0xa9, 0xd5, 0x9e, 0x63, 0x3c, - 0x99, 0x70, 0x1e, 0x7b, 0x54, 0x4a, 0x96, 0xcc, 0x84, 0xe3, 0xf7, 0x27, 0xcb, 0xdf, 0x61, 0xfa, - 0x63, 0x19, 0xd1, 0xad, 0xca, 0x95, 0x53, 0xfb, 0x0f, 0x0b, 0x5a, 0x6b, 0xdb, 0x17, 0xb9, 0xb0, - 0xa5, 0xf7, 0x99, 0xa5, 0x9f, 0xf7, 0xc3, 0xff, 0x9a, 0x01, 0x47, 0x6d, 0x2f, 0xdd, 0x4f, 0x3a, - 0xd6, 0xfe, 0x39, 0x6c, 0xe9, 0x7d, 0xd6, 0x82, 0x9a, 0x3b, 0x78, 0x35, 0xf4, 0x7c, 0xf7, 0x2d, - 0x19, 0x9f, 0x8f, 0xde, 0xda, 0x1b, 0xed, 0xcd, 0x1d, 0x0b, 0x35, 0xe1, 0xee, 0xd1, 0x68, 0x34, - 0xfe, 0x89, 0x1c, 0x9d, 0xbf, 0xb5, 0x2d, 0x0d, 0x3d, 0x86, 0x7b, 0x6f, 0x86, 0xae, 0x7f, 0x71, - 0x34, 0x22, 0xde, 0xc0, 0x7d, 0x33, 0xec, 0x0f, 0x8c, 0xc3, 0xa6, 0xb2, 0xee, 0x7f, 0x0f, 0xad, - 0xb5, 0x7b, 0x14, 0x6d, 0xc3, 0xad, 0xf1, 0xc9, 0x89, 0xbd, 0x81, 0x2a, 0xb0, 0x7d, 0x3c, 0x38, - 0x39, 0xba, 0x18, 0xf9, 0xb6, 0x85, 0x00, 0xee, 0x78, 0xbe, 0x3b, 0xec, 0xfb, 0xf6, 0xe6, 0xfe, - 0x53, 0x80, 0xe5, 0x7e, 0x44, 0x3b, 0xb0, 0x75, 0x3e, 0x3e, 0x1f, 0xd8, 0x1b, 0xa8, 0x0e, 0x70, - 0x76, 0xa1, 0xf3, 0xf9, 0x23, 0xcf, 0xb6, 0xf6, 0x9f, 0x41, 0xf3, 0x8b, 0xca, 0x29, 0xba, 0x3f, - 0xf8, 0xd9, 0xb7, 0x37, 0xd4, 0xaf, 0x53, 0x6f, 0x7c, 0x6e, 0x5b, 0xa7, 0x5b, 0x3b, 0x0d, 0xdb, - 0x3e, 0xdd, 0xda, 0x41, 0xf6, 0xee, 0xbe, 0x80, 0xea, 0xea, 0x04, 0x20, 0x0c, 0xdb, 0xe5, 0x16, - 0x32, 0xdf, 0xe6, 0xf2, 0x88, 0x86, 0x50, 0x95, 0xb1, 0xfa, 0xda, 0x98, 0x52, 0xe9, 0x6f, 0x71, - 0xe5, 0xe0, 0xe9, 0xbf, 0xd4, 0xdb, 0x1f, 0x79, 0x65, 0x61, 0xdd, 0x8a, 0x8c, 0x45, 0x79, 0x78, - 0xd9, 0xfd, 0xf3, 0xe3, 0x9e, 0xf5, 0xd7, 0xc7, 0x3d, 0xeb, 0xef, 0x8f, 0x7b, 0xd6, 0x2f, 0x6d, - 0x13, 0x81, 0xf1, 0x5e, 0x90, 0xb2, 0xde, 0xb5, 0x3f, 0x1f, 0x97, 0x77, 0xf4, 0xcc, 0x1f, 0xfe, - 0x13, 0x00, 0x00, 0xff, 0xff, 0x42, 0x10, 0x6c, 0xd1, 0xe5, 0x08, 0x00, 0x00, + // 1226 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x6e, 0xdb, 0xb6, + 0x17, 0x8f, 0x92, 0xb4, 0x49, 0x8f, 0x3f, 0x22, 0xd3, 0x75, 0xab, 0xba, 0xfd, 0xe7, 0xef, 0x66, + 0x58, 0x6b, 0x74, 0x83, 0x8c, 0x26, 0x18, 0xb0, 0xed, 0xce, 0x75, 0x9c, 0xd6, 0x99, 0x63, 0x1b, + 0x92, 0xd2, 0x2d, 0xbb, 0x21, 0x14, 0x89, 0xb6, 0x89, 0xc8, 0xa2, 0x26, 0x52, 0x5d, 0xfb, 0x6c, + 0x7b, 0x81, 0xdd, 0x0c, 0xd8, 0x03, 0xec, 0x62, 0xe8, 0x93, 0x0c, 0x24, 0xa5, 0xd8, 0x6d, 0x8d, + 0x65, 0xe8, 0x9d, 0xf8, 0x3b, 0x5f, 0x3c, 0xbf, 0xf3, 0x41, 0x41, 0x73, 0x41, 0xf8, 0xbc, 0xf3, + 0xe6, 0xb9, 0x1f, 0x25, 0x73, 0xff, 0x79, 0x27, 0x60, 0xf1, 0x94, 0xce, 0xec, 0x24, 0x65, 0x82, + 0xa1, 0x3a, 0xe5, 0x82, 0x32, 0x5b, 0x6a, 0xd8, 0x85, 0x46, 0x73, 0x7f, 0xc6, 0xd8, 0x2c, 0x22, + 0x1d, 0xa5, 0x72, 0x99, 0x4d, 0x3b, 0x61, 0x96, 0xfa, 0x82, 0xb2, 0x58, 0x1b, 0x35, 0x1f, 0x7c, + 0xe8, 0x30, 0x49, 0xd9, 0xdb, 0x77, 0xb9, 0xe8, 0x59, 0x4c, 0xc4, 0xaf, 0x2c, 0xbd, 0xa2, 0xf1, + 0xac, 0x50, 0x38, 0xea, 0x84, 0x84, 0x0b, 0x1a, 0x2b, 0x0f, 0x38, 0xcd, 0x22, 0xa2, 0x75, 0x0f, + 0xfe, 0xaa, 0x01, 0x9c, 0x11, 0x3e, 0xef, 0xa9, 0x0b, 0xa1, 0xaf, 0x01, 0x2d, 0xe8, 0x5b, 0x92, + 0xe2, 0x60, 0x4e, 0x82, 0x2b, 0xcc, 0x49, 0xfa, 0x86, 0xa4, 0x96, 0xd1, 0x32, 0xda, 0x77, 0x1c, + 0x53, 0x49, 0x7a, 0x52, 0xe0, 0x2a, 0x1c, 0xd9, 0x50, 0xd7, 0xda, 0x29, 0x49, 0x58, 0x2a, 0x0a, + 0xf5, 0x4d, 0xa5, 0x5e, 0x53, 0x22, 0x47, 0x49, 0x72, 0xfd, 0x43, 0x68, 0x84, 0x94, 0xfb, 0x97, + 0x11, 0xc1, 0x09, 0x8b, 0x68, 0xf0, 0x4e, 0x87, 0xe1, 0xd6, 0x56, 0xcb, 0x68, 0xef, 0x3a, 0xf5, + 0x5c, 0x38, 0x51, 0x32, 0x15, 0x88, 0xa3, 0x67, 0x50, 0x53, 0xb9, 0xe1, 0x88, 0x72, 0x41, 0x62, + 0x2c, 0xdd, 0x59, 0xdb, 0x2d, 0xa3, 0x7d, 0xcb, 0xd9, 0x53, 0x82, 0xa1, 0xc2, 0x27, 0x2c, 0x15, + 0xe8, 0x09, 0x68, 0x08, 0xcf, 0x85, 0x48, 0xb4, 0xe6, 0x2d, 0xa5, 0x59, 0x51, 0xf0, 0x2b, 0x21, + 0x12, 0xa5, 0xf7, 0x02, 0xf6, 0x02, 0x16, 0xc7, 0x24, 0x10, 0x58, 0xd0, 0x05, 0x61, 0x99, 0xb0, + 0x6e, 0xb7, 0x8c, 0x76, 0xe9, 0xf0, 0x81, 0xad, 0x59, 0xb7, 0x0b, 0xd6, 0xed, 0xe3, 0x9c, 0x75, + 0xa7, 0x9a, 0x5b, 0x78, 0xda, 0x00, 0x7d, 0x01, 0x15, 0x1a, 0xcf, 0x52, 0xc2, 0x39, 0x0e, 0x22, + 0x9f, 0x73, 0x6b, 0x47, 0x65, 0x5d, 0xce, 0xc1, 0x9e, 0xc4, 0xd0, 0x53, 0xd8, 0x2b, 0x94, 0x24, + 0x37, 0x34, 0x20, 0xd6, 0xae, 0x52, 0xab, 0xe6, 0xb0, 0xab, 0x51, 0xb4, 0x80, 0xfb, 0xd7, 0xde, + 0x58, 0x2c, 0x52, 0x16, 0x45, 0x24, 0xc5, 0x0b, 0x16, 0x12, 0xeb, 0x4e, 0xcb, 0x68, 0x57, 0x0f, + 0xbf, 0xb1, 0xd7, 0x34, 0x89, 0xbd, 0xac, 0x9c, 0x3d, 0xc8, 0xe3, 0x5e, 0x5b, 0x9f, 0xb1, 0x90, + 0x38, 0x0d, 0xba, 0x0e, 0x46, 0x63, 0x28, 0xf9, 0x99, 0x98, 0xe7, 0x55, 0xb0, 0x40, 0x85, 0x78, + 0x76, 0x53, 0x88, 0x6e, 0x26, 0xe6, 0xba, 0x36, 0x2f, 0x36, 0x2d, 0xc3, 0x01, 0xff, 0xfa, 0x8c, + 0x06, 0x50, 0x4b, 0x43, 0x8e, 0x53, 0x32, 0x4d, 0x09, 0x9f, 0xe3, 0x90, 0x44, 0xfe, 0x3b, 0xab, + 0x74, 0x03, 0xa7, 0xca, 0xcb, 0x5e, 0x1a, 0x72, 0x47, 0x9b, 0x1d, 0x4b, 0x2b, 0xf4, 0x25, 0x54, + 0x49, 0xac, 0x7a, 0x44, 0xa4, 0x7e, 0x40, 0xe3, 0x99, 0x55, 0x56, 0xdd, 0x51, 0xd1, 0xa8, 0xa7, + 0x41, 0x59, 0x6b, 0x3f, 0x08, 0x24, 0x61, 0x11, 0x9b, 0xe1, 0x29, 0x8d, 0x88, 0x55, 0x51, 0xd4, + 0x56, 0x34, 0x3c, 0x64, 0xb3, 0x13, 0x1a, 0x11, 0xf4, 0x12, 0xaa, 0x21, 0x99, 0xfa, 0x59, 0x24, + 0xb0, 0x1e, 0x3a, 0xab, 0xaa, 0xae, 0xd5, 0x5a, 0x9b, 0xed, 0x44, 0xf6, 0x89, 0x4e, 0xd7, 0xa9, + 0xe4, 0x76, 0xf9, 0x68, 0x3c, 0x85, 0x8a, 0x6e, 0x76, 0x3f, 0x0c, 0x25, 0xa5, 0x96, 0x29, 0xc3, + 0xa9, 0x1c, 0xca, 0x4a, 0xd0, 0xd5, 0x38, 0xfa, 0x05, 0xee, 0xb3, 0x4c, 0x5c, 0xb2, 0x2c, 0x0e, + 0x65, 0x0a, 0xd3, 0x29, 0x0d, 0x0a, 0xa2, 0x6b, 0x2a, 0xf4, 0x8d, 0xb5, 0x1c, 0xe7, 0xe6, 0x9e, + 0xb6, 0x5e, 0xe1, 0xbc, 0xc1, 0xd6, 0x89, 0xd0, 0x31, 0xfc, 0x3f, 0xe7, 0x2c, 0x88, 0x28, 0x89, + 0x05, 0xe6, 0x34, 0xfc, 0x70, 0xc6, 0xac, 0xba, 0x22, 0xf1, 0xa1, 0x56, 0xeb, 0x29, 0x2d, 0x97, + 0x86, 0xab, 0xb3, 0x86, 0x5a, 0x50, 0xe6, 0x21, 0xc7, 0x59, 0xc8, 0x71, 0xe2, 0x8b, 0xb9, 0x75, + 0x57, 0xf1, 0x09, 0x3c, 0xe4, 0xe7, 0x21, 0x9f, 0xf8, 0x62, 0x2e, 0xcb, 0xcc, 0x3f, 0x29, 0x73, + 0xe3, 0x3f, 0x95, 0x99, 0x7f, 0x54, 0xe6, 0x57, 0x50, 0xd5, 0xf5, 0xc0, 0x9c, 0x65, 0x69, 0x40, + 0xb8, 0x75, 0xaf, 0xb5, 0xd5, 0x2e, 0x1d, 0x3e, 0x5e, 0x4b, 0x8e, 0x26, 0xc6, 0x55, 0x9a, 0x4e, + 0x25, 0x58, 0x39, 0x71, 0x74, 0x04, 0xf7, 0xf2, 0xe4, 0xe5, 0xdd, 0x04, 0xbb, 0x22, 0x31, 0x5e, + 0xb0, 0x2c, 0x16, 0xd6, 0x7d, 0xbd, 0x56, 0xb4, 0xd4, 0x0d, 0xb9, 0x27, 0x65, 0x67, 0x52, 0x24, + 0xd7, 0xca, 0x6a, 0xfb, 0xb0, 0x74, 0xe1, 0x0b, 0xcb, 0x52, 0x09, 0xef, 0x2d, 0x1b, 0x48, 0xc1, + 0x32, 0xc0, 0x2a, 0x95, 0x78, 0xea, 0xd3, 0x08, 0xb3, 0x84, 0xc4, 0xd6, 0x03, 0x1d, 0x20, 0x59, + 0x92, 0x78, 0xe2, 0xd3, 0x68, 0x9c, 0x90, 0x18, 0x3d, 0x86, 0xb2, 0x48, 0x33, 0x2e, 0x70, 0xc8, + 0x16, 0x3e, 0x8d, 0xad, 0xa6, 0xf2, 0x5d, 0x52, 0xd8, 0xb1, 0x82, 0x90, 0x0f, 0xf5, 0x95, 0x3b, + 0x90, 0x38, 0x60, 0xa1, 0x6c, 0xf7, 0x87, 0x6a, 0x1a, 0x9f, 0xdf, 0x38, 0x8d, 0xc5, 0x2d, 0xfb, + 0xb9, 0xa1, 0x53, 0xf3, 0x3f, 0x86, 0x10, 0x83, 0x8a, 0x08, 0x12, 0x7c, 0x45, 0x48, 0xe2, 0x47, + 0xf4, 0x0d, 0xb1, 0x1e, 0xa9, 0x62, 0x9d, 0xe6, 0xce, 0x97, 0x0f, 0x45, 0x11, 0xe2, 0x48, 0x52, + 0x2d, 0xf7, 0x1c, 0x65, 0xf1, 0x84, 0xb1, 0xc8, 0x25, 0x42, 0xd0, 0x78, 0xc6, 0x6d, 0xaf, 0x37, + 0x59, 0x7e, 0x07, 0xc9, 0x0f, 0x85, 0x47, 0xa7, 0x2c, 0x56, 0x4e, 0x68, 0x06, 0x8d, 0x62, 0xdc, + 0x72, 0xe7, 0x98, 0x07, 0x2c, 0x21, 0xd6, 0xff, 0x54, 0xe0, 0xa3, 0x9b, 0xb2, 0x3a, 0xd6, 0xc6, + 0x23, 0x6d, 0xeb, 0x4a, 0x53, 0xa7, 0x1e, 0x7e, 0x0a, 0x36, 0x7f, 0x33, 0xa0, 0xb1, 0x76, 0x4e, + 0x90, 0x03, 0xdb, 0x6a, 0x71, 0x1a, 0x8a, 0xc7, 0xef, 0x3f, 0x6b, 0xd8, 0x6c, 0xb9, 0x26, 0x55, + 0xe3, 0x2a, 0x5f, 0x07, 0x23, 0xd8, 0x56, 0x8b, 0xb3, 0x01, 0x15, 0xa7, 0xff, 0x72, 0xe0, 0x7a, + 0xce, 0x05, 0x1e, 0x8f, 0x86, 0x17, 0xe6, 0x46, 0x73, 0x73, 0xd7, 0x40, 0x35, 0xb8, 0xd3, 0x1d, + 0x0e, 0xc7, 0x3f, 0xe2, 0xee, 0xe8, 0xc2, 0x34, 0x14, 0xf4, 0x08, 0xee, 0xbe, 0x1e, 0x38, 0xde, + 0x79, 0x77, 0x88, 0xdd, 0xbe, 0xf3, 0x7a, 0xd0, 0xeb, 0x6b, 0x83, 0x4d, 0x29, 0x6d, 0xfe, 0x61, + 0x40, 0x7d, 0x4d, 0xaa, 0xe8, 0x02, 0x4a, 0x74, 0xa1, 0xde, 0xd2, 0x95, 0x14, 0xbe, 0xfd, 0x0c, + 0xd2, 0x54, 0x02, 0x0e, 0x68, 0x67, 0xea, 0xea, 0x5f, 0x41, 0x2d, 0x77, 0x1d, 0xfb, 0x0b, 0xc2, + 0x13, 0x5f, 0xce, 0xdc, 0x66, 0x6b, 0x4b, 0xbe, 0xec, 0x5a, 0x30, 0xba, 0xc6, 0x0f, 0xec, 0x3c, + 0x5f, 0x04, 0xd5, 0xee, 0x70, 0x88, 0x47, 0xdd, 0xb3, 0xbe, 0x3b, 0xe9, 0xf6, 0xfa, 0xae, 0xb9, + 0x21, 0x31, 0xb7, 0x7b, 0xd6, 0x5f, 0x82, 0xa6, 0x71, 0xf0, 0x1d, 0x34, 0xd6, 0x3e, 0x40, 0x68, + 0x07, 0xb6, 0xc6, 0x27, 0x27, 0xe6, 0x06, 0x2a, 0xc1, 0xce, 0x71, 0xff, 0xa4, 0x7b, 0x3e, 0xf4, + 0x4c, 0x03, 0x01, 0xdc, 0x76, 0x3d, 0x67, 0xd0, 0xf3, 0xcc, 0xcd, 0x83, 0x27, 0x00, 0xcb, 0x87, + 0x05, 0xed, 0xc2, 0xf6, 0x68, 0x3c, 0xea, 0x9b, 0x1b, 0xa8, 0x0a, 0x70, 0x76, 0xae, 0xf8, 0xf3, + 0x86, 0xae, 0x69, 0x1c, 0x3c, 0x85, 0xda, 0x27, 0x2d, 0x2f, 0xd5, 0xbd, 0xfe, 0x4f, 0x9e, 0xb9, + 0x21, 0xbf, 0x4e, 0xdd, 0xf1, 0xc8, 0x34, 0x4e, 0xb7, 0x77, 0xf7, 0x4c, 0xf3, 0x74, 0x7b, 0x17, + 0x99, 0xf5, 0x03, 0x0e, 0xe5, 0xd5, 0xd5, 0x81, 0x2c, 0xd8, 0x29, 0xd6, 0xb7, 0xfe, 0xa9, 0x29, + 0x8e, 0x68, 0x00, 0x65, 0x11, 0xc9, 0x67, 0x5a, 0xf7, 0xb8, 0xfa, 0x89, 0x29, 0x1d, 0x3e, 0xf9, + 0x97, 0x41, 0xf1, 0x86, 0x6e, 0x31, 0x11, 0x4e, 0x49, 0x44, 0xbc, 0x38, 0xbc, 0x68, 0xff, 0xfe, + 0x7e, 0xdf, 0xf8, 0xf3, 0xfd, 0xbe, 0xf1, 0xf7, 0xfb, 0x7d, 0xe3, 0xe7, 0xa6, 0xf6, 0x40, 0x59, + 0xc7, 0x4f, 0x68, 0xe7, 0x83, 0xbf, 0xb6, 0xcb, 0xdb, 0x6a, 0x59, 0x1e, 0xfd, 0x13, 0x00, 0x00, + 0xff, 0xff, 0xa3, 0x39, 0x16, 0x35, 0x1e, 0x0a, 0x00, 0x00, } diff --git a/mesh/v1alpha1/config.proto b/mesh/v1alpha1/config.proto index 4a19be15..975d8c5a 100644 --- a/mesh/v1alpha1/config.proto +++ b/mesh/v1alpha1/config.proto @@ -199,8 +199,41 @@ message MeshConfig { // Fallback to old identity format(without trust domain) if not set. string trust_domain = 26; + // Default network scope settings for each workload in the mesh. Network + // scope controls the reachability of workloads to other services in the + // mesh. + message DefaultNetworkScope { + 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 NetworkScope 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 network scope 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 overriden by supplying a + // NetworkScope resource per namespace. + DefaultNetworkScope default_network_scope = 29; + // $hide_from_docs - // Next available field number: 29 + // Next available field number: 30 } // 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 77ddc649..6296b26b 100644 --- a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html +++ b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html @@ -4,7 +4,7 @@ layout: protoc-gen-docs generator: protoc-gen-docs aliases: - /docs/reference/config/service-mesh.html -number_of_entries: 16 +number_of_entries: 18 ---

AuthenticationPolicy

@@ -303,6 +303,18 @@ can be configured for a single control plane.

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.

+ + + +defaultNetworkScope +MeshConfig.DefaultNetworkScope + +

The default network scope 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 overriden by supplying a +NetworkScope resource per namespace.

+ @@ -326,6 +338,74 @@ Fallback to old identity format(without trust domain) if not set.

JSON + + + + +
+

MeshConfig.DefaultNetworkScope

+
+

Default network scope settings for each workload in the mesh. Network +scope controls the reachability of workloads to other services in the +mesh.

+ + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
importModeMeshConfig.DefaultNetworkScope.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 NetworkScope 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.DefaultNetworkScope.Mode

+
+ + + + + + + + + + + + + + + diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go index 0eb5af0c..44df1d81 100644 --- a/networking/v1alpha3/destination_rule.pb.go +++ b/networking/v1alpha3/destination_rule.pb.go @@ -8,6 +8,7 @@ networking/v1alpha3/destination_rule.proto networking/v1alpha3/envoy_filter.proto networking/v1alpha3/gateway.proto + networking/v1alpha3/network_scope.proto networking/v1alpha3/service_entry.proto networking/v1alpha3/virtual_service.proto @@ -23,6 +24,7 @@ Gateway Server Port + NetworkScope ServiceEntry VirtualService Destination @@ -245,6 +247,11 @@ type DestinationRule struct { // One or more named sets that represent individual versions of a // service. Traffic policies can be overridden at subset level. Subsets []*Subset `protobuf:"bytes,3,rep,name=subsets" json:"subsets,omitempty"` + // The visibility setting associated with this DestinationRule. Set to + // PRIVATE if this destination rule should not be exported, i.e. restrict + // the applicability of this destination rule to only workloads in the same + // namespace as the destination rule. + ConfigScope ConfigScope `protobuf:"varint,4,opt,name=config_scope,json=configScope,proto3,enum=istio.networking.v1alpha3.ConfigScope" json:"config_scope,omitempty"` } func (m *DestinationRule) Reset() { *m = DestinationRule{} } @@ -273,6 +280,13 @@ func (m *DestinationRule) GetSubsets() []*Subset { return nil } +func (m *DestinationRule) GetConfigScope() ConfigScope { + if m != nil { + return m.ConfigScope + } + return ConfigScope_PUBLIC +} + // Traffic policies to apply for a specific destination, across all // destination ports. See DestinationRule for examples. type TrafficPolicy struct { @@ -1322,6 +1336,11 @@ func (m *DestinationRule) MarshalTo(dAtA []byte) (int, error) { i += n } } + if m.ConfigScope != 0 { + dAtA[i] = 0x20 + i++ + i = encodeVarintDestinationRule(dAtA, i, uint64(m.ConfigScope)) + } return i, nil } @@ -1967,6 +1986,9 @@ func (m *DestinationRule) Size() (n int) { n += 1 + l + sovDestinationRule(uint64(l)) } } + if m.ConfigScope != 0 { + n += 1 + sovDestinationRule(uint64(m.ConfigScope)) + } return n } @@ -2377,6 +2399,25 @@ func (m *DestinationRule) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ConfigScope", wireType) + } + m.ConfigScope = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDestinationRule + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ConfigScope |= (ConfigScope(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipDestinationRule(dAtA[iNdEx:]) @@ -4459,92 +4500,94 @@ func init() { } var fileDescriptorDestinationRule = []byte{ - // 1379 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0x1b, 0xb7, - 0x16, 0xb6, 0x7e, 0x63, 0x1f, 0xf9, 0x47, 0xe6, 0x35, 0x72, 0x15, 0x5d, 0xc0, 0xf1, 0x15, 0x8a, - 0xc6, 0x4d, 0x9b, 0x51, 0xed, 0xa0, 0x40, 0x9a, 0x20, 0x45, 0x2c, 0xdb, 0x88, 0xdc, 0xc8, 0x96, - 0x40, 0xc9, 0x40, 0x91, 0xcd, 0x80, 0x1a, 0xd1, 0x12, 0xe3, 0xd1, 0x70, 0x4a, 0x72, 0x54, 0x3b, - 0xcf, 0xd0, 0x75, 0xd0, 0x6d, 0x37, 0x7d, 0x81, 0xbe, 0x44, 0xd1, 0x55, 0xb7, 0xed, 0xa6, 0x45, - 0x5e, 0xa0, 0xab, 0x6e, 0xba, 0x2a, 0xc8, 0xe1, 0x48, 0x72, 0xe2, 0xd8, 0x31, 0xd2, 0xec, 0x38, - 0x3c, 0xe7, 0xfb, 0x48, 0x9e, 0xef, 0xf0, 0x1c, 0x0e, 0xdc, 0x0e, 0xa8, 0xfa, 0x86, 0x8b, 0x63, - 0x16, 0xf4, 0xab, 0xa3, 0x0d, 0xe2, 0x87, 0x03, 0x72, 0xb7, 0xda, 0xa3, 0x52, 0xb1, 0x80, 0x28, - 0xc6, 0x03, 0x57, 0x44, 0x3e, 0x75, 0x42, 0xc1, 0x15, 0x47, 0x37, 0x98, 0x54, 0x8c, 0x3b, 0x13, - 0x84, 0x93, 0x20, 0xca, 0xab, 0x7d, 0xce, 0xfb, 0x3e, 0xad, 0x1a, 0xc7, 0x6e, 0x74, 0x54, 0xed, - 0x45, 0xc2, 0xe0, 0x63, 0x68, 0xf9, 0xa3, 0xf3, 0x96, 0x19, 0x31, 0xa1, 0x22, 0xe2, 0xbb, 0x92, - 0x8a, 0x11, 0xf3, 0xec, 0x2a, 0xe5, 0x95, 0x3e, 0xef, 0x73, 0x33, 0xac, 0xea, 0x51, 0x3c, 0x5b, - 0xf9, 0x31, 0x05, 0x4b, 0x3b, 0x93, 0x6d, 0xe1, 0xc8, 0xa7, 0x08, 0x41, 0x76, 0xc0, 0xa5, 0x2a, - 0xa5, 0xd6, 0x52, 0xeb, 0x73, 0xd8, 0x8c, 0x51, 0x13, 0x16, 0x95, 0x20, 0x47, 0x47, 0xcc, 0x73, - 0x43, 0xee, 0x33, 0xef, 0xb4, 0x94, 0x5e, 0x4b, 0xad, 0x17, 0x36, 0xd7, 0x9d, 0x37, 0x6e, 0xde, - 0xe9, 0xc4, 0x80, 0x96, 0xf1, 0xc7, 0x0b, 0x6a, 0xfa, 0x13, 0x3d, 0x80, 0x6b, 0x32, 0xea, 0x4a, - 0xaa, 0x64, 0x29, 0xb3, 0x96, 0x59, 0x2f, 0x6c, 0xfe, 0xff, 0x02, 0xa6, 0xb6, 0xf1, 0xc4, 0x09, - 0xa2, 0xf2, 0x5b, 0x1e, 0x16, 0xce, 0xb0, 0xa3, 0x0e, 0x2c, 0xf8, 0x9c, 0xf4, 0xdc, 0x2e, 0xf1, - 0x49, 0xe0, 0x51, 0x61, 0x36, 0x5f, 0xd8, 0xac, 0x5e, 0x40, 0xda, 0xe0, 0xa4, 0x57, 0xb3, 0xee, - 0x6d, 0xaa, 0x14, 0x0b, 0xfa, 0x12, 0xcf, 0xfb, 0x53, 0xb3, 0xe8, 0x29, 0x2c, 0x79, 0x3c, 0x08, - 0xa8, 0x67, 0x24, 0x0b, 0x39, 0xf7, 0xed, 0xb1, 0x37, 0x2e, 0xe0, 0xdd, 0x1e, 0x23, 0x5a, 0x9c, - 0xfb, 0x63, 0xe6, 0x45, 0xef, 0xcc, 0x3c, 0xfa, 0x0a, 0x96, 0x79, 0xa4, 0x7c, 0x46, 0x85, 0xdb, - 0xa3, 0x2a, 0x36, 0x94, 0x32, 0x86, 0xfd, 0xe3, 0x0b, 0xd8, 0x9b, 0x31, 0x66, 0x27, 0x81, 0xe0, - 0x22, 0x7f, 0x65, 0x06, 0xdd, 0x83, 0x8c, 0xf2, 0x65, 0x29, 0x6b, 0xb8, 0x3e, 0xbc, 0x48, 0xa0, - 0x46, 0x7b, 0xbc, 0x3d, 0x0d, 0x41, 0xcf, 0xe0, 0x3f, 0x21, 0x17, 0xca, 0xf5, 0xe9, 0x88, 0xea, - 0xfc, 0x89, 0x6d, 0xa5, 0x9c, 0x11, 0xe8, 0xfe, 0xdb, 0x4a, 0xed, 0xb4, 0xb8, 0x50, 0x67, 0xc5, - 0x5f, 0xd6, 0xb4, 0x0d, 0xcd, 0x9a, 0x2c, 0x58, 0x7e, 0x91, 0x81, 0xe5, 0xd7, 0x1c, 0xd1, 0x03, - 0xc8, 0x6a, 0x57, 0x2b, 0xdf, 0xad, 0x0b, 0x96, 0xd4, 0xd8, 0x36, 0xf5, 0xa9, 0xa7, 0xb8, 0xc0, - 0x06, 0xf4, 0x7a, 0x12, 0xa4, 0xdf, 0x53, 0x12, 0x64, 0xde, 0x6b, 0x12, 0x64, 0xff, 0xc5, 0x24, - 0xc8, 0x5d, 0x39, 0x09, 0x2a, 0x7f, 0xa6, 0x20, 0x1f, 0x5f, 0x38, 0x5d, 0x09, 0x02, 0x32, 0xa4, - 0x49, 0x25, 0xd0, 0x63, 0xb4, 0x0b, 0x79, 0x9f, 0x74, 0xa9, 0x2f, 0x4b, 0x69, 0x93, 0x16, 0x77, - 0x2e, 0xbd, 0xb7, 0x4e, 0xc3, 0xf8, 0xef, 0x06, 0x4a, 0x9c, 0x62, 0x0b, 0x3e, 0xa7, 0xa0, 0x64, - 0xde, 0xa9, 0xa0, 0x94, 0x3f, 0x87, 0xc2, 0xd4, 0x3a, 0xa8, 0x08, 0x99, 0x63, 0x7a, 0x6a, 0x77, - 0xae, 0x87, 0x68, 0x05, 0x72, 0x23, 0xe2, 0x47, 0xd4, 0x64, 0xc5, 0x1c, 0x8e, 0x3f, 0xee, 0xa7, - 0xef, 0xa5, 0x2a, 0x3f, 0xe4, 0x60, 0xe5, 0xbc, 0x44, 0x40, 0x18, 0xf2, 0x92, 0x0d, 0x43, 0x3f, - 0x8e, 0xc0, 0xe2, 0xe6, 0xbd, 0x2b, 0x66, 0x92, 0xd3, 0x36, 0xe8, 0x46, 0xad, 0x3e, 0x83, 0x2d, - 0x13, 0x3a, 0x36, 0xe9, 0x24, 0x99, 0x54, 0x34, 0x50, 0xee, 0x80, 0xc8, 0x81, 0x4d, 0xd3, 0x47, - 0x57, 0x25, 0xdf, 0x1e, 0xd3, 0xd4, 0x89, 0x1c, 0x98, 0x45, 0x16, 0xbd, 0x33, 0x73, 0xe5, 0xbf, - 0xd2, 0x50, 0x7c, 0xd5, 0x0d, 0xdd, 0x86, 0xe2, 0x40, 0xa9, 0xd0, 0x1d, 0x50, 0xd2, 0xa3, 0xc2, - 0x9d, 0x28, 0xac, 0x09, 0xb4, 0xa5, 0x6e, 0x0c, 0x07, 0x5a, 0xed, 0x00, 0x0a, 0xc6, 0xd7, 0xe3, - 0xfc, 0x98, 0x51, 0xbb, 0xd3, 0x27, 0xef, 0xba, 0x53, 0xa7, 0xde, 0xe9, 0xb4, 0xb6, 0x0d, 0x65, - 0x7d, 0x06, 0x83, 0x5e, 0x21, 0xfe, 0x42, 0x1f, 0xc0, 0x42, 0x24, 0xa9, 0x2b, 0x79, 0x24, 0x3c, - 0xea, 0xb2, 0xd0, 0x64, 0xc5, 0x6c, 0x7d, 0x06, 0x17, 0x22, 0x49, 0xdb, 0x66, 0x76, 0x2f, 0x44, - 0xb7, 0x61, 0x79, 0xc8, 0x02, 0x36, 0x8c, 0x86, 0xae, 0x60, 0x41, 0xdf, 0x95, 0xec, 0x39, 0x35, - 0xd7, 0x26, 0x8b, 0x97, 0xac, 0x01, 0xb3, 0xa0, 0xdf, 0x66, 0xcf, 0x69, 0xb9, 0x0f, 0x30, 0x59, - 0xed, 0xdc, 0x8c, 0x46, 0x90, 0x0d, 0x89, 0x1a, 0xd8, 0xbc, 0x30, 0x63, 0xb4, 0x01, 0x19, 0xa5, - 0x92, 0x8b, 0x7e, 0xc3, 0x89, 0xdb, 0xb0, 0x93, 0xb4, 0x61, 0x67, 0xc7, 0xb6, 0xe1, 0x5a, 0xf6, - 0xbb, 0xdf, 0x6f, 0xa6, 0xb0, 0xf6, 0xad, 0x01, 0xcc, 0x6a, 0x35, 0xdd, 0x63, 0x7a, 0x5a, 0xa9, - 0xc3, 0x6c, 0x22, 0x3d, 0x5a, 0x82, 0x02, 0x6e, 0x1e, 0x1e, 0xec, 0xb8, 0xb8, 0x59, 0xdb, 0x3b, - 0x28, 0xce, 0xa0, 0x45, 0x80, 0xc6, 0xee, 0x56, 0xbb, 0xe3, 0x6e, 0x37, 0x0f, 0x0e, 0x8a, 0x29, - 0x04, 0x90, 0xc7, 0x5b, 0x07, 0x3b, 0xcd, 0xfd, 0x62, 0x5a, 0x3b, 0xb7, 0xb6, 0xda, 0xed, 0x4e, - 0x1d, 0x37, 0x0f, 0x1f, 0xd7, 0x8b, 0x99, 0x5a, 0x01, 0xe6, 0xfc, 0xae, 0xbd, 0x22, 0x95, 0x17, - 0x79, 0xb8, 0x7e, 0x7e, 0x65, 0x41, 0x4d, 0xc8, 0x28, 0x2f, 0xb4, 0x75, 0xf3, 0xe1, 0x95, 0x2b, - 0x93, 0xd3, 0xd9, 0x6e, 0x4d, 0x95, 0x01, 0x2f, 0x44, 0x18, 0xb2, 0x5a, 0x17, 0x2b, 0xf9, 0x17, - 0x57, 0x67, 0xd4, 0x51, 0x1f, 0x53, 0x1a, 0xae, 0xf2, 0xdf, 0x69, 0x28, 0x4c, 0x2d, 0x84, 0x6e, - 0xc1, 0xd2, 0x90, 0x9c, 0xb8, 0x93, 0xa2, 0x28, 0xcd, 0x01, 0x72, 0x78, 0x71, 0x48, 0x4e, 0x26, - 0xb4, 0x12, 0xd5, 0xc6, 0x35, 0xd8, 0x55, 0x6c, 0x48, 0x79, 0xa4, 0xec, 0xbe, 0xde, 0x2c, 0xcd, - 0xb8, 0xd6, 0x76, 0x62, 0x00, 0xe2, 0xb0, 0xa0, 0xbc, 0xd0, 0x3d, 0xa6, 0x34, 0x24, 0x3e, 0x1b, - 0x51, 0x2b, 0xee, 0x97, 0xef, 0x14, 0x2b, 0xa7, 0xe3, 0x85, 0x4f, 0x12, 0x46, 0x3c, 0xaf, 0xa6, - 0xbe, 0xca, 0xdf, 0xa6, 0x60, 0x7e, 0xda, 0x8c, 0xae, 0x43, 0x3e, 0x14, 0xbc, 0x4b, 0xe3, 0x53, - 0x2e, 0x60, 0xfb, 0x85, 0xee, 0x40, 0x56, 0x9f, 0xea, 0xf2, 0x23, 0x19, 0x37, 0xf4, 0x19, 0xcc, - 0xb2, 0x40, 0x51, 0x31, 0x22, 0x97, 0x27, 0x28, 0x1e, 0xbb, 0x96, 0x7f, 0x4d, 0xc1, 0xfc, 0xb4, - 0x26, 0xe8, 0x01, 0x94, 0xb5, 0x2a, 0x1b, 0xae, 0xd6, 0x20, 0xa4, 0x41, 0x4f, 0x5f, 0x25, 0x41, - 0xbf, 0x8e, 0xa8, 0x54, 0x89, 0x10, 0xff, 0x35, 0x1e, 0xfb, 0xe4, 0xa4, 0x15, 0xdb, 0xb1, 0x35, - 0xa3, 0x4f, 0x00, 0x69, 0xd3, 0xa6, 0x01, 0x8f, 0x41, 0x69, 0x03, 0x32, 0xe5, 0x65, 0x73, 0x9f, - 0x9c, 0x8c, 0xbd, 0x1f, 0xc2, 0xff, 0xa6, 0xfd, 0xdc, 0x90, 0x8a, 0x29, 0xd5, 0xcd, 0x29, 0x72, - 0xb8, 0x34, 0x9c, 0x20, 0x5a, 0x54, 0x4c, 0x82, 0x8f, 0x6e, 0x42, 0x21, 0x86, 0x2b, 0xc1, 0x68, - 0xfc, 0xb2, 0xc9, 0x61, 0x30, 0xee, 0x66, 0xa6, 0xf2, 0x7d, 0x1a, 0x8a, 0xaf, 0x36, 0x45, 0x74, - 0x07, 0x90, 0x2e, 0x87, 0xd4, 0x8b, 0x14, 0x1b, 0x51, 0x97, 0x0a, 0xc1, 0x45, 0x72, 0xae, 0xe5, - 0x29, 0xcb, 0xae, 0x31, 0x9c, 0x09, 0x6b, 0xfa, 0xad, 0xc3, 0x8a, 0x1e, 0x03, 0xea, 0x12, 0x49, - 0x5d, 0xfa, 0xcc, 0xbe, 0x10, 0x8c, 0x94, 0x97, 0xea, 0x52, 0xd4, 0xa0, 0x5d, 0x8b, 0xd1, 0x29, - 0x8a, 0x3e, 0x85, 0x15, 0x7d, 0xc8, 0x31, 0x4f, 0x48, 0x85, 0x47, 0x03, 0x65, 0x4f, 0x8b, 0x86, - 0xe4, 0x24, 0x71, 0x6f, 0xc5, 0x16, 0xad, 0xc1, 0x90, 0x05, 0xba, 0x8e, 0xfb, 0x6a, 0x30, 0xf6, - 0xcf, 0xc5, 0x1a, 0x0c, 0x59, 0x50, 0x37, 0x06, 0xeb, 0x5d, 0xf9, 0x59, 0x5f, 0xbe, 0x49, 0xb3, - 0x47, 0x35, 0xc8, 0x0e, 0x79, 0x2f, 0x69, 0x6d, 0xce, 0xdb, 0x3d, 0x11, 0xf4, 0x58, 0xa3, 0xb0, - 0xc1, 0x9a, 0x10, 0xfb, 0x4c, 0x37, 0x32, 0x8f, 0x0a, 0xc5, 0x8e, 0x98, 0x47, 0x54, 0xd2, 0x60, - 0x97, 0x63, 0xcb, 0xf6, 0xc4, 0xa0, 0x75, 0x0c, 0x05, 0x1b, 0x11, 0x45, 0x75, 0x95, 0x34, 0x41, - 0x9a, 0xc3, 0x60, 0xa7, 0x9e, 0xd0, 0x53, 0x5d, 0x10, 0x3c, 0x32, 0xcd, 0x15, 0x8b, 0x3d, 0x87, - 0x17, 0x3d, 0x32, 0x45, 0x24, 0x75, 0x07, 0x90, 0x51, 0x57, 0xc7, 0xc3, 0x25, 0xbe, 0x32, 0x3d, - 0x2c, 0x7e, 0xa7, 0xce, 0xe1, 0x25, 0x6b, 0xd8, 0xf2, 0x95, 0x6e, 0x61, 0x52, 0x3f, 0x05, 0x64, - 0xc0, 0x4a, 0xf9, 0xf8, 0x29, 0x20, 0x03, 0x56, 0x79, 0x04, 0xd7, 0xec, 0x39, 0x50, 0x01, 0xae, - 0xed, 0xec, 0xb5, 0xb7, 0x6a, 0x8d, 0xdd, 0xe2, 0x8c, 0xae, 0xc4, 0xed, 0xbd, 0xfd, 0x56, 0x63, - 0x37, 0xae, 0xca, 0xfb, 0x87, 0x9d, 0xc3, 0xad, 0x46, 0x31, 0x8d, 0x8a, 0x30, 0xbf, 0xd7, 0xee, - 0xec, 0x35, 0x5d, 0x3b, 0x93, 0xa9, 0x39, 0x3f, 0xbd, 0x5c, 0x4d, 0xfd, 0xf2, 0x72, 0x35, 0xf5, - 0xc7, 0xcb, 0xd5, 0xd4, 0xd3, 0xb5, 0x38, 0x76, 0x8c, 0x57, 0x49, 0xc8, 0xaa, 0xe7, 0xfc, 0x93, - 0x75, 0xf3, 0x26, 0x03, 0xee, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x4a, 0x6d, 0x05, 0x18, - 0x0e, 0x00, 0x00, + // 1416 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x4f, 0x6f, 0x1b, 0xb7, + 0x12, 0xb7, 0xfe, 0xc6, 0x1e, 0xd9, 0xb2, 0xcc, 0x67, 0xe4, 0x29, 0x7a, 0x80, 0xe3, 0x27, 0x14, + 0x8d, 0x9b, 0x36, 0xab, 0xda, 0x41, 0x81, 0x34, 0x41, 0x8a, 0x58, 0xb6, 0x11, 0xb9, 0x91, 0x2d, + 0x81, 0x2b, 0x03, 0x45, 0x2e, 0x0b, 0x6a, 0x45, 0x4b, 0x8c, 0x57, 0xcb, 0xed, 0x92, 0xab, 0xda, + 0xf9, 0x0c, 0x3d, 0x07, 0xbd, 0xf6, 0xd2, 0xcf, 0x52, 0xf4, 0xd4, 0x6b, 0x7b, 0x69, 0x91, 0x2f, + 0xd0, 0x53, 0x2f, 0x3d, 0x14, 0x05, 0xb9, 0x5c, 0x49, 0x4e, 0x1c, 0x39, 0x46, 0x9a, 0x1b, 0xc9, + 0xf9, 0xfd, 0x86, 0xe4, 0xcc, 0x6f, 0x67, 0xb8, 0x70, 0xdb, 0xa7, 0xf2, 0x1b, 0x1e, 0x9e, 0x30, + 0xbf, 0x5f, 0x1b, 0x6d, 0x12, 0x2f, 0x18, 0x90, 0xbb, 0xb5, 0x1e, 0x15, 0x92, 0xf9, 0x44, 0x32, + 0xee, 0x3b, 0x61, 0xe4, 0x51, 0x2b, 0x08, 0xb9, 0xe4, 0xe8, 0x06, 0x13, 0x92, 0x71, 0x6b, 0xc2, + 0xb0, 0x12, 0x46, 0x65, 0xad, 0xcf, 0x79, 0xdf, 0xa3, 0x35, 0x0d, 0xec, 0x46, 0xc7, 0xb5, 0x5e, + 0x14, 0x6a, 0x7e, 0x4c, 0xad, 0x7c, 0x74, 0xd1, 0x36, 0x23, 0x16, 0xca, 0x88, 0x78, 0x8e, 0xa0, + 0xe1, 0x88, 0xb9, 0x66, 0x97, 0xca, 0xad, 0x8b, 0xa0, 0x66, 0xcd, 0x11, 0x2e, 0x0f, 0x12, 0xe0, + 0x6a, 0x9f, 0xf7, 0xb9, 0x1e, 0xd6, 0xd4, 0x28, 0x5e, 0xad, 0xfe, 0x9d, 0x82, 0xe5, 0xdd, 0xc9, + 0xf9, 0x71, 0xe4, 0x51, 0x84, 0x20, 0x3b, 0xe0, 0x42, 0x96, 0x53, 0xeb, 0xa9, 0x8d, 0x05, 0xac, + 0xc7, 0xa8, 0x05, 0x45, 0x19, 0x92, 0xe3, 0x63, 0xe6, 0x3a, 0x01, 0xf7, 0x98, 0x7b, 0x56, 0x4e, + 0xaf, 0xa7, 0x36, 0x0a, 0x5b, 0x1b, 0xd6, 0x1b, 0x6f, 0x69, 0x75, 0x62, 0x42, 0x5b, 0xe3, 0xf1, + 0x92, 0x9c, 0x9e, 0xa2, 0x07, 0x70, 0x4d, 0x44, 0x5d, 0x41, 0xa5, 0x28, 0x67, 0xd6, 0x33, 0x1b, + 0x85, 0xad, 0xff, 0xcf, 0xf0, 0x64, 0x6b, 0x24, 0x4e, 0x18, 0x68, 0x1f, 0x16, 0x5d, 0xee, 0x1f, + 0xb3, 0x7e, 0x7c, 0xc3, 0x72, 0x76, 0x3d, 0xb5, 0x51, 0xdc, 0xfa, 0x70, 0x86, 0x87, 0x1d, 0x0d, + 0xb7, 0x15, 0x1a, 0x17, 0xdc, 0xc9, 0xa4, 0xfa, 0x6b, 0x1e, 0x96, 0xce, 0x1d, 0x14, 0x75, 0x60, + 0xc9, 0xe3, 0xa4, 0xe7, 0x74, 0x89, 0x47, 0x7c, 0x97, 0x86, 0x3a, 0x0e, 0x85, 0xad, 0xda, 0x0c, + 0xef, 0x4d, 0x4e, 0x7a, 0x75, 0x03, 0xb7, 0xa9, 0x94, 0xcc, 0xef, 0x0b, 0xbc, 0xe8, 0x4d, 0xad, + 0xa2, 0xa7, 0xb0, 0xec, 0x72, 0xdf, 0xa7, 0xae, 0x96, 0x49, 0xc0, 0xb9, 0x67, 0x22, 0xb8, 0x39, + 0xfb, 0xd4, 0x86, 0xd1, 0xe6, 0xdc, 0x1b, 0x7b, 0x2e, 0xba, 0xe7, 0xd6, 0xd1, 0x57, 0xb0, 0xc2, + 0x23, 0xe9, 0x31, 0x1a, 0x3a, 0x3d, 0x2a, 0x63, 0x43, 0x39, 0xa3, 0xbd, 0x7f, 0x3c, 0xc3, 0x7b, + 0x2b, 0xe6, 0xec, 0x26, 0x14, 0x5c, 0xe2, 0xaf, 0xac, 0xa0, 0x7b, 0x90, 0x91, 0x9e, 0xd0, 0xf1, + 0x2d, 0xcc, 0x8c, 0x6f, 0xa7, 0x69, 0x8f, 0x8f, 0xa7, 0x28, 0xe8, 0x19, 0xfc, 0x27, 0xe0, 0xa1, + 0x74, 0x3c, 0x3a, 0xa2, 0x4a, 0xb3, 0xb1, 0xad, 0x9c, 0xd3, 0xb9, 0xbe, 0xff, 0xb6, 0xaa, 0xb1, + 0xda, 0x3c, 0x94, 0xe7, 0x75, 0xb4, 0xa2, 0xdc, 0x36, 0x95, 0xd7, 0x64, 0xc3, 0xca, 0x8b, 0x0c, + 0xac, 0xbc, 0x06, 0x44, 0x0f, 0x20, 0xab, 0xa0, 0x26, 0x7d, 0xb7, 0x66, 0x6c, 0xa9, 0xb8, 0x36, + 0xf5, 0xa8, 0x2b, 0x79, 0x88, 0x35, 0xe9, 0x75, 0x11, 0xa4, 0xdf, 0x93, 0x08, 0x32, 0xef, 0x55, + 0x04, 0xd9, 0x7f, 0x51, 0x04, 0xb9, 0x2b, 0x8b, 0xa0, 0xfa, 0x47, 0x0a, 0xf2, 0xf1, 0xb7, 0xab, + 0x8a, 0x8a, 0x4f, 0x86, 0x34, 0x29, 0x2a, 0x6a, 0x8c, 0xf6, 0x20, 0xef, 0x91, 0x2e, 0xf5, 0x44, + 0x39, 0xad, 0x65, 0x71, 0xe7, 0xd2, 0x12, 0x60, 0x35, 0x35, 0x7e, 0xcf, 0x97, 0xe1, 0x19, 0x36, + 0xe4, 0x0b, 0x6a, 0x53, 0xe6, 0x9d, 0x6a, 0x53, 0xe5, 0x73, 0x28, 0x4c, 0xed, 0x83, 0x4a, 0x90, + 0x39, 0xa1, 0x67, 0xe6, 0xe4, 0x6a, 0x88, 0x56, 0x21, 0x37, 0x22, 0x5e, 0x44, 0xb5, 0x2a, 0x16, + 0x70, 0x3c, 0xb9, 0x9f, 0xbe, 0x97, 0xaa, 0xfe, 0x90, 0x83, 0xd5, 0x8b, 0x84, 0x80, 0x30, 0xe4, + 0x05, 0x1b, 0x06, 0x5e, 0x1c, 0x81, 0xe2, 0xd6, 0xbd, 0x2b, 0x2a, 0xc9, 0xb2, 0x35, 0xbb, 0x59, + 0x6f, 0xcc, 0x61, 0xe3, 0x09, 0x9d, 0x68, 0x39, 0x09, 0x26, 0x24, 0xf5, 0xa5, 0x33, 0x20, 0x62, + 0x60, 0x64, 0xfa, 0xe8, 0xaa, 0xce, 0x77, 0xc6, 0x6e, 0x1a, 0x44, 0x0c, 0xf4, 0x26, 0x45, 0xf7, + 0xdc, 0x5a, 0xe5, 0xcf, 0x34, 0x94, 0x5e, 0x85, 0xa1, 0xdb, 0x50, 0x1a, 0x48, 0x19, 0x38, 0x03, + 0x4a, 0x7a, 0x34, 0x74, 0x26, 0x19, 0x56, 0x0e, 0x94, 0xa5, 0xa1, 0x0d, 0x87, 0x2a, 0xdb, 0x3e, + 0x14, 0x34, 0xd6, 0xe5, 0xfc, 0x84, 0x51, 0x73, 0xd2, 0x27, 0xef, 0x7a, 0x52, 0xab, 0xd1, 0xe9, + 0xb4, 0x77, 0xb4, 0xcb, 0xc6, 0x1c, 0x06, 0xb5, 0x43, 0x3c, 0x43, 0x1f, 0xc0, 0x52, 0x24, 0xa8, + 0x23, 0x78, 0x14, 0xba, 0xd4, 0x61, 0x81, 0x56, 0xc5, 0x7c, 0x63, 0x0e, 0x17, 0x22, 0x41, 0x6d, + 0xbd, 0xba, 0x1f, 0xa0, 0xdb, 0xb0, 0x32, 0x64, 0x3e, 0x1b, 0x46, 0x43, 0x27, 0x64, 0x7e, 0xdf, + 0x11, 0xec, 0x79, 0xdc, 0x4f, 0xb2, 0x78, 0xd9, 0x18, 0x30, 0xf3, 0xfb, 0x36, 0x7b, 0x4e, 0x2b, + 0x7d, 0x80, 0xc9, 0x6e, 0x17, 0x2a, 0x1a, 0x41, 0x36, 0x20, 0x72, 0x60, 0x74, 0xa1, 0xc7, 0x68, + 0x13, 0x32, 0x52, 0x26, 0x1f, 0xfa, 0x0d, 0x2b, 0x6e, 0xfd, 0x56, 0xd2, 0xfa, 0xad, 0x5d, 0xd3, + 0xfa, 0xeb, 0xd9, 0xef, 0x7e, 0xbb, 0x99, 0xc2, 0x0a, 0x5b, 0x07, 0x98, 0x57, 0xd9, 0x74, 0x4e, + 0xe8, 0x59, 0xb5, 0x01, 0xf3, 0x49, 0xea, 0xd1, 0x32, 0x14, 0x70, 0xeb, 0xe8, 0x70, 0xd7, 0xc1, + 0xad, 0xfa, 0xfe, 0x61, 0x69, 0x0e, 0x15, 0x01, 0x9a, 0x7b, 0xdb, 0x76, 0xc7, 0xd9, 0x69, 0x1d, + 0x1e, 0x96, 0x52, 0x08, 0x20, 0x8f, 0xb7, 0x0f, 0x77, 0x5b, 0x07, 0xa5, 0xb4, 0x02, 0xb7, 0xb7, + 0x6d, 0xbb, 0xd3, 0xc0, 0xad, 0xa3, 0xc7, 0x8d, 0x52, 0xa6, 0x5e, 0x80, 0x05, 0xaf, 0x6b, 0x3e, + 0x91, 0xea, 0x8b, 0x3c, 0x5c, 0xbf, 0xb8, 0xb2, 0xa0, 0x16, 0x64, 0xa4, 0x1b, 0x98, 0xba, 0xf9, + 0xf0, 0xca, 0x95, 0xc9, 0xea, 0xec, 0xb4, 0xa7, 0xca, 0x80, 0x1b, 0x20, 0x0c, 0x59, 0x95, 0x17, + 0x93, 0xf2, 0x2f, 0xae, 0xee, 0x51, 0x45, 0x7d, 0xec, 0x52, 0xfb, 0xaa, 0xfc, 0x95, 0x86, 0xc2, + 0xd4, 0x46, 0xe8, 0x16, 0x2c, 0x0f, 0xc9, 0xa9, 0x33, 0x29, 0x8a, 0x42, 0x5f, 0x20, 0x87, 0x8b, + 0x43, 0x72, 0x3a, 0x71, 0x2b, 0x50, 0x7d, 0x5c, 0x83, 0x1d, 0xc9, 0x86, 0x94, 0x47, 0xd2, 0x9c, + 0xeb, 0xcd, 0xa9, 0x19, 0xd7, 0xda, 0x4e, 0x4c, 0x40, 0x1c, 0x96, 0xa4, 0x1b, 0x38, 0x27, 0x94, + 0x06, 0xc4, 0x63, 0x23, 0x6a, 0x92, 0xfb, 0xe5, 0x3b, 0xc5, 0xca, 0xea, 0xb8, 0xc1, 0x93, 0xc4, + 0x23, 0x5e, 0x94, 0x53, 0xb3, 0xca, 0xb7, 0x29, 0x58, 0x9c, 0x36, 0xa3, 0xeb, 0x90, 0x0f, 0x42, + 0xde, 0xa5, 0xf1, 0x2d, 0x97, 0xb0, 0x99, 0xa1, 0x3b, 0x90, 0x55, 0xb7, 0xba, 0xfc, 0x4a, 0x1a, + 0x86, 0x3e, 0x83, 0x79, 0xe6, 0x4b, 0x1a, 0x8e, 0xc8, 0xe5, 0x02, 0xc5, 0x63, 0x68, 0xe5, 0x97, + 0x14, 0x2c, 0x4e, 0xe7, 0x04, 0x3d, 0x80, 0x8a, 0xca, 0xca, 0xa6, 0xa3, 0x72, 0x10, 0x50, 0xbf, + 0xa7, 0x3e, 0xa5, 0x90, 0x7e, 0x1d, 0x51, 0x21, 0x93, 0x44, 0xfc, 0x57, 0x23, 0x0e, 0xc8, 0x69, + 0x3b, 0xb6, 0x63, 0x63, 0x46, 0x9f, 0x00, 0x52, 0xa6, 0x2d, 0x4d, 0x1e, 0x93, 0xd2, 0x9a, 0xa4, + 0xcb, 0xcb, 0xd6, 0x01, 0x39, 0x1d, 0xa3, 0x1f, 0xc2, 0xff, 0xa6, 0x71, 0x4e, 0x40, 0xc3, 0xa9, + 0xac, 0xeb, 0x5b, 0xe4, 0x70, 0x79, 0x38, 0x61, 0xb4, 0x69, 0x38, 0x09, 0x3e, 0xba, 0x09, 0x85, + 0x98, 0x2e, 0x43, 0x46, 0xe3, 0x97, 0x4d, 0x0e, 0x83, 0x86, 0xeb, 0x95, 0xea, 0xf7, 0x69, 0x28, + 0xbd, 0xda, 0x14, 0xd1, 0x1d, 0x40, 0xaa, 0x1c, 0x52, 0x37, 0x92, 0x6c, 0x44, 0x1d, 0x1a, 0x86, + 0x3c, 0x4c, 0xee, 0xb5, 0x32, 0x65, 0xd9, 0xd3, 0x86, 0x73, 0x61, 0x4d, 0xbf, 0x75, 0x58, 0xd1, + 0x63, 0x40, 0x5d, 0x22, 0xa8, 0x43, 0x9f, 0x99, 0x17, 0x82, 0x4e, 0xe5, 0xa5, 0x79, 0x29, 0x29, + 0xd2, 0x9e, 0xe1, 0x28, 0x89, 0xa2, 0x4f, 0x61, 0x55, 0x5d, 0x72, 0xec, 0x27, 0xa0, 0xa1, 0x4b, + 0x7d, 0x69, 0x6e, 0x8b, 0x86, 0xe4, 0x34, 0x81, 0xb7, 0x63, 0x8b, 0xca, 0xc1, 0x90, 0xf9, 0xaa, + 0x8e, 0x7b, 0x72, 0x30, 0xc6, 0xe7, 0xe2, 0x1c, 0x0c, 0x99, 0xdf, 0xd0, 0x06, 0x83, 0xae, 0xfe, + 0xa4, 0x3e, 0xbe, 0x49, 0xb3, 0x47, 0x75, 0xc8, 0x0e, 0x79, 0x2f, 0x69, 0x6d, 0xd6, 0xdb, 0x3d, + 0x11, 0xd4, 0x58, 0xb1, 0xb0, 0xe6, 0xea, 0x10, 0x7b, 0x4c, 0x35, 0x32, 0x97, 0x86, 0x92, 0x1d, + 0x33, 0x97, 0xc8, 0xa4, 0xc1, 0xae, 0xc4, 0x96, 0x9d, 0x89, 0x41, 0xe5, 0x31, 0x08, 0xd9, 0x88, + 0x48, 0xaa, 0xaa, 0xa4, 0x0e, 0xd2, 0x02, 0x06, 0xb3, 0xf4, 0x84, 0x9e, 0xa9, 0x82, 0xe0, 0x92, + 0x69, 0x5f, 0x71, 0xb2, 0x17, 0x70, 0xd1, 0x25, 0x53, 0x8e, 0x84, 0xea, 0x00, 0x22, 0xea, 0xaa, + 0x78, 0x38, 0xc4, 0x93, 0xba, 0x87, 0xc5, 0xef, 0xd4, 0x05, 0xbc, 0x6c, 0x0c, 0xdb, 0x9e, 0x54, + 0x2d, 0x4c, 0xa8, 0xa7, 0x80, 0xf0, 0x59, 0x39, 0x1f, 0x3f, 0x05, 0x84, 0xcf, 0xaa, 0x8f, 0xe0, + 0x9a, 0xb9, 0x07, 0x2a, 0xc0, 0xb5, 0xdd, 0x7d, 0x7b, 0xbb, 0xde, 0xdc, 0x2b, 0xcd, 0xa9, 0x4a, + 0x6c, 0xef, 0x1f, 0xb4, 0x9b, 0x7b, 0x71, 0x55, 0x3e, 0x38, 0xea, 0x1c, 0x6d, 0x37, 0x4b, 0x69, + 0x54, 0x82, 0xc5, 0x7d, 0xbb, 0xb3, 0xdf, 0x72, 0xcc, 0x4a, 0xa6, 0x6e, 0xfd, 0xf8, 0x72, 0x2d, + 0xf5, 0xf3, 0xcb, 0xb5, 0xd4, 0xef, 0x2f, 0xd7, 0x52, 0x4f, 0xd7, 0xe3, 0xd8, 0x31, 0x5e, 0x23, + 0x01, 0xab, 0x5d, 0xf0, 0x73, 0xd7, 0xcd, 0x6b, 0x05, 0xdc, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, + 0xa1, 0xaa, 0x97, 0xcc, 0x8c, 0x0e, 0x00, 0x00, } diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto index a19091e2..ebd4faf3 100644 --- a/networking/v1alpha3/destination_rule.proto +++ b/networking/v1alpha3/destination_rule.proto @@ -15,6 +15,7 @@ syntax = "proto3"; import "google/protobuf/duration.proto"; import "networking/v1alpha3/virtual_service.proto"; +import "networking/v1alpha3/network_scope.proto"; import "gogoproto/gogo.proto"; package istio.networking.v1alpha3; @@ -117,6 +118,12 @@ message DestinationRule { // One or more named sets that represent individual versions of a // service. Traffic policies can be overridden at subset level. repeated Subset subsets = 3; + + // The visibility setting associated with this DestinationRule. Set to + // PRIVATE if this destination rule should not be exported, i.e. restrict + // the applicability of this destination rule to only workloads in the same + // namespace as the destination rule. + ConfigScope config_scope = 4; } // Traffic policies to apply for a specific destination, across all diff --git a/networking/v1alpha3/gateway.pb.go b/networking/v1alpha3/gateway.pb.go index cbab67e6..2ae53256 100644 --- a/networking/v1alpha3/gateway.pb.go +++ b/networking/v1alpha3/gateway.pb.go @@ -116,6 +116,7 @@ func (Server_TLSOptions_TLSProtocol) EnumDescriptor() ([]byte, []int) { // kind: Gateway // metadata: // name: my-gateway +// namespace: some-config-namespace // spec: // selector: // app: my-gateway-controller @@ -173,13 +174,14 @@ func (Server_TLSOptions_TLSProtocol) EnumDescriptor() ([]byte, []int) { // kind: VirtualService // metadata: // name: bookinfo-rule +// namespace: bookinfo-namespace // spec: // hosts: // - reviews.prod.svc.cluster.local // - uk.bookinfo.com // - eu.bookinfo.com // gateways: -// - my-gateway +// - some-config-namespace/my-gateway // - mesh # applies to all the sidecars in the mesh // http: // - match: @@ -215,11 +217,13 @@ func (Server_TLSOptions_TLSProtocol) EnumDescriptor() ([]byte, []int) { // kind: VirtualService // metadata: // name: bookinfo-Mongo +// namespace: bookinfo-namespace // spec: // hosts: // - mongosvr.prod.svc.cluster.local #name of internal Mongo service // gateways: -// - my-gateway +// - some-config-namespace/my-gateway # can omit the namespace if gateway is in same +// namespace as virtual service. // tcp: // - match: // - port: 27017 diff --git a/networking/v1alpha3/gateway.proto b/networking/v1alpha3/gateway.proto index e7a54a41..4f857dd8 100644 --- a/networking/v1alpha3/gateway.proto +++ b/networking/v1alpha3/gateway.proto @@ -36,6 +36,7 @@ option go_package = "istio.io/api/networking/v1alpha3"; // kind: Gateway // metadata: // name: my-gateway +// namespace: some-config-namespace // spec: // selector: // app: my-gateway-controller @@ -93,13 +94,14 @@ option go_package = "istio.io/api/networking/v1alpha3"; // kind: VirtualService // metadata: // name: bookinfo-rule +// namespace: bookinfo-namespace // spec: // hosts: // - reviews.prod.svc.cluster.local // - uk.bookinfo.com // - eu.bookinfo.com // gateways: -// - my-gateway +// - some-config-namespace/my-gateway // - mesh # applies to all the sidecars in the mesh // http: // - match: @@ -135,11 +137,13 @@ option go_package = "istio.io/api/networking/v1alpha3"; // kind: VirtualService // metadata: // name: bookinfo-Mongo +// namespace: bookinfo-namespace // spec: // hosts: // - mongosvr.prod.svc.cluster.local #name of internal Mongo service // gateways: -// - my-gateway +// - some-config-namespace/my-gateway # can omit the namespace if gateway is in same +// namespace as virtual service. // tcp: // - match: // - port: 27017 diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index c6cc9e88..4c91ad01 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -6,7 +6,7 @@ layout: protoc-gen-docs generator: protoc-gen-docs aliases: - /docs/reference/config/istio.routing.v1alpha1/ -number_of_entries: 55 +number_of_entries: 59 ---

Configuration affecting traffic routing. Here are a few terms useful to define in the context of traffic routing.

@@ -37,6 +37,40 @@ actual choice of the version is determined by the proxy/sidecar, enabling the application code to decouple itself from the evolution of dependent services.

+

ConfigScope

+
+

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 NetworkScope.

+ +
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.

+
+ + + + + + + + + + + + + + + + +
NameDescription
PUBLIC +

Config with this scope are visible to all workloads in the mesh

+ +
PRIVATE +

Configs with this scope are visible to only workloads in the same +namespace as the configuration resource.

+ +
+

ConnectionPoolSettings

Connection pool settings for an upstream host. The settings apply to @@ -628,6 +662,17 @@ sizes, outlier detection).

One or more named sets that represent individual versions of a service. Traffic policies can be overridden at subset level.

+ + + +configScope +ConfigScope + +

The visibility setting associated with this DestinationRule. Set to +PRIVATE if this destination rule should not be exported, i.e. restrict +the applicability of this destination rule to only workloads in the same +namespace as the destination rule.

+ @@ -1044,6 +1089,7 @@ ports are allowed into the mesh.

kind: Gateway metadata: name: my-gateway + namespace: some-config-namespace spec: selector: app: my-gateway-controller @@ -1101,13 +1147,14 @@ gets redirected to “https://uk.bookinfo.com” (i.e. 80 redirects to 4 kind: VirtualService metadata: name: bookinfo-rule + namespace: bookinfo-namespace spec: hosts: - reviews.prod.svc.cluster.local - uk.bookinfo.com - eu.bookinfo.com gateways: - - my-gateway + - some-config-namespace/my-gateway - mesh # applies to all the sidecars in the mesh http: - match: @@ -1142,11 +1189,13 @@ reserved name mesh.

kind: VirtualService metadata: name: bookinfo-Mongo + namespace: bookinfo-namespace spec: hosts: - mongosvr.prod.svc.cluster.local #name of internal Mongo service gateways: - - my-gateway + - some-config-namespace/my-gateway # can omit the namespace if gateway is in same + namespace as virtual service. tcp: - match: - port: 27017 @@ -2353,6 +2402,186 @@ balancing. This option must be used with care. It is meant for advanced use cases. Refer to Original Destination load balancer in Envoy for further details.

+ + + + +
+

NetworkScope

+
+

NetworkScope 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 NetworkScope 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 NetworkScope resource has to be specified in the +current namespace. Each namespace MUST have only one NetworkScope +resource named “default”. The behavior of the system is undefined if +more than one NetworkScope resource exists in a given namespace. The set +of dependencies specified in a NetworkScope 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 defaultNetworkScope.importMode to SAME_NAMESPACE +in the mesh global config map (in values.yaml).

+ +

NOTE 2: To facilitate incremental pruning of the 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 NetworkScope 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 NetworkScope.

+ +

The example below delcares a NetworkScope 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: NetworkScope
+metadata:
+  name: default
+  namespace: prod-us1
+spec:
+  dependencies:
+  - imports:
+    - namespace: prod-apis
+
+ +

In a mesh where the default network scope 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 +NetworkScope resource can be used to specify such a dependency:

+ +
apiVersion: networking.istio.io/v1alpha3
+kind: NetworkScope
+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 network scope (SAME_NAMESPACE).

+ + + + + + + + + + + + + + + + +
FieldTypeDescription
dependenciesNetworkScope.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.

+ +
+
+

NetworkScope.Dependency

+
+

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

+ + + + + + + + + + + + + + + + +
FieldTypeDescription
importsNetworkScope.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 defaultNetworkScope.importNamespaces) will also be +imported.

+ +
+
+

NetworkScope.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.

+ + + + + + + + + + + + + + + + + + + @@ -3234,6 +3463,18 @@ said port will be allowed (i.e. 0.0.0.0:).

+ + + + + @@ -4176,6 +4417,17 @@ traffic.

be applied to any port that is not a HTTP or TLS port. The first rule matching an incoming request is used.

+ + + + + + diff --git a/networking/v1alpha3/network_scope.pb.go b/networking/v1alpha3/network_scope.pb.go new file mode 100644 index 00000000..6f6f79d6 --- /dev/null +++ b/networking/v1alpha3/network_scope.pb.go @@ -0,0 +1,933 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: networking/v1alpha3/network_scope.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 NetworkScope. +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 fileDescriptorNetworkScope, []int{0} } + +// `NetworkScope` 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 NetworkScope 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 NetworkScope resource has to be specified in the +// current namespace. *_Each namespace MUST have only one NetworkScope +// resource named "default"_*. The behavior of the system is undefined if +// more than one NetworkScope resource exists in a given namespace. The set +// of dependencies specified in a NetworkScope 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 defaultNetworkScope.importMode to SAME_NAMESPACE +// in the mesh global config map (in values.yaml). +// +// NOTE 2: To facilitate incremental pruning of the 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 NetworkScope 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 NetworkScope. +// +// The example below delcares a NetworkScope 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: NetworkScope +// metadata: +// name: default +// namespace: prod-us1 +// spec: +// dependencies: +// - imports: +// - namespace: prod-apis +// ``` +// +// In a mesh where the default network scope 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 +// NetworkScope resource can be used to specify such a dependency: +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: NetworkScope +// 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 network scope (SAME_NAMESPACE). +// +type NetworkScope 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 []*NetworkScope_Dependency `protobuf:"bytes,1,rep,name=dependencies" json:"dependencies,omitempty"` +} + +func (m *NetworkScope) Reset() { *m = NetworkScope{} } +func (m *NetworkScope) String() string { return proto.CompactTextString(m) } +func (*NetworkScope) ProtoMessage() {} +func (*NetworkScope) Descriptor() ([]byte, []int) { return fileDescriptorNetworkScope, []int{0} } + +func (m *NetworkScope) GetDependencies() []*NetworkScope_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 NetworkScope_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 *NetworkScope_Import) Reset() { *m = NetworkScope_Import{} } +func (m *NetworkScope_Import) String() string { return proto.CompactTextString(m) } +func (*NetworkScope_Import) ProtoMessage() {} +func (*NetworkScope_Import) Descriptor() ([]byte, []int) { + return fileDescriptorNetworkScope, []int{0, 0} +} + +func (m *NetworkScope_Import) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *NetworkScope_Import) GetHost() string { + if m != nil { + return m.Host + } + return "" +} + +// Dependency describes a workload and the set of service dependencies +// for the workload. +type NetworkScope_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 NetworkScope + // 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 defaultNetworkScope.importNamespaces) will also be + // imported. + Imports []*NetworkScope_Import `protobuf:"bytes,2,rep,name=imports" json:"imports,omitempty"` +} + +func (m *NetworkScope_Dependency) Reset() { *m = NetworkScope_Dependency{} } +func (m *NetworkScope_Dependency) String() string { return proto.CompactTextString(m) } +func (*NetworkScope_Dependency) ProtoMessage() {} +func (*NetworkScope_Dependency) Descriptor() ([]byte, []int) { + return fileDescriptorNetworkScope, []int{0, 1} +} + +func (m *NetworkScope_Dependency) GetSourceWorkloadLabels() map[string]string { + if m != nil { + return m.SourceWorkloadLabels + } + return nil +} + +func (m *NetworkScope_Dependency) GetImports() []*NetworkScope_Import { + if m != nil { + return m.Imports + } + return nil +} + +func init() { + proto.RegisterType((*NetworkScope)(nil), "istio.networking.v1alpha3.NetworkScope") + proto.RegisterType((*NetworkScope_Import)(nil), "istio.networking.v1alpha3.NetworkScope.Import") + proto.RegisterType((*NetworkScope_Dependency)(nil), "istio.networking.v1alpha3.NetworkScope.Dependency") + proto.RegisterEnum("istio.networking.v1alpha3.ConfigScope", ConfigScope_name, ConfigScope_value) +} +func (m *NetworkScope) 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 *NetworkScope) 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 = encodeVarintNetworkScope(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *NetworkScope_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 *NetworkScope_Import) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Namespace) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintNetworkScope(dAtA, i, uint64(len(m.Namespace))) + i += copy(dAtA[i:], m.Namespace) + } + if len(m.Host) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintNetworkScope(dAtA, i, uint64(len(m.Host))) + i += copy(dAtA[i:], m.Host) + } + return i, nil +} + +func (m *NetworkScope_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 *NetworkScope_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) + sovNetworkScope(uint64(len(k))) + 1 + len(v) + sovNetworkScope(uint64(len(v))) + i = encodeVarintNetworkScope(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintNetworkScope(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintNetworkScope(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 = encodeVarintNetworkScope(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func encodeVarintNetworkScope(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 *NetworkScope) Size() (n int) { + var l int + _ = l + if len(m.Dependencies) > 0 { + for _, e := range m.Dependencies { + l = e.Size() + n += 1 + l + sovNetworkScope(uint64(l)) + } + } + return n +} + +func (m *NetworkScope_Import) Size() (n int) { + var l int + _ = l + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovNetworkScope(uint64(l)) + } + l = len(m.Host) + if l > 0 { + n += 1 + l + sovNetworkScope(uint64(l)) + } + return n +} + +func (m *NetworkScope_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) + sovNetworkScope(uint64(len(k))) + 1 + len(v) + sovNetworkScope(uint64(len(v))) + n += mapEntrySize + 1 + sovNetworkScope(uint64(mapEntrySize)) + } + } + if len(m.Imports) > 0 { + for _, e := range m.Imports { + l = e.Size() + n += 1 + l + sovNetworkScope(uint64(l)) + } + } + return n +} + +func sovNetworkScope(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozNetworkScope(x uint64) (n int) { + return sovNetworkScope(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *NetworkScope) 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 ErrIntOverflowNetworkScope + } + 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: NetworkScope: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NetworkScope: 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 ErrIntOverflowNetworkScope + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNetworkScope + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Dependencies = append(m.Dependencies, &NetworkScope_Dependency{}) + if err := m.Dependencies[len(m.Dependencies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNetworkScope(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetworkScope + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NetworkScope_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 ErrIntOverflowNetworkScope + } + 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 ErrIntOverflowNetworkScope + } + 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 ErrInvalidLengthNetworkScope + } + 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 ErrIntOverflowNetworkScope + } + 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 ErrInvalidLengthNetworkScope + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Host = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNetworkScope(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetworkScope + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NetworkScope_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 ErrIntOverflowNetworkScope + } + 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 ErrIntOverflowNetworkScope + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNetworkScope + } + 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 ErrIntOverflowNetworkScope + } + 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 ErrIntOverflowNetworkScope + } + 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 ErrInvalidLengthNetworkScope + } + 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 ErrIntOverflowNetworkScope + } + 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 ErrInvalidLengthNetworkScope + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipNetworkScope(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetworkScope + } + 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 ErrIntOverflowNetworkScope + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNetworkScope + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Imports = append(m.Imports, &NetworkScope_Import{}) + if err := m.Imports[len(m.Imports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNetworkScope(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetworkScope + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipNetworkScope(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, ErrIntOverflowNetworkScope + } + 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, ErrIntOverflowNetworkScope + } + 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, ErrIntOverflowNetworkScope + } + 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, ErrInvalidLengthNetworkScope + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowNetworkScope + } + 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 := skipNetworkScope(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 ( + ErrInvalidLengthNetworkScope = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowNetworkScope = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("networking/v1alpha3/network_scope.proto", fileDescriptorNetworkScope) } + +var fileDescriptorNetworkScope = []byte{ + // 352 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xcf, 0x4b, 0x2d, 0x29, + 0xcf, 0x2f, 0xca, 0xce, 0xcc, 0x4b, 0xd7, 0x2f, 0x33, 0x4c, 0xcc, 0x29, 0xc8, 0x48, 0x34, 0xd6, + 0x87, 0x8a, 0xc5, 0x17, 0x27, 0xe7, 0x17, 0xa4, 0xea, 0x15, 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0x49, + 0x66, 0x16, 0x97, 0x64, 0xe6, 0xeb, 0x21, 0x94, 0xeb, 0xc1, 0x94, 0x2b, 0x9d, 0x64, 0xe6, 0xe2, + 0xf1, 0x83, 0x88, 0x07, 0x83, 0x74, 0x08, 0x85, 0x71, 0xf1, 0xa4, 0xa4, 0x16, 0xa4, 0xe6, 0xa5, + 0xa4, 0xe6, 0x25, 0x67, 0xa6, 0x16, 0x4b, 0x30, 0x2a, 0x30, 0x6b, 0x70, 0x1b, 0x19, 0xe9, 0xe1, + 0x34, 0x42, 0x0f, 0x59, 0xbb, 0x9e, 0x0b, 0x4c, 0x6f, 0x65, 0x10, 0x8a, 0x39, 0x52, 0x56, 0x5c, + 0x6c, 0x9e, 0xb9, 0x05, 0xf9, 0x45, 0x25, 0x42, 0x32, 0x5c, 0x9c, 0x79, 0x89, 0xb9, 0xa9, 0xc5, + 0x05, 0x89, 0xc9, 0xa9, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0x9c, 0x41, 0x08, 0x01, 0x21, 0x21, 0x2e, + 0x96, 0x8c, 0xfc, 0xe2, 0x12, 0x09, 0x26, 0xb0, 0x04, 0x98, 0x2d, 0xb5, 0x84, 0x89, 0x8b, 0x0b, + 0x61, 0xb0, 0x50, 0x13, 0x23, 0x97, 0x58, 0x71, 0x7e, 0x69, 0x51, 0x72, 0x6a, 0x3c, 0xc8, 0xe2, + 0x9c, 0xfc, 0xc4, 0x94, 0xf8, 0x9c, 0xc4, 0xa4, 0xd4, 0x1c, 0x98, 0x6b, 0x7d, 0x48, 0x77, 0xad, + 0x5e, 0x30, 0xd8, 0xc0, 0x70, 0xa8, 0x79, 0x3e, 0x60, 0xe3, 0x5c, 0xf3, 0x4a, 0x8a, 0x2a, 0x83, + 0x44, 0x8a, 0xb1, 0x48, 0x09, 0x79, 0x70, 0xb1, 0x67, 0x82, 0xfd, 0x53, 0x2c, 0xc1, 0x04, 0xb6, + 0x54, 0x8f, 0x58, 0x4b, 0x21, 0xc1, 0x10, 0x04, 0xd3, 0x2e, 0xe5, 0xce, 0x25, 0x89, 0xd3, 0x72, + 0x21, 0x01, 0x2e, 0xe6, 0xec, 0xd4, 0x4a, 0x68, 0x30, 0x81, 0x98, 0x42, 0x22, 0x5c, 0xac, 0x65, + 0x89, 0x39, 0xa5, 0xa9, 0xd0, 0x10, 0x82, 0x70, 0xac, 0x98, 0x2c, 0x18, 0xb5, 0xd4, 0xb8, 0xb8, + 0x9d, 0xf3, 0xf3, 0xd2, 0x32, 0xd3, 0x21, 0x31, 0xc9, 0xc5, 0xc5, 0x16, 0x10, 0xea, 0xe4, 0xe3, + 0xe9, 0x2c, 0xc0, 0x20, 0xc4, 0xcd, 0xc5, 0x1e, 0x10, 0xe4, 0x19, 0xe6, 0x18, 0xe2, 0x2a, 0xc0, + 0xe8, 0xa4, 0x77, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x46, + 0x29, 0x40, 0x9c, 0x9d, 0x99, 0xaf, 0x9f, 0x58, 0x90, 0xa9, 0x8f, 0x25, 0x49, 0x25, 0xb1, 0x81, + 0x53, 0x91, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x64, 0xd5, 0x9b, 0x1f, 0x70, 0x02, 0x00, 0x00, +} diff --git a/networking/v1alpha3/network_scope.proto b/networking/v1alpha3/network_scope.proto new file mode 100644 index 00000000..e78dbc03 --- /dev/null +++ b/networking/v1alpha3/network_scope.proto @@ -0,0 +1,168 @@ +// 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"; + +// `NetworkScope` 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 NetworkScope 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 NetworkScope resource has to be specified in the +// current namespace. *_Each namespace MUST have only one NetworkScope +// resource named "default"_*. The behavior of the system is undefined if +// more than one NetworkScope resource exists in a given namespace. The set +// of dependencies specified in a NetworkScope 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 defaultNetworkScope.importMode to SAME_NAMESPACE +// in the mesh global config map (in values.yaml). +// +// NOTE 2: To facilitate incremental pruning of the 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 NetworkScope 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 NetworkScope. +// +// The example below delcares a NetworkScope 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: NetworkScope +// metadata: +// name: default +// namespace: prod-us1 +// spec: +// dependencies: +// - imports: +// - namespace: prod-apis +// ``` +// +// In a mesh where the default network scope 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 +// NetworkScope resource can be used to specify such a dependency: +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: NetworkScope +// 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 network scope (SAME_NAMESPACE). +// +message NetworkScope { + // 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 NetworkScope + // 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 defaultNetworkScope.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 NetworkScope. +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 faa5471f..80b70528 100644 --- a/networking/v1alpha3/service_entry.pb.go +++ b/networking/v1alpha3/service_entry.pb.go @@ -400,6 +400,12 @@ type ServiceEntry struct { Resolution ServiceEntry_Resolution `protobuf:"varint,5,opt,name=resolution,proto3,enum=istio.networking.v1alpha3.ServiceEntry_Resolution" json:"resolution,omitempty"` // One or more endpoints associated with the service. Endpoints []*ServiceEntry_Endpoint `protobuf:"bytes,6,rep,name=endpoints" json:"endpoints,omitempty"` + // The visibility setting associated with this service entry. Set to + // PRIVATE if this service should not be visible outside the namespace + // where the service entry was added. The default scope is public, + // i.e. the service added by the service entry will be visible to + // workloads in the entire mesh. + ConfigScope ConfigScope `protobuf:"varint,7,opt,name=config_scope,json=configScope,proto3,enum=istio.networking.v1alpha3.ConfigScope" json:"config_scope,omitempty"` } func (m *ServiceEntry) Reset() { *m = ServiceEntry{} } @@ -449,6 +455,13 @@ func (m *ServiceEntry) GetEndpoints() []*ServiceEntry_Endpoint { return nil } +func (m *ServiceEntry) GetConfigScope() ConfigScope { + if m != nil { + return m.ConfigScope + } + return ConfigScope_PUBLIC +} + // Endpoint defines a network address (IP or hostname) associated with // the mesh service. type ServiceEntry_Endpoint struct { @@ -629,6 +642,11 @@ func (m *ServiceEntry) MarshalTo(dAtA []byte) (int, error) { i += n } } + if m.ConfigScope != 0 { + dAtA[i] = 0x38 + i++ + i = encodeVarintServiceEntry(dAtA, i, uint64(m.ConfigScope)) + } return i, nil } @@ -748,6 +766,9 @@ func (m *ServiceEntry) Size() (n int) { n += 1 + l + sovServiceEntry(uint64(l)) } } + if m.ConfigScope != 0 { + n += 1 + sovServiceEntry(uint64(m.ConfigScope)) + } return n } @@ -988,6 +1009,25 @@ func (m *ServiceEntry) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ConfigScope", wireType) + } + m.ConfigScope = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowServiceEntry + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ConfigScope |= (ConfigScope(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipServiceEntry(dAtA[iNdEx:]) @@ -1498,36 +1538,38 @@ var ( func init() { proto.RegisterFile("networking/v1alpha3/service_entry.proto", fileDescriptorServiceEntry) } var fileDescriptorServiceEntry = []byte{ - // 481 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0xdf, 0x6e, 0xd3, 0x30, - 0x14, 0xc6, 0xe7, 0x66, 0xcd, 0x9a, 0x33, 0x86, 0x82, 0x85, 0x90, 0x89, 0x50, 0x09, 0xbd, 0x21, - 0x12, 0x52, 0x3a, 0x3a, 0x21, 0x8d, 0x3f, 0x37, 0x03, 0x22, 0x31, 0xa9, 0x04, 0x70, 0x7b, 0x81, - 0xb8, 0x99, 0xbc, 0xd5, 0x6a, 0xad, 0x45, 0x71, 0x14, 0x7b, 0xad, 0xfa, 0x16, 0x3c, 0x16, 0x97, - 0xbc, 0x00, 0x12, 0xea, 0x93, 0xa0, 0x3a, 0x4e, 0xd3, 0x8b, 0x01, 0xdb, 0x5d, 0xbe, 0x13, 0x7f, - 0x3f, 0x1f, 0x7f, 0xc7, 0x86, 0xa7, 0x39, 0xd7, 0x0b, 0x59, 0x5e, 0x8a, 0x7c, 0xda, 0x9f, 0x3f, - 0x67, 0x59, 0x31, 0x63, 0x47, 0x7d, 0xc5, 0xcb, 0xb9, 0xb8, 0xe0, 0x67, 0x3c, 0xd7, 0xe5, 0x32, - 0x2e, 0x4a, 0xa9, 0x25, 0x7e, 0x28, 0x94, 0x16, 0x32, 0x6e, 0x96, 0xc7, 0xf5, 0xf2, 0xe0, 0xc9, - 0x75, 0x8c, 0x29, 0xd3, 0x7c, 0xc1, 0xac, 0xbb, 0xf7, 0xcb, 0x85, 0x3b, 0xa3, 0x8a, 0x9a, 0xac, - 0xa1, 0xf8, 0x3e, 0xb4, 0x67, 0x52, 0x69, 0x45, 0x50, 0xe8, 0x44, 0x1e, 0xad, 0x04, 0x7e, 0x04, - 0x1e, 0x9b, 0x4c, 0x4a, 0xae, 0x14, 0x57, 0xa4, 0x65, 0xfe, 0x34, 0x05, 0xfc, 0x02, 0xda, 0x85, - 0x2c, 0xb5, 0x22, 0x4e, 0xe8, 0x44, 0xfb, 0x83, 0xc7, 0xf1, 0x5f, 0x5b, 0x8a, 0x3f, 0xcb, 0x52, - 0xd3, 0x6a, 0x35, 0x1e, 0x42, 0x27, 0x93, 0x17, 0x4c, 0x0b, 0x99, 0x93, 0xdd, 0x10, 0x45, 0x77, - 0x07, 0x87, 0xff, 0x70, 0x6e, 0x77, 0x19, 0x0f, 0xad, 0x8f, 0x6e, 0x08, 0x98, 0x02, 0x94, 0x5c, - 0xc9, 0xec, 0xca, 0xf0, 0xda, 0x86, 0x37, 0xb8, 0x29, 0x8f, 0x6e, 0x9c, 0x74, 0x8b, 0x82, 0x53, - 0xf0, 0x78, 0x3e, 0x29, 0xa4, 0xc8, 0xb5, 0x22, 0xae, 0x39, 0xdc, 0x8d, 0x5b, 0x4c, 0xac, 0x91, - 0x36, 0x88, 0xe0, 0xbb, 0x03, 0x9d, 0xba, 0x8e, 0x09, 0xec, 0xd9, 0x08, 0x09, 0x0a, 0x51, 0xe4, - 0xd1, 0x5a, 0xe2, 0x2f, 0x75, 0x9e, 0x2d, 0xb3, 0xe5, 0xeb, 0xdb, 0x6e, 0x69, 0x52, 0x56, 0xa6, - 0x56, 0x67, 0x3d, 0x06, 0x37, 0x63, 0xe7, 0x3c, 0xab, 0x67, 0xf4, 0xe6, 0xd6, 0xcc, 0xa1, 0xb1, - 0x57, 0x50, 0xcb, 0x5a, 0x1f, 0xc1, 0x02, 0xcc, 0x00, 0x3d, 0x5a, 0x4b, 0x1c, 0x54, 0xb3, 0xcd, - 0x84, 0x5e, 0x9a, 0x59, 0x78, 0x74, 0xa3, 0xf1, 0x03, 0x70, 0x17, 0x5c, 0x4c, 0x67, 0x9a, 0xb8, - 0x21, 0x8a, 0x0e, 0xa8, 0x55, 0xc1, 0x31, 0x40, 0xd3, 0x38, 0xf6, 0xc1, 0xb9, 0xe4, 0x4b, 0x1b, - 0xcd, 0xfa, 0x73, 0x7d, 0x35, 0xe7, 0x2c, 0xbb, 0xe2, 0xa4, 0x65, 0x6c, 0x95, 0x78, 0xd5, 0x3a, - 0x46, 0xc1, 0x4b, 0xd8, 0xdf, 0x6a, 0xef, 0x7f, 0x56, 0x6f, 0xcb, 0xda, 0x3b, 0x84, 0x4e, 0x7d, - 0x99, 0xf0, 0x3d, 0x38, 0xf8, 0x98, 0x8c, 0x3e, 0x9c, 0x25, 0x5f, 0xc7, 0x09, 0x4d, 0x4f, 0x86, - 0xfe, 0xce, 0xa6, 0x74, 0x9a, 0xda, 0x12, 0xea, 0x3d, 0x03, 0x68, 0xae, 0x0b, 0xee, 0xc0, 0x6e, - 0xfa, 0x29, 0x4d, 0xfc, 0x1d, 0x0c, 0xe0, 0x8e, 0xc6, 0x27, 0xe3, 0xd3, 0x77, 0x3e, 0xc2, 0x7b, - 0xe0, 0xbc, 0x4f, 0x47, 0x7e, 0xeb, 0x6d, 0xfc, 0x63, 0xd5, 0x45, 0x3f, 0x57, 0x5d, 0xf4, 0x7b, - 0xd5, 0x45, 0xdf, 0xc2, 0x2a, 0x74, 0x21, 0xfb, 0xac, 0x10, 0xfd, 0x6b, 0x5e, 0xe7, 0xb9, 0x6b, - 0x9e, 0xe5, 0xd1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe5, 0xb0, 0x1f, 0xc6, 0xff, 0x03, 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, 0x2c, 0x14, 0x4c, 0x16, + 0x10, 0x09, 0xc9, 0x29, 0xa9, 0x90, 0xca, 0xcf, 0xa6, 0x14, 0x4b, 0x44, 0x0a, 0x06, 0x26, 0x59, + 0x20, 0x36, 0x91, 0x9b, 0x0c, 0xc9, 0xa8, 0x96, 0xc7, 0xf2, 0x4c, 0x13, 0xe5, 0x2d, 0x78, 0x0c, + 0x1e, 0x85, 0x25, 0x8f, 0x80, 0xf2, 0x24, 0x28, 0xe3, 0x71, 0x9c, 0x45, 0x28, 0xed, 0xce, 0xe7, + 0xfa, 0x9e, 0x73, 0xcf, 0xcc, 0xb9, 0x03, 0x4f, 0x13, 0xa6, 0x96, 0x22, 0xbb, 0xe2, 0xc9, 0xac, + 0xbb, 0x78, 0x1e, 0xc5, 0xe9, 0x3c, 0x3a, 0xed, 0x4a, 0x96, 0x2d, 0xf8, 0x84, 0x8d, 0x59, 0xa2, + 0xb2, 0x95, 0x9f, 0x66, 0x42, 0x09, 0xfc, 0x80, 0x4b, 0xc5, 0x85, 0x5f, 0xb6, 0xfb, 0x45, 0xbb, + 0xfb, 0x78, 0x9f, 0xc6, 0x2c, 0x52, 0x6c, 0x19, 0x19, 0xb6, 0xbb, 0x77, 0x8c, 0xa9, 0x8d, 0xe5, + 0x44, 0xa4, 0x2c, 0x6f, 0x6c, 0xff, 0xa8, 0xc1, 0xd1, 0x30, 0x1f, 0x1f, 0x6c, 0xa6, 0xe3, 0x7b, + 0x50, 0x9d, 0x0b, 0xa9, 0x24, 0x41, 0x9e, 0xd5, 0x71, 0x68, 0x0e, 0xf0, 0x43, 0x70, 0xa2, 0xe9, + 0x34, 0x63, 0x52, 0x32, 0x49, 0x2a, 0xfa, 0x4f, 0x59, 0xc0, 0x2f, 0xa0, 0x9a, 0x8a, 0x4c, 0x49, + 0x62, 0x79, 0x56, 0xa7, 0xd1, 0x7b, 0xe4, 0xff, 0xd5, 0xbb, 0xff, 0x49, 0x64, 0x8a, 0xe6, 0xdd, + 0x78, 0x00, 0xf5, 0x58, 0x4c, 0x22, 0xc5, 0x45, 0x42, 0x0e, 0x3d, 0xd4, 0xf9, 0xaf, 0x77, 0x72, + 0x03, 0x73, 0xd7, 0xa5, 0x3f, 0x30, 0x3c, 0xba, 0x55, 0xc0, 0x14, 0x20, 0x63, 0x52, 0xc4, 0xd7, + 0x5a, 0xaf, 0xaa, 0xf5, 0x7a, 0xb7, 0xd5, 0xa3, 0x5b, 0x26, 0xdd, 0x51, 0xc1, 0x21, 0x38, 0x2c, + 0x99, 0xa6, 0x82, 0x27, 0x4a, 0x12, 0x5b, 0x1f, 0xee, 0xd6, 0x16, 0x03, 0x43, 0xa4, 0xa5, 0x04, + 0xee, 0xc3, 0xd1, 0x44, 0x24, 0xdf, 0xf8, 0x2c, 0xcf, 0x80, 0xd4, 0xb4, 0xcb, 0x27, 0x37, 0x48, + 0x5e, 0xe8, 0xf6, 0xe1, 0xa6, 0x9b, 0x36, 0x26, 0x25, 0x70, 0xbf, 0x5b, 0x50, 0x2f, 0x46, 0x60, + 0x02, 0x35, 0x93, 0x06, 0x41, 0x1e, 0xea, 0x38, 0xb4, 0x80, 0xf8, 0x73, 0x11, 0x4d, 0x45, 0xbb, + 0x7f, 0x7d, 0x57, 0xf7, 0x3a, 0x30, 0xa9, 0x6b, 0x45, 0x6c, 0x23, 0xb0, 0xe3, 0xe8, 0x92, 0xc5, + 0x45, 0xdc, 0x6f, 0xee, 0xac, 0x39, 0xd0, 0xf4, 0x5c, 0xd4, 0x68, 0x6d, 0x8e, 0x60, 0x04, 0xf4, + 0x2e, 0x38, 0xb4, 0x80, 0xd8, 0xcd, 0xd7, 0x24, 0xe6, 0x6a, 0xa5, 0x63, 0x75, 0xe8, 0x16, 0xe3, + 0xfb, 0x60, 0x2f, 0x19, 0x9f, 0xcd, 0x15, 0xb1, 0x3d, 0xd4, 0x39, 0xa6, 0x06, 0xb9, 0x67, 0x00, + 0xa5, 0x71, 0xdc, 0x04, 0xeb, 0x8a, 0xad, 0xcc, 0xd5, 0x6c, 0x3e, 0x37, 0x5b, 0xbe, 0x88, 0xe2, + 0x6b, 0x46, 0x2a, 0x9a, 0x96, 0x83, 0x57, 0x95, 0x33, 0xe4, 0xbe, 0x84, 0xc6, 0x8e, 0xbd, 0x7f, + 0x51, 0x9d, 0x1d, 0x6a, 0xfb, 0x04, 0xea, 0xc5, 0x5e, 0xe2, 0xff, 0xe1, 0xf8, 0x43, 0x30, 0x7c, + 0x3f, 0x0e, 0xbe, 0x8c, 0x02, 0x1a, 0x9e, 0x0f, 0x9a, 0x07, 0xdb, 0x52, 0x3f, 0x34, 0x25, 0xd4, + 0x7e, 0x06, 0x50, 0x6e, 0x1e, 0xae, 0xc3, 0x61, 0xf8, 0x31, 0x0c, 0x9a, 0x07, 0x18, 0xc0, 0x1e, + 0x8e, 0xce, 0x47, 0xfd, 0x8b, 0x26, 0xc2, 0x35, 0xb0, 0xde, 0x85, 0xc3, 0x66, 0xe5, 0xad, 0xff, + 0x73, 0xdd, 0x42, 0xbf, 0xd6, 0x2d, 0xf4, 0x7b, 0xdd, 0x42, 0x5f, 0xbd, 0xfc, 0xd2, 0xb9, 0xe8, + 0x46, 0x29, 0xef, 0xee, 0x79, 0xee, 0x97, 0xb6, 0x7e, 0xe1, 0xa7, 0x7f, 0x02, 0x00, 0x00, 0xff, + 0xff, 0x24, 0xa5, 0x68, 0xd6, 0x73, 0x04, 0x00, 0x00, } diff --git a/networking/v1alpha3/service_entry.proto b/networking/v1alpha3/service_entry.proto index 69bc993d..de25067b 100644 --- a/networking/v1alpha3/service_entry.proto +++ b/networking/v1alpha3/service_entry.proto @@ -15,6 +15,7 @@ syntax = "proto3"; import "networking/v1alpha3/gateway.proto"; +import "networking/v1alpha3/network_scope.proto"; package istio.networking.v1alpha3; @@ -427,4 +428,11 @@ message ServiceEntry { // One or more endpoints associated with the service. repeated Endpoint endpoints = 6; + + // The visibility setting associated with this service entry. Set to + // PRIVATE if this service should not be visible outside the namespace + // where the service entry was added. The default scope is public, + // i.e. the service added by the service entry will be visible to + // workloads in the entire mesh. + ConfigScope config_scope = 7; } diff --git a/networking/v1alpha3/virtual_service.pb.go b/networking/v1alpha3/virtual_service.pb.go index 26eca07a..17c4d44a 100644 --- a/networking/v1alpha3/virtual_service.pb.go +++ b/networking/v1alpha3/virtual_service.pb.go @@ -134,6 +134,11 @@ type VirtualService struct { // be applied to any port that is not a HTTP or TLS port. The first rule // matching an incoming request is used. Tcp []*TCPRoute `protobuf:"bytes,4,rep,name=tcp" json:"tcp,omitempty"` + // The visibility setting associated with this VirtualService. Set to + // PRIVATE if this virtual service should not be exported, i.e. restrict + // the applicability of this virtual service to only workloads in the same + // namespace as the virtual service. + ConfigScope ConfigScope `protobuf:"varint,6,opt,name=config_scope,json=configScope,proto3,enum=istio.networking.v1alpha3.ConfigScope" json:"config_scope,omitempty"` } func (m *VirtualService) Reset() { *m = VirtualService{} } @@ -176,6 +181,13 @@ func (m *VirtualService) GetTcp() []*TCPRoute { return nil } +func (m *VirtualService) GetConfigScope() ConfigScope { + if m != nil { + return m.ConfigScope + } + return ConfigScope_PUBLIC +} + // Destination indicates the network addressable service to which the // request/connection will be sent after processing a routing rule. The // destination.host should unambiguously refer to a service in the service @@ -2251,6 +2263,11 @@ func (m *VirtualService) MarshalTo(dAtA []byte) (int, error) { i += n } } + if m.ConfigScope != 0 { + dAtA[i] = 0x30 + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(m.ConfigScope)) + } return i, nil } @@ -3649,6 +3666,9 @@ func (m *VirtualService) Size() (n int) { n += 1 + l + sovVirtualService(uint64(l)) } } + if m.ConfigScope != 0 { + n += 1 + sovVirtualService(uint64(m.ConfigScope)) + } return n } @@ -4440,6 +4460,25 @@ func (m *VirtualService) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ConfigScope", wireType) + } + m.ConfigScope = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVirtualService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ConfigScope |= (ConfigScope(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipVirtualService(dAtA[iNdEx:]) @@ -9092,116 +9131,119 @@ func init() { } var fileDescriptorVirtualService = []byte{ - // 1771 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x73, 0xdb, 0xc6, - 0x15, 0x37, 0x48, 0x82, 0x7f, 0x1e, 0x29, 0x99, 0xda, 0xca, 0x32, 0xc4, 0x7a, 0x54, 0x99, 0xae, - 0x5b, 0x75, 0x5c, 0x93, 0x53, 0xa9, 0x75, 0x35, 0xae, 0x2c, 0x9b, 0x94, 0x6c, 0xd3, 0x1d, 0xbb, - 0xd2, 0x80, 0xaa, 0x0f, 0xbd, 0x70, 0x40, 0x60, 0x45, 0xa2, 0x06, 0x01, 0x74, 0xb1, 0x90, 0xc8, - 0xe9, 0xb1, 0x4d, 0xee, 0xc9, 0xe4, 0x9a, 0xc9, 0xf7, 0xc8, 0x25, 0xd7, 0x9c, 0x32, 0xf9, 0x04, - 0x19, 0x8f, 0x0f, 0x39, 0xe4, 0x92, 0xaf, 0x90, 0xd9, 0x5d, 0x00, 0x84, 0x44, 0x89, 0x20, 0x15, - 0x27, 0x93, 0x93, 0xb8, 0x8b, 0xf7, 0xfb, 0xbd, 0xb7, 0x0f, 0x6f, 0xdf, 0x7b, 0x78, 0x82, 0x3f, - 0xd8, 0x98, 0x9e, 0x3a, 0xe4, 0x8d, 0x69, 0xf7, 0xea, 0x27, 0x7f, 0xd2, 0x2c, 0xb7, 0xaf, 0x6d, - 0xd5, 0x4f, 0x4c, 0x42, 0x7d, 0xcd, 0xea, 0x78, 0x98, 0x9c, 0x98, 0x3a, 0xae, 0xb9, 0xc4, 0xa1, - 0x0e, 0x5a, 0x35, 0x3d, 0x6a, 0x3a, 0xb5, 0x31, 0xa0, 0x16, 0x02, 0x2a, 0x6b, 0x3d, 0xc7, 0xe9, - 0x59, 0xb8, 0xce, 0x05, 0xbb, 0xfe, 0x71, 0xdd, 0xf0, 0x89, 0x46, 0x4d, 0xc7, 0x16, 0xd0, 0xc9, - 0xe7, 0xa7, 0x44, 0x73, 0x5d, 0x4c, 0x3c, 0xf1, 0xbc, 0xfa, 0x9d, 0x04, 0x8b, 0xaf, 0x85, 0xd2, - 0xb6, 0xd0, 0x89, 0x96, 0x41, 0xee, 0x3b, 0x1e, 0xf5, 0x14, 0x69, 0x3d, 0xbd, 0x51, 0x50, 0xc5, - 0x02, 0x55, 0x20, 0xdf, 0xd3, 0x28, 0x3e, 0xd5, 0x46, 0x9e, 0x92, 0xe2, 0x0f, 0xa2, 0x35, 0xda, - 0x86, 0x4c, 0x9f, 0x52, 0x57, 0x49, 0xaf, 0xa7, 0x37, 0x8a, 0x9b, 0xbf, 0xad, 0x5d, 0x6a, 0x6e, - 0xad, 0x75, 0x74, 0x74, 0xa8, 0x3a, 0x3e, 0xc5, 0x2a, 0x47, 0xa0, 0xbf, 0x40, 0x9a, 0xea, 0xae, - 0x92, 0xe1, 0xc0, 0x3b, 0x53, 0x80, 0x47, 0x7b, 0x01, 0x8e, 0xc9, 0x73, 0x98, 0xe5, 0x29, 0x72, - 0x32, 0xec, 0x65, 0x3b, 0x84, 0x59, 0x5e, 0xf5, 0x04, 0x8a, 0xfb, 0xd8, 0xa3, 0xa6, 0xcd, 0x3d, - 0x84, 0x10, 0x64, 0xd8, 0xd9, 0x14, 0x69, 0x5d, 0xda, 0x28, 0xa8, 0xfc, 0x37, 0x5a, 0x81, 0xac, - 0xe7, 0x77, 0x3d, 0x4c, 0x95, 0x14, 0xdf, 0x0d, 0x56, 0xe8, 0x6f, 0x90, 0x71, 0x1d, 0x42, 0x95, - 0xf4, 0xba, 0xb4, 0x51, 0xdc, 0xfc, 0xfd, 0x14, 0x95, 0x87, 0x0e, 0xa1, 0x6d, 0x6c, 0x61, 0x9d, - 0x3a, 0x44, 0xe5, 0xa0, 0xea, 0xf7, 0x00, 0x85, 0xe8, 0xe4, 0xa8, 0x01, 0xf2, 0x40, 0xa3, 0x7a, - 0x9f, 0xfb, 0xb7, 0xb8, 0x79, 0x2f, 0xc1, 0x5d, 0xaf, 0x98, 0xac, 0x8a, 0xff, 0xe3, 0x63, 0x8f, - 0xaa, 0x02, 0x89, 0x9e, 0x82, 0x4c, 0x18, 0x17, 0x7f, 0x13, 0xc5, 0xcd, 0xfa, 0x2c, 0x1e, 0x8f, - 0x9d, 0x5c, 0x15, 0x68, 0xb4, 0x07, 0x79, 0x82, 0x0d, 0x93, 0x60, 0x7d, 0x96, 0x83, 0x71, 0xa6, - 0x40, 0x5c, 0x8d, 0x80, 0xe8, 0x09, 0xe4, 0x08, 0x3e, 0x25, 0x26, 0xc5, 0x4a, 0x86, 0x73, 0xfc, - 0x2e, 0x91, 0x83, 0x4b, 0xab, 0x21, 0x0c, 0xdd, 0x83, 0xa5, 0x53, 0xdc, 0xf5, 0x1c, 0xfd, 0x0d, - 0xa6, 0x1d, 0xdf, 0xed, 0x11, 0xcd, 0xc0, 0x8a, 0xbc, 0x2e, 0x6d, 0xe4, 0xd5, 0x72, 0xf4, 0xe0, - 0x9f, 0x62, 0x1f, 0x6d, 0x41, 0x8e, 0x9a, 0x03, 0xec, 0xf8, 0x54, 0xc9, 0x72, 0x75, 0xab, 0x35, - 0x11, 0xe2, 0xb5, 0x30, 0xc4, 0x6b, 0xfb, 0xc1, 0x15, 0x50, 0x43, 0x49, 0xb4, 0xcb, 0x6c, 0xa4, - 0xc4, 0xc4, 0x9e, 0x92, 0xe3, 0xa0, 0xc4, 0x18, 0xc5, 0x94, 0x8c, 0xd4, 0x10, 0x84, 0xf6, 0x40, - 0x3e, 0xd6, 0x7c, 0x8b, 0x2a, 0x79, 0x8e, 0xbe, 0x9f, 0x80, 0x7e, 0xc6, 0x64, 0x5f, 0xd8, 0xff, - 0xc6, 0xba, 0xf0, 0x36, 0xc7, 0xa2, 0x5d, 0xc8, 0x0e, 0x4c, 0x42, 0x1c, 0xa2, 0x14, 0x12, 0xfd, - 0x14, 0x7f, 0x59, 0x01, 0x0a, 0x3d, 0x83, 0xa2, 0xee, 0x10, 0xaf, 0xe3, 0x3a, 0x96, 0xa9, 0x8f, - 0x14, 0xe0, 0x24, 0x77, 0xa7, 0x90, 0xec, 0x39, 0xc4, 0x3b, 0xe4, 0xc2, 0x2a, 0xe8, 0xd1, 0x6f, - 0xd4, 0x85, 0x45, 0x96, 0x02, 0x6c, 0xa3, 0xd3, 0xc7, 0x9a, 0x81, 0x89, 0xa7, 0x14, 0x79, 0x14, - 0xfd, 0x75, 0x96, 0x28, 0xaa, 0x35, 0x38, 0xb4, 0x25, 0x90, 0x4f, 0x6d, 0x4a, 0x46, 0xcd, 0x94, - 0x22, 0xa9, 0x0b, 0x5a, 0x7c, 0x1f, 0x3d, 0x84, 0x9b, 0x04, 0x0f, 0x9c, 0x13, 0xdc, 0x21, 0xd8, - 0x73, 0x1d, 0xdb, 0xc3, 0x91, 0xb2, 0x12, 0x4b, 0x1e, 0x1c, 0x73, 0x43, 0x88, 0xa8, 0x81, 0x44, - 0x88, 0xfd, 0x2f, 0xdc, 0x0c, 0xec, 0x9b, 0xc0, 0x2e, 0x70, 0x43, 0x1f, 0xcf, 0x61, 0xe8, 0x39, - 0xf2, 0xb1, 0xc1, 0x37, 0xb4, 0x8b, 0x9e, 0xa3, 0x6d, 0x58, 0x89, 0x0c, 0xe7, 0x57, 0x2e, 0xd2, - 0xbd, 0x18, 0xd9, 0xbd, 0x1c, 0xda, 0xcd, 0x05, 0x42, 0xe4, 0x10, 0x56, 0x22, 0xb3, 0xcf, 0x22, - 0xaf, 0x73, 0xab, 0x77, 0xe7, 0xb2, 0x3a, 0x4e, 0x3d, 0x36, 0x7a, 0x59, 0xbb, 0xe0, 0x31, 0xda, - 0x81, 0x5c, 0xa8, 0xaa, 0xcc, 0x83, 0xa2, 0x3a, 0x4d, 0x95, 0x90, 0x54, 0x43, 0x48, 0xe5, 0x09, - 0xa0, 0xc9, 0x77, 0x8a, 0xca, 0x90, 0x7e, 0x83, 0x47, 0x41, 0x6a, 0x64, 0x3f, 0x59, 0x59, 0x38, - 0xd1, 0x2c, 0x1f, 0x07, 0x89, 0x51, 0x2c, 0x1e, 0xa6, 0xb6, 0xa5, 0x4a, 0x0b, 0x2a, 0x97, 0x3b, - 0x7b, 0x2e, 0xa6, 0xe7, 0xb0, 0x7a, 0xa9, 0x03, 0xe6, 0x21, 0xaa, 0x7e, 0x9b, 0x86, 0x5c, 0xe8, - 0x9e, 0x57, 0xec, 0xf2, 0x73, 0x3a, 0x8e, 0x2d, 0x6e, 0x6e, 0x25, 0xbb, 0x27, 0xf8, 0x7b, 0xe0, - 0x62, 0x91, 0x4a, 0x3c, 0x35, 0xe4, 0x40, 0x07, 0x2c, 0x69, 0x8a, 0x73, 0x72, 0xbd, 0x57, 0xe4, - 0x8b, 0x48, 0x2a, 0x9f, 0xa7, 0xa0, 0x7c, 0xfe, 0x31, 0xfa, 0x07, 0xa4, 0x59, 0x11, 0x12, 0x25, - 0x62, 0xe7, 0x0a, 0x0a, 0x6a, 0x6d, 0x4c, 0xb9, 0xdf, 0x54, 0x46, 0xc4, 0xf8, 0x34, 0xc3, 0x08, - 0xea, 0xc5, 0x95, 0xf8, 0x1a, 0x86, 0x11, 0xf0, 0x69, 0x86, 0xc1, 0xea, 0xa4, 0xb8, 0x05, 0xbc, - 0xe8, 0x17, 0xd4, 0x60, 0x55, 0x79, 0x00, 0xf9, 0x50, 0xf1, 0x5c, 0x6f, 0xfe, 0x01, 0xe4, 0x43, - 0x05, 0x73, 0xbd, 0xe8, 0x8f, 0x25, 0xc8, 0x87, 0x45, 0x9e, 0xa5, 0xe9, 0x78, 0x65, 0xbd, 0x3f, - 0xbd, 0x31, 0xe0, 0x85, 0xb5, 0x41, 0x29, 0x31, 0xbb, 0x3e, 0xc5, 0x5e, 0x58, 0x5b, 0x1b, 0x67, - 0x6b, 0xeb, 0xb4, 0xf2, 0x7c, 0x49, 0x5d, 0xad, 0x7e, 0xc4, 0x8c, 0x0a, 0x1a, 0x16, 0xd4, 0x3c, - 0x6b, 0xd4, 0x1f, 0xa7, 0xf0, 0xbd, 0xfc, 0xf3, 0x4f, 0x67, 0xd3, 0x67, 0x32, 0x94, 0xcf, 0xb7, - 0x13, 0x68, 0x1b, 0xd2, 0x3e, 0x31, 0x83, 0x6b, 0x31, 0xad, 0x1e, 0xb5, 0x29, 0x31, 0xed, 0x9e, - 0xc0, 0x32, 0x08, 0x2b, 0x66, 0x9e, 0xde, 0xc7, 0x83, 0xf0, 0x0e, 0xcc, 0x0a, 0x0e, 0x50, 0xbc, - 0x18, 0x62, 0xda, 0x77, 0x8c, 0xa0, 0xf1, 0x98, 0x19, 0x2f, 0x50, 0x68, 0x1f, 0x0a, 0x9a, 0x4f, - 0xfb, 0x0e, 0x31, 0xe9, 0x68, 0x86, 0xbe, 0x23, 0x4e, 0x31, 0x06, 0x22, 0x75, 0x9c, 0x39, 0x45, - 0x2f, 0xb9, 0x3d, 0x47, 0x33, 0x56, 0x8b, 0x67, 0xa7, 0x28, 0x9f, 0xb2, 0xae, 0x92, 0x77, 0x8a, - 0xac, 0x3b, 0x59, 0x10, 0x0d, 0x20, 0xea, 0xc2, 0x82, 0xe7, 0xf8, 0x44, 0xc7, 0x1d, 0x4b, 0xeb, - 0x62, 0x8b, 0x75, 0x21, 0x4c, 0xdb, 0xa3, 0x79, 0xb4, 0xb5, 0x39, 0xc1, 0x4b, 0x8e, 0x17, 0x2a, - 0x4b, 0x5e, 0x6c, 0xeb, 0x4c, 0x83, 0x9e, 0x3f, 0xdb, 0xa0, 0x57, 0xba, 0x50, 0x4a, 0x48, 0xa5, - 0x3b, 0xf1, 0x1b, 0x36, 0xbb, 0x2f, 0x63, 0x37, 0xf8, 0x31, 0x2c, 0x4d, 0x98, 0x38, 0xd7, 0x55, - 0xfe, 0x4a, 0x86, 0xe5, 0x8b, 0xba, 0x55, 0xd4, 0x82, 0xa2, 0x31, 0x5e, 0xce, 0x10, 0xad, 0xf1, - 0xf0, 0x8f, 0x43, 0x59, 0xd6, 0x3a, 0xc5, 0x66, 0xaf, 0x2f, 0xba, 0x7b, 0x59, 0x0d, 0x56, 0xd3, - 0xda, 0x95, 0x74, 0x52, 0xbb, 0xf2, 0xa1, 0x74, 0x79, 0xbf, 0x22, 0xbe, 0x6b, 0xfe, 0x3e, 0x67, - 0x7b, 0xfe, 0xde, 0x5b, 0x17, 0x39, 0xa1, 0x75, 0xf9, 0x9f, 0x74, 0x69, 0xef, 0x92, 0xe5, 0x27, - 0x78, 0x71, 0xd5, 0x13, 0x5c, 0xb1, 0x8d, 0xc9, 0xcd, 0xdf, 0xc6, 0xfc, 0x02, 0x9b, 0x10, 0x0a, - 0xe5, 0x9f, 0x3f, 0x96, 0xab, 0x5f, 0xa4, 0x60, 0x69, 0xa2, 0x90, 0xa0, 0x3a, 0xfc, 0x2a, 0x06, - 0xee, 0x78, 0x7e, 0xd7, 0xc6, 0xd1, 0x27, 0x3e, 0x8a, 0x3d, 0x6a, 0x8b, 0x27, 0x51, 0x1a, 0x4b, - 0xc5, 0xd2, 0xd8, 0x9d, 0x28, 0x8d, 0x09, 0x3c, 0xcf, 0xdd, 0x85, 0x30, 0x0f, 0x09, 0x24, 0xd2, - 0xcf, 0xe7, 0xba, 0x4c, 0x62, 0xfb, 0x3b, 0x61, 0xee, 0x5c, 0xc9, 0x4e, 0x3e, 0x97, 0xec, 0x7e, - 0x74, 0x22, 0xfa, 0x26, 0x05, 0x68, 0xb2, 0x3f, 0x40, 0xbf, 0x86, 0x82, 0x67, 0x9b, 0x9d, 0xf8, - 0x6c, 0x24, 0xef, 0xd9, 0x66, 0x8b, 0x8f, 0x47, 0x2e, 0xf1, 0x6f, 0x2a, 0xd1, 0xbf, 0xe9, 0x69, - 0xfe, 0xcd, 0x5c, 0xe0, 0x5f, 0xe3, 0xbc, 0x7f, 0xe5, 0xc4, 0x8f, 0xa2, 0xc9, 0xc3, 0xcc, 0xe5, - 0xe0, 0xec, 0xfb, 0x76, 0xf0, 0x2e, 0x94, 0xe2, 0xc3, 0x04, 0x86, 0x0d, 0xdb, 0x90, 0x82, 0x68, - 0x2f, 0x6e, 0xc5, 0xcb, 0xbb, 0xc0, 0x8f, 0x37, 0xaa, 0x8f, 0xa0, 0x18, 0x1b, 0x24, 0xcc, 0x0d, - 0xc7, 0x50, 0x8c, 0xd5, 0x30, 0xb4, 0x02, 0x32, 0x1e, 0x6a, 0x7a, 0x30, 0x07, 0x6a, 0x5d, 0x53, - 0xc5, 0x12, 0x29, 0x90, 0x75, 0x09, 0x3e, 0x36, 0x87, 0x82, 0xa1, 0x75, 0x4d, 0x0d, 0xd6, 0x0c, - 0x41, 0x70, 0x0f, 0x0f, 0x45, 0xfc, 0x33, 0x04, 0x5f, 0x36, 0x4b, 0x00, 0xbc, 0x5f, 0xeb, 0xd0, - 0x91, 0x8b, 0xab, 0x1f, 0x48, 0xc1, 0xd4, 0x07, 0x33, 0xff, 0x54, 0x20, 0xaf, 0x51, 0x8a, 0x07, - 0x2e, 0x0f, 0x1e, 0x76, 0x61, 0xa3, 0x35, 0x6a, 0xc0, 0x75, 0x17, 0x93, 0x0e, 0x25, 0xa3, 0x4e, - 0x38, 0xdb, 0x48, 0x25, 0xcd, 0x36, 0x16, 0x5c, 0x4c, 0x8e, 0xc8, 0xe8, 0x28, 0x98, 0x70, 0xac, - 0xb2, 0xaf, 0x12, 0x46, 0xe0, 0xd8, 0xc1, 0xad, 0xe4, 0xc3, 0x8b, 0xd1, 0x81, 0x5d, 0xfd, 0x34, - 0x05, 0x30, 0x1e, 0x05, 0xa0, 0xdb, 0x50, 0xd2, 0x2c, 0xcb, 0x39, 0xed, 0x38, 0xc4, 0xec, 0x99, - 0x76, 0x10, 0xc9, 0x45, 0xbe, 0x77, 0xc0, 0xb7, 0x58, 0x1c, 0x0a, 0x11, 0xd1, 0x6c, 0x85, 0x61, - 0x2c, 0x70, 0xaf, 0xc4, 0xde, 0x58, 0xe8, 0x4c, 0xa5, 0x0c, 0x84, 0xc2, 0x9c, 0x7e, 0x17, 0x16, - 0xf1, 0xd0, 0x75, 0xce, 0x95, 0xc4, 0x82, 0xba, 0x20, 0x76, 0x43, 0xb1, 0x4d, 0xc8, 0x0d, 0xb4, - 0x61, 0x47, 0xeb, 0x89, 0xb9, 0xcf, 0xd4, 0x83, 0x67, 0x07, 0xda, 0xb0, 0xd1, 0xc3, 0xe8, 0x39, - 0x2c, 0x09, 0xfd, 0x3a, 0xc1, 0x06, 0xb6, 0xa9, 0xa9, 0x59, 0x5e, 0x30, 0x12, 0xaa, 0x4c, 0xa0, - 0x9b, 0x8e, 0x63, 0xbd, 0x66, 0xf1, 0xa7, 0x96, 0x39, 0x68, 0x6f, 0x8c, 0xa9, 0x7e, 0x22, 0x03, - 0x9a, 0x9c, 0xda, 0xa0, 0x17, 0x20, 0x1b, 0xd8, 0xd2, 0x46, 0xb3, 0x7c, 0x34, 0x4e, 0xa0, 0x6b, - 0xfb, 0x0c, 0xaa, 0x0a, 0x06, 0x46, 0xa5, 0x75, 0xc3, 0x64, 0x3a, 0x37, 0x55, 0x83, 0x41, 0x55, - 0xc1, 0x50, 0xf9, 0x7f, 0x0a, 0x64, 0xce, 0x8d, 0x6e, 0x41, 0xce, 0xc5, 0x44, 0xc7, 0xb6, 0x08, - 0x5c, 0x99, 0x57, 0xd6, 0x70, 0x0b, 0xed, 0x40, 0xf1, 0xd8, 0x1c, 0x62, 0xa3, 0x23, 0xce, 0x90, - 0x14, 0x4e, 0xad, 0x6b, 0x2a, 0x70, 0x79, 0xc1, 0xdd, 0x82, 0x25, 0xf6, 0x82, 0x6c, 0xe1, 0xa2, - 0x80, 0x23, 0x9d, 0xcc, 0x51, 0x8e, 0xa1, 0x04, 0x53, 0x13, 0x20, 0x30, 0x69, 0xfc, 0x72, 0xa7, - 0xd5, 0xf5, 0x43, 0x21, 0xac, 0xc6, 0x50, 0xcd, 0x25, 0xb8, 0xde, 0xa7, 0xd4, 0x15, 0x66, 0xf0, - 0xbb, 0x55, 0x79, 0x2b, 0x81, 0xcc, 0xfd, 0x92, 0xe0, 0x86, 0xdb, 0x50, 0xe4, 0x50, 0x8f, 0x6a, - 0xd4, 0xf7, 0x44, 0xa5, 0x64, 0x67, 0x65, 0x9b, 0x6d, 0xbe, 0xc7, 0x44, 0x7a, 0xc4, 0xd5, 0x43, - 0x91, 0xf0, 0x4a, 0x03, 0xdb, 0x1c, 0x8b, 0x30, 0xc0, 0x66, 0x07, 0xf3, 0xf1, 0x5d, 0x26, 0x14, - 0xe1, 0x9b, 0x4f, 0xf9, 0x70, 0xee, 0x7d, 0x9c, 0xb3, 0x04, 0xc0, 0x15, 0x88, 0xf4, 0xf1, 0x0c, - 0x4a, 0xf1, 0x51, 0x32, 0x4b, 0x47, 0xb6, 0x3f, 0xe8, 0x62, 0xc2, 0xcf, 0xb9, 0xc0, 0xd2, 0x91, - 0x58, 0xa3, 0x65, 0xc8, 0xd8, 0x5a, 0xf0, 0x25, 0xc6, 0xec, 0xe2, 0xab, 0x66, 0x56, 0x14, 0x98, - 0xea, 0x6f, 0x20, 0x17, 0x28, 0x1b, 0x67, 0x64, 0xc6, 0x20, 0x05, 0x19, 0xb9, 0x59, 0xfb, 0xf2, - 0xdd, 0x9a, 0xf4, 0xf5, 0xbb, 0x35, 0xe9, 0xed, 0xbb, 0x35, 0xe9, 0x5f, 0xeb, 0xc2, 0x66, 0xd3, - 0xa9, 0x6b, 0xae, 0x59, 0xbf, 0xe0, 0x7f, 0x14, 0xdd, 0x2c, 0x7f, 0xf3, 0x5b, 0x3f, 0x04, 0x00, - 0x00, 0xff, 0xff, 0x9e, 0x6d, 0x35, 0x27, 0xc1, 0x18, 0x00, 0x00, + // 1811 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, 0x39, 0x19, 0xa7, 0xc9, 0xce, 0x6a, 0xcc, 0xd6, 0x90, 0xf5, + 0xb2, 0xbb, 0xa1, 0x96, 0xb5, 0x0b, 0x0f, 0x2c, 0xa9, 0x65, 0x76, 0x76, 0xed, 0xcc, 0xcc, 0x3a, + 0xd4, 0x0c, 0x49, 0xc9, 0x61, 0x0f, 0x5c, 0x54, 0xb2, 0xd4, 0xb1, 0xc5, 0xc8, 0x92, 0x68, 0xb5, + 0x12, 0xbb, 0x38, 0xf2, 0xe7, 0x0e, 0xc5, 0x95, 0xe2, 0x53, 0x70, 0xe1, 0xc2, 0x95, 0x13, 0xc5, + 0x27, 0xa0, 0xa6, 0xe6, 0xc0, 0x95, 0xaf, 0x40, 0xf5, 0x1f, 0xc9, 0x4a, 0x9c, 0x58, 0x76, 0x18, + 0xa8, 0x3d, 0xc5, 0xdd, 0xfd, 0x7e, 0xaf, 0x5f, 0xbf, 0xee, 0xf7, 0xde, 0x4f, 0x2f, 0xf0, 0x1d, + 0x1f, 0xd3, 0x8b, 0x80, 0xbc, 0x74, 0xfd, 0x71, 0xe7, 0xfc, 0x7b, 0x96, 0x17, 0x4e, 0xac, 0x87, + 0x9d, 0x73, 0x97, 0xd0, 0xd8, 0xf2, 0xcc, 0x08, 0x93, 0x73, 0xd7, 0xc6, 0xed, 0x90, 0x04, 0x34, + 0x40, 0xf7, 0xdd, 0x88, 0xba, 0x41, 0x7b, 0x01, 0x68, 0x27, 0x80, 0xe6, 0x83, 0x71, 0x10, 0x8c, + 0x3d, 0xdc, 0xe1, 0x82, 0xa3, 0xf8, 0xac, 0xe3, 0xc4, 0xc4, 0xa2, 0x6e, 0xe0, 0x0b, 0xe8, 0xf2, + 0xfa, 0x05, 0xb1, 0xc2, 0x10, 0x93, 0x48, 0xae, 0x7f, 0x78, 0x9d, 0x15, 0x72, 0xce, 0x8c, 0xec, + 0x20, 0x94, 0x36, 0xb4, 0xfe, 0x5c, 0x80, 0xed, 0xaf, 0x84, 0x75, 0x43, 0x61, 0x1c, 0xda, 0x05, + 0x75, 0x12, 0x44, 0x34, 0xd2, 0x95, 0xbd, 0xe2, 0x7e, 0xcd, 0x10, 0x03, 0xd4, 0x84, 0xea, 0xd8, + 0xa2, 0xf8, 0xc2, 0x9a, 0x47, 0x7a, 0x81, 0x2f, 0xa4, 0x63, 0x74, 0x00, 0xa5, 0x09, 0xa5, 0xa1, + 0x5e, 0xdc, 0x2b, 0xee, 0x6b, 0xdd, 0x6f, 0xb7, 0x6f, 0x3c, 0x57, 0x7b, 0x70, 0x7a, 0x7a, 0x62, + 0x04, 0x31, 0xc5, 0x06, 0x47, 0xa0, 0x1f, 0x40, 0x91, 0xda, 0xa1, 0x5e, 0xe2, 0xc0, 0xf7, 0x56, + 0x00, 0x4f, 0x0f, 0x25, 0x8e, 0xc9, 0x73, 0x98, 0x17, 0xe9, 0x6a, 0x3e, 0xec, 0xf9, 0x30, 0x81, + 0x79, 0x11, 0x3a, 0x82, 0xba, 0x1d, 0xf8, 0x67, 0xee, 0x58, 0xb8, 0x40, 0x2f, 0xef, 0x29, 0xfb, + 0xdb, 0xdd, 0x0f, 0x56, 0xe0, 0x0f, 0xb9, 0xf8, 0x90, 0x49, 0x1b, 0x9a, 0xbd, 0x18, 0xb4, 0xce, + 0x41, 0x7b, 0x82, 0x23, 0xea, 0xfa, 0xfc, 0x56, 0x10, 0x82, 0x12, 0x73, 0x93, 0xae, 0xec, 0x29, + 0xfb, 0x35, 0x83, 0xff, 0x46, 0xf7, 0xa0, 0x1c, 0xc5, 0xa3, 0x08, 0x53, 0xbd, 0xc0, 0x67, 0xe5, + 0x08, 0xfd, 0x08, 0x4a, 0x61, 0x40, 0xa8, 0x5e, 0xdc, 0x53, 0xf6, 0xb5, 0xee, 0x87, 0x2b, 0x76, + 0x3f, 0x09, 0x08, 0x1d, 0x62, 0x0f, 0xdb, 0x34, 0x20, 0x06, 0x07, 0xb5, 0xfe, 0x0d, 0x50, 0x4b, + 0x9d, 0x88, 0x7a, 0xa0, 0x4e, 0x2d, 0x6a, 0x4f, 0xf8, 0x55, 0x69, 0xdd, 0x8f, 0x72, 0x3c, 0xff, + 0x82, 0xc9, 0x1a, 0xf8, 0x17, 0x31, 0x8e, 0xa8, 0x21, 0x90, 0xe8, 0x29, 0xa8, 0x84, 0xe9, 0xe2, + 0x97, 0xaa, 0x75, 0x3b, 0xeb, 0x5c, 0x5e, 0xe6, 0xe4, 0x86, 0x40, 0xa3, 0x43, 0xa8, 0x12, 0xec, + 0xb8, 0x04, 0xdb, 0xeb, 0x1c, 0x8c, 0x6b, 0x92, 0xe2, 0x46, 0x0a, 0x44, 0x5f, 0x40, 0x85, 0xe0, + 0x0b, 0xe2, 0x52, 0xac, 0x97, 0xb8, 0x8e, 0x0f, 0x72, 0x75, 0x70, 0x69, 0x23, 0x81, 0xa1, 0x8f, + 0x60, 0xe7, 0x02, 0x8f, 0xa2, 0xc0, 0x7e, 0x89, 0xa9, 0x19, 0x87, 0x63, 0x62, 0x39, 0x58, 0x57, + 0xf7, 0x94, 0xfd, 0xaa, 0xd1, 0x48, 0x17, 0x7e, 0x2a, 0xe6, 0xd1, 0x43, 0xa8, 0x50, 0x77, 0x8a, + 0x83, 0x98, 0xf2, 0x97, 0xa0, 0x75, 0xef, 0xb7, 0x45, 0x58, 0xb5, 0x93, 0xb0, 0x6a, 0x3f, 0x91, + 0x61, 0x67, 0x24, 0x92, 0xe8, 0x31, 0xb3, 0x91, 0x12, 0x17, 0x47, 0x7a, 0x85, 0x83, 0x72, 0x9f, + 0x3b, 0xa6, 0x64, 0x6e, 0x24, 0x20, 0x74, 0x08, 0xea, 0x99, 0x15, 0x7b, 0x54, 0xaf, 0x72, 0xf4, + 0xc7, 0x39, 0xe8, 0x67, 0x4c, 0xf6, 0xc8, 0xff, 0x39, 0xb6, 0x85, 0xb7, 0x39, 0x16, 0x3d, 0x86, + 0xf2, 0xd4, 0x25, 0x24, 0x20, 0x7a, 0x2d, 0xd7, 0x4f, 0xd9, 0xcb, 0x92, 0x28, 0xf4, 0x0c, 0x34, + 0x3b, 0x20, 0x91, 0x19, 0x06, 0x9e, 0x6b, 0xcf, 0x75, 0xe0, 0x4a, 0xde, 0x5f, 0x19, 0x07, 0x24, + 0x3a, 0xe1, 0xc2, 0x06, 0xd8, 0xe9, 0x6f, 0x34, 0x82, 0x6d, 0x96, 0x76, 0x7c, 0xc7, 0x9c, 0x60, + 0xcb, 0xc1, 0x24, 0xd2, 0x35, 0xfe, 0x8a, 0x7e, 0xb8, 0xce, 0x2b, 0x6a, 0xf7, 0x38, 0x74, 0x20, + 0x90, 0x4f, 0x7d, 0x4a, 0xe6, 0xfd, 0x82, 0xae, 0x18, 0x5b, 0x56, 0x76, 0x1e, 0x7d, 0x0a, 0x6f, + 0x13, 0x3c, 0x0d, 0xce, 0xb1, 0x49, 0x70, 0x14, 0x06, 0x7e, 0x84, 0xd3, 0xcd, 0xea, 0x2c, 0x0f, + 0x71, 0xcc, 0x5b, 0x42, 0xc4, 0x90, 0x12, 0x09, 0xf6, 0x97, 0xf0, 0xb6, 0xb4, 0x6f, 0x09, 0xbb, + 0xc5, 0x0d, 0xfd, 0x7c, 0x03, 0x43, 0xaf, 0x28, 0x5f, 0x18, 0xfc, 0x96, 0x75, 0xdd, 0x3a, 0x3a, + 0x80, 0x7b, 0xa9, 0xe1, 0x3c, 0xe4, 0xd2, 0xbd, 0xb7, 0x53, 0xbb, 0x77, 0x13, 0xbb, 0xb9, 0x40, + 0x82, 0x9c, 0xc1, 0xbd, 0xd4, 0xec, 0xcb, 0xc8, 0xbb, 0xdc, 0xea, 0xc7, 0x1b, 0x59, 0x9d, 0x55, + 0xbd, 0x30, 0x7a, 0xd7, 0xba, 0x66, 0x19, 0x3d, 0x82, 0x4a, 0xb2, 0x55, 0x83, 0x3f, 0x8a, 0xd6, + 0xaa, 0xad, 0x84, 0xa4, 0x91, 0x40, 0x9a, 0x5f, 0x00, 0x5a, 0xbe, 0x53, 0xd4, 0x80, 0xe2, 0x4b, + 0x3c, 0x97, 0xa9, 0x91, 0xfd, 0x64, 0x15, 0xe6, 0xdc, 0xf2, 0x62, 0x2c, 0x13, 0xa3, 0x18, 0x7c, + 0x5a, 0x38, 0x50, 0x9a, 0x03, 0x68, 0xde, 0xec, 0xec, 0x8d, 0x34, 0x7d, 0x09, 0xf7, 0x6f, 0x74, + 0xc0, 0x26, 0x8a, 0x5a, 0xff, 0x2a, 0x42, 0x25, 0x71, 0xcf, 0x0b, 0x16, 0xfc, 0x5c, 0x1d, 0xc7, + 0x6a, 0xdd, 0x87, 0xf9, 0xee, 0x91, 0x7f, 0x8f, 0x43, 0x2c, 0x52, 0x49, 0x64, 0x24, 0x3a, 0xd0, + 0x31, 0x4b, 0x9a, 0xe2, 0x9c, 0x7c, 0xdf, 0x5b, 0xea, 0x4b, 0x95, 0x34, 0xff, 0x52, 0x80, 0xc6, + 0xd5, 0x65, 0xf4, 0x13, 0x28, 0xb2, 0x22, 0x24, 0x4a, 0xc4, 0xa3, 0x5b, 0x6c, 0xd0, 0x1e, 0x62, + 0xca, 0xfd, 0x66, 0x30, 0x45, 0x4c, 0x9f, 0xe5, 0x38, 0xb2, 0x5e, 0xdc, 0x4a, 0x5f, 0xcf, 0x71, + 0xa4, 0x3e, 0xcb, 0x71, 0x58, 0x9d, 0x14, 0x51, 0xc0, 0xf9, 0x43, 0xcd, 0x90, 0xa3, 0xe6, 0x27, + 0x50, 0x4d, 0x36, 0xde, 0xe8, 0xe6, 0x3f, 0x81, 0x6a, 0xb2, 0xc1, 0x46, 0x17, 0xfd, 0x7b, 0x05, + 0xaa, 0x09, 0x5f, 0x60, 0x69, 0x3a, 0x5b, 0x59, 0x3f, 0x5e, 0xcd, 0x31, 0x78, 0x61, 0xed, 0x51, + 0x4a, 0xdc, 0x51, 0x4c, 0x71, 0x94, 0xd4, 0xd6, 0xde, 0xe5, 0xda, 0xba, 0xaa, 0x3c, 0xdf, 0x50, + 0x57, 0x5b, 0xbf, 0x63, 0x46, 0x49, 0xee, 0x83, 0xfa, 0x97, 0x8d, 0xfa, 0xee, 0x0a, 0x7d, 0xcf, + 0xbf, 0xff, 0xbf, 0xb3, 0xe9, 0x4f, 0x2a, 0x34, 0xae, 0xd2, 0x09, 0x74, 0x00, 0xc5, 0x98, 0xb8, + 0x32, 0x2c, 0x56, 0xd5, 0xa3, 0x21, 0x25, 0xae, 0x3f, 0x16, 0x58, 0x06, 0x61, 0xc5, 0x2c, 0xb2, + 0x27, 0x78, 0x9a, 0xc4, 0xc0, 0xba, 0x60, 0x89, 0xe2, 0xc5, 0x10, 0xd3, 0x49, 0xe0, 0x48, 0xe2, + 0xb1, 0x36, 0x5e, 0xa0, 0xd0, 0x13, 0xa8, 0x59, 0x31, 0x9d, 0x04, 0xc4, 0xa5, 0xf3, 0x35, 0x78, + 0x47, 0x56, 0xc5, 0x02, 0x88, 0x8c, 0x45, 0xe6, 0x14, 0xb4, 0xf4, 0x60, 0x03, 0x32, 0xd6, 0xce, + 0x66, 0xa7, 0x34, 0x9f, 0x32, 0x56, 0xc9, 0x99, 0x22, 0x63, 0x27, 0x5b, 0x82, 0x00, 0xa2, 0x11, + 0x6c, 0x45, 0x41, 0x4c, 0x6c, 0x6c, 0x7a, 0xd6, 0x08, 0x7b, 0x8c, 0x85, 0xb0, 0xdd, 0x3e, 0xdb, + 0x64, 0xb7, 0x21, 0x57, 0xf0, 0x9c, 0xe3, 0xc5, 0x96, 0xf5, 0x28, 0x33, 0x75, 0x89, 0xeb, 0x57, + 0x2f, 0x73, 0xfd, 0xe6, 0x08, 0xea, 0x39, 0xa9, 0xf4, 0x51, 0x36, 0xc2, 0xd6, 0xf7, 0x65, 0x26, + 0x82, 0x3f, 0x87, 0x9d, 0x25, 0x13, 0x37, 0x0a, 0xe5, 0xbf, 0xab, 0xb0, 0x7b, 0x1d, 0x5b, 0x45, + 0x03, 0xd0, 0x9c, 0xc5, 0x70, 0x8d, 0xd7, 0x9a, 0x7d, 0xfe, 0x59, 0x28, 0xcb, 0x5a, 0x17, 0xd8, + 0x1d, 0x4f, 0x04, 0xbb, 0x57, 0x0d, 0x39, 0x5a, 0x45, 0x57, 0x8a, 0x79, 0x74, 0xe5, 0xb7, 0xca, + 0xcd, 0x7c, 0x45, 0x7c, 0x22, 0xfd, 0x78, 0x43, 0x7a, 0xfe, 0xc6, 0xa9, 0x8b, 0x9a, 0x43, 0x5d, + 0x7e, 0xa5, 0xdc, 0xc8, 0x5d, 0xca, 0xfc, 0x04, 0x47, 0xb7, 0x3d, 0xc1, 0x2d, 0x69, 0x4c, 0x65, + 0x73, 0x1a, 0xf3, 0x35, 0x24, 0x21, 0x14, 0x1a, 0xff, 0xff, 0xb7, 0xdc, 0xfa, 0x6b, 0x01, 0x76, + 0x96, 0x0a, 0x09, 0xea, 0xc0, 0x37, 0x32, 0x60, 0x33, 0x8a, 0x47, 0x3e, 0x4e, 0xbb, 0x05, 0x28, + 0xb3, 0x34, 0x14, 0x2b, 0x69, 0x1a, 0x2b, 0x64, 0xd2, 0xd8, 0x7b, 0x69, 0x1a, 0x13, 0x78, 0x9e, + 0xbb, 0x6b, 0x49, 0x1e, 0x12, 0x48, 0x64, 0x5f, 0xcd, 0x75, 0xa5, 0x5c, 0xfa, 0xbb, 0x64, 0xee, + 0x46, 0xc9, 0x4e, 0xbd, 0x92, 0xec, 0xfe, 0xeb, 0x44, 0xf4, 0xcf, 0x02, 0xa0, 0x65, 0x7e, 0x80, + 0xbe, 0x09, 0xb5, 0xc8, 0x77, 0xcd, 0x6c, 0x9b, 0xa5, 0x1a, 0xf9, 0xee, 0x80, 0x77, 0x5a, 0x6e, + 0xf0, 0x6f, 0x21, 0xd7, 0xbf, 0xc5, 0x55, 0xfe, 0x2d, 0x5d, 0xe3, 0x5f, 0xe7, 0xaa, 0x7f, 0xd5, + 0xdc, 0x8f, 0xa2, 0xe5, 0xc3, 0x6c, 0xe4, 0xe0, 0xf2, 0x9b, 0x76, 0xf0, 0x63, 0xa8, 0x67, 0x9b, + 0x09, 0x0c, 0x9b, 0xd0, 0x90, 0x9a, 0xa0, 0x17, 0xef, 0x64, 0xcb, 0xbb, 0xc0, 0x2f, 0x26, 0x5a, + 0x9f, 0x81, 0x96, 0x69, 0x24, 0x6c, 0x0c, 0xc7, 0xa0, 0x65, 0x6a, 0x18, 0xba, 0x07, 0x2a, 0x9e, + 0x59, 0xb6, 0xec, 0x03, 0x0d, 0xee, 0x18, 0x62, 0x88, 0x74, 0x28, 0x87, 0x04, 0x9f, 0xb9, 0x33, + 0xa1, 0x61, 0x70, 0xc7, 0x90, 0x63, 0x86, 0x20, 0x78, 0x8c, 0x67, 0xe2, 0xfd, 0x33, 0x04, 0x1f, + 0xf6, 0xeb, 0x00, 0x9c, 0xaf, 0x99, 0x74, 0x1e, 0xe2, 0xd6, 0x6f, 0x14, 0xd9, 0xf5, 0xc1, 0xcc, + 0x3f, 0x4d, 0xa8, 0x5a, 0x94, 0xe2, 0x69, 0xc8, 0x1f, 0x0f, 0x0b, 0xd8, 0x74, 0x8c, 0x7a, 0x70, + 0x37, 0xc4, 0xc4, 0xa4, 0x64, 0x6e, 0x26, 0xbd, 0x8d, 0x42, 0x5e, 0x6f, 0x63, 0x2b, 0xc4, 0xe4, + 0x94, 0xcc, 0x4f, 0x65, 0x87, 0xe3, 0x3e, 0xfb, 0x2a, 0x61, 0x0a, 0x02, 0x5f, 0x46, 0x25, 0x6f, + 0x5e, 0xcc, 0x8f, 0xfd, 0xd6, 0x1f, 0x0b, 0x00, 0x8b, 0x56, 0x00, 0x7a, 0x17, 0xea, 0x96, 0xe7, + 0x05, 0x17, 0x66, 0x40, 0xdc, 0xb1, 0xeb, 0xcb, 0x97, 0xac, 0xf1, 0xb9, 0x63, 0x3e, 0xc5, 0xde, + 0xa1, 0x10, 0x11, 0x64, 0x2b, 0x79, 0xc6, 0x02, 0xf7, 0x42, 0xcc, 0x2d, 0x84, 0x2e, 0x55, 0x4a, + 0x29, 0x94, 0xe4, 0xf4, 0xf7, 0x61, 0x1b, 0xcf, 0xc2, 0xe0, 0x4a, 0x49, 0xac, 0x19, 0x5b, 0x62, + 0x36, 0x11, 0xeb, 0x42, 0x65, 0x6a, 0xcd, 0x4c, 0x6b, 0x2c, 0xfa, 0x3e, 0x2b, 0x0f, 0x5e, 0x9e, + 0x5a, 0xb3, 0xde, 0x18, 0xa3, 0x2f, 0x61, 0x47, 0xec, 0x6f, 0x13, 0xec, 0x60, 0x9f, 0xba, 0x96, + 0x17, 0xc9, 0x96, 0x50, 0x73, 0x09, 0xdd, 0x0f, 0x02, 0xef, 0x2b, 0xf6, 0xfe, 0x8c, 0x06, 0x07, + 0x1d, 0x2e, 0x30, 0xad, 0x3f, 0xa8, 0x80, 0x96, 0xbb, 0x36, 0xe8, 0x08, 0x54, 0x07, 0x7b, 0xd6, + 0x7c, 0x9d, 0x8f, 0xc6, 0x25, 0x74, 0xfb, 0x09, 0x83, 0x1a, 0x42, 0x03, 0x53, 0x65, 0x8d, 0x92, + 0x64, 0xba, 0xb1, 0xaa, 0x1e, 0x83, 0x1a, 0x42, 0x43, 0xf3, 0xd7, 0x05, 0x50, 0xb9, 0x6e, 0xf4, + 0x0e, 0x54, 0x42, 0x4c, 0x6c, 0xec, 0x8b, 0x87, 0xab, 0xf2, 0xca, 0x9a, 0x4c, 0xa1, 0x47, 0xa0, + 0x9d, 0xb9, 0x33, 0xec, 0x98, 0xe2, 0x0c, 0x79, 0xcf, 0x69, 0x70, 0xc7, 0x00, 0x2e, 0x2f, 0x74, + 0x0f, 0x60, 0x87, 0x5d, 0x90, 0x2f, 0x5c, 0x24, 0x75, 0x14, 0xf3, 0x75, 0x34, 0x32, 0x28, 0xa1, + 0xa9, 0x0f, 0x20, 0x4d, 0x5a, 0x5c, 0xee, 0xaa, 0xba, 0x7e, 0x22, 0x84, 0x8d, 0x0c, 0xaa, 0xbf, + 0x03, 0x77, 0x27, 0x94, 0x86, 0xc2, 0x0c, 0x1e, 0x5b, 0xcd, 0x57, 0x0a, 0xa8, 0xdc, 0x2f, 0x39, + 0x6e, 0x78, 0x17, 0x34, 0x0e, 0x8d, 0xa8, 0x45, 0xe3, 0x48, 0x54, 0x4a, 0x76, 0x56, 0x36, 0x39, + 0xe4, 0x73, 0x4c, 0x64, 0x4c, 0x42, 0x3b, 0x11, 0x49, 0x42, 0x1a, 0xd8, 0xe4, 0x42, 0x84, 0x01, + 0xba, 0x26, 0xe6, 0xed, 0xbb, 0x52, 0x22, 0xc2, 0x27, 0x9f, 0xf2, 0xe6, 0xdc, 0x9b, 0x38, 0x67, + 0x1d, 0x80, 0x6f, 0x20, 0xd2, 0xc7, 0x33, 0xa8, 0x67, 0x5b, 0xc9, 0x2c, 0x1d, 0xf9, 0xf1, 0x74, + 0x84, 0x09, 0x3f, 0xe7, 0x16, 0x4b, 0x47, 0x62, 0x8c, 0x76, 0xa1, 0xe4, 0x5b, 0xf2, 0x4b, 0x8c, + 0xd9, 0xc5, 0x47, 0xfd, 0xb2, 0x28, 0x30, 0xad, 0x6f, 0x41, 0x45, 0x6e, 0xb6, 0xc8, 0xc8, 0x4c, + 0x83, 0x22, 0x33, 0x72, 0xbf, 0xfd, 0xb7, 0xd7, 0x0f, 0x94, 0x7f, 0xbc, 0x7e, 0xa0, 0xbc, 0x7a, + 0xfd, 0x40, 0xf9, 0xd9, 0x9e, 0xb0, 0xd9, 0x0d, 0x3a, 0x56, 0xe8, 0x76, 0xae, 0xf9, 0x8f, 0xc4, + 0xa8, 0xcc, 0x6f, 0xfe, 0xe1, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x93, 0xb9, 0x9e, 0x35, + 0x19, 0x00, 0x00, } diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto index 946dca69..3f0e74e5 100644 --- a/networking/v1alpha3/virtual_service.proto +++ b/networking/v1alpha3/virtual_service.proto @@ -17,6 +17,8 @@ syntax = "proto3"; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; +import "networking/v1alpha3/network_scope.proto"; + // $title: Traffic Routing // $description: Configuration affecting traffic routing. // $location: https://istio.io/docs/reference/config/istio.networking.v1alpha3.html @@ -175,6 +177,12 @@ message VirtualService { // be applied to any port that is not a HTTP or TLS port. The first rule // matching an incoming request is used. repeated TCPRoute tcp = 4; + + // The visibility setting associated with this VirtualService. Set to + // PRIVATE if this virtual service should not be exported, i.e. restrict + // the applicability of this virtual service to only workloads in the same + // namespace as the virtual service. + ConfigScope config_scope = 6; } // Destination indicates the network addressable service to which the diff --git a/proto.lock b/proto.lock index 9002723a..633c8f80 100644 --- a/proto.lock +++ b/proto.lock @@ -690,6 +690,19 @@ "integer": 2 } ] + }, + { + "name": "DefaultNetworkScope.Mode", + "enum_fields": [ + { + "name": "ALL_NAMESPACES", + "integer": 0 + }, + { + "name": "SAME_NAMESPACE", + "integer": 1 + } + ] } ], "messages": [ @@ -826,6 +839,11 @@ "id": 26, "name": "trust_domain", "type": "string" + }, + { + "id": 29, + "name": "default_network_scope", + "type": "DefaultNetworkScope" } ], "reserved_ids": [ @@ -842,6 +860,22 @@ "type": "Mode" } ] + }, + { + "name": "DefaultNetworkScope", + "fields": [ + { + "id": 1, + "name": "import_mode", + "type": "Mode" + }, + { + "id": 2, + "name": "import_namespaces", + "type": "string", + "is_repeated": true + } + ] } ] }, @@ -2447,6 +2481,11 @@ "name": "subsets", "type": "Subset", "is_repeated": true + }, + { + "id": 4, + "name": "config_scope", + "type": "ConfigScope" } ] }, @@ -3110,6 +3149,77 @@ ] } }, + { + "protopath": "networking:/:v1alpha3:/:network_scope.proto", + "def": { + "enums": [ + { + "name": "ConfigScope", + "enum_fields": [ + { + "name": "PUBLIC", + "integer": 0 + }, + { + "name": "PRIVATE", + "integer": 1 + } + ] + } + ], + "messages": [ + { + "name": "NetworkScope", + "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": { @@ -3182,6 +3292,11 @@ "name": "endpoints", "type": "Endpoint", "is_repeated": true + }, + { + "id": 7, + "name": "config_scope", + "type": "ConfigScope" } ], "messages": [ @@ -3269,6 +3384,11 @@ "name": "tcp", "type": "TCPRoute", "is_repeated": true + }, + { + "id": 6, + "name": "config_scope", + "type": "ConfigScope" } ] }, diff --git a/python/istio_api/mesh/v1alpha1/config_pb2.py b/python/istio_api/mesh/v1alpha1/config_pb2.py index 4a48e30a..f5462a76 100644 --- a/python/istio_api/mesh/v1alpha1/config_pb2.py +++ b/python/istio_api/mesh/v1alpha1/config_pb2.py @@ -22,7 +22,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( 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\"\xdd\x0b\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\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\x12Z\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicyB\x02\x18\x01\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\x14\n\x0ctrust_domain\x18\x1a \x01(\t\x1a\xb5\x01\n\x15OutboundTrafficPolicy\x12L\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.ModeB\x02\x18\x01\"N\n\x04Mode\x12\x15\n\rREGISTRY_ONLY\x10\x00\x1a\x02\x08\x01\x12\x11\n\tALLOW_ANY\x10\x01\x1a\x02\x08\x01\x12\x1c\n\x14VIRTUAL_SERVICE_ONLY\x10\x02\x1a\x02\x08\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\"\xe3\r\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\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\x12Z\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicyB\x02\x18\x01\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\x14\n\x0ctrust_domain\x18\x1a \x01(\t\x12R\n\x15\x64\x65\x66\x61ult_network_scope\x18\x1d \x01(\x0b\x32\x33.istio.mesh.v1alpha1.MeshConfig.DefaultNetworkScope\x1a\xb5\x01\n\x15OutboundTrafficPolicy\x12L\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.ModeB\x02\x18\x01\"N\n\x04Mode\x12\x15\n\rREGISTRY_ONLY\x10\x00\x1a\x02\x08\x01\x12\x11\n\tALLOW_ANY\x10\x01\x1a\x02\x08\x01\x12\x1c\n\x14VIRTUAL_SERVICE_ONLY\x10\x02\x1a\x02\x08\x01\x1a\xaf\x01\n\x13\x44\x65\x66\x61ultNetworkScope\x12M\n\x0bimport_mode\x18\x01 \x01(\x0e\x32\x38.istio.mesh.v1alpha1.MeshConfig.DefaultNetworkScope.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') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,mesh_dot_v1alpha1_dot_proxy__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_destination__rule__pb2.DESCRIPTOR,]) @@ -49,11 +49,33 @@ _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1426, - serialized_end=1504, + serialized_start=1510, + serialized_end=1588, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE) +_MESHCONFIG_DEFAULTNETWORKSCOPE_MODE = _descriptor.EnumDescriptor( + name='Mode', + full_name='istio.mesh.v1alpha1.MeshConfig.DefaultNetworkScope.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=1720, + serialized_end=1766, +) +_sym_db.RegisterEnumDescriptor(_MESHCONFIG_DEFAULTNETWORKSCOPE_MODE) + _MESHCONFIG_INGRESSCONTROLLERMODE = _descriptor.EnumDescriptor( name='IngressControllerMode', full_name='istio.mesh.v1alpha1.MeshConfig.IngressControllerMode', @@ -75,8 +97,8 @@ _MESHCONFIG_INGRESSCONTROLLERMODE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1506, - serialized_end=1563, + serialized_start=1768, + serialized_end=1825, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_INGRESSCONTROLLERMODE) @@ -97,8 +119,8 @@ _MESHCONFIG_AUTHPOLICY = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1565, - serialized_end=1603, + serialized_start=1827, + serialized_end=1865, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_AUTHPOLICY) @@ -119,8 +141,8 @@ _MESHCONFIG_ACCESSLOGENCODING = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1605, - serialized_end=1644, + serialized_start=1867, + serialized_end=1906, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_ACCESSLOGENCODING) @@ -152,8 +174,46 @@ _MESHCONFIG_OUTBOUNDTRAFFICPOLICY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1323, - serialized_end=1504, + serialized_start=1407, + serialized_end=1588, +) + +_MESHCONFIG_DEFAULTNETWORKSCOPE = _descriptor.Descriptor( + name='DefaultNetworkScope', + full_name='istio.mesh.v1alpha1.MeshConfig.DefaultNetworkScope', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='import_mode', full_name='istio.mesh.v1alpha1.MeshConfig.DefaultNetworkScope.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.DefaultNetworkScope.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_DEFAULTNETWORKSCOPE_MODE, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1591, + serialized_end=1766, ) _MESHCONFIG = _descriptor.Descriptor( @@ -345,10 +405,17 @@ _MESHCONFIG = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_network_scope', full_name='istio.mesh.v1alpha1.MeshConfig.default_network_scope', index=26, + 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, ], + nested_types=[_MESHCONFIG_OUTBOUNDTRAFFICPOLICY, _MESHCONFIG_DEFAULTNETWORKSCOPE, ], enum_types=[ _MESHCONFIG_INGRESSCONTROLLERMODE, _MESHCONFIG_AUTHPOLICY, @@ -361,7 +428,7 @@ _MESHCONFIG = _descriptor.Descriptor( oneofs=[ ], serialized_start=155, - serialized_end=1656, + serialized_end=1918, ) @@ -398,13 +465,16 @@ _CONFIGSOURCE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1658, - serialized_end=1751, + serialized_start=1920, + serialized_end=2013, ) _MESHCONFIG_OUTBOUNDTRAFFICPOLICY.fields_by_name['mode'].enum_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE _MESHCONFIG_OUTBOUNDTRAFFICPOLICY.containing_type = _MESHCONFIG _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.containing_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY +_MESHCONFIG_DEFAULTNETWORKSCOPE.fields_by_name['import_mode'].enum_type = _MESHCONFIG_DEFAULTNETWORKSCOPE_MODE +_MESHCONFIG_DEFAULTNETWORKSCOPE.containing_type = _MESHCONFIG +_MESHCONFIG_DEFAULTNETWORKSCOPE_MODE.containing_type = _MESHCONFIG_DEFAULTNETWORKSCOPE _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 @@ -415,6 +485,7 @@ _MESHCONFIG.fields_by_name['default_config'].message_type = mesh_dot_v1alpha1_do _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_network_scope'].message_type = _MESHCONFIG_DEFAULTNETWORKSCOPE _MESHCONFIG_INGRESSCONTROLLERMODE.containing_type = _MESHCONFIG _MESHCONFIG_AUTHPOLICY.containing_type = _MESHCONFIG _MESHCONFIG_ACCESSLOGENCODING.containing_type = _MESHCONFIG @@ -431,12 +502,20 @@ MeshConfig = _reflection.GeneratedProtocolMessageType('MeshConfig', (_message.Me # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy) )) , + + DefaultNetworkScope = _reflection.GeneratedProtocolMessageType('DefaultNetworkScope', (_message.Message,), dict( + DESCRIPTOR = _MESHCONFIG_DEFAULTNETWORKSCOPE, + __module__ = 'mesh.v1alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.DefaultNetworkScope) + )) + , 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.DefaultNetworkScope) ConfigSource = _reflection.GeneratedProtocolMessageType('ConfigSource', (_message.Message,), dict( DESCRIPTOR = _CONFIGSOURCE, diff --git a/python/istio_api/networking/v1alpha3/destination_rule_pb2.py b/python/istio_api/networking/v1alpha3/destination_rule_pb2.py index e352885f..23e08904 100644 --- a/python/istio_api/networking/v1alpha3/destination_rule_pb2.py +++ b/python/istio_api/networking/v1alpha3/destination_rule_pb2.py @@ -15,6 +15,7 @@ _sym_db = _symbol_database.Default() 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 network_scope_pb2 as networking_dot_v1alpha3_dot_network__scope__pb2 from gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 @@ -22,9 +23,9 @@ DESCRIPTOR = _descriptor.FileDescriptor( 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\x14gogoproto/gogo.proto\"\x95\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\"\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\"\xc3\x04\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\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\"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/network_scope.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\"\xc3\x04\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\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\"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,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_network__scope__pb2.DESCRIPTOR,gogoproto_dot_gogo__pb2.DESCRIPTOR,]) @@ -53,8 +54,8 @@ _LOADBALANCERSETTINGS_SIMPLELB = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1748, - serialized_end=1820, + serialized_start=1851, + serialized_end=1923, ) _sym_db.RegisterEnumDescriptor(_LOADBALANCERSETTINGS_SIMPLELB) @@ -83,8 +84,8 @@ _TLSSETTINGS_TLSMODE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=2864, - serialized_end=2928, + serialized_start=2967, + serialized_end=3031, ) _sym_db.RegisterEnumDescriptor(_TLSSETTINGS_TLSMODE) @@ -117,6 +118,13 @@ _DESTINATIONRULE = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='config_scope', full_name='istio.networking.v1alpha3.DestinationRule.config_scope', index=3, + number=4, 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), ], extensions=[ ], @@ -129,8 +137,8 @@ _DESTINATIONRULE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=171, - serialized_end=320, + serialized_start=212, + serialized_end=423, ) @@ -188,8 +196,8 @@ _TRAFFICPOLICY_PORTTRAFFICPOLICY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=703, - serialized_end=1050, + serialized_start=806, + serialized_end=1153, ) _TRAFFICPOLICY = _descriptor.Descriptor( @@ -246,8 +254,8 @@ _TRAFFICPOLICY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=323, - serialized_end=1050, + serialized_start=426, + serialized_end=1153, ) @@ -284,8 +292,8 @@ _SUBSET_LABELSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1206, - serialized_end=1251, + serialized_start=1309, + serialized_end=1354, ) _SUBSET = _descriptor.Descriptor( @@ -328,8 +336,8 @@ _SUBSET = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1053, - serialized_end=1251, + serialized_start=1156, + serialized_end=1354, ) @@ -373,8 +381,8 @@ _LOADBALANCERSETTINGS_CONSISTENTHASHLB_HTTPCOOKIE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1648, - serialized_end=1734, + serialized_start=1751, + serialized_end=1837, ) _LOADBALANCERSETTINGS_CONSISTENTHASHLB = _descriptor.Descriptor( @@ -427,8 +435,8 @@ _LOADBALANCERSETTINGS_CONSISTENTHASHLB = _descriptor.Descriptor( name='hash_key', full_name='istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.hash_key', index=0, containing_type=None, fields=[]), ], - serialized_start=1448, - serialized_end=1746, + serialized_start=1551, + serialized_end=1849, ) _LOADBALANCERSETTINGS = _descriptor.Descriptor( @@ -468,8 +476,8 @@ _LOADBALANCERSETTINGS = _descriptor.Descriptor( name='lb_policy', full_name='istio.networking.v1alpha3.LoadBalancerSettings.lb_policy', index=0, containing_type=None, fields=[]), ], - serialized_start=1254, - serialized_end=1833, + serialized_start=1357, + serialized_end=1936, ) @@ -513,8 +521,8 @@ _CONNECTIONPOOLSETTINGS_TCPSETTINGS_TCPKEEPALIVE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2208, - serialized_end=2324, + serialized_start=2311, + serialized_end=2427, ) _CONNECTIONPOOLSETTINGS_TCPSETTINGS = _descriptor.Descriptor( @@ -557,8 +565,8 @@ _CONNECTIONPOOLSETTINGS_TCPSETTINGS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2017, - serialized_end=2324, + serialized_start=2120, + serialized_end=2427, ) _CONNECTIONPOOLSETTINGS_HTTPSETTINGS = _descriptor.Descriptor( @@ -608,8 +616,8 @@ _CONNECTIONPOOLSETTINGS_HTTPSETTINGS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2327, - serialized_end=2463, + serialized_start=2430, + serialized_end=2566, ) _CONNECTIONPOOLSETTINGS = _descriptor.Descriptor( @@ -645,8 +653,8 @@ _CONNECTIONPOOLSETTINGS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1836, - serialized_end=2463, + serialized_start=1939, + serialized_end=2566, ) @@ -704,8 +712,8 @@ _OUTLIERDETECTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2466, - serialized_end=2670, + serialized_start=2569, + serialized_end=2773, ) @@ -771,12 +779,13 @@ _TLSSETTINGS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2673, - serialized_end=2928, + serialized_start=2776, + serialized_end=3031, ) _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_network__scope__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/network_scope_pb2.py b/python/istio_api/networking/v1alpha3/network_scope_pb2.py new file mode 100644 index 00000000..2fd1a362 --- /dev/null +++ b/python/istio_api/networking/v1alpha3/network_scope_pb2.py @@ -0,0 +1,241 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: networking/v1alpha3/network_scope.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/network_scope.proto', + package='istio.networking.v1alpha3', + syntax='proto3', + serialized_pb=_b('\n\'networking/v1alpha3/network_scope.proto\x12\x19istio.networking.v1alpha3\"\xfe\x02\n\x0cNetworkScope\x12H\n\x0c\x64\x65pendencies\x18\x01 \x03(\x0b\x32\x32.istio.networking.v1alpha3.NetworkScope.Dependency\x1a)\n\x06Import\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x1a\xf8\x01\n\nDependency\x12l\n\x16source_workload_labels\x18\x01 \x03(\x0b\x32L.istio.networking.v1alpha3.NetworkScope.Dependency.SourceWorkloadLabelsEntry\x12?\n\x07imports\x18\x02 \x03(\x0b\x32..istio.networking.v1alpha3.NetworkScope.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=455, + serialized_end=493, +) +_sym_db.RegisterEnumDescriptor(_CONFIGSCOPE) + +ConfigScope = enum_type_wrapper.EnumTypeWrapper(_CONFIGSCOPE) +PUBLIC = 0 +PRIVATE = 1 + + + +_NETWORKSCOPE_IMPORT = _descriptor.Descriptor( + name='Import', + full_name='istio.networking.v1alpha3.NetworkScope.Import', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='namespace', full_name='istio.networking.v1alpha3.NetworkScope.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.NetworkScope.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=161, + serialized_end=202, +) + +_NETWORKSCOPE_DEPENDENCY_SOURCEWORKLOADLABELSENTRY = _descriptor.Descriptor( + name='SourceWorkloadLabelsEntry', + full_name='istio.networking.v1alpha3.NetworkScope.Dependency.SourceWorkloadLabelsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.networking.v1alpha3.NetworkScope.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.NetworkScope.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=394, + serialized_end=453, +) + +_NETWORKSCOPE_DEPENDENCY = _descriptor.Descriptor( + name='Dependency', + full_name='istio.networking.v1alpha3.NetworkScope.Dependency', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='source_workload_labels', full_name='istio.networking.v1alpha3.NetworkScope.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.NetworkScope.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=[_NETWORKSCOPE_DEPENDENCY_SOURCEWORKLOADLABELSENTRY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=205, + serialized_end=453, +) + +_NETWORKSCOPE = _descriptor.Descriptor( + name='NetworkScope', + full_name='istio.networking.v1alpha3.NetworkScope', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='dependencies', full_name='istio.networking.v1alpha3.NetworkScope.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=[_NETWORKSCOPE_IMPORT, _NETWORKSCOPE_DEPENDENCY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=71, + serialized_end=453, +) + +_NETWORKSCOPE_IMPORT.containing_type = _NETWORKSCOPE +_NETWORKSCOPE_DEPENDENCY_SOURCEWORKLOADLABELSENTRY.containing_type = _NETWORKSCOPE_DEPENDENCY +_NETWORKSCOPE_DEPENDENCY.fields_by_name['source_workload_labels'].message_type = _NETWORKSCOPE_DEPENDENCY_SOURCEWORKLOADLABELSENTRY +_NETWORKSCOPE_DEPENDENCY.fields_by_name['imports'].message_type = _NETWORKSCOPE_IMPORT +_NETWORKSCOPE_DEPENDENCY.containing_type = _NETWORKSCOPE +_NETWORKSCOPE.fields_by_name['dependencies'].message_type = _NETWORKSCOPE_DEPENDENCY +DESCRIPTOR.message_types_by_name['NetworkScope'] = _NETWORKSCOPE +DESCRIPTOR.enum_types_by_name['ConfigScope'] = _CONFIGSCOPE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +NetworkScope = _reflection.GeneratedProtocolMessageType('NetworkScope', (_message.Message,), dict( + + Import = _reflection.GeneratedProtocolMessageType('Import', (_message.Message,), dict( + DESCRIPTOR = _NETWORKSCOPE_IMPORT, + __module__ = 'networking.v1alpha3.network_scope_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.NetworkScope.Import) + )) + , + + Dependency = _reflection.GeneratedProtocolMessageType('Dependency', (_message.Message,), dict( + + SourceWorkloadLabelsEntry = _reflection.GeneratedProtocolMessageType('SourceWorkloadLabelsEntry', (_message.Message,), dict( + DESCRIPTOR = _NETWORKSCOPE_DEPENDENCY_SOURCEWORKLOADLABELSENTRY, + __module__ = 'networking.v1alpha3.network_scope_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.NetworkScope.Dependency.SourceWorkloadLabelsEntry) + )) + , + DESCRIPTOR = _NETWORKSCOPE_DEPENDENCY, + __module__ = 'networking.v1alpha3.network_scope_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.NetworkScope.Dependency) + )) + , + DESCRIPTOR = _NETWORKSCOPE, + __module__ = 'networking.v1alpha3.network_scope_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.NetworkScope) + )) +_sym_db.RegisterMessage(NetworkScope) +_sym_db.RegisterMessage(NetworkScope.Import) +_sym_db.RegisterMessage(NetworkScope.Dependency) +_sym_db.RegisterMessage(NetworkScope.Dependency.SourceWorkloadLabelsEntry) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z istio.io/api/networking/v1alpha3')) +_NETWORKSCOPE_DEPENDENCY_SOURCEWORKLOADLABELSENTRY.has_options = True +_NETWORKSCOPE_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 09d81c60..b9d58bd6 100644 --- a/python/istio_api/networking/v1alpha3/service_entry_pb2.py +++ b/python/istio_api/networking/v1alpha3/service_entry_pb2.py @@ -14,15 +14,16 @@ _sym_db = _symbol_database.Default() from networking.v1alpha3 import gateway_pb2 as networking_dot_v1alpha3_dot_gateway__pb2 +from networking.v1alpha3 import network_scope_pb2 as networking_dot_v1alpha3_dot_network__scope__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\"\xd8\x05\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\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/network_scope.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,]) + dependencies=[networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_network__scope__pb2.DESCRIPTOR,]) @@ -43,8 +44,8 @@ _SERVICEENTRY_LOCATION = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=741, - serialized_end=789, + serialized_start=844, + serialized_end=892, ) _sym_db.RegisterEnumDescriptor(_SERVICEENTRY_LOCATION) @@ -69,8 +70,8 @@ _SERVICEENTRY_RESOLUTION = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=791, - serialized_end=834, + serialized_start=894, + serialized_end=937, ) _sym_db.RegisterEnumDescriptor(_SERVICEENTRY_RESOLUTION) @@ -108,8 +109,8 @@ _SERVICEENTRY_ENDPOINT_PORTSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=648, - serialized_end=692, + serialized_start=751, + serialized_end=795, ) _SERVICEENTRY_ENDPOINT_LABELSENTRY = _descriptor.Descriptor( @@ -145,8 +146,8 @@ _SERVICEENTRY_ENDPOINT_LABELSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=694, - serialized_end=739, + serialized_start=797, + serialized_end=842, ) _SERVICEENTRY_ENDPOINT = _descriptor.Descriptor( @@ -210,8 +211,8 @@ _SERVICEENTRY_ENDPOINT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=414, - serialized_end=739, + serialized_start=517, + serialized_end=842, ) _SERVICEENTRY = _descriptor.Descriptor( @@ -263,6 +264,13 @@ _SERVICEENTRY = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='config_scope', full_name='istio.networking.v1alpha3.ServiceEntry.config_scope', index=6, + number=7, 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), ], extensions=[ ], @@ -277,8 +285,8 @@ _SERVICEENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=106, - serialized_end=834, + serialized_start=147, + serialized_end=937, ) _SERVICEENTRY_ENDPOINT_PORTSENTRY.containing_type = _SERVICEENTRY_ENDPOINT @@ -290,6 +298,7 @@ _SERVICEENTRY.fields_by_name['ports'].message_type = networking_dot_v1alpha3_dot _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_network__scope__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/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py index 69497908..9a6433a7 100644 --- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py +++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py @@ -15,15 +15,16 @@ _sym_db = _symbol_database.Default() 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 network_scope_pb2 as networking_dot_v1alpha3_dot_network__scope__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\"\xc9\x01\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\"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/network_scope.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,]) + dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_network__scope__pb2.DESCRIPTOR,]) @@ -70,6 +71,13 @@ _VIRTUALSERVICE = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='config_scope', full_name='istio.networking.v1alpha3.VirtualService.config_scope', index=5, + number=6, 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), ], extensions=[ ], @@ -82,8 +90,8 @@ _VIRTUALSERVICE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=137, - serialized_end=338, + serialized_start=178, + serialized_end=441, ) @@ -127,8 +135,8 @@ _DESTINATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=340, - serialized_end=438, + serialized_start=443, + serialized_end=541, ) @@ -165,8 +173,8 @@ _HTTPROUTE_APPENDHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1411, - serialized_end=1463, + serialized_start=1514, + serialized_end=1566, ) _HTTPROUTE_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( @@ -202,8 +210,8 @@ _HTTPROUTE_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1465, - serialized_end=1525, + serialized_start=1568, + serialized_end=1628, ) _HTTPROUTE_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -239,8 +247,8 @@ _HTTPROUTE_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1527, - serialized_end=1586, + serialized_start=1630, + serialized_end=1689, ) _HTTPROUTE = _descriptor.Descriptor( @@ -374,8 +382,8 @@ _HTTPROUTE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=441, - serialized_end=1586, + serialized_start=544, + serialized_end=1689, ) @@ -412,8 +420,8 @@ _HEADERS_HEADEROPERATIONS_SETENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1928, - serialized_end=1970, + serialized_start=2031, + serialized_end=2073, ) _HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor( @@ -449,8 +457,8 @@ _HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1972, - serialized_end=2014, + serialized_start=2075, + serialized_end=2117, ) _HEADERS_HEADEROPERATIONS = _descriptor.Descriptor( @@ -493,8 +501,8 @@ _HEADERS_HEADEROPERATIONS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1742, - serialized_end=2014, + serialized_start=1845, + serialized_end=2117, ) _HEADERS = _descriptor.Descriptor( @@ -530,8 +538,8 @@ _HEADERS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1589, - serialized_end=2014, + serialized_start=1692, + serialized_end=2117, ) @@ -568,8 +576,8 @@ _TLSROUTE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2017, - serialized_end=2149, + serialized_start=2120, + serialized_end=2252, ) @@ -606,8 +614,8 @@ _TCPROUTE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2152, - serialized_end=2283, + serialized_start=2255, + serialized_end=2386, ) @@ -644,8 +652,8 @@ _HTTPMATCHREQUEST_HEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2723, - serialized_end=2809, + serialized_start=2826, + serialized_end=2912, ) _HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor( @@ -681,8 +689,8 @@ _HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2811, - serialized_end=2862, + serialized_start=2914, + serialized_end=2965, ) _HTTPMATCHREQUEST = _descriptor.Descriptor( @@ -760,8 +768,8 @@ _HTTPMATCHREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2286, - serialized_end=2862, + serialized_start=2389, + serialized_end=2965, ) @@ -798,8 +806,8 @@ _HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1465, - serialized_end=1525, + serialized_start=1568, + serialized_end=1628, ) _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -835,8 +843,8 @@ _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1527, - serialized_end=1586, + serialized_start=1630, + serialized_end=1689, ) _HTTPROUTEDESTINATION = _descriptor.Descriptor( @@ -907,8 +915,8 @@ _HTTPROUTEDESTINATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2865, - serialized_end=3437, + serialized_start=2968, + serialized_end=3540, ) @@ -945,8 +953,8 @@ _ROUTEDESTINATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3439, - serialized_end=3534, + serialized_start=3542, + serialized_end=3637, ) @@ -983,8 +991,8 @@ _L4MATCHATTRIBUTES_SOURCELABELSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2811, - serialized_end=2862, + serialized_start=2914, + serialized_end=2965, ) _L4MATCHATTRIBUTES = _descriptor.Descriptor( @@ -1041,8 +1049,8 @@ _L4MATCHATTRIBUTES = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3537, - serialized_end=3780, + serialized_start=3640, + serialized_end=3883, ) @@ -1079,8 +1087,8 @@ _TLSMATCHATTRIBUTES_SOURCELABELSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2811, - serialized_end=2862, + serialized_start=2914, + serialized_end=2965, ) _TLSMATCHATTRIBUTES = _descriptor.Descriptor( @@ -1144,8 +1152,8 @@ _TLSMATCHATTRIBUTES = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3783, - serialized_end=4047, + serialized_start=3886, + serialized_end=4150, ) @@ -1182,8 +1190,8 @@ _HTTPREDIRECT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4049, - serialized_end=4095, + serialized_start=4152, + serialized_end=4198, ) @@ -1220,8 +1228,8 @@ _HTTPREWRITE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4097, - serialized_end=4142, + serialized_start=4200, + serialized_end=4245, ) @@ -1268,8 +1276,8 @@ _STRINGMATCH = _descriptor.Descriptor( name='match_type', full_name='istio.networking.v1alpha3.StringMatch.match_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4144, - serialized_end=4223, + serialized_start=4247, + serialized_end=4326, ) @@ -1313,8 +1321,8 @@ _HTTPRETRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4225, - serialized_end=4324, + serialized_start=4328, + serialized_end=4427, ) @@ -1379,8 +1387,8 @@ _CORSPOLICY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4327, - serialized_end=4530, + serialized_start=4430, + serialized_end=4633, ) @@ -1434,8 +1442,8 @@ _HTTPFAULTINJECTION_DELAY = _descriptor.Descriptor( name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4692, - serialized_end=4901, + serialized_start=4795, + serialized_end=5004, ) _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( @@ -1495,8 +1503,8 @@ _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4904, - serialized_end=5071, + serialized_start=5007, + serialized_end=5174, ) _HTTPFAULTINJECTION = _descriptor.Descriptor( @@ -1532,8 +1540,8 @@ _HTTPFAULTINJECTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4533, - serialized_end=5071, + serialized_start=4636, + serialized_end=5174, ) @@ -1573,8 +1581,8 @@ _PORTSELECTOR = _descriptor.Descriptor( name='port', full_name='istio.networking.v1alpha3.PortSelector.port', index=0, containing_type=None, fields=[]), ], - serialized_start=5073, - serialized_end=5129, + serialized_start=5176, + serialized_end=5232, ) @@ -1604,13 +1612,14 @@ _PERCENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5131, - serialized_end=5155, + serialized_start=5234, + serialized_end=5258, ) _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_network__scope__pb2._CONFIGSCOPE _DESTINATION.fields_by_name['port'].message_type = _PORTSELECTOR _HTTPROUTE_APPENDHEADERSENTRY.containing_type = _HTTPROUTE _HTTPROUTE_APPENDRESPONSEHEADERSENTRY.containing_type = _HTTPROUTE
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.

+

One or more endpoints associated with the service.

+
configScopeConfigScope +

The visibility setting associated with this service entry. Set to +PRIVATE if this service should not be visible outside the namespace +where the service entry was added. The default scope is public, +i.e. the service added by the service entry will be visible to +workloads in the entire mesh.

+
configScopeConfigScope +

The visibility setting associated with this VirtualService. Set to +PRIVATE if this virtual service should not be exported, i.e. restrict +the applicability of this virtual service to only workloads in the same +namespace as the virtual service.

+