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

AuthenticationPolicy

@@ -146,6 +146,15 @@

MeshConfig

Default is false which means the traffic is denied when the client is unable to connect to Mixer.

+ + + +sidecarToTelemetrySessionAffinity +bool + +

Enable session affinity for envoy mixer reports so that calls from a proxy will +always target the same mixer instance.

+ @@ -255,16 +264,18 @@

MeshConfig

- + outboundTrafficPolicy MeshConfig.OutboundTrafficPolicy -

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

+

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

@@ -303,18 +314,6 @@

MeshConfig

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

- - - -defaultServiceDependency -MeshConfig.DefaultServiceDependency - -

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

- @@ -338,74 +337,6 @@

MeshConfig.AccessLogEncoding

JSON - - - - -
-

MeshConfig.DefaultServiceDependency

-
-

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

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

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

- -
importNamespacesstring[] -

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

- -
-
-

MeshConfig.DefaultServiceDependency.Mode

-
- - - - - - - - - - - - - - - @@ -464,7 +395,7 @@

MeshConfig.OutboundTrafficPolicy

- + - + - + - - - - @@ -656,7 +581,7 @@

Network.NetworkEndpoints

a. By matching the registry name with one of the “fromregistries” - in the mesh config. A “fromregistry” can only be assinged to a + in the mesh config. A “fromregistry” can only be assigned to a single network.

b. By matching the IP against one of the CIDR ranges in a mesh diff --git a/mesh/v1alpha1/network.pb.go b/mesh/v1alpha1/network.pb.go index 05bafac843..6c7f002b4f 100644 --- a/mesh/v1alpha1/network.pb.go +++ b/mesh/v1alpha1/network.pb.go @@ -59,7 +59,7 @@ func (m *Network) GetGateways() []*Network_IstioNetworkGateway { // 2. Explicitly: // // a. By matching the registry name with one of the "from_registries" -// in the mesh config. A "from_registry" can only be assinged to a +// in the mesh config. A "from_registry" can only be assigned to a // single network. // // b. By matching the IP against one of the CIDR ranges in a mesh diff --git a/mesh/v1alpha1/network.proto b/mesh/v1alpha1/network.proto index 278fd033df..1fed56778e 100644 --- a/mesh/v1alpha1/network.proto +++ b/mesh/v1alpha1/network.proto @@ -36,7 +36,7 @@ message Network { // 2. Explicitly: // // a. By matching the registry name with one of the "from_registries" - // in the mesh config. A "from_registry" can only be assinged to a + // in the mesh config. A "from_registry" can only be assigned to a // single network. // // b. By matching the IP against one of the CIDR ranges in a mesh diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go index db6e5630de..7788ca4ef0 100644 --- a/networking/v1alpha3/destination_rule.pb.go +++ b/networking/v1alpha3/destination_rule.pb.go @@ -8,8 +8,8 @@ networking/v1alpha3/destination_rule.proto networking/v1alpha3/envoy_filter.proto networking/v1alpha3/gateway.proto - networking/v1alpha3/service_dependency.proto networking/v1alpha3/service_entry.proto + networking/v1alpha3/sidecar.proto networking/v1alpha3/virtual_service.proto It has these top-level messages: @@ -24,8 +24,11 @@ Gateway Server Port - ServiceDependency ServiceEntry + Sidecar + IstioIngressListener + IstioEgressListener + WorkloadSelector VirtualService Destination HTTPRoute @@ -522,6 +525,32 @@ func (m *Subset) GetTrafficPolicy() *TrafficPolicy { // name: user // ttl: 0s // ``` +// +// The following example sets up locality weight for the ratings service +// Assume ratings service resides in "region1/zone1/*" and "region1/zone2/*", +// and originating clusters also reside in "region1/zone1/*" and "region1/zone2/*". +// This example specifies when clusters from "region1/zone1/*" accessing ratings service, 80% of the traffic +// is shipped to "region1/zone1/*" ratings service endpoints, and the rest 20% to "region1/zone2/*". +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: DestinationRule +// metadata: +// name: bookinfo-ratings +// spec: +// host: ratings.prod.svc.cluster.local +// trafficPolicy: +// loadBalancer: +// localityWeightSettings: +// - from: region1/zone1/* +// to: +// "region1/zone1/*": 80 +// "region1/zone2/*": 20 +// - from: region1/zone2/* +// to: +// "region1/zone1/*": 20 +// "region1/zone2/*": 80 +// ``` type LoadBalancerSettings struct { // Upstream load balancing policy. // @@ -529,6 +558,11 @@ type LoadBalancerSettings struct { // *LoadBalancerSettings_Simple // *LoadBalancerSettings_ConsistentHash LbPolicy isLoadBalancerSettings_LbPolicy `protobuf_oneof:"lb_policy"` + // Explicitly assign loadbalancing weight across different zones and geographical locations. + // Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/load_balancing.html?highlight=load_balancing_weight#locality-weighted-load-balancing) + // If empty, the locality weight is set according to the endpoints number within it. + // If duplicated settings are present, then the first one will take effect. + LocalityWeightSettings []*LoadBalancerSettings_LocalityWeightSetting `protobuf:"bytes,3,rep,name=locality_weight_settings,json=localityWeightSettings" json:"locality_weight_settings,omitempty"` } func (m *LoadBalancerSettings) Reset() { *m = LoadBalancerSettings{} } @@ -575,6 +609,13 @@ func (m *LoadBalancerSettings) GetConsistentHash() *LoadBalancerSettings_Consist return nil } +func (m *LoadBalancerSettings) GetLocalityWeightSettings() []*LoadBalancerSettings_LocalityWeightSetting { + if m != nil { + return m.LocalityWeightSettings + } + return nil +} + // XXX_OneofFuncs is for the internal use of the proto package. func (*LoadBalancerSettings) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _LoadBalancerSettings_OneofMarshaler, _LoadBalancerSettings_OneofUnmarshaler, _LoadBalancerSettings_OneofSizer, []interface{}{ @@ -863,6 +904,43 @@ func (m *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) GetTtl() *time.Durati return nil } +// Originating -> upstream cluster locality weight set, support wildcard matching '*' +// '*' matches all localities +// 'region1/*' matches all zones in region1 +type LoadBalancerSettings_LocalityWeightSetting struct { + // Originating locality, '/' separated, e.g. 'region/zone/sub_zone'. + From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + // Upstream locality to loadbalancing weight map. The sum of all weights should be == 100. + // Should assign loadbalancing weight for all localities, otherwise the traffic are not routed + // following the percentage of weight. + To map[string]uint32 `protobuf:"bytes,2,rep,name=to" json:"to,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (m *LoadBalancerSettings_LocalityWeightSetting) Reset() { + *m = LoadBalancerSettings_LocalityWeightSetting{} +} +func (m *LoadBalancerSettings_LocalityWeightSetting) String() string { + return proto.CompactTextString(m) +} +func (*LoadBalancerSettings_LocalityWeightSetting) ProtoMessage() {} +func (*LoadBalancerSettings_LocalityWeightSetting) Descriptor() ([]byte, []int) { + return fileDescriptorDestinationRule, []int{3, 1} +} + +func (m *LoadBalancerSettings_LocalityWeightSetting) GetFrom() string { + if m != nil { + return m.From + } + return "" +} + +func (m *LoadBalancerSettings_LocalityWeightSetting) GetTo() map[string]uint32 { + if m != nil { + return m.To + } + return nil +} + // Connection pool settings for an upstream host. The settings apply to // each individual host in the upstream service. See Envoy's [circuit // breaker](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/circuit_breaking) @@ -1284,6 +1362,7 @@ func init() { proto.RegisterType((*LoadBalancerSettings)(nil), "istio.networking.v1alpha3.LoadBalancerSettings") proto.RegisterType((*LoadBalancerSettings_ConsistentHashLB)(nil), "istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB") proto.RegisterType((*LoadBalancerSettings_ConsistentHashLB_HTTPCookie)(nil), "istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie") + proto.RegisterType((*LoadBalancerSettings_LocalityWeightSetting)(nil), "istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting") proto.RegisterType((*ConnectionPoolSettings)(nil), "istio.networking.v1alpha3.ConnectionPoolSettings") proto.RegisterType((*ConnectionPoolSettings_TCPSettings)(nil), "istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings") proto.RegisterType((*ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), "istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive") @@ -1555,6 +1634,18 @@ func (m *LoadBalancerSettings) MarshalTo(dAtA []byte) (int, error) { } i += nn12 } + if len(m.LocalityWeightSettings) > 0 { + for _, msg := range m.LocalityWeightSettings { + dAtA[i] = 0x1a + i++ + i = encodeVarintDestinationRule(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } return i, nil } @@ -1683,6 +1774,46 @@ func (m *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) MarshalTo(dAtA []byte return i, nil } +func (m *LoadBalancerSettings_LocalityWeightSetting) 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 *LoadBalancerSettings_LocalityWeightSetting) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.From) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintDestinationRule(dAtA, i, uint64(len(m.From))) + i += copy(dAtA[i:], m.From) + } + if len(m.To) > 0 { + for k, _ := range m.To { + dAtA[i] = 0x12 + i++ + v := m.To[k] + mapSize := 1 + len(k) + sovDestinationRule(uint64(len(k))) + 1 + sovDestinationRule(uint64(v)) + i = encodeVarintDestinationRule(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintDestinationRule(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 + i++ + i = encodeVarintDestinationRule(dAtA, i, uint64(v)) + } + } + return i, nil +} + func (m *ConnectionPoolSettings) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2074,6 +2205,12 @@ func (m *LoadBalancerSettings) Size() (n int) { if m.LbPolicy != nil { n += m.LbPolicy.Size() } + if len(m.LocalityWeightSettings) > 0 { + for _, e := range m.LocalityWeightSettings { + l = e.Size() + n += 1 + l + sovDestinationRule(uint64(l)) + } + } return n } @@ -2144,6 +2281,24 @@ func (m *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) Size() (n int) { return n } +func (m *LoadBalancerSettings_LocalityWeightSetting) Size() (n int) { + var l int + _ = l + l = len(m.From) + if l > 0 { + n += 1 + l + sovDestinationRule(uint64(l)) + } + if len(m.To) > 0 { + for k, v := range m.To { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovDestinationRule(uint64(len(k))) + 1 + sovDestinationRule(uint64(v)) + n += mapEntrySize + 1 + sovDestinationRule(uint64(mapEntrySize)) + } + } + return n +} + func (m *ConnectionPoolSettings) Size() (n int) { var l int _ = l @@ -3178,6 +3333,37 @@ func (m *LoadBalancerSettings) Unmarshal(dAtA []byte) error { } m.LbPolicy = &LoadBalancerSettings_ConsistentHash{v} iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LocalityWeightSettings", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDestinationRule + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDestinationRule + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LocalityWeightSettings = append(m.LocalityWeightSettings, &LoadBalancerSettings_LocalityWeightSetting{}) + if err := m.LocalityWeightSettings[len(m.LocalityWeightSettings)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDestinationRule(dAtA[iNdEx:]) @@ -3491,6 +3677,192 @@ func (m *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) Unmarshal(dAtA []byte } return nil } +func (m *LoadBalancerSettings_LocalityWeightSetting) 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 ErrIntOverflowDestinationRule + } + 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: LocalityWeightSetting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LocalityWeightSetting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDestinationRule + } + 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 ErrInvalidLengthDestinationRule + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.From = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDestinationRule + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDestinationRule + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.To == nil { + m.To = make(map[string]uint32) + } + var mapkey string + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDestinationRule + } + 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 ErrIntOverflowDestinationRule + } + 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 ErrInvalidLengthDestinationRule + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDestinationRule + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipDestinationRule(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthDestinationRule + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.To[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDestinationRule(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthDestinationRule + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ConnectionPoolSettings) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -4500,94 +4872,100 @@ func init() { } var fileDescriptorDestinationRule = []byte{ - // 1423 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, 0xd9, 0xb2, 0xcc, 0x6b, 0xe4, 0x2a, 0xba, 0x80, 0xe3, 0x2b, 0x5c, - 0xdc, 0xb8, 0x69, 0x32, 0xaa, 0x1d, 0x14, 0x48, 0x13, 0xa4, 0x88, 0x65, 0x1b, 0x91, 0x1b, 0xd9, - 0x12, 0x28, 0x19, 0x28, 0xb2, 0x19, 0x50, 0x23, 0x5a, 0x62, 0x3c, 0x1a, 0x4e, 0x49, 0x8e, 0x6a, - 0xe7, 0x19, 0xba, 0x0e, 0xba, 0xed, 0xa6, 0xcf, 0x52, 0x74, 0xd5, 0x6d, 0xbb, 0x69, 0x91, 0x17, - 0xe8, 0xaa, 0x9b, 0x2e, 0x8a, 0x82, 0x1c, 0xea, 0xc7, 0x89, 0x23, 0xc7, 0x48, 0xb3, 0x23, 0x79, - 0xbe, 0xef, 0x90, 0x3c, 0xe7, 0x9b, 0x73, 0x38, 0x70, 0x3b, 0xa0, 0xea, 0x6b, 0x2e, 0x4e, 0x58, - 0xd0, 0xab, 0x0c, 0x37, 0x89, 0x1f, 0xf6, 0xc9, 0xbd, 0x4a, 0x97, 0x4a, 0xc5, 0x02, 0xa2, 0x18, - 0x0f, 0x5c, 0x11, 0xf9, 0xd4, 0x09, 0x05, 0x57, 0x1c, 0xdd, 0x60, 0x52, 0x31, 0xee, 0x4c, 0x18, - 0xce, 0x88, 0x51, 0x5a, 0xeb, 0x71, 0xde, 0xf3, 0x69, 0xc5, 0x00, 0x3b, 0xd1, 0x71, 0xa5, 0x1b, - 0x09, 0xc3, 0x8f, 0xa9, 0xa5, 0x8f, 0x2e, 0xda, 0x66, 0xc8, 0x84, 0x8a, 0x88, 0xef, 0x4a, 0x2a, - 0x86, 0xcc, 0xb3, 0xbb, 0x94, 0xee, 0x5c, 0x04, 0xb5, 0x10, 0xb7, 0x4b, 0x43, 0x1a, 0x74, 0x69, - 0xe0, 0x9d, 0x59, 0xf4, 0x6a, 0x8f, 0xf7, 0xb8, 0x19, 0x56, 0xf4, 0x28, 0x5e, 0x2d, 0xff, 0x95, - 0x80, 0xe5, 0xdd, 0xc9, 0x25, 0x70, 0xe4, 0x53, 0x84, 0x20, 0xdd, 0xe7, 0x52, 0x15, 0x13, 0xeb, - 0x89, 0x8d, 0x05, 0x6c, 0xc6, 0xa8, 0x01, 0x79, 0x25, 0xc8, 0xf1, 0x31, 0xf3, 0xdc, 0x90, 0xfb, - 0xcc, 0x3b, 0x2b, 0x26, 0xd7, 0x13, 0x1b, 0xb9, 0xad, 0x0d, 0xe7, 0xad, 0x57, 0x75, 0xda, 0x31, - 0xa1, 0x69, 0xf0, 0x78, 0x49, 0x4d, 0x4f, 0xd1, 0x43, 0xb8, 0x26, 0xa3, 0x8e, 0xa4, 0x4a, 0x16, - 0x53, 0xeb, 0xa9, 0x8d, 0xdc, 0xd6, 0x7f, 0x67, 0x78, 0x6a, 0x19, 0x24, 0x1e, 0x31, 0xd0, 0x3e, - 0x2c, 0x7a, 0x3c, 0x38, 0x66, 0x3d, 0x57, 0x7a, 0x3c, 0xa4, 0xc5, 0xf4, 0x7a, 0x62, 0x23, 0xbf, - 0xf5, 0xff, 0x19, 0x1e, 0x76, 0x0c, 0xbc, 0xa5, 0xd1, 0x38, 0xe7, 0x4d, 0x26, 0xe5, 0x5f, 0xb2, - 0xb0, 0x74, 0xee, 0xa0, 0xa8, 0x0d, 0x4b, 0x3e, 0x27, 0x5d, 0xb7, 0x43, 0x7c, 0x12, 0x78, 0x54, - 0x98, 0x38, 0xe4, 0xb6, 0x2a, 0x33, 0xbc, 0xd7, 0x39, 0xe9, 0x56, 0x2d, 0xbc, 0x45, 0x95, 0x62, - 0x41, 0x4f, 0xe2, 0x45, 0x7f, 0x6a, 0x15, 0x3d, 0x83, 0x65, 0x8f, 0x07, 0x01, 0xf5, 0x8c, 0x56, - 0x42, 0xce, 0x7d, 0x1b, 0xc1, 0xcd, 0xd9, 0xa7, 0xb6, 0x8c, 0x26, 0xe7, 0xfe, 0xd8, 0x73, 0xde, - 0x3b, 0xb7, 0x8e, 0xbe, 0x84, 0x15, 0x1e, 0x29, 0x9f, 0x51, 0xe1, 0x76, 0xa9, 0x8a, 0x0d, 0xc5, - 0x94, 0xf1, 0xfe, 0xf1, 0x0c, 0xef, 0x8d, 0x98, 0xb3, 0x3b, 0xa2, 0xe0, 0x02, 0x7f, 0x6d, 0x05, - 0xdd, 0x87, 0x94, 0xf2, 0xa5, 0x89, 0x6f, 0x6e, 0x66, 0x7c, 0xdb, 0xf5, 0xd6, 0xf8, 0x78, 0x9a, - 0x82, 0x9e, 0xc3, 0xbf, 0x42, 0x2e, 0x94, 0xeb, 0xd3, 0x21, 0xd5, 0xc2, 0x8d, 0x6d, 0xc5, 0x8c, - 0xc9, 0xf5, 0x83, 0x77, 0x55, 0x8d, 0xd3, 0xe4, 0x42, 0x9d, 0xd7, 0xd1, 0x8a, 0x76, 0x5b, 0xd7, - 0x5e, 0x47, 0x1b, 0x96, 0x5e, 0xa6, 0x60, 0xe5, 0x0d, 0x20, 0x7a, 0x08, 0x69, 0x0d, 0xb5, 0xe9, - 0xbb, 0x35, 0x63, 0x4b, 0xcd, 0x6d, 0x51, 0x9f, 0x7a, 0x8a, 0x0b, 0x6c, 0x48, 0x6f, 0x8a, 0x20, - 0xf9, 0x81, 0x44, 0x90, 0xfa, 0xa0, 0x22, 0x48, 0xff, 0x83, 0x22, 0xc8, 0x5c, 0x59, 0x04, 0xe5, - 0xdf, 0x13, 0x90, 0x8d, 0xbf, 0x5d, 0x5d, 0x54, 0x02, 0x32, 0xa0, 0xa3, 0xa2, 0xa2, 0xc7, 0x68, - 0x0f, 0xb2, 0x3e, 0xe9, 0x50, 0x5f, 0x16, 0x93, 0x46, 0x16, 0x77, 0x2f, 0x2d, 0x01, 0x4e, 0xdd, - 0xe0, 0xf7, 0x02, 0x25, 0xce, 0xb0, 0x25, 0x5f, 0x50, 0x9b, 0x52, 0xef, 0x55, 0x9b, 0x4a, 0x9f, - 0x41, 0x6e, 0x6a, 0x1f, 0x54, 0x80, 0xd4, 0x09, 0x3d, 0xb3, 0x27, 0xd7, 0x43, 0xb4, 0x0a, 0x99, - 0x21, 0xf1, 0x23, 0x6a, 0x54, 0xb1, 0x80, 0xe3, 0xc9, 0x83, 0xe4, 0xfd, 0x44, 0xf9, 0xfb, 0x0c, - 0xac, 0x5e, 0x24, 0x04, 0x84, 0x21, 0x2b, 0xd9, 0x20, 0xf4, 0xe3, 0x08, 0xe4, 0xb7, 0xee, 0x5f, - 0x51, 0x49, 0x4e, 0xcb, 0xb0, 0xeb, 0xd5, 0xda, 0x1c, 0xb6, 0x9e, 0xd0, 0x89, 0x91, 0x93, 0x64, - 0x52, 0xd1, 0x40, 0xb9, 0x7d, 0x22, 0xfb, 0x56, 0xa6, 0x8f, 0xaf, 0xea, 0x7c, 0x67, 0xec, 0xa6, - 0x46, 0x64, 0xdf, 0x6c, 0x92, 0xf7, 0xce, 0xad, 0x95, 0xfe, 0x48, 0x42, 0xe1, 0x75, 0x18, 0xba, - 0x0d, 0x85, 0xbe, 0x52, 0xa1, 0xdb, 0xa7, 0xa4, 0x4b, 0x85, 0x3b, 0xc9, 0xb0, 0x76, 0xa0, 0x2d, - 0x35, 0x63, 0x38, 0xd4, 0xd9, 0x0e, 0x20, 0x67, 0xb0, 0x1e, 0xe7, 0x27, 0x8c, 0xda, 0x93, 0x3e, - 0x7d, 0xdf, 0x93, 0x3a, 0xb5, 0x76, 0xbb, 0xb9, 0x63, 0x5c, 0xd6, 0xe6, 0x30, 0xe8, 0x1d, 0xe2, - 0x19, 0xfa, 0x1f, 0x2c, 0x45, 0x92, 0xba, 0x92, 0x47, 0xc2, 0xa3, 0x2e, 0x0b, 0x8d, 0x2a, 0xe6, - 0x6b, 0x73, 0x38, 0x17, 0x49, 0xda, 0x32, 0xab, 0xfb, 0x21, 0xba, 0x0d, 0x2b, 0x03, 0x16, 0xb0, - 0x41, 0x34, 0x70, 0x05, 0x0b, 0x7a, 0xae, 0x64, 0x2f, 0xe2, 0x7e, 0x92, 0xc6, 0xcb, 0xd6, 0x80, - 0x59, 0xd0, 0x6b, 0xb1, 0x17, 0xb4, 0xd4, 0x03, 0x98, 0xec, 0x76, 0xa1, 0xa2, 0x11, 0xa4, 0x43, - 0xa2, 0xfa, 0x56, 0x17, 0x66, 0x8c, 0x36, 0x21, 0xa5, 0xd4, 0xe8, 0x43, 0xbf, 0xe1, 0xc4, 0xfd, - 0xdf, 0x19, 0xf5, 0x7f, 0x67, 0xd7, 0xf6, 0xff, 0x6a, 0xfa, 0xdb, 0x5f, 0x6f, 0x26, 0xb0, 0xc6, - 0x56, 0x01, 0xe6, 0x75, 0x36, 0xdd, 0x13, 0x7a, 0x56, 0xae, 0xc1, 0xfc, 0x28, 0xf5, 0x68, 0x19, - 0x72, 0xb8, 0x71, 0x74, 0xb8, 0xeb, 0xe2, 0x46, 0x75, 0xff, 0xb0, 0x30, 0x87, 0xf2, 0x00, 0xf5, - 0xbd, 0xed, 0x56, 0xdb, 0xdd, 0x69, 0x1c, 0x1e, 0x16, 0x12, 0x08, 0x20, 0x8b, 0xb7, 0x0f, 0x77, - 0x1b, 0x07, 0x85, 0xa4, 0x06, 0x37, 0xb7, 0x5b, 0xad, 0x76, 0x0d, 0x37, 0x8e, 0x9e, 0xd4, 0x0a, - 0xa9, 0x6a, 0x0e, 0x16, 0xfc, 0x8e, 0xfd, 0x44, 0xca, 0x2f, 0xb3, 0x70, 0xfd, 0xe2, 0xca, 0x82, - 0x1a, 0x90, 0x52, 0x5e, 0x68, 0xeb, 0xe6, 0xa3, 0x2b, 0x57, 0x26, 0xa7, 0xbd, 0xd3, 0x9c, 0x2a, - 0x03, 0x5e, 0x88, 0x30, 0xa4, 0x75, 0x5e, 0x6c, 0xca, 0x3f, 0xbf, 0xba, 0x47, 0x1d, 0xf5, 0xb1, - 0x4b, 0xe3, 0xab, 0xf4, 0x67, 0x12, 0x72, 0x53, 0x1b, 0xa1, 0x5b, 0xb0, 0x3c, 0x20, 0xa7, 0xee, - 0xa4, 0x28, 0x4a, 0x73, 0x81, 0x0c, 0xce, 0x0f, 0xc8, 0xe9, 0xc4, 0xad, 0x44, 0xd5, 0x71, 0x0d, - 0x76, 0x15, 0x1b, 0x50, 0x1e, 0x29, 0x7b, 0xae, 0xb7, 0xa7, 0x66, 0x5c, 0x6b, 0xdb, 0x31, 0x01, - 0x71, 0x58, 0x52, 0x5e, 0xe8, 0x9e, 0x50, 0x1a, 0x12, 0x9f, 0x0d, 0xa9, 0x4d, 0xee, 0x17, 0xef, - 0x15, 0x2b, 0xa7, 0xed, 0x85, 0x4f, 0x47, 0x1e, 0xf1, 0xa2, 0x9a, 0x9a, 0x95, 0xbe, 0x49, 0xc0, - 0xe2, 0xb4, 0x19, 0x5d, 0x87, 0x6c, 0x28, 0x78, 0x87, 0xc6, 0xb7, 0x5c, 0xc2, 0x76, 0x86, 0xee, - 0x42, 0x5a, 0xdf, 0xea, 0xf2, 0x2b, 0x19, 0x18, 0xfa, 0x14, 0xe6, 0x59, 0xa0, 0xa8, 0x18, 0x92, - 0xcb, 0x05, 0x8a, 0xc7, 0xd0, 0xd2, 0xcf, 0x09, 0x58, 0x9c, 0xce, 0x09, 0x7a, 0x08, 0x25, 0x9d, - 0x95, 0x4d, 0x57, 0xe7, 0x40, 0x3f, 0x3c, 0xf5, 0xa7, 0x24, 0xe8, 0x57, 0x11, 0x95, 0x6a, 0x94, - 0x88, 0x7f, 0x1b, 0xc4, 0x01, 0x39, 0x6d, 0xc6, 0x76, 0x6c, 0xcd, 0xe8, 0x0e, 0x20, 0x6d, 0xda, - 0x32, 0xe4, 0x31, 0x29, 0x69, 0x48, 0xa6, 0xbc, 0x6c, 0x1d, 0x90, 0xd3, 0x31, 0xfa, 0x11, 0xfc, - 0x67, 0x1a, 0xe7, 0x86, 0x54, 0x4c, 0x65, 0xdd, 0xdc, 0x22, 0x83, 0x8b, 0x83, 0x09, 0xa3, 0x49, - 0xc5, 0x24, 0xf8, 0xe8, 0x26, 0xe4, 0x62, 0xba, 0x12, 0x8c, 0xc6, 0x2f, 0x9b, 0x0c, 0x06, 0x03, - 0x37, 0x2b, 0xe5, 0xef, 0x92, 0x50, 0x78, 0xbd, 0x29, 0xa2, 0xbb, 0x80, 0x74, 0x39, 0xa4, 0x5e, - 0xa4, 0xd8, 0x90, 0xba, 0x54, 0x08, 0x2e, 0x46, 0xf7, 0x5a, 0x99, 0xb2, 0xec, 0x19, 0xc3, 0xb9, - 0xb0, 0x26, 0xdf, 0x39, 0xac, 0xe8, 0x09, 0xa0, 0x0e, 0x91, 0xd4, 0xa5, 0xcf, 0xed, 0x0b, 0xc1, - 0xa4, 0xf2, 0xd2, 0xbc, 0x14, 0x34, 0x69, 0xcf, 0x72, 0xb4, 0x44, 0xd1, 0x27, 0xb0, 0xaa, 0x2f, - 0x39, 0xf6, 0x13, 0x52, 0xe1, 0xd1, 0x40, 0xd9, 0xdb, 0xa2, 0x01, 0x39, 0x1d, 0xc1, 0x9b, 0xb1, - 0x45, 0xe7, 0x60, 0xc0, 0x02, 0x5d, 0xc7, 0x7d, 0xd5, 0x1f, 0xe3, 0x33, 0x71, 0x0e, 0x06, 0x2c, - 0xa8, 0x19, 0x83, 0x45, 0x97, 0x7f, 0xd4, 0x1f, 0xdf, 0xa4, 0xd9, 0xa3, 0x2a, 0xa4, 0x07, 0xbc, - 0x3b, 0x6a, 0x6d, 0xce, 0xbb, 0x3d, 0x11, 0xf4, 0x58, 0xb3, 0xb0, 0xe1, 0x9a, 0x10, 0xfb, 0x4c, - 0x37, 0x32, 0x8f, 0x0a, 0xc5, 0x8e, 0x99, 0x47, 0xd4, 0xa8, 0xc1, 0xae, 0xc4, 0x96, 0x9d, 0x89, - 0x41, 0xe7, 0x31, 0x14, 0x6c, 0x48, 0x14, 0xd5, 0x55, 0xd2, 0x04, 0x69, 0x01, 0x83, 0x5d, 0x7a, - 0x4a, 0xcf, 0x74, 0x41, 0xf0, 0xc8, 0xb4, 0xaf, 0x38, 0xd9, 0x0b, 0x38, 0xef, 0x91, 0x29, 0x47, - 0x52, 0x77, 0x00, 0x19, 0x75, 0x74, 0x3c, 0x5c, 0xe2, 0x2b, 0xd3, 0xc3, 0xe2, 0x77, 0xea, 0x02, - 0x5e, 0xb6, 0x86, 0x6d, 0x5f, 0xe9, 0x16, 0x26, 0xf5, 0x53, 0x40, 0x06, 0xac, 0x98, 0x8d, 0x9f, - 0x02, 0x32, 0x60, 0xe5, 0xc7, 0x70, 0xcd, 0xde, 0x03, 0xe5, 0xe0, 0xda, 0xee, 0x7e, 0x6b, 0xbb, - 0x5a, 0xdf, 0x2b, 0xcc, 0xe9, 0x4a, 0xdc, 0xda, 0x3f, 0x68, 0xd6, 0xf7, 0xe2, 0xaa, 0x7c, 0x70, - 0xd4, 0x3e, 0xda, 0xae, 0x17, 0x92, 0xa8, 0x00, 0x8b, 0xfb, 0xad, 0xf6, 0x7e, 0xc3, 0xb5, 0x2b, - 0xa9, 0xaa, 0xf3, 0xc3, 0xab, 0xb5, 0xc4, 0x4f, 0xaf, 0xd6, 0x12, 0xbf, 0xbd, 0x5a, 0x4b, 0x3c, - 0x5b, 0x8f, 0x63, 0xc7, 0x78, 0x85, 0x84, 0xac, 0x72, 0xc1, 0x1f, 0x5e, 0x27, 0x6b, 0x14, 0x70, - 0xef, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x37, 0xf8, 0x6b, 0x20, 0x91, 0x0e, 0x00, 0x00, + // 1506 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcf, 0x6f, 0x1b, 0x37, + 0x16, 0xb6, 0x7e, 0x58, 0xb6, 0x9f, 0x6c, 0x59, 0xe6, 0x7a, 0xb3, 0x8a, 0x16, 0x70, 0x1c, 0x61, + 0xb1, 0xf1, 0x66, 0x37, 0xa3, 0xb5, 0x83, 0x00, 0x69, 0x82, 0x14, 0xb1, 0x6c, 0x21, 0x72, 0x23, + 0x5b, 0x02, 0x25, 0xa3, 0x45, 0x80, 0x62, 0x40, 0x8d, 0x68, 0x89, 0xf1, 0x68, 0x38, 0x1d, 0x72, + 0x14, 0x3b, 0x97, 0xfe, 0x03, 0x3d, 0x07, 0xbd, 0xf6, 0x4f, 0xe9, 0xad, 0xe8, 0xa9, 0xd7, 0xf6, + 0xd2, 0x22, 0xd7, 0x1e, 0x7a, 0xea, 0xa5, 0x87, 0xa2, 0x20, 0x87, 0x23, 0xc9, 0x89, 0x62, 0xc7, + 0x48, 0x72, 0xe3, 0xf0, 0x7d, 0xdf, 0x23, 0xf9, 0xde, 0xc7, 0xc7, 0x37, 0x70, 0xd3, 0xa3, 0xf2, + 0x19, 0x0f, 0x8e, 0x99, 0xd7, 0x2b, 0x0f, 0x37, 0x89, 0xeb, 0xf7, 0xc9, 0xed, 0x72, 0x97, 0x0a, + 0xc9, 0x3c, 0x22, 0x19, 0xf7, 0xec, 0x20, 0x74, 0xa9, 0xe5, 0x07, 0x5c, 0x72, 0x74, 0x95, 0x09, + 0xc9, 0xb8, 0x35, 0x66, 0x58, 0x31, 0xa3, 0xb8, 0xd6, 0xe3, 0xbc, 0xe7, 0xd2, 0xb2, 0x06, 0x76, + 0xc2, 0xa3, 0x72, 0x37, 0x0c, 0x34, 0x3f, 0xa2, 0x16, 0xff, 0x33, 0x6d, 0x99, 0x21, 0x0b, 0x64, + 0x48, 0x5c, 0x5b, 0xd0, 0x60, 0xc8, 0x1c, 0xb3, 0x4a, 0xf1, 0xfa, 0x34, 0xa8, 0x60, 0x5d, 0xea, + 0x90, 0xc0, 0x40, 0x56, 0x7b, 0xbc, 0xc7, 0xf5, 0xb0, 0xac, 0x46, 0xd1, 0x6c, 0xe9, 0xcf, 0x04, + 0x2c, 0xef, 0x8e, 0x77, 0x8e, 0x43, 0x97, 0x22, 0x04, 0xe9, 0x3e, 0x17, 0xb2, 0x90, 0x58, 0x4f, + 0x6c, 0x2c, 0x60, 0x3d, 0x46, 0x0d, 0xc8, 0xc9, 0x80, 0x1c, 0x1d, 0x31, 0xc7, 0xf6, 0xb9, 0xcb, + 0x9c, 0xd3, 0x42, 0x72, 0x3d, 0xb1, 0x91, 0xdd, 0xda, 0xb0, 0xde, 0x78, 0x3e, 0xab, 0x1d, 0x11, + 0x9a, 0x1a, 0x8f, 0x97, 0xe4, 0xe4, 0x27, 0xba, 0x0f, 0x73, 0x22, 0xec, 0x08, 0x2a, 0x45, 0x21, + 0xb5, 0x9e, 0xda, 0xc8, 0x6e, 0x5d, 0x3f, 0xc7, 0x53, 0x4b, 0x23, 0x71, 0xcc, 0x40, 0x7b, 0xb0, + 0xe8, 0x70, 0xef, 0x88, 0xf5, 0x6c, 0xe1, 0x70, 0x9f, 0x16, 0xd2, 0xeb, 0x89, 0x8d, 0xdc, 0xd6, + 0xbf, 0xcf, 0xf1, 0xb0, 0xa3, 0xe1, 0x2d, 0x85, 0xc6, 0x59, 0x67, 0xfc, 0x51, 0xfa, 0x29, 0x03, + 0x4b, 0x67, 0x36, 0x8a, 0xda, 0xb0, 0xe4, 0x72, 0xd2, 0xb5, 0x3b, 0xc4, 0x25, 0x9e, 0x43, 0x03, + 0x1d, 0x87, 0xec, 0x56, 0xf9, 0x1c, 0xef, 0x75, 0x4e, 0xba, 0x15, 0x03, 0x6f, 0x51, 0x29, 0x99, + 0xd7, 0x13, 0x78, 0xd1, 0x9d, 0x98, 0x45, 0x4f, 0x60, 0xd9, 0xe1, 0x9e, 0x47, 0x1d, 0x2d, 0x10, + 0x9f, 0x73, 0xd7, 0x44, 0x70, 0xf3, 0xfc, 0x5d, 0x1b, 0x46, 0x93, 0x73, 0x77, 0xe4, 0x39, 0xe7, + 0x9c, 0x99, 0x47, 0x9f, 0xc1, 0x0a, 0x0f, 0xa5, 0xcb, 0x68, 0x60, 0x77, 0xa9, 0x8c, 0x0c, 0x85, + 0x94, 0xf6, 0xfe, 0xdf, 0x73, 0xbc, 0x37, 0x22, 0xce, 0x6e, 0x4c, 0xc1, 0x79, 0xfe, 0xca, 0x0c, + 0xba, 0x0b, 0x29, 0xe9, 0x0a, 0x1d, 0xdf, 0xec, 0xb9, 0xf1, 0x6d, 0xd7, 0x5b, 0xa3, 0xed, 0x29, + 0x0a, 0x7a, 0x0a, 0x7f, 0xf3, 0x79, 0x20, 0x6d, 0x97, 0x0e, 0xa9, 0x52, 0x6b, 0x64, 0x2b, 0xcc, + 0xea, 0x5c, 0xdf, 0x7b, 0x5b, 0xd5, 0x58, 0x4d, 0x1e, 0xc8, 0xb3, 0x3a, 0x5a, 0x51, 0x6e, 0xeb, + 0xca, 0x6b, 0xbc, 0x60, 0xf1, 0x45, 0x0a, 0x56, 0x5e, 0x03, 0xa2, 0xfb, 0x90, 0x56, 0x50, 0x93, + 0xbe, 0x1b, 0xe7, 0x2c, 0xa9, 0xb8, 0x2d, 0xea, 0x52, 0x47, 0xf2, 0x00, 0x6b, 0xd2, 0xeb, 0x22, + 0x48, 0x7e, 0x20, 0x11, 0xa4, 0x3e, 0xa8, 0x08, 0xd2, 0xef, 0x51, 0x04, 0xb3, 0x97, 0x16, 0x41, + 0xe9, 0xb7, 0x04, 0x64, 0xa2, 0xbb, 0xab, 0x8a, 0x8a, 0x47, 0x06, 0x34, 0x2e, 0x2a, 0x6a, 0x8c, + 0xaa, 0x90, 0x71, 0x49, 0x87, 0xba, 0xa2, 0x90, 0xd4, 0xb2, 0xb8, 0x75, 0x61, 0x09, 0xb0, 0xea, + 0x1a, 0x5f, 0xf5, 0x64, 0x70, 0x8a, 0x0d, 0x79, 0x4a, 0x6d, 0x4a, 0xbd, 0x53, 0x6d, 0x2a, 0x7e, + 0x04, 0xd9, 0x89, 0x75, 0x50, 0x1e, 0x52, 0xc7, 0xf4, 0xd4, 0xec, 0x5c, 0x0d, 0xd1, 0x2a, 0xcc, + 0x0e, 0x89, 0x1b, 0x52, 0xad, 0x8a, 0x05, 0x1c, 0x7d, 0xdc, 0x4b, 0xde, 0x4d, 0x94, 0x7e, 0x9d, + 0x83, 0xd5, 0x69, 0x42, 0x40, 0x18, 0x32, 0x82, 0x0d, 0x7c, 0x37, 0x8a, 0x40, 0x6e, 0xeb, 0xee, + 0x25, 0x95, 0x64, 0xb5, 0x34, 0xbb, 0x5e, 0xa9, 0xcd, 0x60, 0xe3, 0x09, 0x1d, 0x6b, 0x39, 0x09, + 0x26, 0x24, 0xf5, 0xa4, 0xdd, 0x27, 0xa2, 0x6f, 0x64, 0xfa, 0xf0, 0xb2, 0xce, 0x77, 0x46, 0x6e, + 0x6a, 0x44, 0xf4, 0xf5, 0x22, 0x39, 0xe7, 0xcc, 0x1c, 0xfa, 0x12, 0x0a, 0x2e, 0x77, 0x88, 0xcb, + 0xe4, 0xa9, 0xfd, 0x8c, 0xb2, 0x5e, 0x5f, 0x8e, 0x6f, 0x75, 0x54, 0xc1, 0xab, 0x97, 0x5d, 0xb5, + 0x6e, 0xfc, 0x7d, 0xaa, 0xdd, 0x99, 0x69, 0x7c, 0xc5, 0x9d, 0x36, 0x2d, 0x8a, 0xbf, 0x27, 0x21, + 0xff, 0xea, 0x3e, 0xd1, 0x4d, 0xc8, 0xf7, 0xa5, 0xf4, 0xed, 0x3e, 0x25, 0x5d, 0x1a, 0xd8, 0x63, + 0x89, 0xa9, 0x13, 0x28, 0x4b, 0x4d, 0x1b, 0x0e, 0x94, 0xdc, 0x3c, 0xc8, 0x6a, 0xac, 0xc3, 0xf9, + 0x31, 0xa3, 0x26, 0x54, 0x8f, 0xdf, 0x35, 0x54, 0x56, 0xad, 0xdd, 0x6e, 0xee, 0x68, 0x97, 0xb5, + 0x19, 0x0c, 0x6a, 0x85, 0xe8, 0x0b, 0xfd, 0x0b, 0x96, 0x42, 0x41, 0x6d, 0xc1, 0xc3, 0xc0, 0xa1, + 0x36, 0xf3, 0xb5, 0x2c, 0xe7, 0x6b, 0x33, 0x38, 0x1b, 0x0a, 0xda, 0xd2, 0xb3, 0x7b, 0x3e, 0xba, + 0x09, 0x2b, 0x03, 0xe6, 0xb1, 0x41, 0x38, 0xb0, 0x03, 0xe6, 0xf5, 0x6c, 0xc1, 0x9e, 0x47, 0x0f, + 0x5a, 0x1a, 0x2f, 0x1b, 0x03, 0x66, 0x5e, 0xaf, 0xc5, 0x9e, 0xd3, 0x62, 0x0f, 0x60, 0xbc, 0xda, + 0xd4, 0x2b, 0x85, 0x20, 0xed, 0x13, 0xd9, 0x37, 0xc2, 0xd4, 0x63, 0xb4, 0x09, 0x29, 0x29, 0xe3, + 0x4a, 0x73, 0xd5, 0x8a, 0xba, 0x0e, 0x2b, 0xee, 0x3a, 0xac, 0x5d, 0xd3, 0x75, 0x54, 0xd2, 0x5f, + 0xff, 0x7c, 0x2d, 0x81, 0x15, 0xb6, 0x02, 0x30, 0xaf, 0xe4, 0x64, 0x1f, 0xd3, 0xd3, 0xe2, 0xb7, + 0x09, 0xf8, 0xfb, 0xd4, 0x4c, 0xa9, 0xc5, 0x8e, 0x02, 0x3e, 0x88, 0x37, 0xa0, 0xc6, 0xe8, 0x73, + 0x48, 0x4a, 0x6e, 0xee, 0xf3, 0xfe, 0x7b, 0x11, 0x84, 0xd5, 0xe6, 0xd1, 0x7d, 0x4f, 0x4a, 0x5e, + 0xbc, 0x03, 0x73, 0xe6, 0xf3, 0xa2, 0x6b, 0xb9, 0x34, 0x79, 0x2d, 0x6b, 0x30, 0x1f, 0xdf, 0x1f, + 0xb4, 0x0c, 0x59, 0xdc, 0x38, 0x3c, 0xd8, 0xb5, 0x71, 0xa3, 0xb2, 0x77, 0x90, 0x9f, 0x41, 0x39, + 0x80, 0x7a, 0x75, 0xbb, 0xd5, 0xb6, 0x77, 0x1a, 0x07, 0x07, 0xf9, 0x04, 0x02, 0xc8, 0xe0, 0xed, + 0x83, 0xdd, 0xc6, 0x7e, 0x3e, 0xa9, 0xc0, 0xcd, 0xed, 0x56, 0xab, 0x5d, 0xc3, 0x8d, 0xc3, 0x47, + 0xb5, 0x7c, 0xaa, 0x92, 0x85, 0x05, 0xb7, 0x63, 0xea, 0x4c, 0xe9, 0x45, 0x06, 0xae, 0x4c, 0x2f, + 0xcf, 0xa8, 0x01, 0x29, 0xe9, 0xf8, 0xe6, 0xf1, 0x79, 0x70, 0xe9, 0xf2, 0x6e, 0xb5, 0x77, 0x9a, + 0x13, 0xb5, 0xd4, 0xf1, 0x11, 0x86, 0xb4, 0xd2, 0x96, 0x91, 0xed, 0xc7, 0x97, 0xf7, 0xa8, 0x94, + 0x33, 0x72, 0xa9, 0x7d, 0x15, 0xff, 0x48, 0x42, 0x76, 0x62, 0x21, 0x74, 0x03, 0x96, 0x07, 0xe4, + 0xc4, 0x1e, 0xbf, 0x2c, 0x42, 0x1f, 0x60, 0x16, 0xe7, 0x06, 0xe4, 0x64, 0xec, 0x56, 0xa0, 0xca, + 0xe8, 0x21, 0xb3, 0x25, 0x1b, 0x50, 0x1e, 0x4a, 0xb3, 0xaf, 0x37, 0xcb, 0x6b, 0xf4, 0x60, 0xb5, + 0x23, 0x02, 0xe2, 0xb0, 0x24, 0x1d, 0xdf, 0x3e, 0xa6, 0xd4, 0x27, 0x2e, 0x1b, 0x52, 0x23, 0xd0, + 0x4f, 0xde, 0x29, 0x56, 0x56, 0xdb, 0xf1, 0x1f, 0xc7, 0x1e, 0xf1, 0xa2, 0x9c, 0xf8, 0x2a, 0x7e, + 0x95, 0x80, 0xc5, 0x49, 0x33, 0xba, 0x02, 0x19, 0x3f, 0xe0, 0x1d, 0x1a, 0x9d, 0x72, 0x09, 0x9b, + 0x2f, 0x74, 0x0b, 0xd2, 0xea, 0x54, 0x17, 0x1f, 0x49, 0xc3, 0xd0, 0x1d, 0x98, 0x67, 0x9e, 0xa4, + 0xc1, 0x90, 0x5c, 0x7c, 0xc9, 0xf0, 0x08, 0x5a, 0xfc, 0x31, 0x01, 0x8b, 0x93, 0x39, 0x41, 0xf7, + 0xa1, 0xa8, 0xb2, 0xb2, 0x69, 0xab, 0x1c, 0xf8, 0xd4, 0xeb, 0xaa, 0x72, 0x10, 0xd0, 0x2f, 0x42, + 0x2a, 0x64, 0x9c, 0x88, 0x7f, 0x68, 0xc4, 0x3e, 0x39, 0x69, 0x46, 0x76, 0x6c, 0xcc, 0xe8, 0x7f, + 0x80, 0x94, 0x69, 0x4b, 0x93, 0x47, 0xa4, 0xa4, 0x26, 0xe9, 0x12, 0xb9, 0xb5, 0x4f, 0x4e, 0x46, + 0xe8, 0x07, 0xf0, 0xcf, 0x49, 0x9c, 0xed, 0xd3, 0x60, 0x22, 0xeb, 0xfa, 0x14, 0xb3, 0xb8, 0x30, + 0x18, 0x33, 0x9a, 0x34, 0x18, 0x07, 0x1f, 0x5d, 0x83, 0x6c, 0x44, 0x97, 0x01, 0xa3, 0x51, 0x7b, + 0x38, 0x8b, 0x41, 0xc3, 0xf5, 0x4c, 0xe9, 0x9b, 0x24, 0xe4, 0x5f, 0xed, 0x2c, 0xd0, 0x2d, 0x40, + 0xea, 0x4d, 0xa1, 0x4e, 0x28, 0xd9, 0x90, 0xda, 0x34, 0x08, 0x78, 0x10, 0x9f, 0x6b, 0x65, 0xc2, + 0x52, 0xd5, 0x86, 0x33, 0x61, 0x4d, 0xbe, 0x75, 0x58, 0xd1, 0x23, 0x40, 0x1d, 0x22, 0xa8, 0x4d, + 0x9f, 0x9a, 0x36, 0x4b, 0xa7, 0xf2, 0xc2, 0xbc, 0xe4, 0x15, 0xa9, 0x6a, 0x38, 0x4a, 0xa2, 0xe8, + 0xff, 0xb0, 0xaa, 0x0e, 0x39, 0xf2, 0xe3, 0xd3, 0xc0, 0xa1, 0x9e, 0x34, 0xa7, 0x45, 0x03, 0x72, + 0x12, 0xc3, 0x9b, 0x91, 0x45, 0xe5, 0x60, 0xc0, 0x3c, 0xf5, 0x16, 0xb9, 0xb2, 0x3f, 0xc2, 0xcf, + 0x46, 0x39, 0x18, 0x30, 0xaf, 0xa6, 0x0d, 0x06, 0x5d, 0xfa, 0x5e, 0x5d, 0xbe, 0x71, 0xc7, 0x84, + 0x2a, 0x90, 0x1e, 0xf0, 0x6e, 0xdc, 0x1f, 0x58, 0x6f, 0xd7, 0x67, 0xa9, 0xb1, 0x62, 0x61, 0xcd, + 0xd5, 0x21, 0x76, 0x99, 0xea, 0x06, 0x1c, 0x1a, 0x48, 0x76, 0xc4, 0x1c, 0x22, 0xe3, 0x2e, 0x65, + 0x25, 0xb2, 0xec, 0x8c, 0x0d, 0x2a, 0x8f, 0x7e, 0xc0, 0x86, 0x44, 0x52, 0x55, 0xe9, 0x75, 0x90, + 0x16, 0x30, 0x98, 0xa9, 0xc7, 0xf4, 0x54, 0x15, 0x04, 0x87, 0x4c, 0xfa, 0x8a, 0x92, 0xbd, 0x80, + 0x73, 0x0e, 0x99, 0x70, 0x24, 0xd4, 0x2b, 0x26, 0xc2, 0x8e, 0x8a, 0x87, 0x4d, 0x5c, 0xa9, 0xdf, + 0xe1, 0xa8, 0xd9, 0x5f, 0xc0, 0xcb, 0xc6, 0xb0, 0xed, 0x4a, 0xf5, 0x0c, 0x0b, 0x55, 0xb8, 0x85, + 0xc7, 0x0a, 0x99, 0xa8, 0x70, 0x0b, 0x8f, 0x95, 0x1e, 0xc2, 0x9c, 0x39, 0x07, 0xca, 0xc2, 0xdc, + 0xee, 0x5e, 0x6b, 0xbb, 0x52, 0xaf, 0xe6, 0x67, 0x54, 0x25, 0x6e, 0xed, 0xed, 0x37, 0xeb, 0xd5, + 0xa8, 0x2a, 0xef, 0x1f, 0xb6, 0x0f, 0xb7, 0xeb, 0xf9, 0x24, 0xca, 0xc3, 0xe2, 0x5e, 0xab, 0xbd, + 0xd7, 0xb0, 0xcd, 0x4c, 0xaa, 0x62, 0x7d, 0xf7, 0x72, 0x2d, 0xf1, 0xc3, 0xcb, 0xb5, 0xc4, 0x2f, + 0x2f, 0xd7, 0x12, 0x4f, 0xd6, 0xa3, 0xd8, 0x31, 0x5e, 0x26, 0x3e, 0x2b, 0x4f, 0xf9, 0x37, 0xee, + 0x64, 0xb4, 0x02, 0x6e, 0xff, 0x15, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xbb, 0x7b, 0xfa, 0xcb, 0x0f, + 0x00, 0x00, } diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto index 9e85b5223b..757bca7c73 100644 --- a/networking/v1alpha3/destination_rule.proto +++ b/networking/v1alpha3/destination_rule.proto @@ -15,7 +15,7 @@ syntax = "proto3"; import "google/protobuf/duration.proto"; import "networking/v1alpha3/virtual_service.proto"; -import "networking/v1alpha3/service_dependency.proto"; +import "networking/v1alpha3/sidecar.proto"; import "gogoproto/gogo.proto"; package istio.networking.v1alpha3; @@ -263,6 +263,32 @@ message Subset { // name: user // ttl: 0s // ``` +// +// The following example sets up locality weight for the ratings service +// Assume ratings service resides in "region1/zone1/*" and "region1/zone2/*", +// and originating clusters also reside in "region1/zone1/*" and "region1/zone2/*". +// This example specifies when clusters from "region1/zone1/*" accessing ratings service, 80% of the traffic +// is shipped to "region1/zone1/*" ratings service endpoints, and the rest 20% to "region1/zone2/*". +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: DestinationRule +// metadata: +// name: bookinfo-ratings +// spec: +// host: ratings.prod.svc.cluster.local +// trafficPolicy: +// loadBalancer: +// localityWeightSettings: +// - from: region1/zone1/* +// to: +// "region1/zone1/*": 80 +// "region1/zone2/*": 20 +// - from: region1/zone2/* +// to: +// "region1/zone1/*": 20 +// "region1/zone2/*": 80 +// ``` message LoadBalancerSettings { // Standard load balancing algorithms that require no tuning. enum SimpleLB { @@ -326,6 +352,19 @@ message LoadBalancerSettings { uint64 minimum_ring_size = 4; }; + // Originating -> upstream cluster locality weight set, support wildcard matching '*' + // '*' matches all localities + // 'region1/*' matches all zones in region1 + message LocalityWeightSetting{ + // Originating locality, '/' separated, e.g. 'region/zone/sub_zone'. + string from = 1; + + // Upstream locality to loadbalancing weight map. The sum of all weights should be == 100. + // Should assign loadbalancing weight for all localities, otherwise the traffic are not routed + // following the percentage of weight. + map to = 2; + }; + // (-- TODO: Enable Subset load balancing after moving to v2 API Also // look into enabling Priotity based load balancing for spilling over // from one priority pool to another. --) @@ -335,6 +374,12 @@ message LoadBalancerSettings { SimpleLB simple = 1; ConsistentHashLB consistent_hash = 2; } + + // Explicitly assign loadbalancing weight across different zones and geographical locations. + // Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/load_balancing.html?highlight=load_balancing_weight#locality-weighted-load-balancing) + // If empty, the locality weight is set according to the endpoints number within it. + // If duplicated settings are present, then the first one will take effect. + repeated LocalityWeightSetting locality_weight_settings = 3; } // Connection pool settings for an upstream host. The settings apply to diff --git a/networking/v1alpha3/gateway.pb.go b/networking/v1alpha3/gateway.pb.go index 2ae532566e..37c3bcf532 100644 --- a/networking/v1alpha3/gateway.pb.go +++ b/networking/v1alpha3/gateway.pb.go @@ -237,10 +237,10 @@ type Gateway struct { // REQUIRED: A list of server specifications. Servers []*Server `protobuf:"bytes,1,rep,name=servers" json:"servers,omitempty"` // REQUIRED: One or more labels that indicate a specific set of pods/VMs - // on which this gateway configuration should be applied. - // The scope of label search is platform dependent. - // On Kubernetes, for example, the scope includes pods running in - // all reachable namespaces. + // on which this gateway configuration should be applied. The scope of + // label search is restricted to the configuration namespace in which the + // the resource is present. In other words, the Gateway resource must + // reside in the same namespace as the gateway workload. Selector map[string]string `protobuf:"bytes,2,rep,name=selector" json:"selector,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } @@ -326,8 +326,14 @@ func (m *Gateway) GetSelector() map[string]string { // ``` type Server struct { // REQUIRED: The Port on which the proxy should listen for incoming - // connections + // connections. If using unix domain socket, use 0 as the port number, + // with a valid protocol and port name, along with the bind parameter. Port *Port `protobuf:"bytes,1,opt,name=port" json:"port,omitempty"` + // $hide_from_docs + // The ip or the unix domain socket to which the listener should be bound + // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux + // abstract namespace). + Bind string `protobuf:"bytes,4,opt,name=bind,proto3" json:"bind,omitempty"` // REQUIRED. A list of hosts exposed by this gateway. At least one // host is required. While typically applicable to // HTTP services, it can also be used for TCP services using TLS with @@ -347,6 +353,10 @@ type Server struct { // these options to control if all http requests should be redirected to // https, and the TLS modes to use. Tls *Server_TLSOptions `protobuf:"bytes,3,opt,name=tls" json:"tls,omitempty"` + // The loopback IP endpoint or unix domain socket to which traffic should + // be forwarded to by default. Format should be 127.0.0.1:PORT or + // unix:///path/to/socket or unix://@foobar (Linux abstract namespace). + DefaultEndpoint string `protobuf:"bytes,5,opt,name=default_endpoint,json=defaultEndpoint,proto3" json:"default_endpoint,omitempty"` } func (m *Server) Reset() { *m = Server{} } @@ -361,6 +371,13 @@ func (m *Server) GetPort() *Port { return nil } +func (m *Server) GetBind() string { + if m != nil { + return m.Bind + } + return "" +} + func (m *Server) GetHosts() []string { if m != nil { return m.Hosts @@ -375,6 +392,13 @@ func (m *Server) GetTls() *Server_TLSOptions { return nil } +func (m *Server) GetDefaultEndpoint() string { + if m != nil { + return m.DefaultEndpoint + } + return "" +} + type Server_TLSOptions struct { // If set to true, the load balancer will send a 301 redirect for all // http connections, asking the clients to use HTTPS. @@ -617,6 +641,18 @@ func (m *Server) MarshalTo(dAtA []byte) (int, error) { } i += n2 } + if len(m.Bind) > 0 { + dAtA[i] = 0x22 + i++ + i = encodeVarintGateway(dAtA, i, uint64(len(m.Bind))) + i += copy(dAtA[i:], m.Bind) + } + if len(m.DefaultEndpoint) > 0 { + dAtA[i] = 0x2a + i++ + i = encodeVarintGateway(dAtA, i, uint64(len(m.DefaultEndpoint))) + i += copy(dAtA[i:], m.DefaultEndpoint) + } return i, nil } @@ -792,6 +828,14 @@ func (m *Server) Size() (n int) { l = m.Tls.Size() n += 1 + l + sovGateway(uint64(l)) } + l = len(m.Bind) + if l > 0 { + n += 1 + l + sovGateway(uint64(l)) + } + l = len(m.DefaultEndpoint) + if l > 0 { + n += 1 + l + sovGateway(uint64(l)) + } return n } @@ -1190,6 +1234,64 @@ func (m *Server) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGateway + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGateway + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultEndpoint", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGateway + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGateway + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultEndpoint = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGateway(dAtA[iNdEx:]) @@ -1718,44 +1820,47 @@ var ( func init() { proto.RegisterFile("networking/v1alpha3/gateway.proto", fileDescriptorGateway) } var fileDescriptorGateway = []byte{ - // 623 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x5d, 0x4f, 0xdb, 0x3c, - 0x18, 0x25, 0x6d, 0xe9, 0xc7, 0x53, 0x0a, 0xc1, 0x42, 0xaf, 0xf2, 0x72, 0xc1, 0x47, 0xa7, 0x69, - 0x68, 0xda, 0x52, 0x68, 0x77, 0x81, 0x86, 0x34, 0xa9, 0x9b, 0x10, 0x9d, 0x56, 0x68, 0xe5, 0xb4, - 0x5c, 0xec, 0x26, 0x32, 0xc1, 0xa3, 0x86, 0x34, 0x8e, 0x6c, 0xb7, 0xd0, 0xbf, 0xb6, 0x5f, 0xb0, - 0x4b, 0xf6, 0x0f, 0x26, 0x7e, 0xc9, 0x64, 0x27, 0xa5, 0xdd, 0x17, 0x13, 0xda, 0x9d, 0xcf, 0xf1, - 0x39, 0xe7, 0xf1, 0xf3, 0xd8, 0x09, 0x6c, 0x47, 0x54, 0x5d, 0x73, 0x71, 0xc5, 0xa2, 0x8b, 0xda, - 0x78, 0x8f, 0x84, 0xf1, 0x80, 0x34, 0x6a, 0x17, 0x44, 0xd1, 0x6b, 0x32, 0x71, 0x63, 0xc1, 0x15, - 0x47, 0xff, 0x33, 0xa9, 0x18, 0x77, 0x67, 0x42, 0x77, 0x2a, 0xac, 0x7e, 0xb5, 0xa0, 0x70, 0x94, - 0x88, 0xd1, 0x01, 0x14, 0x24, 0x15, 0x63, 0x2a, 0xa4, 0x63, 0x6d, 0x65, 0x77, 0xca, 0xf5, 0x6d, - 0xf7, 0x8f, 0x46, 0xd7, 0x33, 0x4a, 0x3c, 0x75, 0xa0, 0x36, 0x14, 0x25, 0x0d, 0x69, 0xa0, 0xb8, - 0x70, 0x32, 0xc6, 0xbd, 0xfb, 0x80, 0x3b, 0x2d, 0xe9, 0x7a, 0xa9, 0xe5, 0x30, 0x52, 0x62, 0x82, - 0xef, 0x13, 0xd6, 0x0f, 0xa0, 0xf2, 0xc3, 0x16, 0xb2, 0x21, 0x7b, 0x45, 0x27, 0x8e, 0xb5, 0x65, - 0xed, 0x94, 0xb0, 0x5e, 0xa2, 0x35, 0x58, 0x1c, 0x93, 0x70, 0x44, 0x9d, 0x8c, 0xe1, 0x12, 0xf0, - 0x3a, 0xb3, 0x6f, 0x55, 0x6f, 0xf3, 0x90, 0x4f, 0x8e, 0x87, 0x1a, 0x90, 0x8b, 0xb9, 0x50, 0xc6, - 0x57, 0xae, 0x6f, 0x3e, 0x70, 0xa2, 0x2e, 0x17, 0x0a, 0x1b, 0xb1, 0x4e, 0x1e, 0x70, 0xa9, 0xa4, - 0xe9, 0xa3, 0x84, 0x13, 0x80, 0xde, 0x40, 0x56, 0x85, 0xd2, 0xc9, 0x9a, 0xa4, 0x17, 0x7f, 0x9d, - 0x8c, 0xdb, 0x6b, 0x7b, 0x9d, 0x58, 0x31, 0x1e, 0x49, 0xac, 0x8d, 0xeb, 0x9f, 0x17, 0x01, 0x66, - 0x1c, 0x7a, 0x0a, 0xcb, 0x03, 0xa5, 0x62, 0xe9, 0x0b, 0x7a, 0xce, 0x04, 0x0d, 0x92, 0x33, 0x16, - 0x71, 0xc5, 0xb0, 0x38, 0x25, 0x51, 0x0b, 0x72, 0x43, 0x7e, 0x9e, 0x34, 0xb9, 0x5c, 0x7f, 0xf5, - 0x98, 0xb2, 0x7a, 0xa9, 0xbd, 0xd8, 0x24, 0xa0, 0x97, 0x80, 0x92, 0xbb, 0xf2, 0x03, 0x2a, 0x14, - 0xfb, 0xc4, 0x02, 0xa2, 0xa8, 0x69, 0xa7, 0x84, 0x57, 0x93, 0x9d, 0x77, 0xb3, 0x0d, 0xb4, 0x09, - 0xe5, 0x58, 0xb0, 0x31, 0x51, 0xd4, 0xd7, 0x83, 0xcf, 0x19, 0x1d, 0xa4, 0xd4, 0x07, 0x3a, 0x41, - 0xcf, 0x60, 0x25, 0x20, 0xf3, 0x59, 0xd2, 0x59, 0x34, 0xa2, 0xe5, 0x80, 0xcc, 0x05, 0x49, 0xf4, - 0x1c, 0x56, 0xe5, 0xe8, 0xec, 0x92, 0x06, 0xca, 0x27, 0xa1, 0xf2, 0x23, 0x32, 0xa4, 0xd2, 0xc9, - 0x9b, 0xd1, 0xae, 0xa4, 0x1b, 0xcd, 0x50, 0x9d, 0x68, 0x1a, 0x5d, 0xc2, 0xda, 0x90, 0x45, 0xbe, - 0x79, 0xb6, 0x01, 0x0f, 0x7d, 0xfd, 0xb4, 0x18, 0x8f, 0x9c, 0x82, 0x69, 0x7f, 0xff, 0xb1, 0xed, - 0x77, 0xd3, 0x1c, 0x8c, 0x86, 0x2c, 0x9a, 0x82, 0xd3, 0x24, 0xd3, 0xd4, 0x22, 0x37, 0xbf, 0xd6, - 0x2a, 0xfe, 0x73, 0x2d, 0x72, 0xf3, 0x73, 0xad, 0x27, 0x50, 0x09, 0x58, 0x3c, 0xa0, 0xc2, 0x97, - 0x23, 0xa6, 0x47, 0x55, 0x32, 0xfd, 0x2f, 0x25, 0xa4, 0x67, 0xb8, 0x6a, 0x0b, 0x0a, 0xe9, 0x95, - 0xa1, 0x15, 0x28, 0x77, 0x9b, 0x9e, 0xd7, 0x6b, 0xe1, 0x4e, 0xff, 0xa8, 0x65, 0x2f, 0x20, 0x80, - 0xbc, 0xf7, 0xfe, 0xb8, 0xdb, 0x3e, 0xb4, 0x2d, 0xbd, 0x3e, 0xee, 0xf7, 0xfa, 0xcd, 0xb6, 0x9d, - 0x41, 0x6b, 0x60, 0x37, 0xfb, 0xbd, 0x8e, 0x3f, 0xaf, 0xce, 0x56, 0x3b, 0x50, 0x9e, 0x3b, 0x11, - 0x5a, 0x82, 0x62, 0xaf, 0xed, 0xf9, 0x5a, 0x68, 0x2f, 0xa0, 0xb2, 0x29, 0x73, 0xba, 0xe7, 0xef, - 0xda, 0xd6, 0x0c, 0xec, 0xd9, 0x99, 0x19, 0xa8, 0xdb, 0xd9, 0x19, 0x68, 0xd8, 0xb9, 0xea, 0x09, - 0xe4, 0xf4, 0x07, 0x82, 0xfe, 0x83, 0x7c, 0x34, 0x1a, 0x9e, 0x51, 0x61, 0x5e, 0x6b, 0x05, 0xa7, - 0x08, 0xad, 0x43, 0x71, 0x3a, 0xc7, 0xf4, 0x7b, 0xbc, 0xc7, 0x08, 0x41, 0x4e, 0xdf, 0x79, 0xfa, - 0xd4, 0xcc, 0xfa, 0xad, 0xfb, 0xe5, 0x6e, 0xc3, 0xba, 0xbd, 0xdb, 0xb0, 0xbe, 0xdd, 0x6d, 0x58, - 0x1f, 0xb7, 0x92, 0x51, 0x33, 0x5e, 0x23, 0x31, 0xab, 0xfd, 0xe6, 0x7f, 0x76, 0x96, 0x37, 0x69, - 0x8d, 0xef, 0x01, 0x00, 0x00, 0xff, 0xff, 0x60, 0xb9, 0xea, 0xae, 0xed, 0x04, 0x00, 0x00, + // 657 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xcb, 0x4e, 0xdb, 0x4c, + 0x14, 0xc6, 0x49, 0xc8, 0xe5, 0x84, 0x10, 0x33, 0x42, 0xbf, 0xfc, 0xb3, 0xe0, 0x92, 0xaa, 0x2a, + 0xad, 0x5a, 0x07, 0x92, 0x2e, 0x50, 0x91, 0x2a, 0xa5, 0x15, 0x22, 0x55, 0x03, 0x89, 0xec, 0x84, + 0x45, 0x37, 0xd6, 0xc4, 0x19, 0xc8, 0x80, 0xe3, 0xb1, 0x66, 0x26, 0x81, 0x3c, 0x45, 0xdf, 0xa7, + 0x4f, 0xd0, 0x65, 0xfb, 0x06, 0x15, 0x4f, 0x52, 0xcd, 0xd8, 0x21, 0xe9, 0x8d, 0x0a, 0x75, 0x77, + 0xce, 0x77, 0xce, 0xf7, 0x9d, 0xdb, 0xd8, 0xb0, 0x13, 0x12, 0x79, 0xcd, 0xf8, 0x15, 0x0d, 0x2f, + 0xaa, 0x93, 0x7d, 0x1c, 0x44, 0x43, 0x5c, 0xaf, 0x5e, 0x60, 0x49, 0xae, 0xf1, 0xd4, 0x8e, 0x38, + 0x93, 0x0c, 0xfd, 0x4f, 0x85, 0xa4, 0xcc, 0x9e, 0x27, 0xda, 0xb3, 0xc4, 0xca, 0x57, 0x03, 0x72, + 0xc7, 0x71, 0x32, 0x3a, 0x84, 0x9c, 0x20, 0x7c, 0x42, 0xb8, 0xb0, 0x8c, 0xed, 0xf4, 0x6e, 0xb1, + 0xb6, 0x63, 0xff, 0x91, 0x68, 0xbb, 0x3a, 0xd3, 0x99, 0x31, 0x50, 0x0b, 0xf2, 0x82, 0x04, 0xc4, + 0x97, 0x8c, 0x5b, 0x29, 0xcd, 0xde, 0xbb, 0x87, 0x9d, 0x94, 0xb4, 0xdd, 0x84, 0x72, 0x14, 0x4a, + 0x3e, 0x75, 0xee, 0x14, 0x36, 0x0e, 0xa1, 0xf4, 0x43, 0x08, 0x99, 0x90, 0xbe, 0x22, 0x53, 0xcb, + 0xd8, 0x36, 0x76, 0x0b, 0x8e, 0x32, 0xd1, 0x3a, 0x2c, 0x4f, 0x70, 0x30, 0x26, 0x56, 0x4a, 0x63, + 0xb1, 0xf3, 0x2a, 0x75, 0x60, 0x54, 0x3e, 0xe6, 0x20, 0x1b, 0xb7, 0x87, 0xea, 0x90, 0x89, 0x18, + 0x97, 0x9a, 0x57, 0xac, 0x6d, 0xdd, 0xd3, 0x51, 0x87, 0x71, 0xe9, 0xe8, 0x64, 0xa5, 0x3c, 0x64, + 0x42, 0x0a, 0x3d, 0x47, 0xc1, 0x89, 0x1d, 0xf4, 0x1a, 0xd2, 0x32, 0x10, 0x56, 0x5a, 0x2b, 0x3d, + 0xff, 0xeb, 0x66, 0xec, 0x6e, 0xcb, 0x6d, 0x47, 0x92, 0xb2, 0x50, 0x38, 0x8a, 0x88, 0x10, 0x64, + 0xfa, 0x34, 0x1c, 0x58, 0x19, 0xdd, 0xae, 0xb6, 0xd1, 0x53, 0x30, 0x07, 0xe4, 0x1c, 0x8f, 0x03, + 0xe9, 0x91, 0x70, 0x10, 0x31, 0x1a, 0x4a, 0x6b, 0x59, 0xc7, 0xcb, 0x09, 0x7e, 0x94, 0xc0, 0x1b, + 0x9f, 0x96, 0x01, 0xe6, 0x92, 0xe8, 0x31, 0xac, 0x0e, 0xa5, 0x8c, 0x84, 0xc7, 0xc9, 0x80, 0x72, + 0xe2, 0xc7, 0x23, 0xe6, 0x9d, 0x92, 0x46, 0x9d, 0x04, 0x44, 0x4d, 0xc8, 0x8c, 0xd8, 0x20, 0xde, + 0xd1, 0x6a, 0xed, 0xe5, 0x43, 0xba, 0x56, 0xa6, 0xe2, 0x3a, 0x5a, 0x01, 0xbd, 0x00, 0x14, 0x9f, + 0xda, 0xf3, 0x09, 0x97, 0xf4, 0x9c, 0xfa, 0x58, 0x12, 0xbd, 0x8d, 0x82, 0xb3, 0x16, 0x47, 0xde, + 0xce, 0x03, 0x68, 0x0b, 0x8a, 0x11, 0xa7, 0x13, 0x2c, 0x89, 0xa7, 0xee, 0x16, 0x0f, 0x0d, 0x09, + 0xf4, 0x9e, 0x4c, 0xd1, 0x13, 0x28, 0xfb, 0x78, 0x51, 0x4b, 0x24, 0x93, 0xaf, 0xfa, 0x78, 0x41, + 0x48, 0xa0, 0x67, 0xb0, 0x26, 0xc6, 0xfd, 0x4b, 0xe2, 0x4b, 0x0f, 0x07, 0xd2, 0x0b, 0xf1, 0x88, + 0x08, 0x2b, 0xab, 0x2f, 0x53, 0x4e, 0x02, 0x8d, 0x40, 0x9e, 0x2a, 0x18, 0x5d, 0xc2, 0xfa, 0x88, + 0x86, 0x9e, 0x7e, 0xf5, 0x3e, 0x0b, 0x3c, 0xf5, 0x32, 0x29, 0x0b, 0xad, 0x9c, 0x1e, 0xff, 0xe0, + 0xa1, 0xe3, 0x77, 0x12, 0x1d, 0x07, 0x8d, 0x68, 0x38, 0x73, 0xce, 0x62, 0x4d, 0x5d, 0x0b, 0xdf, + 0xfc, 0x5a, 0x2b, 0xff, 0xcf, 0xb5, 0xf0, 0xcd, 0xcf, 0xb5, 0x1e, 0x41, 0xc9, 0xa7, 0xd1, 0x90, + 0x70, 0x4f, 0x8c, 0xa9, 0x5a, 0x55, 0x41, 0xcf, 0xbf, 0x12, 0x83, 0xae, 0xc6, 0x2a, 0x4d, 0xc8, + 0x25, 0x27, 0x43, 0x65, 0x28, 0x76, 0x1a, 0xae, 0xdb, 0x6d, 0x3a, 0xed, 0xde, 0x71, 0xd3, 0x5c, + 0x42, 0x00, 0x59, 0xf7, 0xdd, 0x49, 0xa7, 0x75, 0x64, 0x1a, 0xca, 0x3e, 0xe9, 0x75, 0x7b, 0x8d, + 0x96, 0x99, 0x42, 0xeb, 0x60, 0x36, 0x7a, 0xdd, 0xb6, 0xb7, 0x98, 0x9d, 0xae, 0xb4, 0xa1, 0xb8, + 0xd0, 0x11, 0x5a, 0x81, 0x7c, 0xb7, 0xe5, 0x7a, 0x2a, 0xd1, 0x5c, 0x42, 0x45, 0x5d, 0xe6, 0x6c, + 0xdf, 0xdb, 0x33, 0x8d, 0xb9, 0xb3, 0x6f, 0xa6, 0xe6, 0x4e, 0xcd, 0x4c, 0xcf, 0x9d, 0xba, 0x99, + 0xa9, 0x9c, 0x42, 0x46, 0x7d, 0x5f, 0xe8, 0x3f, 0xc8, 0x86, 0xe3, 0x51, 0x9f, 0x70, 0xfd, 0x5a, + 0x4b, 0x4e, 0xe2, 0xa1, 0x0d, 0xc8, 0xcf, 0xf6, 0x98, 0x7c, 0xce, 0x77, 0xbe, 0xfa, 0x6e, 0xd4, + 0xcd, 0x93, 0xa7, 0xa6, 0xed, 0x37, 0xf6, 0xe7, 0xdb, 0x4d, 0xe3, 0xcb, 0xed, 0xa6, 0xf1, 0xed, + 0x76, 0xd3, 0xf8, 0xb0, 0x1d, 0xaf, 0x9a, 0xb2, 0x2a, 0x8e, 0x68, 0xf5, 0x37, 0xbf, 0xc3, 0x7e, + 0x56, 0xab, 0xd5, 0xbf, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x88, 0xe5, 0x6d, 0x2c, 0x05, 0x00, + 0x00, } diff --git a/networking/v1alpha3/gateway.proto b/networking/v1alpha3/gateway.proto index 4f857dd8d2..0cfb8bcefc 100644 --- a/networking/v1alpha3/gateway.proto +++ b/networking/v1alpha3/gateway.proto @@ -158,10 +158,10 @@ message Gateway { repeated Server servers = 1; // REQUIRED: One or more labels that indicate a specific set of pods/VMs - // on which this gateway configuration should be applied. - // The scope of label search is platform dependent. - // On Kubernetes, for example, the scope includes pods running in - // all reachable namespaces. + // on which this gateway configuration should be applied. The scope of + // label search is restricted to the configuration namespace in which the + // the resource is present. In other words, the Gateway resource must + // reside in the same namespace as the gateway workload. map selector = 2; } @@ -228,9 +228,16 @@ message Gateway { // ``` message Server { // REQUIRED: The Port on which the proxy should listen for incoming - // connections + // connections. If using unix domain socket, use 0 as the port number, + // with a valid protocol and port name, along with the bind parameter. Port port = 1; + // $hide_from_docs + // The ip or the unix domain socket to which the listener should be bound + // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux + // abstract namespace). + string bind = 4; + // REQUIRED. A list of hosts exposed by this gateway. At least one // host is required. While typically applicable to // HTTP services, it can also be used for TCP services using TLS with @@ -334,6 +341,11 @@ message Server { // these options to control if all http requests should be redirected to // https, and the TLS modes to use. TLSOptions tls = 3; + + // The loopback IP endpoint or unix domain socket to which traffic should + // be forwarded to by default. Format should be 127.0.0.1:PORT or + // unix:///path/to/socket or unix://@foobar (Linux abstract namespace). + string default_endpoint = 5; } // Port describes the properties of a specific port of a service. diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index 7a8ed362e7..a035e74a5c 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -6,7 +6,7 @@ generator: protoc-gen-docs aliases: - /docs/reference/config/istio.routing.v1alpha1/ -number_of_entries: 59 +number_of_entries: 60 ---

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

@@ -43,7 +43,7 @@

ConfigScope

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

+imported in a Sidecar.

NameDescription
ALL_NAMESPACES -

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

- -
SAME_NAMESPACE -

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

-
mode MeshConfig.OutboundTrafficPolicy.Mode @@ -483,25 +414,19 @@

MeshConfig.OutboundTrafficPolicy.

REGISTRY_ONLY -

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

+

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

ALLOW_ANY -

outbound traffic to unknown destinations will be allowed

- -
VIRTUAL_SERVICE_ONLY -

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

+

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

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

Gateway

@@ -1859,7 +1859,7 @@

HTTPRoute

@@ -2122,7 +2122,7 @@

Headers.HeaderOperations

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

Headers.HeaderOperations

+ + +
map<string, string>

REQUIRED: One or more labels that indicate a specific set of pods/VMs -on which this gateway configuration should be applied. -The scope of label search is platform dependent. -On Kubernetes, for example, the scope includes pods running in -all reachable namespaces.

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

CorsPolicy

Cross-Origin Resource Sharing policy (CORS). Refer to -https://developer.mozilla.org/en-US/docs/Web/HTTP/AccesscontrolCORS +https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS for further details about cross origin resource sharing.

map<string, string>

Append the given values to the headers specified by keys -(will create a comma separated list of values)

+(will create a comma-separated list of values)

Remove a the specified headers

+
+
+

IstioEgressListener

+
+

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

+ + + + + + + + + + + + + + + + + + + @@ -2233,6 +2284,31 @@

LoadBalancerSettings

ttl: 0s +

The following example sets up locality weight for the ratings service +Assume ratings service resides in “region1/zone1/” and “region1/zone2/”, +and originating clusters also reside in “region1/zone1/” and “region1/zone2/”. +This example specifies when clusters from “region1/zone1/” accessing ratings service, 80% of the traffic +is shipped to “region1/zone1/” ratings service endpoints, and the rest 20% to “region1/zone2/*”.

+ +
 apiVersion: networking.istio.io/v1alpha3
+ kind: DestinationRule
+ metadata:
+   name: bookinfo-ratings
+ spec:
+   host: ratings.prod.svc.cluster.local
+   trafficPolicy:
+     loadBalancer:
+       localityWeightSettings:
+         - from: region1/zone1/*
+           to:
+             "region1/zone1/*": 80
+             "region1/zone2/*": 20
+         - from: region1/zone2/*
+           to:
+             "region1/zone1/*": 20
+             "region1/zone2/*": 80
+
+
FieldTypeDescription
captureModeCaptureMode +

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

+ +
hostsstring[] +

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

+ +

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

+ +

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

+
@@ -2252,6 +2328,17 @@

LoadBalancerSettings

+ + + + + @@ -2351,6 +2438,42 @@

LoadBalancerSettings.C

+ + +
consistentHash LoadBalancerSettings.ConsistentHashLB (oneof) +
localityWeightSettingsLoadBalancerSettings.LocalityWeightSetting[] +

Explicitly assign loadbalancing weight across different zones and geographical locations. +Refer to Locality weighted load balancing +If empty, the locality weight is set according to the endpoints number within it. +If duplicated settings are present, then the first one will take effect.

+

REQUIRED. Lifetime of the cookie.

+
+
+

LoadBalancerSettings.LocalityWeightSetting

+
+

Originating -> upstream cluster locality weight set, support wildcard matching ‘’ +‘’ matches all localities +‘region1/*’ matches all zones in region1

+ + + + + + + + + + + + + + + + + + + @@ -2710,7 +2833,8 @@

Server

@@ -2743,6 +2867,16 @@

Server

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

+ + + + + + @@ -2943,186 +3077,6 @@

Server.TLSOptions.TLSmode

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

- - - -
FieldTypeDescription
fromstring +

Originating locality, ‘/’ separated, e.g. ‘region/zone/sub_zone’.

+ +
tomap<string, uint32> +

Upstream locality to loadbalancing weight map. The sum of all weights should be == 100. +Should assign loadbalancing weight for all localities, otherwise the traffic are not routed +following the percentage of weight.

+
Port

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

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

defaultEndpointstring +

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

+
-
-

ServiceDependency

-
-

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

- -

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

- -

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

- -

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

- -

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

- -

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

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

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

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

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

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

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

- -
-
-

ServiceDependency.Dependency

-
-

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

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

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

- -
-
-

ServiceDependency.Import

-
-

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

- -

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

- -

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

- - - - - - - - - - - - - - - - - - - @@ -3663,6 +3617,75 @@

ServiceEntry.Resolution

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

+ + + +
FieldTypeDescription
namespacestring -

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

- -
hoststring -

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

-
+
+

Sidecar

+
+

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

+ +

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

+ +

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

+ +

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

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

VirtualService

FieldTypeDescription
egressIstioEgressListener[] +

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

+
+

WorkloadSelector

+
+

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

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

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

+ +
+
diff --git a/networking/v1alpha3/service_dependency.pb.go b/networking/v1alpha3/service_dependency.pb.go deleted file mode 100644 index 045f2435b9..0000000000 --- a/networking/v1alpha3/service_dependency.pb.go +++ /dev/null @@ -1,938 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: networking/v1alpha3/service_dependency.proto - -package v1alpha3 - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// ConfigScope defines the visibility of an Istio configuration artifact in -// a namespace when the namespace is imported. By default all -// configuration artifacts are public. Configurations with private scope -// will not be imported when the namespace containing the configuration is -// imported in a ServiceDependency. -type ConfigScope int32 - -const ( - // Config with this scope are visible to all workloads in the mesh - ConfigScope_PUBLIC ConfigScope = 0 - // Configs with this scope are visible to only workloads in the same - // namespace as the configuration resource. - ConfigScope_PRIVATE ConfigScope = 1 -) - -var ConfigScope_name = map[int32]string{ - 0: "PUBLIC", - 1: "PRIVATE", -} -var ConfigScope_value = map[string]int32{ - "PUBLIC": 0, - "PRIVATE": 1, -} - -func (x ConfigScope) String() string { - return proto.EnumName(ConfigScope_name, int32(x)) -} -func (ConfigScope) EnumDescriptor() ([]byte, []int) { return fileDescriptorServiceDependency, []int{0} } - -// `ServiceDependency` describes the set of services that a workload depends on -// for its operation. In other words, it describes the properties of -// outgoing traffic from a given workload. By default, the service mesh -// established by Istio will have a full mesh connectivity - i.e. every -// workload will have proxy configuration required to reach every other -// workload in the mesh. However most connectivity graphs are sparse in -// practice. The ServiceDependency provides a way to declare the service -// dependencies associated with each workload such that the amount of -// configuration sent to the sidecars can be scoped to the requisite -// dependencies. -// -// Services and configuration in a mesh are organized into one or more -// namespaces (e.g., a Kubernetes namespace or a CF org/space). Workloads -// in a namespace have an implicit dependency on other workloads in the -// same namespace. In addition, to declare dependencies on workloads in -// other namespaces, a ServiceDependency resource has to be specified in the -// current namespace. *_Each namespace MUST have only one ServiceDependency -// resource named "default"_*. The behavior of the system is undefined if -// more than one ServiceDependency resource exists in a given namespace. The set -// of dependencies specified in a ServiceDependency resource will be used to -// compute the sidecar configuration for every workload in the namespace. -// -// NOTE 1: If workloads in the mesh depend only on other workloads in the -// same namespace, set defaultServiceDependency.importMode to SAME_NAMESPACE -// in the mesh global config map (in values.yaml). -// -// NOTE 2: To facilitate incremental pruning of the sidecar -// configuration, the default import mode for the mesh is set to -// ALL_NAMESPACES. In other words, every workload will be able to reach -// every other workload. Adding a ServiceDependency resource in a namespace will -// automatically prune the configuration for the workloads in that -// namespace. -// -// The following examples illustrate a few specific use cases of ServiceDependency. -// -// The example below declares a ServiceDependency resource in the prod-us1 -// namespace that specifies that workloads in the namespace will be able to -// reach the services in the prod-apis namespace only. -// -// ```yaml -// apiVersion: networking.istio.io/v1alpha3 -// kind: ServiceDependency -// metadata: -// name: default -// namespace: prod-us1 -// spec: -// dependencies: -// - imports: -// - namespace: prod-apis -// ``` -// -// In a mesh where the default service dependency is set to SAME_NAMESPACE -// only, if one or more workloads need to be able to reach every other -// service in the mesh (e.g., metrics collection server), the following -// ServiceDependency resource can be used to specify such a dependency: -// -// ```yaml -// apiVersion: networking.istio.io/v1alpha3 -// kind: ServiceDependency -// metadata: -// name: default -// namespace: metrics-collection -// spec: -// dependencies: -// - imports: -// - namespace: '*' -// ``` -// -// The configuration above will allow workloads in the metrics-collection -// namespace to access service in any namespace while workloads in other -// namespaces will be configured for namespace local access as per the -// global default service dependency (SAME_NAMESPACE). -// -type ServiceDependency struct { - // REQUIRED. The set of services that workloads in this namespace are - // expected to talk to, in addition to other workloads in the same - // namespace. Dependencies describe the properties of outbound traffic from - // a given workload. - Dependencies []*ServiceDependency_Dependency `protobuf:"bytes,1,rep,name=dependencies" json:"dependencies,omitempty"` -} - -func (m *ServiceDependency) Reset() { *m = ServiceDependency{} } -func (m *ServiceDependency) String() string { return proto.CompactTextString(m) } -func (*ServiceDependency) ProtoMessage() {} -func (*ServiceDependency) Descriptor() ([]byte, []int) { - return fileDescriptorServiceDependency, []int{0} -} - -func (m *ServiceDependency) GetDependencies() []*ServiceDependency_Dependency { - if m != nil { - return m.Dependencies - } - return nil -} - -// Import describes the set of namespaces whose exported services -// (real/virtual) will be accessed by workloads in a given namespace. The -// sidecars attached to the workloads will be configured with information -// required to reach the imported services only. The gateways in the -// current namespace will only honor imported VirtualServices instead of -// every VirtualService that binds itself to the gateway. -// -// Importing a service from a namespace will automatically import the -// exported configuration artifacts associated with the service, such as -// VirtualService, DestinationRule, etc. The service in a namespace can be -// a service in the service registry (e.g., a kubernetes or cloud foundry -// service) or a service specified via ServiceEntry configuration. -// -// NOTE: Only exported services and configuration artifacts from a -// namespace can be imported. Private services/configuration will not be -// imported. See the scope setting associated with VirtualService, -// DestinationRule, ServiceEntry, etc. -type ServiceDependency_Import struct { - // The configuration namespace whose services need to be imported. - // Specify * to import all namespaces. The import can be scoped further - // by specifying individual hosts. - Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` - // A FQDN or wildcard prefixed DNS name of the host to import from the - // specified namespace. The hostnames include names of services from the - // service registry as well as those specified in a VirtualService. - Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` -} - -func (m *ServiceDependency_Import) Reset() { *m = ServiceDependency_Import{} } -func (m *ServiceDependency_Import) String() string { return proto.CompactTextString(m) } -func (*ServiceDependency_Import) ProtoMessage() {} -func (*ServiceDependency_Import) Descriptor() ([]byte, []int) { - return fileDescriptorServiceDependency, []int{0, 0} -} - -func (m *ServiceDependency_Import) GetNamespace() string { - if m != nil { - return m.Namespace - } - return "" -} - -func (m *ServiceDependency_Import) GetHost() string { - if m != nil { - return m.Host - } - return "" -} - -// Dependency describes a workload and the set of service dependencies -// for the workload. -type ServiceDependency_Dependency struct { - // [#not-implemented-hide:] - // One or more labels that indicate a specific set of pods/VMs on which - // this dependency configuration should be applied. The scope of label - // search is platform dependent. On Kubernetes, for example, the scope - // includes pods running in the namespace in which the ServiceDependency - // resource is present. If the sourceWorkloadLabels are omitted, the - // imports specified will be applicable to all workloads in the current - // configuration namespace. - // NOTE: source_workload_labels are currently not supported. - SourceWorkloadLabels map[string]string `protobuf:"bytes,1,rep,name=source_workload_labels,json=sourceWorkloadLabels" json:"source_workload_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // REQUIRED: Import describes the set of namespaces whose exported - // services will be accessed by the workloads selected by the - // sourceWorkloadLabels. The sidecars attached to the workloads will be - // configured with information required to reach other services in the - // same namespace and the imported services. In addition to the - // explicitly specified namespaces, namespaces specified in the global - // mesh config (through defaultServiceDependency.importNamespaces) will also be - // imported. - Imports []*ServiceDependency_Import `protobuf:"bytes,2,rep,name=imports" json:"imports,omitempty"` -} - -func (m *ServiceDependency_Dependency) Reset() { *m = ServiceDependency_Dependency{} } -func (m *ServiceDependency_Dependency) String() string { return proto.CompactTextString(m) } -func (*ServiceDependency_Dependency) ProtoMessage() {} -func (*ServiceDependency_Dependency) Descriptor() ([]byte, []int) { - return fileDescriptorServiceDependency, []int{0, 1} -} - -func (m *ServiceDependency_Dependency) GetSourceWorkloadLabels() map[string]string { - if m != nil { - return m.SourceWorkloadLabels - } - return nil -} - -func (m *ServiceDependency_Dependency) GetImports() []*ServiceDependency_Import { - if m != nil { - return m.Imports - } - return nil -} - -func init() { - proto.RegisterType((*ServiceDependency)(nil), "istio.networking.v1alpha3.ServiceDependency") - proto.RegisterType((*ServiceDependency_Import)(nil), "istio.networking.v1alpha3.ServiceDependency.Import") - proto.RegisterType((*ServiceDependency_Dependency)(nil), "istio.networking.v1alpha3.ServiceDependency.Dependency") - proto.RegisterEnum("istio.networking.v1alpha3.ConfigScope", ConfigScope_name, ConfigScope_value) -} -func (m *ServiceDependency) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceDependency) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Dependencies) > 0 { - for _, msg := range m.Dependencies { - dAtA[i] = 0xa - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *ServiceDependency_Import) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceDependency_Import) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Namespace) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(len(m.Namespace))) - i += copy(dAtA[i:], m.Namespace) - } - if len(m.Host) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(len(m.Host))) - i += copy(dAtA[i:], m.Host) - } - return i, nil -} - -func (m *ServiceDependency_Dependency) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceDependency_Dependency) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.SourceWorkloadLabels) > 0 { - for k, _ := range m.SourceWorkloadLabels { - dAtA[i] = 0xa - i++ - v := m.SourceWorkloadLabels[k] - mapSize := 1 + len(k) + sovServiceDependency(uint64(len(k))) + 1 + len(v) + sovServiceDependency(uint64(len(v))) - i = encodeVarintServiceDependency(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.Imports) > 0 { - for _, msg := range m.Imports { - dAtA[i] = 0x12 - i++ - i = encodeVarintServiceDependency(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func encodeVarintServiceDependency(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return offset + 1 -} -func (m *ServiceDependency) Size() (n int) { - var l int - _ = l - if len(m.Dependencies) > 0 { - for _, e := range m.Dependencies { - l = e.Size() - n += 1 + l + sovServiceDependency(uint64(l)) - } - } - return n -} - -func (m *ServiceDependency_Import) Size() (n int) { - var l int - _ = l - l = len(m.Namespace) - if l > 0 { - n += 1 + l + sovServiceDependency(uint64(l)) - } - l = len(m.Host) - if l > 0 { - n += 1 + l + sovServiceDependency(uint64(l)) - } - return n -} - -func (m *ServiceDependency_Dependency) Size() (n int) { - var l int - _ = l - if len(m.SourceWorkloadLabels) > 0 { - for k, v := range m.SourceWorkloadLabels { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovServiceDependency(uint64(len(k))) + 1 + len(v) + sovServiceDependency(uint64(len(v))) - n += mapEntrySize + 1 + sovServiceDependency(uint64(mapEntrySize)) - } - } - if len(m.Imports) > 0 { - for _, e := range m.Imports { - l = e.Size() - n += 1 + l + sovServiceDependency(uint64(l)) - } - } - return n -} - -func sovServiceDependency(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozServiceDependency(x uint64) (n int) { - return sovServiceDependency(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *ServiceDependency) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ServiceDependency: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ServiceDependency: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Dependencies", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Dependencies = append(m.Dependencies, &ServiceDependency_Dependency{}) - if err := m.Dependencies[len(m.Dependencies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipServiceDependency(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthServiceDependency - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceDependency_Import) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Import: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Import: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Host", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Host = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipServiceDependency(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthServiceDependency - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceDependency_Dependency) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Dependency: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Dependency: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceWorkloadLabels", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SourceWorkloadLabels == nil { - m.SourceWorkloadLabels = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthServiceDependency - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthServiceDependency - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipServiceDependency(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthServiceDependency - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.SourceWorkloadLabels[mapkey] = mapvalue - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Imports", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthServiceDependency - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Imports = append(m.Imports, &ServiceDependency_Import{}) - if err := m.Imports[len(m.Imports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipServiceDependency(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthServiceDependency - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipServiceDependency(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthServiceDependency - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowServiceDependency - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipServiceDependency(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthServiceDependency = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowServiceDependency = fmt.Errorf("proto: integer overflow") -) - -func init() { - proto.RegisterFile("networking/v1alpha3/service_dependency.proto", fileDescriptorServiceDependency) -} - -var fileDescriptorServiceDependency = []byte{ - // 357 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0xc9, 0x4b, 0x2d, 0x29, - 0xcf, 0x2f, 0xca, 0xce, 0xcc, 0x4b, 0xd7, 0x2f, 0x33, 0x4c, 0xcc, 0x29, 0xc8, 0x48, 0x34, 0xd6, - 0x2f, 0x4e, 0x2d, 0x2a, 0xcb, 0x4c, 0x4e, 0x8d, 0x4f, 0x49, 0x2d, 0x48, 0xcd, 0x4b, 0x49, 0xcd, - 0x4b, 0xae, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0xcc, 0x2c, 0x2e, 0xc9, 0xcc, 0xd7, - 0x43, 0xe8, 0xd1, 0x83, 0xe9, 0x51, 0xba, 0xcb, 0xcc, 0x25, 0x18, 0x0c, 0xd1, 0xe7, 0x02, 0xd7, - 0x26, 0x14, 0xcd, 0xc5, 0x03, 0x37, 0x24, 0x33, 0xb5, 0x58, 0x82, 0x51, 0x81, 0x59, 0x83, 0xdb, - 0xc8, 0x5c, 0x0f, 0xa7, 0x39, 0x7a, 0x18, 0x66, 0xe8, 0x21, 0x98, 0x41, 0x28, 0x86, 0x49, 0x59, - 0x71, 0xb1, 0x79, 0xe6, 0x16, 0xe4, 0x17, 0x95, 0x08, 0xc9, 0x70, 0x71, 0xe6, 0x25, 0xe6, 0xa6, - 0x16, 0x17, 0x24, 0x26, 0xa7, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x06, 0x21, 0x04, 0x84, 0x84, - 0xb8, 0x58, 0x32, 0xf2, 0x8b, 0x4b, 0x24, 0x98, 0xc0, 0x12, 0x60, 0xb6, 0xd4, 0x3a, 0x26, 0x2e, - 0x2e, 0x24, 0x77, 0xb6, 0x33, 0x72, 0x89, 0x15, 0xe7, 0x97, 0x16, 0x25, 0xa7, 0xc6, 0x83, 0x5c, - 0x94, 0x93, 0x9f, 0x98, 0x12, 0x9f, 0x93, 0x98, 0x94, 0x9a, 0x03, 0x73, 0x72, 0x20, 0x99, 0x4e, - 0xd6, 0x0b, 0x06, 0x9b, 0x1a, 0x0e, 0x35, 0xd4, 0x07, 0x6c, 0xa6, 0x6b, 0x5e, 0x49, 0x51, 0x65, - 0x90, 0x48, 0x31, 0x16, 0x29, 0x21, 0x5f, 0x2e, 0xf6, 0x4c, 0xb0, 0xa7, 0x8a, 0x25, 0x98, 0xc0, - 0x36, 0x1b, 0x93, 0x64, 0x33, 0x24, 0x40, 0x82, 0x60, 0x66, 0x48, 0xb9, 0x73, 0x49, 0xe2, 0x74, - 0x81, 0x90, 0x00, 0x17, 0x73, 0x76, 0x6a, 0x25, 0x34, 0xc0, 0x40, 0x4c, 0x21, 0x11, 0x2e, 0xd6, - 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x68, 0x58, 0x41, 0x38, 0x56, 0x4c, 0x16, 0x8c, 0x5a, 0x6a, 0x5c, - 0xdc, 0xce, 0xf9, 0x79, 0x69, 0x99, 0xe9, 0xc1, 0xc9, 0xf9, 0x05, 0xa9, 0x42, 0x5c, 0x5c, 0x6c, - 0x01, 0xa1, 0x4e, 0x3e, 0x9e, 0xce, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0x01, 0x41, 0x9e, 0x61, - 0x8e, 0x21, 0xae, 0x02, 0x8c, 0x4e, 0x7a, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, - 0xe0, 0x91, 0x1c, 0x63, 0x94, 0x02, 0xc4, 0xed, 0x99, 0xf9, 0xfa, 0x89, 0x05, 0x99, 0xfa, 0x58, - 0xd2, 0x5a, 0x12, 0x1b, 0x38, 0x65, 0x19, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x25, 0xbe, - 0xb4, 0x89, 0x02, 0x00, 0x00, -} diff --git a/networking/v1alpha3/service_dependency.proto b/networking/v1alpha3/service_dependency.proto deleted file mode 100644 index ff1bf5c27e..0000000000 --- a/networking/v1alpha3/service_dependency.proto +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright 2018 Istio Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package istio.networking.v1alpha3; - -option go_package = "istio.io/api/networking/v1alpha3"; - -// `ServiceDependency` describes the set of services that a workload depends on -// for its operation. In other words, it describes the properties of -// outgoing traffic from a given workload. By default, the service mesh -// established by Istio will have a full mesh connectivity - i.e. every -// workload will have proxy configuration required to reach every other -// workload in the mesh. However most connectivity graphs are sparse in -// practice. The ServiceDependency provides a way to declare the service -// dependencies associated with each workload such that the amount of -// configuration sent to the sidecars can be scoped to the requisite -// dependencies. -// -// Services and configuration in a mesh are organized into one or more -// namespaces (e.g., a Kubernetes namespace or a CF org/space). Workloads -// in a namespace have an implicit dependency on other workloads in the -// same namespace. In addition, to declare dependencies on workloads in -// other namespaces, a ServiceDependency resource has to be specified in the -// current namespace. *_Each namespace MUST have only one ServiceDependency -// resource named "default"_*. The behavior of the system is undefined if -// more than one ServiceDependency resource exists in a given namespace. The set -// of dependencies specified in a ServiceDependency resource will be used to -// compute the sidecar configuration for every workload in the namespace. -// -// NOTE 1: If workloads in the mesh depend only on other workloads in the -// same namespace, set defaultServiceDependency.importMode to SAME_NAMESPACE -// in the mesh global config map (in values.yaml). -// -// NOTE 2: To facilitate incremental pruning of the sidecar -// configuration, the default import mode for the mesh is set to -// ALL_NAMESPACES. In other words, every workload will be able to reach -// every other workload. Adding a ServiceDependency resource in a namespace will -// automatically prune the configuration for the workloads in that -// namespace. -// -// The following examples illustrate a few specific use cases of ServiceDependency. -// -// The example below declares a ServiceDependency resource in the prod-us1 -// namespace that specifies that workloads in the namespace will be able to -// reach the services in the prod-apis namespace only. -// -// ```yaml -// apiVersion: networking.istio.io/v1alpha3 -// kind: ServiceDependency -// metadata: -// name: default -// namespace: prod-us1 -// spec: -// dependencies: -// - imports: -// - namespace: prod-apis -// ``` -// -// In a mesh where the default service dependency is set to SAME_NAMESPACE -// only, if one or more workloads need to be able to reach every other -// service in the mesh (e.g., metrics collection server), the following -// ServiceDependency resource can be used to specify such a dependency: -// -// ```yaml -// apiVersion: networking.istio.io/v1alpha3 -// kind: ServiceDependency -// metadata: -// name: default -// namespace: metrics-collection -// spec: -// dependencies: -// - imports: -// - namespace: '*' -// ``` -// -// The configuration above will allow workloads in the metrics-collection -// namespace to access service in any namespace while workloads in other -// namespaces will be configured for namespace local access as per the -// global default service dependency (SAME_NAMESPACE). -// -message ServiceDependency { - // Import describes the set of namespaces whose exported services - // (real/virtual) will be accessed by workloads in a given namespace. The - // sidecars attached to the workloads will be configured with information - // required to reach the imported services only. The gateways in the - // current namespace will only honor imported VirtualServices instead of - // every VirtualService that binds itself to the gateway. - // - // Importing a service from a namespace will automatically import the - // exported configuration artifacts associated with the service, such as - // VirtualService, DestinationRule, etc. The service in a namespace can be - // a service in the service registry (e.g., a kubernetes or cloud foundry - // service) or a service specified via ServiceEntry configuration. - // - // NOTE: Only exported services and configuration artifacts from a - // namespace can be imported. Private services/configuration will not be - // imported. See the scope setting associated with VirtualService, - // DestinationRule, ServiceEntry, etc. - message Import { - // The configuration namespace whose services need to be imported. - // Specify * to import all namespaces. The import can be scoped further - // by specifying individual hosts. - string namespace = 1; - - // A FQDN or wildcard prefixed DNS name of the host to import from the - // specified namespace. The hostnames include names of services from the - // service registry as well as those specified in a VirtualService. - string host = 2; - }; - - // Dependency describes a workload and the set of service dependencies - // for the workload. - message Dependency { - // [#not-implemented-hide:] - // One or more labels that indicate a specific set of pods/VMs on which - // this dependency configuration should be applied. The scope of label - // search is platform dependent. On Kubernetes, for example, the scope - // includes pods running in the namespace in which the ServiceDependency - // resource is present. If the sourceWorkloadLabels are omitted, the - // imports specified will be applicable to all workloads in the current - // configuration namespace. - // NOTE: source_workload_labels are currently not supported. - map source_workload_labels = 1; - - // REQUIRED: Import describes the set of namespaces whose exported - // services will be accessed by the workloads selected by the - // sourceWorkloadLabels. The sidecars attached to the workloads will be - // configured with information required to reach other services in the - // same namespace and the imported services. In addition to the - // explicitly specified namespaces, namespaces specified in the global - // mesh config (through defaultServiceDependency.importNamespaces) will also be - // imported. - repeated Import imports = 2; - }; - - // REQUIRED. The set of services that workloads in this namespace are - // expected to talk to, in addition to other workloads in the same - // namespace. Dependencies describe the properties of outbound traffic from - // a given workload. - repeated Dependency dependencies = 1; -} - -// ConfigScope defines the visibility of an Istio configuration artifact in -// a namespace when the namespace is imported. By default all -// configuration artifacts are public. Configurations with private scope -// will not be imported when the namespace containing the configuration is -// imported in a ServiceDependency. -enum ConfigScope { - // Config with this scope are visible to all workloads in the mesh - PUBLIC = 0; - - // Configs with this scope are visible to only workloads in the same - // namespace as the configuration resource. - PRIVATE = 1; -} diff --git a/networking/v1alpha3/service_entry.pb.go b/networking/v1alpha3/service_entry.pb.go index ba15812abd..2642cde348 100644 --- a/networking/v1alpha3/service_entry.pb.go +++ b/networking/v1alpha3/service_entry.pb.go @@ -1538,38 +1538,38 @@ var ( func init() { proto.RegisterFile("networking/v1alpha3/service_entry.proto", fileDescriptorServiceEntry) } var fileDescriptorServiceEntry = []byte{ - // 524 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0xdd, 0x6e, 0xd3, 0x30, - 0x14, 0x9e, 0x9b, 0x2d, 0x6d, 0x4e, 0x37, 0x54, 0x2c, 0x84, 0x42, 0x84, 0x4a, 0xe8, 0x05, 0x54, - 0x02, 0xa5, 0xa3, 0x13, 0xd2, 0xf8, 0xb9, 0x19, 0x23, 0x12, 0x95, 0x4a, 0x00, 0xb7, 0x17, 0x88, - 0x9b, 0x2a, 0x4b, 0x4d, 0x6b, 0x2d, 0x8a, 0xa3, 0xd8, 0x6b, 0xd5, 0xb7, 0xe0, 0x31, 0x78, 0x14, - 0x2e, 0x79, 0x04, 0xd4, 0x27, 0x41, 0x71, 0x9c, 0xa6, 0x17, 0xa3, 0x6c, 0x77, 0xf9, 0x4e, 0xce, - 0xf7, 0xf9, 0x3b, 0xfe, 0x8e, 0xe1, 0x69, 0x42, 0xe5, 0x92, 0x67, 0x97, 0x2c, 0x99, 0xf5, 0x16, - 0x2f, 0xc2, 0x38, 0x9d, 0x87, 0x27, 0x3d, 0x41, 0xb3, 0x05, 0x8b, 0xe8, 0x84, 0x26, 0x32, 0x5b, - 0x79, 0x69, 0xc6, 0x25, 0xc7, 0x0f, 0x98, 0x90, 0x8c, 0x7b, 0x55, 0xbb, 0x57, 0xb6, 0x3b, 0x8f, - 0xaf, 0xd3, 0x98, 0x85, 0x92, 0x2e, 0x43, 0xcd, 0x76, 0x9e, 0xef, 0x3a, 0x66, 0x4a, 0x53, 0x9a, - 0x4c, 0x69, 0x12, 0xe9, 0xee, 0xce, 0xcf, 0x3a, 0x1c, 0x8e, 0x8a, 0x9f, 0x7e, 0x6e, 0x01, 0xdf, - 0x83, 0x83, 0x39, 0x17, 0x52, 0xd8, 0xc8, 0x35, 0xba, 0x16, 0x29, 0x00, 0x7e, 0x08, 0x56, 0x38, - 0x9d, 0x66, 0x54, 0x08, 0x2a, 0xec, 0x9a, 0xfa, 0x53, 0x15, 0xf0, 0x4b, 0x38, 0x48, 0x79, 0x26, - 0x85, 0x6d, 0xb8, 0x46, 0xb7, 0xd9, 0x7f, 0xe4, 0xfd, 0x73, 0x00, 0xef, 0x33, 0xcf, 0x24, 0x29, - 0xba, 0xf1, 0x10, 0x1a, 0x31, 0x8f, 0x42, 0xc9, 0x78, 0x62, 0xef, 0xbb, 0xa8, 0x7b, 0xa7, 0x7f, - 0xbc, 0x83, 0xb9, 0xed, 0xd2, 0x1b, 0x6a, 0x1e, 0xd9, 0x28, 0x60, 0x02, 0x90, 0x51, 0xc1, 0xe3, - 0x2b, 0xa5, 0x77, 0xa0, 0xf4, 0xfa, 0x37, 0xd5, 0x23, 0x1b, 0x26, 0xd9, 0x52, 0xc1, 0x01, 0x58, - 0x34, 0x99, 0xa6, 0x9c, 0x25, 0x52, 0xd8, 0xa6, 0x1a, 0xee, 0xc6, 0x16, 0x7d, 0x4d, 0x24, 0x95, - 0x04, 0x1e, 0xc0, 0x61, 0xc4, 0x93, 0xef, 0x6c, 0x36, 0x11, 0x11, 0x4f, 0xa9, 0x5d, 0x57, 0x2e, - 0x9f, 0xec, 0x90, 0x3c, 0x57, 0xed, 0xa3, 0xbc, 0x9b, 0x34, 0xa3, 0x0a, 0x38, 0x3f, 0x0c, 0x68, - 0x94, 0x47, 0x60, 0x1b, 0xea, 0x3a, 0x0d, 0x1b, 0xb9, 0xa8, 0x6b, 0x91, 0x12, 0xe2, 0x2f, 0x65, - 0x34, 0x35, 0xe5, 0xfe, 0xcd, 0x6d, 0xdd, 0xab, 0xc0, 0x84, 0xaa, 0x95, 0xb1, 0x8d, 0xc1, 0x8c, - 0xc3, 0x0b, 0x1a, 0x97, 0x71, 0xbf, 0xbd, 0xb5, 0xe6, 0x50, 0xd1, 0x0b, 0x51, 0xad, 0x95, 0x8f, - 0xa0, 0x05, 0xd4, 0x2e, 0x58, 0xa4, 0x84, 0xd8, 0x29, 0xd6, 0x24, 0x66, 0x72, 0xa5, 0x62, 0xb5, - 0xc8, 0x06, 0xe3, 0xfb, 0x60, 0x2e, 0x29, 0x9b, 0xcd, 0xa5, 0x6d, 0xba, 0xa8, 0x7b, 0x44, 0x34, - 0x72, 0x4e, 0x01, 0x2a, 0xe3, 0xb8, 0x05, 0xc6, 0x25, 0x5d, 0xe9, 0xab, 0xc9, 0x3f, 0xf3, 0x2d, - 0x5f, 0x84, 0xf1, 0x15, 0xb5, 0x6b, 0x8a, 0x56, 0x80, 0xd7, 0xb5, 0x53, 0xe4, 0xbc, 0x82, 0xe6, - 0x96, 0xbd, 0xff, 0x51, 0xad, 0x2d, 0x6a, 0xe7, 0x18, 0x1a, 0xe5, 0x5e, 0xe2, 0xbb, 0x70, 0xf4, - 0xd1, 0x1f, 0x7d, 0x98, 0xf8, 0x5f, 0xc7, 0x3e, 0x09, 0xce, 0x86, 0xad, 0xbd, 0x4d, 0x69, 0x10, - 0xe8, 0x12, 0xea, 0x3c, 0x03, 0xa8, 0x36, 0x0f, 0x37, 0x60, 0x3f, 0xf8, 0x14, 0xf8, 0xad, 0x3d, - 0x0c, 0x60, 0x8e, 0xc6, 0x67, 0xe3, 0xc1, 0x79, 0x0b, 0xe1, 0x3a, 0x18, 0xef, 0x83, 0x51, 0xab, - 0xf6, 0xce, 0xfb, 0xb5, 0x6e, 0xa3, 0xdf, 0xeb, 0x36, 0xfa, 0xb3, 0x6e, 0xa3, 0x6f, 0x6e, 0x71, - 0xe9, 0x8c, 0xf7, 0xc2, 0x94, 0xf5, 0xae, 0x79, 0xf3, 0x17, 0xa6, 0x7a, 0xe1, 0x27, 0x7f, 0x03, - 0x00, 0x00, 0xff, 0xff, 0xe4, 0x0f, 0x29, 0x22, 0x78, 0x04, 0x00, 0x00, + // 521 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0xcd, 0x6e, 0xd3, 0x4c, + 0x14, 0xed, 0xc4, 0x8d, 0x13, 0xdf, 0xb4, 0x9f, 0xf2, 0x8d, 0x10, 0x1a, 0x22, 0x14, 0x4c, 0x16, + 0x10, 0x09, 0xc9, 0x29, 0xa9, 0x90, 0xca, 0xcf, 0xa6, 0x14, 0x4b, 0x44, 0x0a, 0x06, 0x26, 0x59, + 0x20, 0x36, 0xd1, 0xd4, 0x19, 0x92, 0x51, 0x2d, 0x8f, 0xe5, 0x99, 0x26, 0xca, 0x5b, 0xf0, 0x18, + 0x3c, 0x0a, 0x4b, 0x1e, 0x01, 0xe5, 0x49, 0x50, 0xc6, 0x76, 0x9c, 0x45, 0x28, 0xed, 0xce, 0xe7, + 0xfa, 0x9c, 0x73, 0xcf, 0xcc, 0xbd, 0x03, 0x4f, 0x63, 0xae, 0x97, 0x32, 0xbd, 0x12, 0xf1, 0xac, + 0xb7, 0x78, 0xce, 0xa2, 0x64, 0xce, 0x4e, 0x7b, 0x8a, 0xa7, 0x0b, 0x11, 0xf2, 0x09, 0x8f, 0x75, + 0xba, 0xf2, 0x92, 0x54, 0x6a, 0x89, 0x1f, 0x08, 0xa5, 0x85, 0xf4, 0x4a, 0xba, 0x57, 0xd0, 0x5b, + 0x8f, 0xf7, 0x79, 0xcc, 0x98, 0xe6, 0x4b, 0x96, 0xab, 0xf7, 0x53, 0x94, 0x98, 0xf2, 0x90, 0xa5, + 0x19, 0xa5, 0xf3, 0xa3, 0x06, 0x47, 0xa3, 0xac, 0xb1, 0xbf, 0xe9, 0x8b, 0xef, 0x41, 0x75, 0x2e, + 0x95, 0x56, 0x04, 0xb9, 0x56, 0xd7, 0xa1, 0x19, 0xc0, 0x0f, 0xc1, 0x61, 0xd3, 0x69, 0xca, 0x95, + 0xe2, 0x8a, 0x54, 0xcc, 0x9f, 0xb2, 0x80, 0x5f, 0x40, 0x35, 0x91, 0xa9, 0x56, 0xc4, 0x72, 0xad, + 0x6e, 0xa3, 0xff, 0xc8, 0xfb, 0x6b, 0x6a, 0xef, 0x93, 0x4c, 0x35, 0xcd, 0xd8, 0x78, 0x08, 0xf5, + 0x48, 0x86, 0x4c, 0x0b, 0x19, 0x93, 0x43, 0x17, 0x75, 0xff, 0xeb, 0x9f, 0xdc, 0xa0, 0xdc, 0x4d, + 0xe9, 0x0d, 0x73, 0x1d, 0xdd, 0x3a, 0x60, 0x0a, 0x90, 0x72, 0x25, 0xa3, 0x6b, 0xe3, 0x57, 0x35, + 0x7e, 0xfd, 0xdb, 0xfa, 0xd1, 0xad, 0x92, 0xee, 0xb8, 0xe0, 0x00, 0x1c, 0x1e, 0x4f, 0x13, 0x29, + 0x62, 0xad, 0x88, 0x6d, 0x0e, 0x77, 0xeb, 0x88, 0x7e, 0x2e, 0xa4, 0xa5, 0x05, 0x1e, 0xc0, 0x51, + 0x28, 0xe3, 0x6f, 0x62, 0x36, 0x51, 0xa1, 0x4c, 0x38, 0xa9, 0x99, 0x94, 0x4f, 0x6e, 0xb0, 0xbc, + 0x30, 0xf4, 0xd1, 0x86, 0x4d, 0x1b, 0x61, 0x09, 0x5a, 0xdf, 0x2d, 0xa8, 0x17, 0x2d, 0x30, 0x81, + 0x5a, 0x3e, 0x0d, 0x82, 0x5c, 0xd4, 0x75, 0x68, 0x01, 0xf1, 0xe7, 0x62, 0x34, 0x15, 0x93, 0xfe, + 0xf5, 0x5d, 0xd3, 0x9b, 0x81, 0x29, 0x53, 0x2b, 0xc6, 0x36, 0x06, 0x3b, 0x62, 0x97, 0x3c, 0x2a, + 0xc6, 0xfd, 0xe6, 0xce, 0x9e, 0x43, 0x23, 0xcf, 0x4c, 0x73, 0xaf, 0xcd, 0x11, 0x72, 0x03, 0xb3, + 0x0b, 0x0e, 0x2d, 0x20, 0x6e, 0x65, 0x6b, 0x12, 0x09, 0xbd, 0x32, 0x63, 0x75, 0xe8, 0x16, 0xe3, + 0xfb, 0x60, 0x2f, 0xb9, 0x98, 0xcd, 0x35, 0xb1, 0x5d, 0xd4, 0x3d, 0xa6, 0x39, 0x6a, 0x9d, 0x01, + 0x94, 0xc1, 0x71, 0x13, 0xac, 0x2b, 0xbe, 0xca, 0xaf, 0x66, 0xf3, 0xb9, 0xd9, 0xf2, 0x05, 0x8b, + 0xae, 0x39, 0xa9, 0x18, 0x59, 0x06, 0x5e, 0x55, 0xce, 0x50, 0xeb, 0x25, 0x34, 0x76, 0xe2, 0xfd, + 0x4b, 0xea, 0xec, 0x48, 0x3b, 0x27, 0x50, 0x2f, 0xf6, 0x12, 0xff, 0x0f, 0xc7, 0x1f, 0xfc, 0xd1, + 0xfb, 0x89, 0xff, 0x65, 0xec, 0xd3, 0xe0, 0x7c, 0xd8, 0x3c, 0xd8, 0x96, 0x06, 0x41, 0x5e, 0x42, + 0x9d, 0x67, 0x00, 0xe5, 0xe6, 0xe1, 0x3a, 0x1c, 0x06, 0x1f, 0x03, 0xbf, 0x79, 0x80, 0x01, 0xec, + 0xd1, 0xf8, 0x7c, 0x3c, 0xb8, 0x68, 0x22, 0x5c, 0x03, 0xeb, 0x5d, 0x30, 0x6a, 0x56, 0xde, 0x7a, + 0x3f, 0xd7, 0x6d, 0xf4, 0x6b, 0xdd, 0x46, 0xbf, 0xd7, 0x6d, 0xf4, 0xd5, 0xcd, 0x2e, 0x5d, 0xc8, + 0x1e, 0x4b, 0x44, 0x6f, 0xcf, 0x43, 0xbf, 0xb4, 0xcd, 0x0b, 0x3f, 0xfd, 0x13, 0x00, 0x00, 0xff, + 0xff, 0x52, 0x1f, 0x71, 0x64, 0x6d, 0x04, 0x00, 0x00, } diff --git a/networking/v1alpha3/service_entry.proto b/networking/v1alpha3/service_entry.proto index c1f233f260..b4f16f8b34 100644 --- a/networking/v1alpha3/service_entry.proto +++ b/networking/v1alpha3/service_entry.proto @@ -15,7 +15,7 @@ syntax = "proto3"; import "networking/v1alpha3/gateway.proto"; -import "networking/v1alpha3/service_dependency.proto"; +import "networking/v1alpha3/sidecar.proto"; package istio.networking.v1alpha3; diff --git a/networking/v1alpha3/sidecar.pb.go b/networking/v1alpha3/sidecar.pb.go new file mode 100644 index 0000000000..6c4e074c0f --- /dev/null +++ b/networking/v1alpha3/sidecar.pb.go @@ -0,0 +1,1405 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: networking/v1alpha3/sidecar.proto + +package v1alpha3 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// ConfigScope defines the visibility of an Istio configuration artifact in +// a namespace when the namespace is imported. By default all +// configuration artifacts are public. Configurations with private scope +// will not be imported when the namespace containing the configuration is +// imported in a Sidecar. +type ConfigScope int32 + +const ( + // Config with this scope are visible to all workloads in the mesh + ConfigScope_PUBLIC ConfigScope = 0 + // Configs with this scope are visible to only workloads in the same + // namespace as the configuration resource. + ConfigScope_PRIVATE ConfigScope = 1 +) + +var ConfigScope_name = map[int32]string{ + 0: "PUBLIC", + 1: "PRIVATE", +} +var ConfigScope_value = map[string]int32{ + "PUBLIC": 0, + "PRIVATE": 1, +} + +func (x ConfigScope) String() string { + return proto.EnumName(ConfigScope_name, int32(x)) +} +func (ConfigScope) EnumDescriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{0} } + +// $hide_from_docs +// CaptureMode describes how traffic to a listener is expected to be +// captured. Applicable only when the listener is bound to an IP. +type CaptureMode int32 + +const ( + // The default capture mode defined by the environment + CaptureMode_DEFAULT CaptureMode = 0 + // Capture traffic using IPtables redirection + CaptureMode_IPTABLES CaptureMode = 1 + // No traffic capture. When used in egress listener, the application is + // expected to explicitly communicate with the listener port/unix + // domain socket. When used in ingress listener, care needs to be taken + // to ensure that the listener port is not in use by other processes on + // the host. + CaptureMode_NONE CaptureMode = 2 +) + +var CaptureMode_name = map[int32]string{ + 0: "DEFAULT", + 1: "IPTABLES", + 2: "NONE", +} +var CaptureMode_value = map[string]int32{ + "DEFAULT": 0, + "IPTABLES": 1, + "NONE": 2, +} + +func (x CaptureMode) String() string { + return proto.EnumName(CaptureMode_name, int32(x)) +} +func (CaptureMode) EnumDescriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{1} } + +// `Sidecar` describes the configuration of the sidecar proxy that mediates +// inbound and outbound communication to the workload it is attached to. By +// default, Istio will program all sidecar proxies in the mesh with the +// necessary configuration required to reach every workload in the mesh, as +// well as accept traffic on all the ports associated with the +// workload. The Sidecar resource provides a way to fine tune the set of +// ports, protocols that the proxy will accept when forwarding traffic to +// and from the workload. In addition, it is possible to restrict the set +// of services that the proxy can reach when forwarding outbound traffic +// from the workload. +// +// Services and configuration in a mesh are organized into one or more +// namespaces (e.g., a Kubernetes namespace or a CF org/space). A Sidecar +// resource in a namespace will apply to one or more workloads in the same +// namespace, selected using the workloadSelector. In the absence of a +// workloadSelector, it will apply to all workloads in the same +// namespace. When determining the Sidecar resource to be applied to a +// workload, preference will be given to the resource with a +// workloadSelector that selects this workload, over a Sidecar resource +// without any workloadSelector. +// +// NOTE: *_Each namespace can have only one Sidecar resource without any +// workload selector_*. The behavior of the system is undefined if more +// than one selector-less Sidecar resources exist in a given namespace. The +// behavior of the system is undefined if two or more Sidecar resources +// with a workload selector select the same workload. +// +// The example below delcares a Sidecar resource in the prod-us1 namespace +// that configures the sidecar to allow egress traffic to public services +// in the prod-us1, prod-apis, and the istio-system namespaces. +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: Sidecar +// metadata: +// name: default +// namespace: prod-us1 +// spec: +// egress: +// - hosts: +// - "prod-us1/*" +// - "prod-apis/*" +// - "istio-system/*" +// ``` +// +type Sidecar struct { + // $hide_from_docs + // Criteria used to select the specific set of pods/VMs on which this + // sidecar configuration should be applied. If omitted, the sidecar + // configuration will be applied to all workloads in the current config + // namespace. + WorkloadSelector *WorkloadSelector `protobuf:"bytes,1,opt,name=workload_selector,json=workloadSelector" json:"workload_selector,omitempty"` + // $hide_from_docs + // Ingress specifies the configuration of the sidecar for processing + // inbound traffic to the attached workload. If omitted, Istio will + // autoconfigure the sidecar based on the information about the workload + // obtained from the orchestration platform (e.g., exposed ports, services, + // etc.). + Ingress []*IstioIngressListener `protobuf:"bytes,2,rep,name=ingress" json:"ingress,omitempty"` + // Egress specifies the configuration of the sidecar for processing + // outbound traffic from the attached workload to other services in the + // mesh. If omitted, Istio will autoconfigure the sidecar to be able to + // reach every service in the mesh that is visible to this namespace. + Egress []*IstioEgressListener `protobuf:"bytes,3,rep,name=egress" json:"egress,omitempty"` +} + +func (m *Sidecar) Reset() { *m = Sidecar{} } +func (m *Sidecar) String() string { return proto.CompactTextString(m) } +func (*Sidecar) ProtoMessage() {} +func (*Sidecar) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{0} } + +func (m *Sidecar) GetWorkloadSelector() *WorkloadSelector { + if m != nil { + return m.WorkloadSelector + } + return nil +} + +func (m *Sidecar) GetIngress() []*IstioIngressListener { + if m != nil { + return m.Ingress + } + return nil +} + +func (m *Sidecar) GetEgress() []*IstioEgressListener { + if m != nil { + return m.Egress + } + return nil +} + +// $hide_from_docs +// IstioIngressListener specifies the properties of an inbound +// traffic listener on the sidecar proxy attached to a workload. +type IstioIngressListener struct { + // REQUIRED. The port associated with the listener. If using + // unix domain socket, use 0 as the port number, with a valid + // protocol. + Port *Port `protobuf:"bytes,1,opt,name=port" json:"port,omitempty"` + // The ip or the unix domain socket to which the listener should be bound + // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux + // abstract namespace). If omitted, Istio will autoconfigure the defaults + // based on imported services and the workload to which this + // configuration is applied to. + Bind string `protobuf:"bytes,2,opt,name=bind,proto3" json:"bind,omitempty"` + // When the bind address is an IP, the captureMode option dictates + // how traffic to the listener is expected to be captured (or not). + CaptureMode CaptureMode `protobuf:"varint,3,opt,name=capture_mode,json=captureMode,proto3,enum=istio.networking.v1alpha3.CaptureMode" json:"capture_mode,omitempty"` + // The loopback IP endpoint or unix domain socket to which traffic should + // be forwarded to by default. This configuration can be used to redirect + // traffic arriving at the bind point on the sidecar to a port or unix + // domain socket where the application workload is listening for + // connections. Format should be 127.0.0.1:PORT or unix:///path/to/socket + DefaultEndpoint string `protobuf:"bytes,4,opt,name=default_endpoint,json=defaultEndpoint,proto3" json:"default_endpoint,omitempty"` +} + +func (m *IstioIngressListener) Reset() { *m = IstioIngressListener{} } +func (m *IstioIngressListener) String() string { return proto.CompactTextString(m) } +func (*IstioIngressListener) ProtoMessage() {} +func (*IstioIngressListener) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{1} } + +func (m *IstioIngressListener) GetPort() *Port { + if m != nil { + return m.Port + } + return nil +} + +func (m *IstioIngressListener) GetBind() string { + if m != nil { + return m.Bind + } + return "" +} + +func (m *IstioIngressListener) GetCaptureMode() CaptureMode { + if m != nil { + return m.CaptureMode + } + return CaptureMode_DEFAULT +} + +func (m *IstioIngressListener) GetDefaultEndpoint() string { + if m != nil { + return m.DefaultEndpoint + } + return "" +} + +// IstioEgressListener specifies the properties of an outbound traffic +// listener on the sidecar proxy attached to a workload. +type IstioEgressListener struct { + // $hide_from_docs + // The port associated with the listener. If using unix domain socket, + // use 0 as the port number, with a valid protocol. The port if + // specified, will be used as the default destination port associated + // with the imported hosts. If the port is omitted, Istio will infer the + // listener ports based on the imported hosts. Note that when multiple + // egress listeners are specified, where one or more listeners have + // specific ports while others have no port, the hosts exposed on a + // listener port will be based on the listener with the most specific + // port. + Port *Port `protobuf:"bytes,1,opt,name=port" json:"port,omitempty"` + // $hide_from_docs + // The ip or the unix domain socket to which the listener should be bound + // to. Port MUST be specified if bind is not empty. Format: + // x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux abstract + // namespace). If omitted, Istio will autoconfigure the defaults based on + // imported services and the workload to which this configuration is + // applied to. + Bind string `protobuf:"bytes,2,opt,name=bind,proto3" json:"bind,omitempty"` + // When the bind address is an IP, the captureMode option dictates + // how traffic to the listener is expected to be captured (or not). + CaptureMode CaptureMode `protobuf:"varint,3,opt,name=capture_mode,json=captureMode,proto3,enum=istio.networking.v1alpha3.CaptureMode" json:"capture_mode,omitempty"` + // One or more services/virtualServices exposed by the listener in + // namespace/dnsName format. Publicly scoped services and + // VirtualServices from remote namespaces corresponding to the specified + // hosts will be imported. The service in a namespace can be a service in + // the service registry (e.g., a kubernetes or cloud foundry service) or + // a service specified via ServiceEntry configuration. In addition, any + // publicly scoped DestinationRule associated with the imported services + // will also be imported. + // + // Set the namespace to * to import a particular service from any + // available namespace (e.g., "*/foo.example.com"). Set the dnsName field + // to * to import all services from the specified namespace (e.g., + // "prod/*"). The services should be specified using FQDN format. + // + // NOTE: Only exported services and configuration artifacts from a + // namespace can be imported. Private services/configuration will not be + // imported. Refer to the scope setting associated with VirtualService, + // DestinationRule, ServiceEntry, etc. for details. + Hosts []string `protobuf:"bytes,4,rep,name=hosts" json:"hosts,omitempty"` +} + +func (m *IstioEgressListener) Reset() { *m = IstioEgressListener{} } +func (m *IstioEgressListener) String() string { return proto.CompactTextString(m) } +func (*IstioEgressListener) ProtoMessage() {} +func (*IstioEgressListener) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{2} } + +func (m *IstioEgressListener) GetPort() *Port { + if m != nil { + return m.Port + } + return nil +} + +func (m *IstioEgressListener) GetBind() string { + if m != nil { + return m.Bind + } + return "" +} + +func (m *IstioEgressListener) GetCaptureMode() CaptureMode { + if m != nil { + return m.CaptureMode + } + return CaptureMode_DEFAULT +} + +func (m *IstioEgressListener) GetHosts() []string { + if m != nil { + return m.Hosts + } + return nil +} + +// WorkloadSelector specifies the criteria used to determine if the Gateway +// or Sidecar resource can be applied to a proxy. The matching criteria +// includes the metadata associated with a proxy, workload info such as +// labels attached to the pod/VM, or any other info that the proxy provides +// to Istio during the initial handshake. If multiple conditions are +// specified, all conditions need to match in order for the workload to be +// selected. Currently, only label based selection mechanism is supported. +type WorkloadSelector struct { + // One or more labels that indicate a specific set of pods/VMs on which + // this sidecar configuration should be applied. The scope of label + // search is restricted to the configuration namespace in which the the + // resource is present. + Labels map[string]string `protobuf:"bytes,1,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *WorkloadSelector) Reset() { *m = WorkloadSelector{} } +func (m *WorkloadSelector) String() string { return proto.CompactTextString(m) } +func (*WorkloadSelector) ProtoMessage() {} +func (*WorkloadSelector) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{3} } + +func (m *WorkloadSelector) GetLabels() map[string]string { + if m != nil { + return m.Labels + } + return nil +} + +func init() { + proto.RegisterType((*Sidecar)(nil), "istio.networking.v1alpha3.Sidecar") + proto.RegisterType((*IstioIngressListener)(nil), "istio.networking.v1alpha3.IstioIngressListener") + proto.RegisterType((*IstioEgressListener)(nil), "istio.networking.v1alpha3.IstioEgressListener") + proto.RegisterType((*WorkloadSelector)(nil), "istio.networking.v1alpha3.WorkloadSelector") + proto.RegisterEnum("istio.networking.v1alpha3.ConfigScope", ConfigScope_name, ConfigScope_value) + proto.RegisterEnum("istio.networking.v1alpha3.CaptureMode", CaptureMode_name, CaptureMode_value) +} +func (m *Sidecar) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Sidecar) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.WorkloadSelector != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.WorkloadSelector.Size())) + n1, err := m.WorkloadSelector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if len(m.Ingress) > 0 { + for _, msg := range m.Ingress { + dAtA[i] = 0x12 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Egress) > 0 { + for _, msg := range m.Egress { + dAtA[i] = 0x1a + i++ + i = encodeVarintSidecar(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *IstioIngressListener) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IstioIngressListener) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Port != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.Port.Size())) + n2, err := m.Port.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if len(m.Bind) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(m.Bind))) + i += copy(dAtA[i:], m.Bind) + } + if m.CaptureMode != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.CaptureMode)) + } + if len(m.DefaultEndpoint) > 0 { + dAtA[i] = 0x22 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(m.DefaultEndpoint))) + i += copy(dAtA[i:], m.DefaultEndpoint) + } + return i, nil +} + +func (m *IstioEgressListener) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IstioEgressListener) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Port != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.Port.Size())) + n3, err := m.Port.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if len(m.Bind) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(m.Bind))) + i += copy(dAtA[i:], m.Bind) + } + if m.CaptureMode != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(m.CaptureMode)) + } + if len(m.Hosts) > 0 { + for _, s := range m.Hosts { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *WorkloadSelector) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WorkloadSelector) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Labels) > 0 { + for k, _ := range m.Labels { + dAtA[i] = 0xa + i++ + v := m.Labels[k] + mapSize := 1 + len(k) + sovSidecar(uint64(len(k))) + 1 + len(v) + sovSidecar(uint64(len(v))) + i = encodeVarintSidecar(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintSidecar(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func encodeVarintSidecar(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Sidecar) Size() (n int) { + var l int + _ = l + if m.WorkloadSelector != nil { + l = m.WorkloadSelector.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + if len(m.Ingress) > 0 { + for _, e := range m.Ingress { + l = e.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + } + if len(m.Egress) > 0 { + for _, e := range m.Egress { + l = e.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + } + return n +} + +func (m *IstioIngressListener) Size() (n int) { + var l int + _ = l + if m.Port != nil { + l = m.Port.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + l = len(m.Bind) + if l > 0 { + n += 1 + l + sovSidecar(uint64(l)) + } + if m.CaptureMode != 0 { + n += 1 + sovSidecar(uint64(m.CaptureMode)) + } + l = len(m.DefaultEndpoint) + if l > 0 { + n += 1 + l + sovSidecar(uint64(l)) + } + return n +} + +func (m *IstioEgressListener) Size() (n int) { + var l int + _ = l + if m.Port != nil { + l = m.Port.Size() + n += 1 + l + sovSidecar(uint64(l)) + } + l = len(m.Bind) + if l > 0 { + n += 1 + l + sovSidecar(uint64(l)) + } + if m.CaptureMode != 0 { + n += 1 + sovSidecar(uint64(m.CaptureMode)) + } + if len(m.Hosts) > 0 { + for _, s := range m.Hosts { + l = len(s) + n += 1 + l + sovSidecar(uint64(l)) + } + } + return n +} + +func (m *WorkloadSelector) Size() (n int) { + var l int + _ = l + if len(m.Labels) > 0 { + for k, v := range m.Labels { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovSidecar(uint64(len(k))) + 1 + len(v) + sovSidecar(uint64(len(v))) + n += mapEntrySize + 1 + sovSidecar(uint64(mapEntrySize)) + } + } + return n +} + +func sovSidecar(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozSidecar(x uint64) (n int) { + return sovSidecar(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Sidecar) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Sidecar: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Sidecar: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WorkloadSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WorkloadSelector == nil { + m.WorkloadSelector = &WorkloadSelector{} + } + if err := m.WorkloadSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ingress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ingress = append(m.Ingress, &IstioIngressListener{}) + if err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Egress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Egress = append(m.Egress, &IstioEgressListener{}) + if err := m.Egress[len(m.Egress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IstioIngressListener) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IstioIngressListener: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioIngressListener: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Port == nil { + m.Port = &Port{} + } + if err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CaptureMode", wireType) + } + m.CaptureMode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CaptureMode |= (CaptureMode(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultEndpoint", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultEndpoint = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IstioEgressListener) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IstioEgressListener: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioEgressListener: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Port == nil { + m.Port = &Port{} + } + if err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CaptureMode", wireType) + } + m.CaptureMode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CaptureMode |= (CaptureMode(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hosts", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WorkloadSelector) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WorkloadSelector: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WorkloadSelector: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSidecar + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthSidecar + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSidecar + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthSidecar + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Labels[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSidecar(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSidecar + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipSidecar(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSidecar + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSidecar + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSidecar + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthSidecar + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSidecar + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipSidecar(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthSidecar = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowSidecar = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("networking/v1alpha3/sidecar.proto", fileDescriptorSidecar) } + +var fileDescriptorSidecar = []byte{ + // 496 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0x3f, 0x6f, 0xd3, 0x40, + 0x18, 0xc6, 0x7b, 0xb1, 0x49, 0x9a, 0xd7, 0x15, 0x98, 0xa3, 0x83, 0xe9, 0x10, 0x4c, 0x86, 0xca, + 0x14, 0xc9, 0x16, 0xc9, 0xc0, 0x9f, 0x2d, 0x09, 0xae, 0x64, 0xc9, 0xb4, 0x91, 0x93, 0x02, 0x62, + 0x89, 0x2e, 0xf6, 0x35, 0x3d, 0xd5, 0xf8, 0xac, 0xf3, 0xa5, 0x51, 0xbe, 0x0c, 0x5f, 0x85, 0x95, + 0x91, 0x85, 0x1d, 0xe5, 0x43, 0x30, 0x23, 0xff, 0xa9, 0x5a, 0xa2, 0x10, 0xc4, 0xd6, 0xed, 0xde, + 0xf7, 0x9e, 0xe7, 0xf7, 0xfa, 0xf1, 0xdd, 0xc1, 0xd3, 0x84, 0xca, 0x05, 0x17, 0x97, 0x2c, 0x99, + 0x39, 0x57, 0x2f, 0x48, 0x9c, 0x5e, 0x90, 0xae, 0x93, 0xb1, 0x88, 0x86, 0x44, 0xd8, 0xa9, 0xe0, + 0x92, 0xe3, 0xc7, 0x2c, 0x93, 0x8c, 0xdb, 0x37, 0x42, 0xfb, 0x5a, 0x78, 0xb0, 0xd1, 0x3d, 0x23, + 0x92, 0x2e, 0xc8, 0xb2, 0x74, 0xb7, 0x7f, 0x21, 0x68, 0x8c, 0x4a, 0x1e, 0xfe, 0x08, 0x0f, 0x73, + 0x75, 0xcc, 0x49, 0x34, 0xc9, 0x68, 0x4c, 0x43, 0xc9, 0x85, 0x81, 0x4c, 0x64, 0x69, 0x9d, 0xe7, + 0xf6, 0x5f, 0xa7, 0xd8, 0x1f, 0x2a, 0xcf, 0xa8, 0xb2, 0x04, 0xfa, 0x62, 0xad, 0x83, 0x3d, 0x68, + 0xb0, 0x64, 0x26, 0x68, 0x96, 0x19, 0x35, 0x53, 0xb1, 0xb4, 0x8e, 0xb3, 0x85, 0xe7, 0xe5, 0x3b, + 0x5e, 0x29, 0xf7, 0x59, 0x26, 0x69, 0x42, 0x45, 0x70, 0xed, 0xc7, 0xc7, 0x50, 0xa7, 0x25, 0x49, + 0x29, 0x48, 0xf6, 0xbf, 0x48, 0xee, 0x9f, 0xa0, 0xca, 0xdd, 0xfe, 0x81, 0x60, 0x7f, 0xd3, 0x24, + 0xdc, 0x05, 0x35, 0xe5, 0x42, 0x56, 0xc1, 0x9f, 0x6c, 0xc1, 0x0f, 0xb9, 0x90, 0x41, 0x21, 0xc6, + 0x18, 0xd4, 0x29, 0x4b, 0x22, 0xa3, 0x66, 0x22, 0xab, 0x19, 0x14, 0x6b, 0xec, 0xc1, 0x5e, 0x48, + 0x52, 0x39, 0x17, 0x74, 0xf2, 0x99, 0x47, 0xd4, 0x50, 0x4c, 0x64, 0xdd, 0xef, 0x1c, 0x6e, 0x01, + 0x0e, 0x4a, 0xf9, 0x3b, 0x1e, 0xd1, 0x40, 0x0b, 0x6f, 0x0a, 0xfc, 0x0c, 0xf4, 0x88, 0x9e, 0x93, + 0x79, 0x2c, 0x27, 0x34, 0x89, 0x52, 0xce, 0x12, 0x69, 0xa8, 0xc5, 0xa8, 0x07, 0x55, 0xdf, 0xad, + 0xda, 0xed, 0xaf, 0x08, 0x1e, 0x6d, 0xc8, 0x7d, 0x27, 0x63, 0xed, 0xc3, 0xbd, 0x0b, 0x9e, 0xc9, + 0xcc, 0x50, 0x4d, 0xc5, 0x6a, 0x06, 0x65, 0xd1, 0xfe, 0x82, 0x40, 0x5f, 0xbf, 0x53, 0xf8, 0x14, + 0xea, 0x31, 0x99, 0xd2, 0x38, 0x33, 0x50, 0x71, 0xec, 0x2f, 0xff, 0xe3, 0x42, 0xda, 0x7e, 0xe1, + 0x74, 0x13, 0x29, 0x96, 0x41, 0x85, 0x39, 0x78, 0x0d, 0xda, 0xad, 0x36, 0xd6, 0x41, 0xb9, 0xa4, + 0xcb, 0xe2, 0xef, 0x34, 0x83, 0x7c, 0x99, 0x7f, 0xdc, 0x15, 0x89, 0xe7, 0xb4, 0x0a, 0x5f, 0x16, + 0x6f, 0x6a, 0xaf, 0xd0, 0xd1, 0x21, 0x68, 0x03, 0x9e, 0x9c, 0xb3, 0xd9, 0x28, 0xe4, 0x29, 0xc5, + 0x00, 0xf5, 0xe1, 0x59, 0xdf, 0xf7, 0x06, 0xfa, 0x0e, 0xd6, 0xa0, 0x31, 0x0c, 0xbc, 0xf7, 0xbd, + 0xb1, 0xab, 0xa3, 0xa3, 0x0e, 0x68, 0xb7, 0xa2, 0xe7, 0x7b, 0x6f, 0xdd, 0xe3, 0xde, 0x99, 0x3f, + 0xd6, 0x77, 0xf0, 0x1e, 0xec, 0x7a, 0xc3, 0x71, 0xaf, 0xef, 0xbb, 0x23, 0x1d, 0xe1, 0x5d, 0x50, + 0x4f, 0x4e, 0x4f, 0x5c, 0xbd, 0xd6, 0xb7, 0xbf, 0xad, 0x5a, 0xe8, 0xfb, 0xaa, 0x85, 0x7e, 0xae, + 0x5a, 0xe8, 0x93, 0x59, 0x86, 0x64, 0xdc, 0x21, 0x29, 0x73, 0x36, 0xbc, 0xe6, 0x69, 0xbd, 0x78, + 0xc6, 0xdd, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x62, 0xef, 0x1c, 0x27, 0x29, 0x04, 0x00, 0x00, +} diff --git a/networking/v1alpha3/sidecar.proto b/networking/v1alpha3/sidecar.proto new file mode 100644 index 0000000000..369b6be38c --- /dev/null +++ b/networking/v1alpha3/sidecar.proto @@ -0,0 +1,251 @@ +// Copyright 2018 Istio Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +import "networking/v1alpha3/gateway.proto"; + +package istio.networking.v1alpha3; + +option go_package = "istio.io/api/networking/v1alpha3"; + +// `Sidecar` describes the configuration of the sidecar proxy that mediates +// inbound and outbound communication to the workload it is attached to. By +// default, Istio will program all sidecar proxies in the mesh with the +// necessary configuration required to reach every workload in the mesh, as +// well as accept traffic on all the ports associated with the +// workload. The Sidecar resource provides a way to fine tune the set of +// ports, protocols that the proxy will accept when forwarding traffic to +// and from the workload. In addition, it is possible to restrict the set +// of services that the proxy can reach when forwarding outbound traffic +// from the workload. +// +// Services and configuration in a mesh are organized into one or more +// namespaces (e.g., a Kubernetes namespace or a CF org/space). A Sidecar +// resource in a namespace will apply to one or more workloads in the same +// namespace, selected using the workloadSelector. In the absence of a +// workloadSelector, it will apply to all workloads in the same +// namespace. When determining the Sidecar resource to be applied to a +// workload, preference will be given to the resource with a +// workloadSelector that selects this workload, over a Sidecar resource +// without any workloadSelector. +// +// NOTE: *_Each namespace can have only one Sidecar resource without any +// workload selector_*. The behavior of the system is undefined if more +// than one selector-less Sidecar resources exist in a given namespace. The +// behavior of the system is undefined if two or more Sidecar resources +// with a workload selector select the same workload. +// +// The example below delcares a Sidecar resource in the prod-us1 namespace +// that configures the sidecar to allow egress traffic to public services +// in the prod-us1, prod-apis, and the istio-system namespaces. +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: Sidecar +// metadata: +// name: default +// namespace: prod-us1 +// spec: +// egress: +// - hosts: +// - "prod-us1/*" +// - "prod-apis/*" +// - "istio-system/*" +// ``` +// +message Sidecar { + // $hide_from_docs + // Criteria used to select the specific set of pods/VMs on which this + // sidecar configuration should be applied. If omitted, the sidecar + // configuration will be applied to all workloads in the current config + // namespace. + WorkloadSelector workload_selector = 1; + + // $hide_from_docs + // Ingress specifies the configuration of the sidecar for processing + // inbound traffic to the attached workload. If omitted, Istio will + // autoconfigure the sidecar based on the information about the workload + // obtained from the orchestration platform (e.g., exposed ports, services, + // etc.). + repeated IstioIngressListener ingress = 2; + + // Egress specifies the configuration of the sidecar for processing + // outbound traffic from the attached workload to other services in the + // mesh. If omitted, Istio will autoconfigure the sidecar to be able to + // reach every service in the mesh that is visible to this namespace. + repeated IstioEgressListener egress = 3; +} + +// $hide_from_docs +// IstioIngressListener specifies the properties of an inbound +// traffic listener on the sidecar proxy attached to a workload. +message IstioIngressListener { + // REQUIRED. The port associated with the listener. If using + // unix domain socket, use 0 as the port number, with a valid + // protocol. + Port port = 1; + + // The ip or the unix domain socket to which the listener should be bound + // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux + // abstract namespace). If omitted, Istio will autoconfigure the defaults + // based on imported services and the workload to which this + // configuration is applied to. + string bind = 2; + + // When the bind address is an IP, the captureMode option dictates + // how traffic to the listener is expected to be captured (or not). + CaptureMode capture_mode = 3; + + // The loopback IP endpoint or unix domain socket to which traffic should + // be forwarded to by default. This configuration can be used to redirect + // traffic arriving at the bind point on the sidecar to a port or unix + // domain socket where the application workload is listening for + // connections. Format should be 127.0.0.1:PORT or unix:///path/to/socket + string default_endpoint = 4; +} + +// IstioEgressListener specifies the properties of an outbound traffic +// listener on the sidecar proxy attached to a workload. +message IstioEgressListener { + // $hide_from_docs + // The port associated with the listener. If using unix domain socket, + // use 0 as the port number, with a valid protocol. The port if + // specified, will be used as the default destination port associated + // with the imported hosts. If the port is omitted, Istio will infer the + // listener ports based on the imported hosts. Note that when multiple + // egress listeners are specified, where one or more listeners have + // specific ports while others have no port, the hosts exposed on a + // listener port will be based on the listener with the most specific + // port. + Port port = 1; + + // $hide_from_docs + // The ip or the unix domain socket to which the listener should be bound + // to. Port MUST be specified if bind is not empty. Format: + // x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux abstract + // namespace). If omitted, Istio will autoconfigure the defaults based on + // imported services and the workload to which this configuration is + // applied to. + string bind = 2; + + // When the bind address is an IP, the captureMode option dictates + // how traffic to the listener is expected to be captured (or not). + CaptureMode capture_mode = 3; + + // One or more services/virtualServices exposed by the listener in + // namespace/dnsName format. Publicly scoped services and + // VirtualServices from remote namespaces corresponding to the specified + // hosts will be imported. The service in a namespace can be a service in + // the service registry (e.g., a kubernetes or cloud foundry service) or + // a service specified via ServiceEntry configuration. In addition, any + // publicly scoped DestinationRule associated with the imported services + // will also be imported. + // + // Set the namespace to * to import a particular service from any + // available namespace (e.g., "*/foo.example.com"). Set the dnsName field + // to * to import all services from the specified namespace (e.g., + // "prod/*"). The services should be specified using FQDN format. + // + // NOTE: Only exported services and configuration artifacts from a + // namespace can be imported. Private services/configuration will not be + // imported. Refer to the scope setting associated with VirtualService, + // DestinationRule, ServiceEntry, etc. for details. + repeated string hosts = 4; +} + +// ConfigScope defines the visibility of an Istio configuration artifact in +// a namespace when the namespace is imported. By default all +// configuration artifacts are public. Configurations with private scope +// will not be imported when the namespace containing the configuration is +// imported in a Sidecar. +enum ConfigScope { + // Config with this scope are visible to all workloads in the mesh + PUBLIC = 0; + + // Configs with this scope are visible to only workloads in the same + // namespace as the configuration resource. + PRIVATE = 1; +} + +// WorkloadSelector specifies the criteria used to determine if the Gateway +// or Sidecar resource can be applied to a proxy. The matching criteria +// includes the metadata associated with a proxy, workload info such as +// labels attached to the pod/VM, or any other info that the proxy provides +// to Istio during the initial handshake. If multiple conditions are +// specified, all conditions need to match in order for the workload to be +// selected. Currently, only label based selection mechanism is supported. +message WorkloadSelector { + // One or more labels that indicate a specific set of pods/VMs on which + // this sidecar configuration should be applied. The scope of label + // search is restricted to the configuration namespace in which the the + // resource is present. + map labels = 1; + + // $hide_from_docs + // other forms of identification supplied by the proxy + // when connecting to Pilot, such as X509 fields, tenant IDs, JWT, + // etc. This has nothing to do with the request level authN etc. +} + +// $hide_from_docs +// CaptureMode describes how traffic to a listener is expected to be +// captured. Applicable only when the listener is bound to an IP. +enum CaptureMode { + // The default capture mode defined by the environment + DEFAULT = 0; + + // Capture traffic using IPtables redirection + IPTABLES = 1; + + // No traffic capture. When used in egress listener, the application is + // expected to explicitly communicate with the listener port/unix + // domain socket. When used in ingress listener, care needs to be taken + // to ensure that the listener port is not in use by other processes on + // the host. + NONE = 2; +} + +// $hide_from_docs +// The example below delcares a Sidecar resource in the prod-us1 namespace +// that accepts inbound HTTP traffic on port 9080 and forwards +// it to the attached workload listening on a unix domain socket. In the +// egress direction, in addition to the istio-system namespace, the sidecar +// proxies only HTTP traffic bound for port 9080 for services in the +// prod-us1 namespace. +// +// ```yaml +// apiVersion: networking.istio.io/v1alpha3 +// kind: Sidecar +// metadata: +// name: default +// namespace: prod-us1 +// spec: +// ingress: +// - port: +// number: 9080 +// protocol: HTTP +// name: somename +// defaultEndpoint: unix:///var/run/someuds.sock +// egress: +// - hosts: +// - "istio-system/*" +// - port: +// number: 9080 +// protocol: HTTP +// name: egresshttp +// hosts: +// - "prod-us1/*" +// ``` +// diff --git a/networking/v1alpha3/virtual_service.pb.go b/networking/v1alpha3/virtual_service.pb.go index 9335145531..0e2c10eb3c 100644 --- a/networking/v1alpha3/virtual_service.pb.go +++ b/networking/v1alpha3/virtual_service.pb.go @@ -407,7 +407,7 @@ type HTTPRoute struct { // destination. Mirror *Destination `protobuf:"bytes,9,opt,name=mirror" json:"mirror,omitempty"` // Cross-Origin Resource Sharing policy (CORS). Refer to - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS + // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS // for further details about cross origin resource sharing. CorsPolicy *CorsPolicy `protobuf:"bytes,10,opt,name=cors_policy,json=corsPolicy" json:"cors_policy,omitempty"` // Use of `append_headers` is deprecated. Use the `headers` @@ -580,7 +580,7 @@ type Headers_HeaderOperations struct { // Overwrite the headers specified by key with the given values Set map[string]string `protobuf:"bytes,1,rep,name=set" json:"set,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Append the given values to the headers specified by keys - // (will create a comma separated list of values) + // (will create a comma-separated list of values) Add map[string]string `protobuf:"bytes,2,rep,name=add" json:"add,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Remove a the specified headers Remove []string `protobuf:"bytes,3,rep,name=remove" json:"remove,omitempty"` @@ -9131,119 +9131,119 @@ func init() { } var fileDescriptorVirtualService = []byte{ - // 1818 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x73, 0xe3, 0x48, - 0x15, 0x1f, 0xd9, 0x96, 0xff, 0x3c, 0x3b, 0x99, 0xa4, 0xc9, 0xce, 0x6a, 0xcc, 0xd6, 0x90, 0xf5, - 0xb2, 0x4b, 0xa8, 0xdd, 0x75, 0x0a, 0x0f, 0x2c, 0xa9, 0x65, 0x76, 0x76, 0x93, 0xcc, 0xcc, 0x7a, - 0xa8, 0x19, 0x26, 0x25, 0x87, 0x3d, 0x70, 0x51, 0xc9, 0xd2, 0x8b, 0x2d, 0x46, 0x96, 0x44, 0xab, - 0x95, 0xc4, 0xc5, 0x91, 0x3f, 0x77, 0x28, 0xae, 0x14, 0x9f, 0x82, 0x0b, 0x17, 0xae, 0x9c, 0x28, - 0x3e, 0x01, 0x35, 0x35, 0x07, 0xae, 0x7c, 0x05, 0xaa, 0xff, 0x48, 0x56, 0xe2, 0xc4, 0xb2, 0xc3, - 0x40, 0xed, 0x29, 0xee, 0xee, 0xf7, 0x7b, 0xfd, 0xfa, 0x75, 0xbf, 0xf7, 0x7e, 0x7a, 0x81, 0xef, - 0x06, 0xc8, 0xce, 0x42, 0xfa, 0xd2, 0x0b, 0x46, 0xbb, 0xa7, 0xdf, 0xb3, 0xfd, 0x68, 0x6c, 0xdf, - 0xdf, 0x3d, 0xf5, 0x28, 0x4b, 0x6c, 0xdf, 0x8a, 0x91, 0x9e, 0x7a, 0x0e, 0x76, 0x23, 0x1a, 0xb2, - 0x90, 0xdc, 0xf5, 0x62, 0xe6, 0x85, 0xdd, 0x19, 0xa0, 0x9b, 0x02, 0xda, 0xf7, 0x46, 0x61, 0x38, - 0xf2, 0x71, 0x57, 0x08, 0x0e, 0x93, 0x93, 0x5d, 0x37, 0xa1, 0x36, 0xf3, 0xc2, 0x40, 0x42, 0xe7, - 0xd7, 0xcf, 0xa8, 0x1d, 0x45, 0x48, 0x63, 0xb5, 0xfe, 0xd1, 0x55, 0x56, 0xa8, 0xdd, 0x2d, 0x17, - 0x23, 0x0c, 0x5c, 0x0c, 0x9c, 0xa9, 0x94, 0xee, 0xfc, 0xb9, 0x04, 0xeb, 0x5f, 0x49, 0x13, 0x07, - 0x52, 0x86, 0x6c, 0x81, 0x3e, 0x0e, 0x63, 0x16, 0x1b, 0xda, 0x76, 0x79, 0xa7, 0x61, 0xca, 0x01, - 0x69, 0x43, 0x7d, 0x64, 0x33, 0x3c, 0xb3, 0xa7, 0xb1, 0x51, 0x12, 0x0b, 0xd9, 0x98, 0xec, 0x41, - 0x65, 0xcc, 0x58, 0x64, 0x94, 0xb7, 0xcb, 0x3b, 0xcd, 0xde, 0xb7, 0xbb, 0xd7, 0x1e, 0xae, 0xdb, - 0x3f, 0x3e, 0x3e, 0x32, 0xc3, 0x84, 0xa1, 0x29, 0x10, 0xe4, 0x07, 0x50, 0x66, 0x4e, 0x64, 0x54, - 0x04, 0xf0, 0xbd, 0x05, 0xc0, 0xe3, 0x43, 0x85, 0xe3, 0xf2, 0x02, 0xe6, 0xc7, 0x86, 0x5e, 0x0c, - 0x7b, 0x36, 0x48, 0x61, 0x7e, 0x4c, 0x9e, 0x42, 0xcb, 0x09, 0x83, 0x13, 0x6f, 0x64, 0xc5, 0x4e, - 0x18, 0xa1, 0x51, 0xdd, 0xd6, 0x76, 0xd6, 0x7b, 0x1f, 0x2c, 0xc0, 0x1f, 0x0a, 0xf1, 0x01, 0x97, - 0x36, 0x9b, 0xce, 0x6c, 0xd0, 0x39, 0x85, 0xe6, 0x23, 0x8c, 0x99, 0x17, 0x88, 0xab, 0x21, 0x04, - 0x2a, 0xdc, 0x4d, 0x86, 0xb6, 0xad, 0xed, 0x34, 0x4c, 0xf1, 0x9b, 0xdc, 0x81, 0x6a, 0x9c, 0x0c, - 0x63, 0x64, 0x46, 0x49, 0xcc, 0xaa, 0x11, 0xf9, 0x11, 0x54, 0xa2, 0x90, 0x32, 0xa3, 0xbc, 0xad, - 0xed, 0x34, 0x7b, 0xdf, 0x59, 0xb0, 0xfb, 0x51, 0x48, 0xd9, 0x00, 0x7d, 0x74, 0x58, 0x48, 0x4d, - 0x01, 0xea, 0xfc, 0x1b, 0xa0, 0x91, 0x39, 0x91, 0xec, 0x83, 0x3e, 0xb1, 0x99, 0x33, 0x16, 0x57, - 0xd5, 0xec, 0x7d, 0x58, 0xe0, 0xf9, 0xe7, 0x5c, 0xd6, 0xc4, 0x5f, 0x24, 0x18, 0x33, 0x53, 0x22, - 0xc9, 0x63, 0xd0, 0x29, 0xd7, 0x25, 0x2e, 0xb5, 0xd9, 0xdb, 0x5d, 0xe6, 0xf2, 0x72, 0x27, 0x37, - 0x25, 0x9a, 0x1c, 0x42, 0x9d, 0xa2, 0xeb, 0x51, 0x74, 0x96, 0x39, 0x98, 0xd0, 0xa4, 0xc4, 0xcd, - 0x0c, 0x48, 0xbe, 0x80, 0x1a, 0xc5, 0x33, 0xea, 0x31, 0x34, 0x2a, 0x42, 0xc7, 0x07, 0x85, 0x3a, - 0x84, 0xb4, 0x99, 0xc2, 0xc8, 0x87, 0xb0, 0x79, 0x86, 0xc3, 0x38, 0x74, 0x5e, 0x22, 0xb3, 0x92, - 0x68, 0x44, 0x6d, 0x17, 0x0d, 0x7d, 0x5b, 0xdb, 0xa9, 0x9b, 0x1b, 0xd9, 0xc2, 0x4f, 0xe5, 0x3c, - 0xb9, 0x0f, 0x35, 0xe6, 0x4d, 0x30, 0x4c, 0x98, 0x78, 0x09, 0xcd, 0xde, 0xdd, 0xae, 0x8c, 0xad, - 0x6e, 0x1a, 0x5b, 0xdd, 0x47, 0x2a, 0xf6, 0xcc, 0x54, 0x92, 0x3c, 0xe4, 0x36, 0x32, 0xea, 0x61, - 0x6c, 0xd4, 0x04, 0xa8, 0xf0, 0xb9, 0x23, 0xa3, 0x53, 0x33, 0x05, 0x91, 0x43, 0xd0, 0x4f, 0xec, - 0xc4, 0x67, 0x46, 0x5d, 0xa0, 0x3f, 0x2e, 0x40, 0x3f, 0xe1, 0xb2, 0x4f, 0x83, 0x9f, 0xa3, 0x23, - 0xbd, 0x2d, 0xb0, 0xe4, 0x21, 0x54, 0x27, 0x1e, 0xa5, 0x21, 0x35, 0x1a, 0x85, 0x7e, 0xca, 0x5f, - 0x96, 0x42, 0x91, 0x27, 0xd0, 0x74, 0x42, 0x1a, 0x5b, 0x51, 0xe8, 0x7b, 0xce, 0xd4, 0x00, 0xa1, - 0xe4, 0xfd, 0x85, 0x71, 0x40, 0xe3, 0x23, 0x21, 0x6c, 0x82, 0x93, 0xfd, 0x26, 0x43, 0x58, 0xe7, - 0xb9, 0x27, 0x70, 0xad, 0x31, 0xda, 0x2e, 0xd2, 0xd8, 0x68, 0x8a, 0x57, 0xf4, 0xc3, 0x65, 0x5e, - 0x51, 0x77, 0x5f, 0x40, 0xfb, 0x12, 0xf9, 0x38, 0x60, 0x74, 0x7a, 0x50, 0x32, 0x34, 0x73, 0xcd, - 0xce, 0xcf, 0x93, 0x4f, 0xe1, 0x6d, 0x8a, 0x93, 0xf0, 0x14, 0x2d, 0x8a, 0x71, 0x14, 0x06, 0x31, - 0x66, 0x9b, 0xb5, 0x78, 0x1e, 0x12, 0x98, 0xb7, 0xa4, 0x88, 0xa9, 0x24, 0x52, 0xec, 0x2f, 0xe1, - 0x6d, 0x65, 0xdf, 0x1c, 0x76, 0x4d, 0x18, 0xfa, 0xf9, 0x0a, 0x86, 0x5e, 0x52, 0x3e, 0x33, 0xf8, - 0x2d, 0xfb, 0xaa, 0x75, 0xb2, 0x07, 0x77, 0x32, 0xc3, 0x45, 0xc8, 0x65, 0x7b, 0xaf, 0x67, 0x76, - 0x6f, 0xa5, 0x76, 0x0b, 0x81, 0x14, 0x79, 0x0e, 0x77, 0x32, 0xb3, 0x2f, 0x22, 0x6f, 0x0b, 0xab, - 0x1f, 0xae, 0x64, 0x75, 0x5e, 0xf5, 0xcc, 0xe8, 0x2d, 0xfb, 0x8a, 0x65, 0xf2, 0x00, 0x6a, 0xe9, - 0x56, 0x1b, 0xe2, 0x51, 0x74, 0x16, 0x6d, 0x25, 0x25, 0xcd, 0x14, 0xd2, 0xfe, 0x02, 0xc8, 0xfc, - 0x9d, 0x92, 0x0d, 0x28, 0xbf, 0xc4, 0xa9, 0x4a, 0x8d, 0xfc, 0x27, 0xaf, 0x30, 0xa7, 0xb6, 0x9f, - 0xa0, 0x4a, 0x8c, 0x72, 0xf0, 0x69, 0x69, 0x4f, 0x6b, 0xf7, 0xa1, 0x7d, 0xbd, 0xb3, 0x57, 0xd2, - 0xf4, 0x25, 0xdc, 0xbd, 0xd6, 0x01, 0xab, 0x28, 0xea, 0xfc, 0xab, 0x0c, 0xb5, 0xd4, 0x3d, 0xcf, - 0x79, 0xf0, 0x0b, 0x75, 0x02, 0xdb, 0xec, 0xdd, 0x2f, 0x76, 0x8f, 0xfa, 0xfb, 0x22, 0x42, 0x99, - 0x4a, 0x62, 0x33, 0xd5, 0x41, 0x5e, 0xf0, 0xa4, 0x29, 0xcf, 0x29, 0xf6, 0xbd, 0xa1, 0xbe, 0x4c, - 0x49, 0xfb, 0x2f, 0x25, 0xd8, 0xb8, 0xbc, 0x4c, 0x7e, 0x02, 0x65, 0x5e, 0x84, 0x64, 0x89, 0x78, - 0x70, 0x83, 0x0d, 0xba, 0x03, 0x64, 0xc2, 0x6f, 0x26, 0x57, 0xc4, 0xf5, 0xd9, 0xae, 0xab, 0xea, - 0xc5, 0x8d, 0xf4, 0xed, 0xbb, 0xae, 0xd2, 0x67, 0xbb, 0x2e, 0xaf, 0x93, 0x32, 0x0a, 0x04, 0x7f, - 0x68, 0x98, 0x6a, 0xd4, 0xfe, 0x04, 0xea, 0xe9, 0xc6, 0x2b, 0xdd, 0xfc, 0x27, 0x50, 0x4f, 0x37, - 0x58, 0xe9, 0xa2, 0x7f, 0xaf, 0x41, 0x3d, 0xe5, 0x0b, 0x3c, 0x4d, 0xe7, 0x2b, 0xeb, 0xc7, 0x8b, - 0x39, 0x86, 0x28, 0xac, 0xfb, 0x8c, 0x51, 0x6f, 0x98, 0x30, 0x8c, 0xd3, 0xda, 0xba, 0x7f, 0xb1, - 0xb6, 0x2e, 0x2a, 0xcf, 0xd7, 0xd4, 0xd5, 0xce, 0xef, 0xb8, 0x51, 0x8a, 0xfb, 0x90, 0x83, 0x8b, - 0x46, 0x7d, 0xb4, 0x40, 0xdf, 0xb3, 0xef, 0xff, 0xef, 0x6c, 0xfa, 0x93, 0x0e, 0x1b, 0x97, 0xe9, - 0x04, 0xd9, 0x83, 0x72, 0x42, 0x3d, 0x15, 0x16, 0x8b, 0xea, 0xd1, 0x80, 0x51, 0x2f, 0x18, 0x49, - 0x2c, 0x87, 0xf0, 0x62, 0x16, 0x3b, 0x63, 0x9c, 0xa4, 0x31, 0xb0, 0x2c, 0x58, 0xa1, 0x44, 0x31, - 0x44, 0x36, 0x0e, 0x5d, 0x45, 0x3c, 0x96, 0xc6, 0x4b, 0x14, 0x79, 0x04, 0x0d, 0x3b, 0x61, 0xe3, - 0x90, 0x7a, 0x6c, 0xba, 0x04, 0xef, 0xc8, 0xab, 0x98, 0x01, 0x89, 0x39, 0xcb, 0x9c, 0x92, 0x96, - 0xee, 0xad, 0x40, 0xc6, 0xba, 0xf9, 0xec, 0x94, 0xe5, 0x53, 0xce, 0x2a, 0x05, 0x53, 0xe4, 0xec, - 0x64, 0x4d, 0x12, 0x40, 0x32, 0x84, 0xb5, 0x38, 0x4c, 0xa8, 0x83, 0x96, 0x6f, 0x0f, 0xd1, 0xe7, - 0x2c, 0x84, 0xef, 0xf6, 0xd9, 0x2a, 0xbb, 0x0d, 0x84, 0x82, 0x67, 0x02, 0x2f, 0xb7, 0x6c, 0xc5, - 0xb9, 0xa9, 0x0b, 0x5c, 0xbf, 0x7e, 0x91, 0xeb, 0xb7, 0x87, 0xd0, 0x2a, 0x48, 0xa5, 0x0f, 0xf2, - 0x11, 0xb6, 0xbc, 0x2f, 0x73, 0x11, 0xfc, 0x39, 0x6c, 0xce, 0x99, 0xb8, 0x52, 0x28, 0xff, 0x5d, - 0x87, 0xad, 0xab, 0xd8, 0x2a, 0xe9, 0x43, 0xd3, 0x9d, 0x0d, 0x97, 0x78, 0xad, 0xf9, 0xe7, 0x9f, - 0x87, 0xf2, 0xac, 0x75, 0x86, 0xde, 0x68, 0x2c, 0xd9, 0xbd, 0x6e, 0xaa, 0xd1, 0x22, 0xba, 0x52, - 0x2e, 0xa2, 0x2b, 0xbf, 0xd5, 0xae, 0xe7, 0x2b, 0xf2, 0x13, 0xe9, 0xc7, 0x2b, 0xd2, 0xf3, 0x37, - 0x4e, 0x5d, 0xf4, 0x02, 0xea, 0xf2, 0x2b, 0xed, 0x5a, 0xee, 0x52, 0x15, 0x27, 0x78, 0x7a, 0xd3, - 0x13, 0xdc, 0x90, 0xc6, 0xd4, 0x56, 0xa7, 0x31, 0x5f, 0x43, 0x12, 0xc2, 0x60, 0xe3, 0xff, 0xff, - 0x96, 0x3b, 0x7f, 0x2d, 0xc1, 0xe6, 0x5c, 0x21, 0x21, 0xbb, 0xf0, 0x8d, 0x1c, 0xd8, 0x8a, 0x93, - 0x61, 0x80, 0x59, 0xb7, 0x80, 0xe4, 0x96, 0x06, 0x72, 0x25, 0x4b, 0x63, 0xa5, 0x5c, 0x1a, 0x7b, - 0x2f, 0x4b, 0x63, 0x12, 0x2f, 0x72, 0x77, 0x23, 0xcd, 0x43, 0x12, 0x49, 0x9c, 0xcb, 0xb9, 0xae, - 0x52, 0x48, 0x7f, 0xe7, 0xcc, 0x5d, 0x29, 0xd9, 0xe9, 0x97, 0x92, 0xdd, 0x7f, 0x9d, 0x88, 0xfe, - 0x59, 0x02, 0x32, 0xcf, 0x0f, 0xc8, 0x37, 0xa1, 0x11, 0x07, 0x9e, 0x95, 0x6f, 0xb3, 0xd4, 0xe3, - 0xc0, 0xeb, 0x8b, 0x4e, 0xcb, 0x35, 0xfe, 0x2d, 0x15, 0xfa, 0xb7, 0xbc, 0xc8, 0xbf, 0x95, 0x2b, - 0xfc, 0xeb, 0x5e, 0xf6, 0xaf, 0x5e, 0xf8, 0x51, 0x34, 0x7f, 0x98, 0x95, 0x1c, 0x5c, 0x7d, 0xd3, - 0x0e, 0x7e, 0x08, 0xad, 0x7c, 0x33, 0x81, 0x63, 0x53, 0x1a, 0xd2, 0x90, 0xf4, 0xe2, 0x9d, 0x7c, - 0x79, 0x97, 0xf8, 0xd9, 0x44, 0xe7, 0x33, 0x68, 0xe6, 0x1a, 0x09, 0x2b, 0xc3, 0x11, 0x9a, 0xb9, - 0x1a, 0x46, 0xee, 0x80, 0x8e, 0xe7, 0xb6, 0xa3, 0xfa, 0x40, 0xfd, 0x5b, 0xa6, 0x1c, 0x12, 0x03, - 0xaa, 0x11, 0xc5, 0x13, 0xef, 0x5c, 0x6a, 0xe8, 0xdf, 0x32, 0xd5, 0x98, 0x23, 0x28, 0x8e, 0xf0, - 0x5c, 0xbe, 0x7f, 0x8e, 0x10, 0xc3, 0x83, 0x16, 0x80, 0xe0, 0x6b, 0x16, 0x9b, 0x46, 0xd8, 0xf9, - 0x8d, 0xa6, 0xba, 0x3e, 0xc8, 0xfd, 0xd3, 0x86, 0xba, 0xcd, 0x18, 0x4e, 0x22, 0xf1, 0x78, 0x78, - 0xc0, 0x66, 0x63, 0xb2, 0x0f, 0xb7, 0x23, 0xa4, 0x16, 0xa3, 0x53, 0x2b, 0xed, 0x6d, 0x94, 0x8a, - 0x7a, 0x1b, 0x6b, 0x11, 0xd2, 0x63, 0x3a, 0x3d, 0x56, 0x1d, 0x8e, 0xbb, 0xfc, 0xab, 0x84, 0x2b, - 0x08, 0x03, 0x15, 0x95, 0xa2, 0x79, 0x31, 0x7d, 0x11, 0x74, 0xfe, 0x58, 0x02, 0x98, 0xb5, 0x02, - 0xc8, 0xbb, 0xd0, 0xb2, 0x7d, 0x3f, 0x3c, 0xb3, 0x42, 0xea, 0x8d, 0xbc, 0x40, 0xbd, 0xe4, 0xa6, - 0x98, 0x7b, 0x21, 0xa6, 0xf8, 0x3b, 0x94, 0x22, 0x92, 0x6c, 0xa5, 0xcf, 0x58, 0xe2, 0x9e, 0xcb, - 0xb9, 0x99, 0xd0, 0x85, 0x4a, 0xa9, 0x84, 0xd2, 0x9c, 0xfe, 0x3e, 0xac, 0xe3, 0x79, 0x14, 0x5e, - 0x2a, 0x89, 0x0d, 0x73, 0x4d, 0xce, 0xa6, 0x62, 0x3d, 0xa8, 0x4d, 0xec, 0x73, 0xcb, 0x1e, 0xc9, - 0xbe, 0xcf, 0xc2, 0x83, 0x57, 0x27, 0xf6, 0xf9, 0xfe, 0x08, 0xc9, 0x97, 0xb0, 0x29, 0xf7, 0x77, - 0x28, 0xba, 0x18, 0x30, 0xcf, 0xf6, 0x63, 0xd5, 0x12, 0x6a, 0xcf, 0xa1, 0x0f, 0xc2, 0xd0, 0xff, - 0x8a, 0xbf, 0x3f, 0x73, 0x43, 0x80, 0x0e, 0x67, 0x98, 0xce, 0x1f, 0x74, 0x20, 0xf3, 0x5d, 0x1b, - 0xf2, 0x14, 0x74, 0x17, 0x7d, 0x7b, 0xba, 0xcc, 0x47, 0xe3, 0x1c, 0xba, 0xfb, 0x88, 0x43, 0x4d, - 0xa9, 0x81, 0xab, 0xb2, 0x87, 0x69, 0x32, 0x5d, 0x59, 0xd5, 0x3e, 0x87, 0x9a, 0x52, 0x43, 0xfb, - 0xd7, 0x25, 0xd0, 0x85, 0x6e, 0xf2, 0x0e, 0xd4, 0x22, 0xa4, 0x0e, 0x06, 0xf2, 0xe1, 0xea, 0xa2, - 0xb2, 0xa6, 0x53, 0xe4, 0x01, 0x34, 0x4f, 0xbc, 0x73, 0x74, 0x2d, 0x79, 0x86, 0xa2, 0xe7, 0xd4, - 0xbf, 0x65, 0x82, 0x90, 0x97, 0xba, 0xfb, 0xb0, 0xc9, 0x2f, 0x28, 0x90, 0x2e, 0x52, 0x3a, 0xca, - 0xc5, 0x3a, 0x36, 0x72, 0x28, 0xa9, 0xe9, 0x00, 0x40, 0x99, 0x34, 0xbb, 0xdc, 0x45, 0x75, 0xfd, - 0x48, 0x0a, 0x9b, 0x39, 0xd4, 0xc1, 0x26, 0xdc, 0x1e, 0x33, 0x16, 0x49, 0x33, 0x44, 0x6c, 0xb5, - 0x5f, 0x69, 0xa0, 0x0b, 0xbf, 0x14, 0xb8, 0xe1, 0x5d, 0x68, 0x0a, 0x68, 0xcc, 0x6c, 0x96, 0xc4, - 0xb2, 0x52, 0xf2, 0xb3, 0xf2, 0xc9, 0x81, 0x98, 0xe3, 0x22, 0x23, 0x1a, 0x39, 0xa9, 0x48, 0x1a, - 0xd2, 0xc0, 0x27, 0x67, 0x22, 0x1c, 0xd0, 0xb3, 0x50, 0xb4, 0xef, 0x2a, 0xa9, 0x88, 0x98, 0x7c, - 0x2c, 0x9a, 0x73, 0x6f, 0xe2, 0x9c, 0x2d, 0x00, 0xb1, 0x81, 0x4c, 0x1f, 0x4f, 0xa0, 0x95, 0x6f, - 0x25, 0xf3, 0x74, 0x14, 0x24, 0x93, 0x21, 0x52, 0x71, 0xce, 0x35, 0x9e, 0x8e, 0xe4, 0x98, 0x6c, - 0x41, 0x25, 0xb0, 0xd5, 0x97, 0x18, 0xb7, 0x4b, 0x8c, 0x0e, 0xaa, 0xb2, 0xc0, 0x74, 0xbe, 0x05, - 0x35, 0xb5, 0xd9, 0x2c, 0x23, 0x73, 0x0d, 0x9a, 0xca, 0xc8, 0x07, 0xdd, 0xbf, 0xbd, 0xbe, 0xa7, - 0xfd, 0xe3, 0xf5, 0x3d, 0xed, 0xd5, 0xeb, 0x7b, 0xda, 0xcf, 0xb6, 0xa5, 0xcd, 0x5e, 0xb8, 0x6b, - 0x47, 0xde, 0xee, 0x15, 0xff, 0x96, 0x18, 0x56, 0xc5, 0xcd, 0xdf, 0xff, 0x4f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x0d, 0x63, 0x49, 0x86, 0x3a, 0x19, 0x00, 0x00, + // 1812 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x73, 0x1b, 0x49, + 0x15, 0xcf, 0x48, 0x1a, 0xfd, 0x79, 0x92, 0x1d, 0xbb, 0xf1, 0x66, 0x27, 0x62, 0x2b, 0x38, 0x5a, + 0x76, 0x31, 0xb5, 0xac, 0x5c, 0x28, 0xb0, 0xb8, 0x96, 0x6c, 0x76, 0x6d, 0x27, 0x59, 0x85, 0x4a, + 0x88, 0x6b, 0x64, 0xf6, 0xc0, 0x65, 0xaa, 0x35, 0xd3, 0x96, 0x86, 0x8c, 0x66, 0x86, 0xee, 0x1e, + 0xdb, 0x2a, 0x8e, 0xfc, 0xb9, 0x43, 0x71, 0xa5, 0xf8, 0x14, 0x5c, 0xb8, 0x70, 0xe5, 0x44, 0xf1, + 0x09, 0xa8, 0x54, 0x0e, 0x5c, 0xf9, 0x0a, 0x54, 0xff, 0x99, 0xd1, 0xd8, 0xb2, 0x35, 0x92, 0x09, + 0x14, 0x27, 0xab, 0xbb, 0xdf, 0xef, 0xf5, 0xeb, 0xd7, 0xfd, 0xde, 0xfb, 0xcd, 0x33, 0x7c, 0x3b, + 0x24, 0xfc, 0x2c, 0xa2, 0xaf, 0xfc, 0x70, 0xb4, 0x7b, 0xfa, 0x5d, 0x1c, 0xc4, 0x63, 0xfc, 0x60, + 0xf7, 0xd4, 0xa7, 0x3c, 0xc1, 0x81, 0xc3, 0x08, 0x3d, 0xf5, 0x5d, 0xd2, 0x8d, 0x69, 0xc4, 0x23, + 0x74, 0xd7, 0x67, 0xdc, 0x8f, 0xba, 0x33, 0x40, 0x37, 0x05, 0xb4, 0xef, 0x8d, 0xa2, 0x68, 0x14, + 0x90, 0x5d, 0x29, 0x38, 0x4c, 0x4e, 0x76, 0xbd, 0x84, 0x62, 0xee, 0x47, 0xa1, 0x82, 0xce, 0xaf, + 0x9f, 0x51, 0x1c, 0xc7, 0x84, 0x32, 0xbd, 0x7e, 0xff, 0x2a, 0x2b, 0x98, 0xef, 0x11, 0x17, 0x53, + 0x25, 0xd2, 0xf9, 0x53, 0x09, 0xd6, 0xbf, 0x52, 0x76, 0x0d, 0x94, 0x59, 0x68, 0x0b, 0xcc, 0x71, + 0xc4, 0x38, 0xb3, 0x8c, 0xed, 0xf2, 0x4e, 0xc3, 0x56, 0x03, 0xd4, 0x86, 0xfa, 0x08, 0x73, 0x72, + 0x86, 0xa7, 0xcc, 0x2a, 0xc9, 0x85, 0x6c, 0x8c, 0xf6, 0xa0, 0x32, 0xe6, 0x3c, 0xb6, 0xca, 0xdb, + 0xe5, 0x9d, 0x66, 0xef, 0x9b, 0xdd, 0x6b, 0x4f, 0xd4, 0xed, 0x1f, 0x1f, 0x1f, 0xd9, 0x51, 0xc2, + 0x89, 0x2d, 0x11, 0xe8, 0xfb, 0x50, 0xe6, 0x6e, 0x6c, 0x55, 0x24, 0xf0, 0xfd, 0x05, 0xc0, 0xe3, + 0x43, 0x8d, 0x13, 0xf2, 0x12, 0x16, 0x30, 0xcb, 0x2c, 0x86, 0x3d, 0x1f, 0xa4, 0xb0, 0x80, 0xa1, + 0x67, 0xd0, 0x72, 0xa3, 0xf0, 0xc4, 0x1f, 0x39, 0xcc, 0x8d, 0x62, 0x62, 0x55, 0xb7, 0x8d, 0x9d, + 0xf5, 0xde, 0x87, 0x0b, 0xf0, 0x87, 0x52, 0x7c, 0x20, 0xa4, 0xed, 0xa6, 0x3b, 0x1b, 0x74, 0x4e, + 0xa1, 0xf9, 0x98, 0x30, 0xee, 0x87, 0xf2, 0x3e, 0x10, 0x82, 0x8a, 0x70, 0x93, 0x65, 0x6c, 0x1b, + 0x3b, 0x0d, 0x5b, 0xfe, 0x46, 0x77, 0xa0, 0xca, 0x92, 0x21, 0x23, 0xdc, 0x2a, 0xc9, 0x59, 0x3d, + 0x42, 0x3f, 0x84, 0x4a, 0x1c, 0x51, 0x6e, 0x95, 0xb7, 0x8d, 0x9d, 0x66, 0xef, 0x5b, 0x0b, 0x76, + 0x3f, 0x8a, 0x28, 0x1f, 0x90, 0x80, 0xb8, 0x3c, 0xa2, 0xb6, 0x04, 0x75, 0xfe, 0x05, 0xd0, 0xc8, + 0x9c, 0x88, 0xf6, 0xc1, 0x9c, 0x60, 0xee, 0x8e, 0xe5, 0x55, 0x35, 0x7b, 0x1f, 0x15, 0x78, 0xfe, + 0x85, 0x90, 0xb5, 0xc9, 0xcf, 0x13, 0xc2, 0xb8, 0xad, 0x90, 0xe8, 0x09, 0x98, 0x54, 0xe8, 0x92, + 0x97, 0xda, 0xec, 0xed, 0x2e, 0x73, 0x79, 0xb9, 0x93, 0xdb, 0x0a, 0x8d, 0x0e, 0xa1, 0x4e, 0x89, + 0xe7, 0x53, 0xe2, 0x2e, 0x73, 0x30, 0xa9, 0x49, 0x8b, 0xdb, 0x19, 0x10, 0x7d, 0x01, 0x35, 0x4a, + 0xce, 0xa8, 0xcf, 0x89, 0x55, 0x91, 0x3a, 0x3e, 0x2c, 0xd4, 0x21, 0xa5, 0xed, 0x14, 0x86, 0x3e, + 0x82, 0xcd, 0x33, 0x32, 0x64, 0x91, 0xfb, 0x8a, 0x70, 0x27, 0x89, 0x47, 0x14, 0x7b, 0xc4, 0x32, + 0xb7, 0x8d, 0x9d, 0xba, 0xbd, 0x91, 0x2d, 0xfc, 0x44, 0xcd, 0xa3, 0x07, 0x50, 0xe3, 0xfe, 0x84, + 0x44, 0x09, 0x97, 0x2f, 0xa1, 0xd9, 0xbb, 0xdb, 0x55, 0x01, 0xd5, 0x4d, 0x03, 0xaa, 0xfb, 0x58, + 0x07, 0x9c, 0x9d, 0x4a, 0xa2, 0x47, 0xc2, 0x46, 0x4e, 0x7d, 0xc2, 0xac, 0x9a, 0x04, 0x15, 0x3e, + 0x77, 0xc2, 0xe9, 0xd4, 0x4e, 0x41, 0xe8, 0x10, 0xcc, 0x13, 0x9c, 0x04, 0xdc, 0xaa, 0x4b, 0xf4, + 0xc7, 0x05, 0xe8, 0xa7, 0x42, 0xf6, 0x59, 0xf8, 0x33, 0xe2, 0x2a, 0x6f, 0x4b, 0x2c, 0x7a, 0x04, + 0xd5, 0x89, 0x4f, 0x69, 0x44, 0xad, 0x46, 0xa1, 0x9f, 0xf2, 0x97, 0xa5, 0x51, 0xe8, 0x29, 0x34, + 0xdd, 0x88, 0x32, 0x27, 0x8e, 0x02, 0xdf, 0x9d, 0x5a, 0x20, 0x95, 0x7c, 0xb0, 0x30, 0x0e, 0x28, + 0x3b, 0x92, 0xc2, 0x36, 0xb8, 0xd9, 0x6f, 0x34, 0x84, 0x75, 0x91, 0x70, 0x42, 0xcf, 0x19, 0x13, + 0xec, 0x11, 0xca, 0xac, 0xa6, 0x7c, 0x45, 0x3f, 0x58, 0xe6, 0x15, 0x75, 0xf7, 0x25, 0xb4, 0xaf, + 0x90, 0x4f, 0x42, 0x4e, 0xa7, 0x07, 0x25, 0xcb, 0xb0, 0xd7, 0x70, 0x7e, 0x1e, 0x7d, 0x0a, 0xef, + 0x52, 0x32, 0x89, 0x4e, 0x89, 0x43, 0x09, 0x8b, 0xa3, 0x90, 0x91, 0x6c, 0xb3, 0x96, 0xc8, 0x43, + 0x12, 0xf3, 0x8e, 0x12, 0xb1, 0xb5, 0x44, 0x8a, 0xfd, 0x05, 0xbc, 0xab, 0xed, 0x9b, 0xc3, 0xae, + 0x49, 0x43, 0x3f, 0x5f, 0xc1, 0xd0, 0x4b, 0xca, 0x67, 0x06, 0xbf, 0x83, 0xaf, 0x5a, 0x47, 0x7b, + 0x70, 0x27, 0x33, 0x5c, 0x86, 0x5c, 0xb6, 0xf7, 0x7a, 0x66, 0xf7, 0x56, 0x6a, 0xb7, 0x14, 0x48, + 0x91, 0xe7, 0x70, 0x27, 0x33, 0xfb, 0x22, 0xf2, 0xb6, 0xb4, 0xfa, 0xd1, 0x4a, 0x56, 0xe7, 0x55, + 0xcf, 0x8c, 0xde, 0xc2, 0x57, 0x2c, 0xa3, 0x87, 0x50, 0x4b, 0xb7, 0xda, 0x90, 0x8f, 0xa2, 0xb3, + 0x68, 0x2b, 0x25, 0x69, 0xa7, 0x90, 0xf6, 0x17, 0x80, 0xe6, 0xef, 0x14, 0x6d, 0x40, 0xf9, 0x15, + 0x99, 0xea, 0xd4, 0x28, 0x7e, 0x8a, 0x0a, 0x73, 0x8a, 0x83, 0x84, 0xe8, 0xc4, 0xa8, 0x06, 0x9f, + 0x96, 0xf6, 0x8c, 0x76, 0x1f, 0xda, 0xd7, 0x3b, 0x7b, 0x25, 0x4d, 0x5f, 0xc2, 0xdd, 0x6b, 0x1d, + 0xb0, 0x8a, 0xa2, 0xce, 0x3f, 0xcb, 0x50, 0x4b, 0xdd, 0xf3, 0x42, 0x04, 0xbf, 0x54, 0x27, 0xb1, + 0xcd, 0xde, 0x83, 0x62, 0xf7, 0xe8, 0xbf, 0x2f, 0x63, 0xa2, 0x52, 0x09, 0xb3, 0x53, 0x1d, 0xe8, + 0xa5, 0x48, 0x9a, 0xea, 0x9c, 0x72, 0xdf, 0x1b, 0xea, 0xcb, 0x94, 0xb4, 0xff, 0x5c, 0x82, 0x8d, + 0xcb, 0xcb, 0xe8, 0xc7, 0x50, 0x16, 0x45, 0x48, 0x95, 0x88, 0x87, 0x37, 0xd8, 0xa0, 0x3b, 0x20, + 0x5c, 0xfa, 0xcd, 0x16, 0x8a, 0x84, 0x3e, 0xec, 0x79, 0xba, 0x5e, 0xdc, 0x48, 0xdf, 0xbe, 0xe7, + 0x69, 0x7d, 0xd8, 0xf3, 0x44, 0x9d, 0x54, 0x51, 0x20, 0xf9, 0x43, 0xc3, 0xd6, 0xa3, 0xf6, 0x27, + 0x50, 0x4f, 0x37, 0x5e, 0xe9, 0xe6, 0x3f, 0x81, 0x7a, 0xba, 0xc1, 0x4a, 0x17, 0xfd, 0x3b, 0x03, + 0xea, 0x29, 0x5f, 0x10, 0x69, 0x3a, 0x5f, 0x59, 0x3f, 0x5e, 0xcc, 0x31, 0x64, 0x61, 0xdd, 0xe7, + 0x9c, 0xfa, 0xc3, 0x84, 0x13, 0x96, 0xd6, 0xd6, 0xfd, 0x8b, 0xb5, 0x75, 0x51, 0x79, 0xbe, 0xa6, + 0xae, 0x76, 0x7e, 0x2b, 0x8c, 0xd2, 0xdc, 0x07, 0x1d, 0x5c, 0x34, 0xea, 0x3b, 0x0b, 0xf4, 0x3d, + 0xff, 0xde, 0x7f, 0xcf, 0xa6, 0x3f, 0x9a, 0xb0, 0x71, 0x99, 0x4e, 0xa0, 0x3d, 0x28, 0x27, 0xd4, + 0xd7, 0x61, 0xb1, 0xa8, 0x1e, 0x0d, 0x38, 0xf5, 0xc3, 0x91, 0xc2, 0x0a, 0x88, 0x28, 0x66, 0xcc, + 0x1d, 0x93, 0x49, 0x1a, 0x03, 0xcb, 0x82, 0x35, 0x4a, 0x16, 0x43, 0xc2, 0xc7, 0x91, 0xa7, 0x89, + 0xc7, 0xd2, 0x78, 0x85, 0x42, 0x8f, 0xa1, 0x81, 0x13, 0x3e, 0x8e, 0xa8, 0xcf, 0xa7, 0x4b, 0xf0, + 0x8e, 0xbc, 0x8a, 0x19, 0x10, 0xd9, 0xb3, 0xcc, 0xa9, 0x68, 0xe9, 0xde, 0x0a, 0x64, 0xac, 0x9b, + 0xcf, 0x4e, 0x59, 0x3e, 0x15, 0xac, 0x52, 0x32, 0x45, 0xc1, 0x4e, 0xd6, 0x14, 0x01, 0x44, 0x43, + 0x58, 0x63, 0x51, 0x42, 0x5d, 0xe2, 0x04, 0x78, 0x48, 0x02, 0xc1, 0x42, 0xc4, 0x6e, 0x9f, 0xad, + 0xb2, 0xdb, 0x40, 0x2a, 0x78, 0x2e, 0xf1, 0x6a, 0xcb, 0x16, 0xcb, 0x4d, 0x5d, 0xe0, 0xfa, 0xf5, + 0x8b, 0x5c, 0xbf, 0x3d, 0x84, 0x56, 0x41, 0x2a, 0x7d, 0x98, 0x8f, 0xb0, 0xe5, 0x7d, 0x99, 0x8b, + 0xe0, 0xcf, 0x61, 0x73, 0xce, 0xc4, 0x95, 0x42, 0xf9, 0x6f, 0x26, 0x6c, 0x5d, 0xc5, 0x56, 0x51, + 0x1f, 0x9a, 0xde, 0x6c, 0xb8, 0xc4, 0x6b, 0xcd, 0x3f, 0xff, 0x3c, 0x54, 0x64, 0xad, 0x33, 0xe2, + 0x8f, 0xc6, 0x8a, 0xdd, 0x9b, 0xb6, 0x1e, 0x2d, 0xa2, 0x2b, 0xe5, 0x22, 0xba, 0xf2, 0x1b, 0xe3, + 0x7a, 0xbe, 0xa2, 0x3e, 0x91, 0x7e, 0xb4, 0x22, 0x3d, 0x7f, 0xeb, 0xd4, 0xc5, 0x2c, 0xa0, 0x2e, + 0xbf, 0x34, 0xae, 0xe5, 0x2e, 0x55, 0x79, 0x82, 0x67, 0x37, 0x3d, 0xc1, 0x0d, 0x69, 0x4c, 0x6d, + 0x75, 0x1a, 0xf3, 0x7f, 0x48, 0x42, 0x38, 0x6c, 0xfc, 0xef, 0xdf, 0x72, 0xe7, 0x2f, 0x25, 0xd8, + 0x9c, 0x2b, 0x24, 0x68, 0x17, 0xbe, 0x96, 0x03, 0x3b, 0x2c, 0x19, 0x86, 0x24, 0xeb, 0x16, 0xa0, + 0xdc, 0xd2, 0x40, 0xad, 0x64, 0x69, 0xac, 0x94, 0x4b, 0x63, 0xef, 0x67, 0x69, 0x4c, 0xe1, 0x65, + 0xee, 0x6e, 0xa4, 0x79, 0x48, 0x21, 0x91, 0x7b, 0x39, 0xd7, 0x55, 0x0a, 0xe9, 0xef, 0x9c, 0xb9, + 0x2b, 0x25, 0x3b, 0xf3, 0x52, 0xb2, 0xfb, 0x8f, 0x13, 0xd1, 0x3f, 0x4a, 0x80, 0xe6, 0xf9, 0x01, + 0xfa, 0x3a, 0x34, 0x58, 0xe8, 0x3b, 0xf9, 0x36, 0x4b, 0x9d, 0x85, 0x7e, 0x5f, 0x76, 0x5a, 0xae, + 0xf1, 0x6f, 0xa9, 0xd0, 0xbf, 0xe5, 0x45, 0xfe, 0xad, 0x5c, 0xe1, 0x5f, 0xef, 0xb2, 0x7f, 0xcd, + 0xc2, 0x8f, 0xa2, 0xf9, 0xc3, 0xac, 0xe4, 0xe0, 0xea, 0xdb, 0x76, 0xf0, 0x23, 0x68, 0xe5, 0x9b, + 0x09, 0x02, 0x9b, 0xd2, 0x90, 0x86, 0xa2, 0x17, 0xef, 0xe5, 0xcb, 0xbb, 0xc2, 0xcf, 0x26, 0x3a, + 0x9f, 0x41, 0x33, 0xd7, 0x48, 0x58, 0x19, 0x4e, 0xa0, 0x99, 0xab, 0x61, 0xe8, 0x0e, 0x98, 0xe4, + 0x1c, 0xbb, 0xba, 0x0f, 0xd4, 0xbf, 0x65, 0xab, 0x21, 0xb2, 0xa0, 0x1a, 0x53, 0x72, 0xe2, 0x9f, + 0x2b, 0x0d, 0xfd, 0x5b, 0xb6, 0x1e, 0x0b, 0x04, 0x25, 0x23, 0x72, 0xae, 0xde, 0xbf, 0x40, 0xc8, + 0xe1, 0x41, 0x0b, 0x40, 0xf2, 0x35, 0x87, 0x4f, 0x63, 0xd2, 0xf9, 0xb5, 0xa1, 0xbb, 0x3e, 0x44, + 0xf8, 0xa7, 0x0d, 0x75, 0xcc, 0x39, 0x99, 0xc4, 0xf2, 0xf1, 0x88, 0x80, 0xcd, 0xc6, 0x68, 0x1f, + 0x6e, 0xc7, 0x84, 0x3a, 0x9c, 0x4e, 0x9d, 0xb4, 0xb7, 0x51, 0x2a, 0xea, 0x6d, 0xac, 0xc5, 0x84, + 0x1e, 0xd3, 0xe9, 0xb1, 0xee, 0x70, 0xdc, 0x15, 0x5f, 0x25, 0x42, 0x41, 0x14, 0xea, 0xa8, 0x94, + 0xcd, 0x8b, 0xe9, 0xcb, 0xb0, 0xf3, 0x87, 0x12, 0xc0, 0xac, 0x15, 0x80, 0xee, 0x43, 0x0b, 0x07, + 0x41, 0x74, 0xe6, 0x44, 0xd4, 0x1f, 0xf9, 0xa1, 0x7e, 0xc9, 0x4d, 0x39, 0xf7, 0x52, 0x4e, 0x89, + 0x77, 0xa8, 0x44, 0x14, 0xd9, 0x4a, 0x9f, 0xb1, 0xc2, 0xbd, 0x50, 0x73, 0x33, 0xa1, 0x0b, 0x95, + 0x52, 0x0b, 0xa5, 0x39, 0xfd, 0x03, 0x58, 0x27, 0xe7, 0x71, 0x74, 0xa9, 0x24, 0x36, 0xec, 0x35, + 0x35, 0x9b, 0x8a, 0xf5, 0xa0, 0x36, 0xc1, 0xe7, 0x0e, 0x1e, 0xa9, 0xbe, 0xcf, 0xc2, 0x83, 0x57, + 0x27, 0xf8, 0x7c, 0x7f, 0x44, 0xd0, 0x97, 0xb0, 0xa9, 0xf6, 0x77, 0x29, 0xf1, 0x48, 0xc8, 0x7d, + 0x1c, 0x30, 0xdd, 0x12, 0x6a, 0xcf, 0xa1, 0x0f, 0xa2, 0x28, 0xf8, 0x4a, 0xbc, 0x3f, 0x7b, 0x43, + 0x82, 0x0e, 0x67, 0x98, 0xce, 0xef, 0x4d, 0x40, 0xf3, 0x5d, 0x1b, 0xf4, 0x0c, 0x4c, 0x8f, 0x04, + 0x78, 0xba, 0xcc, 0x47, 0xe3, 0x1c, 0xba, 0xfb, 0x58, 0x40, 0x6d, 0xa5, 0x41, 0xa8, 0xc2, 0xc3, + 0x34, 0x99, 0xae, 0xac, 0x6a, 0x5f, 0x40, 0x6d, 0xa5, 0xa1, 0xfd, 0xab, 0x12, 0x98, 0x52, 0x37, + 0x7a, 0x0f, 0x6a, 0x31, 0xa1, 0x2e, 0x09, 0xd5, 0xc3, 0x35, 0x65, 0x65, 0x4d, 0xa7, 0xd0, 0x43, + 0x68, 0x9e, 0xf8, 0xe7, 0xc4, 0x73, 0xd4, 0x19, 0x8a, 0x9e, 0x53, 0xff, 0x96, 0x0d, 0x52, 0x5e, + 0xe9, 0xee, 0xc3, 0xa6, 0xb8, 0xa0, 0x50, 0xb9, 0x48, 0xeb, 0x28, 0x17, 0xeb, 0xd8, 0xc8, 0xa1, + 0x94, 0xa6, 0x03, 0x00, 0x6d, 0xd2, 0xec, 0x72, 0x17, 0xd5, 0xf5, 0x23, 0x25, 0x6c, 0xe7, 0x50, + 0x07, 0x9b, 0x70, 0x7b, 0xcc, 0x79, 0xac, 0xcc, 0x90, 0xb1, 0xd5, 0x7e, 0x6d, 0x80, 0x29, 0xfd, + 0x52, 0xe0, 0x86, 0xfb, 0xd0, 0x94, 0x50, 0xc6, 0x31, 0x4f, 0x98, 0xaa, 0x94, 0xe2, 0xac, 0x62, + 0x72, 0x20, 0xe7, 0x84, 0xc8, 0x88, 0xc6, 0x6e, 0x2a, 0x92, 0x86, 0x34, 0x88, 0xc9, 0x99, 0x88, + 0x00, 0xf4, 0x1c, 0x22, 0xdb, 0x77, 0x95, 0x54, 0x44, 0x4e, 0x3e, 0x91, 0xcd, 0xb9, 0xb7, 0x71, + 0xce, 0x16, 0x80, 0xdc, 0x40, 0xa5, 0x8f, 0xa7, 0xd0, 0xca, 0xb7, 0x92, 0x45, 0x3a, 0x0a, 0x93, + 0xc9, 0x90, 0x50, 0x79, 0xce, 0x35, 0x91, 0x8e, 0xd4, 0x18, 0x6d, 0x41, 0x25, 0xc4, 0xfa, 0x4b, + 0x4c, 0xd8, 0x25, 0x47, 0x07, 0x55, 0x55, 0x60, 0x3a, 0xdf, 0x80, 0x9a, 0xde, 0x6c, 0x96, 0x91, + 0x85, 0x06, 0x43, 0x67, 0xe4, 0x83, 0xee, 0x5f, 0xdf, 0xdc, 0x33, 0xfe, 0xfe, 0xe6, 0x9e, 0xf1, + 0xfa, 0xcd, 0x3d, 0xe3, 0xa7, 0xdb, 0xca, 0x66, 0x3f, 0xda, 0xc5, 0xb1, 0xbf, 0x7b, 0xc5, 0xff, + 0x22, 0x86, 0x55, 0x79, 0xf3, 0x0f, 0xfe, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x2f, 0xaf, 0xea, 0xb9, + 0x2f, 0x19, 0x00, 0x00, } diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto index 7675ec1802..860c614246 100644 --- a/networking/v1alpha3/virtual_service.proto +++ b/networking/v1alpha3/virtual_service.proto @@ -16,7 +16,7 @@ syntax = "proto3"; import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; -import "networking/v1alpha3/service_dependency.proto"; +import "networking/v1alpha3/sidecar.proto"; // $title: Traffic Routing // $description: Configuration affecting traffic routing. @@ -388,7 +388,7 @@ message HTTPRoute { Destination mirror = 9; // Cross-Origin Resource Sharing policy (CORS). Refer to - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS + // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS // for further details about cross origin resource sharing. CorsPolicy cors_policy = 10; @@ -430,7 +430,7 @@ message Headers { // Overwrite the headers specified by key with the given values map set = 1; // Append the given values to the headers specified by keys - // (will create a comma separated list of values) + // (will create a comma-separated list of values) map add = 2; // Remove a the specified headers repeated string remove = 3; diff --git a/policy/v1beta1/cfg.pb.go b/policy/v1beta1/cfg.pb.go index b7c9766a33..bc942cc41f 100644 --- a/policy/v1beta1/cfg.pb.go +++ b/policy/v1beta1/cfg.pb.go @@ -20,6 +20,10 @@ RandomSampling RateLimitSampling FractionalPercent + Authentication + Tls + OAuth + Mutual Value IPAddress Duration @@ -115,6 +119,29 @@ func (FractionalPercent_DenominatorType) EnumDescriptor() ([]byte, []int) { return fileDescriptorCfg, []int{9, 0} } +// AuthHeader specifies how to pass access token with authorization header. +type Tls_AuthHeader int32 + +const ( + // Access token is passed in authorization header as what it is + // (authorization: some-token). + PLAIN Tls_AuthHeader = 0 + // Access token is passed to adapter as bearer token (i.e. authorization: + // bearer some-token). + BEARER Tls_AuthHeader = 1 +) + +var Tls_AuthHeader_name = map[int32]string{ + 0: "PLAIN", + 1: "BEARER", +} +var Tls_AuthHeader_value = map[string]int32{ + "PLAIN": 0, + "BEARER": 1, +} + +func (Tls_AuthHeader) EnumDescriptor() ([]byte, []int) { return fileDescriptorCfg, []int{11, 0} } + // AttributeManifest describes a set of Attributes produced by some component // of an Istio deployment. type AttributeManifest struct { @@ -622,6 +649,9 @@ type Connection struct { Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Timeout for remote calls to the backend. Timeout *time.Duration `protobuf:"bytes,3,opt,name=timeout,stdduration" json:"timeout,omitempty"` + // Auth config for the connection to the backend. If omitted, plain text will + // be used. + Authentication *Authentication `protobuf:"bytes,4,opt,name=authentication" json:"authentication,omitempty"` } func (m *Connection) Reset() { *m = Connection{} } @@ -642,6 +672,13 @@ func (m *Connection) GetTimeout() *time.Duration { return nil } +func (m *Connection) GetAuthentication() *Authentication { + if m != nil { + return m.Authentication + } + return nil +} + // $hide_from_docs // Sampling provides configuration of sampling strategies for Rule actions. // Multiple sampling strategies are supported. When multiple strategies are configured, @@ -795,6 +832,439 @@ func (m *FractionalPercent) GetDenominator() FractionalPercent_DenominatorType { return HUNDRED } +// Authentication allows the operator to specify the authentication of +// connections to out-of-process infrastructure backend. +type Authentication struct { + // Types that are valid to be assigned to AuthType: + // *Authentication_Tls + // *Authentication_Mutual + AuthType isAuthentication_AuthType `protobuf_oneof:"auth_type"` +} + +func (m *Authentication) Reset() { *m = Authentication{} } +func (*Authentication) ProtoMessage() {} +func (*Authentication) Descriptor() ([]byte, []int) { return fileDescriptorCfg, []int{10} } + +type isAuthentication_AuthType interface { + isAuthentication_AuthType() + Equal(interface{}) bool + MarshalTo([]byte) (int, error) + Size() int +} + +type Authentication_Tls struct { + Tls *Tls `protobuf:"bytes,1,opt,name=tls,oneof"` +} +type Authentication_Mutual struct { + Mutual *Mutual `protobuf:"bytes,2,opt,name=mutual,oneof"` +} + +func (*Authentication_Tls) isAuthentication_AuthType() {} +func (*Authentication_Mutual) isAuthentication_AuthType() {} + +func (m *Authentication) GetAuthType() isAuthentication_AuthType { + if m != nil { + return m.AuthType + } + return nil +} + +func (m *Authentication) GetTls() *Tls { + if x, ok := m.GetAuthType().(*Authentication_Tls); ok { + return x.Tls + } + return nil +} + +func (m *Authentication) GetMutual() *Mutual { + if x, ok := m.GetAuthType().(*Authentication_Mutual); ok { + return x.Mutual + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Authentication) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Authentication_OneofMarshaler, _Authentication_OneofUnmarshaler, _Authentication_OneofSizer, []interface{}{ + (*Authentication_Tls)(nil), + (*Authentication_Mutual)(nil), + } +} + +func _Authentication_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Authentication) + // auth_type + switch x := m.AuthType.(type) { + case *Authentication_Tls: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Tls); err != nil { + return err + } + case *Authentication_Mutual: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Mutual); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Authentication.AuthType has unexpected type %T", x) + } + return nil +} + +func _Authentication_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Authentication) + switch tag { + case 1: // auth_type.tls + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Tls) + err := b.DecodeMessage(msg) + m.AuthType = &Authentication_Tls{msg} + return true, err + case 2: // auth_type.mutual + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Mutual) + err := b.DecodeMessage(msg) + m.AuthType = &Authentication_Mutual{msg} + return true, err + default: + return false, nil + } +} + +func _Authentication_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Authentication) + // auth_type + switch x := m.AuthType.(type) { + case *Authentication_Tls: + s := proto.Size(x.Tls) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *Authentication_Mutual: + s := proto.Size(x.Mutual) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Tls let operator specify client authentication setting when TLS is used for +// connection to the backend. +type Tls struct { + // The path to the file holding additional CA certificates to well known + // public certs. + CaCertificates string `protobuf:"bytes,1,opt,name=ca_certificates,json=caCertificates,proto3" json:"ca_certificates,omitempty"` + // Specifies how to get access token for client authn and authz. + // + // Types that are valid to be assigned to TokenSource: + // *Tls_TokenPath + // *Tls_Oauth + TokenSource isTls_TokenSource `protobuf_oneof:"token_source"` + // Specifies how to pass access token to the adapter backend. + // + // Types that are valid to be assigned to TokenType: + // *Tls_AuthHeader_ + // *Tls_CustomHeader + TokenType isTls_TokenType `protobuf_oneof:"token_type"` +} + +func (m *Tls) Reset() { *m = Tls{} } +func (*Tls) ProtoMessage() {} +func (*Tls) Descriptor() ([]byte, []int) { return fileDescriptorCfg, []int{11} } + +type isTls_TokenSource interface { + isTls_TokenSource() + Equal(interface{}) bool + MarshalTo([]byte) (int, error) + Size() int +} +type isTls_TokenType interface { + isTls_TokenType() + Equal(interface{}) bool + MarshalTo([]byte) (int, error) + Size() int +} + +type Tls_TokenPath struct { + TokenPath string `protobuf:"bytes,2,opt,name=token_path,json=tokenPath,proto3,oneof"` +} +type Tls_Oauth struct { + Oauth *OAuth `protobuf:"bytes,3,opt,name=oauth,oneof"` +} +type Tls_AuthHeader_ struct { + AuthHeader Tls_AuthHeader `protobuf:"varint,4,opt,name=auth_header,json=authHeader,proto3,enum=istio.policy.v1beta1.Tls_AuthHeader,oneof"` +} +type Tls_CustomHeader struct { + CustomHeader string `protobuf:"bytes,5,opt,name=custom_header,json=customHeader,proto3,oneof"` +} + +func (*Tls_TokenPath) isTls_TokenSource() {} +func (*Tls_Oauth) isTls_TokenSource() {} +func (*Tls_AuthHeader_) isTls_TokenType() {} +func (*Tls_CustomHeader) isTls_TokenType() {} + +func (m *Tls) GetTokenSource() isTls_TokenSource { + if m != nil { + return m.TokenSource + } + return nil +} +func (m *Tls) GetTokenType() isTls_TokenType { + if m != nil { + return m.TokenType + } + return nil +} + +func (m *Tls) GetCaCertificates() string { + if m != nil { + return m.CaCertificates + } + return "" +} + +func (m *Tls) GetTokenPath() string { + if x, ok := m.GetTokenSource().(*Tls_TokenPath); ok { + return x.TokenPath + } + return "" +} + +func (m *Tls) GetOauth() *OAuth { + if x, ok := m.GetTokenSource().(*Tls_Oauth); ok { + return x.Oauth + } + return nil +} + +func (m *Tls) GetAuthHeader() Tls_AuthHeader { + if x, ok := m.GetTokenType().(*Tls_AuthHeader_); ok { + return x.AuthHeader + } + return PLAIN +} + +func (m *Tls) GetCustomHeader() string { + if x, ok := m.GetTokenType().(*Tls_CustomHeader); ok { + return x.CustomHeader + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Tls) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Tls_OneofMarshaler, _Tls_OneofUnmarshaler, _Tls_OneofSizer, []interface{}{ + (*Tls_TokenPath)(nil), + (*Tls_Oauth)(nil), + (*Tls_AuthHeader_)(nil), + (*Tls_CustomHeader)(nil), + } +} + +func _Tls_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Tls) + // token_source + switch x := m.TokenSource.(type) { + case *Tls_TokenPath: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.TokenPath) + case *Tls_Oauth: + _ = b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Oauth); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Tls.TokenSource has unexpected type %T", x) + } + // token_type + switch x := m.TokenType.(type) { + case *Tls_AuthHeader_: + _ = b.EncodeVarint(4<<3 | proto.WireVarint) + _ = b.EncodeVarint(uint64(x.AuthHeader)) + case *Tls_CustomHeader: + _ = b.EncodeVarint(5<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.CustomHeader) + case nil: + default: + return fmt.Errorf("Tls.TokenType has unexpected type %T", x) + } + return nil +} + +func _Tls_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Tls) + switch tag { + case 2: // token_source.token_path + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.TokenSource = &Tls_TokenPath{x} + return true, err + case 3: // token_source.oauth + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(OAuth) + err := b.DecodeMessage(msg) + m.TokenSource = &Tls_Oauth{msg} + return true, err + case 4: // token_type.auth_header + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.TokenType = &Tls_AuthHeader_{Tls_AuthHeader(x)} + return true, err + case 5: // token_type.custom_header + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.TokenType = &Tls_CustomHeader{x} + return true, err + default: + return false, nil + } +} + +func _Tls_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Tls) + // token_source + switch x := m.TokenSource.(type) { + case *Tls_TokenPath: + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.TokenPath))) + n += len(x.TokenPath) + case *Tls_Oauth: + s := proto.Size(x.Oauth) + n += proto.SizeVarint(3<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // token_type + switch x := m.TokenType.(type) { + case *Tls_AuthHeader_: + n += proto.SizeVarint(4<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.AuthHeader)) + case *Tls_CustomHeader: + n += proto.SizeVarint(5<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.CustomHeader))) + n += len(x.CustomHeader) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// OAuth let operator specify config to fetch access token via oauth when using +// TLS for connection to the backend. +type OAuth struct { + // REQUIRED. OAuth client id for mixer. + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + // REQUIRED. The path to the file holding the client secret for oauth. + ClientSecret string `protobuf:"bytes,2,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + // REQUIRED. The Resource server's token endpoint URL. + TokenUrl string `protobuf:"bytes,3,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"` + // List of requested permissions. + Scopes []string `protobuf:"bytes,4,rep,name=scopes" json:"scopes,omitempty"` + // Additional parameters for requests to the token endpoint. + EndpointParams map[string]string `protobuf:"bytes,5,rep,name=endpoint_params,json=endpointParams" json:"endpoint_params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *OAuth) Reset() { *m = OAuth{} } +func (*OAuth) ProtoMessage() {} +func (*OAuth) Descriptor() ([]byte, []int) { return fileDescriptorCfg, []int{12} } + +func (m *OAuth) GetClientId() string { + if m != nil { + return m.ClientId + } + return "" +} + +func (m *OAuth) GetClientSecret() string { + if m != nil { + return m.ClientSecret + } + return "" +} + +func (m *OAuth) GetTokenUrl() string { + if m != nil { + return m.TokenUrl + } + return "" +} + +func (m *OAuth) GetScopes() []string { + if m != nil { + return m.Scopes + } + return nil +} + +func (m *OAuth) GetEndpointParams() map[string]string { + if m != nil { + return m.EndpointParams + } + return nil +} + +// Mutual let operator specify tls config for mixer as client if mtls is used to +// secure connection to adapter backend. +type Mutual struct { + // The path to the file holding the private key for mtls. If omitted, the + // default mixer private key will be used. + PrivateKey string `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` + // The path to the file holding client certificate for mtls. If omitted, the + // default mixer certificates will be used. + ClientCertificate string `protobuf:"bytes,2,opt,name=client_certificate,json=clientCertificate,proto3" json:"client_certificate,omitempty"` + // The path to the file holding additional CA certificates that are needed to + // verify the presented adapter certificates. By default mixer should already + // include Istio CA certificates and system certificates in cert pool. + CaCertificates string `protobuf:"bytes,3,opt,name=ca_certificates,json=caCertificates,proto3" json:"ca_certificates,omitempty"` +} + +func (m *Mutual) Reset() { *m = Mutual{} } +func (*Mutual) ProtoMessage() {} +func (*Mutual) Descriptor() ([]byte, []int) { return fileDescriptorCfg, []int{13} } + +func (m *Mutual) GetPrivateKey() string { + if m != nil { + return m.PrivateKey + } + return "" +} + +func (m *Mutual) GetClientCertificate() string { + if m != nil { + return m.ClientCertificate + } + return "" +} + +func (m *Mutual) GetCaCertificates() string { + if m != nil { + return m.CaCertificates + } + return "" +} + func init() { proto.RegisterType((*AttributeManifest)(nil), "istio.policy.v1beta1.AttributeManifest") proto.RegisterType((*AttributeManifest_AttributeInfo)(nil), "istio.policy.v1beta1.AttributeManifest.AttributeInfo") @@ -808,8 +1278,13 @@ func init() { proto.RegisterType((*RandomSampling)(nil), "istio.policy.v1beta1.RandomSampling") proto.RegisterType((*RateLimitSampling)(nil), "istio.policy.v1beta1.RateLimitSampling") proto.RegisterType((*FractionalPercent)(nil), "istio.policy.v1beta1.FractionalPercent") + proto.RegisterType((*Authentication)(nil), "istio.policy.v1beta1.Authentication") + proto.RegisterType((*Tls)(nil), "istio.policy.v1beta1.Tls") + proto.RegisterType((*OAuth)(nil), "istio.policy.v1beta1.OAuth") + proto.RegisterType((*Mutual)(nil), "istio.policy.v1beta1.Mutual") proto.RegisterEnum("istio.policy.v1beta1.Rule_HeaderOperationTemplate_Operation", Rule_HeaderOperationTemplate_Operation_name, Rule_HeaderOperationTemplate_Operation_value) proto.RegisterEnum("istio.policy.v1beta1.FractionalPercent_DenominatorType", FractionalPercent_DenominatorType_name, FractionalPercent_DenominatorType_value) + proto.RegisterEnum("istio.policy.v1beta1.Tls_AuthHeader", Tls_AuthHeader_name, Tls_AuthHeader_value) } func (x Rule_HeaderOperationTemplate_Operation) String() string { s, ok := Rule_HeaderOperationTemplate_Operation_name[int32(x)] @@ -825,6 +1300,13 @@ func (x FractionalPercent_DenominatorType) String() string { } return strconv.Itoa(int(x)) } +func (x Tls_AuthHeader) String() string { + s, ok := Tls_AuthHeader_name[int32(x)] + if ok { + return s + } + return strconv.Itoa(int(x)) +} func (this *AttributeManifest) Equal(that interface{}) bool { if that == nil { return this == nil @@ -1116,6 +1598,9 @@ func (this *Connection) Equal(that interface{}) bool { } else if that1.Timeout != nil { return false } + if !this.Authentication.Equal(that1.Authentication) { + return false + } return true } func (this *Sampling) Equal(that interface{}) bool { @@ -1232,76 +1717,368 @@ func (this *FractionalPercent) Equal(that interface{}) bool { } return true } -func (this *AttributeManifest) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&v1beta1.AttributeManifest{") - s = append(s, "Revision: "+fmt.Sprintf("%#v", this.Revision)+",\n") - s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") - keysForAttributes := make([]string, 0, len(this.Attributes)) - for k, _ := range this.Attributes { - keysForAttributes = append(keysForAttributes, k) +func (this *Authentication) Equal(that interface{}) bool { + if that == nil { + return this == nil } - sortkeys.Strings(keysForAttributes) - mapStringForAttributes := "map[string]*AttributeManifest_AttributeInfo{" - for _, k := range keysForAttributes { - mapStringForAttributes += fmt.Sprintf("%#v: %#v,", k, this.Attributes[k]) + + that1, ok := that.(*Authentication) + if !ok { + that2, ok := that.(Authentication) + if ok { + that1 = &that2 + } else { + return false + } } - mapStringForAttributes += "}" - if this.Attributes != nil { - s = append(s, "Attributes: "+mapStringForAttributes+",\n") + if that1 == nil { + return this == nil + } else if this == nil { + return false } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AttributeManifest_AttributeInfo) GoString() string { - if this == nil { - return "nil" + if that1.AuthType == nil { + if this.AuthType != nil { + return false + } + } else if this.AuthType == nil { + return false + } else if !this.AuthType.Equal(that1.AuthType) { + return false } - s := make([]string, 0, 6) - s = append(s, "&v1beta1.AttributeManifest_AttributeInfo{") - s = append(s, "Description: "+fmt.Sprintf("%#v", this.Description)+",\n") - s = append(s, "ValueType: "+fmt.Sprintf("%#v", this.ValueType)+",\n") - s = append(s, "}") - return strings.Join(s, "") + return true } -func (this *Rule) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 9) - s = append(s, "&v1beta1.Rule{") - s = append(s, "Match: "+fmt.Sprintf("%#v", this.Match)+",\n") - if this.Actions != nil { - s = append(s, "Actions: "+fmt.Sprintf("%#v", this.Actions)+",\n") +func (this *Authentication_Tls) Equal(that interface{}) bool { + if that == nil { + return this == nil } - if this.RequestHeaderOperations != nil { - s = append(s, "RequestHeaderOperations: "+fmt.Sprintf("%#v", this.RequestHeaderOperations)+",\n") + + that1, ok := that.(*Authentication_Tls) + if !ok { + that2, ok := that.(Authentication_Tls) + if ok { + that1 = &that2 + } else { + return false + } } - if this.ResponseHeaderOperations != nil { - s = append(s, "ResponseHeaderOperations: "+fmt.Sprintf("%#v", this.ResponseHeaderOperations)+",\n") + if that1 == nil { + return this == nil + } else if this == nil { + return false } - if this.Sampling != nil { - s = append(s, "Sampling: "+fmt.Sprintf("%#v", this.Sampling)+",\n") + if !this.Tls.Equal(that1.Tls) { + return false } - s = append(s, "}") - return strings.Join(s, "") + return true } -func (this *Rule_HeaderOperationTemplate) GoString() string { - if this == nil { - return "nil" +func (this *Authentication_Mutual) Equal(that interface{}) bool { + if that == nil { + return this == nil } - s := make([]string, 0, 7) - s = append(s, "&v1beta1.Rule_HeaderOperationTemplate{") - s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") - s = append(s, "Values: "+fmt.Sprintf("%#v", this.Values)+",\n") - s = append(s, "Operation: "+fmt.Sprintf("%#v", this.Operation)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Action) GoString() string { + + that1, ok := that.(*Authentication_Mutual) + if !ok { + that2, ok := that.(Authentication_Mutual) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Mutual.Equal(that1.Mutual) { + return false + } + return true +} +func (this *Tls) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Tls) + if !ok { + that2, ok := that.(Tls) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.CaCertificates != that1.CaCertificates { + return false + } + if that1.TokenSource == nil { + if this.TokenSource != nil { + return false + } + } else if this.TokenSource == nil { + return false + } else if !this.TokenSource.Equal(that1.TokenSource) { + return false + } + if that1.TokenType == nil { + if this.TokenType != nil { + return false + } + } else if this.TokenType == nil { + return false + } else if !this.TokenType.Equal(that1.TokenType) { + return false + } + return true +} +func (this *Tls_TokenPath) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Tls_TokenPath) + if !ok { + that2, ok := that.(Tls_TokenPath) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.TokenPath != that1.TokenPath { + return false + } + return true +} +func (this *Tls_Oauth) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Tls_Oauth) + if !ok { + that2, ok := that.(Tls_Oauth) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Oauth.Equal(that1.Oauth) { + return false + } + return true +} +func (this *Tls_AuthHeader_) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Tls_AuthHeader_) + if !ok { + that2, ok := that.(Tls_AuthHeader_) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.AuthHeader != that1.AuthHeader { + return false + } + return true +} +func (this *Tls_CustomHeader) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Tls_CustomHeader) + if !ok { + that2, ok := that.(Tls_CustomHeader) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.CustomHeader != that1.CustomHeader { + return false + } + return true +} +func (this *OAuth) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*OAuth) + if !ok { + that2, ok := that.(OAuth) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.ClientId != that1.ClientId { + return false + } + if this.ClientSecret != that1.ClientSecret { + return false + } + if this.TokenUrl != that1.TokenUrl { + return false + } + if len(this.Scopes) != len(that1.Scopes) { + return false + } + for i := range this.Scopes { + if this.Scopes[i] != that1.Scopes[i] { + return false + } + } + if len(this.EndpointParams) != len(that1.EndpointParams) { + return false + } + for i := range this.EndpointParams { + if this.EndpointParams[i] != that1.EndpointParams[i] { + return false + } + } + return true +} +func (this *Mutual) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Mutual) + if !ok { + that2, ok := that.(Mutual) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.PrivateKey != that1.PrivateKey { + return false + } + if this.ClientCertificate != that1.ClientCertificate { + return false + } + if this.CaCertificates != that1.CaCertificates { + return false + } + return true +} +func (this *AttributeManifest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&v1beta1.AttributeManifest{") + s = append(s, "Revision: "+fmt.Sprintf("%#v", this.Revision)+",\n") + s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") + keysForAttributes := make([]string, 0, len(this.Attributes)) + for k, _ := range this.Attributes { + keysForAttributes = append(keysForAttributes, k) + } + sortkeys.Strings(keysForAttributes) + mapStringForAttributes := "map[string]*AttributeManifest_AttributeInfo{" + for _, k := range keysForAttributes { + mapStringForAttributes += fmt.Sprintf("%#v: %#v,", k, this.Attributes[k]) + } + mapStringForAttributes += "}" + if this.Attributes != nil { + s = append(s, "Attributes: "+mapStringForAttributes+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *AttributeManifest_AttributeInfo) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&v1beta1.AttributeManifest_AttributeInfo{") + s = append(s, "Description: "+fmt.Sprintf("%#v", this.Description)+",\n") + s = append(s, "ValueType: "+fmt.Sprintf("%#v", this.ValueType)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Rule) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 9) + s = append(s, "&v1beta1.Rule{") + s = append(s, "Match: "+fmt.Sprintf("%#v", this.Match)+",\n") + if this.Actions != nil { + s = append(s, "Actions: "+fmt.Sprintf("%#v", this.Actions)+",\n") + } + if this.RequestHeaderOperations != nil { + s = append(s, "RequestHeaderOperations: "+fmt.Sprintf("%#v", this.RequestHeaderOperations)+",\n") + } + if this.ResponseHeaderOperations != nil { + s = append(s, "ResponseHeaderOperations: "+fmt.Sprintf("%#v", this.ResponseHeaderOperations)+",\n") + } + if this.Sampling != nil { + s = append(s, "Sampling: "+fmt.Sprintf("%#v", this.Sampling)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Rule_HeaderOperationTemplate) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&v1beta1.Rule_HeaderOperationTemplate{") + s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") + s = append(s, "Values: "+fmt.Sprintf("%#v", this.Values)+",\n") + s = append(s, "Operation: "+fmt.Sprintf("%#v", this.Operation)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Action) GoString() string { if this == nil { return "nil" } @@ -1363,10 +2140,13 @@ func (this *Connection) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 6) + s := make([]string, 0, 7) s = append(s, "&v1beta1.Connection{") s = append(s, "Address: "+fmt.Sprintf("%#v", this.Address)+",\n") s = append(s, "Timeout: "+fmt.Sprintf("%#v", this.Timeout)+",\n") + if this.Authentication != nil { + s = append(s, "Authentication: "+fmt.Sprintf("%#v", this.Authentication)+",\n") + } s = append(s, "}") return strings.Join(s, "") } @@ -1422,6 +2202,120 @@ func (this *FractionalPercent) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *Authentication) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&v1beta1.Authentication{") + if this.AuthType != nil { + s = append(s, "AuthType: "+fmt.Sprintf("%#v", this.AuthType)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Authentication_Tls) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&v1beta1.Authentication_Tls{` + + `Tls:` + fmt.Sprintf("%#v", this.Tls) + `}`}, ", ") + return s +} +func (this *Authentication_Mutual) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&v1beta1.Authentication_Mutual{` + + `Mutual:` + fmt.Sprintf("%#v", this.Mutual) + `}`}, ", ") + return s +} +func (this *Tls) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 9) + s = append(s, "&v1beta1.Tls{") + s = append(s, "CaCertificates: "+fmt.Sprintf("%#v", this.CaCertificates)+",\n") + if this.TokenSource != nil { + s = append(s, "TokenSource: "+fmt.Sprintf("%#v", this.TokenSource)+",\n") + } + if this.TokenType != nil { + s = append(s, "TokenType: "+fmt.Sprintf("%#v", this.TokenType)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Tls_TokenPath) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&v1beta1.Tls_TokenPath{` + + `TokenPath:` + fmt.Sprintf("%#v", this.TokenPath) + `}`}, ", ") + return s +} +func (this *Tls_Oauth) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&v1beta1.Tls_Oauth{` + + `Oauth:` + fmt.Sprintf("%#v", this.Oauth) + `}`}, ", ") + return s +} +func (this *Tls_AuthHeader_) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&v1beta1.Tls_AuthHeader_{` + + `AuthHeader:` + fmt.Sprintf("%#v", this.AuthHeader) + `}`}, ", ") + return s +} +func (this *Tls_CustomHeader) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&v1beta1.Tls_CustomHeader{` + + `CustomHeader:` + fmt.Sprintf("%#v", this.CustomHeader) + `}`}, ", ") + return s +} +func (this *OAuth) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 9) + s = append(s, "&v1beta1.OAuth{") + s = append(s, "ClientId: "+fmt.Sprintf("%#v", this.ClientId)+",\n") + s = append(s, "ClientSecret: "+fmt.Sprintf("%#v", this.ClientSecret)+",\n") + s = append(s, "TokenUrl: "+fmt.Sprintf("%#v", this.TokenUrl)+",\n") + s = append(s, "Scopes: "+fmt.Sprintf("%#v", this.Scopes)+",\n") + keysForEndpointParams := make([]string, 0, len(this.EndpointParams)) + for k, _ := range this.EndpointParams { + keysForEndpointParams = append(keysForEndpointParams, k) + } + sortkeys.Strings(keysForEndpointParams) + mapStringForEndpointParams := "map[string]string{" + for _, k := range keysForEndpointParams { + mapStringForEndpointParams += fmt.Sprintf("%#v: %#v,", k, this.EndpointParams[k]) + } + mapStringForEndpointParams += "}" + if this.EndpointParams != nil { + s = append(s, "EndpointParams: "+mapStringForEndpointParams+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Mutual) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&v1beta1.Mutual{") + s = append(s, "PrivateKey: "+fmt.Sprintf("%#v", this.PrivateKey)+",\n") + s = append(s, "ClientCertificate: "+fmt.Sprintf("%#v", this.ClientCertificate)+",\n") + s = append(s, "CaCertificates: "+fmt.Sprintf("%#v", this.CaCertificates)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringCfg(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -1842,6 +2736,16 @@ func (m *Connection) MarshalTo(dAtA []byte) (int, error) { } i += n6 } + if m.Authentication != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintCfg(dAtA, i, uint64(m.Authentication.Size())) + n7, err := m.Authentication.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + } return i, nil } @@ -1864,21 +2768,21 @@ func (m *Sampling) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintCfg(dAtA, i, uint64(m.Random.Size())) - n7, err := m.Random.MarshalTo(dAtA[i:]) + n8, err := m.Random.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n8 } if m.RateLimit != nil { dAtA[i] = 0x12 i++ i = encodeVarintCfg(dAtA, i, uint64(m.RateLimit.Size())) - n8, err := m.RateLimit.MarshalTo(dAtA[i:]) + n9, err := m.RateLimit.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n9 } return i, nil } @@ -1908,11 +2812,11 @@ func (m *RandomSampling) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintCfg(dAtA, i, uint64(m.PercentSampled.Size())) - n9, err := m.PercentSampled.MarshalTo(dAtA[i:]) + n10, err := m.PercentSampled.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n10 } if m.UseIndependentRandomness { dAtA[i] = 0x18 @@ -1945,11 +2849,11 @@ func (m *RateLimitSampling) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintCfg(dAtA, i, uint64(types.SizeOfStdDuration(m.SamplingDuration))) - n10, err := types.StdDurationMarshalTo(m.SamplingDuration, dAtA[i:]) + n11, err := types.StdDurationMarshalTo(m.SamplingDuration, dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n11 if m.MaxUnsampledEntries != 0 { dAtA[i] = 0x10 i++ @@ -1991,6 +2895,238 @@ func (m *FractionalPercent) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *Authentication) 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 *Authentication) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.AuthType != nil { + nn12, err := m.AuthType.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn12 + } + return i, nil +} + +func (m *Authentication_Tls) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Tls != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintCfg(dAtA, i, uint64(m.Tls.Size())) + n13, err := m.Tls.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } + return i, nil +} +func (m *Authentication_Mutual) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Mutual != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCfg(dAtA, i, uint64(m.Mutual.Size())) + n14, err := m.Mutual.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + } + return i, nil +} +func (m *Tls) 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 *Tls) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.CaCertificates) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.CaCertificates))) + i += copy(dAtA[i:], m.CaCertificates) + } + if m.TokenSource != nil { + nn15, err := m.TokenSource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn15 + } + if m.TokenType != nil { + nn16, err := m.TokenType.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn16 + } + return i, nil +} + +func (m *Tls_TokenPath) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x12 + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.TokenPath))) + i += copy(dAtA[i:], m.TokenPath) + return i, nil +} +func (m *Tls_Oauth) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Oauth != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintCfg(dAtA, i, uint64(m.Oauth.Size())) + n17, err := m.Oauth.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + } + return i, nil +} +func (m *Tls_AuthHeader_) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x20 + i++ + i = encodeVarintCfg(dAtA, i, uint64(m.AuthHeader)) + return i, nil +} +func (m *Tls_CustomHeader) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x2a + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.CustomHeader))) + i += copy(dAtA[i:], m.CustomHeader) + return i, nil +} +func (m *OAuth) 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 *OAuth) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ClientId) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.ClientId))) + i += copy(dAtA[i:], m.ClientId) + } + if len(m.ClientSecret) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.ClientSecret))) + i += copy(dAtA[i:], m.ClientSecret) + } + if len(m.TokenUrl) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.TokenUrl))) + i += copy(dAtA[i:], m.TokenUrl) + } + if len(m.Scopes) > 0 { + for _, s := range m.Scopes { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.EndpointParams) > 0 { + for k, _ := range m.EndpointParams { + dAtA[i] = 0x2a + i++ + v := m.EndpointParams[k] + mapSize := 1 + len(k) + sovCfg(uint64(len(k))) + 1 + len(v) + sovCfg(uint64(len(v))) + i = encodeVarintCfg(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func (m *Mutual) 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 *Mutual) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.PrivateKey) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.PrivateKey))) + i += copy(dAtA[i:], m.PrivateKey) + } + if len(m.ClientCertificate) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.ClientCertificate))) + i += copy(dAtA[i:], m.ClientCertificate) + } + if len(m.CaCertificates) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintCfg(dAtA, i, uint64(len(m.CaCertificates))) + i += copy(dAtA[i:], m.CaCertificates) + } + return i, nil +} + func encodeVarintCfg(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2178,6 +3314,10 @@ func (m *Connection) Size() (n int) { l = types.SizeOfStdDuration(*m.Timeout) n += 1 + l + sovCfg(uint64(l)) } + if m.Authentication != nil { + l = m.Authentication.Size() + n += 1 + l + sovCfg(uint64(l)) + } return n } @@ -2238,26 +3378,148 @@ func (m *FractionalPercent) Size() (n int) { return n } -func sovCfg(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } +func (m *Authentication) Size() (n int) { + var l int + _ = l + if m.AuthType != nil { + n += m.AuthType.Size() } return n } -func sozCfg(x uint64) (n int) { - return sovCfg(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *AttributeManifest) String() string { - if this == nil { - return "nil" + +func (m *Authentication_Tls) Size() (n int) { + var l int + _ = l + if m.Tls != nil { + l = m.Tls.Size() + n += 1 + l + sovCfg(uint64(l)) } - keysForAttributes := make([]string, 0, len(this.Attributes)) - for k, _ := range this.Attributes { - keysForAttributes = append(keysForAttributes, k) + return n +} +func (m *Authentication_Mutual) Size() (n int) { + var l int + _ = l + if m.Mutual != nil { + l = m.Mutual.Size() + n += 1 + l + sovCfg(uint64(l)) + } + return n +} +func (m *Tls) Size() (n int) { + var l int + _ = l + l = len(m.CaCertificates) + if l > 0 { + n += 1 + l + sovCfg(uint64(l)) + } + if m.TokenSource != nil { + n += m.TokenSource.Size() + } + if m.TokenType != nil { + n += m.TokenType.Size() + } + return n +} + +func (m *Tls_TokenPath) Size() (n int) { + var l int + _ = l + l = len(m.TokenPath) + n += 1 + l + sovCfg(uint64(l)) + return n +} +func (m *Tls_Oauth) Size() (n int) { + var l int + _ = l + if m.Oauth != nil { + l = m.Oauth.Size() + n += 1 + l + sovCfg(uint64(l)) + } + return n +} +func (m *Tls_AuthHeader_) Size() (n int) { + var l int + _ = l + n += 1 + sovCfg(uint64(m.AuthHeader)) + return n +} +func (m *Tls_CustomHeader) Size() (n int) { + var l int + _ = l + l = len(m.CustomHeader) + n += 1 + l + sovCfg(uint64(l)) + return n +} +func (m *OAuth) Size() (n int) { + var l int + _ = l + l = len(m.ClientId) + if l > 0 { + n += 1 + l + sovCfg(uint64(l)) + } + l = len(m.ClientSecret) + if l > 0 { + n += 1 + l + sovCfg(uint64(l)) + } + l = len(m.TokenUrl) + if l > 0 { + n += 1 + l + sovCfg(uint64(l)) + } + if len(m.Scopes) > 0 { + for _, s := range m.Scopes { + l = len(s) + n += 1 + l + sovCfg(uint64(l)) + } + } + if len(m.EndpointParams) > 0 { + for k, v := range m.EndpointParams { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovCfg(uint64(len(k))) + 1 + len(v) + sovCfg(uint64(len(v))) + n += mapEntrySize + 1 + sovCfg(uint64(mapEntrySize)) + } + } + return n +} + +func (m *Mutual) Size() (n int) { + var l int + _ = l + l = len(m.PrivateKey) + if l > 0 { + n += 1 + l + sovCfg(uint64(l)) + } + l = len(m.ClientCertificate) + if l > 0 { + n += 1 + l + sovCfg(uint64(l)) + } + l = len(m.CaCertificates) + if l > 0 { + n += 1 + l + sovCfg(uint64(l)) + } + return n +} + +func sovCfg(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozCfg(x uint64) (n int) { + return sovCfg(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *AttributeManifest) String() string { + if this == nil { + return "nil" + } + keysForAttributes := make([]string, 0, len(this.Attributes)) + for k, _ := range this.Attributes { + keysForAttributes = append(keysForAttributes, k) } sortkeys.Strings(keysForAttributes) mapStringForAttributes := "map[string]*AttributeManifest_AttributeInfo{" @@ -2367,6 +3629,7 @@ func (this *Connection) String() string { s := strings.Join([]string{`&Connection{`, `Address:` + fmt.Sprintf("%v", this.Address) + `,`, `Timeout:` + strings.Replace(fmt.Sprintf("%v", this.Timeout), "Duration", "google_protobuf2.Duration", 1) + `,`, + `Authentication:` + strings.Replace(fmt.Sprintf("%v", this.Authentication), "Authentication", "Authentication", 1) + `,`, `}`, }, "") return s @@ -2410,22 +3673,674 @@ func (this *FractionalPercent) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&FractionalPercent{`, - `Numerator:` + fmt.Sprintf("%v", this.Numerator) + `,`, - `Denominator:` + fmt.Sprintf("%v", this.Denominator) + `,`, - `}`, - }, "") - return s -} -func valueToStringCfg(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" + s := strings.Join([]string{`&FractionalPercent{`, + `Numerator:` + fmt.Sprintf("%v", this.Numerator) + `,`, + `Denominator:` + fmt.Sprintf("%v", this.Denominator) + `,`, + `}`, + }, "") + return s +} +func (this *Authentication) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Authentication{`, + `AuthType:` + fmt.Sprintf("%v", this.AuthType) + `,`, + `}`, + }, "") + return s +} +func (this *Authentication_Tls) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Authentication_Tls{`, + `Tls:` + strings.Replace(fmt.Sprintf("%v", this.Tls), "Tls", "Tls", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Authentication_Mutual) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Authentication_Mutual{`, + `Mutual:` + strings.Replace(fmt.Sprintf("%v", this.Mutual), "Mutual", "Mutual", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Tls) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Tls{`, + `CaCertificates:` + fmt.Sprintf("%v", this.CaCertificates) + `,`, + `TokenSource:` + fmt.Sprintf("%v", this.TokenSource) + `,`, + `TokenType:` + fmt.Sprintf("%v", this.TokenType) + `,`, + `}`, + }, "") + return s +} +func (this *Tls_TokenPath) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Tls_TokenPath{`, + `TokenPath:` + fmt.Sprintf("%v", this.TokenPath) + `,`, + `}`, + }, "") + return s +} +func (this *Tls_Oauth) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Tls_Oauth{`, + `Oauth:` + strings.Replace(fmt.Sprintf("%v", this.Oauth), "OAuth", "OAuth", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Tls_AuthHeader_) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Tls_AuthHeader_{`, + `AuthHeader:` + fmt.Sprintf("%v", this.AuthHeader) + `,`, + `}`, + }, "") + return s +} +func (this *Tls_CustomHeader) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Tls_CustomHeader{`, + `CustomHeader:` + fmt.Sprintf("%v", this.CustomHeader) + `,`, + `}`, + }, "") + return s +} +func (this *OAuth) String() string { + if this == nil { + return "nil" + } + keysForEndpointParams := make([]string, 0, len(this.EndpointParams)) + for k, _ := range this.EndpointParams { + keysForEndpointParams = append(keysForEndpointParams, k) + } + sortkeys.Strings(keysForEndpointParams) + mapStringForEndpointParams := "map[string]string{" + for _, k := range keysForEndpointParams { + mapStringForEndpointParams += fmt.Sprintf("%v: %v,", k, this.EndpointParams[k]) + } + mapStringForEndpointParams += "}" + s := strings.Join([]string{`&OAuth{`, + `ClientId:` + fmt.Sprintf("%v", this.ClientId) + `,`, + `ClientSecret:` + fmt.Sprintf("%v", this.ClientSecret) + `,`, + `TokenUrl:` + fmt.Sprintf("%v", this.TokenUrl) + `,`, + `Scopes:` + fmt.Sprintf("%v", this.Scopes) + `,`, + `EndpointParams:` + mapStringForEndpointParams + `,`, + `}`, + }, "") + return s +} +func (this *Mutual) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Mutual{`, + `PrivateKey:` + fmt.Sprintf("%v", this.PrivateKey) + `,`, + `ClientCertificate:` + fmt.Sprintf("%v", this.ClientCertificate) + `,`, + `CaCertificates:` + fmt.Sprintf("%v", this.CaCertificates) + `,`, + `}`, + }, "") + return s +} +func valueToStringCfg(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *AttributeManifest) 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 ErrIntOverflowCfg + } + 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: AttributeManifest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AttributeManifest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Revision = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Attributes == nil { + m.Attributes = make(map[string]*AttributeManifest_AttributeInfo) + } + var mapkey string + var mapvalue *AttributeManifest_AttributeInfo + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCfg + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCfg + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &AttributeManifest_AttributeInfo{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCfg(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCfg + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Attributes[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCfg(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCfg + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AttributeManifest_AttributeInfo) 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 ErrIntOverflowCfg + } + 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: AttributeInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AttributeInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValueType", wireType) + } + m.ValueType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ValueType |= (ValueType(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipCfg(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCfg + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Rule) 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 ErrIntOverflowCfg + } + 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: Rule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Match", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Match = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actions = append(m.Actions, &Action{}) + if err := m.Actions[len(m.Actions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RequestHeaderOperations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RequestHeaderOperations = append(m.RequestHeaderOperations, &Rule_HeaderOperationTemplate{}) + if err := m.RequestHeaderOperations[len(m.RequestHeaderOperations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResponseHeaderOperations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResponseHeaderOperations = append(m.ResponseHeaderOperations, &Rule_HeaderOperationTemplate{}) + if err := m.ResponseHeaderOperations[len(m.ResponseHeaderOperations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sampling", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Sampling == nil { + m.Sampling = &Sampling{} + } + if err := m.Sampling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCfg(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCfg + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) + return nil } -func (m *AttributeManifest) Unmarshal(dAtA []byte) error { +func (m *Rule_HeaderOperationTemplate) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2448,15 +4363,15 @@ func (m *AttributeManifest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AttributeManifest: wiretype end group for non-group") + return fmt.Errorf("proto: HeaderOperationTemplate: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AttributeManifest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HeaderOperationTemplate: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2481,11 +4396,11 @@ func (m *AttributeManifest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Revision = string(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2510,13 +4425,13 @@ func (m *AttributeManifest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.Values = append(m.Values, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Operation", wireType) } - var msglen int + m.Operation = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -2526,115 +4441,11 @@ func (m *AttributeManifest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + m.Operation |= (Rule_HeaderOperationTemplate_Operation(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthCfg - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Attributes == nil { - m.Attributes = make(map[string]*AttributeManifest_AttributeInfo) - } - var mapkey string - var mapvalue *AttributeManifest_AttributeInfo - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCfg - } - 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 ErrIntOverflowCfg - } - 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 ErrInvalidLengthCfg - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCfg - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCfg - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCfg - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue = &AttributeManifest_AttributeInfo{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - } else { - iNdEx = entryPreIndex - skippy, err := skipCfg(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCfg - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Attributes[mapkey] = mapvalue - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -2656,7 +4467,7 @@ func (m *AttributeManifest) Unmarshal(dAtA []byte) error { } return nil } -func (m *AttributeManifest_AttributeInfo) Unmarshal(dAtA []byte) error { +func (m *Action) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2679,15 +4490,15 @@ func (m *AttributeManifest_AttributeInfo) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AttributeInfo: wiretype end group for non-group") + return fmt.Errorf("proto: Action: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AttributeInfo: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Action: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Handler", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2712,13 +4523,13 @@ func (m *AttributeManifest_AttributeInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Description = string(dAtA[iNdEx:postIndex]) + m.Handler = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ValueType", wireType) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Instances", wireType) } - m.ValueType = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -2728,11 +4539,50 @@ func (m *AttributeManifest_AttributeInfo) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ValueType |= (ValueType(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Instances = append(m.Instances, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -2754,7 +4604,7 @@ func (m *AttributeManifest_AttributeInfo) Unmarshal(dAtA []byte) error { } return nil } -func (m *Rule) Unmarshal(dAtA []byte) error { +func (m *Instance) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2777,15 +4627,15 @@ func (m *Rule) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Rule: wiretype end group for non-group") + return fmt.Errorf("proto: Instance: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Instance: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Match", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2810,13 +4660,13 @@ func (m *Rule) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Match = string(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -2826,26 +4676,24 @@ func (m *Rule) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCfg } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - m.Actions = append(m.Actions, &Action{}) - if err := m.Actions[len(m.Actions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Template = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RequestHeaderOperations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2869,14 +4717,16 @@ func (m *Rule) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RequestHeaderOperations = append(m.RequestHeaderOperations, &Rule_HeaderOperationTemplate{}) - if err := m.RequestHeaderOperations[len(m.RequestHeaderOperations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Params == nil { + m.Params = &google_protobuf1.Struct{} + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResponseHeaderOperations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AttributeBindings", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2900,16 +4750,103 @@ func (m *Rule) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ResponseHeaderOperations = append(m.ResponseHeaderOperations, &Rule_HeaderOperationTemplate{}) - if err := m.ResponseHeaderOperations[len(m.ResponseHeaderOperations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if m.AttributeBindings == nil { + m.AttributeBindings = 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 ErrIntOverflowCfg + } + 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 ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + 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 ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipCfg(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCfg + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } + m.AttributeBindings[mapkey] = mapvalue iNdEx = postIndex - case 5: + case 67794676: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sampling", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CompiledTemplate", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -2919,24 +4856,20 @@ func (m *Rule) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCfg } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if m.Sampling == nil { - m.Sampling = &Sampling{} - } - if err := m.Sampling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.CompiledTemplate = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -2959,7 +4892,7 @@ func (m *Rule) Unmarshal(dAtA []byte) error { } return nil } -func (m *Rule_HeaderOperationTemplate) Unmarshal(dAtA []byte) error { +func (m *Handler) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2982,10 +4915,10 @@ func (m *Rule_HeaderOperationTemplate) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: HeaderOperationTemplate: wiretype end group for non-group") + return fmt.Errorf("proto: Handler: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: HeaderOperationTemplate: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Handler: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -3019,7 +4952,7 @@ func (m *Rule_HeaderOperationTemplate) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Adapter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3044,13 +4977,13 @@ func (m *Rule_HeaderOperationTemplate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Values = append(m.Values, string(dAtA[iNdEx:postIndex])) + m.Adapter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Operation", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } - m.Operation = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3060,11 +4993,87 @@ func (m *Rule_HeaderOperationTemplate) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Operation |= (Rule_HeaderOperationTemplate_Operation(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Params == nil { + m.Params = &google_protobuf1.Struct{} + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Connection", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Connection == nil { + m.Connection = &Connection{} + } + if err := m.Connection.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 67794676: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CompiledAdapter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CompiledAdapter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -3086,7 +5095,7 @@ func (m *Rule_HeaderOperationTemplate) Unmarshal(dAtA []byte) error { } return nil } -func (m *Action) Unmarshal(dAtA []byte) error { +func (m *Connection) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3109,15 +5118,15 @@ func (m *Action) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Action: wiretype end group for non-group") + return fmt.Errorf("proto: Connection: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Action: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Connection: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Handler", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3142,13 +5151,13 @@ func (m *Action) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Handler = string(dAtA[iNdEx:postIndex]) + m.Address = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Instances", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Timeout", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3158,26 +5167,30 @@ func (m *Action) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthCfg } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Instances = append(m.Instances, string(dAtA[iNdEx:postIndex])) + if m.Timeout == nil { + m.Timeout = new(time.Duration) + } + if err := types.StdDurationUnmarshal(m.Timeout, dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Authentication", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3187,20 +5200,24 @@ func (m *Action) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthCfg } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + if m.Authentication == nil { + m.Authentication = &Authentication{} + } + if err := m.Authentication.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -3223,7 +5240,7 @@ func (m *Action) Unmarshal(dAtA []byte) error { } return nil } -func (m *Instance) Unmarshal(dAtA []byte) error { +func (m *Sampling) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3246,17 +5263,17 @@ func (m *Instance) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Instance: wiretype end group for non-group") + return fmt.Errorf("proto: Sampling: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Instance: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Sampling: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Random", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3266,26 +5283,30 @@ func (m *Instance) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthCfg } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + if m.Random == nil { + m.Random = &RandomSampling{} + } + if err := m.Random.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RateLimit", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3295,26 +5316,80 @@ func (m *Instance) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthCfg } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Template = string(dAtA[iNdEx:postIndex]) + if m.RateLimit == nil { + m.RateLimit = &RateLimitSampling{} + } + if err := m.RateLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + default: + iNdEx = preIndex + skippy, err := skipCfg(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCfg + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RandomSampling) 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 ErrIntOverflowCfg + } + 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: RandomSampling: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RandomSampling: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AttributeExpression", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3324,28 +5399,24 @@ func (m *Instance) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCfg } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if m.Params == nil { - m.Params = &google_protobuf1.Struct{} - } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AttributeExpression = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AttributeBindings", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PercentSampled", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3369,103 +5440,18 @@ func (m *Instance) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AttributeBindings == nil { - m.AttributeBindings = make(map[string]string) + if m.PercentSampled == nil { + m.PercentSampled = &FractionalPercent{} } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCfg - } - 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 ErrIntOverflowCfg - } - 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 ErrInvalidLengthCfg - } - 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 ErrIntOverflowCfg - } - 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 ErrInvalidLengthCfg - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipCfg(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCfg - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } + if err := m.PercentSampled.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.AttributeBindings[mapkey] = mapvalue iNdEx = postIndex - case 67794676: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CompiledTemplate", wireType) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UseIndependentRandomness", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3475,21 +5461,12 @@ func (m *Instance) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + v |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthCfg - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CompiledTemplate = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex + m.UseIndependentRandomness = bool(v != 0) default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -3511,7 +5488,7 @@ func (m *Instance) Unmarshal(dAtA []byte) error { } return nil } -func (m *Handler) Unmarshal(dAtA []byte) error { +func (m *RateLimitSampling) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3534,73 +5511,15 @@ func (m *Handler) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Handler: wiretype end group for non-group") + return fmt.Errorf("proto: RateLimitSampling: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Handler: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RateLimitSampling: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCfg - } - 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 ErrInvalidLengthCfg - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Adapter", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCfg - } - 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 ErrInvalidLengthCfg - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Adapter = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SamplingDuration", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3624,18 +5543,15 @@ func (m *Handler) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Params == nil { - m.Params = &google_protobuf1.Struct{} - } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := types.StdDurationUnmarshal(&m.SamplingDuration, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Connection", wireType) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnsampledEntries", wireType) } - var msglen int + m.MaxUnsampledEntries = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3645,30 +5561,16 @@ func (m *Handler) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + m.MaxUnsampledEntries |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthCfg - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Connection == nil { - m.Connection = &Connection{} - } - if err := m.Connection.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 67794676: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CompiledAdapter", wireType) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SamplingRate", wireType) } - var stringLen uint64 + m.SamplingRate = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3678,21 +5580,11 @@ func (m *Handler) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + m.SamplingRate |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthCfg - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CompiledAdapter = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -3714,7 +5606,7 @@ func (m *Handler) Unmarshal(dAtA []byte) error { } return nil } -func (m *Connection) Unmarshal(dAtA []byte) error { +func (m *FractionalPercent) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3737,17 +5629,17 @@ func (m *Connection) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Connection: wiretype end group for non-group") + return fmt.Errorf("proto: FractionalPercent: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Connection: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FractionalPercent: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Numerator", wireType) } - var stringLen uint64 + m.Numerator = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3757,26 +5649,16 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + m.Numerator |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthCfg - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timeout", wireType) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Denominator", wireType) } - var msglen int + m.Denominator = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -3786,25 +5668,11 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + m.Denominator |= (FractionalPercent_DenominatorType(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthCfg - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Timeout == nil { - m.Timeout = new(time.Duration) - } - if err := types.StdDurationUnmarshal(m.Timeout, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -3826,7 +5694,7 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } return nil } -func (m *Sampling) Unmarshal(dAtA []byte) error { +func (m *Authentication) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3849,15 +5717,15 @@ func (m *Sampling) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Sampling: wiretype end group for non-group") + return fmt.Errorf("proto: Authentication: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Sampling: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Authentication: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Random", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Tls", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3881,16 +5749,15 @@ func (m *Sampling) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Random == nil { - m.Random = &RandomSampling{} - } - if err := m.Random.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + v := &Tls{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.AuthType = &Authentication_Tls{v} iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RateLimit", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Mutual", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3914,12 +5781,11 @@ func (m *Sampling) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.RateLimit == nil { - m.RateLimit = &RateLimitSampling{} - } - if err := m.RateLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + v := &Mutual{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.AuthType = &Authentication_Mutual{v} iNdEx = postIndex default: iNdEx = preIndex @@ -3942,7 +5808,7 @@ func (m *Sampling) Unmarshal(dAtA []byte) error { } return nil } -func (m *RandomSampling) Unmarshal(dAtA []byte) error { +func (m *Tls) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3965,15 +5831,15 @@ func (m *RandomSampling) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RandomSampling: wiretype end group for non-group") + return fmt.Errorf("proto: Tls: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RandomSampling: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Tls: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AttributeExpression", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CaCertificates", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3998,11 +5864,40 @@ func (m *RandomSampling) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AttributeExpression = string(dAtA[iNdEx:postIndex]) + m.CaCertificates = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PercentSampled", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TokenPath", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TokenSource = &Tls_TokenPath{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Oauth", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4026,18 +5921,17 @@ func (m *RandomSampling) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.PercentSampled == nil { - m.PercentSampled = &FractionalPercent{} - } - if err := m.PercentSampled.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + v := &OAuth{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.TokenSource = &Tls_Oauth{v} iNdEx = postIndex - case 3: + case 4: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UseIndependentRandomness", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AuthHeader", wireType) } - var v int + var v Tls_AuthHeader for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -4047,12 +5941,41 @@ func (m *RandomSampling) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= (int(b) & 0x7F) << shift + v |= (Tls_AuthHeader(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.TokenType = &Tls_AuthHeader_{v} + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CustomHeader", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.UseIndependentRandomness = bool(v != 0) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TokenType = &Tls_CustomHeader{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -4074,7 +5997,7 @@ func (m *RandomSampling) Unmarshal(dAtA []byte) error { } return nil } -func (m *RateLimitSampling) Unmarshal(dAtA []byte) error { +func (m *OAuth) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4097,17 +6020,17 @@ func (m *RateLimitSampling) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RateLimitSampling: wiretype end group for non-group") + return fmt.Errorf("proto: OAuth: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RateLimitSampling: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OAuth: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SamplingDuration", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -4117,27 +6040,26 @@ func (m *RateLimitSampling) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCfg } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := types.StdDurationUnmarshal(&m.SamplingDuration, dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.ClientId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxUnsampledEntries", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientSecret", wireType) } - m.MaxUnsampledEntries = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -4147,16 +6069,26 @@ func (m *RateLimitSampling) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.MaxUnsampledEntries |= (int64(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClientSecret = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SamplingRate", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenUrl", wireType) } - m.SamplingRate = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -4166,11 +6098,168 @@ func (m *RateLimitSampling) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.SamplingRate |= (int64(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TokenUrl = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Scopes = append(m.Scopes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndpointParams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EndpointParams == nil { + m.EndpointParams = 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 ErrIntOverflowCfg + } + 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 ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + 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 ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipCfg(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCfg + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.EndpointParams[mapkey] = mapvalue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -4192,7 +6281,7 @@ func (m *RateLimitSampling) Unmarshal(dAtA []byte) error { } return nil } -func (m *FractionalPercent) Unmarshal(dAtA []byte) error { +func (m *Mutual) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4215,17 +6304,17 @@ func (m *FractionalPercent) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: FractionalPercent: wiretype end group for non-group") + return fmt.Errorf("proto: Mutual: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: FractionalPercent: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Mutual: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Numerator", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrivateKey", wireType) } - m.Numerator = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -4235,16 +6324,26 @@ func (m *FractionalPercent) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Numerator |= (uint32(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PrivateKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Denominator", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientCertificate", wireType) } - m.Denominator = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCfg @@ -4254,11 +6353,50 @@ func (m *FractionalPercent) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Denominator |= (FractionalPercent_DenominatorType(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClientCertificate = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CaCertificates", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCfg + } + 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 ErrInvalidLengthCfg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CaCertificates = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCfg(dAtA[iNdEx:]) @@ -4388,75 +6526,99 @@ var ( func init() { proto.RegisterFile("policy/v1beta1/cfg.proto", fileDescriptorCfg) } var fileDescriptorCfg = []byte{ - // 1120 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xf7, 0xc6, 0xae, 0xff, 0x3c, 0x37, 0x89, 0x33, 0x0d, 0x8d, 0x6b, 0xa2, 0x4d, 0x64, 0x90, - 0xe8, 0x01, 0xad, 0x1b, 0x23, 0x28, 0x54, 0x11, 0x22, 0xa9, 0x5d, 0x25, 0xa2, 0x4d, 0xac, 0x49, - 0x52, 0x44, 0x2f, 0xab, 0x89, 0x77, 0xe2, 0x8c, 0xf0, 0xce, 0x6e, 0x77, 0x67, 0xa3, 0xe4, 0xc6, - 0x85, 0x7b, 0x8f, 0x7c, 0x04, 0xf8, 0x12, 0x5c, 0xc9, 0xb1, 0x52, 0x2f, 0x3d, 0x01, 0x31, 0x17, - 0x2e, 0x48, 0x3d, 0xf0, 0x01, 0xd0, 0xce, 0xce, 0xec, 0xba, 0x8e, 0x53, 0x11, 0x6e, 0x3b, 0xef, - 0xf7, 0xfe, 0xfd, 0xde, 0x7b, 0xf3, 0x76, 0xa0, 0xee, 0x7b, 0x43, 0xd6, 0x3f, 0x6b, 0x9d, 0xac, - 0x1d, 0x52, 0x41, 0xd6, 0x5a, 0xfd, 0xa3, 0x81, 0xe5, 0x07, 0x9e, 0xf0, 0xd0, 0x22, 0x0b, 0x05, - 0xf3, 0xac, 0x04, 0xb7, 0x14, 0xde, 0x58, 0x1c, 0x78, 0x03, 0x4f, 0x2a, 0xb4, 0xe2, 0xaf, 0x44, - 0xb7, 0xb1, 0x3c, 0xf0, 0xbc, 0xc1, 0x90, 0xb6, 0xe4, 0xe9, 0x30, 0x3a, 0x6a, 0x85, 0x22, 0x88, - 0xfa, 0x42, 0xa1, 0xe6, 0x24, 0xea, 0x44, 0x01, 0x11, 0xcc, 0xe3, 0x0a, 0x5f, 0x99, 0xc8, 0xe1, - 0x84, 0x0c, 0x23, 0x6a, 0x8b, 0x33, 0x9f, 0x26, 0x0a, 0xcd, 0x1f, 0xf2, 0xb0, 0xb0, 0x21, 0x44, - 0xc0, 0x0e, 0x23, 0x41, 0x9f, 0x10, 0xce, 0x8e, 0x68, 0x28, 0x50, 0x03, 0xca, 0x01, 0x3d, 0x61, - 0x21, 0xf3, 0x78, 0xdd, 0x58, 0x35, 0xee, 0x56, 0x70, 0x7a, 0x46, 0x08, 0x0a, 0x9c, 0xb8, 0xb4, - 0x3e, 0x23, 0xe5, 0xf2, 0x1b, 0x7d, 0x03, 0x40, 0xb4, 0x93, 0xb0, 0x9e, 0x5f, 0xcd, 0xdf, 0xad, - 0xb6, 0xef, 0x5b, 0xd3, 0x58, 0x5a, 0x97, 0x82, 0x65, 0x92, 0xb0, 0xcb, 0x45, 0x70, 0x86, 0xc7, - 0x5c, 0x35, 0x9e, 0xc3, 0x6c, 0x0a, 0x6f, 0xf3, 0x23, 0x0f, 0xad, 0x42, 0xd5, 0xa1, 0x61, 0x3f, - 0x60, 0xbe, 0xc8, 0x92, 0x1b, 0x17, 0xa1, 0x2f, 0x01, 0x32, 0x96, 0x32, 0xcb, 0xb9, 0xf6, 0xca, - 0xf4, 0x5c, 0x9e, 0xc6, 0x7a, 0xfb, 0x67, 0x3e, 0xc5, 0x95, 0x13, 0xfd, 0xd9, 0x10, 0x30, 0x3f, - 0x91, 0x11, 0xaa, 0x41, 0xfe, 0x3b, 0x7a, 0xa6, 0x82, 0xc5, 0x9f, 0xe8, 0x6b, 0xb8, 0x21, 0x2d, - 0xa4, 0xff, 0x6a, 0xfb, 0xd3, 0x6b, 0x73, 0x8d, 0xc9, 0xe0, 0xc4, 0xc7, 0x83, 0x99, 0xcf, 0x8d, - 0xe6, 0x79, 0x01, 0x0a, 0x38, 0x1a, 0x52, 0xb4, 0x08, 0x37, 0x5c, 0x22, 0xfa, 0xc7, 0x2a, 0x5a, - 0x72, 0x40, 0x9f, 0x41, 0x89, 0xf4, 0x63, 0x7a, 0x61, 0x7d, 0x46, 0x56, 0x77, 0xf9, 0x8a, 0x88, - 0x52, 0x09, 0x6b, 0x65, 0xc4, 0xe1, 0x4e, 0x40, 0x9f, 0x47, 0x34, 0x14, 0xf6, 0x31, 0x25, 0x0e, - 0x0d, 0x6c, 0xcf, 0xa7, 0xc9, 0x84, 0xe8, 0x3e, 0xb5, 0xa7, 0x7b, 0x8a, 0x93, 0xb1, 0xb6, 0xa4, - 0xcd, 0xae, 0x36, 0xd9, 0xa7, 0xae, 0x3f, 0x24, 0x82, 0xe2, 0x25, 0xe5, 0x74, 0x02, 0x0f, 0x91, - 0x0f, 0x8d, 0x80, 0x86, 0xbe, 0xc7, 0x43, 0x3a, 0x25, 0x60, 0xe1, 0x7f, 0x07, 0xac, 0x6b, 0xaf, - 0x97, 0x22, 0x3e, 0x80, 0x72, 0x48, 0x5c, 0x7f, 0xc8, 0xf8, 0xa0, 0x7e, 0x43, 0x36, 0xc3, 0x9c, - 0xee, 0x7f, 0x4f, 0x69, 0xe1, 0x54, 0xbf, 0xf1, 0xca, 0x80, 0xa5, 0x2b, 0x22, 0xa6, 0x63, 0x6e, - 0x8c, 0x8d, 0xf9, 0x6d, 0x28, 0xca, 0x8e, 0x25, 0x4d, 0xa8, 0x60, 0x75, 0x42, 0xcf, 0xa0, 0x92, - 0xb2, 0xac, 0xe7, 0xe5, 0xc4, 0xad, 0x5f, 0x9f, 0xa4, 0x95, 0x4a, 0x70, 0xe6, 0xae, 0x79, 0x0f, - 0x2a, 0xa9, 0x1c, 0x55, 0xa1, 0x84, 0xbb, 0xbd, 0xc7, 0x1b, 0x0f, 0xbb, 0xb5, 0x1c, 0x02, 0x28, - 0xe2, 0xee, 0x93, 0xdd, 0xa7, 0xdd, 0x9a, 0x11, 0x7f, 0x6f, 0xf4, 0x7a, 0xdd, 0x9d, 0x4e, 0x6d, - 0xa6, 0xb9, 0x0f, 0xc5, 0x64, 0x0c, 0x50, 0x1d, 0x4a, 0xc7, 0x84, 0x3b, 0x43, 0x1a, 0xa8, 0xdb, - 0xaa, 0x8f, 0x68, 0x19, 0x2a, 0x8c, 0x87, 0x82, 0xf0, 0xbe, 0xba, 0xaf, 0x15, 0x9c, 0x09, 0x52, - 0xee, 0x85, 0x8c, 0x7b, 0xf3, 0xd7, 0x19, 0x28, 0x6f, 0x2b, 0x8d, 0xa9, 0xc5, 0x69, 0x40, 0x59, - 0x28, 0x26, 0x2a, 0x5a, 0x7a, 0x46, 0x2d, 0x28, 0xfa, 0x24, 0x20, 0x6e, 0x28, 0xab, 0x53, 0x6d, - 0x2f, 0x59, 0xc9, 0xde, 0xb2, 0xf4, 0xde, 0xb2, 0xf6, 0xe4, 0x56, 0xc3, 0x4a, 0x0d, 0x39, 0x80, - 0xd2, 0x2d, 0x60, 0x1f, 0x32, 0xee, 0x30, 0x3e, 0xd0, 0xf3, 0x73, 0xc5, 0x65, 0xd3, 0xc9, 0x65, - 0x77, 0x6c, 0x53, 0xd9, 0x25, 0x6b, 0x65, 0x81, 0x4c, 0xca, 0x91, 0x05, 0x0b, 0x7d, 0xcf, 0xf5, - 0xd9, 0x90, 0x3a, 0x76, 0x9a, 0xfb, 0x3f, 0x7f, 0xff, 0xbc, 0x2a, 0xd3, 0xaf, 0x69, 0x4c, 0x37, - 0xa8, 0xd1, 0x81, 0xdb, 0xd3, 0x9d, 0x4f, 0xd9, 0x10, 0x8b, 0xe3, 0x1b, 0xa2, 0x32, 0x7e, 0xd5, - 0x5f, 0x1b, 0x50, 0xda, 0x52, 0x7d, 0x98, 0x56, 0xc8, 0x3a, 0x94, 0x88, 0x43, 0x7c, 0x91, 0x75, - 0x4d, 0x1d, 0xaf, 0x5f, 0xc6, 0xaf, 0x00, 0xfa, 0x1e, 0xe7, 0x54, 0x8e, 0x83, 0x6c, 0x67, 0xb5, - 0xbd, 0x3a, 0xbd, 0x7c, 0x0f, 0x53, 0x3d, 0x3c, 0x66, 0x83, 0x3e, 0x86, 0xb4, 0x0c, 0xb6, 0xce, - 0x2a, 0xad, 0xd0, 0xbc, 0x86, 0x36, 0x12, 0xa4, 0x49, 0x00, 0x32, 0x3f, 0x09, 0x11, 0x27, 0xa0, - 0x61, 0x98, 0x11, 0x91, 0x47, 0xf4, 0x05, 0x94, 0x04, 0x73, 0xa9, 0x17, 0x09, 0xc5, 0xe4, 0xce, - 0x25, 0x26, 0x1d, 0xf5, 0x23, 0xdb, 0x2c, 0xfc, 0xf8, 0xfb, 0x8a, 0x81, 0xb5, 0x7e, 0xf3, 0x85, - 0x01, 0x65, 0x7d, 0x95, 0xd1, 0x3a, 0x14, 0x03, 0xc2, 0x1d, 0xcf, 0x95, 0x05, 0xac, 0xb6, 0x3f, - 0xbc, 0xe2, 0xd6, 0x49, 0x9d, 0x74, 0x01, 0x28, 0x1b, 0xf4, 0x08, 0x20, 0x20, 0x82, 0xda, 0x43, - 0xe6, 0x32, 0xa1, 0x36, 0xf9, 0x47, 0x57, 0x79, 0x10, 0xf4, 0x71, 0xac, 0x96, 0x3a, 0xa9, 0x04, - 0x5a, 0xd4, 0x7c, 0x65, 0xc0, 0xdc, 0xdb, 0x21, 0xd0, 0x1a, 0x2c, 0x66, 0xf3, 0x4b, 0x4f, 0xfd, - 0x98, 0x75, 0xf6, 0xbf, 0xba, 0x95, 0x62, 0xdd, 0x14, 0x42, 0x3d, 0x98, 0xf7, 0x69, 0xd0, 0xa7, - 0x5c, 0xd8, 0x72, 0x41, 0x51, 0xe7, 0xdd, 0x29, 0x3d, 0x0a, 0x92, 0x25, 0x4f, 0x86, 0xbd, 0xc4, - 0x0c, 0xcf, 0x29, 0xfb, 0xbd, 0xc4, 0x1c, 0xad, 0x43, 0x23, 0x0a, 0xa9, 0xcd, 0xb8, 0x43, 0x7d, - 0xca, 0x9d, 0xd8, 0x73, 0xc2, 0x9c, 0xc7, 0x2d, 0x89, 0x0b, 0x5f, 0xc6, 0xf5, 0x28, 0xa4, 0xdb, - 0x99, 0x02, 0x4e, 0xf1, 0xe6, 0x2f, 0x06, 0x2c, 0x5c, 0xa2, 0x8d, 0x7a, 0xb0, 0xa0, 0xd7, 0xa7, - 0xad, 0xdf, 0x1a, 0xaa, 0xf8, 0xef, 0xe8, 0x61, 0xf9, 0xfc, 0xb7, 0x95, 0x9c, 0xec, 0x63, 0x4d, - 0x5b, 0x6b, 0x0c, 0xb5, 0xe1, 0x3d, 0x97, 0x9c, 0xda, 0x11, 0x57, 0xac, 0x6d, 0xca, 0x45, 0xc0, - 0x68, 0x32, 0x33, 0x79, 0x7c, 0xcb, 0x25, 0xa7, 0x07, 0x1a, 0xeb, 0x26, 0x10, 0xfa, 0x00, 0x66, - 0xd3, 0x2c, 0xe2, 0x3e, 0x48, 0x32, 0x79, 0x7c, 0x53, 0x0b, 0xe3, 0xbc, 0x25, 0x81, 0x4b, 0x45, - 0x8a, 0x37, 0x1f, 0x8f, 0xdc, 0x78, 0xa1, 0x7a, 0x81, 0x4c, 0x7c, 0x16, 0x67, 0x02, 0xf4, 0x6d, - 0xfc, 0xbc, 0xe0, 0x9e, 0xcb, 0xb8, 0xc4, 0x93, 0xd7, 0xc3, 0xfd, 0xff, 0xd8, 0x00, 0xab, 0x93, - 0x99, 0xca, 0x57, 0xc5, 0xb8, 0xaf, 0xe6, 0x3d, 0x98, 0x9f, 0xc0, 0xe3, 0x75, 0xbe, 0x75, 0xb0, - 0xd3, 0xc1, 0xdd, 0x4e, 0x2d, 0x87, 0x6a, 0x70, 0x73, 0xbf, 0xbb, 0x63, 0xef, 0x6f, 0xed, 0x1e, - 0xec, 0x6d, 0xec, 0x74, 0x6a, 0xc6, 0xe6, 0xf6, 0xcb, 0x0b, 0x33, 0xf7, 0xfa, 0xc2, 0xcc, 0xbd, - 0xb9, 0x30, 0x8d, 0xef, 0x47, 0xa6, 0xf1, 0xd3, 0xc8, 0x34, 0xce, 0x47, 0xa6, 0xf1, 0x72, 0x64, - 0x1a, 0x7f, 0x8c, 0x4c, 0xe3, 0xaf, 0x91, 0x99, 0x7b, 0x33, 0x32, 0x8d, 0x17, 0x7f, 0x9a, 0xb9, - 0x67, 0xef, 0x27, 0x49, 0x32, 0xaf, 0x45, 0x7c, 0xd6, 0x7a, 0xfb, 0xdd, 0x77, 0x58, 0x94, 0x3d, - 0xf9, 0xe4, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x28, 0x43, 0xbf, 0xa9, 0x94, 0x0a, 0x00, 0x00, + // 1489 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xcd, 0x6f, 0x13, 0x47, + 0x1b, 0xf7, 0xc6, 0xb1, 0x13, 0x3f, 0x4e, 0x1c, 0x67, 0xc8, 0x0b, 0xc6, 0x20, 0x27, 0x32, 0xef, + 0x2b, 0x38, 0xbc, 0xd8, 0x10, 0xf4, 0xc2, 0x5b, 0x84, 0xaa, 0x3a, 0xc4, 0xd4, 0x11, 0x21, 0xb1, + 0x26, 0x0e, 0x6d, 0xb9, 0xac, 0x26, 0xbb, 0x93, 0x64, 0xc5, 0x7a, 0x76, 0xd9, 0x9d, 0x8d, 0xc8, + 0xad, 0x95, 0xda, 0x3b, 0xc7, 0x4a, 0xfd, 0x07, 0xda, 0x53, 0x8f, 0xbd, 0xf5, 0x5a, 0x8e, 0x48, + 0x5c, 0x38, 0xb5, 0x25, 0xbd, 0xf4, 0x52, 0x89, 0x43, 0xff, 0x80, 0x6a, 0x3e, 0x76, 0xd7, 0x49, + 0xd6, 0xa8, 0xe9, 0x6d, 0xe7, 0xf9, 0x9a, 0xe7, 0xf7, 0x7c, 0xce, 0x42, 0xcd, 0xf7, 0x5c, 0xc7, + 0x3a, 0x6c, 0x1f, 0xdc, 0xdc, 0xa1, 0x9c, 0xdc, 0x6c, 0x5b, 0xbb, 0x7b, 0x2d, 0x3f, 0xf0, 0xb8, + 0x87, 0x16, 0x9c, 0x90, 0x3b, 0x5e, 0x4b, 0xf1, 0x5b, 0x9a, 0x5f, 0x5f, 0xd8, 0xf3, 0xf6, 0x3c, + 0x29, 0xd0, 0x16, 0x5f, 0x4a, 0xb6, 0x7e, 0x79, 0xcf, 0xf3, 0xf6, 0x5c, 0xda, 0x96, 0xa7, 0x9d, + 0x68, 0xb7, 0x1d, 0xf2, 0x20, 0xb2, 0xb8, 0xe6, 0x36, 0x4e, 0x72, 0xed, 0x28, 0x20, 0xdc, 0xf1, + 0x98, 0xe6, 0x2f, 0x9e, 0xf0, 0xe1, 0x80, 0xb8, 0x11, 0x35, 0xf9, 0xa1, 0x4f, 0x95, 0x40, 0xf3, + 0xab, 0x3c, 0xcc, 0x77, 0x38, 0x0f, 0x9c, 0x9d, 0x88, 0xd3, 0x47, 0x84, 0x39, 0xbb, 0x34, 0xe4, + 0xa8, 0x0e, 0xd3, 0x01, 0x3d, 0x70, 0x42, 0xc7, 0x63, 0x35, 0x63, 0xc9, 0xb8, 0x56, 0xc2, 0xc9, + 0x19, 0x21, 0x98, 0x64, 0x64, 0x48, 0x6b, 0x13, 0x92, 0x2e, 0xbf, 0xd1, 0x27, 0x00, 0x24, 0x36, + 0x12, 0xd6, 0xf2, 0x4b, 0xf9, 0x6b, 0xe5, 0xe5, 0x3b, 0xad, 0x2c, 0x94, 0xad, 0x53, 0x97, 0xa5, + 0x94, 0xb0, 0xcb, 0x78, 0x70, 0x88, 0x47, 0x4c, 0xd5, 0x9f, 0xc1, 0x6c, 0xc2, 0x5e, 0x63, 0xbb, + 0x1e, 0x5a, 0x82, 0xb2, 0x4d, 0x43, 0x2b, 0x70, 0x7c, 0x9e, 0x3a, 0x37, 0x4a, 0x42, 0x1f, 0x02, + 0xa4, 0x28, 0xa5, 0x97, 0x95, 0xe5, 0xc5, 0x6c, 0x5f, 0x1e, 0x0b, 0xb9, 0xc1, 0xa1, 0x4f, 0x71, + 0xe9, 0x20, 0xfe, 0xac, 0x73, 0x98, 0x3b, 0xe1, 0x11, 0xaa, 0x42, 0xfe, 0x29, 0x3d, 0xd4, 0x97, + 0x89, 0x4f, 0xf4, 0x10, 0x0a, 0x52, 0x43, 0xda, 0x2f, 0x2f, 0xff, 0xef, 0xcc, 0x58, 0x05, 0x18, + 0xac, 0x6c, 0xdc, 0x9d, 0xf8, 0xbf, 0xd1, 0x7c, 0x39, 0x09, 0x93, 0x38, 0x72, 0x29, 0x5a, 0x80, + 0xc2, 0x90, 0x70, 0x6b, 0x5f, 0xdf, 0xa6, 0x0e, 0xe8, 0x36, 0x4c, 0x11, 0x4b, 0xc0, 0x0b, 0x6b, + 0x13, 0x32, 0xba, 0x97, 0xc7, 0xdc, 0x28, 0x85, 0x70, 0x2c, 0x8c, 0x18, 0x5c, 0x0c, 0xe8, 0xb3, + 0x88, 0x86, 0xdc, 0xdc, 0xa7, 0xc4, 0xa6, 0x81, 0xe9, 0xf9, 0x54, 0x55, 0x48, 0x9c, 0xa7, 0xe5, + 0x6c, 0x4b, 0xc2, 0x99, 0x56, 0x4f, 0xea, 0x6c, 0xc6, 0x2a, 0x03, 0x3a, 0xf4, 0x5d, 0xc2, 0x29, + 0xbe, 0xa0, 0x8d, 0x9e, 0xe0, 0x87, 0xc8, 0x87, 0x7a, 0x40, 0x43, 0xdf, 0x63, 0x21, 0xcd, 0xb8, + 0x70, 0xf2, 0x1f, 0x5f, 0x58, 0x8b, 0xad, 0x9e, 0xba, 0xf1, 0x2e, 0x4c, 0x87, 0x64, 0xe8, 0xbb, + 0x0e, 0xdb, 0xab, 0x15, 0x64, 0x32, 0x1a, 0xd9, 0xf6, 0xb7, 0xb4, 0x14, 0x4e, 0xe4, 0xeb, 0xaf, + 0x0d, 0xb8, 0x30, 0xe6, 0xc6, 0xa4, 0xcc, 0x8d, 0x91, 0x32, 0x3f, 0x0f, 0x45, 0x99, 0x31, 0x95, + 0x84, 0x12, 0xd6, 0x27, 0xf4, 0x04, 0x4a, 0x09, 0xca, 0x5a, 0x5e, 0x56, 0xdc, 0xbd, 0xb3, 0x83, + 0x6c, 0x25, 0x14, 0x9c, 0x9a, 0x6b, 0xde, 0x80, 0x52, 0x42, 0x47, 0x65, 0x98, 0xc2, 0xdd, 0xfe, + 0x7a, 0xe7, 0x7e, 0xb7, 0x9a, 0x43, 0x00, 0x45, 0xdc, 0x7d, 0xb4, 0xf9, 0xb8, 0x5b, 0x35, 0xc4, + 0x77, 0xa7, 0xdf, 0xef, 0x6e, 0xac, 0x56, 0x27, 0x9a, 0x03, 0x28, 0xaa, 0x32, 0x40, 0x35, 0x98, + 0xda, 0x27, 0xcc, 0x76, 0x69, 0xa0, 0xbb, 0x35, 0x3e, 0xa2, 0xcb, 0x50, 0x72, 0x58, 0xc8, 0x09, + 0xb3, 0x74, 0xbf, 0x96, 0x70, 0x4a, 0x48, 0xb0, 0x4f, 0xa6, 0xd8, 0x9b, 0x3f, 0x4d, 0xc0, 0xf4, + 0x9a, 0x96, 0xc8, 0x0c, 0x4e, 0x1d, 0xa6, 0xb9, 0x46, 0xa2, 0x6f, 0x4b, 0xce, 0xa8, 0x0d, 0x45, + 0x9f, 0x04, 0x64, 0x18, 0xca, 0xe8, 0x94, 0x97, 0x2f, 0xb4, 0xd4, 0xdc, 0x6a, 0xc5, 0x73, 0xab, + 0xb5, 0x25, 0xa7, 0x1a, 0xd6, 0x62, 0xc8, 0x06, 0x94, 0x4c, 0x01, 0x73, 0xc7, 0x61, 0xb6, 0xc3, + 0xf6, 0xe2, 0xfa, 0x19, 0xd3, 0x6c, 0xb1, 0x73, 0x69, 0x8f, 0xad, 0x68, 0x3d, 0x35, 0x56, 0xe6, + 0xc9, 0x49, 0x3a, 0x6a, 0xc1, 0xbc, 0xe5, 0x0d, 0x7d, 0xc7, 0xa5, 0xb6, 0x99, 0xf8, 0xfe, 0xe7, + 0x1f, 0xdf, 0x2d, 0x49, 0xf7, 0xab, 0x31, 0x2f, 0x4e, 0x50, 0x7d, 0x15, 0xce, 0x67, 0x1b, 0xcf, + 0x98, 0x10, 0x0b, 0xa3, 0x13, 0xa2, 0x34, 0xda, 0xea, 0x6f, 0x0c, 0x98, 0xea, 0xe9, 0x3c, 0x64, + 0x05, 0xb2, 0x06, 0x53, 0xc4, 0x26, 0x3e, 0x4f, 0xb3, 0xa6, 0x8f, 0x67, 0x0f, 0xe3, 0x47, 0x00, + 0x96, 0xc7, 0x18, 0x95, 0xe5, 0x20, 0xd3, 0x59, 0x5e, 0x5e, 0xca, 0x0e, 0xdf, 0xfd, 0x44, 0x0e, + 0x8f, 0xe8, 0xa0, 0xff, 0x42, 0x12, 0x06, 0x33, 0xf6, 0x2a, 0x89, 0xd0, 0x5c, 0xcc, 0xea, 0x28, + 0x4e, 0xf3, 0x7b, 0x03, 0x20, 0x35, 0xa4, 0x90, 0xd8, 0x01, 0x0d, 0xc3, 0x14, 0x89, 0x3c, 0xa2, + 0x0f, 0x60, 0x8a, 0x3b, 0x43, 0xea, 0x45, 0x5c, 0x43, 0xb9, 0x78, 0x0a, 0xca, 0xaa, 0xde, 0x64, + 0x2b, 0x93, 0x5f, 0xff, 0xb2, 0x68, 0xe0, 0x58, 0x1e, 0xad, 0x43, 0x85, 0x44, 0x7c, 0x9f, 0x32, + 0xee, 0x58, 0x64, 0x04, 0xd7, 0xbf, 0xc7, 0x4c, 0xc4, 0x63, 0xb2, 0xf8, 0x84, 0x6e, 0xf3, 0x85, + 0x01, 0xd3, 0xf1, 0x64, 0x40, 0xf7, 0xa0, 0x18, 0x10, 0x66, 0x7b, 0x43, 0x99, 0x8f, 0xb1, 0x26, + 0xb1, 0x94, 0x49, 0xe6, 0x89, 0xd6, 0x41, 0x0f, 0x00, 0x02, 0xc2, 0xa9, 0xe9, 0x3a, 0x43, 0x87, + 0xeb, 0xc5, 0x70, 0x75, 0x9c, 0x05, 0x4e, 0xd7, 0x85, 0x58, 0x62, 0xa4, 0x14, 0xc4, 0xa4, 0xe6, + 0x6b, 0x03, 0x2a, 0xc7, 0xaf, 0x40, 0x37, 0x61, 0x21, 0x6d, 0x07, 0xfa, 0xdc, 0x17, 0x31, 0x4c, + 0xd7, 0xdf, 0xb9, 0x84, 0xd7, 0x4d, 0x58, 0xa8, 0x0f, 0x73, 0x3e, 0x0d, 0x2c, 0xca, 0xb8, 0x29, + 0xe7, 0x1d, 0xb5, 0xdf, 0xef, 0xd2, 0x83, 0x40, 0xed, 0x0c, 0xe2, 0xf6, 0x95, 0x1a, 0xae, 0x68, + 0xfd, 0x2d, 0xa5, 0x8e, 0xee, 0x41, 0x3d, 0x0a, 0xa9, 0xe9, 0x30, 0x9b, 0xfa, 0x94, 0xd9, 0xc2, + 0xb2, 0x42, 0xce, 0x44, 0x82, 0x45, 0x1a, 0xa7, 0x71, 0x2d, 0x0a, 0xe9, 0x5a, 0x2a, 0x80, 0x13, + 0x7e, 0xf3, 0x47, 0x03, 0xe6, 0x4f, 0xc1, 0x46, 0x7d, 0x98, 0x8f, 0xa7, 0xb1, 0x19, 0x3f, 0x5d, + 0x74, 0xf0, 0xdf, 0x53, 0x11, 0xd3, 0x2f, 0x7f, 0x5e, 0xcc, 0xc9, 0xaa, 0xa8, 0xc6, 0xda, 0x31, + 0x0f, 0x2d, 0xc3, 0xbf, 0x86, 0xe4, 0xb9, 0x19, 0x31, 0x8d, 0xda, 0xa4, 0x8c, 0x07, 0x0e, 0x55, + 0x15, 0x98, 0xc7, 0xe7, 0x86, 0xe4, 0xf9, 0x76, 0xcc, 0xeb, 0x2a, 0x16, 0xba, 0x02, 0xb3, 0x89, + 0x17, 0x22, 0x0f, 0x12, 0x4c, 0x1e, 0xcf, 0xc4, 0x44, 0xe1, 0xb7, 0x04, 0x70, 0x2a, 0x48, 0x62, + 0x90, 0xb2, 0x68, 0x28, 0xe6, 0xb3, 0x17, 0x48, 0xc7, 0x67, 0x71, 0x4a, 0x40, 0x9f, 0x89, 0xd7, + 0x0a, 0xf3, 0x86, 0x0e, 0x93, 0x7c, 0xf5, 0x18, 0xb9, 0xf3, 0x37, 0x13, 0xd0, 0x5a, 0x4d, 0x55, + 0xe5, 0x23, 0x65, 0xd4, 0x56, 0xf3, 0x06, 0xcc, 0x9d, 0xe0, 0x8b, 0xed, 0xd0, 0xdb, 0xde, 0x58, + 0xc5, 0xdd, 0xd5, 0x6a, 0x0e, 0x55, 0x61, 0x66, 0xd0, 0xdd, 0x30, 0x07, 0xbd, 0xcd, 0xed, 0xad, + 0xce, 0xc6, 0x6a, 0xd5, 0x68, 0x7e, 0x69, 0x40, 0xe5, 0x78, 0x37, 0xa0, 0xeb, 0x90, 0xe7, 0x6e, + 0x98, 0x04, 0x3c, 0xd3, 0xaf, 0x81, 0x1b, 0xf6, 0x72, 0x58, 0xc8, 0xa1, 0xdb, 0x50, 0x1c, 0x46, + 0x3c, 0x22, 0xae, 0x2e, 0xa5, 0x31, 0x8f, 0x90, 0x47, 0x52, 0xa6, 0x97, 0xc3, 0x5a, 0x7a, 0xa5, + 0x0c, 0x25, 0xd1, 0x76, 0xf2, 0x45, 0xd6, 0xfc, 0x61, 0x02, 0xf2, 0x03, 0x37, 0x44, 0x57, 0x61, + 0xce, 0x22, 0xa6, 0x45, 0x03, 0xee, 0xec, 0x0a, 0x7f, 0x68, 0xa8, 0xcb, 0xb9, 0x62, 0x91, 0xfb, + 0x23, 0x54, 0xb4, 0x08, 0xc0, 0xbd, 0xa7, 0x94, 0x99, 0x3e, 0xe1, 0xfb, 0x6a, 0x90, 0xf4, 0x72, + 0xb8, 0x24, 0x69, 0x7d, 0xc2, 0xf7, 0xd1, 0x2d, 0x28, 0x78, 0xc2, 0xbe, 0x1e, 0x25, 0x97, 0xb2, + 0xbd, 0xda, 0x14, 0xd8, 0x7b, 0x39, 0xac, 0x64, 0xd1, 0xc7, 0x50, 0x96, 0x3e, 0xa9, 0x57, 0x8a, + 0x9c, 0x21, 0x95, 0x71, 0x0d, 0x3f, 0x70, 0x43, 0x39, 0x47, 0xd4, 0xe2, 0xee, 0x19, 0x18, 0x48, + 0x72, 0x42, 0xff, 0x81, 0x59, 0x2b, 0x0a, 0xb9, 0x37, 0x8c, 0x4d, 0x15, 0xa4, 0x87, 0x06, 0x9e, + 0x51, 0x64, 0x25, 0xd6, 0xbc, 0x02, 0x90, 0x9a, 0x40, 0x25, 0x28, 0xf4, 0xd7, 0x3b, 0x6b, 0x1b, + 0x6a, 0x8d, 0xaf, 0x74, 0x3b, 0xb8, 0x8b, 0xab, 0xc6, 0x4a, 0x05, 0x66, 0x14, 0xd4, 0xd0, 0x8b, + 0x02, 0x8b, 0xae, 0xcc, 0xc4, 0xd0, 0x65, 0xe4, 0xbe, 0x99, 0x80, 0x82, 0x44, 0x81, 0x2e, 0x41, + 0xc9, 0x72, 0x1d, 0xd1, 0x81, 0x8e, 0x1d, 0x3f, 0xd0, 0x15, 0x61, 0xcd, 0x16, 0xd5, 0xac, 0x99, + 0x21, 0xb5, 0x02, 0xca, 0xf5, 0xec, 0x9d, 0x51, 0xc4, 0x2d, 0x49, 0x13, 0x16, 0x94, 0xe5, 0x28, + 0x70, 0x65, 0xdc, 0xc4, 0xba, 0x16, 0x84, 0xed, 0xc0, 0x15, 0xef, 0x9c, 0xd0, 0xf2, 0x7c, 0xaa, + 0x36, 0x6e, 0x09, 0xeb, 0x13, 0xfa, 0x14, 0xe6, 0x28, 0xb3, 0x7d, 0xcf, 0x61, 0xdc, 0xd4, 0x8b, + 0xa8, 0x20, 0x57, 0x72, 0xfb, 0x3d, 0x21, 0x6f, 0x75, 0xb5, 0x4a, 0x5f, 0x6a, 0xa8, 0x65, 0x5c, + 0xa1, 0xc7, 0x88, 0xf5, 0x0e, 0x9c, 0xcb, 0x10, 0x3b, 0xd3, 0x5a, 0xfd, 0xc2, 0x80, 0xa2, 0xaa, + 0x3c, 0xb4, 0x08, 0x65, 0x3f, 0x70, 0x0e, 0xc4, 0x30, 0x4e, 0xd5, 0x41, 0x93, 0x1e, 0xd2, 0x43, + 0x74, 0x1d, 0x90, 0x0e, 0xd1, 0x48, 0xfd, 0x69, 0x93, 0xf3, 0x8a, 0x33, 0x52, 0x82, 0x59, 0xa5, + 0x9a, 0xcf, 0x2a, 0xd5, 0x95, 0xb5, 0x57, 0x6f, 0x1b, 0xb9, 0x37, 0x6f, 0x1b, 0xb9, 0x77, 0x6f, + 0x1b, 0xc6, 0xe7, 0x47, 0x0d, 0xe3, 0xdb, 0xa3, 0x86, 0xf1, 0xf2, 0xa8, 0x61, 0xbc, 0x3a, 0x6a, + 0x18, 0xbf, 0x1e, 0x35, 0x8c, 0xdf, 0x8f, 0x1a, 0xb9, 0x77, 0x47, 0x0d, 0xe3, 0xc5, 0x6f, 0x8d, + 0xdc, 0x93, 0x4b, 0x2a, 0x68, 0x8e, 0xd7, 0x26, 0xbe, 0xd3, 0x3e, 0xfe, 0xa7, 0xb6, 0x53, 0x94, + 0x63, 0xef, 0xd6, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf4, 0x86, 0x6e, 0xed, 0x46, 0x0e, 0x00, + 0x00, } diff --git a/policy/v1beta1/cfg.proto b/policy/v1beta1/cfg.proto index 0e829b0ca4..795b3be2a1 100644 --- a/policy/v1beta1/cfg.proto +++ b/policy/v1beta1/cfg.proto @@ -348,7 +348,9 @@ message Connection { // Timeout for remote calls to the backend. google.protobuf.Duration timeout = 3 [(gogoproto.stdduration) = true]; - // TODO: Add auth related fields. + // Auth config for the connection to the backend. If omitted, plain text will + // be used. + Authentication authentication = 4; } // $hide_from_docs @@ -431,3 +433,92 @@ message FractionalPercent { // fractional percentage is capped at 1 (100%). DenominatorType denominator = 2; } + +// Authentication allows the operator to specify the authentication of +// connections to out-of-process infrastructure backend. +message Authentication { + oneof auth_type { + // Originate a TLS connection to the adapter and present an auth token + // in each call for client authentication. + Tls tls = 1; + + // Secure connections to the adapter using mutual TLS by presenting + // client certificates for authentication. + Mutual mutual = 2; + }; +} + +// Tls let operator specify client authentication setting when TLS is used for +// connection to the backend. +message Tls { + // The path to the file holding additional CA certificates to well known + // public certs. + string ca_certificates = 1; + + // Specifies how to get access token for client authn and authz. + oneof token_source { + // The path to the file holding the auth token (password, jwt token, api + // key, etc). + string token_path = 2; + + // Oauth config to fetch access token from auth provider. + OAuth oauth = 3; + } + + // AuthHeader specifies how to pass access token with authorization header. + enum AuthHeader { + // Access token is passed in authorization header as what it is + // (authorization: some-token). + PLAIN = 0; + + // Access token is passed to adapter as bearer token (i.e. authorization: + // bearer some-token). + BEARER = 1; + } + + // Specifies how to pass access token to the adapter backend. + oneof token_type { + // Access token is passed as authorization header. + AuthHeader auth_header = 4; + + // Customized header key to hold access token, e.g. x-api-key. Token will be + // passed as what it is. + string custom_header = 5; + } +} + +// OAuth let operator specify config to fetch access token via oauth when using +// TLS for connection to the backend. +message OAuth { + // REQUIRED. OAuth client id for mixer. + string client_id = 1; + + // REQUIRED. The path to the file holding the client secret for oauth. + string client_secret = 2; + + // REQUIRED. The Resource server's token endpoint URL. + string token_url = 3; + + // List of requested permissions. + repeated string scopes = 4; + + // Additional parameters for requests to the token endpoint. + map endpoint_params = 5; +} + +// Mutual let operator specify tls config for mixer as client if mtls is used to +// secure connection to adapter backend. +message Mutual { + // The path to the file holding the private key for mtls. If omitted, the + // default mixer private key will be used. + string private_key = 1; + + // The path to the file holding client certificate for mtls. If omitted, the + // default mixer certificates will be used. + string client_certificate = 2; + + // The path to the file holding additional CA certificates that are needed to + // verify the presented adapter certificates. By default mixer should already + // include Istio CA certificates and system certificates in cert pool. + string ca_certificates = 3; +} diff --git a/policy/v1beta1/istio.policy.v1beta1.pb.html b/policy/v1beta1/istio.policy.v1beta1.pb.html index 2cd47ce3ee..0ca8ab344c 100644 --- a/policy/v1beta1/istio.policy.v1beta1.pb.html +++ b/policy/v1beta1/istio.policy.v1beta1.pb.html @@ -4,7 +4,7 @@ location: https://istio.io/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html layout: protoc-gen-docs generator: protoc-gen-docs -number_of_entries: 18 +number_of_entries: 23 ---

Describes the rules used to configure Mixer’s policy and telemetry features.

@@ -183,6 +183,41 @@

HTTP Mapping

Required. The type of data carried by this attribute.

+ + + + + +

Authentication

+
+

Authentication allows the operator to specify the authentication of +connections to out-of-process infrastructure backend.

+ + + + + + + + + + + + + + + + + + + @@ -216,6 +251,15 @@

Connection

+ + + + + @@ -572,6 +616,108 @@

Instance

source.namespace: output.source_namespace + + + +
FieldTypeDescription
tlsTls (oneof) +

Originate a TLS connection to the adapter and present an auth token +in each call for client authentication.

+ +
mutualMutual (oneof) +

Secure connections to the adapter using mutual TLS by presenting +client certificates for authentication.

+

Timeout for remote calls to the backend.

+
authenticationAuthentication +

Auth config for the connection to the backend. If omitted, plain text will +be used.

+
+
+

Mutual

+
+

Mutual let operator specify tls config for mixer as client if mtls is used to +secure connection to adapter backend.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
privateKeystring +

The path to the file holding the private key for mtls. If omitted, the +default mixer private key will be used.

+ +
clientCertificatestring +

The path to the file holding client certificate for mtls. If omitted, the +default mixer certificates will be used.

+ +
caCertificatesstring +

The path to the file holding additional CA certificates that are needed to +verify the presented adapter certificates. By default mixer should already +include Istio CA certificates and system certificates in cert pool.

+ +
+
+

OAuth

+
+

OAuth let operator specify config to fetch access token via oauth when using +TLS for connection to the backend.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -758,6 +904,97 @@

TimeStamp

+ + +
FieldTypeDescription
clientIdstring +

REQUIRED. OAuth client id for mixer.

+ +
clientSecretstring +

REQUIRED. The path to the file holding the client secret for oauth.

+ +
tokenUrlstring +

REQUIRED. The Resource server’s token endpoint URL.

+ +
scopesstring[] +

List of requested permissions.

+ +
endpointParamsmap<string, string> +

Additional parameters for requests to the token endpoint.

+

TimeStamp encoded as google.protobuf.Timestamp.

+
+
+

Tls

+
+

Tls let operator specify client authentication setting when TLS is used for +connection to the backend.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
caCertificatesstring +

The path to the file holding additional CA certificates to well known +public certs.

+ +
tokenPathstring (oneof) +

The path to the file holding the auth token (password, jwt token, api +key, etc).

+ +
oauthOAuth (oneof) +

Oauth config to fetch access token from auth provider.

+ +
authHeaderTls.AuthHeader (oneof) +

Access token is passed as authorization header.

+ +
customHeaderstring (oneof) +

Customized header key to hold access token, e.g. x-api-key. Token will be +passed as what it is.

+ +
+
+

Tls.AuthHeader

+
+

AuthHeader specifies how to pass access token with authorization header.

+ + + + + + + + + + + + + + + + diff --git a/proto.lock b/proto.lock index c1288ae658..95cf510647 100644 --- a/proto.lock +++ b/proto.lock @@ -684,24 +684,13 @@ { "name": "ALLOW_ANY", "integer": 1 - }, - { - "name": "VIRTUAL_SERVICE_ONLY", - "integer": 2 - } - ] - }, - { - "name": "DefaultServiceDependency.Mode", - "enum_fields": [ - { - "name": "ALL_NAMESPACES", - "integer": 0 - }, - { - "name": "SAME_NAMESPACE", - "integer": 1 } + ], + "reserved_ids": [ + 2 + ], + "reserved_names": [ + "VIRTUAL_SERVICE_ONLY" ] } ], @@ -729,6 +718,11 @@ "name": "policy_check_fail_open", "type": "bool" }, + { + "id": 30, + "name": "sidecar_to_telemetry_session_affinity", + "type": "bool" + }, { "id": 4, "name": "proxy_listen_port", @@ -835,15 +829,15 @@ "name": "enable_sds_token_mount", "type": "bool" }, + { + "id": 29, + "name": "sds_use_k8s_sa_jwt", + "type": "bool" + }, { "id": 26, "name": "trust_domain", "type": "string" - }, - { - "id": 29, - "name": "default_service_dependency", - "type": "DefaultServiceDependency" } ], "reserved_ids": [ @@ -860,22 +854,6 @@ "type": "Mode" } ] - }, - { - "name": "DefaultServiceDependency", - "fields": [ - { - "id": 1, - "name": "import_mode", - "type": "Mode" - }, - { - "id": 2, - "name": "import_namespaces", - "type": "string", - "is_repeated": true - } - ] } ] }, @@ -2589,6 +2567,12 @@ "id": 2, "name": "consistent_hash", "type": "ConsistentHashLB" + }, + { + "id": 3, + "name": "locality_weight_settings", + "type": "LocalityWeightSetting", + "is_repeated": true } ], "messages": [ @@ -2638,6 +2622,26 @@ ] } ] + }, + { + "name": "LocalityWeightSetting", + "fields": [ + { + "id": 1, + "name": "from", + "type": "string" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 2, + "name": "to", + "type": "uint32" + } + } + ] } ] }, @@ -3059,6 +3063,11 @@ "name": "port", "type": "Port" }, + { + "id": 4, + "name": "bind", + "type": "string" + }, { "id": 2, "name": "hosts", @@ -3069,6 +3078,11 @@ "id": 3, "name": "tls", "type": "TLSOptions" + }, + { + "id": 5, + "name": "default_endpoint", + "type": "string" } ], "messages": [ @@ -3149,77 +3163,6 @@ ] } }, - { - "protopath": "networking:/:v1alpha3:/:service_dependency.proto", - "def": { - "enums": [ - { - "name": "ConfigScope", - "enum_fields": [ - { - "name": "PUBLIC", - "integer": 0 - }, - { - "name": "PRIVATE", - "integer": 1 - } - ] - } - ], - "messages": [ - { - "name": "ServiceDependency", - "fields": [ - { - "id": 1, - "name": "dependencies", - "type": "Dependency", - "is_repeated": true - } - ], - "messages": [ - { - "name": "Import", - "fields": [ - { - "id": 1, - "name": "namespace", - "type": "string" - }, - { - "id": 2, - "name": "host", - "type": "string" - } - ] - }, - { - "name": "Dependency", - "fields": [ - { - "id": 2, - "name": "imports", - "type": "Import", - "is_repeated": true - } - ], - "maps": [ - { - "key_type": "string", - "field": { - "id": 1, - "name": "source_workload_labels", - "type": "string" - } - } - ] - } - ] - } - ] - } - }, { "protopath": "networking:/:v1alpha3:/:service_entry.proto", "def": { @@ -3348,6 +3291,131 @@ ] } }, + { + "protopath": "networking:/:v1alpha3:/:sidecar.proto", + "def": { + "enums": [ + { + "name": "ConfigScope", + "enum_fields": [ + { + "name": "PUBLIC", + "integer": 0 + }, + { + "name": "PRIVATE", + "integer": 1 + } + ] + }, + { + "name": "CaptureMode", + "enum_fields": [ + { + "name": "DEFAULT", + "integer": 0 + }, + { + "name": "IPTABLES", + "integer": 1 + }, + { + "name": "NONE", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "Sidecar", + "fields": [ + { + "id": 1, + "name": "workload_selector", + "type": "WorkloadSelector" + }, + { + "id": 2, + "name": "ingress", + "type": "IstioIngressListener", + "is_repeated": true + }, + { + "id": 3, + "name": "egress", + "type": "IstioEgressListener", + "is_repeated": true + } + ] + }, + { + "name": "IstioIngressListener", + "fields": [ + { + "id": 1, + "name": "port", + "type": "Port" + }, + { + "id": 2, + "name": "bind", + "type": "string" + }, + { + "id": 3, + "name": "capture_mode", + "type": "CaptureMode" + }, + { + "id": 4, + "name": "default_endpoint", + "type": "string" + } + ] + }, + { + "name": "IstioEgressListener", + "fields": [ + { + "id": 1, + "name": "port", + "type": "Port" + }, + { + "id": 2, + "name": "bind", + "type": "string" + }, + { + "id": 3, + "name": "capture_mode", + "type": "CaptureMode" + }, + { + "id": 4, + "name": "hosts", + "type": "string", + "is_repeated": true + } + ] + }, + { + "name": "WorkloadSelector", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "labels", + "type": "string" + } + } + ] + } + ] + } + }, { "protopath": "networking:/:v1alpha3:/:virtual_service.proto", "def": { @@ -4033,6 +4101,19 @@ "integer": 1 } ] + }, + { + "name": "Tls.AuthHeader", + "enum_fields": [ + { + "name": "PLAIN", + "integer": 0 + }, + { + "name": "BEARER", + "integer": 1 + } + ] } ], "messages": [ @@ -4232,6 +4313,11 @@ "id": 3, "name": "timeout", "type": "google.protobuf.Duration" + }, + { + "id": 4, + "name": "authentication", + "type": "Authentication" } ] }, @@ -4304,6 +4390,107 @@ "type": "DenominatorType" } ] + }, + { + "name": "Authentication", + "fields": [ + { + "id": 1, + "name": "tls", + "type": "Tls" + }, + { + "id": 2, + "name": "mutual", + "type": "Mutual" + } + ] + }, + { + "name": "Tls", + "fields": [ + { + "id": 1, + "name": "ca_certificates", + "type": "string" + }, + { + "id": 2, + "name": "token_path", + "type": "string" + }, + { + "id": 3, + "name": "oauth", + "type": "OAuth" + }, + { + "id": 4, + "name": "auth_header", + "type": "AuthHeader" + }, + { + "id": 5, + "name": "custom_header", + "type": "string" + } + ] + }, + { + "name": "OAuth", + "fields": [ + { + "id": 1, + "name": "client_id", + "type": "string" + }, + { + "id": 2, + "name": "client_secret", + "type": "string" + }, + { + "id": 3, + "name": "token_url", + "type": "string" + }, + { + "id": 4, + "name": "scopes", + "type": "string", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 5, + "name": "endpoint_params", + "type": "string" + } + } + ] + }, + { + "name": "Mutual", + "fields": [ + { + "id": 1, + "name": "private_key", + "type": "string" + }, + { + "id": 2, + "name": "client_certificate", + "type": "string" + }, + { + "id": 3, + "name": "ca_certificates", + "type": "string" + } + ] } ] } diff --git a/python/istio_api/mesh/v1alpha1/config_pb2.py b/python/istio_api/mesh/v1alpha1/config_pb2.py index 5c7f884e8f..1893c3beda 100644 --- a/python/istio_api/mesh/v1alpha1/config_pb2.py +++ b/python/istio_api/mesh/v1alpha1/config_pb2.py @@ -22,7 +22,7 @@ name='mesh/v1alpha1/config.proto', package='istio.mesh.v1alpha1', syntax='proto3', - serialized_pb=_b('\n\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\"\xf7\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\x12\\\n\x1a\x64\x65\x66\x61ult_service_dependency\x18\x1d \x01(\x0b\x32\x38.istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency\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\xb9\x01\n\x18\x44\x65\x66\x61ultServiceDependency\x12R\n\x0bimport_mode\x18\x01 \x01(\x0e\x32=.istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency.Mode\x12\x19\n\x11import_namespaces\x18\x02 \x03(\t\".\n\x04Mode\x12\x12\n\x0e\x41LL_NAMESPACES\x10\x00\x12\x12\n\x0eSAME_NAMESPACE\x10\x01\"9\n\x15IngressControllerMode\x12\x07\n\x03OFF\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06STRICT\x10\x02\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\"\'\n\x11\x41\x63\x63\x65ssLogEncoding\x12\x08\n\x04TEXT\x10\x00\x12\x08\n\x04JSON\x10\x01J\x04\x08\x0f\x10\x10J\x04\x08\x12\x10\x13\"]\n\x0c\x43onfigSource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12<\n\x0ctls_settings\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettingsB\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') + serialized_pb=_b('\n\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\"\x96\x0c\n\nMeshConfig\x12\x1a\n\x12mixer_check_server\x18\x01 \x01(\t\x12\x1b\n\x13mixer_report_server\x18\x02 \x01(\t\x12\x1d\n\x15\x64isable_policy_checks\x18\x03 \x01(\x08\x12\x1e\n\x16policy_check_fail_open\x18\x19 \x01(\x08\x12-\n%sidecar_to_telemetry_session_affinity\x18\x1e \x01(\x08\x12\x19\n\x11proxy_listen_port\x18\x04 \x01(\x05\x12\x17\n\x0fproxy_http_port\x18\x05 \x01(\x05\x12\x32\n\x0f\x63onnect_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x61\n\rtcp_keepalive\x18\x1c \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive\x12\x15\n\ringress_class\x18\x07 \x01(\t\x12\x17\n\x0fingress_service\x18\x08 \x01(\t\x12V\n\x17ingress_controller_mode\x18\t \x01(\x0e\x32\x35.istio.mesh.v1alpha1.MeshConfig.IngressControllerMode\x12\x43\n\x0b\x61uth_policy\x18\n \x01(\x0e\x32*.istio.mesh.v1alpha1.MeshConfig.AuthPolicyB\x02\x18\x01\x12\x38\n\x11rds_refresh_delay\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x16\n\x0e\x65nable_tracing\x18\x0c \x01(\x08\x12\x17\n\x0f\x61\x63\x63\x65ss_log_file\x18\r \x01(\t\x12\x19\n\x11\x61\x63\x63\x65ss_log_format\x18\x18 \x01(\t\x12N\n\x13\x61\x63\x63\x65ss_log_encoding\x18\x1b \x01(\x0e\x32\x31.istio.mesh.v1alpha1.MeshConfig.AccessLogEncoding\x12\x38\n\x0e\x64\x65\x66\x61ult_config\x18\x0e \x01(\x0b\x32 .istio.mesh.v1alpha1.ProxyConfig\x12\x19\n\rmixer_address\x18\x10 \x01(\tB\x02\x18\x01\x12V\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy\x12\'\n\x1f\x65nable_client_side_policy_check\x18\x13 \x01(\x08\x12\x14\n\x0csds_uds_path\x18\x14 \x01(\t\x12\x38\n\x11sds_refresh_delay\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x39\n\x0e\x63onfig_sources\x18\x16 \x03(\x0b\x32!.istio.mesh.v1alpha1.ConfigSource\x12\x1e\n\x16\x65nable_sds_token_mount\x18\x17 \x01(\x08\x12\x1a\n\x12sds_use_k8s_sa_jwt\x18\x1d \x01(\x08\x12\x14\n\x0ctrust_domain\x18\x1a \x01(\t\x1a\xa7\x01\n\x15OutboundTrafficPolicy\x12H\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode\"D\n\x04Mode\x12\x11\n\rREGISTRY_ONLY\x10\x00\x12\r\n\tALLOW_ANY\x10\x01\"\x04\x08\x02\x10\x02*\x14VIRTUAL_SERVICE_ONLY\"9\n\x15IngressControllerMode\x12\x07\n\x03OFF\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06STRICT\x10\x02\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\"\'\n\x11\x41\x63\x63\x65ssLogEncoding\x12\x08\n\x04TEXT\x10\x00\x12\x08\n\x04JSON\x10\x01J\x04\x08\x0f\x10\x10J\x04\x08\x12\x10\x13\"]\n\x0c\x43onfigSource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12<\n\x0ctls_settings\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettingsB\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,mesh_dot_v1alpha1_dot_proxy__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_destination__rule__pb2.DESCRIPTOR,]) @@ -36,45 +36,19 @@ values=[ _descriptor.EnumValueDescriptor( name='REGISTRY_ONLY', index=0, number=0, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='ALLOW_ANY', index=1, number=1, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='VIRTUAL_SERVICE_ONLY', index=2, number=2, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001')), - type=None), - ], - containing_type=None, - options=None, - serialized_start=1520, - serialized_end=1598, -) -_sym_db.RegisterEnumDescriptor(_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE) - -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE = _descriptor.EnumDescriptor( - name='Mode', - full_name='istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency.Mode', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='ALL_NAMESPACES', index=0, number=0, options=None, type=None), _descriptor.EnumValueDescriptor( - name='SAME_NAMESPACE', index=1, number=1, + name='ALLOW_ANY', index=1, number=1, options=None, type=None), ], containing_type=None, options=None, - serialized_start=1740, - serialized_end=1786, + serialized_start=1493, + serialized_end=1561, ) -_sym_db.RegisterEnumDescriptor(_MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE) +_sym_db.RegisterEnumDescriptor(_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE) _MESHCONFIG_INGRESSCONTROLLERMODE = _descriptor.EnumDescriptor( name='IngressControllerMode', @@ -97,8 +71,8 @@ ], containing_type=None, options=None, - serialized_start=1788, - serialized_end=1845, + serialized_start=1563, + serialized_end=1620, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_INGRESSCONTROLLERMODE) @@ -119,8 +93,8 @@ ], containing_type=None, options=None, - serialized_start=1847, - serialized_end=1885, + serialized_start=1622, + serialized_end=1660, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_AUTHPOLICY) @@ -141,8 +115,8 @@ ], containing_type=None, options=None, - serialized_start=1887, - serialized_end=1926, + serialized_start=1662, + serialized_end=1701, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_ACCESSLOGENCODING) @@ -160,51 +134,13 @@ has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1417, - serialized_end=1598, -) - -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY = _descriptor.Descriptor( - name='DefaultServiceDependency', - full_name='istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='import_mode', full_name='istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency.import_mode', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='import_namespaces', full_name='istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency.import_namespaces', index=1, - number=2, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ - _MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE, + _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE, ], options=None, is_extendable=False, @@ -212,8 +148,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1601, - serialized_end=1786, + serialized_start=1394, + serialized_end=1561, ) _MESHCONFIG = _descriptor.Descriptor( @@ -252,170 +188,177 @@ is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='proxy_listen_port', full_name='istio.mesh.v1alpha1.MeshConfig.proxy_listen_port', index=4, + name='sidecar_to_telemetry_session_affinity', full_name='istio.mesh.v1alpha1.MeshConfig.sidecar_to_telemetry_session_affinity', index=4, + number=30, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='proxy_listen_port', full_name='istio.mesh.v1alpha1.MeshConfig.proxy_listen_port', index=5, number=4, type=5, cpp_type=1, 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='proxy_http_port', full_name='istio.mesh.v1alpha1.MeshConfig.proxy_http_port', index=5, + name='proxy_http_port', full_name='istio.mesh.v1alpha1.MeshConfig.proxy_http_port', index=6, number=5, type=5, cpp_type=1, 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='connect_timeout', full_name='istio.mesh.v1alpha1.MeshConfig.connect_timeout', index=6, + name='connect_timeout', full_name='istio.mesh.v1alpha1.MeshConfig.connect_timeout', index=7, number=6, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tcp_keepalive', full_name='istio.mesh.v1alpha1.MeshConfig.tcp_keepalive', index=7, + name='tcp_keepalive', full_name='istio.mesh.v1alpha1.MeshConfig.tcp_keepalive', index=8, number=28, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ingress_class', full_name='istio.mesh.v1alpha1.MeshConfig.ingress_class', index=8, + name='ingress_class', full_name='istio.mesh.v1alpha1.MeshConfig.ingress_class', index=9, number=7, 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='ingress_service', full_name='istio.mesh.v1alpha1.MeshConfig.ingress_service', index=9, + name='ingress_service', full_name='istio.mesh.v1alpha1.MeshConfig.ingress_service', index=10, number=8, 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='ingress_controller_mode', full_name='istio.mesh.v1alpha1.MeshConfig.ingress_controller_mode', index=10, + name='ingress_controller_mode', full_name='istio.mesh.v1alpha1.MeshConfig.ingress_controller_mode', index=11, number=9, 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='auth_policy', full_name='istio.mesh.v1alpha1.MeshConfig.auth_policy', index=11, + name='auth_policy', full_name='istio.mesh.v1alpha1.MeshConfig.auth_policy', index=12, number=10, 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='rds_refresh_delay', full_name='istio.mesh.v1alpha1.MeshConfig.rds_refresh_delay', index=12, + name='rds_refresh_delay', full_name='istio.mesh.v1alpha1.MeshConfig.rds_refresh_delay', index=13, number=11, 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='enable_tracing', full_name='istio.mesh.v1alpha1.MeshConfig.enable_tracing', index=13, + name='enable_tracing', full_name='istio.mesh.v1alpha1.MeshConfig.enable_tracing', index=14, number=12, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='access_log_file', full_name='istio.mesh.v1alpha1.MeshConfig.access_log_file', index=14, + name='access_log_file', full_name='istio.mesh.v1alpha1.MeshConfig.access_log_file', index=15, number=13, 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='access_log_format', full_name='istio.mesh.v1alpha1.MeshConfig.access_log_format', index=15, + name='access_log_format', full_name='istio.mesh.v1alpha1.MeshConfig.access_log_format', index=16, number=24, 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='access_log_encoding', full_name='istio.mesh.v1alpha1.MeshConfig.access_log_encoding', index=16, + name='access_log_encoding', full_name='istio.mesh.v1alpha1.MeshConfig.access_log_encoding', index=17, number=27, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='default_config', full_name='istio.mesh.v1alpha1.MeshConfig.default_config', index=17, + name='default_config', full_name='istio.mesh.v1alpha1.MeshConfig.default_config', index=18, number=14, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='mixer_address', full_name='istio.mesh.v1alpha1.MeshConfig.mixer_address', index=18, + name='mixer_address', full_name='istio.mesh.v1alpha1.MeshConfig.mixer_address', index=19, number=16, 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='outbound_traffic_policy', full_name='istio.mesh.v1alpha1.MeshConfig.outbound_traffic_policy', index=19, + name='outbound_traffic_policy', full_name='istio.mesh.v1alpha1.MeshConfig.outbound_traffic_policy', index=20, number=17, 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), + options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='enable_client_side_policy_check', full_name='istio.mesh.v1alpha1.MeshConfig.enable_client_side_policy_check', index=20, + name='enable_client_side_policy_check', full_name='istio.mesh.v1alpha1.MeshConfig.enable_client_side_policy_check', index=21, number=19, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='sds_uds_path', full_name='istio.mesh.v1alpha1.MeshConfig.sds_uds_path', index=21, + name='sds_uds_path', full_name='istio.mesh.v1alpha1.MeshConfig.sds_uds_path', index=22, number=20, 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='sds_refresh_delay', full_name='istio.mesh.v1alpha1.MeshConfig.sds_refresh_delay', index=22, + name='sds_refresh_delay', full_name='istio.mesh.v1alpha1.MeshConfig.sds_refresh_delay', index=23, number=21, 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='config_sources', full_name='istio.mesh.v1alpha1.MeshConfig.config_sources', index=23, + name='config_sources', full_name='istio.mesh.v1alpha1.MeshConfig.config_sources', index=24, number=22, 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='enable_sds_token_mount', full_name='istio.mesh.v1alpha1.MeshConfig.enable_sds_token_mount', index=24, + name='enable_sds_token_mount', full_name='istio.mesh.v1alpha1.MeshConfig.enable_sds_token_mount', index=25, number=23, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='trust_domain', full_name='istio.mesh.v1alpha1.MeshConfig.trust_domain', index=25, - number=26, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + name='sds_use_k8s_sa_jwt', full_name='istio.mesh.v1alpha1.MeshConfig.sds_use_k8s_sa_jwt', index=26, + number=29, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='default_service_dependency', full_name='istio.mesh.v1alpha1.MeshConfig.default_service_dependency', index=26, - number=29, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='trust_domain', full_name='istio.mesh.v1alpha1.MeshConfig.trust_domain', index=27, + number=26, 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=[_MESHCONFIG_OUTBOUNDTRAFFICPOLICY, _MESHCONFIG_DEFAULTSERVICEDEPENDENCY, ], + nested_types=[_MESHCONFIG_OUTBOUNDTRAFFICPOLICY, ], enum_types=[ _MESHCONFIG_INGRESSCONTROLLERMODE, _MESHCONFIG_AUTHPOLICY, @@ -428,7 +371,7 @@ oneofs=[ ], serialized_start=155, - serialized_end=1938, + serialized_end=1713, ) @@ -465,16 +408,13 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1940, - serialized_end=2033, + serialized_start=1715, + serialized_end=1808, ) _MESHCONFIG_OUTBOUNDTRAFFICPOLICY.fields_by_name['mode'].enum_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE _MESHCONFIG_OUTBOUNDTRAFFICPOLICY.containing_type = _MESHCONFIG _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.containing_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY.fields_by_name['import_mode'].enum_type = _MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY.containing_type = _MESHCONFIG -_MESHCONFIG_DEFAULTSERVICEDEPENDENCY_MODE.containing_type = _MESHCONFIG_DEFAULTSERVICEDEPENDENCY _MESHCONFIG.fields_by_name['connect_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _MESHCONFIG.fields_by_name['tcp_keepalive'].message_type = networking_dot_v1alpha3_dot_destination__rule__pb2._CONNECTIONPOOLSETTINGS_TCPSETTINGS_TCPKEEPALIVE _MESHCONFIG.fields_by_name['ingress_controller_mode'].enum_type = _MESHCONFIG_INGRESSCONTROLLERMODE @@ -485,7 +425,6 @@ _MESHCONFIG.fields_by_name['outbound_traffic_policy'].message_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY _MESHCONFIG.fields_by_name['sds_refresh_delay'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _MESHCONFIG.fields_by_name['config_sources'].message_type = _CONFIGSOURCE -_MESHCONFIG.fields_by_name['default_service_dependency'].message_type = _MESHCONFIG_DEFAULTSERVICEDEPENDENCY _MESHCONFIG_INGRESSCONTROLLERMODE.containing_type = _MESHCONFIG _MESHCONFIG_AUTHPOLICY.containing_type = _MESHCONFIG _MESHCONFIG_ACCESSLOGENCODING.containing_type = _MESHCONFIG @@ -502,20 +441,12 @@ # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy) )) , - - DefaultServiceDependency = _reflection.GeneratedProtocolMessageType('DefaultServiceDependency', (_message.Message,), dict( - DESCRIPTOR = _MESHCONFIG_DEFAULTSERVICEDEPENDENCY, - __module__ = 'mesh.v1alpha1.config_pb2' - # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.DefaultServiceDependency) - )) - , DESCRIPTOR = _MESHCONFIG, __module__ = 'mesh.v1alpha1.config_pb2' # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig) )) _sym_db.RegisterMessage(MeshConfig) _sym_db.RegisterMessage(MeshConfig.OutboundTrafficPolicy) -_sym_db.RegisterMessage(MeshConfig.DefaultServiceDependency) ConfigSource = _reflection.GeneratedProtocolMessageType('ConfigSource', (_message.Message,), dict( DESCRIPTOR = _CONFIGSOURCE, @@ -527,22 +458,12 @@ DESCRIPTOR.has_options = True DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\032istio.io/api/mesh/v1alpha1')) -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.values_by_name["REGISTRY_ONLY"].has_options = True -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.values_by_name["REGISTRY_ONLY"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001')) -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.values_by_name["ALLOW_ANY"].has_options = True -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.values_by_name["ALLOW_ANY"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001')) -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.values_by_name["VIRTUAL_SERVICE_ONLY"].has_options = True -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.values_by_name["VIRTUAL_SERVICE_ONLY"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001')) -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY.fields_by_name['mode'].has_options = True -_MESHCONFIG_OUTBOUNDTRAFFICPOLICY.fields_by_name['mode']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) _MESHCONFIG.fields_by_name['auth_policy'].has_options = True _MESHCONFIG.fields_by_name['auth_policy']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) _MESHCONFIG.fields_by_name['rds_refresh_delay'].has_options = True _MESHCONFIG.fields_by_name['rds_refresh_delay']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) _MESHCONFIG.fields_by_name['mixer_address'].has_options = True _MESHCONFIG.fields_by_name['mixer_address']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) -_MESHCONFIG.fields_by_name['outbound_traffic_policy'].has_options = True -_MESHCONFIG.fields_by_name['outbound_traffic_policy']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) _MESHCONFIG.fields_by_name['sds_refresh_delay'].has_options = True _MESHCONFIG.fields_by_name['sds_refresh_delay']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) # @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/networking/v1alpha3/destination_rule_pb2.py b/python/istio_api/networking/v1alpha3/destination_rule_pb2.py index a3bc60696a..461d8fcdfb 100644 --- a/python/istio_api/networking/v1alpha3/destination_rule_pb2.py +++ b/python/istio_api/networking/v1alpha3/destination_rule_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from networking.v1alpha3 import virtual_service_pb2 as networking_dot_v1alpha3_dot_virtual__service__pb2 -from networking.v1alpha3 import service_dependency_pb2 as networking_dot_v1alpha3_dot_service__dependency__pb2 +from networking.v1alpha3 import sidecar_pb2 as networking_dot_v1alpha3_dot_sidecar__pb2 from gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 @@ -23,9 +23,9 @@ name='networking/v1alpha3/destination_rule.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n*networking/v1alpha3/destination_rule.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a)networking/v1alpha3/virtual_service.proto\x1a,networking/v1alpha3/service_dependency.proto\x1a\x14gogoproto/gogo.proto\"\xd3\x01\n\x0f\x44\x65stinationRule\x12\x0c\n\x04host\x18\x01 \x01(\t\x12@\n\x0etraffic_policy\x18\x02 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x12\x32\n\x07subsets\x18\x03 \x03(\x0b\x32!.istio.networking.v1alpha3.Subset\x12<\n\x0c\x63onfig_scope\x18\x04 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\"\xd7\x05\n\rTrafficPolicy\x12\x46\n\rload_balancer\x18\x01 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x02 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x03 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\x12W\n\x13port_level_settings\x18\x05 \x03(\x0b\x32:.istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy\x1a\xdb\x02\n\x11PortTrafficPolicy\x12\x35\n\x04port\x18\x01 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\x12\x46\n\rload_balancer\x18\x02 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x03 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x04 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x05 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\"\xc6\x01\n\x06Subset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x06labels\x18\x02 \x03(\x0b\x32-.istio.networking.v1alpha3.Subset.LabelsEntry\x12@\n\x0etraffic_policy\x18\x03 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\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/sidecar.proto\x1a\x14gogoproto/gogo.proto\"\xd3\x01\n\x0f\x44\x65stinationRule\x12\x0c\n\x04host\x18\x01 \x01(\t\x12@\n\x0etraffic_policy\x18\x02 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x12\x32\n\x07subsets\x18\x03 \x03(\x0b\x32!.istio.networking.v1alpha3.Subset\x12<\n\x0c\x63onfig_scope\x18\x04 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\"\xd7\x05\n\rTrafficPolicy\x12\x46\n\rload_balancer\x18\x01 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x02 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x03 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\x12W\n\x13port_level_settings\x18\x05 \x03(\x0b\x32:.istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy\x1a\xdb\x02\n\x11PortTrafficPolicy\x12\x35\n\x04port\x18\x01 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\x12\x46\n\rload_balancer\x18\x02 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x03 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x04 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x05 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\"\xc6\x01\n\x06Subset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x06labels\x18\x02 \x03(\x0b\x32-.istio.networking.v1alpha3.Subset.LabelsEntry\x12@\n\x0etraffic_policy\x18\x03 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xda\x06\n\x14LoadBalancerSettings\x12J\n\x06simple\x18\x01 \x01(\x0e\x32\x38.istio.networking.v1alpha3.LoadBalancerSettings.SimpleLBH\x00\x12[\n\x0f\x63onsistent_hash\x18\x02 \x01(\x0b\x32@.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLBH\x00\x12g\n\x18locality_weight_settings\x18\x03 \x03(\x0b\x32\x45.istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting\x1a\xaa\x02\n\x10\x43onsistentHashLB\x12\x1a\n\x10http_header_name\x18\x01 \x01(\tH\x00\x12\x62\n\x0bhttp_cookie\x18\x02 \x01(\x0b\x32K.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookieH\x00\x12\x17\n\ruse_source_ip\x18\x03 \x01(\x08H\x00\x12\x19\n\x11minimum_ring_size\x18\x04 \x01(\x04\x1aV\n\nHTTPCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12,\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01\x42\n\n\x08hash_key\x1a\xab\x01\n\x15LocalityWeightSetting\x12\x0c\n\x04\x66rom\x18\x01 \x01(\t\x12Y\n\x02to\x18\x02 \x03(\x0b\x32M.istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting.ToEntry\x1a)\n\x07ToEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"H\n\x08SimpleLB\x12\x0f\n\x0bROUND_ROBIN\x10\x00\x12\x0e\n\nLEAST_CONN\x10\x01\x12\n\n\x06RANDOM\x10\x02\x12\x0f\n\x0bPASSTHROUGH\x10\x03\x42\x0b\n\tlb_policy\"\xf3\x04\n\x16\x43onnectionPoolSettings\x12J\n\x03tcp\x18\x01 \x01(\x0b\x32=.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings\x12L\n\x04http\x18\x02 \x01(\x0b\x32>.istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings\x1a\xb3\x02\n\x0bTCPSettings\x12\x17\n\x0fmax_connections\x18\x01 \x01(\x05\x12\x32\n\x0f\x63onnect_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x61\n\rtcp_keepalive\x18\x03 \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive\x1at\n\x0cTcpKeepalive\x12\x0e\n\x06probes\x18\x01 \x01(\r\x12\'\n\x04time\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12+\n\x08interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x88\x01\n\x0cHTTPSettings\x12\"\n\x1ahttp1_max_pending_requests\x18\x01 \x01(\x05\x12\x1a\n\x12http2_max_requests\x18\x02 \x01(\x05\x12#\n\x1bmax_requests_per_connection\x18\x03 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x04 \x01(\x05\"\xcc\x01\n\x10OutlierDetection\x12\x1a\n\x12\x63onsecutive_errors\x18\x01 \x01(\x05\x12+\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x12\x62\x61se_ejection_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1c\n\x14max_ejection_percent\x18\x04 \x01(\x05\x12\x1a\n\x12min_health_percent\x18\x05 \x01(\x05\"\xff\x01\n\x0bTLSSettings\x12<\n\x04mode\x18\x01 \x01(\x0e\x32..istio.networking.v1alpha3.TLSSettings.TLSmode\x12\x1a\n\x12\x63lient_certificate\x18\x02 \x01(\t\x12\x13\n\x0bprivate_key\x18\x03 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x04 \x01(\t\x12\x19\n\x11subject_alt_names\x18\x05 \x03(\t\x12\x0b\n\x03sni\x18\x06 \x01(\t\"@\n\x07TLSmode\x12\x0b\n\x07\x44ISABLE\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\n\n\x06MUTUAL\x10\x02\x12\x10\n\x0cISTIO_MUTUAL\x10\x03\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , - dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_virtual__service__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_service__dependency__pb2.DESCRIPTOR,gogoproto_dot_gogo__pb2.DESCRIPTOR,]) + dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_virtual__service__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_sidecar__pb2.DESCRIPTOR,gogoproto_dot_gogo__pb2.DESCRIPTOR,]) @@ -54,8 +54,8 @@ ], containing_type=None, options=None, - serialized_start=1856, - serialized_end=1928, + serialized_start=2124, + serialized_end=2196, ) _sym_db.RegisterEnumDescriptor(_LOADBALANCERSETTINGS_SIMPLELB) @@ -84,8 +84,8 @@ ], containing_type=None, options=None, - serialized_start=2972, - serialized_end=3036, + serialized_start=3240, + serialized_end=3304, ) _sym_db.RegisterEnumDescriptor(_TLSSETTINGS_TLSMODE) @@ -137,8 +137,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=217, - serialized_end=428, + serialized_start=206, + serialized_end=417, ) @@ -196,8 +196,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=811, - serialized_end=1158, + serialized_start=800, + serialized_end=1147, ) _TRAFFICPOLICY = _descriptor.Descriptor( @@ -254,8 +254,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=431, - serialized_end=1158, + serialized_start=420, + serialized_end=1147, ) @@ -292,8 +292,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1314, - serialized_end=1359, + serialized_start=1303, + serialized_end=1348, ) _SUBSET = _descriptor.Descriptor( @@ -336,8 +336,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1161, - serialized_end=1359, + serialized_start=1150, + serialized_end=1348, ) @@ -381,8 +381,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1756, - serialized_end=1842, + serialized_start=1850, + serialized_end=1936, ) _LOADBALANCERSETTINGS_CONSISTENTHASHLB = _descriptor.Descriptor( @@ -435,8 +435,82 @@ name='hash_key', full_name='istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.hash_key', index=0, containing_type=None, fields=[]), ], - serialized_start=1556, - serialized_end=1854, + serialized_start=1650, + serialized_end=1948, +) + +_LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING_TOENTRY = _descriptor.Descriptor( + name='ToEntry', + full_name='istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting.ToEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting.ToEntry.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.LoadBalancerSettings.LocalityWeightSetting.ToEntry.value', index=1, + number=2, type=13, cpp_type=3, 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=[ + ], + nested_types=[], + enum_types=[ + ], + options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2081, + serialized_end=2122, +) + +_LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING = _descriptor.Descriptor( + name='LocalityWeightSetting', + full_name='istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='from', full_name='istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting.from', 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='to', full_name='istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting.to', 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=[_LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING_TOENTRY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1951, + serialized_end=2122, ) _LOADBALANCERSETTINGS = _descriptor.Descriptor( @@ -460,10 +534,17 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='locality_weight_settings', full_name='istio.networking.v1alpha3.LoadBalancerSettings.locality_weight_settings', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), ], extensions=[ ], - nested_types=[_LOADBALANCERSETTINGS_CONSISTENTHASHLB, ], + nested_types=[_LOADBALANCERSETTINGS_CONSISTENTHASHLB, _LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING, ], enum_types=[ _LOADBALANCERSETTINGS_SIMPLELB, ], @@ -476,8 +557,8 @@ name='lb_policy', full_name='istio.networking.v1alpha3.LoadBalancerSettings.lb_policy', index=0, containing_type=None, fields=[]), ], - serialized_start=1362, - serialized_end=1941, + serialized_start=1351, + serialized_end=2209, ) @@ -521,8 +602,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2316, - serialized_end=2432, + serialized_start=2584, + serialized_end=2700, ) _CONNECTIONPOOLSETTINGS_TCPSETTINGS = _descriptor.Descriptor( @@ -565,8 +646,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2125, - serialized_end=2432, + serialized_start=2393, + serialized_end=2700, ) _CONNECTIONPOOLSETTINGS_HTTPSETTINGS = _descriptor.Descriptor( @@ -616,8 +697,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2435, - serialized_end=2571, + serialized_start=2703, + serialized_end=2839, ) _CONNECTIONPOOLSETTINGS = _descriptor.Descriptor( @@ -653,8 +734,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1944, - serialized_end=2571, + serialized_start=2212, + serialized_end=2839, ) @@ -712,8 +793,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2574, - serialized_end=2778, + serialized_start=2842, + serialized_end=3046, ) @@ -779,13 +860,13 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2781, - serialized_end=3036, + serialized_start=3049, + serialized_end=3304, ) _DESTINATIONRULE.fields_by_name['traffic_policy'].message_type = _TRAFFICPOLICY _DESTINATIONRULE.fields_by_name['subsets'].message_type = _SUBSET -_DESTINATIONRULE.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_service__dependency__pb2._CONFIGSCOPE +_DESTINATIONRULE.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_sidecar__pb2._CONFIGSCOPE _TRAFFICPOLICY_PORTTRAFFICPOLICY.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_virtual__service__pb2._PORTSELECTOR _TRAFFICPOLICY_PORTTRAFFICPOLICY.fields_by_name['load_balancer'].message_type = _LOADBALANCERSETTINGS _TRAFFICPOLICY_PORTTRAFFICPOLICY.fields_by_name['connection_pool'].message_type = _CONNECTIONPOOLSETTINGS @@ -813,8 +894,12 @@ _LOADBALANCERSETTINGS_CONSISTENTHASHLB.oneofs_by_name['hash_key'].fields.append( _LOADBALANCERSETTINGS_CONSISTENTHASHLB.fields_by_name['use_source_ip']) _LOADBALANCERSETTINGS_CONSISTENTHASHLB.fields_by_name['use_source_ip'].containing_oneof = _LOADBALANCERSETTINGS_CONSISTENTHASHLB.oneofs_by_name['hash_key'] +_LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING_TOENTRY.containing_type = _LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING +_LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING.fields_by_name['to'].message_type = _LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING_TOENTRY +_LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING.containing_type = _LOADBALANCERSETTINGS _LOADBALANCERSETTINGS.fields_by_name['simple'].enum_type = _LOADBALANCERSETTINGS_SIMPLELB _LOADBALANCERSETTINGS.fields_by_name['consistent_hash'].message_type = _LOADBALANCERSETTINGS_CONSISTENTHASHLB +_LOADBALANCERSETTINGS.fields_by_name['locality_weight_settings'].message_type = _LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING _LOADBALANCERSETTINGS_SIMPLELB.containing_type = _LOADBALANCERSETTINGS _LOADBALANCERSETTINGS.oneofs_by_name['lb_policy'].fields.append( _LOADBALANCERSETTINGS.fields_by_name['simple']) @@ -896,6 +981,20 @@ # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB) )) , + + LocalityWeightSetting = _reflection.GeneratedProtocolMessageType('LocalityWeightSetting', (_message.Message,), dict( + + ToEntry = _reflection.GeneratedProtocolMessageType('ToEntry', (_message.Message,), dict( + DESCRIPTOR = _LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING_TOENTRY, + __module__ = 'networking.v1alpha3.destination_rule_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting.ToEntry) + )) + , + DESCRIPTOR = _LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING, + __module__ = 'networking.v1alpha3.destination_rule_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.LoadBalancerSettings.LocalityWeightSetting) + )) + , DESCRIPTOR = _LOADBALANCERSETTINGS, __module__ = 'networking.v1alpha3.destination_rule_pb2' # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.LoadBalancerSettings) @@ -903,6 +1002,8 @@ _sym_db.RegisterMessage(LoadBalancerSettings) _sym_db.RegisterMessage(LoadBalancerSettings.ConsistentHashLB) _sym_db.RegisterMessage(LoadBalancerSettings.ConsistentHashLB.HTTPCookie) +_sym_db.RegisterMessage(LoadBalancerSettings.LocalityWeightSetting) +_sym_db.RegisterMessage(LoadBalancerSettings.LocalityWeightSetting.ToEntry) ConnectionPoolSettings = _reflection.GeneratedProtocolMessageType('ConnectionPoolSettings', (_message.Message,), dict( @@ -956,4 +1057,6 @@ _SUBSET_LABELSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _LOADBALANCERSETTINGS_CONSISTENTHASHLB_HTTPCOOKIE.fields_by_name['ttl'].has_options = True _LOADBALANCERSETTINGS_CONSISTENTHASHLB_HTTPCOOKIE.fields_by_name['ttl']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\230\337\037\001')) +_LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING_TOENTRY.has_options = True +_LOADBALANCERSETTINGS_LOCALITYWEIGHTSETTING_TOENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) # @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/networking/v1alpha3/gateway_pb2.py b/python/istio_api/networking/v1alpha3/gateway_pb2.py index 3a492b02fd..991c4f8169 100644 --- a/python/istio_api/networking/v1alpha3/gateway_pb2.py +++ b/python/istio_api/networking/v1alpha3/gateway_pb2.py @@ -19,7 +19,7 @@ name='networking/v1alpha3/gateway.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n!networking/v1alpha3/gateway.proto\x12\x19istio.networking.v1alpha3\"\xb2\x01\n\x07Gateway\x12\x32\n\x07servers\x18\x01 \x03(\x0b\x32!.istio.networking.v1alpha3.Server\x12\x42\n\x08selector\x18\x02 \x03(\x0b\x32\x30.istio.networking.v1alpha3.Gateway.SelectorEntry\x1a/\n\rSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb3\x05\n\x06Server\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\r\n\x05hosts\x18\x02 \x03(\t\x12\x39\n\x03tls\x18\x03 \x01(\x0b\x32,.istio.networking.v1alpha3.Server.TLSOptions\x1a\xaf\x04\n\nTLSOptions\x12\x16\n\x0ehttps_redirect\x18\x01 \x01(\x08\x12\x42\n\x04mode\x18\x02 \x01(\x0e\x32\x34.istio.networking.v1alpha3.Server.TLSOptions.TLSmode\x12\x1a\n\x12server_certificate\x18\x03 \x01(\t\x12\x13\n\x0bprivate_key\x18\x04 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x05 \x01(\t\x12\x19\n\x11subject_alt_names\x18\x06 \x03(\t\x12V\n\x14min_protocol_version\x18\x07 \x01(\x0e\x32\x38.istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol\x12V\n\x14max_protocol_version\x18\x08 \x01(\x0e\x32\x38.istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol\x12\x15\n\rcipher_suites\x18\t \x03(\t\"H\n\x07TLSmode\x12\x0f\n\x0bPASSTHROUGH\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\n\n\x06MUTUAL\x10\x02\x12\x14\n\x10\x41UTO_PASSTHROUGH\x10\x03\"O\n\x0bTLSProtocol\x12\x0c\n\x08TLS_AUTO\x10\x00\x12\x0b\n\x07TLSV1_0\x10\x01\x12\x0b\n\x07TLSV1_1\x10\x02\x12\x0b\n\x07TLSV1_2\x10\x03\x12\x0b\n\x07TLSV1_3\x10\x04\"6\n\x04Port\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x10\n\x08protocol\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\tB\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n!networking/v1alpha3/gateway.proto\x12\x19istio.networking.v1alpha3\"\xb2\x01\n\x07Gateway\x12\x32\n\x07servers\x18\x01 \x03(\x0b\x32!.istio.networking.v1alpha3.Server\x12\x42\n\x08selector\x18\x02 \x03(\x0b\x32\x30.istio.networking.v1alpha3.Gateway.SelectorEntry\x1a/\n\rSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xdb\x05\n\x06Server\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x04 \x01(\t\x12\r\n\x05hosts\x18\x02 \x03(\t\x12\x39\n\x03tls\x18\x03 \x01(\x0b\x32,.istio.networking.v1alpha3.Server.TLSOptions\x12\x18\n\x10\x64\x65\x66\x61ult_endpoint\x18\x05 \x01(\t\x1a\xaf\x04\n\nTLSOptions\x12\x16\n\x0ehttps_redirect\x18\x01 \x01(\x08\x12\x42\n\x04mode\x18\x02 \x01(\x0e\x32\x34.istio.networking.v1alpha3.Server.TLSOptions.TLSmode\x12\x1a\n\x12server_certificate\x18\x03 \x01(\t\x12\x13\n\x0bprivate_key\x18\x04 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x05 \x01(\t\x12\x19\n\x11subject_alt_names\x18\x06 \x03(\t\x12V\n\x14min_protocol_version\x18\x07 \x01(\x0e\x32\x38.istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol\x12V\n\x14max_protocol_version\x18\x08 \x01(\x0e\x32\x38.istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol\x12\x15\n\rcipher_suites\x18\t \x03(\t\"H\n\x07TLSmode\x12\x0f\n\x0bPASSTHROUGH\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\n\n\x06MUTUAL\x10\x02\x12\x14\n\x10\x41UTO_PASSTHROUGH\x10\x03\"O\n\x0bTLSProtocol\x12\x0c\n\x08TLS_AUTO\x10\x00\x12\x0b\n\x07TLSV1_0\x10\x01\x12\x0b\n\x07TLSV1_1\x10\x02\x12\x0b\n\x07TLSV1_2\x10\x03\x12\x0b\n\x07TLSV1_3\x10\x04\"6\n\x04Port\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x10\n\x08protocol\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\tB\"Z istio.io/api/networking/v1alpha3b\x06proto3') ) @@ -49,8 +49,8 @@ ], containing_type=None, options=None, - serialized_start=784, - serialized_end=856, + serialized_start=824, + serialized_end=896, ) _sym_db.RegisterEnumDescriptor(_SERVER_TLSOPTIONS_TLSMODE) @@ -83,8 +83,8 @@ ], containing_type=None, options=None, - serialized_start=858, - serialized_end=937, + serialized_start=898, + serialized_end=977, ) _sym_db.RegisterEnumDescriptor(_SERVER_TLSOPTIONS_TLSPROTOCOL) @@ -248,8 +248,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=378, - serialized_end=937, + serialized_start=418, + serialized_end=977, ) _SERVER = _descriptor.Descriptor( @@ -267,19 +267,33 @@ is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='hosts', full_name='istio.networking.v1alpha3.Server.hosts', index=1, + name='bind', full_name='istio.networking.v1alpha3.Server.bind', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hosts', full_name='istio.networking.v1alpha3.Server.hosts', index=2, number=2, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tls', full_name='istio.networking.v1alpha3.Server.tls', index=2, + name='tls', full_name='istio.networking.v1alpha3.Server.tls', index=3, number=3, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_endpoint', full_name='istio.networking.v1alpha3.Server.default_endpoint', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -293,7 +307,7 @@ oneofs=[ ], serialized_start=246, - serialized_end=937, + serialized_end=977, ) @@ -337,8 +351,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=939, - serialized_end=993, + serialized_start=979, + serialized_end=1033, ) _GATEWAY_SELECTORENTRY.containing_type = _GATEWAY diff --git a/python/istio_api/networking/v1alpha3/service_dependency_pb2.py b/python/istio_api/networking/v1alpha3/service_dependency_pb2.py deleted file mode 100644 index 995a079b31..0000000000 --- a/python/istio_api/networking/v1alpha3/service_dependency_pb2.py +++ /dev/null @@ -1,241 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: networking/v1alpha3/service_dependency.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='networking/v1alpha3/service_dependency.proto', - package='istio.networking.v1alpha3', - syntax='proto3', - serialized_pb=_b('\n,networking/v1alpha3/service_dependency.proto\x12\x19istio.networking.v1alpha3\"\x92\x03\n\x11ServiceDependency\x12M\n\x0c\x64\x65pendencies\x18\x01 \x03(\x0b\x32\x37.istio.networking.v1alpha3.ServiceDependency.Dependency\x1a)\n\x06Import\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x1a\x82\x02\n\nDependency\x12q\n\x16source_workload_labels\x18\x01 \x03(\x0b\x32Q.istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry\x12\x44\n\x07imports\x18\x02 \x03(\x0b\x32\x33.istio.networking.v1alpha3.ServiceDependency.Import\x1a;\n\x19SourceWorkloadLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*&\n\x0b\x43onfigScope\x12\n\n\x06PUBLIC\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') -) - -_CONFIGSCOPE = _descriptor.EnumDescriptor( - name='ConfigScope', - full_name='istio.networking.v1alpha3.ConfigScope', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='PUBLIC', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PRIVATE', index=1, number=1, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=480, - serialized_end=518, -) -_sym_db.RegisterEnumDescriptor(_CONFIGSCOPE) - -ConfigScope = enum_type_wrapper.EnumTypeWrapper(_CONFIGSCOPE) -PUBLIC = 0 -PRIVATE = 1 - - - -_SERVICEDEPENDENCY_IMPORT = _descriptor.Descriptor( - name='Import', - full_name='istio.networking.v1alpha3.ServiceDependency.Import', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='namespace', full_name='istio.networking.v1alpha3.ServiceDependency.Import.namespace', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='host', full_name='istio.networking.v1alpha3.ServiceDependency.Import.host', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=176, - serialized_end=217, -) - -_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY = _descriptor.Descriptor( - name='SourceWorkloadLabelsEntry', - full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry.value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=419, - serialized_end=478, -) - -_SERVICEDEPENDENCY_DEPENDENCY = _descriptor.Descriptor( - name='Dependency', - full_name='istio.networking.v1alpha3.ServiceDependency.Dependency', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='source_workload_labels', full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.source_workload_labels', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='imports', full_name='istio.networking.v1alpha3.ServiceDependency.Dependency.imports', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY, ], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=220, - serialized_end=478, -) - -_SERVICEDEPENDENCY = _descriptor.Descriptor( - name='ServiceDependency', - full_name='istio.networking.v1alpha3.ServiceDependency', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='dependencies', full_name='istio.networking.v1alpha3.ServiceDependency.dependencies', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_SERVICEDEPENDENCY_IMPORT, _SERVICEDEPENDENCY_DEPENDENCY, ], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=76, - serialized_end=478, -) - -_SERVICEDEPENDENCY_IMPORT.containing_type = _SERVICEDEPENDENCY -_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY.containing_type = _SERVICEDEPENDENCY_DEPENDENCY -_SERVICEDEPENDENCY_DEPENDENCY.fields_by_name['source_workload_labels'].message_type = _SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY -_SERVICEDEPENDENCY_DEPENDENCY.fields_by_name['imports'].message_type = _SERVICEDEPENDENCY_IMPORT -_SERVICEDEPENDENCY_DEPENDENCY.containing_type = _SERVICEDEPENDENCY -_SERVICEDEPENDENCY.fields_by_name['dependencies'].message_type = _SERVICEDEPENDENCY_DEPENDENCY -DESCRIPTOR.message_types_by_name['ServiceDependency'] = _SERVICEDEPENDENCY -DESCRIPTOR.enum_types_by_name['ConfigScope'] = _CONFIGSCOPE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -ServiceDependency = _reflection.GeneratedProtocolMessageType('ServiceDependency', (_message.Message,), dict( - - Import = _reflection.GeneratedProtocolMessageType('Import', (_message.Message,), dict( - DESCRIPTOR = _SERVICEDEPENDENCY_IMPORT, - __module__ = 'networking.v1alpha3.service_dependency_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceDependency.Import) - )) - , - - Dependency = _reflection.GeneratedProtocolMessageType('Dependency', (_message.Message,), dict( - - SourceWorkloadLabelsEntry = _reflection.GeneratedProtocolMessageType('SourceWorkloadLabelsEntry', (_message.Message,), dict( - DESCRIPTOR = _SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY, - __module__ = 'networking.v1alpha3.service_dependency_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceDependency.Dependency.SourceWorkloadLabelsEntry) - )) - , - DESCRIPTOR = _SERVICEDEPENDENCY_DEPENDENCY, - __module__ = 'networking.v1alpha3.service_dependency_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceDependency.Dependency) - )) - , - DESCRIPTOR = _SERVICEDEPENDENCY, - __module__ = 'networking.v1alpha3.service_dependency_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.ServiceDependency) - )) -_sym_db.RegisterMessage(ServiceDependency) -_sym_db.RegisterMessage(ServiceDependency.Import) -_sym_db.RegisterMessage(ServiceDependency.Dependency) -_sym_db.RegisterMessage(ServiceDependency.Dependency.SourceWorkloadLabelsEntry) - - -DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z istio.io/api/networking/v1alpha3')) -_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY.has_options = True -_SERVICEDEPENDENCY_DEPENDENCY_SOURCEWORKLOADLABELSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) -# @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/networking/v1alpha3/service_entry_pb2.py b/python/istio_api/networking/v1alpha3/service_entry_pb2.py index c3c269209f..0375749f9a 100644 --- a/python/istio_api/networking/v1alpha3/service_entry_pb2.py +++ b/python/istio_api/networking/v1alpha3/service_entry_pb2.py @@ -14,16 +14,16 @@ from networking.v1alpha3 import gateway_pb2 as networking_dot_v1alpha3_dot_gateway__pb2 -from networking.v1alpha3 import service_dependency_pb2 as networking_dot_v1alpha3_dot_service__dependency__pb2 +from networking.v1alpha3 import sidecar_pb2 as networking_dot_v1alpha3_dot_sidecar__pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='networking/v1alpha3/service_entry.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n\'networking/v1alpha3/service_entry.proto\x12\x19istio.networking.v1alpha3\x1a!networking/v1alpha3/gateway.proto\x1a,networking/v1alpha3/service_dependency.proto\"\x96\x06\n\x0cServiceEntry\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x11\n\taddresses\x18\x02 \x03(\t\x12.\n\x05ports\x18\x03 \x03(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x42\n\x08location\x18\x04 \x01(\x0e\x32\x30.istio.networking.v1alpha3.ServiceEntry.Location\x12\x46\n\nresolution\x18\x05 \x01(\x0e\x32\x32.istio.networking.v1alpha3.ServiceEntry.Resolution\x12\x43\n\tendpoints\x18\x06 \x03(\x0b\x32\x30.istio.networking.v1alpha3.ServiceEntry.Endpoint\x12<\n\x0c\x63onfig_scope\x18\x07 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\x1a\xc5\x02\n\x08\x45ndpoint\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12J\n\x05ports\x18\x02 \x03(\x0b\x32;.istio.networking.v1alpha3.ServiceEntry.Endpoint.PortsEntry\x12L\n\x06labels\x18\x03 \x03(\x0b\x32<.istio.networking.v1alpha3.ServiceEntry.Endpoint.LabelsEntry\x12\x0f\n\x07network\x18\x04 \x01(\t\x12\x10\n\x08locality\x18\x05 \x01(\t\x12\x0e\n\x06weight\x18\x06 \x01(\r\x1a,\n\nPortsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"0\n\x08Location\x12\x11\n\rMESH_EXTERNAL\x10\x00\x12\x11\n\rMESH_INTERNAL\x10\x01\"+\n\nResolution\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06STATIC\x10\x01\x12\x07\n\x03\x44NS\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n\'networking/v1alpha3/service_entry.proto\x12\x19istio.networking.v1alpha3\x1a!networking/v1alpha3/gateway.proto\x1a!networking/v1alpha3/sidecar.proto\"\x96\x06\n\x0cServiceEntry\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x11\n\taddresses\x18\x02 \x03(\t\x12.\n\x05ports\x18\x03 \x03(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x42\n\x08location\x18\x04 \x01(\x0e\x32\x30.istio.networking.v1alpha3.ServiceEntry.Location\x12\x46\n\nresolution\x18\x05 \x01(\x0e\x32\x32.istio.networking.v1alpha3.ServiceEntry.Resolution\x12\x43\n\tendpoints\x18\x06 \x03(\x0b\x32\x30.istio.networking.v1alpha3.ServiceEntry.Endpoint\x12<\n\x0c\x63onfig_scope\x18\x07 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\x1a\xc5\x02\n\x08\x45ndpoint\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12J\n\x05ports\x18\x02 \x03(\x0b\x32;.istio.networking.v1alpha3.ServiceEntry.Endpoint.PortsEntry\x12L\n\x06labels\x18\x03 \x03(\x0b\x32<.istio.networking.v1alpha3.ServiceEntry.Endpoint.LabelsEntry\x12\x0f\n\x07network\x18\x04 \x01(\t\x12\x10\n\x08locality\x18\x05 \x01(\t\x12\x0e\n\x06weight\x18\x06 \x01(\r\x1a,\n\nPortsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"0\n\x08Location\x12\x11\n\rMESH_EXTERNAL\x10\x00\x12\x11\n\rMESH_INTERNAL\x10\x01\"+\n\nResolution\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06STATIC\x10\x01\x12\x07\n\x03\x44NS\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , - dependencies=[networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_service__dependency__pb2.DESCRIPTOR,]) + dependencies=[networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_sidecar__pb2.DESCRIPTOR,]) @@ -44,8 +44,8 @@ ], containing_type=None, options=None, - serialized_start=849, - serialized_end=897, + serialized_start=838, + serialized_end=886, ) _sym_db.RegisterEnumDescriptor(_SERVICEENTRY_LOCATION) @@ -70,8 +70,8 @@ ], containing_type=None, options=None, - serialized_start=899, - serialized_end=942, + serialized_start=888, + serialized_end=931, ) _sym_db.RegisterEnumDescriptor(_SERVICEENTRY_RESOLUTION) @@ -109,8 +109,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=756, - serialized_end=800, + serialized_start=745, + serialized_end=789, ) _SERVICEENTRY_ENDPOINT_LABELSENTRY = _descriptor.Descriptor( @@ -146,8 +146,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=802, - serialized_end=847, + serialized_start=791, + serialized_end=836, ) _SERVICEENTRY_ENDPOINT = _descriptor.Descriptor( @@ -211,8 +211,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=522, - serialized_end=847, + serialized_start=511, + serialized_end=836, ) _SERVICEENTRY = _descriptor.Descriptor( @@ -285,8 +285,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=152, - serialized_end=942, + serialized_start=141, + serialized_end=931, ) _SERVICEENTRY_ENDPOINT_PORTSENTRY.containing_type = _SERVICEENTRY_ENDPOINT @@ -298,7 +298,7 @@ _SERVICEENTRY.fields_by_name['location'].enum_type = _SERVICEENTRY_LOCATION _SERVICEENTRY.fields_by_name['resolution'].enum_type = _SERVICEENTRY_RESOLUTION _SERVICEENTRY.fields_by_name['endpoints'].message_type = _SERVICEENTRY_ENDPOINT -_SERVICEENTRY.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_service__dependency__pb2._CONFIGSCOPE +_SERVICEENTRY.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_sidecar__pb2._CONFIGSCOPE _SERVICEENTRY_LOCATION.containing_type = _SERVICEENTRY _SERVICEENTRY_RESOLUTION.containing_type = _SERVICEENTRY DESCRIPTOR.message_types_by_name['ServiceEntry'] = _SERVICEENTRY diff --git a/python/istio_api/networking/v1alpha3/sidecar_pb2.py b/python/istio_api/networking/v1alpha3/sidecar_pb2.py new file mode 100644 index 0000000000..33b4779367 --- /dev/null +++ b/python/istio_api/networking/v1alpha3/sidecar_pb2.py @@ -0,0 +1,360 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: networking/v1alpha3/sidecar.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from networking.v1alpha3 import gateway_pb2 as networking_dot_v1alpha3_dot_gateway__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='networking/v1alpha3/sidecar.proto', + package='istio.networking.v1alpha3', + syntax='proto3', + serialized_pb=_b('\n!networking/v1alpha3/sidecar.proto\x12\x19istio.networking.v1alpha3\x1a!networking/v1alpha3/gateway.proto\"\xd3\x01\n\x07Sidecar\x12\x46\n\x11workload_selector\x18\x01 \x01(\x0b\x32+.istio.networking.v1alpha3.WorkloadSelector\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.IstioIngressListener\x12>\n\x06\x65gress\x18\x03 \x03(\x0b\x32..istio.networking.v1alpha3.IstioEgressListener\"\xab\x01\n\x14IstioIngressListener\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\x18\n\x10\x64\x65\x66\x61ult_endpoint\x18\x04 \x01(\t\"\x9f\x01\n\x13IstioEgressListener\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\r\n\x05hosts\x18\x04 \x03(\t\"\x8a\x01\n\x10WorkloadSelector\x12G\n\x06labels\x18\x01 \x03(\x0b\x32\x37.istio.networking.v1alpha3.WorkloadSelector.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*&\n\x0b\x43onfigScope\x12\n\n\x06PUBLIC\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01*2\n\x0b\x43\x61ptureMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08IPTABLES\x10\x01\x12\x08\n\x04NONE\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + , + dependencies=[networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,]) + +_CONFIGSCOPE = _descriptor.EnumDescriptor( + name='ConfigScope', + full_name='istio.networking.v1alpha3.ConfigScope', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='PUBLIC', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PRIVATE', index=1, number=1, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=790, + serialized_end=828, +) +_sym_db.RegisterEnumDescriptor(_CONFIGSCOPE) + +ConfigScope = enum_type_wrapper.EnumTypeWrapper(_CONFIGSCOPE) +_CAPTUREMODE = _descriptor.EnumDescriptor( + name='CaptureMode', + full_name='istio.networking.v1alpha3.CaptureMode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IPTABLES', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NONE', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=830, + serialized_end=880, +) +_sym_db.RegisterEnumDescriptor(_CAPTUREMODE) + +CaptureMode = enum_type_wrapper.EnumTypeWrapper(_CAPTUREMODE) +PUBLIC = 0 +PRIVATE = 1 +DEFAULT = 0 +IPTABLES = 1 +NONE = 2 + + + +_SIDECAR = _descriptor.Descriptor( + name='Sidecar', + full_name='istio.networking.v1alpha3.Sidecar', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='workload_selector', full_name='istio.networking.v1alpha3.Sidecar.workload_selector', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ingress', full_name='istio.networking.v1alpha3.Sidecar.ingress', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='egress', full_name='istio.networking.v1alpha3.Sidecar.egress', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=100, + serialized_end=311, +) + + +_ISTIOINGRESSLISTENER = _descriptor.Descriptor( + name='IstioIngressListener', + full_name='istio.networking.v1alpha3.IstioIngressListener', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='port', full_name='istio.networking.v1alpha3.IstioIngressListener.port', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bind', full_name='istio.networking.v1alpha3.IstioIngressListener.bind', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='capture_mode', full_name='istio.networking.v1alpha3.IstioIngressListener.capture_mode', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_endpoint', full_name='istio.networking.v1alpha3.IstioIngressListener.default_endpoint', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=314, + serialized_end=485, +) + + +_ISTIOEGRESSLISTENER = _descriptor.Descriptor( + name='IstioEgressListener', + full_name='istio.networking.v1alpha3.IstioEgressListener', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='port', full_name='istio.networking.v1alpha3.IstioEgressListener.port', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bind', full_name='istio.networking.v1alpha3.IstioEgressListener.bind', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='capture_mode', full_name='istio.networking.v1alpha3.IstioEgressListener.capture_mode', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hosts', full_name='istio.networking.v1alpha3.IstioEgressListener.hosts', index=3, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=488, + serialized_end=647, +) + + +_WORKLOADSELECTOR_LABELSENTRY = _descriptor.Descriptor( + name='LabelsEntry', + full_name='istio.networking.v1alpha3.WorkloadSelector.LabelsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.networking.v1alpha3.WorkloadSelector.LabelsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='istio.networking.v1alpha3.WorkloadSelector.LabelsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=743, + serialized_end=788, +) + +_WORKLOADSELECTOR = _descriptor.Descriptor( + name='WorkloadSelector', + full_name='istio.networking.v1alpha3.WorkloadSelector', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='labels', full_name='istio.networking.v1alpha3.WorkloadSelector.labels', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_WORKLOADSELECTOR_LABELSENTRY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=650, + serialized_end=788, +) + +_SIDECAR.fields_by_name['workload_selector'].message_type = _WORKLOADSELECTOR +_SIDECAR.fields_by_name['ingress'].message_type = _ISTIOINGRESSLISTENER +_SIDECAR.fields_by_name['egress'].message_type = _ISTIOEGRESSLISTENER +_ISTIOINGRESSLISTENER.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_gateway__pb2._PORT +_ISTIOINGRESSLISTENER.fields_by_name['capture_mode'].enum_type = _CAPTUREMODE +_ISTIOEGRESSLISTENER.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_gateway__pb2._PORT +_ISTIOEGRESSLISTENER.fields_by_name['capture_mode'].enum_type = _CAPTUREMODE +_WORKLOADSELECTOR_LABELSENTRY.containing_type = _WORKLOADSELECTOR +_WORKLOADSELECTOR.fields_by_name['labels'].message_type = _WORKLOADSELECTOR_LABELSENTRY +DESCRIPTOR.message_types_by_name['Sidecar'] = _SIDECAR +DESCRIPTOR.message_types_by_name['IstioIngressListener'] = _ISTIOINGRESSLISTENER +DESCRIPTOR.message_types_by_name['IstioEgressListener'] = _ISTIOEGRESSLISTENER +DESCRIPTOR.message_types_by_name['WorkloadSelector'] = _WORKLOADSELECTOR +DESCRIPTOR.enum_types_by_name['ConfigScope'] = _CONFIGSCOPE +DESCRIPTOR.enum_types_by_name['CaptureMode'] = _CAPTUREMODE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Sidecar = _reflection.GeneratedProtocolMessageType('Sidecar', (_message.Message,), dict( + DESCRIPTOR = _SIDECAR, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Sidecar) + )) +_sym_db.RegisterMessage(Sidecar) + +IstioIngressListener = _reflection.GeneratedProtocolMessageType('IstioIngressListener', (_message.Message,), dict( + DESCRIPTOR = _ISTIOINGRESSLISTENER, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.IstioIngressListener) + )) +_sym_db.RegisterMessage(IstioIngressListener) + +IstioEgressListener = _reflection.GeneratedProtocolMessageType('IstioEgressListener', (_message.Message,), dict( + DESCRIPTOR = _ISTIOEGRESSLISTENER, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.IstioEgressListener) + )) +_sym_db.RegisterMessage(IstioEgressListener) + +WorkloadSelector = _reflection.GeneratedProtocolMessageType('WorkloadSelector', (_message.Message,), dict( + + LabelsEntry = _reflection.GeneratedProtocolMessageType('LabelsEntry', (_message.Message,), dict( + DESCRIPTOR = _WORKLOADSELECTOR_LABELSENTRY, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.WorkloadSelector.LabelsEntry) + )) + , + DESCRIPTOR = _WORKLOADSELECTOR, + __module__ = 'networking.v1alpha3.sidecar_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.WorkloadSelector) + )) +_sym_db.RegisterMessage(WorkloadSelector) +_sym_db.RegisterMessage(WorkloadSelector.LabelsEntry) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z istio.io/api/networking/v1alpha3')) +_WORKLOADSELECTOR_LABELSENTRY.has_options = True +_WORKLOADSELECTOR_LABELSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +# @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py index 7df90ca370..4bff1527b2 100644 --- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py +++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py @@ -15,16 +15,16 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -from networking.v1alpha3 import service_dependency_pb2 as networking_dot_v1alpha3_dot_service__dependency__pb2 +from networking.v1alpha3 import sidecar_pb2 as networking_dot_v1alpha3_dot_sidecar__pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='networking/v1alpha3/virtual_service.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a,networking/v1alpha3/service_dependency.proto\"\x87\x02\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\x12<\n\x0c\x63onfig_scope\x18\x06 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xf9\x08\n\tHTTPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12\x19\n\x11websocket_upgrade\x18\x05 \x01(\x08\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12S\n\x0e\x61ppend_headers\x18\x0b \x03(\x0b\x32\x37.istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntryB\x02\x18\x01\x12#\n\x17remove_response_headers\x18\x0c \x03(\tB\x02\x18\x01\x12\x64\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x0e \x03(\tB\x02\x18\x01\x12\x62\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\xc0\x04\n\x10HTTPMatchRequest\x12\x33\n\x03uri\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06scheme\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06method\x18\x03 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x39\n\tauthority\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.istio.networking.v1alpha3.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12T\n\rsource_labels\x18\x07 \x03(\x0b\x32=.istio.networking.v1alpha3.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x1aV\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbc\x04\n\x14HTTPRouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12#\n\x17remove_response_headers\x18\x03 \x03(\tB\x02\x18\x01\x12o\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x05 \x03(\tB\x02\x18\x01\x12m\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"_\n\x10RouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"-\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"c\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a!networking/v1alpha3/sidecar.proto\"\x87\x02\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\x12<\n\x0c\x63onfig_scope\x18\x06 \x01(\x0e\x32&.istio.networking.v1alpha3.ConfigScope\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xf9\x08\n\tHTTPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12\x19\n\x11websocket_upgrade\x18\x05 \x01(\x08\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12S\n\x0e\x61ppend_headers\x18\x0b \x03(\x0b\x32\x37.istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntryB\x02\x18\x01\x12#\n\x17remove_response_headers\x18\x0c \x03(\tB\x02\x18\x01\x12\x64\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x0e \x03(\tB\x02\x18\x01\x12\x62\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\xc0\x04\n\x10HTTPMatchRequest\x12\x33\n\x03uri\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06scheme\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06method\x18\x03 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x39\n\tauthority\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.istio.networking.v1alpha3.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12T\n\rsource_labels\x18\x07 \x03(\x0b\x32=.istio.networking.v1alpha3.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x1aV\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbc\x04\n\x14HTTPRouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12#\n\x17remove_response_headers\x18\x03 \x03(\tB\x02\x18\x01\x12o\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x05 \x03(\tB\x02\x18\x01\x12m\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"_\n\x10RouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"-\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"c\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , - dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_service__dependency__pb2.DESCRIPTOR,]) + dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_sidecar__pb2.DESCRIPTOR,]) @@ -90,8 +90,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=183, - serialized_end=446, + serialized_start=172, + serialized_end=435, ) @@ -135,8 +135,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=448, - serialized_end=546, + serialized_start=437, + serialized_end=535, ) @@ -173,8 +173,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1519, - serialized_end=1571, + serialized_start=1508, + serialized_end=1560, ) _HTTPROUTE_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( @@ -210,8 +210,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1573, - serialized_end=1633, + serialized_start=1562, + serialized_end=1622, ) _HTTPROUTE_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -247,8 +247,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1635, - serialized_end=1694, + serialized_start=1624, + serialized_end=1683, ) _HTTPROUTE = _descriptor.Descriptor( @@ -382,8 +382,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=549, - serialized_end=1694, + serialized_start=538, + serialized_end=1683, ) @@ -420,8 +420,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2036, - serialized_end=2078, + serialized_start=2025, + serialized_end=2067, ) _HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor( @@ -457,8 +457,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2080, - serialized_end=2122, + serialized_start=2069, + serialized_end=2111, ) _HEADERS_HEADEROPERATIONS = _descriptor.Descriptor( @@ -501,8 +501,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1850, - serialized_end=2122, + serialized_start=1839, + serialized_end=2111, ) _HEADERS = _descriptor.Descriptor( @@ -538,8 +538,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1697, - serialized_end=2122, + serialized_start=1686, + serialized_end=2111, ) @@ -576,8 +576,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2125, - serialized_end=2257, + serialized_start=2114, + serialized_end=2246, ) @@ -614,8 +614,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2260, - serialized_end=2391, + serialized_start=2249, + serialized_end=2380, ) @@ -652,8 +652,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2831, - serialized_end=2917, + serialized_start=2820, + serialized_end=2906, ) _HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor( @@ -689,8 +689,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2919, - serialized_end=2970, + serialized_start=2908, + serialized_end=2959, ) _HTTPMATCHREQUEST = _descriptor.Descriptor( @@ -768,8 +768,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2394, - serialized_end=2970, + serialized_start=2383, + serialized_end=2959, ) @@ -806,8 +806,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1573, - serialized_end=1633, + serialized_start=1562, + serialized_end=1622, ) _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -843,8 +843,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1635, - serialized_end=1694, + serialized_start=1624, + serialized_end=1683, ) _HTTPROUTEDESTINATION = _descriptor.Descriptor( @@ -915,8 +915,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2973, - serialized_end=3545, + serialized_start=2962, + serialized_end=3534, ) @@ -953,8 +953,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3547, - serialized_end=3642, + serialized_start=3536, + serialized_end=3631, ) @@ -991,8 +991,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2919, - serialized_end=2970, + serialized_start=2908, + serialized_end=2959, ) _L4MATCHATTRIBUTES = _descriptor.Descriptor( @@ -1049,8 +1049,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3645, - serialized_end=3888, + serialized_start=3634, + serialized_end=3877, ) @@ -1087,8 +1087,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2919, - serialized_end=2970, + serialized_start=2908, + serialized_end=2959, ) _TLSMATCHATTRIBUTES = _descriptor.Descriptor( @@ -1152,8 +1152,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3891, - serialized_end=4155, + serialized_start=3880, + serialized_end=4144, ) @@ -1190,8 +1190,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4157, - serialized_end=4203, + serialized_start=4146, + serialized_end=4192, ) @@ -1228,8 +1228,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4205, - serialized_end=4250, + serialized_start=4194, + serialized_end=4239, ) @@ -1276,8 +1276,8 @@ name='match_type', full_name='istio.networking.v1alpha3.StringMatch.match_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4252, - serialized_end=4331, + serialized_start=4241, + serialized_end=4320, ) @@ -1321,8 +1321,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4333, - serialized_end=4432, + serialized_start=4322, + serialized_end=4421, ) @@ -1387,8 +1387,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4435, - serialized_end=4638, + serialized_start=4424, + serialized_end=4627, ) @@ -1442,8 +1442,8 @@ name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4800, - serialized_end=5009, + serialized_start=4789, + serialized_end=4998, ) _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( @@ -1503,8 +1503,8 @@ name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type', index=0, containing_type=None, fields=[]), ], - serialized_start=5012, - serialized_end=5179, + serialized_start=5001, + serialized_end=5168, ) _HTTPFAULTINJECTION = _descriptor.Descriptor( @@ -1540,8 +1540,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4641, - serialized_end=5179, + serialized_start=4630, + serialized_end=5168, ) @@ -1581,8 +1581,8 @@ name='port', full_name='istio.networking.v1alpha3.PortSelector.port', index=0, containing_type=None, fields=[]), ], - serialized_start=5181, - serialized_end=5237, + serialized_start=5170, + serialized_end=5226, ) @@ -1612,14 +1612,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5239, - serialized_end=5263, + serialized_start=5228, + serialized_end=5252, ) _VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE _VIRTUALSERVICE.fields_by_name['tls'].message_type = _TLSROUTE _VIRTUALSERVICE.fields_by_name['tcp'].message_type = _TCPROUTE -_VIRTUALSERVICE.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_service__dependency__pb2._CONFIGSCOPE +_VIRTUALSERVICE.fields_by_name['config_scope'].enum_type = networking_dot_v1alpha3_dot_sidecar__pb2._CONFIGSCOPE _DESTINATION.fields_by_name['port'].message_type = _PORTSELECTOR _HTTPROUTE_APPENDHEADERSENTRY.containing_type = _HTTPROUTE _HTTPROUTE_APPENDRESPONSEHEADERSENTRY.containing_type = _HTTPROUTE diff --git a/python/istio_api/policy/v1beta1/cfg_pb2.py b/python/istio_api/policy/v1beta1/cfg_pb2.py index 10627fd188..2fbed5dcd2 100644 --- a/python/istio_api/policy/v1beta1/cfg_pb2.py +++ b/python/istio_api/policy/v1beta1/cfg_pb2.py @@ -23,7 +23,7 @@ name='policy/v1beta1/cfg.proto', package='istio.policy.v1beta1', syntax='proto3', - serialized_pb=_b('\n\x18policy/v1beta1/cfg.proto\x12\x14istio.policy.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fpolicy/v1beta1/value_type.proto\"\xc5\x02\n\x11\x41ttributeManifest\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12K\n\nattributes\x18\x03 \x03(\x0b\x32\x37.istio.policy.v1beta1.AttributeManifest.AttributesEntry\x1aY\n\rAttributeInfo\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x33\n\nvalue_type\x18\x02 \x01(\x0e\x32\x1f.istio.policy.v1beta1.ValueType\x1ah\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.istio.policy.v1beta1.AttributeManifest.AttributeInfo:\x02\x38\x01\"\xe2\x03\n\x04Rule\x12\r\n\x05match\x18\x01 \x01(\t\x12-\n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32\x1c.istio.policy.v1beta1.Action\x12U\n\x19request_header_operations\x18\x03 \x03(\x0b\x32\x32.istio.policy.v1beta1.Rule.HeaderOperationTemplate\x12V\n\x1aresponse_header_operations\x18\x04 \x03(\x0b\x32\x32.istio.policy.v1beta1.Rule.HeaderOperationTemplate\x12\x30\n\x08sampling\x18\x05 \x01(\x0b\x32\x1e.istio.policy.v1beta1.Sampling\x1a\xba\x01\n\x17HeaderOperationTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\t\x12O\n\toperation\x18\x03 \x01(\x0e\x32<.istio.policy.v1beta1.Rule.HeaderOperationTemplate.Operation\"0\n\tOperation\x12\x0b\n\x07REPLACE\x10\x00\x12\n\n\x06REMOVE\x10\x01\x12\n\n\x06\x41PPEND\x10\x02\":\n\x06\x41\x63tion\x12\x0f\n\x07handler\x18\x02 \x01(\t\x12\x11\n\tinstances\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\"\xfe\x01\n\x08Instance\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1c\n\x11\x63ompiled_template\x18\xf4\xed\xa9 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\'\n\x06params\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12Q\n\x12\x61ttribute_bindings\x18\x04 \x03(\x0b\x32\x35.istio.policy.v1beta1.Instance.AttributeBindingsEntry\x1a\x38\n\x16\x41ttributeBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x01\n\x07Handler\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x10\x63ompiled_adapter\x18\xf4\xed\xa9 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\x12\'\n\x06params\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x34\n\nconnection\x18\x04 \x01(\x0b\x32 .istio.policy.v1beta1.Connection\"O\n\nConnection\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x30\n\x07timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01\"}\n\x08Sampling\x12\x34\n\x06random\x18\x01 \x01(\x0b\x32$.istio.policy.v1beta1.RandomSampling\x12;\n\nrate_limit\x18\x02 \x01(\x0b\x32\'.istio.policy.v1beta1.RateLimitSampling\"\x94\x01\n\x0eRandomSampling\x12\x1c\n\x14\x61ttribute_expression\x18\x01 \x01(\t\x12@\n\x0fpercent_sampled\x18\x02 \x01(\x0b\x32\'.istio.policy.v1beta1.FractionalPercent\x12\"\n\x1ause_independent_randomness\x18\x03 \x01(\x08\"\x89\x01\n\x11RateLimitSampling\x12>\n\x11sampling_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01\x12\x1d\n\x15max_unsampled_entries\x18\x02 \x01(\x03\x12\x15\n\rsampling_rate\x18\x03 \x01(\x03\"\xa6\x01\n\x11\x46ractionalPercent\x12\x11\n\tnumerator\x18\x01 \x01(\r\x12L\n\x0b\x64\x65nominator\x18\x02 \x01(\x0e\x32\x37.istio.policy.v1beta1.FractionalPercent.DenominatorType\"0\n\x0f\x44\x65nominatorType\x12\x0b\n\x07HUNDRED\x10\x00\x12\x10\n\x0cTEN_THOUSAND\x10\x01\x42\x1dZ\x1bistio.io/api/policy/v1beta1b\x06proto3') + serialized_pb=_b('\n\x18policy/v1beta1/cfg.proto\x12\x14istio.policy.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fpolicy/v1beta1/value_type.proto\"\xc5\x02\n\x11\x41ttributeManifest\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12K\n\nattributes\x18\x03 \x03(\x0b\x32\x37.istio.policy.v1beta1.AttributeManifest.AttributesEntry\x1aY\n\rAttributeInfo\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x33\n\nvalue_type\x18\x02 \x01(\x0e\x32\x1f.istio.policy.v1beta1.ValueType\x1ah\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.istio.policy.v1beta1.AttributeManifest.AttributeInfo:\x02\x38\x01\"\xe2\x03\n\x04Rule\x12\r\n\x05match\x18\x01 \x01(\t\x12-\n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32\x1c.istio.policy.v1beta1.Action\x12U\n\x19request_header_operations\x18\x03 \x03(\x0b\x32\x32.istio.policy.v1beta1.Rule.HeaderOperationTemplate\x12V\n\x1aresponse_header_operations\x18\x04 \x03(\x0b\x32\x32.istio.policy.v1beta1.Rule.HeaderOperationTemplate\x12\x30\n\x08sampling\x18\x05 \x01(\x0b\x32\x1e.istio.policy.v1beta1.Sampling\x1a\xba\x01\n\x17HeaderOperationTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\t\x12O\n\toperation\x18\x03 \x01(\x0e\x32<.istio.policy.v1beta1.Rule.HeaderOperationTemplate.Operation\"0\n\tOperation\x12\x0b\n\x07REPLACE\x10\x00\x12\n\n\x06REMOVE\x10\x01\x12\n\n\x06\x41PPEND\x10\x02\":\n\x06\x41\x63tion\x12\x0f\n\x07handler\x18\x02 \x01(\t\x12\x11\n\tinstances\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\"\xfe\x01\n\x08Instance\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1c\n\x11\x63ompiled_template\x18\xf4\xed\xa9 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\'\n\x06params\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12Q\n\x12\x61ttribute_bindings\x18\x04 \x03(\x0b\x32\x35.istio.policy.v1beta1.Instance.AttributeBindingsEntry\x1a\x38\n\x16\x41ttributeBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x01\n\x07Handler\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x10\x63ompiled_adapter\x18\xf4\xed\xa9 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\x12\'\n\x06params\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x34\n\nconnection\x18\x04 \x01(\x0b\x32 .istio.policy.v1beta1.Connection\"\x8d\x01\n\nConnection\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x30\n\x07timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01\x12<\n\x0e\x61uthentication\x18\x04 \x01(\x0b\x32$.istio.policy.v1beta1.Authentication\"}\n\x08Sampling\x12\x34\n\x06random\x18\x01 \x01(\x0b\x32$.istio.policy.v1beta1.RandomSampling\x12;\n\nrate_limit\x18\x02 \x01(\x0b\x32\'.istio.policy.v1beta1.RateLimitSampling\"\x94\x01\n\x0eRandomSampling\x12\x1c\n\x14\x61ttribute_expression\x18\x01 \x01(\t\x12@\n\x0fpercent_sampled\x18\x02 \x01(\x0b\x32\'.istio.policy.v1beta1.FractionalPercent\x12\"\n\x1ause_independent_randomness\x18\x03 \x01(\x08\"\x89\x01\n\x11RateLimitSampling\x12>\n\x11sampling_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01\x12\x1d\n\x15max_unsampled_entries\x18\x02 \x01(\x03\x12\x15\n\rsampling_rate\x18\x03 \x01(\x03\"\xa6\x01\n\x11\x46ractionalPercent\x12\x11\n\tnumerator\x18\x01 \x01(\r\x12L\n\x0b\x64\x65nominator\x18\x02 \x01(\x0e\x32\x37.istio.policy.v1beta1.FractionalPercent.DenominatorType\"0\n\x0f\x44\x65nominatorType\x12\x0b\n\x07HUNDRED\x10\x00\x12\x10\n\x0cTEN_THOUSAND\x10\x01\"w\n\x0e\x41uthentication\x12(\n\x03tls\x18\x01 \x01(\x0b\x32\x19.istio.policy.v1beta1.TlsH\x00\x12.\n\x06mutual\x18\x02 \x01(\x0b\x32\x1c.istio.policy.v1beta1.MutualH\x00\x42\x0b\n\tauth_type\"\xfb\x01\n\x03Tls\x12\x17\n\x0f\x63\x61_certificates\x18\x01 \x01(\t\x12\x14\n\ntoken_path\x18\x02 \x01(\tH\x00\x12,\n\x05oauth\x18\x03 \x01(\x0b\x32\x1b.istio.policy.v1beta1.OAuthH\x00\x12;\n\x0b\x61uth_header\x18\x04 \x01(\x0e\x32$.istio.policy.v1beta1.Tls.AuthHeaderH\x01\x12\x17\n\rcustom_header\x18\x05 \x01(\tH\x01\"#\n\nAuthHeader\x12\t\n\x05PLAIN\x10\x00\x12\n\n\x06\x42\x45\x41RER\x10\x01\x42\x0e\n\x0ctoken_sourceB\x0c\n\ntoken_type\"\xd5\x01\n\x05OAuth\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x15\n\rclient_secret\x18\x02 \x01(\t\x12\x11\n\ttoken_url\x18\x03 \x01(\t\x12\x0e\n\x06scopes\x18\x04 \x03(\t\x12H\n\x0f\x65ndpoint_params\x18\x05 \x03(\x0b\x32/.istio.policy.v1beta1.OAuth.EndpointParamsEntry\x1a\x35\n\x13\x45ndpointParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"R\n\x06Mutual\x12\x13\n\x0bprivate_key\x18\x01 \x01(\t\x12\x1a\n\x12\x63lient_certificate\x18\x02 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x03 \x01(\tB\x1dZ\x1bistio.io/api/policy/v1beta1b\x06proto3') , dependencies=[gogoproto_dot_gogo__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,policy_dot_v1beta1_dot_value__type__pb2.DESCRIPTOR,]) @@ -72,11 +72,33 @@ ], containing_type=None, options=None, - serialized_start=2082, - serialized_end=2130, + serialized_start=2145, + serialized_end=2193, ) _sym_db.RegisterEnumDescriptor(_FRACTIONALPERCENT_DENOMINATORTYPE) +_TLS_AUTHHEADER = _descriptor.EnumDescriptor( + name='AuthHeader', + full_name='istio.policy.v1beta1.Tls.AuthHeader', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='PLAIN', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BEARER', index=1, number=1, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=2503, + serialized_end=2538, +) +_sym_db.RegisterEnumDescriptor(_TLS_AUTHHEADER) + _ATTRIBUTEMANIFEST_ATTRIBUTEINFO = _descriptor.Descriptor( name='AttributeInfo', @@ -522,6 +544,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\230\337\037\001')), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='authentication', full_name='istio.policy.v1beta1.Connection.authentication', index=2, + number=4, 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=[ ], @@ -534,8 +563,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1464, - serialized_end=1543, + serialized_start=1465, + serialized_end=1606, ) @@ -572,8 +601,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1545, - serialized_end=1670, + serialized_start=1608, + serialized_end=1733, ) @@ -617,8 +646,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1673, - serialized_end=1821, + serialized_start=1736, + serialized_end=1884, ) @@ -662,8 +691,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1824, - serialized_end=1961, + serialized_start=1887, + serialized_end=2024, ) @@ -701,8 +730,256 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1964, - serialized_end=2130, + serialized_start=2027, + serialized_end=2193, +) + + +_AUTHENTICATION = _descriptor.Descriptor( + name='Authentication', + full_name='istio.policy.v1beta1.Authentication', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='tls', full_name='istio.policy.v1beta1.Authentication.tls', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mutual', full_name='istio.policy.v1beta1.Authentication.mutual', index=1, + number=2, 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=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='auth_type', full_name='istio.policy.v1beta1.Authentication.auth_type', + index=0, containing_type=None, fields=[]), + ], + serialized_start=2195, + serialized_end=2314, +) + + +_TLS = _descriptor.Descriptor( + name='Tls', + full_name='istio.policy.v1beta1.Tls', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ca_certificates', full_name='istio.policy.v1beta1.Tls.ca_certificates', 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='token_path', full_name='istio.policy.v1beta1.Tls.token_path', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='oauth', full_name='istio.policy.v1beta1.Tls.oauth', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='auth_header', full_name='istio.policy.v1beta1.Tls.auth_header', 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), + _descriptor.FieldDescriptor( + name='custom_header', full_name='istio.policy.v1beta1.Tls.custom_header', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _TLS_AUTHHEADER, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='token_source', full_name='istio.policy.v1beta1.Tls.token_source', + index=0, containing_type=None, fields=[]), + _descriptor.OneofDescriptor( + name='token_type', full_name='istio.policy.v1beta1.Tls.token_type', + index=1, containing_type=None, fields=[]), + ], + serialized_start=2317, + serialized_end=2568, +) + + +_OAUTH_ENDPOINTPARAMSENTRY = _descriptor.Descriptor( + name='EndpointParamsEntry', + full_name='istio.policy.v1beta1.OAuth.EndpointParamsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.policy.v1beta1.OAuth.EndpointParamsEntry.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.policy.v1beta1.OAuth.EndpointParamsEntry.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=2731, + serialized_end=2784, +) + +_OAUTH = _descriptor.Descriptor( + name='OAuth', + full_name='istio.policy.v1beta1.OAuth', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='client_id', full_name='istio.policy.v1beta1.OAuth.client_id', 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='client_secret', full_name='istio.policy.v1beta1.OAuth.client_secret', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='token_url', full_name='istio.policy.v1beta1.OAuth.token_url', index=2, + number=3, 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='scopes', full_name='istio.policy.v1beta1.OAuth.scopes', index=3, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='endpoint_params', full_name='istio.policy.v1beta1.OAuth.endpoint_params', index=4, + number=5, 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=[_OAUTH_ENDPOINTPARAMSENTRY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2571, + serialized_end=2784, +) + + +_MUTUAL = _descriptor.Descriptor( + name='Mutual', + full_name='istio.policy.v1beta1.Mutual', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='private_key', full_name='istio.policy.v1beta1.Mutual.private_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='client_certificate', full_name='istio.policy.v1beta1.Mutual.client_certificate', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ca_certificates', full_name='istio.policy.v1beta1.Mutual.ca_certificates', index=2, + number=3, 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=2786, + serialized_end=2868, ) _ATTRIBUTEMANIFEST_ATTRIBUTEINFO.fields_by_name['value_type'].enum_type = policy_dot_v1beta1_dot_value__type__pb2._VALUETYPE @@ -723,12 +1000,38 @@ _HANDLER.fields_by_name['params'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT _HANDLER.fields_by_name['connection'].message_type = _CONNECTION _CONNECTION.fields_by_name['timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_CONNECTION.fields_by_name['authentication'].message_type = _AUTHENTICATION _SAMPLING.fields_by_name['random'].message_type = _RANDOMSAMPLING _SAMPLING.fields_by_name['rate_limit'].message_type = _RATELIMITSAMPLING _RANDOMSAMPLING.fields_by_name['percent_sampled'].message_type = _FRACTIONALPERCENT _RATELIMITSAMPLING.fields_by_name['sampling_duration'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _FRACTIONALPERCENT.fields_by_name['denominator'].enum_type = _FRACTIONALPERCENT_DENOMINATORTYPE _FRACTIONALPERCENT_DENOMINATORTYPE.containing_type = _FRACTIONALPERCENT +_AUTHENTICATION.fields_by_name['tls'].message_type = _TLS +_AUTHENTICATION.fields_by_name['mutual'].message_type = _MUTUAL +_AUTHENTICATION.oneofs_by_name['auth_type'].fields.append( + _AUTHENTICATION.fields_by_name['tls']) +_AUTHENTICATION.fields_by_name['tls'].containing_oneof = _AUTHENTICATION.oneofs_by_name['auth_type'] +_AUTHENTICATION.oneofs_by_name['auth_type'].fields.append( + _AUTHENTICATION.fields_by_name['mutual']) +_AUTHENTICATION.fields_by_name['mutual'].containing_oneof = _AUTHENTICATION.oneofs_by_name['auth_type'] +_TLS.fields_by_name['oauth'].message_type = _OAUTH +_TLS.fields_by_name['auth_header'].enum_type = _TLS_AUTHHEADER +_TLS_AUTHHEADER.containing_type = _TLS +_TLS.oneofs_by_name['token_source'].fields.append( + _TLS.fields_by_name['token_path']) +_TLS.fields_by_name['token_path'].containing_oneof = _TLS.oneofs_by_name['token_source'] +_TLS.oneofs_by_name['token_source'].fields.append( + _TLS.fields_by_name['oauth']) +_TLS.fields_by_name['oauth'].containing_oneof = _TLS.oneofs_by_name['token_source'] +_TLS.oneofs_by_name['token_type'].fields.append( + _TLS.fields_by_name['auth_header']) +_TLS.fields_by_name['auth_header'].containing_oneof = _TLS.oneofs_by_name['token_type'] +_TLS.oneofs_by_name['token_type'].fields.append( + _TLS.fields_by_name['custom_header']) +_TLS.fields_by_name['custom_header'].containing_oneof = _TLS.oneofs_by_name['token_type'] +_OAUTH_ENDPOINTPARAMSENTRY.containing_type = _OAUTH +_OAUTH.fields_by_name['endpoint_params'].message_type = _OAUTH_ENDPOINTPARAMSENTRY DESCRIPTOR.message_types_by_name['AttributeManifest'] = _ATTRIBUTEMANIFEST DESCRIPTOR.message_types_by_name['Rule'] = _RULE DESCRIPTOR.message_types_by_name['Action'] = _ACTION @@ -739,6 +1042,10 @@ DESCRIPTOR.message_types_by_name['RandomSampling'] = _RANDOMSAMPLING DESCRIPTOR.message_types_by_name['RateLimitSampling'] = _RATELIMITSAMPLING DESCRIPTOR.message_types_by_name['FractionalPercent'] = _FRACTIONALPERCENT +DESCRIPTOR.message_types_by_name['Authentication'] = _AUTHENTICATION +DESCRIPTOR.message_types_by_name['Tls'] = _TLS +DESCRIPTOR.message_types_by_name['OAuth'] = _OAUTH +DESCRIPTOR.message_types_by_name['Mutual'] = _MUTUAL _sym_db.RegisterFileDescriptor(DESCRIPTOR) AttributeManifest = _reflection.GeneratedProtocolMessageType('AttributeManifest', (_message.Message,), dict( @@ -843,6 +1150,42 @@ )) _sym_db.RegisterMessage(FractionalPercent) +Authentication = _reflection.GeneratedProtocolMessageType('Authentication', (_message.Message,), dict( + DESCRIPTOR = _AUTHENTICATION, + __module__ = 'policy.v1beta1.cfg_pb2' + # @@protoc_insertion_point(class_scope:istio.policy.v1beta1.Authentication) + )) +_sym_db.RegisterMessage(Authentication) + +Tls = _reflection.GeneratedProtocolMessageType('Tls', (_message.Message,), dict( + DESCRIPTOR = _TLS, + __module__ = 'policy.v1beta1.cfg_pb2' + # @@protoc_insertion_point(class_scope:istio.policy.v1beta1.Tls) + )) +_sym_db.RegisterMessage(Tls) + +OAuth = _reflection.GeneratedProtocolMessageType('OAuth', (_message.Message,), dict( + + EndpointParamsEntry = _reflection.GeneratedProtocolMessageType('EndpointParamsEntry', (_message.Message,), dict( + DESCRIPTOR = _OAUTH_ENDPOINTPARAMSENTRY, + __module__ = 'policy.v1beta1.cfg_pb2' + # @@protoc_insertion_point(class_scope:istio.policy.v1beta1.OAuth.EndpointParamsEntry) + )) + , + DESCRIPTOR = _OAUTH, + __module__ = 'policy.v1beta1.cfg_pb2' + # @@protoc_insertion_point(class_scope:istio.policy.v1beta1.OAuth) + )) +_sym_db.RegisterMessage(OAuth) +_sym_db.RegisterMessage(OAuth.EndpointParamsEntry) + +Mutual = _reflection.GeneratedProtocolMessageType('Mutual', (_message.Message,), dict( + DESCRIPTOR = _MUTUAL, + __module__ = 'policy.v1beta1.cfg_pb2' + # @@protoc_insertion_point(class_scope:istio.policy.v1beta1.Mutual) + )) +_sym_db.RegisterMessage(Mutual) + DESCRIPTOR.has_options = True DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\033istio.io/api/policy/v1beta1')) @@ -854,4 +1197,6 @@ _CONNECTION.fields_by_name['timeout']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\230\337\037\001')) _RATELIMITSAMPLING.fields_by_name['sampling_duration'].has_options = True _RATELIMITSAMPLING.fields_by_name['sampling_duration']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\230\337\037\001')) +_OAUTH_ENDPOINTPARAMSENTRY.has_options = True +_OAUTH_ENDPOINTPARAMSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) # @@protoc_insertion_point(module_scope)
NameDescription
PLAIN +

Access token is passed in authorization header as what it is +(authorization: some-token).

+ +
BEARER +

Access token is passed to adapter as bearer token (i.e. authorization: +bearer some-token).

+