use istio client-go library instead of knative bump kubernetes dependency version change code coverage to codecov
1886 lines
53 KiB
Go
1886 lines
53 KiB
Go
// Code generated by protoc-gen-gogo. DO NOT EDIT.
|
|
// source: networking/v1alpha3/service_entry.proto
|
|
|
|
// `ServiceEntry` enables adding additional entries into Istio's internal
|
|
// service registry, so that auto-discovered services in the mesh can
|
|
// access/route to these manually specified services. A service entry
|
|
// describes the properties of a service (DNS name, VIPs, ports, protocols,
|
|
// endpoints). These services could be external to the mesh (e.g., web
|
|
// APIs) or mesh-internal services that are not part of the platform's
|
|
// service registry (e.g., a set of VMs talking to services in Kubernetes).
|
|
//
|
|
// The following example declares a few external APIs accessed by internal
|
|
// applications over HTTPS. The sidecar inspects the SNI value in the
|
|
// ClientHello message to route to the appropriate external service.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: ServiceEntry
|
|
// metadata:
|
|
// name: external-svc-https
|
|
// spec:
|
|
// hosts:
|
|
// - api.dropboxapi.com
|
|
// - www.googleapis.com
|
|
// - api.facebook.com
|
|
// location: MESH_EXTERNAL
|
|
// ports:
|
|
// - number: 443
|
|
// name: https
|
|
// protocol: TLS
|
|
// resolution: DNS
|
|
// ```
|
|
//
|
|
// The following configuration adds a set of MongoDB instances running on
|
|
// unmanaged VMs to Istio's registry, so that these services can be treated
|
|
// as any other service in the mesh. The associated DestinationRule is used
|
|
// to initiate mTLS connections to the database instances.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: ServiceEntry
|
|
// metadata:
|
|
// name: external-svc-mongocluster
|
|
// spec:
|
|
// hosts:
|
|
// - mymongodb.somedomain # not used
|
|
// addresses:
|
|
// - 192.192.192.192/24 # VIPs
|
|
// ports:
|
|
// - number: 27018
|
|
// name: mongodb
|
|
// protocol: MONGO
|
|
// location: MESH_INTERNAL
|
|
// resolution: STATIC
|
|
// endpoints:
|
|
// - address: 2.2.2.2
|
|
// - address: 3.3.3.3
|
|
// ```
|
|
//
|
|
// and the associated DestinationRule
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: DestinationRule
|
|
// metadata:
|
|
// name: mtls-mongocluster
|
|
// spec:
|
|
// host: mymongodb.somedomain
|
|
// trafficPolicy:
|
|
// tls:
|
|
// mode: MUTUAL
|
|
// clientCertificate: /etc/certs/myclientcert.pem
|
|
// privateKey: /etc/certs/client_private_key.pem
|
|
// caCertificates: /etc/certs/rootcacerts.pem
|
|
// ```
|
|
//
|
|
// The following example uses a combination of service entry and TLS
|
|
// routing in a virtual service to steer traffic based on the SNI value to
|
|
// an internal egress firewall.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: ServiceEntry
|
|
// metadata:
|
|
// name: external-svc-redirect
|
|
// spec:
|
|
// hosts:
|
|
// - wikipedia.org
|
|
// - "*.wikipedia.org"
|
|
// location: MESH_EXTERNAL
|
|
// ports:
|
|
// - number: 443
|
|
// name: https
|
|
// protocol: TLS
|
|
// resolution: NONE
|
|
// ```
|
|
//
|
|
// And the associated VirtualService to route based on the SNI value.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: VirtualService
|
|
// metadata:
|
|
// name: tls-routing
|
|
// spec:
|
|
// hosts:
|
|
// - wikipedia.org
|
|
// - "*.wikipedia.org"
|
|
// tls:
|
|
// - match:
|
|
// - sniHosts:
|
|
// - wikipedia.org
|
|
// - "*.wikipedia.org"
|
|
// route:
|
|
// - destination:
|
|
// host: internal-egress-firewall.ns1.svc.cluster.local
|
|
// ```
|
|
//
|
|
// The virtual service with TLS match serves to override the default SNI
|
|
// match. In the absence of a virtual service, traffic will be forwarded to
|
|
// the wikipedia domains.
|
|
//
|
|
// The following example demonstrates the use of a dedicated egress gateway
|
|
// through which all external service traffic is forwarded.
|
|
// The 'exportTo' field allows for control over the visibility of a service
|
|
// declaration to other namespaces in the mesh. By default, a service is exported
|
|
// to all namespaces. The following example restricts the visibility to the
|
|
// current namespace, represented by ".", so that it cannot be used by other
|
|
// namespaces.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: ServiceEntry
|
|
// metadata:
|
|
// name: external-svc-httpbin
|
|
// namespace : egress
|
|
// spec:
|
|
// hosts:
|
|
// - httpbin.com
|
|
// exportTo:
|
|
// - "."
|
|
// location: MESH_EXTERNAL
|
|
// ports:
|
|
// - number: 80
|
|
// name: http
|
|
// protocol: HTTP
|
|
// resolution: DNS
|
|
// ```
|
|
//
|
|
// Define a gateway to handle all egress traffic.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: Gateway
|
|
// metadata:
|
|
// name: istio-egressgateway
|
|
// namespace: istio-system
|
|
// spec:
|
|
// selector:
|
|
// istio: egressgateway
|
|
// servers:
|
|
// - port:
|
|
// number: 80
|
|
// name: http
|
|
// protocol: HTTP
|
|
// hosts:
|
|
// - "*"
|
|
// ```
|
|
//
|
|
// And the associated `VirtualService` to route from the sidecar to the
|
|
// gateway service (`istio-egressgateway.istio-system.svc.cluster.local`), as
|
|
// well as route from the gateway to the external service. Note that the
|
|
// virtual service is exported to all namespaces enabling them to route traffic
|
|
// through the gateway to the external service. Forcing traffic to go through
|
|
// a managed middle proxy like this is a common practice.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: VirtualService
|
|
// metadata:
|
|
// name: gateway-routing
|
|
// namespace: egress
|
|
// spec:
|
|
// hosts:
|
|
// - httpbin.com
|
|
// exportTo:
|
|
// - "*"
|
|
// gateways:
|
|
// - mesh
|
|
// - istio-egressgateway
|
|
// http:
|
|
// - match:
|
|
// - port: 80
|
|
// gateways:
|
|
// - mesh
|
|
// route:
|
|
// - destination:
|
|
// host: istio-egressgateway.istio-system.svc.cluster.local
|
|
// - match:
|
|
// - port: 80
|
|
// gateways:
|
|
// - istio-egressgateway
|
|
// route:
|
|
// - destination:
|
|
// host: httpbin.com
|
|
// ```
|
|
//
|
|
// The following example demonstrates the use of wildcards in the hosts for
|
|
// external services. If the connection has to be routed to the IP address
|
|
// requested by the application (i.e. application resolves DNS and attempts
|
|
// to connect to a specific IP), the discovery mode must be set to `NONE`.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: ServiceEntry
|
|
// metadata:
|
|
// name: external-svc-wildcard-example
|
|
// spec:
|
|
// hosts:
|
|
// - "*.bar.com"
|
|
// location: MESH_EXTERNAL
|
|
// ports:
|
|
// - number: 80
|
|
// name: http
|
|
// protocol: HTTP
|
|
// resolution: NONE
|
|
// ```
|
|
//
|
|
// The following example demonstrates a service that is available via a
|
|
// Unix Domain Socket on the host of the client. The resolution must be
|
|
// set to STATIC to use Unix address endpoints.
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: ServiceEntry
|
|
// metadata:
|
|
// name: unix-domain-socket-example
|
|
// spec:
|
|
// hosts:
|
|
// - "example.unix.local"
|
|
// location: MESH_EXTERNAL
|
|
// ports:
|
|
// - number: 80
|
|
// name: http
|
|
// protocol: HTTP
|
|
// resolution: STATIC
|
|
// endpoints:
|
|
// - address: unix:///var/run/example/socket
|
|
// ```
|
|
//
|
|
// For HTTP-based services, it is possible to create a `VirtualService`
|
|
// backed by multiple DNS addressable endpoints. In such a scenario, the
|
|
// application can use the `HTTP_PROXY` environment variable to transparently
|
|
// reroute API calls for the `VirtualService` to a chosen backend. For
|
|
// example, the following configuration creates a non-existent external
|
|
// service called foo.bar.com backed by three domains: us.foo.bar.com:8080,
|
|
// uk.foo.bar.com:9080, and in.foo.bar.com:7080
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: ServiceEntry
|
|
// metadata:
|
|
// name: external-svc-dns
|
|
// spec:
|
|
// hosts:
|
|
// - foo.bar.com
|
|
// location: MESH_EXTERNAL
|
|
// ports:
|
|
// - number: 80
|
|
// name: http
|
|
// protocol: HTTP
|
|
// resolution: DNS
|
|
// endpoints:
|
|
// - address: us.foo.bar.com
|
|
// ports:
|
|
// https: 8080
|
|
// - address: uk.foo.bar.com
|
|
// ports:
|
|
// https: 9080
|
|
// - address: in.foo.bar.com
|
|
// ports:
|
|
// https: 7080
|
|
// ```
|
|
//
|
|
// With `HTTP_PROXY=http://localhost/`, calls from the application to
|
|
// `http://foo.bar.com` will be load balanced across the three domains
|
|
// specified above. In other words, a call to `http://foo.bar.com/baz` would
|
|
// be translated to `http://uk.foo.bar.com/baz`.
|
|
//
|
|
// The following example illustrates the usage of a `ServiceEntry`
|
|
// containing a subject alternate name
|
|
// whose format conforms to the [SPIFFE standard](https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md):
|
|
//
|
|
// ```yaml
|
|
// apiVersion: networking.istio.io/v1alpha3
|
|
// kind: ServiceEntry
|
|
// metadata:
|
|
// name: httpbin
|
|
// namespace : httpbin-ns
|
|
// spec:
|
|
// hosts:
|
|
// - httpbin.com
|
|
// location: MESH_INTERNAL
|
|
// ports:
|
|
// - number: 80
|
|
// name: http
|
|
// protocol: HTTP
|
|
// resolution: STATIC
|
|
// endpoints:
|
|
// - address: 2.2.2.2
|
|
// - address: 3.3.3.3
|
|
// subjectAltNames:
|
|
// - "spiffe://cluster.local/ns/httpbin-ns/sa/httpbin-service-account"
|
|
// ```
|
|
//
|
|
|
|
package v1alpha3
|
|
|
|
import (
|
|
fmt "fmt"
|
|
proto "github.com/gogo/protobuf/proto"
|
|
io "io"
|
|
_ "istio.io/gogo-genproto/googleapis/google/api"
|
|
math "math"
|
|
math_bits "math/bits"
|
|
)
|
|
|
|
// Reference imports to suppress errors if they are not otherwise used.
|
|
var _ = proto.Marshal
|
|
var _ = fmt.Errorf
|
|
var _ = math.Inf
|
|
|
|
// This is a compile-time assertion to ensure that this generated file
|
|
// is compatible with the proto package it is being compiled against.
|
|
// A compilation error at this line likely means your copy of the
|
|
// proto package needs to be updated.
|
|
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
|
|
|
// Location specifies whether the service is part of Istio mesh or
|
|
// outside the mesh. Location determines the behavior of several
|
|
// features, such as service-to-service mTLS authentication, policy
|
|
// enforcement, etc. When communicating with services outside the mesh,
|
|
// Istio's mTLS authentication is disabled, and policy enforcement is
|
|
// performed on the client-side as opposed to server-side.
|
|
type ServiceEntry_Location int32
|
|
|
|
const (
|
|
// Signifies that the service is external to the mesh. Typically used
|
|
// to indicate external services consumed through APIs.
|
|
ServiceEntry_MESH_EXTERNAL ServiceEntry_Location = 0
|
|
// Signifies that the service is part of the mesh. Typically used to
|
|
// indicate services added explicitly as part of expanding the service
|
|
// mesh to include unmanaged infrastructure (e.g., VMs added to a
|
|
// Kubernetes based service mesh).
|
|
ServiceEntry_MESH_INTERNAL ServiceEntry_Location = 1
|
|
)
|
|
|
|
var ServiceEntry_Location_name = map[int32]string{
|
|
0: "MESH_EXTERNAL",
|
|
1: "MESH_INTERNAL",
|
|
}
|
|
|
|
var ServiceEntry_Location_value = map[string]int32{
|
|
"MESH_EXTERNAL": 0,
|
|
"MESH_INTERNAL": 1,
|
|
}
|
|
|
|
func (x ServiceEntry_Location) String() string {
|
|
return proto.EnumName(ServiceEntry_Location_name, int32(x))
|
|
}
|
|
|
|
func (ServiceEntry_Location) EnumDescriptor() ([]byte, []int) {
|
|
return fileDescriptor_9220e0fa673c4bf8, []int{0, 0}
|
|
}
|
|
|
|
// Resolution determines how the proxy will resolve the IP addresses of
|
|
// the network endpoints associated with the service, so that it can
|
|
// route to one of them. The resolution mode specified here has no impact
|
|
// on how the application resolves the IP address associated with the
|
|
// service. The application may still have to use DNS to resolve the
|
|
// service to an IP so that the outbound traffic can be captured by the
|
|
// Proxy. Alternatively, for HTTP services, the application could
|
|
// directly communicate with the proxy (e.g., by setting HTTP_PROXY) to
|
|
// talk to these services.
|
|
type ServiceEntry_Resolution int32
|
|
|
|
const (
|
|
// Assume that incoming connections have already been resolved (to a
|
|
// specific destination IP address). Such connections are typically
|
|
// routed via the proxy using mechanisms such as IP table REDIRECT/
|
|
// eBPF. After performing any routing related transformations, the
|
|
// proxy will forward the connection to the IP address to which the
|
|
// connection was bound.
|
|
ServiceEntry_NONE ServiceEntry_Resolution = 0
|
|
// Use the static IP addresses specified in endpoints (see below) as the
|
|
// backing instances associated with the service.
|
|
ServiceEntry_STATIC ServiceEntry_Resolution = 1
|
|
// Attempt to resolve the IP address by querying the ambient DNS,
|
|
// during request processing. If no endpoints are specified, the proxy
|
|
// will resolve the DNS address specified in the hosts field, if
|
|
// wildcards are not used. If endpoints are specified, the DNS
|
|
// addresses specified in the endpoints will be resolved to determine
|
|
// the destination IP address. DNS resolution cannot be used with Unix
|
|
// domain socket endpoints.
|
|
ServiceEntry_DNS ServiceEntry_Resolution = 2
|
|
)
|
|
|
|
var ServiceEntry_Resolution_name = map[int32]string{
|
|
0: "NONE",
|
|
1: "STATIC",
|
|
2: "DNS",
|
|
}
|
|
|
|
var ServiceEntry_Resolution_value = map[string]int32{
|
|
"NONE": 0,
|
|
"STATIC": 1,
|
|
"DNS": 2,
|
|
}
|
|
|
|
func (x ServiceEntry_Resolution) String() string {
|
|
return proto.EnumName(ServiceEntry_Resolution_name, int32(x))
|
|
}
|
|
|
|
func (ServiceEntry_Resolution) EnumDescriptor() ([]byte, []int) {
|
|
return fileDescriptor_9220e0fa673c4bf8, []int{0, 1}
|
|
}
|
|
|
|
// ServiceEntry enables adding additional entries into Istio's internal
|
|
// service registry.
|
|
//
|
|
// <!-- go code generation tags
|
|
// +kubetype-gen
|
|
// +kubetype-gen:groupVersion=networking.istio.io/v1alpha3
|
|
// +genclient
|
|
// +k8s:deepcopy-gen=true
|
|
// -->
|
|
type ServiceEntry struct {
|
|
// The hosts associated with the ServiceEntry. Could be a DNS
|
|
// name with wildcard prefix.
|
|
//
|
|
// 1. The hosts field is used to select matching hosts in VirtualServices and DestinationRules.
|
|
// 2. For HTTP traffic the HTTP Host/Authority header will be matched against the hosts field.
|
|
// 3. For HTTPs or TLS traffic containing Server Name Indication (SNI), the SNI value
|
|
// will be matched against the hosts field.
|
|
//
|
|
// Note that when resolution is set to type DNS
|
|
// and no endpoints are specified, the host field will be used as the DNS name
|
|
// of the endpoint to route traffic to.
|
|
Hosts []string `protobuf:"bytes,1,rep,name=hosts,proto3" json:"hosts,omitempty"`
|
|
// The virtual IP addresses associated with the service. Could be CIDR
|
|
// prefix. For HTTP traffic, generated route configurations will include http route
|
|
// domains for both the `addresses` and `hosts` field values and the destination will
|
|
// be identified based on the HTTP Host/Authority header.
|
|
// If one or more IP addresses are specified,
|
|
// the incoming traffic will be identified as belonging to this service
|
|
// if the destination IP matches the IP/CIDRs specified in the addresses
|
|
// field. If the Addresses field is empty, traffic will be identified
|
|
// solely based on the destination port. In such scenarios, the port on
|
|
// which the service is being accessed must not be shared by any other
|
|
// service in the mesh. In other words, the sidecar will behave as a
|
|
// simple TCP proxy, forwarding incoming traffic on a specified port to
|
|
// the specified destination endpoint IP/host. Unix domain socket
|
|
// addresses are not supported in this field.
|
|
Addresses []string `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"`
|
|
// The ports associated with the external service. If the
|
|
// Endpoints are Unix domain socket addresses, there must be exactly one
|
|
// port.
|
|
Ports []*Port `protobuf:"bytes,3,rep,name=ports,proto3" json:"ports,omitempty"`
|
|
// Specify whether the service should be considered external to the mesh
|
|
// or part of the mesh.
|
|
Location ServiceEntry_Location `protobuf:"varint,4,opt,name=location,proto3,enum=istio.networking.v1alpha3.ServiceEntry_Location" json:"location,omitempty"`
|
|
// Service discovery mode for the hosts. Care must be taken
|
|
// when setting the resolution mode to NONE for a TCP port without
|
|
// accompanying IP addresses. In such cases, traffic to any IP on
|
|
// said port will be allowed (i.e. 0.0.0.0:<port>).
|
|
Resolution ServiceEntry_Resolution `protobuf:"varint,5,opt,name=resolution,proto3,enum=istio.networking.v1alpha3.ServiceEntry_Resolution" json:"resolution,omitempty"`
|
|
// One or more endpoints associated with the service.
|
|
Endpoints []*ServiceEntry_Endpoint `protobuf:"bytes,6,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
|
|
// A list of namespaces to which this service is exported. Exporting a service
|
|
// allows it to be used by sidecars, gateways and virtual services defined in
|
|
// other namespaces. This feature provides a mechanism for service owners
|
|
// and mesh administrators to control the visibility of services across
|
|
// namespace boundaries.
|
|
//
|
|
// If no namespaces are specified then the service is exported to all
|
|
// namespaces by default.
|
|
//
|
|
// The value "." is reserved and defines an export to the same namespace that
|
|
// the service is declared in. Similarly the value "*" is reserved and
|
|
// defines an export to all namespaces.
|
|
//
|
|
// For a Kubernetes Service, the equivalent effect can be achieved by setting
|
|
// the annotation "networking.istio.io/exportTo" to a comma-separated list
|
|
// of namespace names.
|
|
//
|
|
// NOTE: in the current release, the `exportTo` value is restricted to
|
|
// "." or "*" (i.e., the current namespace or all namespaces).
|
|
ExportTo []string `protobuf:"bytes,7,rep,name=export_to,json=exportTo,proto3" json:"export_to,omitempty"`
|
|
// The list of subject alternate names allowed for workload instances that
|
|
// implement this service. This information is used to enforce
|
|
// [secure-naming](https://istio.io/docs/concepts/security/#secure-naming).
|
|
// If specified, the proxy will verify that the server
|
|
// certificate's subject alternate name matches one of the specified values.
|
|
SubjectAltNames []string `protobuf:"bytes,8,rep,name=subject_alt_names,json=subjectAltNames,proto3" json:"subject_alt_names,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *ServiceEntry) Reset() { *m = ServiceEntry{} }
|
|
func (m *ServiceEntry) String() string { return proto.CompactTextString(m) }
|
|
func (*ServiceEntry) ProtoMessage() {}
|
|
func (*ServiceEntry) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_9220e0fa673c4bf8, []int{0}
|
|
}
|
|
func (m *ServiceEntry) XXX_Unmarshal(b []byte) error {
|
|
return m.Unmarshal(b)
|
|
}
|
|
func (m *ServiceEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
if deterministic {
|
|
return xxx_messageInfo_ServiceEntry.Marshal(b, m, deterministic)
|
|
} else {
|
|
b = b[:cap(b)]
|
|
n, err := m.MarshalToSizedBuffer(b)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return b[:n], nil
|
|
}
|
|
}
|
|
func (m *ServiceEntry) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_ServiceEntry.Merge(m, src)
|
|
}
|
|
func (m *ServiceEntry) XXX_Size() int {
|
|
return m.Size()
|
|
}
|
|
func (m *ServiceEntry) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_ServiceEntry.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_ServiceEntry proto.InternalMessageInfo
|
|
|
|
func (m *ServiceEntry) GetHosts() []string {
|
|
if m != nil {
|
|
return m.Hosts
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *ServiceEntry) GetAddresses() []string {
|
|
if m != nil {
|
|
return m.Addresses
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *ServiceEntry) GetPorts() []*Port {
|
|
if m != nil {
|
|
return m.Ports
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *ServiceEntry) GetLocation() ServiceEntry_Location {
|
|
if m != nil {
|
|
return m.Location
|
|
}
|
|
return ServiceEntry_MESH_EXTERNAL
|
|
}
|
|
|
|
func (m *ServiceEntry) GetResolution() ServiceEntry_Resolution {
|
|
if m != nil {
|
|
return m.Resolution
|
|
}
|
|
return ServiceEntry_NONE
|
|
}
|
|
|
|
func (m *ServiceEntry) GetEndpoints() []*ServiceEntry_Endpoint {
|
|
if m != nil {
|
|
return m.Endpoints
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *ServiceEntry) GetExportTo() []string {
|
|
if m != nil {
|
|
return m.ExportTo
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *ServiceEntry) GetSubjectAltNames() []string {
|
|
if m != nil {
|
|
return m.SubjectAltNames
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Endpoint defines a network address (IP or hostname) associated with
|
|
// the mesh service.
|
|
type ServiceEntry_Endpoint struct {
|
|
// Address associated with the network endpoint without the
|
|
// port. Domain names can be used if and only if the resolution is set
|
|
// to DNS, and must be fully-qualified without wildcards. Use the form
|
|
// unix:///absolute/path/to/socket for Unix domain socket endpoints.
|
|
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
|
|
// Set of ports associated with the endpoint. The ports must be
|
|
// associated with a port name that was declared as part of the
|
|
// service. Do not use for `unix://` addresses.
|
|
Ports map[string]uint32 `protobuf:"bytes,2,rep,name=ports,proto3" json:"ports,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
|
|
// One or more labels associated with the endpoint.
|
|
Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
|
// Network enables Istio to group endpoints resident in the same L3
|
|
// domain/network. All endpoints in the same network are assumed to be
|
|
// directly reachable from one another. When endpoints in different
|
|
// networks cannot reach each other directly, an Istio Gateway can be
|
|
// used to establish connectivity (usually using the
|
|
// AUTO_PASSTHROUGH mode in a Gateway Server). This is
|
|
// an advanced configuration used typically for spanning an Istio mesh
|
|
// over multiple clusters.
|
|
Network string `protobuf:"bytes,4,opt,name=network,proto3" json:"network,omitempty"`
|
|
// The locality associated with the endpoint. A locality corresponds
|
|
// to a failure domain (e.g., country/region/zone). Arbitrary failure
|
|
// domain hierarchies can be represented by separating each
|
|
// encapsulating failure domain by /. For example, the locality of an
|
|
// an endpoint in US, in US-East-1 region, within availability zone
|
|
// az-1, in data center rack r11 can be represented as
|
|
// us/us-east-1/az-1/r11. Istio will configure the sidecar to route to
|
|
// endpoints within the same locality as the sidecar. If none of the
|
|
// endpoints in the locality are available, endpoints parent locality
|
|
// (but within the same network ID) will be chosen. For example, if
|
|
// there are two endpoints in same network (networkID "n1"), say e1
|
|
// with locality us/us-east-1/az-1/r11 and e2 with locality
|
|
// us/us-east-1/az-2/r12, a sidecar from us/us-east-1/az-1/r11 locality
|
|
// will prefer e1 from the same locality over e2 from a different
|
|
// locality. Endpoint e2 could be the IP associated with a gateway
|
|
// (that bridges networks n1 and n2), or the IP associated with a
|
|
// standard service endpoint.
|
|
Locality string `protobuf:"bytes,5,opt,name=locality,proto3" json:"locality,omitempty"`
|
|
// The load balancing weight associated with the endpoint. Endpoints
|
|
// with higher weights will receive proportionally higher traffic.
|
|
Weight uint32 `protobuf:"varint,6,opt,name=weight,proto3" json:"weight,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) Reset() { *m = ServiceEntry_Endpoint{} }
|
|
func (m *ServiceEntry_Endpoint) String() string { return proto.CompactTextString(m) }
|
|
func (*ServiceEntry_Endpoint) ProtoMessage() {}
|
|
func (*ServiceEntry_Endpoint) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_9220e0fa673c4bf8, []int{0, 0}
|
|
}
|
|
func (m *ServiceEntry_Endpoint) XXX_Unmarshal(b []byte) error {
|
|
return m.Unmarshal(b)
|
|
}
|
|
func (m *ServiceEntry_Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
if deterministic {
|
|
return xxx_messageInfo_ServiceEntry_Endpoint.Marshal(b, m, deterministic)
|
|
} else {
|
|
b = b[:cap(b)]
|
|
n, err := m.MarshalToSizedBuffer(b)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return b[:n], nil
|
|
}
|
|
}
|
|
func (m *ServiceEntry_Endpoint) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_ServiceEntry_Endpoint.Merge(m, src)
|
|
}
|
|
func (m *ServiceEntry_Endpoint) XXX_Size() int {
|
|
return m.Size()
|
|
}
|
|
func (m *ServiceEntry_Endpoint) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_ServiceEntry_Endpoint.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_ServiceEntry_Endpoint proto.InternalMessageInfo
|
|
|
|
func (m *ServiceEntry_Endpoint) GetAddress() string {
|
|
if m != nil {
|
|
return m.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) GetPorts() map[string]uint32 {
|
|
if m != nil {
|
|
return m.Ports
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) GetLabels() map[string]string {
|
|
if m != nil {
|
|
return m.Labels
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) GetNetwork() string {
|
|
if m != nil {
|
|
return m.Network
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) GetLocality() string {
|
|
if m != nil {
|
|
return m.Locality
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) GetWeight() uint32 {
|
|
if m != nil {
|
|
return m.Weight
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func init() {
|
|
proto.RegisterEnum("istio.networking.v1alpha3.ServiceEntry_Location", ServiceEntry_Location_name, ServiceEntry_Location_value)
|
|
proto.RegisterEnum("istio.networking.v1alpha3.ServiceEntry_Resolution", ServiceEntry_Resolution_name, ServiceEntry_Resolution_value)
|
|
proto.RegisterType((*ServiceEntry)(nil), "istio.networking.v1alpha3.ServiceEntry")
|
|
proto.RegisterType((*ServiceEntry_Endpoint)(nil), "istio.networking.v1alpha3.ServiceEntry.Endpoint")
|
|
proto.RegisterMapType((map[string]string)(nil), "istio.networking.v1alpha3.ServiceEntry.Endpoint.LabelsEntry")
|
|
proto.RegisterMapType((map[string]uint32)(nil), "istio.networking.v1alpha3.ServiceEntry.Endpoint.PortsEntry")
|
|
}
|
|
|
|
func init() {
|
|
proto.RegisterFile("networking/v1alpha3/service_entry.proto", fileDescriptor_9220e0fa673c4bf8)
|
|
}
|
|
|
|
var fileDescriptor_9220e0fa673c4bf8 = []byte{
|
|
// 558 bytes of a gzipped FileDescriptorProto
|
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xdd, 0x6e, 0xd3, 0x30,
|
|
0x14, 0x5e, 0x92, 0x35, 0x4d, 0xce, 0x18, 0x74, 0x16, 0x42, 0x5e, 0x80, 0x2d, 0xec, 0x86, 0x0a,
|
|
0xa4, 0x74, 0x6c, 0x37, 0x63, 0x70, 0xd3, 0x41, 0x24, 0x26, 0x95, 0x00, 0x69, 0x25, 0x10, 0x37,
|
|
0x91, 0xdb, 0x9a, 0xd6, 0xcc, 0xc4, 0x55, 0xec, 0xb6, 0xf4, 0x41, 0x78, 0x19, 0x9e, 0x80, 0x4b,
|
|
0x1e, 0x61, 0xea, 0x93, 0xa0, 0x3a, 0x49, 0xdb, 0x8b, 0x01, 0xdb, 0x5d, 0xce, 0x67, 0x7f, 0xdf,
|
|
0xf9, 0xf9, 0x8e, 0x03, 0x8f, 0x53, 0xaa, 0xa6, 0x22, 0xbb, 0x60, 0xe9, 0xa0, 0x31, 0x79, 0x46,
|
|
0xf8, 0x68, 0x48, 0x8e, 0x1b, 0x92, 0x66, 0x13, 0xd6, 0xa3, 0x09, 0x4d, 0x55, 0x36, 0x0b, 0x46,
|
|
0x99, 0x50, 0x02, 0xed, 0x32, 0xa9, 0x98, 0x08, 0x56, 0xd7, 0x83, 0xf2, 0xba, 0xb7, 0x3f, 0x10,
|
|
0x62, 0xc0, 0x69, 0x83, 0x8c, 0x58, 0xe3, 0x0b, 0xa3, 0xbc, 0x9f, 0x74, 0xe9, 0x90, 0x4c, 0x98,
|
|
0xc8, 0x72, 0xae, 0xf7, 0xe8, 0xaa, 0x24, 0x03, 0xa2, 0xe8, 0x94, 0x14, 0xf2, 0x07, 0x3f, 0xab,
|
|
0x70, 0xab, 0x9d, 0xa7, 0x0d, 0x17, 0x59, 0xd1, 0x2e, 0x54, 0x86, 0x42, 0x2a, 0x89, 0x0d, 0xdf,
|
|
0xaa, 0xbb, 0x67, 0xd6, 0x65, 0xd3, 0x8c, 0x73, 0x04, 0x3d, 0x00, 0x97, 0xf4, 0xfb, 0x19, 0x95,
|
|
0x92, 0x4a, 0x6c, 0x2e, 0x8e, 0xe3, 0x15, 0x80, 0x4e, 0xa1, 0x32, 0x12, 0x99, 0x92, 0xd8, 0xf2,
|
|
0xad, 0xfa, 0xd6, 0xd1, 0x7e, 0xf0, 0xd7, 0xc2, 0x83, 0xf7, 0x22, 0x53, 0x85, 0xb2, 0xa6, 0xa0,
|
|
0x16, 0x38, 0x5c, 0xf4, 0x88, 0x62, 0x22, 0xc5, 0x9b, 0xbe, 0x51, 0xbf, 0x7d, 0x74, 0xf8, 0x0f,
|
|
0xfa, 0x7a, 0xbd, 0x41, 0xab, 0xe0, 0xc5, 0x4b, 0x05, 0xf4, 0x11, 0x20, 0xa3, 0x52, 0xf0, 0xb1,
|
|
0xd6, 0xab, 0x68, 0xbd, 0xa3, 0xeb, 0xea, 0xc5, 0x4b, 0x66, 0x5e, 0xe1, 0x9a, 0x14, 0x8a, 0xc0,
|
|
0xa5, 0x69, 0x7f, 0x24, 0x58, 0xaa, 0x24, 0xb6, 0x75, 0x9b, 0xd7, 0xae, 0x33, 0x2c, 0x88, 0xf1,
|
|
0x4a, 0x02, 0xdd, 0x07, 0x97, 0x7e, 0x5f, 0x4c, 0x20, 0x51, 0x02, 0x57, 0xf5, 0x40, 0x9d, 0x1c,
|
|
0xe8, 0x08, 0xf4, 0x04, 0x76, 0xe4, 0xb8, 0xfb, 0x95, 0xf6, 0x54, 0x42, 0xb8, 0x4a, 0x52, 0xf2,
|
|
0x8d, 0x4a, 0xec, 0xe8, 0x4b, 0x77, 0x8a, 0x83, 0x26, 0x57, 0xd1, 0x02, 0xf6, 0x7e, 0x58, 0xe0,
|
|
0x94, 0x09, 0xd0, 0x43, 0xa8, 0x16, 0xae, 0x60, 0xc3, 0x37, 0x4a, 0x0f, 0x4b, 0x0c, 0x7d, 0x28,
|
|
0x7d, 0x32, 0x75, 0x03, 0x2f, 0x6e, 0xda, 0x80, 0x76, 0x4f, 0x6a, 0xac, 0xb4, 0xaf, 0x03, 0x36,
|
|
0x27, 0x5d, 0xca, 0x4b, 0xef, 0x5f, 0xde, 0x58, 0xb3, 0xa5, 0xe9, 0xb9, 0x68, 0xa1, 0x85, 0x30,
|
|
0x54, 0x0b, 0x01, 0xbd, 0x13, 0x6e, 0x5c, 0x86, 0xc8, 0xcb, 0xd7, 0x85, 0x33, 0x35, 0xd3, 0xf6,
|
|
0xba, 0xf1, 0x32, 0x46, 0xf7, 0xc0, 0x9e, 0x52, 0x36, 0x18, 0x2a, 0x6c, 0xfb, 0x46, 0x7d, 0x3b,
|
|
0x2e, 0x22, 0xef, 0x04, 0x60, 0x55, 0x38, 0xaa, 0x81, 0x75, 0x41, 0x67, 0xf9, 0x7c, 0xe2, 0xc5,
|
|
0x27, 0xba, 0x0b, 0x95, 0x09, 0xe1, 0x63, 0x8a, 0x4d, 0x4d, 0xcb, 0x83, 0x53, 0xf3, 0xc4, 0xf0,
|
|
0x9e, 0xc3, 0xd6, 0x5a, 0x79, 0xff, 0xa3, 0xba, 0x6b, 0xd4, 0x83, 0x43, 0x70, 0xca, 0xfd, 0x44,
|
|
0x3b, 0xb0, 0xfd, 0x36, 0x6c, 0xbf, 0x49, 0xc2, 0x4f, 0x9d, 0x30, 0x8e, 0x9a, 0xad, 0xda, 0xc6,
|
|
0x12, 0x3a, 0x8f, 0x0a, 0xc8, 0x38, 0x78, 0x0a, 0xb0, 0xda, 0x40, 0xe4, 0xc0, 0x66, 0xf4, 0x2e,
|
|
0x0a, 0x6b, 0x1b, 0x08, 0xc0, 0x6e, 0x77, 0x9a, 0x9d, 0xf3, 0x57, 0x35, 0x03, 0x55, 0xc1, 0x7a,
|
|
0x1d, 0xb5, 0x6b, 0xe6, 0x59, 0xf0, 0x6b, 0xbe, 0x67, 0xfc, 0x9e, 0xef, 0x19, 0x97, 0xf3, 0x3d,
|
|
0xe3, 0xb3, 0x9f, 0x0f, 0x9d, 0x09, 0xfd, 0x43, 0xb8, 0xe2, 0xe9, 0x77, 0x6d, 0xfd, 0xe6, 0x8f,
|
|
0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x56, 0x61, 0xed, 0x81, 0x7d, 0x04, 0x00, 0x00,
|
|
}
|
|
|
|
func (m *ServiceEntry) Marshal() (dAtA []byte, err error) {
|
|
size := m.Size()
|
|
dAtA = make([]byte, size)
|
|
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return dAtA[:n], nil
|
|
}
|
|
|
|
func (m *ServiceEntry) MarshalTo(dAtA []byte) (int, error) {
|
|
size := m.Size()
|
|
return m.MarshalToSizedBuffer(dAtA[:size])
|
|
}
|
|
|
|
func (m *ServiceEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|
i := len(dAtA)
|
|
_ = i
|
|
var l int
|
|
_ = l
|
|
if m.XXX_unrecognized != nil {
|
|
i -= len(m.XXX_unrecognized)
|
|
copy(dAtA[i:], m.XXX_unrecognized)
|
|
}
|
|
if len(m.SubjectAltNames) > 0 {
|
|
for iNdEx := len(m.SubjectAltNames) - 1; iNdEx >= 0; iNdEx-- {
|
|
i -= len(m.SubjectAltNames[iNdEx])
|
|
copy(dAtA[i:], m.SubjectAltNames[iNdEx])
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(m.SubjectAltNames[iNdEx])))
|
|
i--
|
|
dAtA[i] = 0x42
|
|
}
|
|
}
|
|
if len(m.ExportTo) > 0 {
|
|
for iNdEx := len(m.ExportTo) - 1; iNdEx >= 0; iNdEx-- {
|
|
i -= len(m.ExportTo[iNdEx])
|
|
copy(dAtA[i:], m.ExportTo[iNdEx])
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(m.ExportTo[iNdEx])))
|
|
i--
|
|
dAtA[i] = 0x3a
|
|
}
|
|
}
|
|
if len(m.Endpoints) > 0 {
|
|
for iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- {
|
|
{
|
|
size, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i])
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
i -= size
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(size))
|
|
}
|
|
i--
|
|
dAtA[i] = 0x32
|
|
}
|
|
}
|
|
if m.Resolution != 0 {
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(m.Resolution))
|
|
i--
|
|
dAtA[i] = 0x28
|
|
}
|
|
if m.Location != 0 {
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(m.Location))
|
|
i--
|
|
dAtA[i] = 0x20
|
|
}
|
|
if len(m.Ports) > 0 {
|
|
for iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {
|
|
{
|
|
size, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
i -= size
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(size))
|
|
}
|
|
i--
|
|
dAtA[i] = 0x1a
|
|
}
|
|
}
|
|
if len(m.Addresses) > 0 {
|
|
for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {
|
|
i -= len(m.Addresses[iNdEx])
|
|
copy(dAtA[i:], m.Addresses[iNdEx])
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(m.Addresses[iNdEx])))
|
|
i--
|
|
dAtA[i] = 0x12
|
|
}
|
|
}
|
|
if len(m.Hosts) > 0 {
|
|
for iNdEx := len(m.Hosts) - 1; iNdEx >= 0; iNdEx-- {
|
|
i -= len(m.Hosts[iNdEx])
|
|
copy(dAtA[i:], m.Hosts[iNdEx])
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(m.Hosts[iNdEx])))
|
|
i--
|
|
dAtA[i] = 0xa
|
|
}
|
|
}
|
|
return len(dAtA) - i, nil
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) Marshal() (dAtA []byte, err error) {
|
|
size := m.Size()
|
|
dAtA = make([]byte, size)
|
|
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return dAtA[:n], nil
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) MarshalTo(dAtA []byte) (int, error) {
|
|
size := m.Size()
|
|
return m.MarshalToSizedBuffer(dAtA[:size])
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|
i := len(dAtA)
|
|
_ = i
|
|
var l int
|
|
_ = l
|
|
if m.XXX_unrecognized != nil {
|
|
i -= len(m.XXX_unrecognized)
|
|
copy(dAtA[i:], m.XXX_unrecognized)
|
|
}
|
|
if m.Weight != 0 {
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(m.Weight))
|
|
i--
|
|
dAtA[i] = 0x30
|
|
}
|
|
if len(m.Locality) > 0 {
|
|
i -= len(m.Locality)
|
|
copy(dAtA[i:], m.Locality)
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(m.Locality)))
|
|
i--
|
|
dAtA[i] = 0x2a
|
|
}
|
|
if len(m.Network) > 0 {
|
|
i -= len(m.Network)
|
|
copy(dAtA[i:], m.Network)
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(m.Network)))
|
|
i--
|
|
dAtA[i] = 0x22
|
|
}
|
|
if len(m.Labels) > 0 {
|
|
for k := range m.Labels {
|
|
v := m.Labels[k]
|
|
baseI := i
|
|
i -= len(v)
|
|
copy(dAtA[i:], v)
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(v)))
|
|
i--
|
|
dAtA[i] = 0x12
|
|
i -= len(k)
|
|
copy(dAtA[i:], k)
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(k)))
|
|
i--
|
|
dAtA[i] = 0xa
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(baseI-i))
|
|
i--
|
|
dAtA[i] = 0x1a
|
|
}
|
|
}
|
|
if len(m.Ports) > 0 {
|
|
for k := range m.Ports {
|
|
v := m.Ports[k]
|
|
baseI := i
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(v))
|
|
i--
|
|
dAtA[i] = 0x10
|
|
i -= len(k)
|
|
copy(dAtA[i:], k)
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(k)))
|
|
i--
|
|
dAtA[i] = 0xa
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(baseI-i))
|
|
i--
|
|
dAtA[i] = 0x12
|
|
}
|
|
}
|
|
if len(m.Address) > 0 {
|
|
i -= len(m.Address)
|
|
copy(dAtA[i:], m.Address)
|
|
i = encodeVarintServiceEntry(dAtA, i, uint64(len(m.Address)))
|
|
i--
|
|
dAtA[i] = 0xa
|
|
}
|
|
return len(dAtA) - i, nil
|
|
}
|
|
|
|
func encodeVarintServiceEntry(dAtA []byte, offset int, v uint64) int {
|
|
offset -= sovServiceEntry(v)
|
|
base := offset
|
|
for v >= 1<<7 {
|
|
dAtA[offset] = uint8(v&0x7f | 0x80)
|
|
v >>= 7
|
|
offset++
|
|
}
|
|
dAtA[offset] = uint8(v)
|
|
return base
|
|
}
|
|
func (m *ServiceEntry) Size() (n int) {
|
|
if m == nil {
|
|
return 0
|
|
}
|
|
var l int
|
|
_ = l
|
|
if len(m.Hosts) > 0 {
|
|
for _, s := range m.Hosts {
|
|
l = len(s)
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
}
|
|
if len(m.Addresses) > 0 {
|
|
for _, s := range m.Addresses {
|
|
l = len(s)
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
}
|
|
if len(m.Ports) > 0 {
|
|
for _, e := range m.Ports {
|
|
l = e.Size()
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
}
|
|
if m.Location != 0 {
|
|
n += 1 + sovServiceEntry(uint64(m.Location))
|
|
}
|
|
if m.Resolution != 0 {
|
|
n += 1 + sovServiceEntry(uint64(m.Resolution))
|
|
}
|
|
if len(m.Endpoints) > 0 {
|
|
for _, e := range m.Endpoints {
|
|
l = e.Size()
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
}
|
|
if len(m.ExportTo) > 0 {
|
|
for _, s := range m.ExportTo {
|
|
l = len(s)
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
}
|
|
if len(m.SubjectAltNames) > 0 {
|
|
for _, s := range m.SubjectAltNames {
|
|
l = len(s)
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
}
|
|
if m.XXX_unrecognized != nil {
|
|
n += len(m.XXX_unrecognized)
|
|
}
|
|
return n
|
|
}
|
|
|
|
func (m *ServiceEntry_Endpoint) Size() (n int) {
|
|
if m == nil {
|
|
return 0
|
|
}
|
|
var l int
|
|
_ = l
|
|
l = len(m.Address)
|
|
if l > 0 {
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
if len(m.Ports) > 0 {
|
|
for k, v := range m.Ports {
|
|
_ = k
|
|
_ = v
|
|
mapEntrySize := 1 + len(k) + sovServiceEntry(uint64(len(k))) + 1 + sovServiceEntry(uint64(v))
|
|
n += mapEntrySize + 1 + sovServiceEntry(uint64(mapEntrySize))
|
|
}
|
|
}
|
|
if len(m.Labels) > 0 {
|
|
for k, v := range m.Labels {
|
|
_ = k
|
|
_ = v
|
|
mapEntrySize := 1 + len(k) + sovServiceEntry(uint64(len(k))) + 1 + len(v) + sovServiceEntry(uint64(len(v)))
|
|
n += mapEntrySize + 1 + sovServiceEntry(uint64(mapEntrySize))
|
|
}
|
|
}
|
|
l = len(m.Network)
|
|
if l > 0 {
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
l = len(m.Locality)
|
|
if l > 0 {
|
|
n += 1 + l + sovServiceEntry(uint64(l))
|
|
}
|
|
if m.Weight != 0 {
|
|
n += 1 + sovServiceEntry(uint64(m.Weight))
|
|
}
|
|
if m.XXX_unrecognized != nil {
|
|
n += len(m.XXX_unrecognized)
|
|
}
|
|
return n
|
|
}
|
|
|
|
func sovServiceEntry(x uint64) (n int) {
|
|
return (math_bits.Len64(x|1) + 6) / 7
|
|
}
|
|
func sozServiceEntry(x uint64) (n int) {
|
|
return sovServiceEntry(uint64((x << 1) ^ uint64((int64(x) >> 63))))
|
|
}
|
|
func (m *ServiceEntry) 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 ErrIntOverflowServiceEntry
|
|
}
|
|
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: ServiceEntry: wiretype end group for non-group")
|
|
}
|
|
if fieldNum <= 0 {
|
|
return fmt.Errorf("proto: ServiceEntry: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
}
|
|
switch fieldNum {
|
|
case 1:
|
|
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 ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + intStringLen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))
|
|
iNdEx = postIndex
|
|
case 2:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Addresses", wireType)
|
|
}
|
|
var stringLen uint64
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + intStringLen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex]))
|
|
iNdEx = postIndex
|
|
case 3:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Ports", wireType)
|
|
}
|
|
var msglen int
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
msglen |= int(b&0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
if msglen < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + msglen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.Ports = append(m.Ports, &Port{})
|
|
if err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
|
return err
|
|
}
|
|
iNdEx = postIndex
|
|
case 4:
|
|
if wireType != 0 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Location", wireType)
|
|
}
|
|
m.Location = 0
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
m.Location |= ServiceEntry_Location(b&0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
case 5:
|
|
if wireType != 0 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Resolution", wireType)
|
|
}
|
|
m.Resolution = 0
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
m.Resolution |= ServiceEntry_Resolution(b&0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
case 6:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Endpoints", wireType)
|
|
}
|
|
var msglen int
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
msglen |= int(b&0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
if msglen < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + msglen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.Endpoints = append(m.Endpoints, &ServiceEntry_Endpoint{})
|
|
if err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
|
return err
|
|
}
|
|
iNdEx = postIndex
|
|
case 7:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field ExportTo", wireType)
|
|
}
|
|
var stringLen uint64
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + intStringLen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.ExportTo = append(m.ExportTo, string(dAtA[iNdEx:postIndex]))
|
|
iNdEx = postIndex
|
|
case 8:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field SubjectAltNames", wireType)
|
|
}
|
|
var stringLen uint64
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + intStringLen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.SubjectAltNames = append(m.SubjectAltNames, string(dAtA[iNdEx:postIndex]))
|
|
iNdEx = postIndex
|
|
default:
|
|
iNdEx = preIndex
|
|
skippy, err := skipServiceEntry(dAtA[iNdEx:])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if skippy < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if (iNdEx + skippy) < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if (iNdEx + skippy) > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
|
|
iNdEx += skippy
|
|
}
|
|
}
|
|
|
|
if iNdEx > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
return nil
|
|
}
|
|
func (m *ServiceEntry_Endpoint) 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 ErrIntOverflowServiceEntry
|
|
}
|
|
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: Endpoint: wiretype end group for non-group")
|
|
}
|
|
if fieldNum <= 0 {
|
|
return fmt.Errorf("proto: Endpoint: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
}
|
|
switch fieldNum {
|
|
case 1:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
|
|
}
|
|
var stringLen uint64
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + intStringLen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.Address = string(dAtA[iNdEx:postIndex])
|
|
iNdEx = postIndex
|
|
case 2:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Ports", wireType)
|
|
}
|
|
var msglen int
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
msglen |= int(b&0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
if msglen < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + msglen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
if m.Ports == nil {
|
|
m.Ports = 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 ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postStringIndexmapkey := iNdEx + intStringLenmapkey
|
|
if postStringIndexmapkey < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
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 ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
mapvalue |= uint32(b&0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
} else {
|
|
iNdEx = entryPreIndex
|
|
skippy, err := skipServiceEntry(dAtA[iNdEx:])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if skippy < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if (iNdEx + skippy) > postIndex {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
iNdEx += skippy
|
|
}
|
|
}
|
|
m.Ports[mapkey] = mapvalue
|
|
iNdEx = postIndex
|
|
case 3:
|
|
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 ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
msglen |= int(b&0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
if msglen < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + msglen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
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 ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postStringIndexmapkey := iNdEx + intStringLenmapkey
|
|
if postStringIndexmapkey < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
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 ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
|
|
if postStringIndexmapvalue < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postStringIndexmapvalue > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
|
|
iNdEx = postStringIndexmapvalue
|
|
} else {
|
|
iNdEx = entryPreIndex
|
|
skippy, err := skipServiceEntry(dAtA[iNdEx:])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if skippy < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if (iNdEx + skippy) > postIndex {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
iNdEx += skippy
|
|
}
|
|
}
|
|
m.Labels[mapkey] = mapvalue
|
|
iNdEx = postIndex
|
|
case 4:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
|
|
}
|
|
var stringLen uint64
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + intStringLen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.Network = string(dAtA[iNdEx:postIndex])
|
|
iNdEx = postIndex
|
|
case 5:
|
|
if wireType != 2 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Locality", wireType)
|
|
}
|
|
var stringLen uint64
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
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 ErrInvalidLengthServiceEntry
|
|
}
|
|
postIndex := iNdEx + intStringLen
|
|
if postIndex < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if postIndex > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.Locality = string(dAtA[iNdEx:postIndex])
|
|
iNdEx = postIndex
|
|
case 6:
|
|
if wireType != 0 {
|
|
return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType)
|
|
}
|
|
m.Weight = 0
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
m.Weight |= uint32(b&0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
default:
|
|
iNdEx = preIndex
|
|
skippy, err := skipServiceEntry(dAtA[iNdEx:])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if skippy < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if (iNdEx + skippy) < 0 {
|
|
return ErrInvalidLengthServiceEntry
|
|
}
|
|
if (iNdEx + skippy) > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
|
|
iNdEx += skippy
|
|
}
|
|
}
|
|
|
|
if iNdEx > l {
|
|
return io.ErrUnexpectedEOF
|
|
}
|
|
return nil
|
|
}
|
|
func skipServiceEntry(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, ErrIntOverflowServiceEntry
|
|
}
|
|
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, ErrIntOverflowServiceEntry
|
|
}
|
|
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, ErrIntOverflowServiceEntry
|
|
}
|
|
if iNdEx >= l {
|
|
return 0, io.ErrUnexpectedEOF
|
|
}
|
|
b := dAtA[iNdEx]
|
|
iNdEx++
|
|
length |= (int(b) & 0x7F) << shift
|
|
if b < 0x80 {
|
|
break
|
|
}
|
|
}
|
|
if length < 0 {
|
|
return 0, ErrInvalidLengthServiceEntry
|
|
}
|
|
iNdEx += length
|
|
if iNdEx < 0 {
|
|
return 0, ErrInvalidLengthServiceEntry
|
|
}
|
|
return iNdEx, nil
|
|
case 3:
|
|
for {
|
|
var innerWire uint64
|
|
var start int = iNdEx
|
|
for shift := uint(0); ; shift += 7 {
|
|
if shift >= 64 {
|
|
return 0, ErrIntOverflowServiceEntry
|
|
}
|
|
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 := skipServiceEntry(dAtA[start:])
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
iNdEx = start + next
|
|
if iNdEx < 0 {
|
|
return 0, ErrInvalidLengthServiceEntry
|
|
}
|
|
}
|
|
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 (
|
|
ErrInvalidLengthServiceEntry = fmt.Errorf("proto: negative length found during unmarshaling")
|
|
ErrIntOverflowServiceEntry = fmt.Errorf("proto: integer overflow")
|
|
)
|