From 0ca07814349d8d69779d619f5baf2b78c2e820ab Mon Sep 17 00:00:00 2001 From: Yossi Mesika Date: Sun, 21 Oct 2018 17:58:16 +0300 Subject: [PATCH 01/11] Cherry picked network config (#667) * Updating description of network definitions (#664) * clarity Signed-off-by: Shriram Rajagopalan * renaming * nits Signed-off-by: Shriram Rajagopalan * Added MeshNetworks --- mesh/v1alpha1/config.pb.go | 3 +- mesh/v1alpha1/istio.mesh.v1alpha1.pb.html | 121 +- mesh/v1alpha1/mesh.pb.go | 800 ---------- mesh/v1alpha1/mesh.proto | 61 - mesh/v1alpha1/network.pb.go | 1340 +++++++++++++++++ mesh/v1alpha1/network.proto | 113 ++ python/istio_api/mesh/v1alpha1/mesh_pb2.py | 155 -- python/istio_api/mesh/v1alpha1/network_pb2.py | 293 ++++ 8 files changed, 1853 insertions(+), 1033 deletions(-) delete mode 100644 mesh/v1alpha1/mesh.pb.go delete mode 100644 mesh/v1alpha1/mesh.proto create mode 100644 mesh/v1alpha1/network.pb.go create mode 100644 mesh/v1alpha1/network.proto delete mode 100644 python/istio_api/mesh/v1alpha1/mesh_pb2.py create mode 100644 python/istio_api/mesh/v1alpha1/network_pb2.py diff --git a/mesh/v1alpha1/config.pb.go b/mesh/v1alpha1/config.pb.go index f3a0c3eb12..df48c35359 100644 --- a/mesh/v1alpha1/config.pb.go +++ b/mesh/v1alpha1/config.pb.go @@ -6,12 +6,13 @@ It is generated from these files: mesh/v1alpha1/config.proto - mesh/v1alpha1/mesh.proto + mesh/v1alpha1/network.proto mesh/v1alpha1/proxy.proto It has these top-level messages: MeshConfig Network + MeshNetworks Tracing ProxyConfig */ diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html index 392830e414..b91f5001c0 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: 10 +number_of_entries: 12 ---

AuthenticationPolicy

@@ -255,6 +255,44 @@

MeshConfig.IngressControllerMode

a secondary ingress controller (e.g., in addition to a cloud-provided ingress controller).

+ + + + +
+

MeshNetworks

+
+

MeshNetworks (config map) provides information about the set of networks +inside a mesh and how to route to endpoints in each network. For example

+ +

MeshNetworks(file/config map): +networks: +- network1: + - endpoints: + - fromRegistry: registry1 #must match secret name in kubernetes + - fromCidr: 192.168.100.0/22 #a VM network for example + gateways: + - registryServiceName: istio-ingressgateway.istio-system.svc.cluster.local + port: 15443 + locality: us-east-1a

+ + + + + + + + + + + + + + @@ -277,21 +315,13 @@

Network

- - - + + + - - - - - @@ -299,6 +329,8 @@

Network

@@ -345,7 +377,7 @@

Network.IstioNetworkGateway

@@ -355,6 +387,63 @@

Network.IstioNetworkGateway

+ + +
FieldTypeDescription
networksmap<string, Network> +

REQUIRED: The set of networks inside this mesh. Each network should +have a unique name and information about how to infer the endpoints in +the network as well as the gateways associated with the network.

+
namestring
endpointsNetwork.NetworkEndpoints[] -

A unique name assigned to the network.

- -
registriesstring[] -

One or more service registries that are in this network. Endpoints -from these registries will be directly reachable to one another. -The names of the registries should correspond to the data sources.

+

REQUIRED: The list of endpoints in the network (obtained through the +constituent service registries or from CIDR ranges). All endpoints in +the network are directly accessible to one another.

gateways Network.IstioNetworkGateway[] +

REQUIRED: Set of gateways associated with the network.

+
port uint32 -

The port associated with the gateway.

+

REQUIRED: The port associated with the gateway.

The locality associated with an explicitly specified gateway (i.e. ip)

+
+
+

Network.NetworkEndpoints

+
+

NetworkEndpoints describes how the network associated with an endpoint +should be inferred. An endpoint will be assigned to a network based on +the following rules:

+ +
    +
  1. Implicitly: If the registry explicitly provides information about +the network to which the endpoint belongs to. In some cases, its +possible to indicate the network associated with the endpoint by +adding ISTIOMETANETWORK environment variable to the sidecar.

  2. + +
  3. Explicitly:

  4. +
+ +

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

+ +

b. By matching the IP against one of the CIDR ranges in a mesh + config network. The CIDR ranges must not overlap and be assigned to + a single network.

+ +

(2) will override (1) if both are present.

+ + + + + + + + + + + + + + + + + + + diff --git a/mesh/v1alpha1/mesh.pb.go b/mesh/v1alpha1/mesh.pb.go deleted file mode 100644 index 8bc20cf406..0000000000 --- a/mesh/v1alpha1/mesh.pb.go +++ /dev/null @@ -1,800 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: mesh/v1alpha1/mesh.proto - -package v1alpha1 - -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 - -// Network provides information about the endpoints in a routable L3 -// network. A single routable L3 network can have one or more service -// registries. Note that the network has no relation to the locality of the -// endpoint. The endpoint locality will be obtained from the service -// registry. -type Network struct { - // A unique name assigned to the network. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // One or more service registries that are in this network. Endpoints - // from these registries will be directly reachable to one another. - // The names of the registries should correspond to the data sources. - Registries []string `protobuf:"bytes,2,rep,name=registries" json:"registries,omitempty"` - Gateways []*Network_IstioNetworkGateway `protobuf:"bytes,3,rep,name=gateways" json:"gateways,omitempty"` -} - -func (m *Network) Reset() { *m = Network{} } -func (m *Network) String() string { return proto.CompactTextString(m) } -func (*Network) ProtoMessage() {} -func (*Network) Descriptor() ([]byte, []int) { return fileDescriptorMesh, []int{0} } - -func (m *Network) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *Network) GetRegistries() []string { - if m != nil { - return m.Registries - } - return nil -} - -func (m *Network) GetGateways() []*Network_IstioNetworkGateway { - if m != nil { - return m.Gateways - } - return nil -} - -// The gateway associated with this network. Traffic from remote networks -// will arrive at the specified gateway:port. All incoming traffic must -// use mTLS. -type Network_IstioNetworkGateway struct { - // Types that are valid to be assigned to Gw: - // *Network_IstioNetworkGateway_RegistryServiceName - // *Network_IstioNetworkGateway_Address - Gw isNetwork_IstioNetworkGateway_Gw `protobuf_oneof:"gw"` - // The port associated with the gateway. - Port uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"` - // The locality associated with an explicitly specified gateway (i.e. ip) - Locality string `protobuf:"bytes,4,opt,name=locality,proto3" json:"locality,omitempty"` -} - -func (m *Network_IstioNetworkGateway) Reset() { *m = Network_IstioNetworkGateway{} } -func (m *Network_IstioNetworkGateway) String() string { return proto.CompactTextString(m) } -func (*Network_IstioNetworkGateway) ProtoMessage() {} -func (*Network_IstioNetworkGateway) Descriptor() ([]byte, []int) { - return fileDescriptorMesh, []int{0, 0} -} - -type isNetwork_IstioNetworkGateway_Gw interface { - isNetwork_IstioNetworkGateway_Gw() - MarshalTo([]byte) (int, error) - Size() int -} - -type Network_IstioNetworkGateway_RegistryServiceName struct { - RegistryServiceName string `protobuf:"bytes,1,opt,name=registry_service_name,json=registryServiceName,proto3,oneof"` -} -type Network_IstioNetworkGateway_Address struct { - Address string `protobuf:"bytes,2,opt,name=address,proto3,oneof"` -} - -func (*Network_IstioNetworkGateway_RegistryServiceName) isNetwork_IstioNetworkGateway_Gw() {} -func (*Network_IstioNetworkGateway_Address) isNetwork_IstioNetworkGateway_Gw() {} - -func (m *Network_IstioNetworkGateway) GetGw() isNetwork_IstioNetworkGateway_Gw { - if m != nil { - return m.Gw - } - return nil -} - -func (m *Network_IstioNetworkGateway) GetRegistryServiceName() string { - if x, ok := m.GetGw().(*Network_IstioNetworkGateway_RegistryServiceName); ok { - return x.RegistryServiceName - } - return "" -} - -func (m *Network_IstioNetworkGateway) GetAddress() string { - if x, ok := m.GetGw().(*Network_IstioNetworkGateway_Address); ok { - return x.Address - } - return "" -} - -func (m *Network_IstioNetworkGateway) GetPort() uint32 { - if m != nil { - return m.Port - } - return 0 -} - -func (m *Network_IstioNetworkGateway) GetLocality() string { - if m != nil { - return m.Locality - } - return "" -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*Network_IstioNetworkGateway) 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 _Network_IstioNetworkGateway_OneofMarshaler, _Network_IstioNetworkGateway_OneofUnmarshaler, _Network_IstioNetworkGateway_OneofSizer, []interface{}{ - (*Network_IstioNetworkGateway_RegistryServiceName)(nil), - (*Network_IstioNetworkGateway_Address)(nil), - } -} - -func _Network_IstioNetworkGateway_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*Network_IstioNetworkGateway) - // gw - switch x := m.Gw.(type) { - case *Network_IstioNetworkGateway_RegistryServiceName: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.RegistryServiceName) - case *Network_IstioNetworkGateway_Address: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Address) - case nil: - default: - return fmt.Errorf("Network_IstioNetworkGateway.Gw has unexpected type %T", x) - } - return nil -} - -func _Network_IstioNetworkGateway_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*Network_IstioNetworkGateway) - switch tag { - case 1: // gw.registry_service_name - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Gw = &Network_IstioNetworkGateway_RegistryServiceName{x} - return true, err - case 2: // gw.address - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Gw = &Network_IstioNetworkGateway_Address{x} - return true, err - default: - return false, nil - } -} - -func _Network_IstioNetworkGateway_OneofSizer(msg proto.Message) (n int) { - m := msg.(*Network_IstioNetworkGateway) - // gw - switch x := m.Gw.(type) { - case *Network_IstioNetworkGateway_RegistryServiceName: - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.RegistryServiceName))) - n += len(x.RegistryServiceName) - case *Network_IstioNetworkGateway_Address: - n += proto.SizeVarint(2<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Address))) - n += len(x.Address) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*Network)(nil), "istio.mesh.v1alpha1.Network") - proto.RegisterType((*Network_IstioNetworkGateway)(nil), "istio.mesh.v1alpha1.Network.IstioNetworkGateway") -} -func (m *Network) 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 *Network) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Name) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintMesh(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - } - if len(m.Registries) > 0 { - for _, s := range m.Registries { - 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) - } - } - if len(m.Gateways) > 0 { - for _, msg := range m.Gateways { - dAtA[i] = 0x1a - i++ - i = encodeVarintMesh(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *Network_IstioNetworkGateway) 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 *Network_IstioNetworkGateway) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Gw != nil { - nn1, err := m.Gw.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn1 - } - if m.Port != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintMesh(dAtA, i, uint64(m.Port)) - } - if len(m.Locality) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintMesh(dAtA, i, uint64(len(m.Locality))) - i += copy(dAtA[i:], m.Locality) - } - return i, nil -} - -func (m *Network_IstioNetworkGateway_RegistryServiceName) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0xa - i++ - i = encodeVarintMesh(dAtA, i, uint64(len(m.RegistryServiceName))) - i += copy(dAtA[i:], m.RegistryServiceName) - return i, nil -} -func (m *Network_IstioNetworkGateway_Address) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x12 - i++ - i = encodeVarintMesh(dAtA, i, uint64(len(m.Address))) - i += copy(dAtA[i:], m.Address) - return i, nil -} -func encodeVarintMesh(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 *Network) Size() (n int) { - var l int - _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + sovMesh(uint64(l)) - } - if len(m.Registries) > 0 { - for _, s := range m.Registries { - l = len(s) - n += 1 + l + sovMesh(uint64(l)) - } - } - if len(m.Gateways) > 0 { - for _, e := range m.Gateways { - l = e.Size() - n += 1 + l + sovMesh(uint64(l)) - } - } - return n -} - -func (m *Network_IstioNetworkGateway) Size() (n int) { - var l int - _ = l - if m.Gw != nil { - n += m.Gw.Size() - } - if m.Port != 0 { - n += 1 + sovMesh(uint64(m.Port)) - } - l = len(m.Locality) - if l > 0 { - n += 1 + l + sovMesh(uint64(l)) - } - return n -} - -func (m *Network_IstioNetworkGateway_RegistryServiceName) Size() (n int) { - var l int - _ = l - l = len(m.RegistryServiceName) - n += 1 + l + sovMesh(uint64(l)) - return n -} -func (m *Network_IstioNetworkGateway_Address) Size() (n int) { - var l int - _ = l - l = len(m.Address) - n += 1 + l + sovMesh(uint64(l)) - return n -} - -func sovMesh(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozMesh(x uint64) (n int) { - return sovMesh(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *Network) 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 ErrIntOverflowMesh - } - 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: Network: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Network: 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 ErrIntOverflowMesh - } - 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 ErrInvalidLengthMesh - } - 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 Registries", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMesh - } - 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 ErrInvalidLengthMesh - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Registries = append(m.Registries, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Gateways", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMesh - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMesh - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Gateways = append(m.Gateways, &Network_IstioNetworkGateway{}) - if err := m.Gateways[len(m.Gateways)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMesh(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMesh - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Network_IstioNetworkGateway) 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 ErrIntOverflowMesh - } - 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: IstioNetworkGateway: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: IstioNetworkGateway: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RegistryServiceName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMesh - } - 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 ErrInvalidLengthMesh - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Gw = &Network_IstioNetworkGateway_RegistryServiceName{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 2: - 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 ErrIntOverflowMesh - } - 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 ErrInvalidLengthMesh - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Gw = &Network_IstioNetworkGateway_Address{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) - } - m.Port = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMesh - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Port |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - 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 ErrIntOverflowMesh - } - 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 ErrInvalidLengthMesh - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Locality = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMesh(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMesh - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipMesh(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, ErrIntOverflowMesh - } - 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, ErrIntOverflowMesh - } - 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, ErrIntOverflowMesh - } - 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, ErrInvalidLengthMesh - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowMesh - } - 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 := skipMesh(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 ( - ErrInvalidLengthMesh = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowMesh = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("mesh/v1alpha1/mesh.proto", fileDescriptorMesh) } - -var fileDescriptorMesh = []byte{ - // 275 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x50, 0x31, 0x4e, 0xc3, 0x30, - 0x14, 0xc5, 0x49, 0x44, 0xdb, 0x8f, 0x58, 0x1c, 0x21, 0x59, 0x19, 0xa2, 0x88, 0x29, 0x93, 0x43, - 0x81, 0x13, 0x74, 0x01, 0x24, 0xd4, 0xc1, 0x6c, 0x2c, 0x95, 0x69, 0xad, 0xd4, 0x22, 0xc5, 0x91, - 0x6d, 0x35, 0xca, 0x61, 0x38, 0x01, 0x17, 0x61, 0xe4, 0x08, 0x28, 0x27, 0x41, 0x76, 0x92, 0x02, - 0x52, 0xb7, 0xff, 0xde, 0xfb, 0xf6, 0x7b, 0xff, 0x01, 0xd9, 0x09, 0xb3, 0x2d, 0xf6, 0x73, 0x5e, - 0xd5, 0x5b, 0x3e, 0x2f, 0x1c, 0xa2, 0xb5, 0x56, 0x56, 0xe1, 0x58, 0x1a, 0x2b, 0x15, 0xf5, 0xcc, - 0xa8, 0x5f, 0x7e, 0x04, 0x30, 0x59, 0x0a, 0xdb, 0x28, 0xfd, 0x8a, 0x31, 0x44, 0x6f, 0x7c, 0x27, - 0x08, 0xca, 0x50, 0x3e, 0x63, 0x7e, 0xc6, 0x29, 0x80, 0x16, 0xa5, 0x34, 0x56, 0x4b, 0x61, 0x48, - 0x90, 0x85, 0xf9, 0x8c, 0xfd, 0x61, 0xf0, 0x23, 0x4c, 0x4b, 0x6e, 0x45, 0xc3, 0x5b, 0x43, 0xc2, - 0x2c, 0xcc, 0xcf, 0xae, 0xaf, 0xe8, 0x11, 0x1f, 0x3a, 0x78, 0xd0, 0x07, 0xa7, 0x0d, 0xe0, 0xae, - 0x7f, 0xc8, 0x0e, 0x3f, 0x24, 0xef, 0x08, 0xe2, 0x23, 0x1b, 0xf8, 0x16, 0x2e, 0x06, 0xcf, 0x76, - 0x65, 0x84, 0xde, 0xcb, 0xb5, 0x58, 0xfd, 0x46, 0xbd, 0x3f, 0x61, 0xf1, 0x28, 0x3f, 0xf5, 0xea, - 0xd2, 0x65, 0x4f, 0x60, 0xc2, 0x37, 0x1b, 0x2d, 0x8c, 0x0b, 0xde, 0xef, 0x8d, 0x84, 0xbb, 0xb5, - 0x56, 0xda, 0x92, 0x30, 0x43, 0xf9, 0x39, 0xf3, 0x33, 0x4e, 0x60, 0x5a, 0xa9, 0x35, 0xaf, 0xa4, - 0x6d, 0x49, 0xe4, 0x3b, 0x38, 0xe0, 0x45, 0x04, 0x41, 0xd9, 0x2c, 0xf2, 0xcf, 0x2e, 0x45, 0x5f, - 0x5d, 0x8a, 0xbe, 0xbb, 0x14, 0x3d, 0x27, 0xfd, 0xa1, 0x52, 0x15, 0xbc, 0x96, 0xc5, 0xbf, 0xde, - 0x5f, 0x4e, 0x7d, 0xe7, 0x37, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x49, 0xb6, 0xd4, 0x8f, - 0x01, 0x00, 0x00, -} diff --git a/mesh/v1alpha1/mesh.proto b/mesh/v1alpha1/mesh.proto deleted file mode 100644 index 48e6730808..0000000000 --- a/mesh/v1alpha1/mesh.proto +++ /dev/null @@ -1,61 +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.mesh.v1alpha1; - -option go_package="istio.io/api/mesh/v1alpha1"; - -// Network provides information about the endpoints in a routable L3 -// network. A single routable L3 network can have one or more service -// registries. Note that the network has no relation to the locality of the -// endpoint. The endpoint locality will be obtained from the service -// registry. -message Network { - // A unique name assigned to the network. - string name = 1; - - // One or more service registries that are in this network. Endpoints - // from these registries will be directly reachable to one another. - // The names of the registries should correspond to the data sources. - repeated string registries = 2; - - // The gateway associated with this network. Traffic from remote networks - // will arrive at the specified gateway:port. All incoming traffic must - // use mTLS. - message IstioNetworkGateway { - oneof gw { - // A fully qualified domain name of the gateway service. Pilot will - // lookup the service from the service registries in the network and - // obtain the endpoint IPs of the gateway from the service - // registry. Note that while the service name is a fully qualified - // domain name, it need not be resolvable outside the orchestration - // platform for the registry. e.g., this could be - // istio-ingressgateway.istio-system.svc.cluster.local. - string registry_service_name = 1; - - // IP address or externally resolvable DNS address associated with the gateway. - string address = 2; - } - - // The port associated with the gateway. - uint32 port = 3; - - // The locality associated with an explicitly specified gateway (i.e. ip) - string locality = 4; - } - - repeated IstioNetworkGateway gateways = 3; -} diff --git a/mesh/v1alpha1/network.pb.go b/mesh/v1alpha1/network.pb.go new file mode 100644 index 0000000000..05bafac843 --- /dev/null +++ b/mesh/v1alpha1/network.pb.go @@ -0,0 +1,1340 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: mesh/v1alpha1/network.proto + +package v1alpha1 + +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 + +// Network provides information about the endpoints in a routable L3 +// network. A single routable L3 network can have one or more service +// registries. Note that the network has no relation to the locality of the +// endpoint. The endpoint locality will be obtained from the service +// registry. +type Network struct { + // REQUIRED: The list of endpoints in the network (obtained through the + // constituent service registries or from CIDR ranges). All endpoints in + // the network are directly accessible to one another. + Endpoints []*Network_NetworkEndpoints `protobuf:"bytes,2,rep,name=endpoints" json:"endpoints,omitempty"` + // REQUIRED: Set of gateways associated with the network. + Gateways []*Network_IstioNetworkGateway `protobuf:"bytes,3,rep,name=gateways" json:"gateways,omitempty"` +} + +func (m *Network) Reset() { *m = Network{} } +func (m *Network) String() string { return proto.CompactTextString(m) } +func (*Network) ProtoMessage() {} +func (*Network) Descriptor() ([]byte, []int) { return fileDescriptorNetwork, []int{0} } + +func (m *Network) GetEndpoints() []*Network_NetworkEndpoints { + if m != nil { + return m.Endpoints + } + return nil +} + +func (m *Network) GetGateways() []*Network_IstioNetworkGateway { + if m != nil { + return m.Gateways + } + return nil +} + +// NetworkEndpoints describes how the network associated with an endpoint +// should be inferred. An endpoint will be assigned to a network based on +// the following rules: +// +// 1. Implicitly: If the registry explicitly provides information about +// the network to which the endpoint belongs to. In some cases, its +// possible to indicate the network associated with the endpoint by +// adding ISTIO_META_NETWORK environment variable to the sidecar. +// +// 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 +// single network. +// +// b. By matching the IP against one of the CIDR ranges in a mesh +// config network. The CIDR ranges must not overlap and be assigned to +// a single network. +// +// (2) will override (1) if both are present. +type Network_NetworkEndpoints struct { + // Types that are valid to be assigned to Ne: + // *Network_NetworkEndpoints_FromCidr + // *Network_NetworkEndpoints_FromRegistry + Ne isNetwork_NetworkEndpoints_Ne `protobuf_oneof:"ne"` +} + +func (m *Network_NetworkEndpoints) Reset() { *m = Network_NetworkEndpoints{} } +func (m *Network_NetworkEndpoints) String() string { return proto.CompactTextString(m) } +func (*Network_NetworkEndpoints) ProtoMessage() {} +func (*Network_NetworkEndpoints) Descriptor() ([]byte, []int) { + return fileDescriptorNetwork, []int{0, 0} +} + +type isNetwork_NetworkEndpoints_Ne interface { + isNetwork_NetworkEndpoints_Ne() + MarshalTo([]byte) (int, error) + Size() int +} + +type Network_NetworkEndpoints_FromCidr struct { + FromCidr string `protobuf:"bytes,1,opt,name=from_cidr,json=fromCidr,proto3,oneof"` +} +type Network_NetworkEndpoints_FromRegistry struct { + FromRegistry string `protobuf:"bytes,2,opt,name=from_registry,json=fromRegistry,proto3,oneof"` +} + +func (*Network_NetworkEndpoints_FromCidr) isNetwork_NetworkEndpoints_Ne() {} +func (*Network_NetworkEndpoints_FromRegistry) isNetwork_NetworkEndpoints_Ne() {} + +func (m *Network_NetworkEndpoints) GetNe() isNetwork_NetworkEndpoints_Ne { + if m != nil { + return m.Ne + } + return nil +} + +func (m *Network_NetworkEndpoints) GetFromCidr() string { + if x, ok := m.GetNe().(*Network_NetworkEndpoints_FromCidr); ok { + return x.FromCidr + } + return "" +} + +func (m *Network_NetworkEndpoints) GetFromRegistry() string { + if x, ok := m.GetNe().(*Network_NetworkEndpoints_FromRegistry); ok { + return x.FromRegistry + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Network_NetworkEndpoints) 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 _Network_NetworkEndpoints_OneofMarshaler, _Network_NetworkEndpoints_OneofUnmarshaler, _Network_NetworkEndpoints_OneofSizer, []interface{}{ + (*Network_NetworkEndpoints_FromCidr)(nil), + (*Network_NetworkEndpoints_FromRegistry)(nil), + } +} + +func _Network_NetworkEndpoints_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Network_NetworkEndpoints) + // ne + switch x := m.Ne.(type) { + case *Network_NetworkEndpoints_FromCidr: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.FromCidr) + case *Network_NetworkEndpoints_FromRegistry: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.FromRegistry) + case nil: + default: + return fmt.Errorf("Network_NetworkEndpoints.Ne has unexpected type %T", x) + } + return nil +} + +func _Network_NetworkEndpoints_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Network_NetworkEndpoints) + switch tag { + case 1: // ne.from_cidr + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Ne = &Network_NetworkEndpoints_FromCidr{x} + return true, err + case 2: // ne.from_registry + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Ne = &Network_NetworkEndpoints_FromRegistry{x} + return true, err + default: + return false, nil + } +} + +func _Network_NetworkEndpoints_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Network_NetworkEndpoints) + // ne + switch x := m.Ne.(type) { + case *Network_NetworkEndpoints_FromCidr: + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.FromCidr))) + n += len(x.FromCidr) + case *Network_NetworkEndpoints_FromRegistry: + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.FromRegistry))) + n += len(x.FromRegistry) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The gateway associated with this network. Traffic from remote networks +// will arrive at the specified gateway:port. All incoming traffic must +// use mTLS. +type Network_IstioNetworkGateway struct { + // Types that are valid to be assigned to Gw: + // *Network_IstioNetworkGateway_RegistryServiceName + // *Network_IstioNetworkGateway_Address + Gw isNetwork_IstioNetworkGateway_Gw `protobuf_oneof:"gw"` + // REQUIRED: The port associated with the gateway. + Port uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"` + // The locality associated with an explicitly specified gateway (i.e. ip) + Locality string `protobuf:"bytes,4,opt,name=locality,proto3" json:"locality,omitempty"` +} + +func (m *Network_IstioNetworkGateway) Reset() { *m = Network_IstioNetworkGateway{} } +func (m *Network_IstioNetworkGateway) String() string { return proto.CompactTextString(m) } +func (*Network_IstioNetworkGateway) ProtoMessage() {} +func (*Network_IstioNetworkGateway) Descriptor() ([]byte, []int) { + return fileDescriptorNetwork, []int{0, 1} +} + +type isNetwork_IstioNetworkGateway_Gw interface { + isNetwork_IstioNetworkGateway_Gw() + MarshalTo([]byte) (int, error) + Size() int +} + +type Network_IstioNetworkGateway_RegistryServiceName struct { + RegistryServiceName string `protobuf:"bytes,1,opt,name=registry_service_name,json=registryServiceName,proto3,oneof"` +} +type Network_IstioNetworkGateway_Address struct { + Address string `protobuf:"bytes,2,opt,name=address,proto3,oneof"` +} + +func (*Network_IstioNetworkGateway_RegistryServiceName) isNetwork_IstioNetworkGateway_Gw() {} +func (*Network_IstioNetworkGateway_Address) isNetwork_IstioNetworkGateway_Gw() {} + +func (m *Network_IstioNetworkGateway) GetGw() isNetwork_IstioNetworkGateway_Gw { + if m != nil { + return m.Gw + } + return nil +} + +func (m *Network_IstioNetworkGateway) GetRegistryServiceName() string { + if x, ok := m.GetGw().(*Network_IstioNetworkGateway_RegistryServiceName); ok { + return x.RegistryServiceName + } + return "" +} + +func (m *Network_IstioNetworkGateway) GetAddress() string { + if x, ok := m.GetGw().(*Network_IstioNetworkGateway_Address); ok { + return x.Address + } + return "" +} + +func (m *Network_IstioNetworkGateway) GetPort() uint32 { + if m != nil { + return m.Port + } + return 0 +} + +func (m *Network_IstioNetworkGateway) GetLocality() string { + if m != nil { + return m.Locality + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Network_IstioNetworkGateway) 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 _Network_IstioNetworkGateway_OneofMarshaler, _Network_IstioNetworkGateway_OneofUnmarshaler, _Network_IstioNetworkGateway_OneofSizer, []interface{}{ + (*Network_IstioNetworkGateway_RegistryServiceName)(nil), + (*Network_IstioNetworkGateway_Address)(nil), + } +} + +func _Network_IstioNetworkGateway_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Network_IstioNetworkGateway) + // gw + switch x := m.Gw.(type) { + case *Network_IstioNetworkGateway_RegistryServiceName: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.RegistryServiceName) + case *Network_IstioNetworkGateway_Address: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.Address) + case nil: + default: + return fmt.Errorf("Network_IstioNetworkGateway.Gw has unexpected type %T", x) + } + return nil +} + +func _Network_IstioNetworkGateway_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Network_IstioNetworkGateway) + switch tag { + case 1: // gw.registry_service_name + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Gw = &Network_IstioNetworkGateway_RegistryServiceName{x} + return true, err + case 2: // gw.address + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Gw = &Network_IstioNetworkGateway_Address{x} + return true, err + default: + return false, nil + } +} + +func _Network_IstioNetworkGateway_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Network_IstioNetworkGateway) + // gw + switch x := m.Gw.(type) { + case *Network_IstioNetworkGateway_RegistryServiceName: + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.RegistryServiceName))) + n += len(x.RegistryServiceName) + case *Network_IstioNetworkGateway_Address: + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Address))) + n += len(x.Address) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// MeshNetworks (config map) provides information about the set of networks +// inside a mesh and how to route to endpoints in each network. For example +// +// MeshNetworks(file/config map): +// networks: +// - network1: +// - endpoints: +// - fromRegistry: registry1 #must match secret name in kubernetes +// - fromCidr: 192.168.100.0/22 #a VM network for example +// gateways: +// - registryServiceName: istio-ingressgateway.istio-system.svc.cluster.local +// port: 15443 +// locality: us-east-1a +type MeshNetworks struct { + // REQUIRED: The set of networks inside this mesh. Each network should + // have a unique name and information about how to infer the endpoints in + // the network as well as the gateways associated with the network. + Networks map[string]*Network `protobuf:"bytes,1,rep,name=networks" json:"networks,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MeshNetworks) Reset() { *m = MeshNetworks{} } +func (m *MeshNetworks) String() string { return proto.CompactTextString(m) } +func (*MeshNetworks) ProtoMessage() {} +func (*MeshNetworks) Descriptor() ([]byte, []int) { return fileDescriptorNetwork, []int{1} } + +func (m *MeshNetworks) GetNetworks() map[string]*Network { + if m != nil { + return m.Networks + } + return nil +} + +func init() { + proto.RegisterType((*Network)(nil), "istio.mesh.v1alpha1.Network") + proto.RegisterType((*Network_NetworkEndpoints)(nil), "istio.mesh.v1alpha1.Network.NetworkEndpoints") + proto.RegisterType((*Network_IstioNetworkGateway)(nil), "istio.mesh.v1alpha1.Network.IstioNetworkGateway") + proto.RegisterType((*MeshNetworks)(nil), "istio.mesh.v1alpha1.MeshNetworks") +} +func (m *Network) 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 *Network) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Endpoints) > 0 { + for _, msg := range m.Endpoints { + dAtA[i] = 0x12 + i++ + i = encodeVarintNetwork(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Gateways) > 0 { + for _, msg := range m.Gateways { + dAtA[i] = 0x1a + i++ + i = encodeVarintNetwork(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *Network_NetworkEndpoints) 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 *Network_NetworkEndpoints) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Ne != nil { + nn1, err := m.Ne.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn1 + } + return i, nil +} + +func (m *Network_NetworkEndpoints_FromCidr) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0xa + i++ + i = encodeVarintNetwork(dAtA, i, uint64(len(m.FromCidr))) + i += copy(dAtA[i:], m.FromCidr) + return i, nil +} +func (m *Network_NetworkEndpoints_FromRegistry) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x12 + i++ + i = encodeVarintNetwork(dAtA, i, uint64(len(m.FromRegistry))) + i += copy(dAtA[i:], m.FromRegistry) + return i, nil +} +func (m *Network_IstioNetworkGateway) 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 *Network_IstioNetworkGateway) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Gw != nil { + nn2, err := m.Gw.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn2 + } + if m.Port != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintNetwork(dAtA, i, uint64(m.Port)) + } + if len(m.Locality) > 0 { + dAtA[i] = 0x22 + i++ + i = encodeVarintNetwork(dAtA, i, uint64(len(m.Locality))) + i += copy(dAtA[i:], m.Locality) + } + return i, nil +} + +func (m *Network_IstioNetworkGateway_RegistryServiceName) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0xa + i++ + i = encodeVarintNetwork(dAtA, i, uint64(len(m.RegistryServiceName))) + i += copy(dAtA[i:], m.RegistryServiceName) + return i, nil +} +func (m *Network_IstioNetworkGateway_Address) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x12 + i++ + i = encodeVarintNetwork(dAtA, i, uint64(len(m.Address))) + i += copy(dAtA[i:], m.Address) + return i, nil +} +func (m *MeshNetworks) 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 *MeshNetworks) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Networks) > 0 { + for k, _ := range m.Networks { + dAtA[i] = 0xa + i++ + v := m.Networks[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovNetwork(uint64(msgSize)) + } + mapSize := 1 + len(k) + sovNetwork(uint64(len(k))) + msgSize + i = encodeVarintNetwork(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintNetwork(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintNetwork(dAtA, i, uint64(v.Size())) + n3, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + } + } + return i, nil +} + +func encodeVarintNetwork(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 *Network) Size() (n int) { + var l int + _ = l + if len(m.Endpoints) > 0 { + for _, e := range m.Endpoints { + l = e.Size() + n += 1 + l + sovNetwork(uint64(l)) + } + } + if len(m.Gateways) > 0 { + for _, e := range m.Gateways { + l = e.Size() + n += 1 + l + sovNetwork(uint64(l)) + } + } + return n +} + +func (m *Network_NetworkEndpoints) Size() (n int) { + var l int + _ = l + if m.Ne != nil { + n += m.Ne.Size() + } + return n +} + +func (m *Network_NetworkEndpoints_FromCidr) Size() (n int) { + var l int + _ = l + l = len(m.FromCidr) + n += 1 + l + sovNetwork(uint64(l)) + return n +} +func (m *Network_NetworkEndpoints_FromRegistry) Size() (n int) { + var l int + _ = l + l = len(m.FromRegistry) + n += 1 + l + sovNetwork(uint64(l)) + return n +} +func (m *Network_IstioNetworkGateway) Size() (n int) { + var l int + _ = l + if m.Gw != nil { + n += m.Gw.Size() + } + if m.Port != 0 { + n += 1 + sovNetwork(uint64(m.Port)) + } + l = len(m.Locality) + if l > 0 { + n += 1 + l + sovNetwork(uint64(l)) + } + return n +} + +func (m *Network_IstioNetworkGateway_RegistryServiceName) Size() (n int) { + var l int + _ = l + l = len(m.RegistryServiceName) + n += 1 + l + sovNetwork(uint64(l)) + return n +} +func (m *Network_IstioNetworkGateway_Address) Size() (n int) { + var l int + _ = l + l = len(m.Address) + n += 1 + l + sovNetwork(uint64(l)) + return n +} +func (m *MeshNetworks) Size() (n int) { + var l int + _ = l + if len(m.Networks) > 0 { + for k, v := range m.Networks { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovNetwork(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovNetwork(uint64(len(k))) + l + n += mapEntrySize + 1 + sovNetwork(uint64(mapEntrySize)) + } + } + return n +} + +func sovNetwork(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozNetwork(x uint64) (n int) { + return sovNetwork(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Network) 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 ErrIntOverflowNetwork + } + 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: Network: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Network: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + 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 ErrIntOverflowNetwork + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNetwork + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Endpoints = append(m.Endpoints, &Network_NetworkEndpoints{}) + if err := m.Endpoints[len(m.Endpoints)-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 Gateways", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNetwork + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNetwork + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Gateways = append(m.Gateways, &Network_IstioNetworkGateway{}) + if err := m.Gateways[len(m.Gateways)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNetwork(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetwork + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Network_NetworkEndpoints) 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 ErrIntOverflowNetwork + } + 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: NetworkEndpoints: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NetworkEndpoints: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FromCidr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNetwork + } + 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 ErrInvalidLengthNetwork + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ne = &Network_NetworkEndpoints_FromCidr{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FromRegistry", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNetwork + } + 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 ErrInvalidLengthNetwork + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ne = &Network_NetworkEndpoints_FromRegistry{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNetwork(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetwork + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Network_IstioNetworkGateway) 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 ErrIntOverflowNetwork + } + 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: IstioNetworkGateway: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioNetworkGateway: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RegistryServiceName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNetwork + } + 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 ErrInvalidLengthNetwork + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Gw = &Network_IstioNetworkGateway_RegistryServiceName{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 2: + 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 ErrIntOverflowNetwork + } + 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 ErrInvalidLengthNetwork + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Gw = &Network_IstioNetworkGateway_Address{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) + } + m.Port = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNetwork + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Port |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + 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 ErrIntOverflowNetwork + } + 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 ErrInvalidLengthNetwork + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Locality = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNetwork(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetwork + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MeshNetworks) 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 ErrIntOverflowNetwork + } + 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: MeshNetworks: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MeshNetworks: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Networks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNetwork + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNetwork + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Networks == nil { + m.Networks = make(map[string]*Network) + } + var mapkey string + var mapvalue *Network + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNetwork + } + 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 ErrIntOverflowNetwork + } + 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 ErrInvalidLengthNetwork + } + 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 ErrIntOverflowNetwork + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthNetwork + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthNetwork + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &Network{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipNetwork(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetwork + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Networks[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNetwork(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNetwork + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipNetwork(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, ErrIntOverflowNetwork + } + 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, ErrIntOverflowNetwork + } + 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, ErrIntOverflowNetwork + } + 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, ErrInvalidLengthNetwork + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowNetwork + } + 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 := skipNetwork(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 ( + ErrInvalidLengthNetwork = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowNetwork = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("mesh/v1alpha1/network.proto", fileDescriptorNetwork) } + +var fileDescriptorNetwork = []byte{ + // 403 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xcf, 0x8e, 0xda, 0x30, + 0x10, 0xc6, 0xeb, 0x84, 0x96, 0x30, 0x80, 0x84, 0x8c, 0x2a, 0x45, 0x69, 0x8b, 0x10, 0x52, 0xa5, + 0x5c, 0x9a, 0x14, 0xda, 0x43, 0xd5, 0x23, 0x15, 0x6a, 0x2b, 0x5a, 0x0e, 0xee, 0xa9, 0x3d, 0x14, + 0xb9, 0xc4, 0x05, 0x8b, 0x24, 0x8e, 0x6c, 0x2f, 0x28, 0x0f, 0xb3, 0xb7, 0x7d, 0x86, 0x7d, 0x86, + 0x3d, 0xee, 0x23, 0xac, 0x78, 0x92, 0x55, 0xfe, 0xee, 0xb2, 0x42, 0x9c, 0x6c, 0xcf, 0xf7, 0xfd, + 0x66, 0xc6, 0x63, 0xc3, 0xab, 0x88, 0xa9, 0x8d, 0xbf, 0x1b, 0xd3, 0x30, 0xd9, 0xd0, 0xb1, 0x1f, + 0x33, 0xbd, 0x17, 0x72, 0xeb, 0x25, 0x52, 0x68, 0x81, 0xfb, 0x5c, 0x69, 0x2e, 0xbc, 0xcc, 0xe2, + 0x55, 0x96, 0xd1, 0x95, 0x09, 0xcd, 0x45, 0x61, 0xc3, 0x73, 0x68, 0xb1, 0x38, 0x48, 0x04, 0x8f, + 0xb5, 0xb2, 0x8d, 0xa1, 0xe9, 0xb6, 0x27, 0xef, 0xbc, 0x13, 0x90, 0x57, 0x02, 0xd5, 0x3a, 0xab, + 0x20, 0xf2, 0xc0, 0xe3, 0x1f, 0x60, 0xad, 0xa9, 0x66, 0x7b, 0x9a, 0x2a, 0xdb, 0xcc, 0x73, 0xbd, + 0x3f, 0x9b, 0xeb, 0x7b, 0xa6, 0x95, 0x87, 0xaf, 0x05, 0x48, 0xea, 0x0c, 0xce, 0x5f, 0xe8, 0x3d, + 0x2d, 0x86, 0xdf, 0x40, 0xeb, 0xbf, 0x14, 0xd1, 0x72, 0xc5, 0x03, 0x69, 0xa3, 0x21, 0x72, 0x5b, + 0xdf, 0x9e, 0x11, 0x2b, 0x0b, 0x7d, 0xe1, 0x81, 0xc4, 0x6f, 0xa1, 0x9b, 0xcb, 0x92, 0xad, 0xb9, + 0xd2, 0x32, 0xb5, 0x8d, 0xd2, 0xd2, 0xc9, 0xc2, 0xa4, 0x8c, 0x4e, 0x1b, 0x60, 0xc4, 0xcc, 0xb9, + 0x44, 0xd0, 0x3f, 0xd1, 0x01, 0xfe, 0x08, 0x2f, 0x2b, 0x7e, 0xa9, 0x98, 0xdc, 0xf1, 0x15, 0x5b, + 0xc6, 0x34, 0x62, 0x75, 0xbd, 0x7e, 0x25, 0xff, 0x2a, 0xd4, 0x05, 0x8d, 0x18, 0x76, 0xa0, 0x49, + 0x83, 0x40, 0x32, 0xa5, 0xea, 0xa2, 0x55, 0x00, 0x63, 0x68, 0x24, 0x42, 0x6a, 0xdb, 0x1c, 0x22, + 0xb7, 0x4b, 0xf2, 0x3d, 0x76, 0xc0, 0x0a, 0xc5, 0x8a, 0x86, 0x5c, 0xa7, 0x76, 0x23, 0x03, 0x48, + 0x7d, 0xce, 0xfa, 0x5b, 0xef, 0x47, 0xd7, 0x08, 0x3a, 0x3f, 0x99, 0xda, 0x94, 0xed, 0x29, 0x3c, + 0x07, 0xab, 0x7c, 0x5d, 0x65, 0xa3, 0x7c, 0xbc, 0xfe, 0xc9, 0xf1, 0x3e, 0x86, 0xaa, 0x59, 0xab, + 0x59, 0xac, 0x65, 0x4a, 0xea, 0x04, 0xce, 0x6f, 0xe8, 0x1e, 0x49, 0xb8, 0x07, 0xe6, 0x96, 0xa5, + 0xc5, 0x25, 0x49, 0xb6, 0xc5, 0x13, 0x78, 0xbe, 0xa3, 0xe1, 0x05, 0xcb, 0x2f, 0xd4, 0x9e, 0xbc, + 0x3e, 0xf7, 0x96, 0xa4, 0xb0, 0x7e, 0x36, 0x3e, 0xa1, 0xa9, 0x7b, 0x73, 0x18, 0xa0, 0xdb, 0xc3, + 0x00, 0xdd, 0x1d, 0x06, 0xe8, 0x8f, 0x53, 0x50, 0x5c, 0xf8, 0x34, 0xe1, 0xfe, 0xd1, 0x67, 0xfd, + 0xf7, 0x22, 0xff, 0xa5, 0x1f, 0xee, 0x03, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x70, 0x44, 0x24, 0xc4, + 0x02, 0x00, 0x00, +} diff --git a/mesh/v1alpha1/network.proto b/mesh/v1alpha1/network.proto new file mode 100644 index 0000000000..278fd033df --- /dev/null +++ b/mesh/v1alpha1/network.proto @@ -0,0 +1,113 @@ +// 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.mesh.v1alpha1; + +option go_package="istio.io/api/mesh/v1alpha1"; + +// Network provides information about the endpoints in a routable L3 +// network. A single routable L3 network can have one or more service +// registries. Note that the network has no relation to the locality of the +// endpoint. The endpoint locality will be obtained from the service +// registry. +message Network { + // NetworkEndpoints describes how the network associated with an endpoint + // should be inferred. An endpoint will be assigned to a network based on + // the following rules: + // + // 1. Implicitly: If the registry explicitly provides information about + // the network to which the endpoint belongs to. In some cases, its + // possible to indicate the network associated with the endpoint by + // adding ISTIO_META_NETWORK environment variable to the sidecar. + // + // 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 + // single network. + // + // b. By matching the IP against one of the CIDR ranges in a mesh + // config network. The CIDR ranges must not overlap and be assigned to + // a single network. + // + // (2) will override (1) if both are present. + message NetworkEndpoints { + oneof ne { + // A CIDR range for the set of endpoints in this network. The CIDR + // ranges for endpoints from different networks must not overlap. + string from_cidr = 1; + + // Add all endpoints from the specified registry into this network. + // The names of the registries should correspond to the secret name + // that was used to configure the registry (kubernetes multicluster) or + // supplied by MCP server. + string from_registry = 2; + } + } + + // REQUIRED: The list of endpoints in the network (obtained through the + // constituent service registries or from CIDR ranges). All endpoints in + // the network are directly accessible to one another. + repeated NetworkEndpoints endpoints = 2; + + // The gateway associated with this network. Traffic from remote networks + // will arrive at the specified gateway:port. All incoming traffic must + // use mTLS. + message IstioNetworkGateway { + oneof gw { + // A fully qualified domain name of the gateway service. Pilot will + // lookup the service from the service registries in the network and + // obtain the endpoint IPs of the gateway from the service + // registry. Note that while the service name is a fully qualified + // domain name, it need not be resolvable outside the orchestration + // platform for the registry. e.g., this could be + // istio-ingressgateway.istio-system.svc.cluster.local. + string registry_service_name = 1; + + // IP address or externally resolvable DNS address associated with the gateway. + string address = 2; + } + + // REQUIRED: The port associated with the gateway. + uint32 port = 3; + + // The locality associated with an explicitly specified gateway (i.e. ip) + string locality = 4; + } + + // REQUIRED: Set of gateways associated with the network. + repeated IstioNetworkGateway gateways = 3; +} + +// MeshNetworks (config map) provides information about the set of networks +// inside a mesh and how to route to endpoints in each network. For example +// +// MeshNetworks(file/config map): +// networks: +// - network1: +// - endpoints: +// - fromRegistry: registry1 #must match secret name in kubernetes +// - fromCidr: 192.168.100.0/22 #a VM network for example +// gateways: +// - registryServiceName: istio-ingressgateway.istio-system.svc.cluster.local +// port: 15443 +// locality: us-east-1a +message MeshNetworks { + // REQUIRED: The set of networks inside this mesh. Each network should + // have a unique name and information about how to infer the endpoints in + // the network as well as the gateways associated with the network. + map networks = 1; +} \ No newline at end of file diff --git a/python/istio_api/mesh/v1alpha1/mesh_pb2.py b/python/istio_api/mesh/v1alpha1/mesh_pb2.py deleted file mode 100644 index ab1d238ba7..0000000000 --- a/python/istio_api/mesh/v1alpha1/mesh_pb2.py +++ /dev/null @@ -1,155 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: mesh/v1alpha1/mesh.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -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='mesh/v1alpha1/mesh.proto', - package='istio.mesh.v1alpha1', - syntax='proto3', - serialized_pb=_b('\n\x18mesh/v1alpha1/mesh.proto\x12\x13istio.mesh.v1alpha1\"\xe0\x01\n\x07Network\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nregistries\x18\x02 \x03(\t\x12\x42\n\x08gateways\x18\x03 \x03(\x0b\x32\x30.istio.mesh.v1alpha1.Network.IstioNetworkGateway\x1ao\n\x13IstioNetworkGateway\x12\x1f\n\x15registry_service_name\x18\x01 \x01(\tH\x00\x12\x11\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x10\n\x08locality\x18\x04 \x01(\tB\x04\n\x02gwB\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') -) - - - - -_NETWORK_ISTIONETWORKGATEWAY = _descriptor.Descriptor( - name='IstioNetworkGateway', - full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='registry_service_name', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.registry_service_name', 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='address', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.address', 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='port', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.port', index=2, - number=3, 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), - _descriptor.FieldDescriptor( - name='locality', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.locality', 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=[ - _descriptor.OneofDescriptor( - name='gw', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.gw', - index=0, containing_type=None, fields=[]), - ], - serialized_start=163, - serialized_end=274, -) - -_NETWORK = _descriptor.Descriptor( - name='Network', - full_name='istio.mesh.v1alpha1.Network', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='istio.mesh.v1alpha1.Network.name', 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='registries', full_name='istio.mesh.v1alpha1.Network.registries', 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), - _descriptor.FieldDescriptor( - name='gateways', full_name='istio.mesh.v1alpha1.Network.gateways', 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=[_NETWORK_ISTIONETWORKGATEWAY, ], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=50, - serialized_end=274, -) - -_NETWORK_ISTIONETWORKGATEWAY.containing_type = _NETWORK -_NETWORK_ISTIONETWORKGATEWAY.oneofs_by_name['gw'].fields.append( - _NETWORK_ISTIONETWORKGATEWAY.fields_by_name['registry_service_name']) -_NETWORK_ISTIONETWORKGATEWAY.fields_by_name['registry_service_name'].containing_oneof = _NETWORK_ISTIONETWORKGATEWAY.oneofs_by_name['gw'] -_NETWORK_ISTIONETWORKGATEWAY.oneofs_by_name['gw'].fields.append( - _NETWORK_ISTIONETWORKGATEWAY.fields_by_name['address']) -_NETWORK_ISTIONETWORKGATEWAY.fields_by_name['address'].containing_oneof = _NETWORK_ISTIONETWORKGATEWAY.oneofs_by_name['gw'] -_NETWORK.fields_by_name['gateways'].message_type = _NETWORK_ISTIONETWORKGATEWAY -DESCRIPTOR.message_types_by_name['Network'] = _NETWORK -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Network = _reflection.GeneratedProtocolMessageType('Network', (_message.Message,), dict( - - IstioNetworkGateway = _reflection.GeneratedProtocolMessageType('IstioNetworkGateway', (_message.Message,), dict( - DESCRIPTOR = _NETWORK_ISTIONETWORKGATEWAY, - __module__ = 'mesh.v1alpha1.mesh_pb2' - # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.Network.IstioNetworkGateway) - )) - , - DESCRIPTOR = _NETWORK, - __module__ = 'mesh.v1alpha1.mesh_pb2' - # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.Network) - )) -_sym_db.RegisterMessage(Network) -_sym_db.RegisterMessage(Network.IstioNetworkGateway) - - -DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\032istio.io/api/mesh/v1alpha1')) -# @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/mesh/v1alpha1/network_pb2.py b/python/istio_api/mesh/v1alpha1/network_pb2.py new file mode 100644 index 0000000000..b41c6bd91b --- /dev/null +++ b/python/istio_api/mesh/v1alpha1/network_pb2.py @@ -0,0 +1,293 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: mesh/v1alpha1/network.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +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='mesh/v1alpha1/network.proto', + package='istio.mesh.v1alpha1', + syntax='proto3', + serialized_pb=_b('\n\x1bmesh/v1alpha1/network.proto\x12\x13istio.mesh.v1alpha1\"\xc8\x02\n\x07Network\x12@\n\tendpoints\x18\x02 \x03(\x0b\x32-.istio.mesh.v1alpha1.Network.NetworkEndpoints\x12\x42\n\x08gateways\x18\x03 \x03(\x0b\x32\x30.istio.mesh.v1alpha1.Network.IstioNetworkGateway\x1a\x46\n\x10NetworkEndpoints\x12\x13\n\tfrom_cidr\x18\x01 \x01(\tH\x00\x12\x17\n\rfrom_registry\x18\x02 \x01(\tH\x00\x42\x04\n\x02ne\x1ao\n\x13IstioNetworkGateway\x12\x1f\n\x15registry_service_name\x18\x01 \x01(\tH\x00\x12\x11\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x10\n\x08locality\x18\x04 \x01(\tB\x04\n\x02gw\"\xa0\x01\n\x0cMeshNetworks\x12\x41\n\x08networks\x18\x01 \x03(\x0b\x32/.istio.mesh.v1alpha1.MeshNetworks.NetworksEntry\x1aM\n\rNetworksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.istio.mesh.v1alpha1.Network:\x02\x38\x01\x42\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') +) + + + + +_NETWORK_NETWORKENDPOINTS = _descriptor.Descriptor( + name='NetworkEndpoints', + full_name='istio.mesh.v1alpha1.Network.NetworkEndpoints', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='from_cidr', full_name='istio.mesh.v1alpha1.Network.NetworkEndpoints.from_cidr', 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='from_registry', full_name='istio.mesh.v1alpha1.Network.NetworkEndpoints.from_registry', 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=[ + _descriptor.OneofDescriptor( + name='ne', full_name='istio.mesh.v1alpha1.Network.NetworkEndpoints.ne', + index=0, containing_type=None, fields=[]), + ], + serialized_start=198, + serialized_end=268, +) + +_NETWORK_ISTIONETWORKGATEWAY = _descriptor.Descriptor( + name='IstioNetworkGateway', + full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='registry_service_name', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.registry_service_name', 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='address', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.address', 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='port', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.port', index=2, + number=3, 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), + _descriptor.FieldDescriptor( + name='locality', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.locality', 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=[ + _descriptor.OneofDescriptor( + name='gw', full_name='istio.mesh.v1alpha1.Network.IstioNetworkGateway.gw', + index=0, containing_type=None, fields=[]), + ], + serialized_start=270, + serialized_end=381, +) + +_NETWORK = _descriptor.Descriptor( + name='Network', + full_name='istio.mesh.v1alpha1.Network', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='endpoints', full_name='istio.mesh.v1alpha1.Network.endpoints', index=0, + 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='gateways', full_name='istio.mesh.v1alpha1.Network.gateways', index=1, + 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=[_NETWORK_NETWORKENDPOINTS, _NETWORK_ISTIONETWORKGATEWAY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=53, + serialized_end=381, +) + + +_MESHNETWORKS_NETWORKSENTRY = _descriptor.Descriptor( + name='NetworksEntry', + full_name='istio.mesh.v1alpha1.MeshNetworks.NetworksEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.mesh.v1alpha1.MeshNetworks.NetworksEntry.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.mesh.v1alpha1.MeshNetworks.NetworksEntry.value', 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=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=467, + serialized_end=544, +) + +_MESHNETWORKS = _descriptor.Descriptor( + name='MeshNetworks', + full_name='istio.mesh.v1alpha1.MeshNetworks', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='networks', full_name='istio.mesh.v1alpha1.MeshNetworks.networks', 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=[_MESHNETWORKS_NETWORKSENTRY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=384, + serialized_end=544, +) + +_NETWORK_NETWORKENDPOINTS.containing_type = _NETWORK +_NETWORK_NETWORKENDPOINTS.oneofs_by_name['ne'].fields.append( + _NETWORK_NETWORKENDPOINTS.fields_by_name['from_cidr']) +_NETWORK_NETWORKENDPOINTS.fields_by_name['from_cidr'].containing_oneof = _NETWORK_NETWORKENDPOINTS.oneofs_by_name['ne'] +_NETWORK_NETWORKENDPOINTS.oneofs_by_name['ne'].fields.append( + _NETWORK_NETWORKENDPOINTS.fields_by_name['from_registry']) +_NETWORK_NETWORKENDPOINTS.fields_by_name['from_registry'].containing_oneof = _NETWORK_NETWORKENDPOINTS.oneofs_by_name['ne'] +_NETWORK_ISTIONETWORKGATEWAY.containing_type = _NETWORK +_NETWORK_ISTIONETWORKGATEWAY.oneofs_by_name['gw'].fields.append( + _NETWORK_ISTIONETWORKGATEWAY.fields_by_name['registry_service_name']) +_NETWORK_ISTIONETWORKGATEWAY.fields_by_name['registry_service_name'].containing_oneof = _NETWORK_ISTIONETWORKGATEWAY.oneofs_by_name['gw'] +_NETWORK_ISTIONETWORKGATEWAY.oneofs_by_name['gw'].fields.append( + _NETWORK_ISTIONETWORKGATEWAY.fields_by_name['address']) +_NETWORK_ISTIONETWORKGATEWAY.fields_by_name['address'].containing_oneof = _NETWORK_ISTIONETWORKGATEWAY.oneofs_by_name['gw'] +_NETWORK.fields_by_name['endpoints'].message_type = _NETWORK_NETWORKENDPOINTS +_NETWORK.fields_by_name['gateways'].message_type = _NETWORK_ISTIONETWORKGATEWAY +_MESHNETWORKS_NETWORKSENTRY.fields_by_name['value'].message_type = _NETWORK +_MESHNETWORKS_NETWORKSENTRY.containing_type = _MESHNETWORKS +_MESHNETWORKS.fields_by_name['networks'].message_type = _MESHNETWORKS_NETWORKSENTRY +DESCRIPTOR.message_types_by_name['Network'] = _NETWORK +DESCRIPTOR.message_types_by_name['MeshNetworks'] = _MESHNETWORKS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Network = _reflection.GeneratedProtocolMessageType('Network', (_message.Message,), dict( + + NetworkEndpoints = _reflection.GeneratedProtocolMessageType('NetworkEndpoints', (_message.Message,), dict( + DESCRIPTOR = _NETWORK_NETWORKENDPOINTS, + __module__ = 'mesh.v1alpha1.network_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.Network.NetworkEndpoints) + )) + , + + IstioNetworkGateway = _reflection.GeneratedProtocolMessageType('IstioNetworkGateway', (_message.Message,), dict( + DESCRIPTOR = _NETWORK_ISTIONETWORKGATEWAY, + __module__ = 'mesh.v1alpha1.network_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.Network.IstioNetworkGateway) + )) + , + DESCRIPTOR = _NETWORK, + __module__ = 'mesh.v1alpha1.network_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.Network) + )) +_sym_db.RegisterMessage(Network) +_sym_db.RegisterMessage(Network.NetworkEndpoints) +_sym_db.RegisterMessage(Network.IstioNetworkGateway) + +MeshNetworks = _reflection.GeneratedProtocolMessageType('MeshNetworks', (_message.Message,), dict( + + NetworksEntry = _reflection.GeneratedProtocolMessageType('NetworksEntry', (_message.Message,), dict( + DESCRIPTOR = _MESHNETWORKS_NETWORKSENTRY, + __module__ = 'mesh.v1alpha1.network_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshNetworks.NetworksEntry) + )) + , + DESCRIPTOR = _MESHNETWORKS, + __module__ = 'mesh.v1alpha1.network_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshNetworks) + )) +_sym_db.RegisterMessage(MeshNetworks) +_sym_db.RegisterMessage(MeshNetworks.NetworksEntry) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\032istio.io/api/mesh/v1alpha1')) +_MESHNETWORKS_NETWORKSENTRY.has_options = True +_MESHNETWORKS_NETWORKSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +# @@protoc_insertion_point(module_scope) From e9d86f9b88d5de0a1a18d49867866e3c9c1c18e2 Mon Sep 17 00:00:00 2001 From: Zhonghu Xu Date: Fri, 26 Oct 2018 00:15:21 +0800 Subject: [PATCH 02/11] Add HTTPRetry config to allow setting retryOn policy (#679) --- .../istio.networking.v1alpha3.pb.html | 13 + networking/v1alpha3/virtual_service.pb.go | 255 +++++++++++------- networking/v1alpha3/virtual_service.proto | 8 + .../v1alpha3/virtual_service_pb2.py | 35 ++- 4 files changed, 196 insertions(+), 115 deletions(-) diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index 31f7a5e7c4..68c5d11baa 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -1551,6 +1551,7 @@

HTTPRetry

retries: attempts: 3 perTryTimeout: 2s + retryOn: gateway-error,connect-failure,refused-stream
FieldTypeDescription
fromCidrstring (oneof) +

A CIDR range for the set of endpoints in this network. The CIDR +ranges for endpoints from different networks must not overlap.

+ +
fromRegistrystring (oneof) +

Add all endpoints from the specified registry into this network. +The names of the registries should correspond to the secret name +that was used to configure the registry (kubernetes multicluster) or +supplied by MCP server.

+
@@ -1578,6 +1579,18 @@

HTTPRetry

+ + + + + diff --git a/networking/v1alpha3/virtual_service.pb.go b/networking/v1alpha3/virtual_service.pb.go index 8e8b383293..68c99ae12f 100644 --- a/networking/v1alpha3/virtual_service.pb.go +++ b/networking/v1alpha3/virtual_service.pb.go @@ -1370,6 +1370,7 @@ func _StringMatch_OneofSizer(msg proto.Message) (n int) { // retries: // attempts: 3 // perTryTimeout: 2s +// retryOn: gateway-error,connect-failure,refused-stream // ``` // type HTTPRetry struct { @@ -1379,6 +1380,12 @@ type HTTPRetry struct { Attempts int32 `protobuf:"varint,1,opt,name=attempts,proto3" json:"attempts,omitempty"` // Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms. PerTryTimeout *google_protobuf.Duration `protobuf:"bytes,2,opt,name=per_try_timeout,json=perTryTimeout" json:"per_try_timeout,omitempty"` + // Specifies the conditions under which retry takes place. + // One or more policies can be specified using a ‘,’ delimited list. + // The supported policies can be found in + // "https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-on" + // and "https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-grpc-on" + RetryOn string `protobuf:"bytes,3,opt,name=retryOn,proto3" json:"retryOn,omitempty"` } func (m *HTTPRetry) Reset() { *m = HTTPRetry{} } @@ -1400,6 +1407,13 @@ func (m *HTTPRetry) GetPerTryTimeout() *google_protobuf.Duration { return nil } +func (m *HTTPRetry) GetRetryOn() string { + if m != nil { + return m.RetryOn + } + return "" +} + // Describes the Cross-Origin Resource Sharing (CORS) policy, for a given // service. Refer to // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS @@ -3034,6 +3048,12 @@ func (m *HTTPRetry) MarshalTo(dAtA []byte) (int, error) { } i += n17 } + if len(m.RetryOn) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(len(m.RetryOn))) + i += copy(dAtA[i:], m.RetryOn) + } return i, nil } @@ -3798,6 +3818,10 @@ func (m *HTTPRetry) Size() (n int) { l = m.PerTryTimeout.Size() n += 1 + l + sovVirtualService(uint64(l)) } + l = len(m.RetryOn) + if l > 0 { + n += 1 + l + sovVirtualService(uint64(l)) + } return n } @@ -7288,6 +7312,35 @@ func (m *HTTPRetry) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RetryOn", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVirtualService + } + 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 ErrInvalidLengthVirtualService + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RetryOn = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipVirtualService(dAtA[iNdEx:]) @@ -8273,107 +8326,107 @@ func init() { } var fileDescriptorVirtualService = []byte{ - // 1617 bytes of a gzipped FileDescriptorProto + // 1629 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x5f, 0x6f, 0xdb, 0x46, 0x12, 0x0f, 0x25, 0x51, 0xb6, 0x46, 0xb2, 0x63, 0xef, 0x39, 0x0e, 0xa3, 0x0b, 0x7c, 0x8e, 0x72, - 0xb9, 0xf3, 0x21, 0x17, 0x09, 0x67, 0xe7, 0xee, 0x8c, 0x36, 0x71, 0x62, 0xd9, 0x49, 0x94, 0x22, - 0x41, 0x03, 0xda, 0xcd, 0x43, 0x5f, 0x08, 0x8a, 0x5a, 0x4b, 0x4c, 0x28, 0x92, 0xdd, 0x5d, 0x5a, - 0xd6, 0x53, 0x81, 0xa2, 0x5f, 0xa0, 0x45, 0x5f, 0x8b, 0xa2, 0x9f, 0xa4, 0xaf, 0x7d, 0xec, 0x27, - 0x28, 0x82, 0x3c, 0xf6, 0x4b, 0xb4, 0xd8, 0x59, 0x52, 0xa2, 0x2d, 0x5b, 0x7f, 0xda, 0xb4, 0xe8, - 0x1b, 0x77, 0x77, 0x7e, 0xb3, 0xb3, 0xb3, 0xb3, 0xbf, 0x99, 0x21, 0xfc, 0xcb, 0xa7, 0xa2, 0x17, - 0xb0, 0xd7, 0xae, 0xdf, 0xae, 0x1d, 0xff, 0xc7, 0xf6, 0xc2, 0x8e, 0xbd, 0x55, 0x3b, 0x76, 0x99, - 0x88, 0x6c, 0xcf, 0xe2, 0x94, 0x1d, 0xbb, 0x0e, 0xad, 0x86, 0x2c, 0x10, 0x01, 0xb9, 0xe6, 0x72, - 0xe1, 0x06, 0xd5, 0x21, 0xa0, 0x9a, 0x00, 0xca, 0x6b, 0xed, 0x20, 0x68, 0x7b, 0xb4, 0x86, 0x82, - 0xcd, 0xe8, 0xa8, 0xd6, 0x8a, 0x98, 0x2d, 0xdc, 0xc0, 0x57, 0xd0, 0xd1, 0xf5, 0x1e, 0xb3, 0xc3, - 0x90, 0x32, 0xae, 0xd6, 0x2b, 0x3f, 0x69, 0xb0, 0xf8, 0x52, 0x6d, 0x7a, 0xa0, 0xf6, 0x24, 0x2b, - 0xa0, 0x77, 0x02, 0x2e, 0xb8, 0xa1, 0xad, 0x67, 0x37, 0x0a, 0xa6, 0x1a, 0x90, 0x32, 0xcc, 0xb7, - 0x6d, 0x41, 0x7b, 0x76, 0x9f, 0x1b, 0x19, 0x5c, 0x18, 0x8c, 0xc9, 0x36, 0xe4, 0x3a, 0x42, 0x84, - 0x46, 0x76, 0x3d, 0xbb, 0x51, 0xdc, 0xfc, 0x7b, 0xf5, 0x42, 0x73, 0xab, 0x8d, 0xc3, 0xc3, 0x17, - 0x66, 0x10, 0x09, 0x6a, 0x22, 0x82, 0xfc, 0x17, 0xb2, 0xc2, 0x09, 0x8d, 0x1c, 0x02, 0x6f, 0x8e, - 0x01, 0x1e, 0xee, 0xc5, 0x38, 0x29, 0x8f, 0x30, 0x8f, 0x1b, 0xfa, 0x64, 0xd8, 0xb3, 0x83, 0x04, - 0xe6, 0xf1, 0xca, 0x31, 0x14, 0xf7, 0x29, 0x17, 0xae, 0x8f, 0x1e, 0x22, 0x04, 0x72, 0xf2, 0x6c, - 0x86, 0xb6, 0xae, 0x6d, 0x14, 0x4c, 0xfc, 0x26, 0xab, 0x90, 0xe7, 0x51, 0x93, 0x53, 0x61, 0x64, - 0x70, 0x36, 0x1e, 0x91, 0xf7, 0x21, 0x17, 0x06, 0x4c, 0x18, 0xd9, 0x75, 0x6d, 0xa3, 0xb8, 0xf9, - 0xcf, 0x31, 0x5b, 0xbe, 0x08, 0x98, 0x38, 0xa0, 0x1e, 0x75, 0x44, 0xc0, 0x4c, 0x04, 0x55, 0xbe, - 0x05, 0x28, 0x0c, 0x4e, 0x4e, 0x76, 0x41, 0xef, 0xda, 0xc2, 0xe9, 0xa0, 0x7f, 0x8b, 0x9b, 0xb7, - 0x27, 0xb8, 0xeb, 0xb9, 0x94, 0x35, 0xe9, 0x27, 0x11, 0xe5, 0xc2, 0x54, 0x48, 0xf2, 0x08, 0x74, - 0x26, 0x75, 0xe1, 0x4d, 0x14, 0x37, 0x6b, 0xd3, 0x78, 0x3c, 0x75, 0x72, 0x53, 0xa1, 0xc9, 0x1e, - 0xcc, 0x33, 0xda, 0x72, 0x19, 0x75, 0xa6, 0x39, 0x18, 0x6a, 0x8a, 0xc5, 0xcd, 0x01, 0x90, 0x3c, - 0x84, 0x39, 0x46, 0x7b, 0xcc, 0x15, 0xd4, 0xc8, 0xa1, 0x8e, 0x7f, 0x4c, 0xd4, 0x81, 0xd2, 0x66, - 0x02, 0x23, 0xb7, 0x61, 0xb9, 0x47, 0x9b, 0x3c, 0x70, 0x5e, 0x53, 0x61, 0x45, 0x61, 0x9b, 0xd9, - 0x2d, 0x6a, 0xe8, 0xeb, 0xda, 0xc6, 0xbc, 0xb9, 0x34, 0x58, 0xf8, 0x48, 0xcd, 0x93, 0x2d, 0x98, - 0x13, 0x6e, 0x97, 0x06, 0x91, 0x30, 0xf2, 0xb8, 0xdd, 0xb5, 0xaa, 0x0a, 0xf1, 0x6a, 0x12, 0xe2, - 0xd5, 0xfd, 0xf8, 0x09, 0x98, 0x89, 0x24, 0xd9, 0x91, 0x36, 0x0a, 0xe6, 0x52, 0x6e, 0xcc, 0x21, - 0x68, 0x62, 0x8c, 0x52, 0xc1, 0xfa, 0x66, 0x02, 0x22, 0x7b, 0xa0, 0x1f, 0xd9, 0x91, 0x27, 0x8c, - 0x79, 0x44, 0xdf, 0x99, 0x80, 0x7e, 0x2c, 0x65, 0x9f, 0xfa, 0xaf, 0xa8, 0xa3, 0xbc, 0x8d, 0x58, - 0xb2, 0x03, 0xf9, 0xae, 0xcb, 0x58, 0xc0, 0x8c, 0xc2, 0x44, 0x3f, 0xa5, 0x2f, 0x2b, 0x46, 0x91, - 0xc7, 0x50, 0x74, 0x02, 0xc6, 0xad, 0x30, 0xf0, 0x5c, 0xa7, 0x6f, 0x00, 0x2a, 0xb9, 0x35, 0x46, - 0xc9, 0x5e, 0xc0, 0xf8, 0x0b, 0x14, 0x36, 0xc1, 0x19, 0x7c, 0x93, 0x26, 0x2c, 0x4a, 0x0a, 0xf0, - 0x5b, 0x56, 0x87, 0xda, 0x2d, 0xca, 0xb8, 0x51, 0xc4, 0x28, 0xfa, 0xff, 0x34, 0x51, 0x54, 0xdd, - 0x45, 0x68, 0x43, 0x21, 0x1f, 0xf9, 0x82, 0xf5, 0xeb, 0x19, 0x43, 0x33, 0x17, 0xec, 0xf4, 0x3c, - 0xf9, 0x1f, 0x5c, 0x65, 0xb4, 0x1b, 0x1c, 0x53, 0x8b, 0x51, 0x1e, 0x06, 0x3e, 0xa7, 0x83, 0xcd, - 0x4a, 0x48, 0x1e, 0x57, 0xd4, 0xb2, 0x19, 0xaf, 0x26, 0xb8, 0x1e, 0x5c, 0x8d, 0x6d, 0x1b, 0xc1, - 0x2d, 0xa0, 0x91, 0x0f, 0x66, 0x30, 0xf2, 0x8c, 0x72, 0x34, 0xd6, 0xbc, 0x62, 0x9f, 0xb7, 0x46, - 0xee, 0xc2, 0xea, 0xc0, 0x60, 0x7c, 0x6a, 0x83, 0x7d, 0x17, 0xd1, 0xde, 0x95, 0xc4, 0x5e, 0x5c, - 0x4c, 0x50, 0x02, 0x56, 0x07, 0xe6, 0x9e, 0x46, 0x5d, 0x46, 0x6b, 0x77, 0x66, 0xb2, 0x36, 0xad, - 0x5a, 0x19, 0xbb, 0x62, 0x9f, 0xb3, 0x54, 0x7e, 0x08, 0x64, 0xf4, 0x16, 0xc8, 0x12, 0x64, 0x5f, - 0xd3, 0x7e, 0x4c, 0x66, 0xf2, 0x53, 0x12, 0xf9, 0xb1, 0xed, 0x45, 0x34, 0xa6, 0x32, 0x35, 0x78, - 0x2f, 0xb3, 0xad, 0x95, 0x1b, 0x50, 0xbe, 0xd8, 0x45, 0x33, 0x69, 0x7a, 0x02, 0xd7, 0x2e, 0x34, - 0x7f, 0x16, 0x45, 0x95, 0x2f, 0x35, 0x98, 0x4f, 0xd8, 0x5a, 0xbe, 0xb7, 0x34, 0x45, 0xde, 0x19, - 0xcf, 0xf0, 0xc8, 0x90, 0xbb, 0x42, 0x30, 0xb7, 0x19, 0x09, 0xca, 0x13, 0x92, 0xdc, 0x3d, 0x4d, - 0x92, 0xe3, 0x78, 0xf6, 0x02, 0x82, 0xac, 0x7c, 0x21, 0x8d, 0x8a, 0x33, 0x0f, 0xa9, 0x9f, 0x36, - 0xea, 0xdf, 0x63, 0xf4, 0x3d, 0xbb, 0xfb, 0xfb, 0xd9, 0xf4, 0x8d, 0x0e, 0x4b, 0x67, 0xf3, 0x02, - 0xd9, 0x86, 0x6c, 0xc4, 0x5c, 0xf4, 0xf4, 0x78, 0x62, 0x39, 0x10, 0xcc, 0xf5, 0xdb, 0x0a, 0x2b, - 0x21, 0x92, 0x95, 0xb8, 0xd3, 0xa1, 0x5d, 0x75, 0x25, 0xd3, 0x83, 0x63, 0x14, 0xb2, 0x1a, 0x15, - 0x9d, 0xa0, 0x15, 0x67, 0x90, 0xa9, 0xf1, 0x0a, 0x45, 0xf6, 0xa1, 0x60, 0x47, 0xa2, 0x13, 0x30, - 0x57, 0xf4, 0xa7, 0x48, 0x20, 0x69, 0x15, 0x43, 0x20, 0x31, 0x61, 0x2e, 0x79, 0x79, 0xaa, 0x28, - 0xd8, 0x9e, 0x21, 0xab, 0x56, 0x4f, 0xbd, 0xb9, 0x44, 0x91, 0x2c, 0x0f, 0x30, 0xe5, 0xcb, 0x34, - 0xb3, 0xa0, 0x32, 0x39, 0x69, 0xc2, 0x02, 0x0f, 0x22, 0xe6, 0x50, 0xcb, 0xb3, 0x9b, 0xd4, 0x93, - 0xe9, 0x44, 0xee, 0x76, 0x7f, 0x96, 0xdd, 0x0e, 0x50, 0xc1, 0x33, 0xc4, 0xab, 0x2d, 0x4b, 0x3c, - 0x35, 0x75, 0xaa, 0xd2, 0x9a, 0x3f, 0x5d, 0x69, 0x95, 0x9b, 0x50, 0x9a, 0xf0, 0xc2, 0xee, 0xa5, - 0x5f, 0xd8, 0xf4, 0xbe, 0x4c, 0x3d, 0xe9, 0x07, 0xb0, 0x3c, 0x62, 0xe2, 0x4c, 0x4f, 0xf9, 0xe7, - 0x1c, 0xac, 0x9c, 0x57, 0x76, 0x90, 0x06, 0x14, 0x5b, 0xc3, 0xe1, 0x14, 0xd1, 0x9a, 0x0e, 0xff, - 0x34, 0x54, 0x96, 0x69, 0x3d, 0xea, 0xb6, 0x3b, 0xaa, 0x4c, 0xd3, 0xcd, 0x78, 0x34, 0x2e, 0xef, - 0x64, 0xc7, 0xe5, 0x9d, 0xcf, 0xb4, 0x8b, 0x13, 0x8f, 0x2a, 0x4e, 0x3f, 0x98, 0xb1, 0xc6, 0x7a, - 0xa7, 0x39, 0x48, 0x1f, 0x93, 0x83, 0x3e, 0xbd, 0x30, 0x07, 0xe5, 0xd1, 0xf0, 0xa7, 0xbf, 0xd6, - 0xf0, 0x69, 0xd3, 0xd1, 0x9f, 0x30, 0x99, 0x08, 0x58, 0xfa, 0xe3, 0x83, 0xaf, 0xf2, 0x5d, 0x06, - 0x96, 0x47, 0x98, 0x9f, 0xd4, 0xe0, 0x2f, 0x29, 0xb0, 0xc5, 0xa3, 0xa6, 0x4f, 0x07, 0xcd, 0x15, - 0x49, 0x2d, 0x1d, 0xa8, 0x95, 0x01, 0xef, 0x64, 0x52, 0xbc, 0x73, 0x73, 0xc0, 0x3b, 0x0a, 0x8f, - 0x64, 0x5b, 0x48, 0x88, 0x43, 0x21, 0x89, 0x73, 0x96, 0x9c, 0x72, 0x13, 0x8b, 0x90, 0x11, 0x73, - 0x67, 0x62, 0x27, 0xfd, 0x0c, 0x3b, 0xfd, 0x66, 0xe6, 0xf8, 0x31, 0x03, 0x64, 0x34, 0xa1, 0x93, - 0xbf, 0x42, 0x81, 0xfb, 0xae, 0x95, 0xee, 0x4a, 0xe7, 0xb9, 0xef, 0x36, 0xb0, 0x31, 0xbd, 0xc0, - 0xbf, 0x99, 0x89, 0xfe, 0xcd, 0x8e, 0xf3, 0x6f, 0xee, 0x1c, 0xff, 0xb6, 0xce, 0xfa, 0x57, 0x9f, - 0x58, 0x92, 0x8e, 0x1e, 0x66, 0x26, 0x07, 0xe7, 0xdf, 0xb5, 0x83, 0x77, 0xa0, 0x94, 0x6e, 0xe3, - 0x24, 0x36, 0xa9, 0x1b, 0x0a, 0xaa, 0x1e, 0xb8, 0x9e, 0xce, 0xc7, 0x0a, 0x3f, 0x9c, 0xa8, 0xdc, - 0x87, 0x62, 0xaa, 0x85, 0x9b, 0x19, 0x4e, 0xa1, 0x98, 0x4a, 0x3a, 0x64, 0x15, 0x74, 0x7a, 0x62, - 0x3b, 0x71, 0x07, 0xde, 0xb8, 0x64, 0xaa, 0x21, 0x31, 0x20, 0x1f, 0x32, 0x7a, 0xe4, 0x9e, 0x28, - 0x0d, 0x8d, 0x4b, 0x66, 0x3c, 0x96, 0x08, 0x46, 0xdb, 0xf4, 0x44, 0xc5, 0xbf, 0x44, 0xe0, 0xb0, - 0x5e, 0x02, 0xc0, 0x02, 0xcb, 0x12, 0xfd, 0x90, 0x56, 0x5e, 0xc5, 0xed, 0xb6, 0x6c, 0xe2, 0xa4, - 0x3f, 0x6d, 0x21, 0x68, 0x37, 0xc4, 0xd8, 0x91, 0xef, 0x75, 0x30, 0x26, 0xbb, 0x70, 0x39, 0xa4, - 0xcc, 0x12, 0xac, 0x6f, 0x25, 0x4d, 0x65, 0x66, 0x52, 0x53, 0xb9, 0x10, 0x52, 0x76, 0xc8, 0xfa, - 0x87, 0x4a, 0xbe, 0xf2, 0x75, 0x06, 0x60, 0xd8, 0x68, 0x91, 0x1b, 0x50, 0xb2, 0x3d, 0x2f, 0xe8, - 0x59, 0x01, 0x73, 0xdb, 0xae, 0x1f, 0x47, 0x6b, 0x11, 0xe7, 0x3e, 0xc4, 0x29, 0x19, 0x6b, 0x4a, - 0x44, 0x55, 0x40, 0x49, 0xa8, 0x2a, 0xdc, 0x73, 0x35, 0x37, 0x14, 0x3a, 0x9d, 0xbe, 0x94, 0x50, - 0x42, 0xfd, 0xb7, 0x60, 0x91, 0x9e, 0x84, 0xc1, 0x99, 0x5c, 0x55, 0x30, 0x17, 0xd4, 0x6c, 0x22, - 0xb6, 0x09, 0x73, 0x5d, 0xfb, 0xc4, 0xb2, 0xdb, 0xaa, 0xab, 0x1e, 0x7b, 0xba, 0x7c, 0xd7, 0x3e, - 0xd9, 0x6d, 0x53, 0xf2, 0x04, 0x96, 0xd5, 0xfe, 0x0e, 0xa3, 0x2d, 0xea, 0x0b, 0xd7, 0xf6, 0x78, - 0xdc, 0x70, 0x97, 0x47, 0xd0, 0xf5, 0x20, 0xf0, 0x5e, 0xca, 0x18, 0x33, 0x97, 0x10, 0xb4, 0x37, - 0xc4, 0x54, 0xbe, 0xd2, 0x81, 0x8c, 0xf6, 0xc4, 0xe4, 0x29, 0xe8, 0x2d, 0xea, 0xd9, 0xfd, 0x98, - 0x87, 0xb7, 0x66, 0xea, 0xa8, 0xab, 0xfb, 0x12, 0x6a, 0x2a, 0x0d, 0x52, 0x95, 0xdd, 0x4c, 0x08, - 0x73, 0x66, 0x55, 0xbb, 0x12, 0x6a, 0x2a, 0x0d, 0xe5, 0xcf, 0x33, 0xa0, 0xa3, 0x6e, 0x72, 0x1d, - 0xe6, 0x42, 0xca, 0x1c, 0xea, 0xab, 0xe0, 0xd4, 0xb1, 0xc9, 0x4d, 0xa6, 0xc8, 0x3d, 0x28, 0x1e, - 0xb9, 0x27, 0xb4, 0x65, 0xa9, 0x33, 0x4c, 0x8a, 0x99, 0xc6, 0x25, 0x13, 0x50, 0x5e, 0xe9, 0x6e, - 0xc0, 0xb2, 0xbc, 0x20, 0x5f, 0xb9, 0x28, 0xd6, 0x91, 0x9d, 0xac, 0x63, 0x29, 0x85, 0x52, 0x9a, - 0xea, 0x00, 0xb1, 0x49, 0xc3, 0xcb, 0xad, 0x8c, 0xfb, 0x37, 0xa5, 0x84, 0xcd, 0x14, 0xaa, 0xbe, - 0x0c, 0x97, 0x3b, 0x42, 0x84, 0xca, 0x0c, 0x7c, 0x3f, 0xe5, 0x37, 0x1a, 0xe8, 0xe8, 0x97, 0x09, - 0x6e, 0xb8, 0x01, 0x45, 0x84, 0x72, 0x61, 0x8b, 0x88, 0xab, 0x6c, 0x28, 0xcf, 0x2a, 0x27, 0x0f, - 0x70, 0x4e, 0x8a, 0xb4, 0x59, 0xe8, 0x24, 0x22, 0xc9, 0xb3, 0x05, 0x39, 0x39, 0x14, 0x91, 0x80, - 0x4d, 0x8b, 0xe2, 0xcf, 0x91, 0x5c, 0x22, 0x82, 0x93, 0x8f, 0xf0, 0xd7, 0xc7, 0xbb, 0x38, 0x67, - 0x09, 0x00, 0x37, 0x50, 0x14, 0xf1, 0x18, 0x4a, 0xe9, 0x1f, 0x75, 0x92, 0x72, 0xfc, 0xa8, 0xdb, - 0xa4, 0x0c, 0xcf, 0xb9, 0x20, 0x29, 0x47, 0x8d, 0xc9, 0x0a, 0xe4, 0x7c, 0x3b, 0x6e, 0x8f, 0xa4, - 0x5d, 0x38, 0xaa, 0xe7, 0x55, 0x12, 0xa9, 0xfc, 0x0d, 0xe6, 0xe2, 0xcd, 0x86, 0xac, 0x2b, 0x35, - 0x68, 0x31, 0xeb, 0xd6, 0xab, 0xdf, 0xbf, 0x5d, 0xd3, 0x7e, 0x78, 0xbb, 0xa6, 0xbd, 0x79, 0xbb, - 0xa6, 0x7d, 0xbc, 0xae, 0x6c, 0x76, 0x83, 0x9a, 0x1d, 0xba, 0xb5, 0x73, 0xfe, 0x00, 0x37, 0xf3, - 0x78, 0xf3, 0x5b, 0xbf, 0x04, 0x00, 0x00, 0xff, 0xff, 0x43, 0x4f, 0x80, 0x3f, 0x1f, 0x16, 0x00, - 0x00, + 0xb9, 0xf3, 0x21, 0x17, 0x09, 0x67, 0xe7, 0xee, 0x8c, 0xbb, 0xc4, 0x89, 0x65, 0x27, 0x51, 0x8a, + 0x04, 0x09, 0x68, 0x37, 0x0f, 0x7d, 0x21, 0x28, 0x6a, 0x2d, 0xb1, 0xa1, 0x48, 0x76, 0x77, 0x69, + 0x59, 0x4f, 0x05, 0x8a, 0x7c, 0x81, 0x16, 0x7d, 0x2d, 0x8a, 0x7e, 0x92, 0xbe, 0xf6, 0xb1, 0x9f, + 0xa0, 0x08, 0xf2, 0xd8, 0x2f, 0xd1, 0x62, 0x67, 0x49, 0x89, 0xb6, 0x6c, 0xfd, 0x69, 0xd3, 0xa2, + 0x6f, 0xdc, 0xdd, 0xf9, 0xcd, 0xce, 0xce, 0xce, 0xfe, 0x66, 0x86, 0xf0, 0x0f, 0x9f, 0x8a, 0x5e, + 0xc0, 0x5e, 0xbb, 0x7e, 0xbb, 0x76, 0xfc, 0x2f, 0xdb, 0x0b, 0x3b, 0xf6, 0x56, 0xed, 0xd8, 0x65, + 0x22, 0xb2, 0x3d, 0x8b, 0x53, 0x76, 0xec, 0x3a, 0xb4, 0x1a, 0xb2, 0x40, 0x04, 0xe4, 0x9a, 0xcb, + 0x85, 0x1b, 0x54, 0x87, 0x80, 0x6a, 0x02, 0x28, 0xaf, 0xb5, 0x83, 0xa0, 0xed, 0xd1, 0x1a, 0x0a, + 0x36, 0xa3, 0xa3, 0x5a, 0x2b, 0x62, 0xb6, 0x70, 0x03, 0x5f, 0x41, 0x47, 0xd7, 0x7b, 0xcc, 0x0e, + 0x43, 0xca, 0xb8, 0x5a, 0xaf, 0xfc, 0xa8, 0xc1, 0xe2, 0x2b, 0xb5, 0xe9, 0x81, 0xda, 0x93, 0xac, + 0x80, 0xde, 0x09, 0xb8, 0xe0, 0x86, 0xb6, 0x9e, 0xdd, 0x28, 0x98, 0x6a, 0x40, 0xca, 0x30, 0xdf, + 0xb6, 0x05, 0xed, 0xd9, 0x7d, 0x6e, 0x64, 0x70, 0x61, 0x30, 0x26, 0xdb, 0x90, 0xeb, 0x08, 0x11, + 0x1a, 0xd9, 0xf5, 0xec, 0x46, 0x71, 0xf3, 0xaf, 0xd5, 0x0b, 0xcd, 0xad, 0x36, 0x0e, 0x0f, 0x5f, + 0x9a, 0x41, 0x24, 0xa8, 0x89, 0x08, 0xf2, 0x6f, 0xc8, 0x0a, 0x27, 0x34, 0x72, 0x08, 0xbc, 0x39, + 0x06, 0x78, 0xb8, 0x17, 0xe3, 0xa4, 0x3c, 0xc2, 0x3c, 0x6e, 0xe8, 0x93, 0x61, 0xcf, 0x0e, 0x12, + 0x98, 0xc7, 0x2b, 0xc7, 0x50, 0xdc, 0xa7, 0x5c, 0xb8, 0x3e, 0x7a, 0x88, 0x10, 0xc8, 0xc9, 0xb3, + 0x19, 0xda, 0xba, 0xb6, 0x51, 0x30, 0xf1, 0x9b, 0xac, 0x42, 0x9e, 0x47, 0x4d, 0x4e, 0x85, 0x91, + 0xc1, 0xd9, 0x78, 0x44, 0xfe, 0x0f, 0xb9, 0x30, 0x60, 0xc2, 0xc8, 0xae, 0x6b, 0x1b, 0xc5, 0xcd, + 0xbf, 0x8f, 0xd9, 0xf2, 0x65, 0xc0, 0xc4, 0x01, 0xf5, 0xa8, 0x23, 0x02, 0x66, 0x22, 0xa8, 0xf2, + 0x0d, 0x40, 0x61, 0x70, 0x72, 0xb2, 0x0b, 0x7a, 0xd7, 0x16, 0x4e, 0x07, 0xfd, 0x5b, 0xdc, 0xbc, + 0x3d, 0xc1, 0x5d, 0xcf, 0xa5, 0xac, 0x49, 0x3f, 0x89, 0x28, 0x17, 0xa6, 0x42, 0x92, 0x47, 0xa0, + 0x33, 0xa9, 0x0b, 0x6f, 0xa2, 0xb8, 0x59, 0x9b, 0xc6, 0xe3, 0xa9, 0x93, 0x9b, 0x0a, 0x4d, 0xf6, + 0x60, 0x9e, 0xd1, 0x96, 0xcb, 0xa8, 0x33, 0xcd, 0xc1, 0x50, 0x53, 0x2c, 0x6e, 0x0e, 0x80, 0xe4, + 0x21, 0xcc, 0x31, 0xda, 0x63, 0xae, 0xa0, 0x46, 0x0e, 0x75, 0xfc, 0x6d, 0xa2, 0x0e, 0x94, 0x36, + 0x13, 0x18, 0xb9, 0x0d, 0xcb, 0x3d, 0xda, 0xe4, 0x81, 0xf3, 0x9a, 0x0a, 0x2b, 0x0a, 0xdb, 0xcc, + 0x6e, 0x51, 0x43, 0x5f, 0xd7, 0x36, 0xe6, 0xcd, 0xa5, 0xc1, 0xc2, 0x87, 0x6a, 0x9e, 0x6c, 0xc1, + 0x9c, 0x70, 0xbb, 0x34, 0x88, 0x84, 0x91, 0xc7, 0xed, 0xae, 0x55, 0x55, 0x88, 0x57, 0x93, 0x10, + 0xaf, 0xee, 0xc7, 0x4f, 0xc0, 0x4c, 0x24, 0xc9, 0x8e, 0xb4, 0x51, 0x30, 0x97, 0x72, 0x63, 0x0e, + 0x41, 0x13, 0x63, 0x94, 0x0a, 0xd6, 0x37, 0x13, 0x10, 0xd9, 0x03, 0xfd, 0xc8, 0x8e, 0x3c, 0x61, + 0xcc, 0x23, 0xfa, 0xce, 0x04, 0xf4, 0x63, 0x29, 0xfb, 0xd4, 0xff, 0x98, 0x3a, 0xca, 0xdb, 0x88, + 0x25, 0x3b, 0x90, 0xef, 0xba, 0x8c, 0x05, 0xcc, 0x28, 0x4c, 0xf4, 0x53, 0xfa, 0xb2, 0x62, 0x14, + 0x79, 0x0c, 0x45, 0x27, 0x60, 0xdc, 0x0a, 0x03, 0xcf, 0x75, 0xfa, 0x06, 0xa0, 0x92, 0x5b, 0x63, + 0x94, 0xec, 0x05, 0x8c, 0xbf, 0x44, 0x61, 0x13, 0x9c, 0xc1, 0x37, 0x69, 0xc2, 0xa2, 0xa4, 0x00, + 0xbf, 0x65, 0x75, 0xa8, 0xdd, 0xa2, 0x8c, 0x1b, 0x45, 0x8c, 0xa2, 0xff, 0x4e, 0x13, 0x45, 0xd5, + 0x5d, 0x84, 0x36, 0x14, 0xf2, 0x91, 0x2f, 0x58, 0xbf, 0x9e, 0x31, 0x34, 0x73, 0xc1, 0x4e, 0xcf, + 0x93, 0xff, 0xc0, 0x55, 0x46, 0xbb, 0xc1, 0x31, 0xb5, 0x18, 0xe5, 0x61, 0xe0, 0x73, 0x3a, 0xd8, + 0xac, 0x84, 0xe4, 0x71, 0x45, 0x2d, 0x9b, 0xf1, 0x6a, 0x82, 0xeb, 0xc1, 0xd5, 0xd8, 0xb6, 0x11, + 0xdc, 0x02, 0x1a, 0xf9, 0x60, 0x06, 0x23, 0xcf, 0x28, 0x47, 0x63, 0xcd, 0x2b, 0xf6, 0x79, 0x6b, + 0xe4, 0x2e, 0xac, 0x0e, 0x0c, 0xc6, 0xa7, 0x36, 0xd8, 0x77, 0x11, 0xed, 0x5d, 0x49, 0xec, 0xc5, + 0xc5, 0x04, 0x25, 0x60, 0x75, 0x60, 0xee, 0x69, 0xd4, 0x65, 0xb4, 0x76, 0x67, 0x26, 0x6b, 0xd3, + 0xaa, 0x95, 0xb1, 0x2b, 0xf6, 0x39, 0x4b, 0xe5, 0x87, 0x40, 0x46, 0x6f, 0x81, 0x2c, 0x41, 0xf6, + 0x35, 0xed, 0xc7, 0x64, 0x26, 0x3f, 0x25, 0x91, 0x1f, 0xdb, 0x5e, 0x44, 0x63, 0x2a, 0x53, 0x83, + 0xff, 0x65, 0xb6, 0xb5, 0x72, 0x03, 0xca, 0x17, 0xbb, 0x68, 0x26, 0x4d, 0x4f, 0xe0, 0xda, 0x85, + 0xe6, 0xcf, 0xa2, 0xa8, 0xf2, 0x85, 0x06, 0xf3, 0x09, 0x5b, 0xcb, 0xf7, 0x96, 0xa6, 0xc8, 0x3b, + 0xe3, 0x19, 0x1e, 0x19, 0x72, 0x57, 0x08, 0xe6, 0x36, 0x23, 0x41, 0x79, 0x42, 0x92, 0xbb, 0xa7, + 0x49, 0x72, 0x1c, 0xcf, 0x5e, 0x40, 0x90, 0x95, 0xcf, 0xa5, 0x51, 0x71, 0xe6, 0x21, 0xf5, 0xd3, + 0x46, 0xfd, 0x73, 0x8c, 0xbe, 0x67, 0x77, 0x7f, 0x3b, 0x9b, 0xbe, 0xd6, 0x61, 0xe9, 0x6c, 0x5e, + 0x20, 0xdb, 0x90, 0x8d, 0x98, 0x8b, 0x9e, 0x1e, 0x4f, 0x2c, 0x07, 0x82, 0xb9, 0x7e, 0x5b, 0x61, + 0x25, 0x44, 0xb2, 0x12, 0x77, 0x3a, 0xb4, 0xab, 0xae, 0x64, 0x7a, 0x70, 0x8c, 0x42, 0x56, 0xa3, + 0xa2, 0x13, 0xb4, 0xe2, 0x0c, 0x32, 0x35, 0x5e, 0xa1, 0xc8, 0x3e, 0x14, 0xec, 0x48, 0x74, 0x02, + 0xe6, 0x8a, 0xfe, 0x14, 0x09, 0x24, 0xad, 0x62, 0x08, 0x24, 0x26, 0xcc, 0x25, 0x2f, 0x4f, 0x15, + 0x05, 0xdb, 0x33, 0x64, 0xd5, 0xea, 0xa9, 0x37, 0x97, 0x28, 0x92, 0xe5, 0x01, 0xa6, 0x7c, 0x99, + 0x66, 0x16, 0x54, 0x26, 0x27, 0x4d, 0x58, 0xe0, 0x41, 0xc4, 0x1c, 0x6a, 0x79, 0x76, 0x93, 0x7a, + 0x32, 0x9d, 0xc8, 0xdd, 0xee, 0xcf, 0xb2, 0xdb, 0x01, 0x2a, 0x78, 0x86, 0x78, 0xb5, 0x65, 0x89, + 0xa7, 0xa6, 0x4e, 0x55, 0x5a, 0xf3, 0xa7, 0x2b, 0xad, 0x72, 0x13, 0x4a, 0x13, 0x5e, 0xd8, 0xbd, + 0xf4, 0x0b, 0x9b, 0xde, 0x97, 0xa9, 0x27, 0xfd, 0x00, 0x96, 0x47, 0x4c, 0x9c, 0xe9, 0x29, 0xff, + 0x94, 0x83, 0x95, 0xf3, 0xca, 0x0e, 0xd2, 0x80, 0x62, 0x6b, 0x38, 0x9c, 0x22, 0x5a, 0xd3, 0xe1, + 0x9f, 0x86, 0xca, 0x32, 0xad, 0x47, 0xdd, 0x76, 0x47, 0x95, 0x69, 0xba, 0x19, 0x8f, 0xc6, 0xe5, + 0x9d, 0xec, 0xb8, 0xbc, 0xf3, 0x99, 0x76, 0x71, 0xe2, 0x51, 0xc5, 0xe9, 0x07, 0x33, 0xd6, 0x58, + 0xef, 0x35, 0x07, 0xe9, 0x63, 0x72, 0xd0, 0xa7, 0x17, 0xe6, 0xa0, 0x3c, 0x1a, 0xfe, 0xf4, 0x97, + 0x1a, 0x3e, 0x6d, 0x3a, 0xfa, 0x03, 0x26, 0x13, 0x01, 0x4b, 0xbf, 0x7f, 0xf0, 0x55, 0xbe, 0xcd, + 0xc0, 0xf2, 0x08, 0xf3, 0x93, 0x1a, 0xfc, 0x29, 0x05, 0xb6, 0x78, 0xd4, 0xf4, 0xe9, 0xa0, 0xb9, + 0x22, 0xa9, 0xa5, 0x03, 0xb5, 0x32, 0xe0, 0x9d, 0x4c, 0x8a, 0x77, 0x6e, 0x0e, 0x78, 0x47, 0xe1, + 0x91, 0x6c, 0x0b, 0x09, 0x71, 0x28, 0x24, 0x71, 0xce, 0x92, 0x53, 0x6e, 0x62, 0x11, 0x32, 0x62, + 0xee, 0x4c, 0xec, 0xa4, 0x9f, 0x61, 0xa7, 0x5f, 0xcd, 0x1c, 0x3f, 0x64, 0x80, 0x8c, 0x26, 0x74, + 0xf2, 0x67, 0x28, 0x70, 0xdf, 0xb5, 0xd2, 0x5d, 0xe9, 0x3c, 0xf7, 0xdd, 0x06, 0x36, 0xa6, 0x17, + 0xf8, 0x37, 0x33, 0xd1, 0xbf, 0xd9, 0x71, 0xfe, 0xcd, 0x9d, 0xe3, 0xdf, 0xd6, 0x59, 0xff, 0xea, + 0x13, 0x4b, 0xd2, 0xd1, 0xc3, 0xcc, 0xe4, 0xe0, 0xfc, 0xfb, 0x76, 0xf0, 0x0e, 0x94, 0xd2, 0x6d, + 0x9c, 0xc4, 0x26, 0x75, 0x43, 0x41, 0xd5, 0x03, 0xd7, 0xd3, 0xf9, 0x58, 0xe1, 0x87, 0x13, 0x95, + 0xfb, 0x50, 0x4c, 0xb5, 0x70, 0x33, 0xc3, 0x29, 0x14, 0x53, 0x49, 0x87, 0xac, 0x82, 0x4e, 0x4f, + 0x6c, 0x27, 0xee, 0xc0, 0x1b, 0x97, 0x4c, 0x35, 0x24, 0x06, 0xe4, 0x43, 0x46, 0x8f, 0xdc, 0x13, + 0xa5, 0xa1, 0x71, 0xc9, 0x8c, 0xc7, 0x12, 0xc1, 0x68, 0x9b, 0x9e, 0xa8, 0xf8, 0x97, 0x08, 0x1c, + 0xd6, 0x4b, 0x00, 0x58, 0x60, 0x59, 0xa2, 0x1f, 0xd2, 0xca, 0x1b, 0x2d, 0xee, 0xb7, 0x65, 0x17, + 0x27, 0x1d, 0x6a, 0x0b, 0x41, 0xbb, 0x21, 0x06, 0x8f, 0x7c, 0xb0, 0x83, 0x31, 0xd9, 0x85, 0xcb, + 0x21, 0x65, 0x96, 0x60, 0x7d, 0x2b, 0xe9, 0x2a, 0x33, 0x93, 0xba, 0xca, 0x85, 0x90, 0xb2, 0x43, + 0xd6, 0x3f, 0x8c, 0x7b, 0x4b, 0x43, 0xf5, 0x96, 0xfd, 0x17, 0x7e, 0xfc, 0x28, 0x93, 0x61, 0xe5, + 0xab, 0x0c, 0xc0, 0xb0, 0x07, 0x23, 0x37, 0xa0, 0x64, 0x7b, 0x5e, 0xd0, 0xb3, 0x02, 0xe6, 0xb6, + 0x5d, 0x3f, 0x0e, 0xe4, 0x22, 0xce, 0xbd, 0xc0, 0x29, 0x19, 0x86, 0x4a, 0x44, 0x15, 0x47, 0x49, + 0x14, 0x2b, 0xdc, 0x73, 0x35, 0x37, 0x14, 0x3a, 0x9d, 0xd9, 0x94, 0x50, 0x92, 0x15, 0x6e, 0xc1, + 0x22, 0x3d, 0x09, 0x83, 0x33, 0x69, 0xac, 0x60, 0x2e, 0xa8, 0xd9, 0x44, 0x6c, 0x13, 0xe6, 0xba, + 0xf6, 0x89, 0x65, 0xb7, 0x55, 0xc3, 0x3d, 0xf6, 0xdc, 0xf9, 0xae, 0x7d, 0xb2, 0xdb, 0xa6, 0xe4, + 0x09, 0x2c, 0xab, 0xfd, 0x1d, 0x46, 0x5b, 0xd4, 0x17, 0xae, 0xed, 0xf1, 0xb8, 0x17, 0x2f, 0x8f, + 0xa0, 0xeb, 0x41, 0xe0, 0xbd, 0x92, 0xe1, 0x67, 0x2e, 0x21, 0x68, 0x6f, 0x88, 0xa9, 0x7c, 0xa9, + 0x03, 0x19, 0x6d, 0x97, 0xc9, 0x53, 0xd0, 0x5b, 0xd4, 0xb3, 0xfb, 0x31, 0x45, 0x6f, 0xcd, 0xd4, + 0x6c, 0x57, 0xf7, 0x25, 0xd4, 0x54, 0x1a, 0xa4, 0x2a, 0xbb, 0x99, 0x70, 0xe9, 0xcc, 0xaa, 0x76, + 0x25, 0xd4, 0x54, 0x1a, 0xca, 0x6f, 0x32, 0xa0, 0xa3, 0x6e, 0x72, 0x1d, 0xe6, 0x42, 0xca, 0x1c, + 0xea, 0xab, 0xb8, 0xd5, 0xb1, 0xff, 0x4d, 0xa6, 0xc8, 0x3d, 0x28, 0x1e, 0xb9, 0x27, 0xb4, 0x65, + 0xa9, 0x33, 0x4c, 0x8a, 0xa6, 0xc6, 0x25, 0x13, 0x50, 0x5e, 0xe9, 0x6e, 0xc0, 0xb2, 0xbc, 0x20, + 0x5f, 0xb9, 0x28, 0xd6, 0x91, 0x9d, 0xac, 0x63, 0x29, 0x85, 0x52, 0x9a, 0xea, 0x00, 0xb1, 0x49, + 0xc3, 0xcb, 0xad, 0x8c, 0xfb, 0x6d, 0xa5, 0x84, 0xcd, 0x14, 0xaa, 0xbe, 0x0c, 0x97, 0x3b, 0x42, + 0x84, 0xca, 0x0c, 0x7c, 0x5a, 0xe5, 0xb7, 0x1a, 0xe8, 0xe8, 0x97, 0x09, 0x6e, 0xb8, 0x01, 0x45, + 0x84, 0x72, 0x61, 0x8b, 0x88, 0xab, 0x44, 0x29, 0xcf, 0x2a, 0x27, 0x0f, 0x70, 0x4e, 0x8a, 0xb4, + 0x59, 0xe8, 0x24, 0x22, 0xc9, 0x8b, 0x06, 0x39, 0x39, 0x14, 0x91, 0x80, 0x4d, 0x8b, 0xe2, 0x7f, + 0x93, 0x5c, 0x22, 0x82, 0x93, 0x8f, 0xf0, 0xaf, 0xc8, 0xfb, 0x38, 0x67, 0x09, 0x00, 0x37, 0x50, + 0xec, 0xf1, 0x18, 0x4a, 0xe9, 0x7f, 0x78, 0x92, 0x8d, 0xfc, 0xa8, 0xdb, 0xa4, 0x0c, 0xcf, 0xb9, + 0x20, 0xd9, 0x48, 0x8d, 0xc9, 0x0a, 0xe4, 0x7c, 0x3b, 0xee, 0x9c, 0xa4, 0x5d, 0x38, 0xaa, 0xe7, + 0x55, 0x7e, 0xa9, 0xfc, 0x05, 0xe6, 0xe2, 0xcd, 0x86, 0x84, 0x2c, 0x35, 0x68, 0x31, 0x21, 0xd7, + 0xab, 0xdf, 0xbd, 0x5b, 0xd3, 0xbe, 0x7f, 0xb7, 0xa6, 0xbd, 0x7d, 0xb7, 0xa6, 0x7d, 0xb4, 0xae, + 0x6c, 0x76, 0x83, 0x9a, 0x1d, 0xba, 0xb5, 0x73, 0x7e, 0x0e, 0x37, 0xf3, 0x78, 0xf3, 0x5b, 0x3f, + 0x07, 0x00, 0x00, 0xff, 0xff, 0x32, 0xf1, 0x63, 0x41, 0x3a, 0x16, 0x00, 0x00, } diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto index b52bfb0c4b..f8c8c3bd58 100644 --- a/networking/v1alpha3/virtual_service.proto +++ b/networking/v1alpha3/virtual_service.proto @@ -857,6 +857,7 @@ message StringMatch { // retries: // attempts: 3 // perTryTimeout: 2s +// retryOn: gateway-error,connect-failure,refused-stream // ``` // message HTTPRetry { @@ -867,6 +868,13 @@ message HTTPRetry { // Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms. google.protobuf.Duration per_try_timeout = 2; + + // Specifies the conditions under which retry takes place. + // One or more policies can be specified using a ‘,’ delimited list. + // The supported policies can be found in + // "https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-on" + // and "https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-grpc-on" + string retryOn = 3; } // Describes the Cross-Origin Resource Sharing (CORS) policy, for a given diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py index 9c5e631f0b..10b7d0c00d 100644 --- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py +++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py @@ -21,7 +21,7 @@ name='networking/v1alpha3/virtual_service.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xc9\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xb4\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\x1f\n\x17remove_response_headers\x18\x0c \x03(\t\x12`\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x0e \x03(\t\x12^\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry\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\"\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\"\xf7\x03\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\x1f\n\x17remove_response_headers\x18\x03 \x03(\t\x12k\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x05 \x03(\t\x12i\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry\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\"Q\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\"\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\"\xc9\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xb4\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\x1f\n\x17remove_response_headers\x18\x0c \x03(\t\x12`\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x0e \x03(\t\x12^\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry\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\"\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\"\xf7\x03\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\x1f\n\x17remove_response_headers\x18\x03 \x03(\t\x12k\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x05 \x03(\t\x12i\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry\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\"b\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\x0f\n\x07retryOn\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,]) @@ -1124,6 +1124,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='retryOn', full_name='istio.networking.v1alpha3.HTTPRetry.retryOn', 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=[ ], @@ -1137,7 +1144,7 @@ oneofs=[ ], serialized_start=3659, - serialized_end=3740, + serialized_end=3757, ) @@ -1202,8 +1209,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3743, - serialized_end=3946, + serialized_start=3760, + serialized_end=3963, ) @@ -1257,8 +1264,8 @@ name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4108, - serialized_end=4317, + serialized_start=4125, + serialized_end=4334, ) _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( @@ -1318,8 +1325,8 @@ name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4320, - serialized_end=4487, + serialized_start=4337, + serialized_end=4504, ) _HTTPFAULTINJECTION = _descriptor.Descriptor( @@ -1355,8 +1362,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3949, - serialized_end=4487, + serialized_start=3966, + serialized_end=4504, ) @@ -1396,8 +1403,8 @@ name='port', full_name='istio.networking.v1alpha3.PortSelector.port', index=0, containing_type=None, fields=[]), ], - serialized_start=4489, - serialized_end=4545, + serialized_start=4506, + serialized_end=4562, ) @@ -1427,8 +1434,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4547, - serialized_end=4571, + serialized_start=4564, + serialized_end=4588, ) _VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE From 5b71098af4cab90928642ad162dd3a36e2453a9b Mon Sep 17 00:00:00 2001 From: Yossi Mesika Date: Thu, 25 Oct 2018 19:15:43 +0300 Subject: [PATCH 03/11] Minor correction to avoid confusion in ServiceEntry reference doc (#678) * Minor correction to avoid confusion in reference doc * Updated also the pb and html --- networking/v1alpha3/istio.networking.v1alpha3.pb.html | 2 +- networking/v1alpha3/service_entry.pb.go | 2 +- networking/v1alpha3/service_entry.proto | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index 68c5d11baa..b19f728c12 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -2972,7 +2972,7 @@

ServiceEntry

location: MESH_EXTERNAL ports: - number: 80 - name: https + name: http protocol: HTTP resolution: DNS endpoints: diff --git a/networking/v1alpha3/service_entry.pb.go b/networking/v1alpha3/service_entry.pb.go index 7b84e3681b..d8f9b809e0 100644 --- a/networking/v1alpha3/service_entry.pb.go +++ b/networking/v1alpha3/service_entry.pb.go @@ -343,7 +343,7 @@ func (ServiceEntry_Resolution) EnumDescriptor() ([]byte, []int) { // location: MESH_EXTERNAL // ports: // - number: 80 -// name: https +// name: http // protocol: HTTP // resolution: DNS // endpoints: diff --git a/networking/v1alpha3/service_entry.proto b/networking/v1alpha3/service_entry.proto index ad8ae84605..62ec661ad9 100644 --- a/networking/v1alpha3/service_entry.proto +++ b/networking/v1alpha3/service_entry.proto @@ -264,7 +264,7 @@ option go_package = "istio.io/api/networking/v1alpha3"; // location: MESH_EXTERNAL // ports: // - number: 80 -// name: https +// name: http // protocol: HTTP // resolution: DNS // endpoints: From ff7edaf15a56b8248e7cb26f7a94d8cbbf5e2567 Mon Sep 17 00:00:00 2001 From: Zhonghu Xu Date: Fri, 26 Oct 2018 21:45:10 +0800 Subject: [PATCH 04/11] use lowercase_with_underscore for field name `retry_on` (#681) --- .../istio.networking.v1alpha3.pb.html | 2 +- networking/v1alpha3/virtual_service.pb.go | 208 +++++++++--------- networking/v1alpha3/virtual_service.proto | 2 +- .../v1alpha3/virtual_service_pb2.py | 30 +-- 4 files changed, 121 insertions(+), 121 deletions(-) diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index b19f728c12..982b9b0f86 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -1581,7 +1581,7 @@

HTTPRetry

-
+ + + + + + @@ -305,6 +318,61 @@

MeshConfig.IngressControllerMode

a secondary ingress controller (e.g., in addition to a cloud-provided ingress controller).

+ + + +

Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms.

+
retryOnstring +

Specifies the conditions under which retry takes place. +One or more policies can be specified using a ‘,’ delimited list. +The supported policies can be found in +“https://www.envoyproxy.io/docs/envoy/latest/configuration/httpfilters/routerfilter#x-envoy-retry-on” +and “https://www.envoyproxy.io/docs/envoy/latest/configuration/httpfilters/routerfilter#x-envoy-retry-grpc-on”

+
retryOn string diff --git a/networking/v1alpha3/virtual_service.pb.go b/networking/v1alpha3/virtual_service.pb.go index 68c99ae12f..19abdd4626 100644 --- a/networking/v1alpha3/virtual_service.pb.go +++ b/networking/v1alpha3/virtual_service.pb.go @@ -1385,7 +1385,7 @@ type HTTPRetry struct { // The supported policies can be found in // "https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-on" // and "https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-grpc-on" - RetryOn string `protobuf:"bytes,3,opt,name=retryOn,proto3" json:"retryOn,omitempty"` + RetryOn string `protobuf:"bytes,3,opt,name=retry_on,json=retryOn,proto3" json:"retry_on,omitempty"` } func (m *HTTPRetry) Reset() { *m = HTTPRetry{} } @@ -8326,107 +8326,107 @@ func init() { } var fileDescriptorVirtualService = []byte{ - // 1629 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x5f, 0x6f, 0xdb, 0x46, - 0x12, 0x0f, 0x25, 0x51, 0xb6, 0x46, 0xb2, 0x63, 0xef, 0x39, 0x0e, 0xa3, 0x0b, 0x7c, 0x8e, 0x72, - 0xb9, 0xf3, 0x21, 0x17, 0x09, 0x67, 0xe7, 0xee, 0x8c, 0xbb, 0xc4, 0x89, 0x65, 0x27, 0x51, 0x8a, - 0x04, 0x09, 0x68, 0x37, 0x0f, 0x7d, 0x21, 0x28, 0x6a, 0x2d, 0xb1, 0xa1, 0x48, 0x76, 0x77, 0x69, - 0x59, 0x4f, 0x05, 0x8a, 0x7c, 0x81, 0x16, 0x7d, 0x2d, 0x8a, 0x7e, 0x92, 0xbe, 0xf6, 0xb1, 0x9f, - 0xa0, 0x08, 0xf2, 0xd8, 0x2f, 0xd1, 0x62, 0x67, 0x49, 0x89, 0xb6, 0x6c, 0xfd, 0x69, 0xd3, 0xa2, - 0x6f, 0xdc, 0xdd, 0xf9, 0xcd, 0xce, 0xce, 0xce, 0xfe, 0x66, 0x86, 0xf0, 0x0f, 0x9f, 0x8a, 0x5e, - 0xc0, 0x5e, 0xbb, 0x7e, 0xbb, 0x76, 0xfc, 0x2f, 0xdb, 0x0b, 0x3b, 0xf6, 0x56, 0xed, 0xd8, 0x65, - 0x22, 0xb2, 0x3d, 0x8b, 0x53, 0x76, 0xec, 0x3a, 0xb4, 0x1a, 0xb2, 0x40, 0x04, 0xe4, 0x9a, 0xcb, - 0x85, 0x1b, 0x54, 0x87, 0x80, 0x6a, 0x02, 0x28, 0xaf, 0xb5, 0x83, 0xa0, 0xed, 0xd1, 0x1a, 0x0a, - 0x36, 0xa3, 0xa3, 0x5a, 0x2b, 0x62, 0xb6, 0x70, 0x03, 0x5f, 0x41, 0x47, 0xd7, 0x7b, 0xcc, 0x0e, - 0x43, 0xca, 0xb8, 0x5a, 0xaf, 0xfc, 0xa8, 0xc1, 0xe2, 0x2b, 0xb5, 0xe9, 0x81, 0xda, 0x93, 0xac, - 0x80, 0xde, 0x09, 0xb8, 0xe0, 0x86, 0xb6, 0x9e, 0xdd, 0x28, 0x98, 0x6a, 0x40, 0xca, 0x30, 0xdf, - 0xb6, 0x05, 0xed, 0xd9, 0x7d, 0x6e, 0x64, 0x70, 0x61, 0x30, 0x26, 0xdb, 0x90, 0xeb, 0x08, 0x11, - 0x1a, 0xd9, 0xf5, 0xec, 0x46, 0x71, 0xf3, 0xaf, 0xd5, 0x0b, 0xcd, 0xad, 0x36, 0x0e, 0x0f, 0x5f, - 0x9a, 0x41, 0x24, 0xa8, 0x89, 0x08, 0xf2, 0x6f, 0xc8, 0x0a, 0x27, 0x34, 0x72, 0x08, 0xbc, 0x39, - 0x06, 0x78, 0xb8, 0x17, 0xe3, 0xa4, 0x3c, 0xc2, 0x3c, 0x6e, 0xe8, 0x93, 0x61, 0xcf, 0x0e, 0x12, - 0x98, 0xc7, 0x2b, 0xc7, 0x50, 0xdc, 0xa7, 0x5c, 0xb8, 0x3e, 0x7a, 0x88, 0x10, 0xc8, 0xc9, 0xb3, - 0x19, 0xda, 0xba, 0xb6, 0x51, 0x30, 0xf1, 0x9b, 0xac, 0x42, 0x9e, 0x47, 0x4d, 0x4e, 0x85, 0x91, - 0xc1, 0xd9, 0x78, 0x44, 0xfe, 0x0f, 0xb9, 0x30, 0x60, 0xc2, 0xc8, 0xae, 0x6b, 0x1b, 0xc5, 0xcd, - 0xbf, 0x8f, 0xd9, 0xf2, 0x65, 0xc0, 0xc4, 0x01, 0xf5, 0xa8, 0x23, 0x02, 0x66, 0x22, 0xa8, 0xf2, - 0x0d, 0x40, 0x61, 0x70, 0x72, 0xb2, 0x0b, 0x7a, 0xd7, 0x16, 0x4e, 0x07, 0xfd, 0x5b, 0xdc, 0xbc, - 0x3d, 0xc1, 0x5d, 0xcf, 0xa5, 0xac, 0x49, 0x3f, 0x89, 0x28, 0x17, 0xa6, 0x42, 0x92, 0x47, 0xa0, - 0x33, 0xa9, 0x0b, 0x6f, 0xa2, 0xb8, 0x59, 0x9b, 0xc6, 0xe3, 0xa9, 0x93, 0x9b, 0x0a, 0x4d, 0xf6, - 0x60, 0x9e, 0xd1, 0x96, 0xcb, 0xa8, 0x33, 0xcd, 0xc1, 0x50, 0x53, 0x2c, 0x6e, 0x0e, 0x80, 0xe4, - 0x21, 0xcc, 0x31, 0xda, 0x63, 0xae, 0xa0, 0x46, 0x0e, 0x75, 0xfc, 0x6d, 0xa2, 0x0e, 0x94, 0x36, - 0x13, 0x18, 0xb9, 0x0d, 0xcb, 0x3d, 0xda, 0xe4, 0x81, 0xf3, 0x9a, 0x0a, 0x2b, 0x0a, 0xdb, 0xcc, - 0x6e, 0x51, 0x43, 0x5f, 0xd7, 0x36, 0xe6, 0xcd, 0xa5, 0xc1, 0xc2, 0x87, 0x6a, 0x9e, 0x6c, 0xc1, - 0x9c, 0x70, 0xbb, 0x34, 0x88, 0x84, 0x91, 0xc7, 0xed, 0xae, 0x55, 0x55, 0x88, 0x57, 0x93, 0x10, - 0xaf, 0xee, 0xc7, 0x4f, 0xc0, 0x4c, 0x24, 0xc9, 0x8e, 0xb4, 0x51, 0x30, 0x97, 0x72, 0x63, 0x0e, - 0x41, 0x13, 0x63, 0x94, 0x0a, 0xd6, 0x37, 0x13, 0x10, 0xd9, 0x03, 0xfd, 0xc8, 0x8e, 0x3c, 0x61, - 0xcc, 0x23, 0xfa, 0xce, 0x04, 0xf4, 0x63, 0x29, 0xfb, 0xd4, 0xff, 0x98, 0x3a, 0xca, 0xdb, 0x88, - 0x25, 0x3b, 0x90, 0xef, 0xba, 0x8c, 0x05, 0xcc, 0x28, 0x4c, 0xf4, 0x53, 0xfa, 0xb2, 0x62, 0x14, - 0x79, 0x0c, 0x45, 0x27, 0x60, 0xdc, 0x0a, 0x03, 0xcf, 0x75, 0xfa, 0x06, 0xa0, 0x92, 0x5b, 0x63, - 0x94, 0xec, 0x05, 0x8c, 0xbf, 0x44, 0x61, 0x13, 0x9c, 0xc1, 0x37, 0x69, 0xc2, 0xa2, 0xa4, 0x00, - 0xbf, 0x65, 0x75, 0xa8, 0xdd, 0xa2, 0x8c, 0x1b, 0x45, 0x8c, 0xa2, 0xff, 0x4e, 0x13, 0x45, 0xd5, - 0x5d, 0x84, 0x36, 0x14, 0xf2, 0x91, 0x2f, 0x58, 0xbf, 0x9e, 0x31, 0x34, 0x73, 0xc1, 0x4e, 0xcf, - 0x93, 0xff, 0xc0, 0x55, 0x46, 0xbb, 0xc1, 0x31, 0xb5, 0x18, 0xe5, 0x61, 0xe0, 0x73, 0x3a, 0xd8, - 0xac, 0x84, 0xe4, 0x71, 0x45, 0x2d, 0x9b, 0xf1, 0x6a, 0x82, 0xeb, 0xc1, 0xd5, 0xd8, 0xb6, 0x11, - 0xdc, 0x02, 0x1a, 0xf9, 0x60, 0x06, 0x23, 0xcf, 0x28, 0x47, 0x63, 0xcd, 0x2b, 0xf6, 0x79, 0x6b, - 0xe4, 0x2e, 0xac, 0x0e, 0x0c, 0xc6, 0xa7, 0x36, 0xd8, 0x77, 0x11, 0xed, 0x5d, 0x49, 0xec, 0xc5, - 0xc5, 0x04, 0x25, 0x60, 0x75, 0x60, 0xee, 0x69, 0xd4, 0x65, 0xb4, 0x76, 0x67, 0x26, 0x6b, 0xd3, - 0xaa, 0x95, 0xb1, 0x2b, 0xf6, 0x39, 0x4b, 0xe5, 0x87, 0x40, 0x46, 0x6f, 0x81, 0x2c, 0x41, 0xf6, - 0x35, 0xed, 0xc7, 0x64, 0x26, 0x3f, 0x25, 0x91, 0x1f, 0xdb, 0x5e, 0x44, 0x63, 0x2a, 0x53, 0x83, - 0xff, 0x65, 0xb6, 0xb5, 0x72, 0x03, 0xca, 0x17, 0xbb, 0x68, 0x26, 0x4d, 0x4f, 0xe0, 0xda, 0x85, - 0xe6, 0xcf, 0xa2, 0xa8, 0xf2, 0x85, 0x06, 0xf3, 0x09, 0x5b, 0xcb, 0xf7, 0x96, 0xa6, 0xc8, 0x3b, - 0xe3, 0x19, 0x1e, 0x19, 0x72, 0x57, 0x08, 0xe6, 0x36, 0x23, 0x41, 0x79, 0x42, 0x92, 0xbb, 0xa7, - 0x49, 0x72, 0x1c, 0xcf, 0x5e, 0x40, 0x90, 0x95, 0xcf, 0xa5, 0x51, 0x71, 0xe6, 0x21, 0xf5, 0xd3, - 0x46, 0xfd, 0x73, 0x8c, 0xbe, 0x67, 0x77, 0x7f, 0x3b, 0x9b, 0xbe, 0xd6, 0x61, 0xe9, 0x6c, 0x5e, - 0x20, 0xdb, 0x90, 0x8d, 0x98, 0x8b, 0x9e, 0x1e, 0x4f, 0x2c, 0x07, 0x82, 0xb9, 0x7e, 0x5b, 0x61, - 0x25, 0x44, 0xb2, 0x12, 0x77, 0x3a, 0xb4, 0xab, 0xae, 0x64, 0x7a, 0x70, 0x8c, 0x42, 0x56, 0xa3, - 0xa2, 0x13, 0xb4, 0xe2, 0x0c, 0x32, 0x35, 0x5e, 0xa1, 0xc8, 0x3e, 0x14, 0xec, 0x48, 0x74, 0x02, - 0xe6, 0x8a, 0xfe, 0x14, 0x09, 0x24, 0xad, 0x62, 0x08, 0x24, 0x26, 0xcc, 0x25, 0x2f, 0x4f, 0x15, - 0x05, 0xdb, 0x33, 0x64, 0xd5, 0xea, 0xa9, 0x37, 0x97, 0x28, 0x92, 0xe5, 0x01, 0xa6, 0x7c, 0x99, - 0x66, 0x16, 0x54, 0x26, 0x27, 0x4d, 0x58, 0xe0, 0x41, 0xc4, 0x1c, 0x6a, 0x79, 0x76, 0x93, 0x7a, - 0x32, 0x9d, 0xc8, 0xdd, 0xee, 0xcf, 0xb2, 0xdb, 0x01, 0x2a, 0x78, 0x86, 0x78, 0xb5, 0x65, 0x89, - 0xa7, 0xa6, 0x4e, 0x55, 0x5a, 0xf3, 0xa7, 0x2b, 0xad, 0x72, 0x13, 0x4a, 0x13, 0x5e, 0xd8, 0xbd, - 0xf4, 0x0b, 0x9b, 0xde, 0x97, 0xa9, 0x27, 0xfd, 0x00, 0x96, 0x47, 0x4c, 0x9c, 0xe9, 0x29, 0xff, - 0x94, 0x83, 0x95, 0xf3, 0xca, 0x0e, 0xd2, 0x80, 0x62, 0x6b, 0x38, 0x9c, 0x22, 0x5a, 0xd3, 0xe1, - 0x9f, 0x86, 0xca, 0x32, 0xad, 0x47, 0xdd, 0x76, 0x47, 0x95, 0x69, 0xba, 0x19, 0x8f, 0xc6, 0xe5, - 0x9d, 0xec, 0xb8, 0xbc, 0xf3, 0x99, 0x76, 0x71, 0xe2, 0x51, 0xc5, 0xe9, 0x07, 0x33, 0xd6, 0x58, - 0xef, 0x35, 0x07, 0xe9, 0x63, 0x72, 0xd0, 0xa7, 0x17, 0xe6, 0xa0, 0x3c, 0x1a, 0xfe, 0xf4, 0x97, - 0x1a, 0x3e, 0x6d, 0x3a, 0xfa, 0x03, 0x26, 0x13, 0x01, 0x4b, 0xbf, 0x7f, 0xf0, 0x55, 0xbe, 0xcd, - 0xc0, 0xf2, 0x08, 0xf3, 0x93, 0x1a, 0xfc, 0x29, 0x05, 0xb6, 0x78, 0xd4, 0xf4, 0xe9, 0xa0, 0xb9, - 0x22, 0xa9, 0xa5, 0x03, 0xb5, 0x32, 0xe0, 0x9d, 0x4c, 0x8a, 0x77, 0x6e, 0x0e, 0x78, 0x47, 0xe1, - 0x91, 0x6c, 0x0b, 0x09, 0x71, 0x28, 0x24, 0x71, 0xce, 0x92, 0x53, 0x6e, 0x62, 0x11, 0x32, 0x62, - 0xee, 0x4c, 0xec, 0xa4, 0x9f, 0x61, 0xa7, 0x5f, 0xcd, 0x1c, 0x3f, 0x64, 0x80, 0x8c, 0x26, 0x74, - 0xf2, 0x67, 0x28, 0x70, 0xdf, 0xb5, 0xd2, 0x5d, 0xe9, 0x3c, 0xf7, 0xdd, 0x06, 0x36, 0xa6, 0x17, - 0xf8, 0x37, 0x33, 0xd1, 0xbf, 0xd9, 0x71, 0xfe, 0xcd, 0x9d, 0xe3, 0xdf, 0xd6, 0x59, 0xff, 0xea, - 0x13, 0x4b, 0xd2, 0xd1, 0xc3, 0xcc, 0xe4, 0xe0, 0xfc, 0xfb, 0x76, 0xf0, 0x0e, 0x94, 0xd2, 0x6d, - 0x9c, 0xc4, 0x26, 0x75, 0x43, 0x41, 0xd5, 0x03, 0xd7, 0xd3, 0xf9, 0x58, 0xe1, 0x87, 0x13, 0x95, - 0xfb, 0x50, 0x4c, 0xb5, 0x70, 0x33, 0xc3, 0x29, 0x14, 0x53, 0x49, 0x87, 0xac, 0x82, 0x4e, 0x4f, - 0x6c, 0x27, 0xee, 0xc0, 0x1b, 0x97, 0x4c, 0x35, 0x24, 0x06, 0xe4, 0x43, 0x46, 0x8f, 0xdc, 0x13, - 0xa5, 0xa1, 0x71, 0xc9, 0x8c, 0xc7, 0x12, 0xc1, 0x68, 0x9b, 0x9e, 0xa8, 0xf8, 0x97, 0x08, 0x1c, - 0xd6, 0x4b, 0x00, 0x58, 0x60, 0x59, 0xa2, 0x1f, 0xd2, 0xca, 0x1b, 0x2d, 0xee, 0xb7, 0x65, 0x17, - 0x27, 0x1d, 0x6a, 0x0b, 0x41, 0xbb, 0x21, 0x06, 0x8f, 0x7c, 0xb0, 0x83, 0x31, 0xd9, 0x85, 0xcb, - 0x21, 0x65, 0x96, 0x60, 0x7d, 0x2b, 0xe9, 0x2a, 0x33, 0x93, 0xba, 0xca, 0x85, 0x90, 0xb2, 0x43, - 0xd6, 0x3f, 0x8c, 0x7b, 0x4b, 0x43, 0xf5, 0x96, 0xfd, 0x17, 0x7e, 0xfc, 0x28, 0x93, 0x61, 0xe5, - 0xab, 0x0c, 0xc0, 0xb0, 0x07, 0x23, 0x37, 0xa0, 0x64, 0x7b, 0x5e, 0xd0, 0xb3, 0x02, 0xe6, 0xb6, - 0x5d, 0x3f, 0x0e, 0xe4, 0x22, 0xce, 0xbd, 0xc0, 0x29, 0x19, 0x86, 0x4a, 0x44, 0x15, 0x47, 0x49, - 0x14, 0x2b, 0xdc, 0x73, 0x35, 0x37, 0x14, 0x3a, 0x9d, 0xd9, 0x94, 0x50, 0x92, 0x15, 0x6e, 0xc1, - 0x22, 0x3d, 0x09, 0x83, 0x33, 0x69, 0xac, 0x60, 0x2e, 0xa8, 0xd9, 0x44, 0x6c, 0x13, 0xe6, 0xba, - 0xf6, 0x89, 0x65, 0xb7, 0x55, 0xc3, 0x3d, 0xf6, 0xdc, 0xf9, 0xae, 0x7d, 0xb2, 0xdb, 0xa6, 0xe4, - 0x09, 0x2c, 0xab, 0xfd, 0x1d, 0x46, 0x5b, 0xd4, 0x17, 0xae, 0xed, 0xf1, 0xb8, 0x17, 0x2f, 0x8f, - 0xa0, 0xeb, 0x41, 0xe0, 0xbd, 0x92, 0xe1, 0x67, 0x2e, 0x21, 0x68, 0x6f, 0x88, 0xa9, 0x7c, 0xa9, - 0x03, 0x19, 0x6d, 0x97, 0xc9, 0x53, 0xd0, 0x5b, 0xd4, 0xb3, 0xfb, 0x31, 0x45, 0x6f, 0xcd, 0xd4, - 0x6c, 0x57, 0xf7, 0x25, 0xd4, 0x54, 0x1a, 0xa4, 0x2a, 0xbb, 0x99, 0x70, 0xe9, 0xcc, 0xaa, 0x76, - 0x25, 0xd4, 0x54, 0x1a, 0xca, 0x6f, 0x32, 0xa0, 0xa3, 0x6e, 0x72, 0x1d, 0xe6, 0x42, 0xca, 0x1c, - 0xea, 0xab, 0xb8, 0xd5, 0xb1, 0xff, 0x4d, 0xa6, 0xc8, 0x3d, 0x28, 0x1e, 0xb9, 0x27, 0xb4, 0x65, - 0xa9, 0x33, 0x4c, 0x8a, 0xa6, 0xc6, 0x25, 0x13, 0x50, 0x5e, 0xe9, 0x6e, 0xc0, 0xb2, 0xbc, 0x20, - 0x5f, 0xb9, 0x28, 0xd6, 0x91, 0x9d, 0xac, 0x63, 0x29, 0x85, 0x52, 0x9a, 0xea, 0x00, 0xb1, 0x49, - 0xc3, 0xcb, 0xad, 0x8c, 0xfb, 0x6d, 0xa5, 0x84, 0xcd, 0x14, 0xaa, 0xbe, 0x0c, 0x97, 0x3b, 0x42, - 0x84, 0xca, 0x0c, 0x7c, 0x5a, 0xe5, 0xb7, 0x1a, 0xe8, 0xe8, 0x97, 0x09, 0x6e, 0xb8, 0x01, 0x45, - 0x84, 0x72, 0x61, 0x8b, 0x88, 0xab, 0x44, 0x29, 0xcf, 0x2a, 0x27, 0x0f, 0x70, 0x4e, 0x8a, 0xb4, - 0x59, 0xe8, 0x24, 0x22, 0xc9, 0x8b, 0x06, 0x39, 0x39, 0x14, 0x91, 0x80, 0x4d, 0x8b, 0xe2, 0x7f, - 0x93, 0x5c, 0x22, 0x82, 0x93, 0x8f, 0xf0, 0xaf, 0xc8, 0xfb, 0x38, 0x67, 0x09, 0x00, 0x37, 0x50, - 0xec, 0xf1, 0x18, 0x4a, 0xe9, 0x7f, 0x78, 0x92, 0x8d, 0xfc, 0xa8, 0xdb, 0xa4, 0x0c, 0xcf, 0xb9, - 0x20, 0xd9, 0x48, 0x8d, 0xc9, 0x0a, 0xe4, 0x7c, 0x3b, 0xee, 0x9c, 0xa4, 0x5d, 0x38, 0xaa, 0xe7, - 0x55, 0x7e, 0xa9, 0xfc, 0x05, 0xe6, 0xe2, 0xcd, 0x86, 0x84, 0x2c, 0x35, 0x68, 0x31, 0x21, 0xd7, - 0xab, 0xdf, 0xbd, 0x5b, 0xd3, 0xbe, 0x7f, 0xb7, 0xa6, 0xbd, 0x7d, 0xb7, 0xa6, 0x7d, 0xb4, 0xae, - 0x6c, 0x76, 0x83, 0x9a, 0x1d, 0xba, 0xb5, 0x73, 0x7e, 0x0e, 0x37, 0xf3, 0x78, 0xf3, 0x5b, 0x3f, - 0x07, 0x00, 0x00, 0xff, 0xff, 0x32, 0xf1, 0x63, 0x41, 0x3a, 0x16, 0x00, 0x00, + // 1631 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xdf, 0x6f, 0x1b, 0xc5, + 0x13, 0xef, 0xd9, 0x3e, 0x27, 0x1e, 0x3b, 0x69, 0xb2, 0xdf, 0x34, 0xbd, 0xf8, 0x5b, 0x85, 0xd4, + 0xa5, 0x10, 0x54, 0x6a, 0x8b, 0xa4, 0x40, 0x04, 0x6d, 0xda, 0x38, 0x69, 0xeb, 0xa2, 0x56, 0xad, + 0x2e, 0xa1, 0x0f, 0xbc, 0x58, 0xe7, 0xf3, 0xc6, 0x3e, 0x7a, 0xbe, 0x3d, 0xf6, 0xf6, 0xe2, 0xf8, + 0x09, 0x09, 0xc1, 0x1f, 0x00, 0xe2, 0x15, 0x21, 0xfe, 0x12, 0x5e, 0x79, 0xe4, 0x2f, 0x40, 0x55, + 0x1f, 0xf9, 0x27, 0x40, 0x3b, 0x7b, 0x67, 0x5f, 0xe2, 0xc4, 0x3f, 0xa0, 0x20, 0xde, 0x6e, 0x77, + 0xe7, 0x33, 0x3b, 0x3b, 0x3b, 0xfb, 0x99, 0x99, 0x83, 0x77, 0x3c, 0x2a, 0xba, 0x8c, 0xbf, 0x70, + 0xbc, 0x56, 0xe5, 0xe8, 0x3d, 0xcb, 0xf5, 0xdb, 0xd6, 0x66, 0xe5, 0xc8, 0xe1, 0x22, 0xb4, 0xdc, + 0x7a, 0x40, 0xf9, 0x91, 0x63, 0xd3, 0xb2, 0xcf, 0x99, 0x60, 0x64, 0xc5, 0x09, 0x84, 0xc3, 0xca, + 0x03, 0x40, 0x39, 0x06, 0x14, 0x57, 0x5b, 0x8c, 0xb5, 0x5c, 0x5a, 0x41, 0xc1, 0x46, 0x78, 0x58, + 0x69, 0x86, 0xdc, 0x12, 0x0e, 0xf3, 0x14, 0x74, 0x78, 0xbd, 0xcb, 0x2d, 0xdf, 0xa7, 0x3c, 0x50, + 0xeb, 0xa5, 0xdf, 0x35, 0x98, 0x7f, 0xae, 0x36, 0xdd, 0x57, 0x7b, 0x92, 0x25, 0xd0, 0xdb, 0x2c, + 0x10, 0x81, 0xa1, 0xad, 0xa5, 0xd7, 0x73, 0xa6, 0x1a, 0x90, 0x22, 0xcc, 0xb6, 0x2c, 0x41, 0xbb, + 0x56, 0x2f, 0x30, 0x52, 0xb8, 0xd0, 0x1f, 0x93, 0x2d, 0xc8, 0xb4, 0x85, 0xf0, 0x8d, 0xf4, 0x5a, + 0x7a, 0x3d, 0xbf, 0xf1, 0x66, 0xf9, 0x5c, 0x73, 0xcb, 0xb5, 0x83, 0x83, 0x67, 0x26, 0x0b, 0x05, + 0x35, 0x11, 0x41, 0xde, 0x87, 0xb4, 0xb0, 0x7d, 0x23, 0x83, 0xc0, 0x6b, 0x23, 0x80, 0x07, 0xbb, + 0x11, 0x4e, 0xca, 0x23, 0xcc, 0x0d, 0x0c, 0x7d, 0x3c, 0xec, 0xf1, 0x7e, 0x0c, 0x73, 0x83, 0xd2, + 0x11, 0xe4, 0xf7, 0x68, 0x20, 0x1c, 0x0f, 0x3d, 0x44, 0x08, 0x64, 0xe4, 0xd9, 0x0c, 0x6d, 0x4d, + 0x5b, 0xcf, 0x99, 0xf8, 0x4d, 0x96, 0x21, 0x1b, 0x84, 0x8d, 0x80, 0x0a, 0x23, 0x85, 0xb3, 0xd1, + 0x88, 0x7c, 0x0c, 0x19, 0x9f, 0x71, 0x61, 0xa4, 0xd7, 0xb4, 0xf5, 0xfc, 0xc6, 0xdb, 0x23, 0xb6, + 0x7c, 0xc6, 0xb8, 0xd8, 0xa7, 0x2e, 0xb5, 0x05, 0xe3, 0x26, 0x82, 0x4a, 0x3f, 0x01, 0xe4, 0xfa, + 0x27, 0x27, 0x3b, 0xa0, 0x77, 0x2c, 0x61, 0xb7, 0xd1, 0xbf, 0xf9, 0x8d, 0x1b, 0x63, 0xdc, 0xf5, + 0x44, 0xca, 0x9a, 0xf4, 0x8b, 0x90, 0x06, 0xc2, 0x54, 0x48, 0x72, 0x1f, 0x74, 0x2e, 0x75, 0xe1, + 0x4d, 0xe4, 0x37, 0x2a, 0x93, 0x78, 0x3c, 0x71, 0x72, 0x53, 0xa1, 0xc9, 0x2e, 0xcc, 0x72, 0xda, + 0x74, 0x38, 0xb5, 0x27, 0x39, 0x18, 0x6a, 0x8a, 0xc4, 0xcd, 0x3e, 0x90, 0xdc, 0x83, 0x19, 0x4e, + 0xbb, 0xdc, 0x11, 0xd4, 0xc8, 0xa0, 0x8e, 0xb7, 0xc6, 0xea, 0x40, 0x69, 0x33, 0x86, 0x91, 0x1b, + 0xb0, 0xd8, 0xa5, 0x8d, 0x80, 0xd9, 0x2f, 0xa8, 0xa8, 0x87, 0x7e, 0x8b, 0x5b, 0x4d, 0x6a, 0xe8, + 0x6b, 0xda, 0xfa, 0xac, 0xb9, 0xd0, 0x5f, 0xf8, 0x54, 0xcd, 0x93, 0x4d, 0x98, 0x11, 0x4e, 0x87, + 0xb2, 0x50, 0x18, 0x59, 0xdc, 0x6e, 0xa5, 0xac, 0x42, 0xbc, 0x1c, 0x87, 0x78, 0x79, 0x2f, 0x7a, + 0x02, 0x66, 0x2c, 0x49, 0xb6, 0xa5, 0x8d, 0x82, 0x3b, 0x34, 0x30, 0x66, 0x10, 0x34, 0x36, 0x46, + 0xa9, 0xe0, 0x3d, 0x33, 0x06, 0x91, 0x5d, 0xd0, 0x0f, 0xad, 0xd0, 0x15, 0xc6, 0x2c, 0xa2, 0x6f, + 0x8e, 0x41, 0x3f, 0x90, 0xb2, 0x8f, 0xbc, 0xcf, 0xa9, 0xad, 0xbc, 0x8d, 0x58, 0xb2, 0x0d, 0xd9, + 0x8e, 0xc3, 0x39, 0xe3, 0x46, 0x6e, 0xac, 0x9f, 0x92, 0x97, 0x15, 0xa1, 0xc8, 0x03, 0xc8, 0xdb, + 0x8c, 0x07, 0x75, 0x9f, 0xb9, 0x8e, 0xdd, 0x33, 0x00, 0x95, 0x5c, 0x1f, 0xa1, 0x64, 0x97, 0xf1, + 0xe0, 0x19, 0x0a, 0x9b, 0x60, 0xf7, 0xbf, 0x49, 0x03, 0xe6, 0x25, 0x05, 0x78, 0xcd, 0x7a, 0x9b, + 0x5a, 0x4d, 0xca, 0x03, 0x23, 0x8f, 0x51, 0xf4, 0xe1, 0x24, 0x51, 0x54, 0xde, 0x41, 0x68, 0x4d, + 0x21, 0xef, 0x7b, 0x82, 0xf7, 0xaa, 0x29, 0x43, 0x33, 0xe7, 0xac, 0xe4, 0x3c, 0xf9, 0x00, 0x2e, + 0x73, 0xda, 0x61, 0x47, 0xb4, 0xce, 0x69, 0xe0, 0x33, 0x2f, 0xa0, 0xfd, 0xcd, 0x0a, 0x48, 0x1e, + 0x97, 0xd4, 0xb2, 0x19, 0xad, 0xc6, 0xb8, 0x2e, 0x5c, 0x8e, 0x6c, 0x1b, 0xc2, 0xcd, 0xa1, 0x91, + 0x77, 0xa7, 0x30, 0xf2, 0x94, 0x72, 0x34, 0xd6, 0xbc, 0x64, 0x9d, 0xb5, 0x46, 0x6e, 0xc1, 0x72, + 0xdf, 0x60, 0x7c, 0x6a, 0xfd, 0x7d, 0xe7, 0xd1, 0xde, 0xa5, 0xd8, 0x5e, 0x5c, 0x8c, 0x51, 0x02, + 0x96, 0xfb, 0xe6, 0x9e, 0x44, 0x5d, 0x44, 0x6b, 0xb7, 0xa7, 0xb2, 0x36, 0xa9, 0x5a, 0x19, 0xbb, + 0x64, 0x9d, 0xb1, 0x54, 0xbc, 0x07, 0x64, 0xf8, 0x16, 0xc8, 0x02, 0xa4, 0x5f, 0xd0, 0x5e, 0x44, + 0x66, 0xf2, 0x53, 0x12, 0xf9, 0x91, 0xe5, 0x86, 0x34, 0xa2, 0x32, 0x35, 0xf8, 0x28, 0xb5, 0xa5, + 0x15, 0x6b, 0x50, 0x3c, 0xdf, 0x45, 0x53, 0x69, 0x7a, 0x08, 0x2b, 0xe7, 0x9a, 0x3f, 0x8d, 0xa2, + 0xd2, 0x77, 0x1a, 0xcc, 0xc6, 0x6c, 0x2d, 0xdf, 0x5b, 0x92, 0x22, 0x6f, 0x8e, 0x66, 0x78, 0x64, + 0xc8, 0x1d, 0x21, 0xb8, 0xd3, 0x08, 0x05, 0x0d, 0x62, 0x92, 0xdc, 0x39, 0x49, 0x92, 0xa3, 0x78, + 0xf6, 0x1c, 0x82, 0x2c, 0x7d, 0x2b, 0x8d, 0x8a, 0x32, 0x0f, 0xa9, 0x9e, 0x34, 0xea, 0xdd, 0x11, + 0xfa, 0x1e, 0xdf, 0xfa, 0xe7, 0x6c, 0xfa, 0x51, 0x87, 0x85, 0xd3, 0x79, 0x81, 0x6c, 0x41, 0x3a, + 0xe4, 0x0e, 0x7a, 0x7a, 0x34, 0xb1, 0xec, 0x0b, 0xee, 0x78, 0x2d, 0x85, 0x95, 0x10, 0xc9, 0x4a, + 0x81, 0xdd, 0xa6, 0x1d, 0x75, 0x25, 0x93, 0x83, 0x23, 0x14, 0xb2, 0x1a, 0x15, 0x6d, 0xd6, 0x8c, + 0x32, 0xc8, 0xc4, 0x78, 0x85, 0x22, 0x7b, 0x90, 0xb3, 0x42, 0xd1, 0x66, 0xdc, 0x11, 0xbd, 0x09, + 0x12, 0x48, 0x52, 0xc5, 0x00, 0x48, 0x4c, 0x98, 0x89, 0x5f, 0x9e, 0x2a, 0x0a, 0xb6, 0xa6, 0xc8, + 0xaa, 0xe5, 0x13, 0x6f, 0x2e, 0x56, 0x24, 0xcb, 0x03, 0x4c, 0xf9, 0x32, 0xcd, 0xcc, 0xa9, 0x4c, + 0x4e, 0x1a, 0x30, 0x17, 0xb0, 0x90, 0xdb, 0xb4, 0xee, 0x5a, 0x0d, 0xea, 0xca, 0x74, 0x22, 0x77, + 0xbb, 0x33, 0xcd, 0x6e, 0xfb, 0xa8, 0xe0, 0x31, 0xe2, 0xd5, 0x96, 0x85, 0x20, 0x31, 0x75, 0xa2, + 0xd2, 0x9a, 0x3d, 0x59, 0x69, 0x15, 0x1b, 0x50, 0x18, 0xf3, 0xc2, 0x6e, 0x27, 0x5f, 0xd8, 0xe4, + 0xbe, 0x4c, 0x3c, 0xe9, 0xbb, 0xb0, 0x38, 0x64, 0xe2, 0x54, 0x4f, 0xf9, 0x8f, 0x0c, 0x2c, 0x9d, + 0x55, 0x76, 0x90, 0x1a, 0xe4, 0x9b, 0x83, 0xe1, 0x04, 0xd1, 0x9a, 0x0c, 0xff, 0x24, 0x54, 0x96, + 0x69, 0x5d, 0xea, 0xb4, 0xda, 0xaa, 0x4c, 0xd3, 0xcd, 0x68, 0x34, 0x2a, 0xef, 0xa4, 0x47, 0xe5, + 0x9d, 0xaf, 0xb4, 0xf3, 0x13, 0x8f, 0x2a, 0x4e, 0x3f, 0x99, 0xb2, 0xc6, 0x7a, 0xad, 0x39, 0x48, + 0x1f, 0x91, 0x83, 0xbe, 0x3c, 0x37, 0x07, 0x65, 0xd1, 0xf0, 0x47, 0x7f, 0xd5, 0xf0, 0x49, 0xd3, + 0xd1, 0x7f, 0x30, 0x99, 0x08, 0x58, 0xf8, 0xf7, 0x83, 0xaf, 0xf4, 0x73, 0x0a, 0x16, 0x87, 0x98, + 0x9f, 0x54, 0xe0, 0x7f, 0x09, 0x70, 0x3d, 0x08, 0x1b, 0x1e, 0xed, 0x37, 0x57, 0x24, 0xb1, 0xb4, + 0xaf, 0x56, 0xfa, 0xbc, 0x93, 0x4a, 0xf0, 0xce, 0xb5, 0x3e, 0xef, 0x28, 0x3c, 0x92, 0x6d, 0x2e, + 0x26, 0x0e, 0x85, 0x24, 0xf6, 0x69, 0x72, 0xca, 0x8c, 0x2d, 0x42, 0x86, 0xcc, 0x9d, 0x8a, 0x9d, + 0xf4, 0x53, 0xec, 0xf4, 0xb7, 0x99, 0xe3, 0xb7, 0x14, 0x90, 0xe1, 0x84, 0x4e, 0xfe, 0x0f, 0xb9, + 0xc0, 0x73, 0xea, 0xc9, 0xae, 0x74, 0x36, 0xf0, 0x9c, 0x1a, 0x36, 0xa6, 0xe7, 0xf8, 0x37, 0x35, + 0xd6, 0xbf, 0xe9, 0x51, 0xfe, 0xcd, 0x9c, 0xe1, 0xdf, 0xe6, 0x69, 0xff, 0xea, 0x63, 0x4b, 0xd2, + 0xe1, 0xc3, 0x4c, 0xe5, 0xe0, 0xec, 0xeb, 0x76, 0xf0, 0x36, 0x14, 0x92, 0x6d, 0x9c, 0xc4, 0xc6, + 0x75, 0x43, 0x4e, 0xd5, 0x03, 0x57, 0x92, 0xf9, 0x58, 0xe1, 0x07, 0x13, 0xa5, 0x3b, 0x90, 0x4f, + 0xb4, 0x70, 0x53, 0xc3, 0x29, 0xe4, 0x13, 0x49, 0x87, 0x2c, 0x83, 0x4e, 0x8f, 0x2d, 0x3b, 0xea, + 0xc0, 0x6b, 0x17, 0x4c, 0x35, 0x24, 0x06, 0x64, 0x7d, 0x4e, 0x0f, 0x9d, 0x63, 0xa5, 0xa1, 0x76, + 0xc1, 0x8c, 0xc6, 0x12, 0xc1, 0x69, 0x8b, 0x1e, 0xab, 0xf8, 0x97, 0x08, 0x1c, 0x56, 0x0b, 0x00, + 0x58, 0x60, 0xd5, 0x45, 0xcf, 0xa7, 0xa5, 0x6f, 0xb4, 0xa8, 0xdf, 0x96, 0x5d, 0x9c, 0x74, 0xa8, + 0x25, 0x04, 0xed, 0xf8, 0x18, 0x3c, 0xf2, 0xc1, 0xf6, 0xc7, 0x64, 0x07, 0x2e, 0xfa, 0x94, 0xd7, + 0x05, 0xef, 0xd5, 0xe3, 0xae, 0x32, 0x35, 0xae, 0xab, 0x9c, 0xf3, 0x29, 0x3f, 0xe0, 0xbd, 0x83, + 0xa8, 0xb7, 0x5c, 0x91, 0x4d, 0xb4, 0x54, 0xc0, 0xbc, 0xe8, 0x55, 0x62, 0xdb, 0xd8, 0x7b, 0xea, + 0x95, 0x7e, 0x48, 0x01, 0x0c, 0x9a, 0x30, 0x72, 0x15, 0x0a, 0x96, 0xeb, 0xb2, 0x6e, 0x9d, 0x71, + 0xa7, 0xe5, 0x78, 0x51, 0x24, 0xe7, 0x71, 0xee, 0x29, 0x4e, 0xc9, 0x38, 0x54, 0x22, 0xaa, 0x3a, + 0x8a, 0xc3, 0x58, 0xe1, 0x9e, 0xa8, 0xb9, 0x81, 0xd0, 0xc9, 0xd4, 0xa6, 0x84, 0xe2, 0xb4, 0x70, + 0x1d, 0xe6, 0xe9, 0xb1, 0xcf, 0x4e, 0xe5, 0xb1, 0x9c, 0x39, 0xa7, 0x66, 0x63, 0xb1, 0x0d, 0x98, + 0xe9, 0x58, 0xc7, 0x75, 0xab, 0xa5, 0x3a, 0xee, 0x91, 0x07, 0xcf, 0x76, 0xac, 0xe3, 0x9d, 0x16, + 0x25, 0x0f, 0x61, 0x51, 0xed, 0x6f, 0x73, 0xda, 0xa4, 0x9e, 0x70, 0x2c, 0x37, 0x88, 0x9a, 0xf1, + 0xe2, 0x10, 0xba, 0xca, 0x98, 0xfb, 0x5c, 0xc6, 0x9f, 0xb9, 0x80, 0xa0, 0xdd, 0x01, 0xa6, 0xf4, + 0xbd, 0x0e, 0x64, 0xb8, 0x5f, 0x26, 0x8f, 0x40, 0x6f, 0x52, 0xd7, 0xea, 0x45, 0x1c, 0xbd, 0x39, + 0x55, 0xb7, 0x5d, 0xde, 0x93, 0x50, 0x53, 0x69, 0x90, 0xaa, 0xac, 0x46, 0x4c, 0xa6, 0x53, 0xab, + 0xda, 0x91, 0x50, 0x53, 0x69, 0x28, 0x7e, 0x9d, 0x02, 0x1d, 0x75, 0x93, 0x2b, 0x30, 0xe3, 0x53, + 0x6e, 0x53, 0x4f, 0x05, 0xae, 0x8e, 0x0d, 0x70, 0x3c, 0x45, 0x6e, 0x43, 0xfe, 0xd0, 0x39, 0xa6, + 0xcd, 0xba, 0x3a, 0xc3, 0xb8, 0x70, 0xaa, 0x5d, 0x30, 0x01, 0xe5, 0x95, 0xee, 0x1a, 0x2c, 0xca, + 0x0b, 0xf2, 0x94, 0x8b, 0x22, 0x1d, 0xe9, 0xf1, 0x3a, 0x16, 0x12, 0x28, 0xa5, 0xa9, 0x0a, 0x10, + 0x99, 0x34, 0xb8, 0xdc, 0xd2, 0xa8, 0xff, 0x56, 0x4a, 0xd8, 0x4c, 0xa0, 0xaa, 0x8b, 0x70, 0xb1, + 0x2d, 0x84, 0xaf, 0xcc, 0xc0, 0xb7, 0x55, 0x7c, 0xa9, 0x81, 0x8e, 0x7e, 0x19, 0xe3, 0x86, 0xab, + 0x90, 0x47, 0x68, 0x20, 0x2c, 0x11, 0x06, 0x2a, 0x53, 0xca, 0xb3, 0xca, 0xc9, 0x7d, 0x9c, 0x93, + 0x22, 0x2d, 0xee, 0xdb, 0xb1, 0x48, 0xfc, 0xa4, 0x41, 0x4e, 0x0e, 0x44, 0x24, 0x60, 0xa3, 0x4e, + 0xf1, 0xc7, 0x49, 0x26, 0x16, 0xc1, 0xc9, 0xfb, 0xf8, 0x5b, 0xe4, 0x75, 0x9c, 0xb3, 0x00, 0x80, + 0x1b, 0x28, 0xfa, 0x78, 0x00, 0x85, 0xe4, 0x4f, 0x3c, 0x49, 0x47, 0x5e, 0xd8, 0x69, 0x50, 0x8e, + 0xe7, 0x9c, 0x93, 0x74, 0xa4, 0xc6, 0x64, 0x09, 0x32, 0x9e, 0x15, 0xb5, 0x4e, 0xd2, 0x2e, 0x1c, + 0x55, 0xb3, 0x2a, 0xc1, 0x94, 0xde, 0x80, 0x99, 0x68, 0xb3, 0x01, 0x23, 0x4b, 0x0d, 0x5a, 0xc4, + 0xc8, 0xd5, 0xf2, 0x2f, 0xaf, 0x56, 0xb5, 0x5f, 0x5f, 0xad, 0x6a, 0x2f, 0x5f, 0xad, 0x6a, 0x9f, + 0xad, 0x29, 0x9b, 0x1d, 0x56, 0xb1, 0x7c, 0xa7, 0x72, 0xc6, 0xdf, 0xe1, 0x46, 0x16, 0x6f, 0x7e, + 0xf3, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x77, 0x6d, 0xd7, 0xd3, 0x3b, 0x16, 0x00, 0x00, } diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto index f8c8c3bd58..a86c295033 100644 --- a/networking/v1alpha3/virtual_service.proto +++ b/networking/v1alpha3/virtual_service.proto @@ -874,7 +874,7 @@ message HTTPRetry { // The supported policies can be found in // "https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-on" // and "https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-grpc-on" - string retryOn = 3; + string retry_on = 3; } // Describes the Cross-Origin Resource Sharing (CORS) policy, for a given diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py index 10b7d0c00d..4588a89298 100644 --- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py +++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py @@ -21,7 +21,7 @@ name='networking/v1alpha3/virtual_service.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xc9\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xb4\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\x1f\n\x17remove_response_headers\x18\x0c \x03(\t\x12`\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x0e \x03(\t\x12^\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry\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\"\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\"\xf7\x03\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\x1f\n\x17remove_response_headers\x18\x03 \x03(\t\x12k\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x05 \x03(\t\x12i\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry\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\"b\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\x0f\n\x07retryOn\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\"\xc9\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xb4\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\x1f\n\x17remove_response_headers\x18\x0c \x03(\t\x12`\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x0e \x03(\t\x12^\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry\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\"\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\"\xf7\x03\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\x1f\n\x17remove_response_headers\x18\x03 \x03(\t\x12k\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x05 \x03(\t\x12i\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry\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,]) @@ -1125,7 +1125,7 @@ is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='retryOn', full_name='istio.networking.v1alpha3.HTTPRetry.retryOn', index=2, + name='retry_on', full_name='istio.networking.v1alpha3.HTTPRetry.retry_on', 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, @@ -1144,7 +1144,7 @@ oneofs=[ ], serialized_start=3659, - serialized_end=3757, + serialized_end=3758, ) @@ -1209,8 +1209,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3760, - serialized_end=3963, + serialized_start=3761, + serialized_end=3964, ) @@ -1264,8 +1264,8 @@ name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4125, - serialized_end=4334, + serialized_start=4126, + serialized_end=4335, ) _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( @@ -1325,8 +1325,8 @@ name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4337, - serialized_end=4504, + serialized_start=4338, + serialized_end=4505, ) _HTTPFAULTINJECTION = _descriptor.Descriptor( @@ -1362,8 +1362,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3966, - serialized_end=4504, + serialized_start=3967, + serialized_end=4505, ) @@ -1403,8 +1403,8 @@ name='port', full_name='istio.networking.v1alpha3.PortSelector.port', index=0, containing_type=None, fields=[]), ], - serialized_start=4506, - serialized_end=4562, + serialized_start=4507, + serialized_end=4563, ) @@ -1434,8 +1434,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4564, - serialized_end=4588, + serialized_start=4565, + serialized_end=4589, ) _VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE From 7ce9562e503f80fa461006dde844207d4586a389 Mon Sep 17 00:00:00 2001 From: Gregory Hanson Date: Wed, 31 Oct 2018 09:13:07 -0500 Subject: [PATCH 05/11] re-add deprecated fields, but hide from docs. also resurrect outbound traffic policy config (#680) --- mesh/v1alpha1/config.pb.go | 504 ++++++++++++++++--- mesh/v1alpha1/config.proto | 33 +- mesh/v1alpha1/istio.mesh.v1alpha1.pb.html | 70 ++- mesh/v1alpha1/proxy.pb.go | 220 +++++--- mesh/v1alpha1/proxy.proto | 6 +- python/istio_api/mesh/v1alpha1/config_pb2.py | 149 +++++- python/istio_api/mesh/v1alpha1/proxy_pb2.py | 53 +- 7 files changed, 879 insertions(+), 156 deletions(-) diff --git a/mesh/v1alpha1/config.pb.go b/mesh/v1alpha1/config.pb.go index 04cfb65148..465d95e2f4 100644 --- a/mesh/v1alpha1/config.pb.go +++ b/mesh/v1alpha1/config.pb.go @@ -99,6 +99,36 @@ func (MeshConfig_AuthPolicy) EnumDescriptor() ([]byte, []int) { return fileDescriptorConfig, []int{0, 1} } +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 + MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY MeshConfig_OutboundTrafficPolicy_Mode = 0 + // outbound traffic to unknown destinations will be allowed + 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, +} + +func (x MeshConfig_OutboundTrafficPolicy_Mode) String() string { + return proto.EnumName(MeshConfig_OutboundTrafficPolicy_Mode_name, int32(x)) +} +func (MeshConfig_OutboundTrafficPolicy_Mode) EnumDescriptor() ([]byte, []int) { + return fileDescriptorConfig, []int{0, 0, 0} +} + // MeshConfig defines mesh-wide variables shared by all Envoy instances in the // Istio service mesh. // @@ -145,6 +175,8 @@ type MeshConfig struct { IngressControllerMode MeshConfig_IngressControllerMode `protobuf:"varint,9,opt,name=ingress_controller_mode,json=ingressControllerMode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_IngressControllerMode" json:"ingress_controller_mode,omitempty"` // $hide_from_docs AuthPolicy MeshConfig_AuthPolicy `protobuf:"varint,10,opt,name=auth_policy,json=authPolicy,proto3,enum=istio.mesh.v1alpha1.MeshConfig_AuthPolicy" json:"auth_policy,omitempty"` + // $hide_from_docs + RdsRefreshDelay *google_protobuf.Duration `protobuf:"bytes,11,opt,name=rds_refresh_delay,json=rdsRefreshDelay" json:"rds_refresh_delay,omitempty"` // Flag to control generation of trace spans and request IDs. // Requires a trace span collector defined in the proxy configuration. EnableTracing bool `protobuf:"varint,12,opt,name=enable_tracing,json=enableTracing,proto3" json:"enable_tracing,omitempty"` @@ -160,11 +192,22 @@ type MeshConfig struct { // and remain constant for the duration of the pod. The rest of the mesh config can be changed // at runtime and config gets distributed dynamically. 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. + 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"` // 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. SdsUdsPath string `protobuf:"bytes,20,opt,name=sds_uds_path,json=sdsUdsPath,proto3" json:"sds_uds_path,omitempty"` + // $hide_from_docs + SdsRefreshDelay *google_protobuf.Duration `protobuf:"bytes,21,opt,name=sds_refresh_delay,json=sdsRefreshDelay" json:"sds_refresh_delay,omitempty"` // ConfigSource describes a source of configuration data for networking // rules, and other Istio configuration artifacts. Multiple data sources // can be configured for a single control plane. @@ -259,6 +302,13 @@ func (m *MeshConfig) GetAuthPolicy() MeshConfig_AuthPolicy { return MeshConfig_NONE } +func (m *MeshConfig) GetRdsRefreshDelay() *google_protobuf.Duration { + if m != nil { + return m.RdsRefreshDelay + } + return nil +} + func (m *MeshConfig) GetEnableTracing() bool { if m != nil { return m.EnableTracing @@ -287,6 +337,20 @@ func (m *MeshConfig) GetDefaultConfig() *ProxyConfig { return nil } +func (m *MeshConfig) GetMixerAddress() string { + if m != nil { + return m.MixerAddress + } + return "" +} + +func (m *MeshConfig) GetOutboundTrafficPolicy() *MeshConfig_OutboundTrafficPolicy { + if m != nil { + return m.OutboundTrafficPolicy + } + return nil +} + func (m *MeshConfig) GetEnableClientSidePolicyCheck() bool { if m != nil { return m.EnableClientSidePolicyCheck @@ -301,6 +365,13 @@ func (m *MeshConfig) GetSdsUdsPath() string { return "" } +func (m *MeshConfig) GetSdsRefreshDelay() *google_protobuf.Duration { + if m != nil { + return m.SdsRefreshDelay + } + return nil +} + func (m *MeshConfig) GetConfigSources() []*ConfigSource { if m != nil { return m.ConfigSources @@ -315,6 +386,24 @@ func (m *MeshConfig) GetEnableSdsTokenMount() bool { return false } +type MeshConfig_OutboundTrafficPolicy struct { + Mode MeshConfig_OutboundTrafficPolicy_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode" json:"mode,omitempty"` +} + +func (m *MeshConfig_OutboundTrafficPolicy) Reset() { *m = MeshConfig_OutboundTrafficPolicy{} } +func (m *MeshConfig_OutboundTrafficPolicy) String() string { return proto.CompactTextString(m) } +func (*MeshConfig_OutboundTrafficPolicy) ProtoMessage() {} +func (*MeshConfig_OutboundTrafficPolicy) Descriptor() ([]byte, []int) { + return fileDescriptorConfig, []int{0, 0} +} + +func (m *MeshConfig_OutboundTrafficPolicy) GetMode() MeshConfig_OutboundTrafficPolicy_Mode { + if m != nil { + return m.Mode + } + return MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY +} + // ConfigSource describes information about a configuration store inside a // mesh. A single control plane instance can interact with one or more data // sources. @@ -350,9 +439,11 @@ func (m *ConfigSource) GetTlsSettings() *istio_networking_v1alpha31.TLSSettings func init() { proto.RegisterType((*MeshConfig)(nil), "istio.mesh.v1alpha1.MeshConfig") + proto.RegisterType((*MeshConfig_OutboundTrafficPolicy)(nil), "istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy") proto.RegisterType((*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_OutboundTrafficPolicy_Mode", MeshConfig_OutboundTrafficPolicy_Mode_name, MeshConfig_OutboundTrafficPolicy_Mode_value) } func (m *MeshConfig) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -433,6 +524,16 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintConfig(dAtA, i, uint64(m.AuthPolicy)) } + if m.RdsRefreshDelay != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintConfig(dAtA, i, uint64(m.RdsRefreshDelay.Size())) + n2, err := m.RdsRefreshDelay.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } if m.EnableTracing { dAtA[i] = 0x60 i++ @@ -453,11 +554,31 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintConfig(dAtA, i, uint64(m.DefaultConfig.Size())) - n2, err := m.DefaultConfig.MarshalTo(dAtA[i:]) + n3, err := m.DefaultConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n2 + i += n3 + } + if len(m.MixerAddress) > 0 { + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintConfig(dAtA, i, uint64(len(m.MixerAddress))) + i += copy(dAtA[i:], m.MixerAddress) + } + if m.OutboundTrafficPolicy != nil { + dAtA[i] = 0x8a + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintConfig(dAtA, i, uint64(m.OutboundTrafficPolicy.Size())) + n4, err := m.OutboundTrafficPolicy.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 } if m.EnableClientSidePolicyCheck { dAtA[i] = 0x98 @@ -479,6 +600,18 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintConfig(dAtA, i, uint64(len(m.SdsUdsPath))) i += copy(dAtA[i:], m.SdsUdsPath) } + if m.SdsRefreshDelay != nil { + dAtA[i] = 0xaa + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintConfig(dAtA, i, uint64(m.SdsRefreshDelay.Size())) + n5, err := m.SdsRefreshDelay.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } if len(m.ConfigSources) > 0 { for _, msg := range m.ConfigSources { dAtA[i] = 0xb2 @@ -528,6 +661,29 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *MeshConfig_OutboundTrafficPolicy) 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_OutboundTrafficPolicy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Mode != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintConfig(dAtA, i, uint64(m.Mode)) + } + return i, nil +} + func (m *ConfigSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -553,11 +709,11 @@ func (m *ConfigSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintConfig(dAtA, i, uint64(m.TlsSettings.Size())) - n3, err := m.TlsSettings.MarshalTo(dAtA[i:]) + n6, err := m.TlsSettings.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n6 } return i, nil } @@ -609,6 +765,10 @@ func (m *MeshConfig) Size() (n int) { if m.AuthPolicy != 0 { n += 1 + sovConfig(uint64(m.AuthPolicy)) } + if m.RdsRefreshDelay != nil { + l = m.RdsRefreshDelay.Size() + n += 1 + l + sovConfig(uint64(l)) + } if m.EnableTracing { n += 2 } @@ -620,6 +780,14 @@ func (m *MeshConfig) Size() (n int) { l = m.DefaultConfig.Size() n += 1 + l + sovConfig(uint64(l)) } + l = len(m.MixerAddress) + if l > 0 { + n += 2 + l + sovConfig(uint64(l)) + } + if m.OutboundTrafficPolicy != nil { + l = m.OutboundTrafficPolicy.Size() + n += 2 + l + sovConfig(uint64(l)) + } if m.EnableClientSidePolicyCheck { n += 3 } @@ -627,6 +795,10 @@ func (m *MeshConfig) Size() (n int) { if l > 0 { n += 2 + l + sovConfig(uint64(l)) } + if m.SdsRefreshDelay != nil { + l = m.SdsRefreshDelay.Size() + n += 2 + l + sovConfig(uint64(l)) + } if len(m.ConfigSources) > 0 { for _, e := range m.ConfigSources { l = e.Size() @@ -646,6 +818,15 @@ func (m *MeshConfig) Size() (n int) { return n } +func (m *MeshConfig_OutboundTrafficPolicy) Size() (n int) { + var l int + _ = l + if m.Mode != 0 { + n += 1 + sovConfig(uint64(m.Mode)) + } + return n +} + func (m *ConfigSource) Size() (n int) { var l int _ = l @@ -947,6 +1128,39 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { break } } + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RdsRefreshDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RdsRefreshDelay == nil { + m.RdsRefreshDelay = &google_protobuf.Duration{} + } + if err := m.RdsRefreshDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 12: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field EnableTracing", wireType) @@ -1029,6 +1243,68 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MixerAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MixerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OutboundTrafficPolicy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OutboundTrafficPolicy == nil { + m.OutboundTrafficPolicy = &MeshConfig_OutboundTrafficPolicy{} + } + if err := m.OutboundTrafficPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 19: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field EnableClientSidePolicyCheck", wireType) @@ -1078,6 +1354,39 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { } m.SdsUdsPath = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SdsRefreshDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthConfig + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SdsRefreshDelay == nil { + m.SdsRefreshDelay = &google_protobuf.Duration{} + } + if err := m.SdsRefreshDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 22: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ConfigSources", wireType) @@ -1199,6 +1508,75 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { } 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: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) + } + m.Mode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Mode |= (MeshConfig_OutboundTrafficPolicy_Mode(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipConfig(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthConfig + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ConfigSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1419,58 +1797,68 @@ var ( func init() { proto.RegisterFile("mesh/v1alpha1/config.proto", fileDescriptorConfig) } var fileDescriptorConfig = []byte{ - // 838 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0xdd, 0x4e, 0x23, 0x37, - 0x18, 0xdd, 0x81, 0x2c, 0x84, 0x2f, 0x7f, 0x83, 0x53, 0x58, 0x43, 0x25, 0x9a, 0x52, 0x95, 0x46, - 0xa8, 0x9a, 0x68, 0x83, 0x7a, 0xd1, 0x4b, 0x08, 0x9b, 0x2e, 0x51, 0x58, 0xd0, 0x64, 0xb8, 0xe9, - 0x8d, 0x35, 0xcc, 0x38, 0x33, 0x16, 0x8e, 0x3d, 0x1a, 0x7b, 0xb6, 0xbb, 0xcf, 0xd4, 0x17, 0xe9, - 0x65, 0x1f, 0xa1, 0xe2, 0x49, 0xaa, 0xb1, 0x27, 0x24, 0x48, 0x91, 0xf6, 0xd2, 0xe7, 0x1c, 0xfb, - 0x3b, 0xfe, 0xce, 0x67, 0xc3, 0xf1, 0x82, 0xaa, 0x74, 0xf0, 0xf9, 0x7d, 0xc8, 0xb3, 0x34, 0x7c, - 0x3f, 0x88, 0xa4, 0x98, 0xb3, 0xc4, 0xcb, 0x72, 0xa9, 0x25, 0xea, 0x32, 0xa5, 0x99, 0xf4, 0x4a, - 0x85, 0xb7, 0x54, 0x1c, 0x9f, 0x24, 0x52, 0x26, 0x9c, 0x0e, 0x8c, 0xe4, 0xb1, 0x98, 0x0f, 0xe2, - 0x22, 0x0f, 0x35, 0x93, 0xc2, 0x6e, 0x3a, 0x3e, 0x7a, 0x7d, 0x60, 0x96, 0xcb, 0x2f, 0x5f, 0x2b, - 0xea, 0x5c, 0x50, 0xfd, 0x97, 0xcc, 0x9f, 0x98, 0x48, 0x96, 0x82, 0x8b, 0x41, 0x4c, 0x95, 0x66, - 0xc2, 0x9c, 0x40, 0xf2, 0x82, 0x53, 0xab, 0x3d, 0xfd, 0x7b, 0x0f, 0xe0, 0x96, 0xaa, 0x74, 0x64, - 0x0c, 0xa1, 0x5f, 0x01, 0x2d, 0xd8, 0x17, 0x9a, 0x93, 0x28, 0xa5, 0xd1, 0x13, 0x51, 0x34, 0xff, - 0x4c, 0x73, 0xec, 0xf4, 0x9c, 0xfe, 0x9e, 0xef, 0x1a, 0x66, 0x54, 0x12, 0x33, 0x83, 0x23, 0x0f, - 0xba, 0x56, 0x9d, 0xd3, 0x4c, 0xe6, 0x7a, 0x29, 0xdf, 0x32, 0xf2, 0x7d, 0x43, 0xf9, 0x86, 0xa9, - 0xf4, 0x43, 0x38, 0x88, 0x99, 0x0a, 0x1f, 0x39, 0x25, 0x99, 0xe4, 0x2c, 0xfa, 0x6a, 0xcb, 0x28, - 0xbc, 0xdd, 0x73, 0xfa, 0x75, 0xbf, 0x5b, 0x91, 0xf7, 0x86, 0x33, 0x85, 0x14, 0x3a, 0x87, 0x7d, - 0x73, 0x37, 0xc2, 0x99, 0xd2, 0x54, 0x90, 0xf2, 0x38, 0x5c, 0xeb, 0x39, 0xfd, 0xb7, 0x7e, 0xc7, - 0x10, 0x53, 0x83, 0xdf, 0xcb, 0x5c, 0xa3, 0x33, 0xb0, 0x10, 0x49, 0xb5, 0xce, 0xac, 0xf2, 0xad, - 0x51, 0xb6, 0x0c, 0xfc, 0x51, 0xeb, 0xcc, 0xe8, 0xae, 0xa0, 0x13, 0x49, 0x21, 0x68, 0xa4, 0x89, - 0x66, 0x0b, 0x2a, 0x0b, 0x8d, 0x77, 0x7a, 0x4e, 0xbf, 0x31, 0x3c, 0xf2, 0x6c, 0xd7, 0xbd, 0x65, - 0xd7, 0xbd, 0xeb, 0xaa, 0xeb, 0x7e, 0xbb, 0xda, 0x11, 0xd8, 0x0d, 0xe8, 0x27, 0x68, 0x31, 0x91, - 0xe4, 0x54, 0x29, 0x12, 0xf1, 0x50, 0x29, 0xbc, 0x6b, 0x6e, 0xdd, 0xac, 0xc0, 0x51, 0x89, 0xa1, - 0x5f, 0xa0, 0xb3, 0x14, 0x95, 0xbd, 0x61, 0x11, 0xc5, 0x75, 0x23, 0x6b, 0x57, 0xf0, 0xcc, 0xa2, - 0x68, 0x01, 0xef, 0x5e, 0x4e, 0x93, 0x42, 0xe7, 0x92, 0x73, 0x9a, 0x93, 0x85, 0x8c, 0x29, 0xde, - 0xeb, 0x39, 0xfd, 0xf6, 0xf0, 0x37, 0x6f, 0xc3, 0x90, 0x78, 0xab, 0xe4, 0xbc, 0x9b, 0xaa, 0xee, - 0xcb, 0xee, 0x5b, 0x19, 0x53, 0xff, 0x80, 0x6d, 0x82, 0xd1, 0x1d, 0x34, 0xc2, 0x42, 0xa7, 0x55, - 0x0a, 0x18, 0x4c, 0x89, 0xf3, 0x6f, 0x95, 0xb8, 0x2c, 0x74, 0x6a, 0xb3, 0xb9, 0xda, 0xc2, 0x8e, - 0x0f, 0xe1, 0xcb, 0x1a, 0xfd, 0x0c, 0x6d, 0x2a, 0x4c, 0xb0, 0x3a, 0x0f, 0x23, 0x26, 0x12, 0xdc, - 0x34, 0x91, 0xb6, 0x2c, 0x1a, 0x58, 0xb0, 0x0c, 0x28, 0x8c, 0xa2, 0xf2, 0x96, 0x5c, 0x26, 0x64, - 0xce, 0x38, 0xc5, 0x2d, 0xd3, 0x8f, 0x96, 0x85, 0xa7, 0x32, 0x19, 0x33, 0x4e, 0xd1, 0x1f, 0xd0, - 0x8e, 0xe9, 0x3c, 0x2c, 0xb8, 0x26, 0xf6, 0xa5, 0xe0, 0xb6, 0xc9, 0xa7, 0xb7, 0xd1, 0xe2, 0x7d, - 0x19, 0xae, 0xf5, 0xe8, 0xb7, 0xaa, 0x7d, 0xd5, 0x3c, 0x5f, 0xc3, 0x0f, 0x95, 0xaf, 0x88, 0x33, - 0x2a, 0x34, 0x51, 0x2c, 0x7e, 0x3d, 0x7c, 0xb8, 0x6b, 0x8c, 0x7e, 0x6f, 0x65, 0x23, 0xa3, 0x9a, - 0xb1, 0x78, 0x7d, 0x08, 0x51, 0x0f, 0x9a, 0x2a, 0x56, 0xa4, 0x88, 0x15, 0xc9, 0x42, 0x9d, 0xe2, - 0xef, 0x8c, 0x67, 0x50, 0xb1, 0x7a, 0x88, 0xd5, 0x7d, 0xa8, 0x53, 0xf4, 0x11, 0xda, 0xd6, 0x28, - 0x51, 0xb2, 0xc8, 0x23, 0xaa, 0xf0, 0x61, 0x6f, 0xbb, 0xdf, 0x18, 0xfe, 0xb8, 0xd1, 0xb0, 0x35, - 0x37, 0x33, 0x4a, 0xbf, 0x15, 0xad, 0xad, 0x14, 0xba, 0x80, 0xc3, 0xca, 0x71, 0x59, 0x52, 0xcb, - 0x27, 0x2a, 0xc8, 0x42, 0x16, 0x42, 0xe3, 0x77, 0xf6, 0x91, 0x58, 0x76, 0x16, 0xab, 0xa0, 0xe4, - 0x6e, 0x4b, 0xaa, 0x7c, 0x24, 0xeb, 0x7d, 0x95, 0xf9, 0x22, 0xd4, 0x18, 0x1b, 0x97, 0x9d, 0x55, - 0x67, 0x0d, 0x5c, 0x16, 0x58, 0xbf, 0x3f, 0x99, 0x87, 0x8c, 0x13, 0x99, 0x51, 0x81, 0x8f, 0x6c, - 0x81, 0x6c, 0x75, 0xf3, 0x71, 0xc8, 0xf8, 0x5d, 0x46, 0xc5, 0xe9, 0xef, 0x70, 0xb0, 0x71, 0xc0, - 0xd0, 0x2e, 0x6c, 0xdf, 0x8d, 0xc7, 0xee, 0x1b, 0xd4, 0x80, 0xdd, 0xeb, 0x0f, 0xe3, 0xcb, 0x87, - 0x69, 0xe0, 0x3a, 0x08, 0x60, 0x67, 0x16, 0xf8, 0x37, 0xa3, 0xc0, 0xdd, 0x3a, 0x3d, 0x03, 0x58, - 0x0d, 0x0e, 0xaa, 0x43, 0xed, 0xd3, 0xdd, 0xa7, 0x0f, 0xee, 0x1b, 0xd4, 0x06, 0xb8, 0x7d, 0x08, - 0x1e, 0x2e, 0xa7, 0x24, 0x98, 0xce, 0x5c, 0x67, 0x52, 0xab, 0x37, 0xdc, 0xe6, 0xa4, 0x56, 0xef, - 0xb8, 0xee, 0xa4, 0x56, 0x77, 0xdd, 0xfd, 0x49, 0xad, 0xbe, 0xef, 0xa2, 0x49, 0xad, 0x8e, 0xdc, - 0xee, 0xa4, 0x56, 0x3f, 0x70, 0x0f, 0x4f, 0x15, 0x34, 0xd7, 0x7b, 0x87, 0x30, 0xec, 0x86, 0x71, - 0x5c, 0xda, 0xaa, 0xfe, 0xa8, 0xe5, 0x12, 0xdd, 0x40, 0x53, 0xf3, 0xf2, 0xd5, 0x69, 0xcd, 0x44, - 0xa2, 0xcc, 0x9f, 0xd4, 0x18, 0x9e, 0x55, 0x71, 0xac, 0x3e, 0xc8, 0x65, 0x28, 0x17, 0x5e, 0x30, - 0x9d, 0xcd, 0x2a, 0xb5, 0xdf, 0xd0, 0x5c, 0x2d, 0x17, 0x57, 0xfd, 0x7f, 0x9e, 0x4f, 0x9c, 0x7f, - 0x9f, 0x4f, 0x9c, 0xff, 0x9e, 0x4f, 0x9c, 0x3f, 0x8f, 0xed, 0x09, 0x4c, 0x0e, 0xc2, 0x8c, 0x0d, - 0x5e, 0x7d, 0xc2, 0x8f, 0x3b, 0xe6, 0xdb, 0xb8, 0xf8, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x5f, - 0x27, 0x27, 0xed, 0x05, 0x00, 0x00, + // 1001 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdd, 0x4e, 0xe3, 0x46, + 0x14, 0x5e, 0x43, 0x16, 0xc2, 0xc9, 0x9f, 0x19, 0x36, 0xcb, 0x90, 0x56, 0x34, 0xa5, 0x2a, 0x1b, + 0xa1, 0xca, 0xd1, 0x82, 0x7a, 0xd1, 0xde, 0x85, 0x00, 0xbb, 0x59, 0x05, 0x82, 0x6c, 0xb3, 0x15, + 0xbd, 0x19, 0x19, 0x7b, 0x92, 0x8c, 0x70, 0x3c, 0xae, 0x67, 0xbc, 0x5d, 0xae, 0xfb, 0x58, 0x7d, + 0x81, 0x5e, 0xf6, 0x11, 0x2a, 0x9e, 0xa4, 0x9a, 0x19, 0x07, 0x42, 0x1b, 0x89, 0xaa, 0x97, 0xfe, + 0xbe, 0xef, 0xcc, 0xf1, 0xf9, 0xce, 0x39, 0x33, 0xd0, 0x9a, 0x51, 0x31, 0xed, 0x7e, 0x7a, 0x1b, + 0xc4, 0xe9, 0x34, 0x78, 0xdb, 0x0d, 0x79, 0x32, 0x66, 0x13, 0x27, 0xcd, 0xb8, 0xe4, 0x68, 0x8b, + 0x09, 0xc9, 0xb8, 0xa3, 0x14, 0xce, 0x5c, 0xd1, 0xda, 0x9d, 0x70, 0x3e, 0x89, 0x69, 0x57, 0x4b, + 0x6e, 0xf2, 0x71, 0x37, 0xca, 0xb3, 0x40, 0x32, 0x9e, 0x98, 0xa0, 0xd6, 0xce, 0xd3, 0x03, 0xd3, + 0x8c, 0x7f, 0xbe, 0x2b, 0xa8, 0x83, 0x84, 0xca, 0x5f, 0x79, 0x76, 0xcb, 0x92, 0xc9, 0x5c, 0x70, + 0xd4, 0x8d, 0xa8, 0x90, 0x2c, 0xd1, 0x27, 0x90, 0x2c, 0x8f, 0xa9, 0xd1, 0xee, 0xfd, 0x56, 0x03, + 0x38, 0xa7, 0x62, 0xda, 0xd7, 0x3f, 0x84, 0xbe, 0x03, 0x34, 0x63, 0x9f, 0x69, 0x46, 0xc2, 0x29, + 0x0d, 0x6f, 0x89, 0xa0, 0xd9, 0x27, 0x9a, 0x61, 0xab, 0x6d, 0x75, 0x36, 0x5c, 0x5b, 0x33, 0x7d, + 0x45, 0x78, 0x1a, 0x47, 0x0e, 0x6c, 0x19, 0x75, 0x46, 0x53, 0x9e, 0xc9, 0xb9, 0x7c, 0x45, 0xcb, + 0x37, 0x35, 0xe5, 0x6a, 0xa6, 0xd0, 0x1f, 0x42, 0x33, 0x62, 0x22, 0xb8, 0x89, 0x29, 0x49, 0x79, + 0xcc, 0xc2, 0x3b, 0x93, 0x46, 0xe0, 0xd5, 0xb6, 0xd5, 0x29, 0xbb, 0x5b, 0x05, 0x79, 0xa9, 0x39, + 0x9d, 0x48, 0xa0, 0x03, 0xd8, 0xd4, 0xb5, 0x91, 0x98, 0x09, 0x49, 0x13, 0xa2, 0x8e, 0xc3, 0xa5, + 0xb6, 0xd5, 0x79, 0xe9, 0x36, 0x34, 0x31, 0xd4, 0xf8, 0x25, 0xcf, 0x24, 0xda, 0x07, 0x03, 0x91, + 0xa9, 0x94, 0xa9, 0x51, 0xbe, 0xd4, 0xca, 0x9a, 0x86, 0xdf, 0x4b, 0x99, 0x6a, 0xdd, 0x31, 0x34, + 0x42, 0x9e, 0x24, 0x34, 0x94, 0x44, 0xb2, 0x19, 0xe5, 0xb9, 0xc4, 0x6b, 0x6d, 0xab, 0x53, 0x39, + 0xdc, 0x71, 0x8c, 0xeb, 0xce, 0xdc, 0x75, 0xe7, 0xa4, 0x70, 0xdd, 0xad, 0x17, 0x11, 0xbe, 0x09, + 0x40, 0xdf, 0x40, 0x8d, 0x25, 0x93, 0x8c, 0x0a, 0x41, 0xc2, 0x38, 0x10, 0x02, 0xaf, 0xeb, 0xaa, + 0xab, 0x05, 0xd8, 0x57, 0x18, 0x7a, 0x03, 0x8d, 0xb9, 0x48, 0x79, 0xc3, 0x42, 0x8a, 0xcb, 0x5a, + 0x56, 0x2f, 0x60, 0xcf, 0xa0, 0x68, 0x06, 0xdb, 0x0f, 0xa7, 0xf1, 0x44, 0x66, 0x3c, 0x8e, 0x69, + 0x46, 0x66, 0x3c, 0xa2, 0x78, 0xa3, 0x6d, 0x75, 0xea, 0x87, 0xdf, 0x3b, 0x4b, 0x86, 0xc4, 0x79, + 0xec, 0x9c, 0x33, 0x28, 0xf2, 0x3e, 0x44, 0x9f, 0xf3, 0x88, 0xba, 0x4d, 0xb6, 0x0c, 0x46, 0x23, + 0xa8, 0x04, 0xb9, 0x9c, 0x16, 0x5d, 0xc0, 0xa0, 0x53, 0x1c, 0x3c, 0x97, 0xa2, 0x97, 0xcb, 0xa9, + 0xe9, 0xcd, 0xf1, 0x0a, 0xb6, 0x5c, 0x08, 0x1e, 0xbe, 0xd1, 0x00, 0x36, 0xb3, 0x48, 0x90, 0x8c, + 0x8e, 0x33, 0x2a, 0xa6, 0x24, 0xa2, 0x71, 0x70, 0x87, 0x2b, 0xcf, 0x78, 0xaa, 0x4f, 0x69, 0x64, + 0x91, 0x70, 0x4d, 0xd8, 0x89, 0x8a, 0x42, 0xdf, 0x42, 0x9d, 0x26, 0x7a, 0x46, 0x64, 0x16, 0x84, + 0x2c, 0x99, 0xe0, 0xaa, 0x9e, 0x8e, 0x9a, 0x41, 0x7d, 0x03, 0xaa, 0x5e, 0x07, 0x61, 0xa8, 0x0c, + 0x8b, 0xf9, 0x84, 0x8c, 0x59, 0x4c, 0x71, 0x4d, 0x5b, 0x5b, 0x33, 0xf0, 0x90, 0x4f, 0xce, 0x58, + 0x4c, 0xd1, 0x3b, 0xa8, 0x47, 0x74, 0x1c, 0xe4, 0xb1, 0x24, 0x66, 0xe9, 0x70, 0x5d, 0xff, 0x56, + 0x7b, 0x69, 0xb5, 0x97, 0x6a, 0x4e, 0x4c, 0xb9, 0x6e, 0xad, 0x88, 0x2b, 0x56, 0xe3, 0x0d, 0xd4, + 0xcc, 0xb0, 0x07, 0x51, 0xa4, 0x2c, 0xc5, 0xb6, 0x4a, 0xa7, 0x6b, 0xa8, 0x6a, 0xa2, 0x67, 0x70, + 0xf4, 0x0b, 0x6c, 0xf3, 0x5c, 0xde, 0xf0, 0x3c, 0x89, 0x54, 0x09, 0xe3, 0x31, 0x0b, 0xe7, 0x46, + 0x6f, 0xea, 0xd4, 0xcf, 0xf6, 0x72, 0x54, 0x84, 0xfb, 0x26, 0x7a, 0xc1, 0xf3, 0x26, 0x5f, 0x46, + 0xa1, 0x13, 0xf8, 0xaa, 0xf0, 0x2c, 0x8c, 0x19, 0x4d, 0x24, 0x11, 0x2c, 0x7a, 0xba, 0x63, 0x78, + 0x4b, 0x9b, 0xf8, 0x85, 0x91, 0xf5, 0xb5, 0xca, 0x63, 0xd1, 0xe2, 0xae, 0xa1, 0x36, 0x54, 0x45, + 0x24, 0x48, 0x1e, 0x09, 0x92, 0x06, 0x72, 0x8a, 0x5f, 0x69, 0x3f, 0x41, 0x44, 0xe2, 0x2a, 0x12, + 0x97, 0x81, 0x9c, 0xaa, 0x36, 0x8b, 0x7f, 0xb5, 0xb9, 0xf9, 0x9f, 0xda, 0x2c, 0xfe, 0xd1, 0xe6, + 0xf7, 0x50, 0x37, 0xfd, 0x20, 0x82, 0xe7, 0x59, 0x48, 0x05, 0x7e, 0xdd, 0x5e, 0xed, 0x54, 0x0e, + 0xbf, 0x5e, 0x6a, 0x8e, 0x31, 0xc6, 0xd3, 0x4a, 0xb7, 0x16, 0x2e, 0x7c, 0x09, 0x74, 0x04, 0xaf, + 0x8b, 0xe2, 0xd5, 0xbf, 0x49, 0x7e, 0x4b, 0x13, 0x32, 0xe3, 0x79, 0x22, 0xf1, 0xb6, 0xb9, 0x56, + 0x0c, 0xeb, 0x45, 0xc2, 0x57, 0xdc, 0xb9, 0xa2, 0xd4, 0xb5, 0xb2, 0x38, 0x3e, 0x3c, 0x9b, 0x05, + 0x12, 0x63, 0x5d, 0x70, 0xe3, 0x71, 0x80, 0x34, 0xac, 0x12, 0x2c, 0x5a, 0x49, 0xc6, 0x01, 0x8b, + 0x09, 0x4f, 0x69, 0x82, 0x77, 0x4c, 0x82, 0xf4, 0xd1, 0xc4, 0xb3, 0x80, 0xc5, 0xa3, 0x94, 0x26, + 0xad, 0xdf, 0x2d, 0x68, 0x2e, 0xed, 0x23, 0x72, 0xa1, 0xa4, 0x17, 0xdb, 0xd2, 0x5b, 0xf7, 0xe3, + 0xff, 0x1a, 0x06, 0x47, 0xad, 0xb1, 0x36, 0x56, 0x9f, 0xb5, 0x77, 0x01, 0x25, 0xbd, 0xd8, 0x4d, + 0xa8, 0xb9, 0xa7, 0xef, 0x06, 0x9e, 0xef, 0x5e, 0x93, 0xd1, 0xc5, 0xf0, 0xda, 0x7e, 0xd1, 0x5a, + 0x29, 0x5b, 0x68, 0x13, 0x36, 0x7a, 0xc3, 0xe1, 0xe8, 0x27, 0xd2, 0xbb, 0xb8, 0xb6, 0x2d, 0x0d, + 0x7d, 0x09, 0xaf, 0x3e, 0x0e, 0x5c, 0xff, 0xaa, 0x37, 0x24, 0xde, 0xa9, 0xfb, 0x71, 0xd0, 0x3f, + 0x35, 0x01, 0x2b, 0x8a, 0xdd, 0xfb, 0x01, 0x9a, 0x4b, 0x2f, 0x14, 0xb4, 0x0e, 0xab, 0xa3, 0xb3, + 0x33, 0xfb, 0x05, 0xaa, 0xc0, 0xfa, 0xc9, 0xe9, 0x59, 0xef, 0x6a, 0xe8, 0xdb, 0x16, 0x02, 0x58, + 0xf3, 0x7c, 0x77, 0xd0, 0xf7, 0xed, 0x95, 0xbd, 0x7d, 0x80, 0xc7, 0x8b, 0x02, 0x95, 0xa1, 0x74, + 0x31, 0xba, 0x38, 0xb5, 0x5f, 0xa0, 0x3a, 0xc0, 0xf9, 0x95, 0xce, 0xe7, 0x0f, 0x3d, 0xdb, 0xfa, + 0x50, 0x2a, 0x37, 0x6c, 0xfb, 0x43, 0xa9, 0x8c, 0xec, 0xad, 0x3d, 0x01, 0xd5, 0xc5, 0x0e, 0x23, + 0x0c, 0xeb, 0xf3, 0x2d, 0x33, 0x6f, 0xcf, 0xfc, 0x13, 0x0d, 0xa0, 0x2a, 0x63, 0x75, 0x9b, 0x4a, + 0xc9, 0x92, 0x89, 0xd0, 0x6f, 0x4d, 0xe5, 0x70, 0xbf, 0x30, 0xf1, 0xf1, 0xe1, 0x9b, 0x5b, 0x79, + 0xe4, 0xf8, 0x43, 0xcf, 0x2b, 0xd4, 0x6e, 0x45, 0xc6, 0x62, 0xfe, 0x71, 0xdc, 0xf9, 0xe3, 0x7e, + 0xd7, 0xfa, 0xf3, 0x7e, 0xd7, 0xfa, 0xeb, 0x7e, 0xd7, 0xfa, 0xb9, 0x65, 0x4e, 0x60, 0xbc, 0x1b, + 0xa4, 0xac, 0xfb, 0xe4, 0x71, 0xbd, 0x59, 0xd3, 0x33, 0x7d, 0xf4, 0x77, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xaa, 0xfd, 0x16, 0xd2, 0xc5, 0x07, 0x00, 0x00, } diff --git a/mesh/v1alpha1/config.proto b/mesh/v1alpha1/config.proto index 4ed253bc91..8fbd24b69a 100644 --- a/mesh/v1alpha1/config.proto +++ b/mesh/v1alpha1/config.proto @@ -110,7 +110,8 @@ message MeshConfig { // $hide_from_docs AuthPolicy auth_policy = 10 [deprecated=true]; - reserved 11; + // $hide_from_docs + google.protobuf.Duration rds_refresh_delay = 11 [deprecated=true]; // Flag to control generation of trace spans and request IDs. // Requires a trace span collector defined in the proxy configuration. @@ -132,8 +133,31 @@ message MeshConfig { ProxyConfig default_config = 14; reserved 15; - reserved 16; - reserved 17; + + // $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]; + } + Mode mode = 1 [deprecated=true]; + } + + // 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]; + reserved 18; // Enables clide side policy checks. @@ -143,7 +167,8 @@ message MeshConfig { // Use secret-mount files instead of SDS if set to empty. string sds_uds_path = 20; - reserved 21; + // $hide_from_docs + google.protobuf.Duration sds_refresh_delay = 21 [deprecated=true]; // ConfigSource describes a source of configuration data for networking // rules, and other Istio configuration artifacts. Multiple data sources diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html index c78edc388d..a60b6196f5 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: 13 +number_of_entries: 15 ---

AuthenticationPolicy

@@ -236,6 +236,19 @@

MeshConfig

and remain constant for the duration of the pod. The rest of the mesh config can be changed at runtime and config gets distributed dynamically.

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

+
+
+

MeshConfig.OutboundTrafficPolicy

+
+ + + + + + + + + + + + + + + +
FieldTypeDescription
modeMeshConfig.OutboundTrafficPolicy.Mode +
+
+

MeshConfig.OutboundTrafficPolicy.Mode

+
+ + + + + + + + + + + + + + + + + + + diff --git a/mesh/v1alpha1/proxy.pb.go b/mesh/v1alpha1/proxy.pb.go index c1b07a0ddd..e5689b9b77 100644 --- a/mesh/v1alpha1/proxy.pb.go +++ b/mesh/v1alpha1/proxy.pb.go @@ -298,6 +298,8 @@ type ProxyConfig struct { ParentShutdownDuration *google_protobuf.Duration `protobuf:"bytes,5,opt,name=parent_shutdown_duration,json=parentShutdownDuration" json:"parent_shutdown_duration,omitempty"` // Address of the discovery service exposing xDS with mTLS connection. DiscoveryAddress string `protobuf:"bytes,6,opt,name=discovery_address,json=discoveryAddress,proto3" json:"discovery_address,omitempty"` + // $hide_from_docs + DiscoveryRefreshDelay *google_protobuf.Duration `protobuf:"bytes,7,opt,name=discovery_refresh_delay,json=discoveryRefreshDelay" json:"discovery_refresh_delay,omitempty"` // Address of the Zipkin service (e.g. _zipkin:9411_). // DEPRECATED: Use [tracing][istio.mesh.v1alpha1.ProxyConfig.tracing] instead. ZipkinAddress string `protobuf:"bytes,8,opt,name=zipkin_address,json=zipkinAddress,proto3" json:"zipkin_address,omitempty"` @@ -307,6 +309,8 @@ type ProxyConfig struct { StatsdUdpAddress string `protobuf:"bytes,10,opt,name=statsd_udp_address,json=statsdUdpAddress,proto3" json:"statsd_udp_address,omitempty"` // Port on which Envoy should listen for administrative commands. ProxyAdminPort int32 `protobuf:"varint,11,opt,name=proxy_admin_port,json=proxyAdminPort,proto3" json:"proxy_admin_port,omitempty"` + // $hide_from_docs + AvailabilityZone string `protobuf:"bytes,12,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"` // Authentication policy defines the global switch to control authentication // for Envoy-to-Envoy communication for istio components Mixer and Pilot. ControlPlaneAuthPolicy AuthenticationPolicy `protobuf:"varint,13,opt,name=control_plane_auth_policy,json=controlPlaneAuthPolicy,proto3,enum=istio.mesh.v1alpha1.AuthenticationPolicy" json:"control_plane_auth_policy,omitempty"` @@ -376,6 +380,13 @@ func (m *ProxyConfig) GetDiscoveryAddress() string { return "" } +func (m *ProxyConfig) GetDiscoveryRefreshDelay() *google_protobuf.Duration { + if m != nil { + return m.DiscoveryRefreshDelay + } + return nil +} + func (m *ProxyConfig) GetZipkinAddress() string { if m != nil { return m.ZipkinAddress @@ -404,6 +415,13 @@ func (m *ProxyConfig) GetProxyAdminPort() int32 { return 0 } +func (m *ProxyConfig) GetAvailabilityZone() string { + if m != nil { + return m.AvailabilityZone + } + return "" +} + func (m *ProxyConfig) GetControlPlaneAuthPolicy() AuthenticationPolicy { if m != nil { return m.ControlPlaneAuthPolicy @@ -643,6 +661,16 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintProxy(dAtA, i, uint64(len(m.DiscoveryAddress))) i += copy(dAtA[i:], m.DiscoveryAddress) } + if m.DiscoveryRefreshDelay != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintProxy(dAtA, i, uint64(m.DiscoveryRefreshDelay.Size())) + n6, err := m.DiscoveryRefreshDelay.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } if len(m.ZipkinAddress) > 0 { dAtA[i] = 0x42 i++ @@ -653,11 +681,11 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x4a i++ i = encodeVarintProxy(dAtA, i, uint64(m.ConnectTimeout.Size())) - n6, err := m.ConnectTimeout.MarshalTo(dAtA[i:]) + n7, err := m.ConnectTimeout.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n7 } if len(m.StatsdUdpAddress) > 0 { dAtA[i] = 0x52 @@ -670,6 +698,12 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintProxy(dAtA, i, uint64(m.ProxyAdminPort)) } + if len(m.AvailabilityZone) > 0 { + dAtA[i] = 0x62 + i++ + i = encodeVarintProxy(dAtA, i, uint64(len(m.AvailabilityZone))) + i += copy(dAtA[i:], m.AvailabilityZone) + } if m.ControlPlaneAuthPolicy != 0 { dAtA[i] = 0x68 i++ @@ -714,11 +748,11 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintProxy(dAtA, i, uint64(m.Tracing.Size())) - n7, err := m.Tracing.MarshalTo(dAtA[i:]) + n8, err := m.Tracing.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n8 } return i, nil } @@ -817,6 +851,10 @@ func (m *ProxyConfig) Size() (n int) { if l > 0 { n += 1 + l + sovProxy(uint64(l)) } + if m.DiscoveryRefreshDelay != nil { + l = m.DiscoveryRefreshDelay.Size() + n += 1 + l + sovProxy(uint64(l)) + } l = len(m.ZipkinAddress) if l > 0 { n += 1 + l + sovProxy(uint64(l)) @@ -832,6 +870,10 @@ func (m *ProxyConfig) Size() (n int) { if m.ProxyAdminPort != 0 { n += 1 + sovProxy(uint64(m.ProxyAdminPort)) } + l = len(m.AvailabilityZone) + if l > 0 { + n += 1 + l + sovProxy(uint64(l)) + } if m.ControlPlaneAuthPolicy != 0 { n += 1 + sovProxy(uint64(m.ControlPlaneAuthPolicy)) } @@ -1433,6 +1475,39 @@ func (m *ProxyConfig) Unmarshal(dAtA []byte) error { } m.DiscoveryAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DiscoveryRefreshDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProxy + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProxy + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DiscoveryRefreshDelay == nil { + m.DiscoveryRefreshDelay = &google_protobuf.Duration{} + } + if err := m.DiscoveryRefreshDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ZipkinAddress", wireType) @@ -1543,6 +1618,35 @@ func (m *ProxyConfig) Unmarshal(dAtA []byte) error { break } } + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailabilityZone", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProxy + } + 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 ErrInvalidLengthProxy + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AvailabilityZone = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field ControlPlaneAuthPolicy", wireType) @@ -1839,57 +1943,59 @@ var ( func init() { proto.RegisterFile("mesh/v1alpha1/proxy.proto", fileDescriptorProxy) } var fileDescriptorProxy = []byte{ - // 819 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x94, 0x41, 0x6f, 0xe3, 0x44, - 0x14, 0xc7, 0xeb, 0xd2, 0x4d, 0x9c, 0x97, 0x36, 0x75, 0x67, 0x51, 0x71, 0x23, 0x28, 0xa1, 0x48, - 0x90, 0x05, 0xe4, 0x68, 0xbb, 0x12, 0xe2, 0x02, 0x22, 0xe9, 0x76, 0xd5, 0xac, 0xba, 0xdd, 0xc8, - 0x75, 0x25, 0xd8, 0xcb, 0x68, 0x32, 0x9e, 0xc6, 0xa3, 0x75, 0x66, 0xac, 0x99, 0x71, 0x21, 0xdc, - 0xb8, 0xf0, 0xc1, 0x38, 0x71, 0xe4, 0x23, 0xa0, 0x9e, 0xf8, 0x18, 0xc8, 0x33, 0x76, 0x28, 0xa8, - 0xbb, 0x7b, 0xf3, 0xfc, 0xe7, 0xf7, 0x7f, 0xfe, 0xdb, 0xef, 0xcd, 0xc0, 0xc1, 0x92, 0xe9, 0x6c, - 0x74, 0xf3, 0x98, 0xe4, 0x45, 0x46, 0x1e, 0x8f, 0x0a, 0x25, 0x7f, 0x5e, 0x45, 0x85, 0x92, 0x46, - 0xa2, 0x87, 0x5c, 0x1b, 0x2e, 0xa3, 0x0a, 0x88, 0x1a, 0xa0, 0x7f, 0xb8, 0x90, 0x72, 0x91, 0xb3, - 0x91, 0x45, 0xe6, 0xe5, 0xf5, 0x28, 0x2d, 0x15, 0x31, 0x5c, 0x0a, 0x67, 0x3a, 0xfa, 0x7d, 0x13, - 0xda, 0x89, 0x22, 0x94, 0x8b, 0x05, 0xfa, 0x16, 0x5a, 0xbf, 0xf0, 0xe2, 0x35, 0x17, 0xa1, 0x37, - 0xf0, 0x86, 0xdd, 0xe3, 0x4f, 0xa3, 0x7b, 0x2a, 0x46, 0x35, 0x1d, 0xbd, 0xb2, 0xe8, 0xd9, 0x46, - 0x5c, 0x9b, 0xd0, 0x33, 0xe8, 0xe4, 0x7c, 0x91, 0x19, 0x6d, 0x58, 0x11, 0x6e, 0xda, 0x0a, 0x9f, - 0xbd, 0xb5, 0xc2, 0x79, 0x43, 0x9f, 0x6d, 0xc4, 0xff, 0x5a, 0xfb, 0x47, 0xd0, 0x72, 0xb5, 0x51, - 0x08, 0x6d, 0x92, 0xa6, 0x8a, 0x69, 0x6d, 0x13, 0x75, 0xe2, 0x66, 0xd9, 0xff, 0xd5, 0x83, 0xce, - 0xda, 0xfe, 0x66, 0x0e, 0x7d, 0x02, 0xdb, 0x84, 0x52, 0xa6, 0x35, 0x36, 0xf2, 0x35, 0x13, 0x36, - 0x56, 0x27, 0xee, 0x3a, 0x2d, 0xa9, 0x24, 0xb4, 0x0f, 0x2d, 0xcd, 0x68, 0xa9, 0x58, 0xf8, 0xde, - 0xc0, 0x1b, 0xfa, 0x71, 0xbd, 0x42, 0x1f, 0x43, 0x97, 0x12, 0xca, 0x94, 0xc1, 0x05, 0x31, 0x59, - 0xb8, 0x65, 0x9d, 0xe0, 0xa4, 0x19, 0x31, 0xd9, 0xc4, 0x87, 0x96, 0x51, 0xd5, 0xf2, 0xe8, 0x37, - 0x1f, 0xba, 0xb3, 0xaa, 0x13, 0x27, 0x52, 0x5c, 0xf3, 0x85, 0xb5, 0xda, 0x27, 0x67, 0xf5, 0x6a, - 0xab, 0x95, 0x2a, 0x6b, 0x05, 0xcc, 0xb9, 0x20, 0x6a, 0xe5, 0x00, 0x97, 0x0a, 0x9c, 0x64, 0x81, - 0xcf, 0x61, 0x57, 0x33, 0x75, 0xc3, 0x29, 0xc3, 0x34, 0x2f, 0xb5, 0x61, 0xca, 0xa6, 0xeb, 0xc4, - 0xbd, 0x5a, 0x3e, 0x71, 0x2a, 0xfa, 0x1e, 0x7a, 0xa9, 0x22, 0x5c, 0xe0, 0xa6, 0xaf, 0x36, 0x68, - 0xf7, 0xf8, 0x20, 0x72, 0x8d, 0x8f, 0x9a, 0xc6, 0x47, 0x4f, 0x6b, 0x20, 0xde, 0xb1, 0x86, 0x66, - 0x89, 0x2e, 0x21, 0x2c, 0x88, 0x62, 0xc2, 0x60, 0x9d, 0x95, 0x26, 0x95, 0x3f, 0xdd, 0xa9, 0xf5, - 0xe0, 0x5d, 0xb5, 0xf6, 0x9d, 0xf5, 0xb2, 0x76, 0xae, 0x8b, 0x7e, 0x09, 0x7b, 0x29, 0xd7, 0x54, - 0xde, 0x30, 0xb5, 0xc2, 0x4d, 0x6f, 0x5a, 0xf6, 0x0b, 0x82, 0xf5, 0xc6, 0xb8, 0x6e, 0xd2, 0x23, - 0xe8, 0xb9, 0x11, 0x5a, 0x93, 0x7e, 0x45, 0x4e, 0x36, 0x43, 0x2f, 0xde, 0x71, 0x3b, 0x0d, 0x3a, - 0x81, 0x5d, 0x2a, 0x85, 0x60, 0xd4, 0x60, 0xc3, 0x97, 0x4c, 0x96, 0x26, 0xec, 0xbc, 0x2b, 0x63, - 0xaf, 0x76, 0x24, 0xce, 0x80, 0xbe, 0x02, 0xa4, 0x0d, 0x31, 0x3a, 0xc5, 0x65, 0x5a, 0xac, 0x5f, - 0x09, 0x2e, 0x9c, 0xdb, 0xb9, 0x4a, 0x8b, 0xe6, 0x8d, 0x43, 0x08, 0xec, 0x21, 0xc3, 0x24, 0x5d, - 0x72, 0x81, 0x0b, 0xa9, 0x4c, 0xd8, 0x1d, 0x78, 0xc3, 0x07, 0x71, 0xcf, 0xea, 0xe3, 0x4a, 0x9e, - 0x49, 0x65, 0x50, 0x0a, 0x07, 0x54, 0x0a, 0xa3, 0x64, 0x8e, 0x8b, 0x9c, 0x08, 0x86, 0x49, 0x69, - 0x32, 0x5c, 0xc8, 0x9c, 0xd3, 0x55, 0xb8, 0x33, 0xf0, 0x86, 0xbd, 0xe3, 0x47, 0xf7, 0x9e, 0x87, - 0x71, 0x69, 0x32, 0x26, 0x0c, 0xa7, 0x36, 0xef, 0xcc, 0x1a, 0xe2, 0xfd, 0xba, 0xd6, 0xac, 0x2a, - 0x55, 0x11, 0x4e, 0xaf, 0xd2, 0xd3, 0x52, 0x1b, 0xb9, 0xc4, 0xf5, 0x88, 0x5d, 0xf3, 0x9c, 0x85, - 0x3d, 0x97, 0xde, 0xed, 0xb8, 0x29, 0x7c, 0xc6, 0x73, 0x56, 0xa5, 0xaf, 0xbe, 0x08, 0x0b, 0xb2, - 0x64, 0x38, 0x67, 0x62, 0x61, 0xb2, 0x70, 0xd7, 0xa5, 0xaf, 0xf4, 0x0b, 0xb2, 0x64, 0xe7, 0x56, - 0x45, 0x03, 0x3b, 0xb3, 0xb4, 0x54, 0x8a, 0x09, 0xba, 0x0a, 0x03, 0x0b, 0xdd, 0x95, 0xd0, 0x18, - 0x3e, 0x72, 0x7f, 0x62, 0x2e, 0xa5, 0xd1, 0x46, 0x91, 0x02, 0x1b, 0xb6, 0x2c, 0x72, 0x62, 0x98, - 0x1b, 0xe3, 0x3d, 0x1b, 0xa2, 0x6f, 0xa1, 0x49, 0xc3, 0x24, 0x35, 0x62, 0xc7, 0x9a, 0xc1, 0x1e, - 0x17, 0x86, 0x29, 0xca, 0x8a, 0xea, 0x53, 0xf1, 0x52, 0xa6, 0x2c, 0x44, 0xf6, 0xd7, 0x7c, 0x73, - 0xef, 0xaf, 0xb9, 0x73, 0xaa, 0xa2, 0xa9, 0x98, 0xcb, 0x52, 0xa4, 0xd3, 0x3b, 0x05, 0x5e, 0xc8, - 0x94, 0xc5, 0x01, 0xff, 0x9f, 0x82, 0xbe, 0x86, 0xb6, 0x71, 0x77, 0x4c, 0xf8, 0xd0, 0x4e, 0xc7, - 0x87, 0x6f, 0xbb, 0x87, 0xe2, 0x06, 0x3e, 0x7a, 0x02, 0x1f, 0xbc, 0xe1, 0x25, 0x68, 0x1b, 0xfc, - 0xf8, 0xf4, 0xe9, 0x34, 0x3e, 0x3d, 0x49, 0x82, 0x0d, 0x04, 0xd0, 0x4a, 0x66, 0xf1, 0xcb, 0x1f, - 0x7e, 0x0c, 0xbc, 0xe7, 0x5b, 0x7e, 0x3b, 0xf0, 0x9f, 0x6f, 0xf9, 0xdb, 0xc1, 0xce, 0x17, 0xdf, - 0xc1, 0xfb, 0xf7, 0x35, 0x13, 0xf9, 0xb0, 0x75, 0xf1, 0xf2, 0xe2, 0x34, 0xd8, 0x40, 0x3d, 0x80, - 0x17, 0x57, 0xc9, 0xd5, 0xf8, 0x1c, 0x27, 0xe7, 0x97, 0x81, 0x87, 0xb6, 0xa1, 0x3d, 0xbd, 0x38, - 0x3b, 0x8d, 0xa7, 0x49, 0xf0, 0x77, 0x7b, 0x32, 0xfc, 0xe3, 0xf6, 0xd0, 0xfb, 0xf3, 0xf6, 0xd0, - 0xfb, 0xeb, 0xf6, 0xd0, 0x7b, 0xd5, 0x77, 0xa1, 0xb9, 0x1c, 0x91, 0x82, 0x8f, 0xfe, 0x73, 0xf1, - 0xcf, 0x5b, 0x76, 0xce, 0x9f, 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0x81, 0x53, 0x42, 0xee, 0x10, - 0x06, 0x00, 0x00, + // 862 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x55, 0x5d, 0x6f, 0xe3, 0x44, + 0x14, 0xad, 0x97, 0xdd, 0x7c, 0xdc, 0xb4, 0xa9, 0x3b, 0x0b, 0x5d, 0x37, 0x82, 0x12, 0x8a, 0x04, + 0x59, 0x40, 0x8e, 0xb6, 0x2b, 0x21, 0x5e, 0x40, 0x24, 0x6d, 0x57, 0x8d, 0xd4, 0xed, 0x46, 0xae, + 0x2b, 0x41, 0x5f, 0x46, 0x13, 0xfb, 0x36, 0x1e, 0xad, 0x33, 0x63, 0x8d, 0xc7, 0x85, 0xec, 0x1b, + 0xfc, 0x34, 0x9e, 0x78, 0xe4, 0x27, 0xa0, 0x3e, 0xf1, 0x33, 0x90, 0x67, 0xec, 0x6c, 0x40, 0xdd, + 0xed, 0x5b, 0xe6, 0xcc, 0x39, 0x77, 0xce, 0x99, 0x3b, 0xd7, 0x81, 0xbd, 0x05, 0xe6, 0xc9, 0xf0, + 0xe6, 0x19, 0x4b, 0xb3, 0x84, 0x3d, 0x1b, 0x66, 0x4a, 0xfe, 0xba, 0xf4, 0x33, 0x25, 0xb5, 0x24, + 0x8f, 0x79, 0xae, 0xb9, 0xf4, 0x4b, 0x82, 0x5f, 0x13, 0x7a, 0xfb, 0x73, 0x29, 0xe7, 0x29, 0x0e, + 0x0d, 0x65, 0x56, 0x5c, 0x0f, 0xe3, 0x42, 0x31, 0xcd, 0xa5, 0xb0, 0xa2, 0x83, 0x3f, 0x1e, 0x40, + 0x33, 0x54, 0x2c, 0xe2, 0x62, 0x4e, 0xbe, 0x87, 0xc6, 0x1b, 0x9e, 0xbd, 0xe6, 0xc2, 0x73, 0xfa, + 0xce, 0xa0, 0x73, 0xf8, 0xb9, 0x7f, 0x47, 0x45, 0xbf, 0x62, 0xfb, 0x57, 0x86, 0x7a, 0xba, 0x11, + 0x54, 0x22, 0xf2, 0x02, 0xda, 0x29, 0x9f, 0x27, 0x3a, 0xd7, 0x98, 0x79, 0x0f, 0x4c, 0x85, 0x2f, + 0xde, 0x5b, 0xe1, 0xac, 0x66, 0x9f, 0x6e, 0x04, 0x6f, 0xa5, 0xbd, 0x03, 0x68, 0xd8, 0xda, 0xc4, + 0x83, 0x26, 0x8b, 0x63, 0x85, 0x79, 0x6e, 0x1c, 0xb5, 0x83, 0x7a, 0xd9, 0xfb, 0xcd, 0x81, 0xf6, + 0x4a, 0xfe, 0x6e, 0x1e, 0xf9, 0x0c, 0x36, 0x59, 0x14, 0x61, 0x9e, 0x53, 0x2d, 0x5f, 0xa3, 0x30, + 0xb6, 0xda, 0x41, 0xc7, 0x62, 0x61, 0x09, 0x91, 0x5d, 0x68, 0xe4, 0x18, 0x15, 0x0a, 0xbd, 0x0f, + 0xfa, 0xce, 0xa0, 0x15, 0x54, 0x2b, 0xf2, 0x29, 0x74, 0x22, 0x16, 0xa1, 0xd2, 0x34, 0x63, 0x3a, + 0xf1, 0x1e, 0x1a, 0x25, 0x58, 0x68, 0xca, 0x74, 0x32, 0x6e, 0x41, 0x43, 0xab, 0x72, 0x79, 0xf0, + 0x7b, 0x1b, 0x3a, 0xd3, 0xb2, 0x13, 0x47, 0x52, 0x5c, 0xf3, 0xb9, 0x91, 0x9a, 0x5f, 0x56, 0xea, + 0x54, 0x52, 0x03, 0x95, 0xd2, 0x92, 0x30, 0xe3, 0x82, 0xa9, 0xa5, 0x25, 0x58, 0x57, 0x60, 0x21, + 0x43, 0xf8, 0x12, 0xb6, 0x73, 0x54, 0x37, 0x3c, 0x42, 0x1a, 0xa5, 0x45, 0xae, 0x51, 0x19, 0x77, + 0xed, 0xa0, 0x5b, 0xc1, 0x47, 0x16, 0x25, 0x3f, 0x42, 0x37, 0x56, 0x8c, 0x0b, 0x5a, 0xf7, 0xd5, + 0x18, 0xed, 0x1c, 0xee, 0xf9, 0xb6, 0xf1, 0x7e, 0xdd, 0x78, 0xff, 0xb8, 0x22, 0x04, 0x5b, 0x46, + 0x50, 0x2f, 0xc9, 0x05, 0x78, 0x19, 0x53, 0x28, 0x34, 0xcd, 0x93, 0x42, 0xc7, 0xf2, 0x97, 0xb5, + 0x5a, 0x8f, 0xee, 0xab, 0xb5, 0x6b, 0xa5, 0x17, 0x95, 0x72, 0x55, 0xf4, 0x6b, 0xd8, 0x89, 0x79, + 0x1e, 0xc9, 0x1b, 0x54, 0x4b, 0x5a, 0xf7, 0xa6, 0x61, 0x12, 0xb8, 0xab, 0x8d, 0x51, 0xd5, 0xa4, + 0x4b, 0x78, 0xf2, 0x96, 0xac, 0xf0, 0x5a, 0x61, 0x9e, 0xd0, 0x18, 0x53, 0xb6, 0xf4, 0x9a, 0xf7, + 0x18, 0x18, 0x3f, 0xf0, 0x9c, 0xe0, 0xa3, 0x95, 0x3a, 0xb0, 0xe2, 0xe3, 0x52, 0x4b, 0x9e, 0x42, + 0xd7, 0xbe, 0xcc, 0x95, 0x81, 0x56, 0x69, 0xc0, 0x48, 0xb6, 0xec, 0x4e, 0xed, 0x60, 0x0c, 0xdb, + 0x91, 0x14, 0x02, 0x23, 0x4d, 0x35, 0x5f, 0xa0, 0x2c, 0xb4, 0xd7, 0xbe, 0x2f, 0x7a, 0xb7, 0x52, + 0x84, 0x56, 0x40, 0xbe, 0x01, 0x92, 0x6b, 0xa6, 0xf3, 0x98, 0x16, 0x71, 0xb6, 0x3a, 0x12, 0x6c, + 0x66, 0xbb, 0x73, 0x19, 0x67, 0xf5, 0x89, 0x03, 0x70, 0xcd, 0xec, 0x52, 0x16, 0x2f, 0xb8, 0xa0, + 0x99, 0x54, 0xda, 0xeb, 0xf4, 0x9d, 0xc1, 0xa3, 0xa0, 0x6b, 0xf0, 0x51, 0x09, 0x4f, 0xa5, 0xd2, + 0x64, 0x08, 0x3b, 0xec, 0x86, 0xf1, 0x94, 0xcd, 0x78, 0xca, 0xf5, 0x92, 0xbe, 0x91, 0x02, 0xbd, + 0xcd, 0x55, 0x12, 0x77, 0x7d, 0xf3, 0x4a, 0x0a, 0x24, 0x31, 0xec, 0x45, 0x52, 0x68, 0x25, 0x53, + 0x9a, 0xa5, 0x4c, 0x20, 0x65, 0x85, 0x4e, 0x68, 0x26, 0x53, 0x1e, 0x2d, 0xbd, 0xad, 0xbe, 0x33, + 0xe8, 0x1e, 0x3e, 0xbd, 0x73, 0x2e, 0x47, 0x85, 0x4e, 0x50, 0x68, 0x1e, 0x99, 0x80, 0x53, 0x23, + 0x08, 0x76, 0xab, 0x5a, 0xd3, 0xb2, 0x54, 0xc9, 0xb0, 0x78, 0x19, 0x37, 0x2a, 0x72, 0x2d, 0x17, + 0xb4, 0x7a, 0xea, 0xd7, 0x3c, 0x45, 0xaf, 0x6b, 0xe3, 0xda, 0x1d, 0x3b, 0x0d, 0x2f, 0x78, 0x8a, + 0x65, 0xdc, 0xf2, 0x0a, 0xa8, 0x60, 0x0b, 0xa4, 0x29, 0x8a, 0xb9, 0x4e, 0xbc, 0x6d, 0x1b, 0xb7, + 0xc4, 0xcf, 0xd9, 0x02, 0xcf, 0x0c, 0x4a, 0xfa, 0x66, 0x76, 0xa2, 0x42, 0x29, 0x14, 0xd1, 0xd2, + 0x73, 0x0d, 0x69, 0x1d, 0x22, 0x23, 0xf8, 0xc4, 0x5e, 0xdd, 0x4c, 0x4a, 0x9d, 0x6b, 0xc5, 0x32, + 0xaa, 0x71, 0x91, 0xa5, 0x4c, 0xa3, 0x1d, 0xa7, 0x1d, 0x63, 0xa2, 0x67, 0x48, 0xe3, 0x9a, 0x13, + 0x56, 0x14, 0x33, 0x5e, 0x08, 0x3b, 0x5c, 0x68, 0x54, 0x11, 0x66, 0x65, 0x54, 0xba, 0x90, 0x31, + 0x7a, 0xc4, 0x5c, 0xcd, 0x77, 0x77, 0x5e, 0xcd, 0xda, 0x74, 0xfb, 0x13, 0x31, 0x93, 0x85, 0x88, + 0x27, 0x6b, 0x05, 0x5e, 0xca, 0x18, 0x03, 0x97, 0xff, 0x0f, 0x21, 0xdf, 0x42, 0x53, 0xdb, 0x6f, + 0x9d, 0xf7, 0xd8, 0x3c, 0xa7, 0x8f, 0xdf, 0xf7, 0x3d, 0x0c, 0x6a, 0xf2, 0xc1, 0x73, 0x78, 0xf2, + 0x8e, 0x43, 0xc8, 0x26, 0xb4, 0x82, 0x93, 0xe3, 0x49, 0x70, 0x72, 0x14, 0xba, 0x1b, 0x04, 0xa0, + 0x11, 0x4e, 0x83, 0x57, 0x3f, 0xfd, 0xec, 0x3a, 0x5f, 0xfd, 0x00, 0x1f, 0xde, 0xd5, 0x40, 0xd2, + 0x82, 0x87, 0xe7, 0xaf, 0xce, 0x4f, 0xdc, 0x0d, 0xd2, 0x05, 0x78, 0x79, 0x19, 0x5e, 0x8e, 0xce, + 0x68, 0x78, 0x76, 0xe1, 0x3a, 0x64, 0x13, 0x9a, 0x93, 0xf3, 0xd3, 0x93, 0x60, 0x12, 0xba, 0xff, + 0x34, 0xc7, 0x83, 0x3f, 0x6f, 0xf7, 0x9d, 0xbf, 0x6e, 0xf7, 0x9d, 0xbf, 0x6f, 0xf7, 0x9d, 0xab, + 0x9e, 0x35, 0xca, 0xe5, 0x90, 0x65, 0x7c, 0xf8, 0x9f, 0x3f, 0x9d, 0x59, 0xc3, 0x0c, 0xc3, 0xf3, + 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x65, 0xf7, 0xfe, 0xe0, 0x8c, 0x06, 0x00, 0x00, } diff --git a/mesh/v1alpha1/proxy.proto b/mesh/v1alpha1/proxy.proto index 0f78df160b..fcdd14defc 100644 --- a/mesh/v1alpha1/proxy.proto +++ b/mesh/v1alpha1/proxy.proto @@ -106,7 +106,8 @@ message ProxyConfig { // Address of the discovery service exposing xDS with mTLS connection. string discovery_address = 6; - reserved 7; + // $hide_from_docs + google.protobuf.Duration discovery_refresh_delay = 7 [deprecated=true]; // Address of the Zipkin service (e.g. _zipkin:9411_). // DEPRECATED: Use [tracing][istio.mesh.v1alpha1.ProxyConfig.tracing] instead. @@ -121,7 +122,8 @@ message ProxyConfig { // Port on which Envoy should listen for administrative commands. int32 proxy_admin_port = 11; - reserved 12; + // $hide_from_docs + string availability_zone = 12 [deprecated=true]; // Authentication policy defines the global switch to control authentication // for Envoy-to-Envoy communication for istio components Mixer and Pilot. diff --git a/python/istio_api/mesh/v1alpha1/config_pb2.py b/python/istio_api/mesh/v1alpha1/config_pb2.py index 0d32c45cae..c13f214454 100644 --- a/python/istio_api/mesh/v1alpha1/config_pb2.py +++ b/python/istio_api/mesh/v1alpha1/config_pb2.py @@ -22,12 +22,38 @@ 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\"\xe0\x06\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\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\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\x12\x38\n\x0e\x64\x65\x66\x61ult_config\x18\x0e \x01(\x0b\x32 .istio.mesh.v1alpha1.ProxyConfig\x12\'\n\x1f\x65nable_client_side_policy_check\x18\x13 \x01(\x08\x12\x14\n\x0csds_uds_path\x18\x14 \x01(\t\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\"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\x01J\x04\x08\x0b\x10\x0cJ\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x11\x10\x12J\x04\x08\x12\x10\x13J\x04\x08\x15\x10\x16\"]\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\"\xeb\t\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\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\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\x1a\xb5\x01\n\x15OutboundTrafficPolicy\x12L\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.ModeB\x02\x18\x01\"N\n\x04Mode\x12\x15\n\rREGISTRY_ONLY\x10\x00\x1a\x02\x08\x01\x12\x11\n\tALLOW_ANY\x10\x01\x1a\x02\x08\x01\x12\x1c\n\x14VIRTUAL_SERVICE_ONLY\x10\x02\x1a\x02\x08\x01\"9\n\x15IngressControllerMode\x12\x07\n\x03OFF\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06STRICT\x10\x02\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\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,]) +_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE = _descriptor.EnumDescriptor( + name='Mode', + full_name='istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode', + filename=None, + file=DESCRIPTOR, + 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=1225, + serialized_end=1303, +) +_sym_db.RegisterEnumDescriptor(_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE) + _MESHCONFIG_INGRESSCONTROLLERMODE = _descriptor.EnumDescriptor( name='IngressControllerMode', full_name='istio.mesh.v1alpha1.MeshConfig.IngressControllerMode', @@ -49,8 +75,8 @@ ], containing_type=None, options=None, - serialized_start=886, - serialized_end=943, + serialized_start=1305, + serialized_end=1362, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_INGRESSCONTROLLERMODE) @@ -71,12 +97,43 @@ ], containing_type=None, options=None, - serialized_start=945, - serialized_end=983, + serialized_start=1364, + serialized_end=1402, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_AUTHPOLICY) +_MESHCONFIG_OUTBOUNDTRAFFICPOLICY = _descriptor.Descriptor( + name='OutboundTrafficPolicy', + full_name='istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='mode', full_name='istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.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=_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=1122, + serialized_end=1303, +) + _MESHCONFIG = _descriptor.Descriptor( name='MeshConfig', full_name='istio.mesh.v1alpha1.MeshConfig', @@ -162,56 +219,84 @@ 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=11, + name='rds_refresh_delay', full_name='istio.mesh.v1alpha1.MeshConfig.rds_refresh_delay', index=11, + 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=12, 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=12, + name='access_log_file', full_name='istio.mesh.v1alpha1.MeshConfig.access_log_file', index=13, 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=13, + name='access_log_format', full_name='istio.mesh.v1alpha1.MeshConfig.access_log_format', index=14, 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='default_config', full_name='istio.mesh.v1alpha1.MeshConfig.default_config', index=14, + name='default_config', full_name='istio.mesh.v1alpha1.MeshConfig.default_config', index=15, 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='enable_client_side_policy_check', full_name='istio.mesh.v1alpha1.MeshConfig.enable_client_side_policy_check', index=15, + name='mixer_address', full_name='istio.mesh.v1alpha1.MeshConfig.mixer_address', index=16, + 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=17, + 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), + _descriptor.FieldDescriptor( + name='enable_client_side_policy_check', full_name='istio.mesh.v1alpha1.MeshConfig.enable_client_side_policy_check', index=18, 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=16, + name='sds_uds_path', full_name='istio.mesh.v1alpha1.MeshConfig.sds_uds_path', index=19, 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='config_sources', full_name='istio.mesh.v1alpha1.MeshConfig.config_sources', index=17, + name='sds_refresh_delay', full_name='istio.mesh.v1alpha1.MeshConfig.sds_refresh_delay', index=20, + 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=21, 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=18, + name='enable_sds_token_mount', full_name='istio.mesh.v1alpha1.MeshConfig.enable_sds_token_mount', index=22, 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, @@ -220,7 +305,7 @@ ], extensions=[ ], - nested_types=[], + nested_types=[_MESHCONFIG_OUTBOUNDTRAFFICPOLICY, ], enum_types=[ _MESHCONFIG_INGRESSCONTROLLERMODE, _MESHCONFIG_AUTHPOLICY, @@ -232,7 +317,7 @@ oneofs=[ ], serialized_start=155, - serialized_end=1019, + serialized_end=1414, ) @@ -269,14 +354,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1021, - serialized_end=1114, + serialized_start=1416, + serialized_end=1509, ) +_MESHCONFIG_OUTBOUNDTRAFFICPOLICY.fields_by_name['mode'].enum_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE +_MESHCONFIG_OUTBOUNDTRAFFICPOLICY.containing_type = _MESHCONFIG +_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE.containing_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY _MESHCONFIG.fields_by_name['connect_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _MESHCONFIG.fields_by_name['ingress_controller_mode'].enum_type = _MESHCONFIG_INGRESSCONTROLLERMODE _MESHCONFIG.fields_by_name['auth_policy'].enum_type = _MESHCONFIG_AUTHPOLICY +_MESHCONFIG.fields_by_name['rds_refresh_delay'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _MESHCONFIG.fields_by_name['default_config'].message_type = mesh_dot_v1alpha1_dot_proxy__pb2._PROXYCONFIG +_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_INGRESSCONTROLLERMODE.containing_type = _MESHCONFIG _MESHCONFIG_AUTHPOLICY.containing_type = _MESHCONFIG @@ -286,11 +377,19 @@ _sym_db.RegisterFileDescriptor(DESCRIPTOR) MeshConfig = _reflection.GeneratedProtocolMessageType('MeshConfig', (_message.Message,), dict( + + OutboundTrafficPolicy = _reflection.GeneratedProtocolMessageType('OutboundTrafficPolicy', (_message.Message,), dict( + DESCRIPTOR = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY, + __module__ = 'mesh.v1alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy) + )) + , 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) ConfigSource = _reflection.GeneratedProtocolMessageType('ConfigSource', (_message.Message,), dict( DESCRIPTOR = _CONFIGSOURCE, @@ -302,6 +401,22 @@ 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/mesh/v1alpha1/proxy_pb2.py b/python/istio_api/mesh/v1alpha1/proxy_pb2.py index 187ad57971..faff41274d 100644 --- a/python/istio_api/mesh/v1alpha1/proxy_pb2.py +++ b/python/istio_api/mesh/v1alpha1/proxy_pb2.py @@ -21,7 +21,7 @@ name='mesh/v1alpha1/proxy.proto', package='istio.mesh.v1alpha1', syntax='proto3', - serialized_pb=_b('\n\x19mesh/v1alpha1/proxy.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\"\xfb\x01\n\x07Tracing\x12\x35\n\x06zipkin\x18\x01 \x01(\x0b\x32#.istio.mesh.v1alpha1.Tracing.ZipkinH\x00\x12;\n\tlightstep\x18\x02 \x01(\x0b\x32&.istio.mesh.v1alpha1.Tracing.LightstepH\x00\x1a\x19\n\x06Zipkin\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x1aW\n\tLightstep\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\t\x12\x0e\n\x06secure\x18\x03 \x01(\x08\x12\x13\n\x0b\x63\x61\x63\x65rt_path\x18\x04 \x01(\tB\x08\n\x06tracer\"\xe6\x05\n\x0bProxyConfig\x12\x13\n\x0b\x63onfig_path\x18\x01 \x01(\t\x12\x13\n\x0b\x62inary_path\x18\x02 \x01(\t\x12\x17\n\x0fservice_cluster\x18\x03 \x01(\t\x12\x31\n\x0e\x64rain_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12;\n\x18parent_shutdown_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x11\x64iscovery_address\x18\x06 \x01(\t\x12\x1a\n\x0ezipkin_address\x18\x08 \x01(\tB\x02\x18\x01\x12\x32\n\x0f\x63onnect_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1a\n\x12statsd_udp_address\x18\n \x01(\t\x12\x18\n\x10proxy_admin_port\x18\x0b \x01(\x05\x12L\n\x19\x63ontrol_plane_auth_policy\x18\r \x01(\x0e\x32).istio.mesh.v1alpha1.AuthenticationPolicy\x12\x1a\n\x12\x63ustom_config_file\x18\x0e \x01(\t\x12\x18\n\x10stat_name_length\x18\x0f \x01(\x05\x12\x13\n\x0b\x63oncurrency\x18\x10 \x01(\x05\x12%\n\x1dproxy_bootstrap_template_path\x18\x11 \x01(\t\x12S\n\x11interception_mode\x18\x12 \x01(\x0e\x32\x38.istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionMode\x12-\n\x07tracing\x18\x13 \x01(\x0b\x32\x1c.istio.mesh.v1alpha1.Tracing\"3\n\x17InboundInterceptionMode\x12\x0c\n\x08REDIRECT\x10\x00\x12\n\n\x06TPROXY\x10\x01J\x04\x08\x07\x10\x08J\x04\x08\x0c\x10\r*>\n\x14\x41uthenticationPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\x12\x0c\n\x07INHERIT\x10\xe8\x07\x42\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') + serialized_pb=_b('\n\x19mesh/v1alpha1/proxy.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\"\xfb\x01\n\x07Tracing\x12\x35\n\x06zipkin\x18\x01 \x01(\x0b\x32#.istio.mesh.v1alpha1.Tracing.ZipkinH\x00\x12;\n\tlightstep\x18\x02 \x01(\x0b\x32&.istio.mesh.v1alpha1.Tracing.LightstepH\x00\x1a\x19\n\x06Zipkin\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x1aW\n\tLightstep\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\t\x12\x0e\n\x06secure\x18\x03 \x01(\x08\x12\x13\n\x0b\x63\x61\x63\x65rt_path\x18\x04 \x01(\tB\x08\n\x06tracer\"\xb9\x06\n\x0bProxyConfig\x12\x13\n\x0b\x63onfig_path\x18\x01 \x01(\t\x12\x13\n\x0b\x62inary_path\x18\x02 \x01(\t\x12\x17\n\x0fservice_cluster\x18\x03 \x01(\t\x12\x31\n\x0e\x64rain_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12;\n\x18parent_shutdown_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x11\x64iscovery_address\x18\x06 \x01(\t\x12>\n\x17\x64iscovery_refresh_delay\x18\x07 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x1a\n\x0ezipkin_address\x18\x08 \x01(\tB\x02\x18\x01\x12\x32\n\x0f\x63onnect_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1a\n\x12statsd_udp_address\x18\n \x01(\t\x12\x18\n\x10proxy_admin_port\x18\x0b \x01(\x05\x12\x1d\n\x11\x61vailability_zone\x18\x0c \x01(\tB\x02\x18\x01\x12L\n\x19\x63ontrol_plane_auth_policy\x18\r \x01(\x0e\x32).istio.mesh.v1alpha1.AuthenticationPolicy\x12\x1a\n\x12\x63ustom_config_file\x18\x0e \x01(\t\x12\x18\n\x10stat_name_length\x18\x0f \x01(\x05\x12\x13\n\x0b\x63oncurrency\x18\x10 \x01(\x05\x12%\n\x1dproxy_bootstrap_template_path\x18\x11 \x01(\t\x12S\n\x11interception_mode\x18\x12 \x01(\x0e\x32\x38.istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionMode\x12-\n\x07tracing\x18\x13 \x01(\x0b\x32\x1c.istio.mesh.v1alpha1.Tracing\"3\n\x17InboundInterceptionMode\x12\x0c\n\x08REDIRECT\x10\x00\x12\n\n\x06TPROXY\x10\x01*>\n\x14\x41uthenticationPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\x12\x0c\n\x07INHERIT\x10\xe8\x07\x42\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,]) @@ -46,8 +46,8 @@ ], containing_type=None, options=None, - serialized_start=1081, - serialized_end=1143, + serialized_start=1164, + serialized_end=1226, ) _sym_db.RegisterEnumDescriptor(_AUTHENTICATIONPOLICY) @@ -74,8 +74,8 @@ ], containing_type=None, options=None, - serialized_start=1016, - serialized_end=1067, + serialized_start=1111, + serialized_end=1162, ) _sym_db.RegisterEnumDescriptor(_PROXYCONFIG_INBOUNDINTERCEPTIONMODE) @@ -252,77 +252,91 @@ is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='zipkin_address', full_name='istio.mesh.v1alpha1.ProxyConfig.zipkin_address', index=6, + name='discovery_refresh_delay', full_name='istio.mesh.v1alpha1.ProxyConfig.discovery_refresh_delay', index=6, + number=7, 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='zipkin_address', full_name='istio.mesh.v1alpha1.ProxyConfig.zipkin_address', index=7, 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='connect_timeout', full_name='istio.mesh.v1alpha1.ProxyConfig.connect_timeout', index=7, + name='connect_timeout', full_name='istio.mesh.v1alpha1.ProxyConfig.connect_timeout', index=8, number=9, 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='statsd_udp_address', full_name='istio.mesh.v1alpha1.ProxyConfig.statsd_udp_address', index=8, + name='statsd_udp_address', full_name='istio.mesh.v1alpha1.ProxyConfig.statsd_udp_address', index=9, number=10, 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='proxy_admin_port', full_name='istio.mesh.v1alpha1.ProxyConfig.proxy_admin_port', index=9, + name='proxy_admin_port', full_name='istio.mesh.v1alpha1.ProxyConfig.proxy_admin_port', index=10, number=11, 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='control_plane_auth_policy', full_name='istio.mesh.v1alpha1.ProxyConfig.control_plane_auth_policy', index=10, + name='availability_zone', full_name='istio.mesh.v1alpha1.ProxyConfig.availability_zone', index=11, + number=12, 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='control_plane_auth_policy', full_name='istio.mesh.v1alpha1.ProxyConfig.control_plane_auth_policy', index=12, number=13, 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_config_file', full_name='istio.mesh.v1alpha1.ProxyConfig.custom_config_file', index=11, + name='custom_config_file', full_name='istio.mesh.v1alpha1.ProxyConfig.custom_config_file', index=13, number=14, 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='stat_name_length', full_name='istio.mesh.v1alpha1.ProxyConfig.stat_name_length', index=12, + name='stat_name_length', full_name='istio.mesh.v1alpha1.ProxyConfig.stat_name_length', index=14, number=15, 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='concurrency', full_name='istio.mesh.v1alpha1.ProxyConfig.concurrency', index=13, + name='concurrency', full_name='istio.mesh.v1alpha1.ProxyConfig.concurrency', index=15, number=16, 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_bootstrap_template_path', full_name='istio.mesh.v1alpha1.ProxyConfig.proxy_bootstrap_template_path', index=14, + name='proxy_bootstrap_template_path', full_name='istio.mesh.v1alpha1.ProxyConfig.proxy_bootstrap_template_path', index=16, number=17, 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='interception_mode', full_name='istio.mesh.v1alpha1.ProxyConfig.interception_mode', index=15, + name='interception_mode', full_name='istio.mesh.v1alpha1.ProxyConfig.interception_mode', index=17, number=18, 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='tracing', full_name='istio.mesh.v1alpha1.ProxyConfig.tracing', index=16, + name='tracing', full_name='istio.mesh.v1alpha1.ProxyConfig.tracing', index=18, number=19, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -342,7 +356,7 @@ oneofs=[ ], serialized_start=337, - serialized_end=1079, + serialized_end=1162, ) _TRACING_ZIPKIN.containing_type = _TRACING @@ -357,6 +371,7 @@ _TRACING.fields_by_name['lightstep'].containing_oneof = _TRACING.oneofs_by_name['tracer'] _PROXYCONFIG.fields_by_name['drain_duration'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _PROXYCONFIG.fields_by_name['parent_shutdown_duration'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_PROXYCONFIG.fields_by_name['discovery_refresh_delay'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _PROXYCONFIG.fields_by_name['connect_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _PROXYCONFIG.fields_by_name['control_plane_auth_policy'].enum_type = _AUTHENTICATIONPOLICY _PROXYCONFIG.fields_by_name['interception_mode'].enum_type = _PROXYCONFIG_INBOUNDINTERCEPTIONMODE @@ -400,6 +415,10 @@ DESCRIPTOR.has_options = True DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\032istio.io/api/mesh/v1alpha1')) +_PROXYCONFIG.fields_by_name['discovery_refresh_delay'].has_options = True +_PROXYCONFIG.fields_by_name['discovery_refresh_delay']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) _PROXYCONFIG.fields_by_name['zipkin_address'].has_options = True _PROXYCONFIG.fields_by_name['zipkin_address']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) +_PROXYCONFIG.fields_by_name['availability_zone'].has_options = True +_PROXYCONFIG.fields_by_name['availability_zone']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) # @@protoc_insertion_point(module_scope) From 20d2d5dd628a625ea7d190e009fec1854ff9176f Mon Sep 17 00:00:00 2001 From: Jeff Mendoza Date: Thu, 1 Nov 2018 16:28:54 -0700 Subject: [PATCH 06/11] Fix style for TLS enum in networking. (#690) * Fix style for TLS enum in networking. * Regen with new networking proto. --- networking/v1alpha3/gateway.pb.go | 104 +++++++++--------- networking/v1alpha3/gateway.proto | 8 +- .../istio.networking.v1alpha3.pb.html | 16 +-- .../networking/v1alpha3/gateway_pb2.py | 10 +- 4 files changed, 69 insertions(+), 69 deletions(-) diff --git a/networking/v1alpha3/gateway.pb.go b/networking/v1alpha3/gateway.pb.go index 25cea96cc1..a6ac4ed08c 100644 --- a/networking/v1alpha3/gateway.pb.go +++ b/networking/v1alpha3/gateway.pb.go @@ -67,28 +67,28 @@ const ( // Automatically choose the optimal TLS version. Server_TLSOptions_TLS_AUTO Server_TLSOptions_TLSProtocol = 0 // TLS version 1.0 - Server_TLSOptions_TLSv1_0 Server_TLSOptions_TLSProtocol = 1 + Server_TLSOptions_TLSV1_0 Server_TLSOptions_TLSProtocol = 1 // TLS version 1.1 - Server_TLSOptions_TLSv1_1 Server_TLSOptions_TLSProtocol = 2 + Server_TLSOptions_TLSV1_1 Server_TLSOptions_TLSProtocol = 2 // TLS version 1.2 - Server_TLSOptions_TLSv1_2 Server_TLSOptions_TLSProtocol = 3 + Server_TLSOptions_TLSV1_2 Server_TLSOptions_TLSProtocol = 3 // TLS version 1.3 - Server_TLSOptions_TLSv1_3 Server_TLSOptions_TLSProtocol = 4 + Server_TLSOptions_TLSV1_3 Server_TLSOptions_TLSProtocol = 4 ) var Server_TLSOptions_TLSProtocol_name = map[int32]string{ 0: "TLS_AUTO", - 1: "TLSv1_0", - 2: "TLSv1_1", - 3: "TLSv1_2", - 4: "TLSv1_3", + 1: "TLSV1_0", + 2: "TLSV1_1", + 3: "TLSV1_2", + 4: "TLSV1_3", } var Server_TLSOptions_TLSProtocol_value = map[string]int32{ "TLS_AUTO": 0, - "TLSv1_0": 1, - "TLSv1_1": 2, - "TLSv1_2": 3, - "TLSv1_3": 4, + "TLSV1_0": 1, + "TLSV1_1": 2, + "TLSV1_2": 3, + "TLSV1_3": 4, } func (x Server_TLSOptions_TLSProtocol) String() string { @@ -1713,44 +1713,44 @@ var ( func init() { proto.RegisterFile("networking/v1alpha3/gateway.proto", fileDescriptorGateway) } var fileDescriptorGateway = []byte{ - // 621 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xdd, 0x4e, 0xdb, 0x30, - 0x18, 0x25, 0x6d, 0xe9, 0xcf, 0x57, 0x0a, 0xc1, 0x42, 0x53, 0xc6, 0x05, 0x3f, 0x9d, 0xa6, 0xa1, - 0x69, 0x4b, 0xa1, 0xdd, 0x05, 0x1a, 0xd2, 0xa4, 0x6e, 0x42, 0x74, 0x5a, 0xa1, 0x95, 0xd3, 0xee, - 0x62, 0x37, 0x91, 0x09, 0x1e, 0x35, 0xa4, 0x71, 0x64, 0xbb, 0x85, 0xbe, 0xda, 0x9e, 0x60, 0x97, - 0xec, 0x0d, 0x26, 0x9e, 0x64, 0xb2, 0x93, 0xd2, 0xee, 0x8f, 0x09, 0xed, 0xce, 0xe7, 0xf8, 0x9c, - 0xf3, 0xf9, 0xfb, 0xec, 0x04, 0xb6, 0x23, 0xaa, 0xae, 0xb8, 0xb8, 0x64, 0xd1, 0x79, 0x6d, 0xbc, - 0x47, 0xc2, 0x78, 0x40, 0x1a, 0xb5, 0x73, 0xa2, 0xe8, 0x15, 0x99, 0xb8, 0xb1, 0xe0, 0x8a, 0xa3, - 0xc7, 0x4c, 0x2a, 0xc6, 0xdd, 0x99, 0xd0, 0x9d, 0x0a, 0xab, 0xdf, 0x2c, 0x28, 0x1c, 0x25, 0x62, - 0x74, 0x00, 0x05, 0x49, 0xc5, 0x98, 0x0a, 0xe9, 0x58, 0x5b, 0xd9, 0x9d, 0x72, 0x7d, 0xdb, 0xfd, - 0xab, 0xd1, 0xf5, 0x8c, 0x12, 0x4f, 0x1d, 0xa8, 0x0d, 0x45, 0x49, 0x43, 0x1a, 0x28, 0x2e, 0x9c, - 0x8c, 0x71, 0xef, 0xde, 0xe3, 0x4e, 0x4b, 0xba, 0x5e, 0x6a, 0x39, 0x8c, 0x94, 0x98, 0xe0, 0xbb, - 0x84, 0xf5, 0x03, 0xa8, 0xfc, 0xb4, 0x85, 0x6c, 0xc8, 0x5e, 0xd2, 0x89, 0x63, 0x6d, 0x59, 0x3b, - 0x25, 0xac, 0x97, 0x68, 0x0d, 0x16, 0xc7, 0x24, 0x1c, 0x51, 0x27, 0x63, 0xb8, 0x04, 0xbc, 0xce, - 0xec, 0x5b, 0xd5, 0x9b, 0x3c, 0xe4, 0x93, 0xe3, 0xa1, 0x06, 0xe4, 0x62, 0x2e, 0x94, 0xf1, 0x95, - 0xeb, 0x9b, 0xf7, 0x9c, 0xa8, 0xcb, 0x85, 0xc2, 0x46, 0xac, 0x93, 0x07, 0x5c, 0x2a, 0x69, 0xfa, - 0x28, 0xe1, 0x04, 0xa0, 0x37, 0x90, 0x55, 0xa1, 0x74, 0xb2, 0x26, 0xe9, 0xc5, 0x3f, 0x27, 0xe3, - 0xf6, 0xda, 0x5e, 0x27, 0x56, 0x8c, 0x47, 0x12, 0x6b, 0xe3, 0xfa, 0x97, 0x45, 0x80, 0x19, 0x87, - 0x9e, 0xc2, 0xf2, 0x40, 0xa9, 0x58, 0xfa, 0x82, 0x9e, 0x31, 0x41, 0x83, 0xe4, 0x8c, 0x45, 0x5c, - 0x31, 0x2c, 0x4e, 0x49, 0xd4, 0x82, 0xdc, 0x90, 0x9f, 0x25, 0x4d, 0x2e, 0xd7, 0x5f, 0x3d, 0xa4, - 0xac, 0x5e, 0x6a, 0x2f, 0x36, 0x09, 0xe8, 0x25, 0xa0, 0xe4, 0xae, 0xfc, 0x80, 0x0a, 0xc5, 0x3e, - 0xb3, 0x80, 0x28, 0x6a, 0xda, 0x29, 0xe1, 0xd5, 0x64, 0xe7, 0xdd, 0x6c, 0x03, 0x6d, 0x42, 0x39, - 0x16, 0x6c, 0x4c, 0x14, 0xf5, 0xf5, 0xe0, 0x73, 0x46, 0x07, 0x29, 0xf5, 0x81, 0x4e, 0xd0, 0x33, - 0x58, 0x09, 0xc8, 0x7c, 0x96, 0x74, 0x16, 0x8d, 0x68, 0x39, 0x20, 0x73, 0x41, 0x12, 0x3d, 0x87, - 0x55, 0x39, 0x3a, 0xbd, 0xa0, 0x81, 0xf2, 0x49, 0xa8, 0xfc, 0x88, 0x0c, 0xa9, 0x74, 0xf2, 0x66, - 0xb4, 0x2b, 0xe9, 0x46, 0x33, 0x54, 0x27, 0x9a, 0x46, 0x17, 0xb0, 0x36, 0x64, 0x91, 0x6f, 0x9e, - 0x6d, 0xc0, 0x43, 0x5f, 0x3f, 0x2d, 0xc6, 0x23, 0xa7, 0x60, 0xda, 0xdf, 0x7f, 0x68, 0xfb, 0xdd, - 0x34, 0x07, 0xa3, 0x21, 0x8b, 0xa6, 0xe0, 0x63, 0x92, 0x69, 0x6a, 0x91, 0xeb, 0xdf, 0x6b, 0x15, - 0xff, 0xbb, 0x16, 0xb9, 0xfe, 0xb5, 0xd6, 0x13, 0xa8, 0x04, 0x2c, 0x1e, 0x50, 0xe1, 0xcb, 0x11, - 0xd3, 0xa3, 0x2a, 0x99, 0xfe, 0x97, 0x12, 0xd2, 0x33, 0x5c, 0xb5, 0x05, 0x85, 0xf4, 0xca, 0xd0, - 0x0a, 0x94, 0xbb, 0x4d, 0xcf, 0xeb, 0xb5, 0x70, 0xa7, 0x7f, 0xd4, 0xb2, 0x17, 0x10, 0x40, 0xde, - 0x7b, 0x7f, 0xdc, 0x6d, 0x1f, 0xda, 0x96, 0x5e, 0x1f, 0xf7, 0x7b, 0xfd, 0x66, 0xdb, 0xce, 0xa0, - 0x35, 0xb0, 0x9b, 0xfd, 0x5e, 0xc7, 0x9f, 0x57, 0x67, 0xab, 0x1d, 0x28, 0xcf, 0x9d, 0x08, 0x2d, - 0x41, 0xb1, 0xd7, 0xf6, 0x7c, 0x2d, 0xb4, 0x17, 0x50, 0xd9, 0x94, 0x19, 0xef, 0xf9, 0xbb, 0xb6, - 0x35, 0x03, 0x7b, 0x76, 0x66, 0x06, 0xea, 0x76, 0x76, 0x06, 0x1a, 0x76, 0xae, 0x7a, 0x02, 0x39, - 0xfd, 0x81, 0xa0, 0x47, 0x90, 0x8f, 0x46, 0xc3, 0x53, 0x2a, 0xcc, 0x6b, 0xad, 0xe0, 0x14, 0xa1, - 0x75, 0x28, 0x4e, 0xe7, 0x98, 0x7e, 0x8f, 0x77, 0x18, 0x21, 0xc8, 0xe9, 0x3b, 0x4f, 0x9f, 0x9a, - 0x59, 0xbf, 0x75, 0xbf, 0xde, 0x6e, 0x58, 0x37, 0xb7, 0x1b, 0xd6, 0xf7, 0xdb, 0x0d, 0xeb, 0xd3, - 0x56, 0x32, 0x6a, 0xc6, 0x6b, 0x24, 0x66, 0xb5, 0x3f, 0xfc, 0xcf, 0x4e, 0xf3, 0x26, 0xad, 0xf1, - 0x23, 0x00, 0x00, 0xff, 0xff, 0xd1, 0xda, 0x86, 0xea, 0xed, 0x04, 0x00, 0x00, + // 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, } diff --git a/networking/v1alpha3/gateway.proto b/networking/v1alpha3/gateway.proto index 7861251ed6..ba85ad93dd 100644 --- a/networking/v1alpha3/gateway.proto +++ b/networking/v1alpha3/gateway.proto @@ -303,16 +303,16 @@ message Server { TLS_AUTO = 0; // TLS version 1.0 - TLSv1_0 = 1; + TLSV1_0 = 1; // TLS version 1.1 - TLSv1_1 = 2; + TLSV1_1 = 2; // TLS version 1.2 - TLSv1_2 = 3; + TLSV1_2 = 3; // TLS version 1.3 - TLSv1_3 = 4; + TLSV1_3 = 4; } // Optional: Minimum TLS protocol version. diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index 982b9b0f86..21d268e328 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -2650,29 +2650,29 @@

Server.TLSOptions.TLSProtocol

-
- + + - - + + - - + + - - + + From d782dcae244a9c680ee7a42652828310e0b21a44 Mon Sep 17 00:00:00 2001 From: Kuat Date: Wed, 7 Nov 2018 14:18:00 -0800 Subject: [PATCH 08/11] documentation (#698) Signed-off-by: Kuat Yessenov --- policy/v1beta1/cfg.pb.go | 26 +++++++++++++----- policy/v1beta1/cfg.proto | 30 +++++++++++++++------ policy/v1beta1/istio.policy.v1beta1.pb.html | 25 +++++++++++------ 3 files changed, 58 insertions(+), 23 deletions(-) diff --git a/policy/v1beta1/cfg.pb.go b/policy/v1beta1/cfg.pb.go index 3fb12fb531..dd72e0615c 100644 --- a/policy/v1beta1/cfg.pb.go +++ b/policy/v1beta1/cfg.pb.go @@ -65,9 +65,12 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Rule_HeaderOperationTemplate_Operation int32 const ( + // Replace a header by name. REPLACE Rule_HeaderOperationTemplate_Operation = 0 - REMOVE Rule_HeaderOperationTemplate_Operation = 1 - APPEND Rule_HeaderOperationTemplate_Operation = 2 + // Remove a header by name. Values are ignored. + REMOVE Rule_HeaderOperationTemplate_Operation = 1 + // Append values to the existing header values. + APPEND Rule_HeaderOperationTemplate_Operation = 2 ) var Rule_HeaderOperationTemplate_Operation_name = map[int32]string{ @@ -258,10 +261,10 @@ type Rule struct { Match string `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"` // Optional. The actions that will be executed when match evaluates to `true`. Actions []*Action `protobuf:"bytes,2,rep,name=actions" json:"actions,omitempty"` - // Optional. Templatized operations on the request headers using attributes produced by the + // Optional. Templatized operations on the request headers using values produced by the // rule actions. RequestHeaderOperations []*Rule_HeaderOperationTemplate `protobuf:"bytes,3,rep,name=request_header_operations,json=requestHeaderOperations" json:"request_header_operations,omitempty"` - // Optional. Templatized operations on the response headers using attributes produced by the + // Optional. Templatized operations on the response headers using values produced by the // rule actions. ResponseHeaderOperations []*Rule_HeaderOperationTemplate `protobuf:"bytes,4,rep,name=response_header_operations,json=responseHeaderOperations" json:"response_header_operations,omitempty"` // $hide_from_docs @@ -312,11 +315,20 @@ func (m *Rule) GetSampling() *Sampling { return nil } -// A template for an HTTP header manipulation. +// A template for an HTTP header manipulation. Values in the template are expressions +// that may reference action outputs by name. For example, if an action `x` produces an output +// with a field `f`, then the header value expressions may use attribute `x.output.f` to reference +// the field value: +// ```yaml +// request_header_operations: +// - name: x-istio-header +// values: +// - x.output.f +// ``` type Rule_HeaderOperationTemplate struct { - // Required. Header name. + // Required. Header name literal value. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Optional. Header values to replace or append. + // Optional. Header value expressions. Values []string `protobuf:"bytes,2,rep,name=values" json:"values,omitempty"` // Optional. Header operation type. Default operation is to replace the value of the header by name. Operation Rule_HeaderOperationTemplate_Operation `protobuf:"varint,3,opt,name=operation,proto3,enum=istio.policy.v1beta1.Rule_HeaderOperationTemplate_Operation" json:"operation,omitempty"` diff --git a/policy/v1beta1/cfg.proto b/policy/v1beta1/cfg.proto index 08491be43d..786df844d2 100644 --- a/policy/v1beta1/cfg.proto +++ b/policy/v1beta1/cfg.proto @@ -127,31 +127,45 @@ message Rule { // Optional. The actions that will be executed when match evaluates to `true`. repeated Action actions = 2; - // A template for an HTTP header manipulation. + // A template for an HTTP header manipulation. Values in the template are expressions + // that may reference action outputs by name. For example, if an action `x` produces an output + // with a field `f`, then the header value expressions may use attribute `x.output.f` to reference + // the field value: + // ```yaml + // request_header_operations: + // - name: x-istio-header + // values: + // - x.output.f + // ``` message HeaderOperationTemplate { - // Required. Header name. + // Required. Header name literal value. string name = 1; - // Optional. Header values to replace or append. + // Optional. Header value expressions. repeated string values = 2; // Header operation type. enum Operation { - REPLACE = 0; // replaces the header with the given name - REMOVE = 1; // removes the header with the given name (the value is ignored) - APPEND = 2; // appends the values to the existing values (preserving existing values) + // Replace a header by name. + REPLACE = 0; + + // Remove a header by name. Values are ignored. + REMOVE = 1; + + // Append values to the existing header values. + APPEND = 2; } // Optional. Header operation type. Default operation is to replace the value of the header by name. Operation operation = 3; } - // Optional. Templatized operations on the request headers using attributes produced by the + // Optional. Templatized operations on the request headers using values produced by the // rule actions. repeated HeaderOperationTemplate request_header_operations = 3; - // Optional. Templatized operations on the response headers using attributes produced by the + // Optional. Templatized operations on the response headers using values produced by the // rule actions. repeated HeaderOperationTemplate response_header_operations = 4; diff --git a/policy/v1beta1/istio.policy.v1beta1.pb.html b/policy/v1beta1/istio.policy.v1beta1.pb.html index fde19d018c..2cd47ce3ee 100644 --- a/policy/v1beta1/istio.policy.v1beta1.pb.html +++ b/policy/v1beta1/istio.policy.v1beta1.pb.html @@ -633,7 +633,7 @@

Rule

@@ -642,7 +642,7 @@

Rule

@@ -652,7 +652,16 @@

Rule

Rule.HeaderOperationTemplate

-

A template for an HTTP header manipulation.

+

A template for an HTTP header manipulation. Values in the template are expressions +that may reference action outputs by name. For example, if an action x produces an output +with a field f, then the header value expressions may use attribute x.output.f to reference +the field value:

+ +
request_header_operations:
+- name: x-istio-header
+  values:
+  - x.output.f
+
NameDescription
REGISTRY_ONLY +

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

+
TLSv1_0
TLSV1_0

TLS version 1.0

TLSv1_1
TLSV1_1

TLS version 1.1

TLSv1_2
TLSV1_2

TLS version 1.2

TLSv1_3
TLSV1_3

TLS version 1.3

diff --git a/python/istio_api/networking/v1alpha3/gateway_pb2.py b/python/istio_api/networking/v1alpha3/gateway_pb2.py index 6f39eb55d2..3a492b02fd 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\"\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') ) @@ -65,19 +65,19 @@ options=None, type=None), _descriptor.EnumValueDescriptor( - name='TLSv1_0', index=1, number=1, + name='TLSV1_0', index=1, number=1, options=None, type=None), _descriptor.EnumValueDescriptor( - name='TLSv1_1', index=2, number=2, + name='TLSV1_1', index=2, number=2, options=None, type=None), _descriptor.EnumValueDescriptor( - name='TLSv1_2', index=3, number=3, + name='TLSV1_2', index=3, number=3, options=None, type=None), _descriptor.EnumValueDescriptor( - name='TLSv1_3', index=4, number=4, + name='TLSV1_3', index=4, number=4, options=None, type=None), ], From 510451bbdb2fad5f3e0d86c6c3c6efecddaa0b31 Mon Sep 17 00:00:00 2001 From: Zhonghu Xu Date: Tue, 6 Nov 2018 03:22:38 +0800 Subject: [PATCH 07/11] update commentttttt (#695) --- mesh/v1alpha1/config.pb.go | 2 +- mesh/v1alpha1/config.proto | 2 +- mesh/v1alpha1/istio.mesh.v1alpha1.pb.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mesh/v1alpha1/config.pb.go b/mesh/v1alpha1/config.pb.go index 465d95e2f4..d29e86a5c8 100644 --- a/mesh/v1alpha1/config.pb.go +++ b/mesh/v1alpha1/config.pb.go @@ -410,7 +410,7 @@ func (m *MeshConfig_OutboundTrafficPolicy) GetMode() MeshConfig_OutboundTrafficP type ConfigSource struct { // Address of the server implementing the Istio Mesh Configuration // protocol (MCP). Can be IP address or a fully qualified DNS name. - // Use file:/// to specify a file-based backend with absolute path to the directory. + // Use fs:/// to specify a file-based backend with absolute path to the directory. Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // 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 diff --git a/mesh/v1alpha1/config.proto b/mesh/v1alpha1/config.proto index 8fbd24b69a..941f6476be 100644 --- a/mesh/v1alpha1/config.proto +++ b/mesh/v1alpha1/config.proto @@ -192,7 +192,7 @@ message MeshConfig { message ConfigSource { // Address of the server implementing the Istio Mesh Configuration // protocol (MCP). Can be IP address or a fully qualified DNS name. - // Use file:/// to specify a file-based backend with absolute path to the directory. + // Use fs:/// to specify a file-based backend with absolute path to the directory. string address = 1; // Use the tls_settings to specify the tls mode to use. If the MCP server diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html index a60b6196f5..65b39dd6d3 100644 --- a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html +++ b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html @@ -67,7 +67,7 @@

ConfigSource

Address of the server implementing the Istio Mesh Configuration protocol (MCP). Can be IP address or a fully qualified DNS name. -Use file:/// to specify a file-based backend with absolute path to the directory.

+Use fs:/// to specify a file-based backend with absolute path to the directory.

requestHeaderOperations Rule.HeaderOperationTemplate[] -

Optional. Templatized operations on the request headers using attributes produced by the +

Optional. Templatized operations on the request headers using values produced by the rule actions.

responseHeaderOperations Rule.HeaderOperationTemplate[] -

Optional. Templatized operations on the response headers using attributes produced by the +

Optional. Templatized operations on the response headers using values produced by the rule actions.

@@ -667,7 +676,7 @@

Rule.HeaderOperationTemplate

@@ -675,7 +684,7 @@

Rule.HeaderOperationTemplate

@@ -705,21 +714,21 @@

Rule.HeaderOperationTemplate.Ope

From 079096fc827e2d49cd97da83ec7809e2bec7a58e Mon Sep 17 00:00:00 2001 From: Shriram Rajagopalan Date: Thu, 8 Nov 2018 15:57:32 -0500 Subject: [PATCH 09/11] proto lock update --- proto.lock | 82 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 13 deletions(-) diff --git a/proto.lock b/proto.lock index b545da2f7d..3b53442572 100644 --- a/proto.lock +++ b/proto.lock @@ -660,6 +660,23 @@ "integer": 1 } ] + }, + { + "name": "OutboundTrafficPolicy.Mode", + "enum_fields": [ + { + "name": "REGISTRY_ONLY", + "integer": 0 + }, + { + "name": "ALLOW_ANY", + "integer": 1 + }, + { + "name": "VIRTUAL_SERVICE_ONLY", + "integer": 2 + } + ] } ], "messages": [ @@ -721,6 +738,11 @@ "name": "auth_policy", "type": "AuthPolicy" }, + { + "id": 11, + "name": "rds_refresh_delay", + "type": "google.protobuf.Duration" + }, { "id": 12, "name": "enable_tracing", @@ -741,6 +763,16 @@ "name": "default_config", "type": "ProxyConfig" }, + { + "id": 16, + "name": "mixer_address", + "type": "string" + }, + { + "id": 17, + "name": "outbound_traffic_policy", + "type": "OutboundTrafficPolicy" + }, { "id": 19, "name": "enable_client_side_policy_check", @@ -751,6 +783,11 @@ "name": "sds_uds_path", "type": "string" }, + { + "id": 21, + "name": "sds_refresh_delay", + "type": "google.protobuf.Duration" + }, { "id": 22, "name": "config_sources", @@ -769,12 +806,20 @@ } ], "reserved_ids": [ - 11, 15, - 16, - 17, - 18, - 21 + 18 + ], + "messages": [ + { + "name": "OutboundTrafficPolicy", + "fields": [ + { + "id": 1, + "name": "mode", + "type": "Mode" + } + ] + } ] }, { @@ -995,6 +1040,11 @@ "name": "discovery_address", "type": "string" }, + { + "id": 7, + "name": "discovery_refresh_delay", + "type": "google.protobuf.Duration" + }, { "id": 8, "name": "zipkin_address", @@ -1015,6 +1065,11 @@ "name": "proxy_admin_port", "type": "int32" }, + { + "id": 12, + "name": "availability_zone", + "type": "string" + }, { "id": 13, "name": "control_plane_auth_policy", @@ -1050,10 +1105,6 @@ "name": "tracing", "type": "Tracing" } - ], - "reserved_ids": [ - 7, - 12 ] } ] @@ -2866,19 +2917,19 @@ "integer": 0 }, { - "name": "TLSv1_0", + "name": "TLSV1_0", "integer": 1 }, { - "name": "TLSv1_1", + "name": "TLSV1_1", "integer": 2 }, { - "name": "TLSv1_2", + "name": "TLSV1_2", "integer": 3 }, { - "name": "TLSv1_3", + "name": "TLSV1_3", "integer": 4 } ] @@ -3566,6 +3617,11 @@ "id": 2, "name": "per_try_timeout", "type": "google.protobuf.Duration" + }, + { + "id": 3, + "name": "retry_on", + "type": "string" } ] }, From d03e770930e989c5289a3de0745efd6ca1e8653f Mon Sep 17 00:00:00 2001 From: Kevin Conner Date: Thu, 8 Nov 2018 13:04:04 -0800 Subject: [PATCH 10/11] Add support for healthy panic threshold (#486) (#496) --- networking/v1alpha3/destination_rule.pb.go | 205 +++++++++++------- networking/v1alpha3/destination_rule.proto | 7 + .../istio.networking.v1alpha3.pb.html | 12 + .../v1alpha3/destination_rule_pb2.py | 19 +- 4 files changed, 155 insertions(+), 88 deletions(-) diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go index 58406ce7d1..3274215922 100644 --- a/networking/v1alpha3/destination_rule.pb.go +++ b/networking/v1alpha3/destination_rule.pb.go @@ -1030,6 +1030,12 @@ type OutlierDetection struct { // Maximum % of hosts in the load balancing pool for the upstream // service that can be ejected. Defaults to 10%. MaxEjectionPercent int32 `protobuf:"varint,4,opt,name=max_ejection_percent,json=maxEjectionPercent,proto3" json:"max_ejection_percent,omitempty"` + // Outlier detection will be enabled as long as the associated load balancing + // pool has at least min_health_percent hosts in healthy mode. When the + // percentage of healthy hosts in the load balancing pool drops below this + // threshold, outlier detection will be disabled and the proxy will load balance + // across all hosts in the pool (healthy and unhealthy). The default is 50%. + MinHealthPercent int32 `protobuf:"varint,5,opt,name=min_health_percent,json=minHealthPercent,proto3" json:"min_health_percent,omitempty"` } func (m *OutlierDetection) Reset() { *m = OutlierDetection{} } @@ -1065,6 +1071,13 @@ func (m *OutlierDetection) GetMaxEjectionPercent() int32 { return 0 } +func (m *OutlierDetection) GetMinHealthPercent() int32 { + if m != nil { + return m.MinHealthPercent + } + return 0 +} + // SSL/TLS related settings for upstream connections. See Envoy's [TLS // context](https://www.envoyproxy.io/docs/envoy/latest/api-v1/cluster_manager/cluster_ssl.html#config-cluster-manager-cluster-ssl) // for more details. These settings are common to both HTTP and TCP upstreams. @@ -1743,6 +1756,11 @@ func (m *OutlierDetection) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintDestinationRule(dAtA, i, uint64(m.MaxEjectionPercent)) } + if m.MinHealthPercent != 0 { + dAtA[i] = 0x28 + i++ + i = encodeVarintDestinationRule(dAtA, i, uint64(m.MinHealthPercent)) + } return i, nil } @@ -2051,6 +2069,9 @@ func (m *OutlierDetection) Size() (n int) { if m.MaxEjectionPercent != 0 { n += 1 + sovDestinationRule(uint64(m.MaxEjectionPercent)) } + if m.MinHealthPercent != 0 { + n += 1 + sovDestinationRule(uint64(m.MinHealthPercent)) + } return n } @@ -3770,6 +3791,25 @@ func (m *OutlierDetection) Unmarshal(dAtA []byte) error { break } } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinHealthPercent", wireType) + } + m.MinHealthPercent = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDestinationRule + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinHealthPercent |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipDestinationRule(dAtA[iNdEx:]) @@ -4115,86 +4155,87 @@ func init() { } var fileDescriptorDestinationRule = []byte{ - // 1292 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6e, 0x1b, 0xb7, - 0x12, 0xb6, 0x7e, 0x63, 0x8f, 0x62, 0x79, 0xcd, 0x63, 0x9c, 0xa3, 0xe8, 0x00, 0x8e, 0x2b, 0x14, - 0x8d, 0x9b, 0x36, 0xab, 0xda, 0x41, 0x81, 0x34, 0x41, 0x8a, 0x58, 0xb6, 0x10, 0x19, 0x91, 0x2d, - 0x81, 0x2b, 0x03, 0x45, 0x6e, 0x16, 0xd4, 0x8a, 0x96, 0x18, 0xaf, 0x96, 0x5b, 0x92, 0xab, 0xda, - 0x79, 0x8f, 0x16, 0x7d, 0x82, 0xbe, 0x40, 0x5f, 0xa2, 0xe8, 0x55, 0x6f, 0xdb, 0x9b, 0x16, 0x79, - 0x81, 0x5e, 0x14, 0xbd, 0x2f, 0xc8, 0xdd, 0x95, 0xe4, 0xc4, 0x71, 0x62, 0xa4, 0xb9, 0xe3, 0x72, - 0xe6, 0xfb, 0x38, 0xc3, 0x19, 0x7e, 0x23, 0xc1, 0xed, 0x80, 0xaa, 0x6f, 0xb8, 0x38, 0x61, 0xc1, - 0xb0, 0x3e, 0xd9, 0x22, 0x7e, 0x38, 0x22, 0x77, 0xeb, 0x03, 0x2a, 0x15, 0x0b, 0x88, 0x62, 0x3c, - 0x70, 0x45, 0xe4, 0x53, 0x3b, 0x14, 0x5c, 0x71, 0x74, 0x83, 0x49, 0xc5, 0xb8, 0x3d, 0x43, 0xd8, - 0x29, 0xa2, 0xba, 0x3e, 0xe4, 0x7c, 0xe8, 0xd3, 0xba, 0x71, 0xec, 0x47, 0xc7, 0xf5, 0x41, 0x24, - 0x0c, 0x3e, 0x86, 0x56, 0x3f, 0xbe, 0xe8, 0x98, 0x09, 0x13, 0x2a, 0x22, 0xbe, 0x2b, 0xa9, 0x98, - 0x30, 0x2f, 0x39, 0xa5, 0xba, 0x36, 0xe4, 0x43, 0x6e, 0x96, 0x75, 0xbd, 0x8a, 0x77, 0x6b, 0x3f, - 0x66, 0x60, 0x65, 0x6f, 0x16, 0x16, 0x8e, 0x7c, 0x8a, 0x10, 0xe4, 0x47, 0x5c, 0xaa, 0x4a, 0x66, - 0x23, 0xb3, 0xb9, 0x84, 0xcd, 0x1a, 0x75, 0xa0, 0xac, 0x04, 0x39, 0x3e, 0x66, 0x9e, 0x1b, 0x72, - 0x9f, 0x79, 0x67, 0x95, 0xec, 0x46, 0x66, 0xb3, 0xb4, 0xbd, 0x69, 0xbf, 0x36, 0x78, 0xbb, 0x17, - 0x03, 0xba, 0xc6, 0x1f, 0x2f, 0xab, 0xf9, 0x4f, 0xf4, 0x00, 0xae, 0xc9, 0xa8, 0x2f, 0xa9, 0x92, - 0x95, 0xdc, 0x46, 0x6e, 0xb3, 0xb4, 0xfd, 0xc1, 0x25, 0x4c, 0x8e, 0xf1, 0xc4, 0x29, 0xa2, 0xf6, - 0x5b, 0x11, 0x96, 0xcf, 0xb1, 0xa3, 0x1e, 0x2c, 0xfb, 0x9c, 0x0c, 0xdc, 0x3e, 0xf1, 0x49, 0xe0, - 0x51, 0x61, 0x82, 0x2f, 0x6d, 0xd7, 0x2f, 0x21, 0x6d, 0x73, 0x32, 0x68, 0x24, 0xee, 0x0e, 0x55, - 0x8a, 0x05, 0x43, 0x89, 0xaf, 0xfb, 0x73, 0xbb, 0xe8, 0x29, 0xac, 0x78, 0x3c, 0x08, 0xa8, 0x67, - 0x4a, 0x16, 0x72, 0xee, 0x27, 0x69, 0x6f, 0x5d, 0xc2, 0xbb, 0x3b, 0x45, 0x74, 0x39, 0xf7, 0xa7, - 0xcc, 0x65, 0xef, 0xdc, 0x3e, 0xfa, 0x0a, 0x56, 0x79, 0xa4, 0x7c, 0x46, 0x85, 0x3b, 0xa0, 0x2a, - 0x36, 0x54, 0x72, 0x86, 0xfd, 0x93, 0x4b, 0xd8, 0x3b, 0x31, 0x66, 0x2f, 0x85, 0x60, 0x8b, 0xbf, - 0xb4, 0x83, 0xee, 0x41, 0x4e, 0xf9, 0xb2, 0x92, 0x37, 0x5c, 0x1f, 0x5d, 0x56, 0xa0, 0xb6, 0x33, - 0x0d, 0x4f, 0x43, 0xd0, 0x33, 0xf8, 0x4f, 0xc8, 0x85, 0x72, 0x7d, 0x3a, 0xa1, 0xba, 0x7f, 0x62, - 0x5b, 0xa5, 0x60, 0x0a, 0x74, 0xff, 0x6d, 0x4b, 0x6d, 0x77, 0xb9, 0x50, 0xe7, 0x8b, 0xbf, 0xaa, - 0x69, 0xdb, 0x9a, 0x35, 0x3d, 0xb0, 0xfa, 0x5d, 0x0e, 0x56, 0x5f, 0x71, 0x44, 0x0f, 0x20, 0xaf, - 0x5d, 0x93, 0xf2, 0xdd, 0xba, 0xe4, 0x48, 0x8d, 0x75, 0xa8, 0x4f, 0x3d, 0xc5, 0x05, 0x36, 0xa0, - 0x57, 0x9b, 0x20, 0xfb, 0x9e, 0x9a, 0x20, 0xf7, 0x5e, 0x9b, 0x20, 0xff, 0x2f, 0x36, 0x41, 0xe1, - 0xca, 0x4d, 0x50, 0xfb, 0x33, 0x03, 0xc5, 0xf8, 0xc1, 0x69, 0x25, 0x08, 0xc8, 0x98, 0xa6, 0x4a, - 0xa0, 0xd7, 0xa8, 0x09, 0x45, 0x9f, 0xf4, 0xa9, 0x2f, 0x2b, 0x59, 0xd3, 0x16, 0x77, 0xde, 0xf8, - 0x6e, 0xed, 0xb6, 0xf1, 0x6f, 0x06, 0x4a, 0x9c, 0xe1, 0x04, 0x7c, 0x81, 0xa0, 0xe4, 0xde, 0x49, - 0x50, 0xaa, 0x5f, 0x40, 0x69, 0xee, 0x1c, 0x64, 0x41, 0xee, 0x84, 0x9e, 0x25, 0x91, 0xeb, 0x25, - 0x5a, 0x83, 0xc2, 0x84, 0xf8, 0x11, 0x35, 0x5d, 0xb1, 0x84, 0xe3, 0x8f, 0xfb, 0xd9, 0x7b, 0x99, - 0xda, 0x0f, 0x05, 0x58, 0xbb, 0xa8, 0x11, 0x10, 0x86, 0xa2, 0x64, 0xe3, 0xd0, 0x8f, 0x6f, 0xa0, - 0xbc, 0x7d, 0xef, 0x8a, 0x9d, 0x64, 0x3b, 0x06, 0xdd, 0x6e, 0xb4, 0x16, 0x70, 0xc2, 0x84, 0x4e, - 0x4c, 0x3b, 0x49, 0x26, 0x15, 0x0d, 0x94, 0x3b, 0x22, 0x72, 0x94, 0xb4, 0xe9, 0xa3, 0xab, 0x92, - 0xef, 0x4e, 0x69, 0x5a, 0x44, 0x8e, 0xcc, 0x21, 0x65, 0xef, 0xdc, 0x5e, 0xf5, 0xef, 0x2c, 0x58, - 0x2f, 0xbb, 0xa1, 0xdb, 0x60, 0x8d, 0x94, 0x0a, 0xdd, 0x11, 0x25, 0x03, 0x2a, 0xdc, 0x59, 0x85, - 0x35, 0x81, 0xb6, 0xb4, 0x8c, 0xe1, 0x50, 0x57, 0x3b, 0x80, 0x92, 0xf1, 0xf5, 0x38, 0x3f, 0x61, - 0x34, 0x89, 0xf4, 0xc9, 0xbb, 0x46, 0x6a, 0xb7, 0x7a, 0xbd, 0xee, 0xae, 0xa1, 0x6c, 0x2d, 0x60, - 0xd0, 0x27, 0xc4, 0x5f, 0xe8, 0x43, 0x58, 0x8e, 0x24, 0x75, 0x25, 0x8f, 0x84, 0x47, 0x5d, 0x16, - 0x9a, 0xae, 0x58, 0x6c, 0x2d, 0xe0, 0x52, 0x24, 0xa9, 0x63, 0x76, 0xf7, 0x43, 0x74, 0x1b, 0x56, - 0xc7, 0x2c, 0x60, 0xe3, 0x68, 0xec, 0x0a, 0x16, 0x0c, 0x5d, 0xc9, 0x9e, 0x53, 0xf3, 0x6c, 0xf2, - 0x78, 0x25, 0x31, 0x60, 0x16, 0x0c, 0x1d, 0xf6, 0x9c, 0x56, 0x87, 0x00, 0xb3, 0xd3, 0x2e, 0xec, - 0x68, 0x04, 0xf9, 0x90, 0xa8, 0x51, 0xd2, 0x17, 0x66, 0x8d, 0xb6, 0x20, 0xa7, 0x54, 0xfa, 0xd0, - 0x6f, 0xd8, 0xf1, 0x18, 0xb6, 0xd3, 0x31, 0x6c, 0xef, 0x25, 0x63, 0xb8, 0x91, 0xff, 0xfe, 0xf7, - 0x9b, 0x19, 0xac, 0x7d, 0x1b, 0x00, 0x8b, 0xba, 0x9a, 0xee, 0x09, 0x3d, 0xab, 0xb5, 0x60, 0x31, - 0x2d, 0x3d, 0x5a, 0x81, 0x12, 0xee, 0x1c, 0x1d, 0xee, 0xb9, 0xb8, 0xd3, 0xd8, 0x3f, 0xb4, 0x16, - 0x50, 0x19, 0xa0, 0xdd, 0xdc, 0x71, 0x7a, 0xee, 0x6e, 0xe7, 0xf0, 0xd0, 0xca, 0x20, 0x80, 0x22, - 0xde, 0x39, 0xdc, 0xeb, 0x1c, 0x58, 0x59, 0xed, 0xdc, 0xdd, 0x71, 0x9c, 0x5e, 0x0b, 0x77, 0x8e, - 0x1e, 0xb7, 0xac, 0x5c, 0xa3, 0x04, 0x4b, 0x7e, 0x3f, 0x79, 0x22, 0xb5, 0x6f, 0xf3, 0xf0, 0xdf, - 0x8b, 0x95, 0x05, 0x75, 0x20, 0xa7, 0xbc, 0x30, 0xd1, 0xcd, 0x87, 0x57, 0x56, 0x26, 0xbb, 0xb7, - 0xdb, 0x9d, 0x93, 0x01, 0x2f, 0x44, 0x18, 0xf2, 0xba, 0x2e, 0x49, 0xc9, 0xbf, 0xbc, 0x3a, 0xa3, - 0xbe, 0xf5, 0x29, 0xa5, 0xe1, 0xaa, 0x3e, 0x87, 0xd2, 0xdc, 0x39, 0xe8, 0x16, 0xac, 0x8c, 0xc9, - 0xa9, 0x3b, 0xd3, 0x44, 0x69, 0xe2, 0x2f, 0xe0, 0xf2, 0x98, 0x9c, 0xce, 0x58, 0x25, 0x6a, 0x4c, - 0x25, 0xd8, 0x55, 0x6c, 0x4c, 0x79, 0xa4, 0x92, 0xb0, 0x5e, 0x5f, 0x99, 0xa9, 0xd4, 0xf6, 0x62, - 0x40, 0xf5, 0xd7, 0x0c, 0x5c, 0x9f, 0x0f, 0x09, 0x3d, 0x80, 0xaa, 0x0e, 0x6a, 0xcb, 0xd5, 0x31, - 0x84, 0x34, 0x18, 0xe8, 0x4e, 0x12, 0xf4, 0xeb, 0x88, 0x4a, 0x95, 0x06, 0xf2, 0x3f, 0xe3, 0x71, - 0x40, 0x4e, 0xbb, 0xb1, 0x1d, 0x27, 0x66, 0xf4, 0x29, 0x20, 0x6d, 0xda, 0x36, 0xe0, 0x29, 0x28, - 0x6b, 0x40, 0xe6, 0x75, 0x6d, 0x1f, 0x90, 0xd3, 0xa9, 0xf7, 0x43, 0xf8, 0xff, 0xbc, 0x9f, 0x1b, - 0x52, 0x31, 0x97, 0xb5, 0xe9, 0xb2, 0x02, 0xae, 0x8c, 0x67, 0x88, 0x2e, 0x15, 0xb3, 0xfc, 0xd1, - 0x4d, 0x28, 0xc5, 0x70, 0x25, 0x18, 0x8d, 0x07, 0x7b, 0x01, 0x83, 0x71, 0x37, 0x3b, 0xb5, 0xbf, - 0x32, 0x60, 0xbd, 0x3c, 0x13, 0xd0, 0x1d, 0x40, 0x5a, 0x0d, 0xa8, 0x17, 0x29, 0x36, 0xa1, 0x2e, - 0x15, 0x82, 0x8b, 0x34, 0xaf, 0xd5, 0x39, 0x4b, 0xd3, 0x18, 0xd0, 0xe7, 0xb0, 0xc8, 0x02, 0x45, - 0xc5, 0x84, 0xf8, 0x6f, 0xbe, 0xdc, 0xa9, 0x2b, 0x7a, 0x0c, 0xa8, 0x4f, 0x24, 0x75, 0xe9, 0xb3, - 0x64, 0x40, 0xea, 0x02, 0xbd, 0xf1, 0xdd, 0x60, 0x4b, 0x83, 0x9a, 0x09, 0x46, 0x97, 0x08, 0x7d, - 0x06, 0x6b, 0x3a, 0xc9, 0x29, 0x4f, 0x48, 0x85, 0x47, 0x03, 0x95, 0x64, 0x8b, 0xc6, 0xe4, 0x34, - 0x75, 0xef, 0xc6, 0x96, 0xda, 0xcf, 0x59, 0x28, 0xcd, 0x4d, 0x2f, 0xd4, 0x80, 0xfc, 0x98, 0x0f, - 0x52, 0xad, 0xb6, 0xdf, 0x6e, 0xe6, 0xe9, 0xb5, 0x46, 0x61, 0x83, 0x35, 0x97, 0xe6, 0x33, 0xad, - 0xcc, 0x1e, 0x15, 0x8a, 0x1d, 0x33, 0x8f, 0xa8, 0x74, 0x62, 0xac, 0xc6, 0x96, 0xdd, 0x99, 0x41, - 0x57, 0x26, 0x14, 0x6c, 0x42, 0x14, 0xd5, 0xcf, 0xde, 0xa4, 0xbd, 0x84, 0x21, 0xd9, 0x7a, 0x42, - 0xcf, 0x74, 0x8b, 0x7b, 0x64, 0x9e, 0x2b, 0x2e, 0xdf, 0x12, 0x2e, 0x7b, 0x64, 0x8e, 0x48, 0x6a, - 0x49, 0x93, 0x51, 0x5f, 0x67, 0xe8, 0x12, 0x5f, 0x19, 0x51, 0x8e, 0x7f, 0x78, 0x2d, 0xe1, 0x95, - 0xc4, 0xb0, 0xe3, 0x2b, 0xad, 0xc9, 0x52, 0xcf, 0x36, 0x19, 0xb0, 0x4a, 0x31, 0x9e, 0x6d, 0x32, - 0x60, 0xb5, 0x47, 0x70, 0x2d, 0xc9, 0x03, 0x95, 0xe0, 0xda, 0xde, 0xbe, 0xb3, 0xd3, 0x68, 0x37, - 0xad, 0x05, 0x2d, 0x2d, 0xce, 0xfe, 0x41, 0xb7, 0xdd, 0x8c, 0x65, 0xe6, 0xe0, 0xa8, 0x77, 0xb4, - 0xd3, 0xb6, 0xb2, 0xc8, 0x82, 0xeb, 0xfb, 0x4e, 0x6f, 0xbf, 0xe3, 0x26, 0x3b, 0xb9, 0x86, 0xfd, - 0xd3, 0x8b, 0xf5, 0xcc, 0x2f, 0x2f, 0xd6, 0x33, 0x7f, 0xbc, 0x58, 0xcf, 0x3c, 0xdd, 0x88, 0xef, - 0x8e, 0xf1, 0x3a, 0x09, 0x59, 0xfd, 0x82, 0x3f, 0x19, 0xfd, 0xa2, 0xa9, 0xe9, 0xdd, 0x7f, 0x02, - 0x00, 0x00, 0xff, 0xff, 0x74, 0x27, 0x2c, 0x70, 0xe9, 0x0c, 0x00, 0x00, + // 1312 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcf, 0x6e, 0x1b, 0x37, + 0x13, 0xb7, 0xfe, 0xc6, 0x1e, 0xc5, 0xb2, 0xcc, 0xcf, 0xf8, 0x3e, 0x45, 0x1f, 0xe0, 0xb8, 0x42, + 0xd1, 0xb8, 0x69, 0xb3, 0xaa, 0x1d, 0x14, 0x48, 0x13, 0xa4, 0x88, 0x65, 0x0b, 0x91, 0x11, 0xd9, + 0x12, 0xb8, 0x32, 0x50, 0xe4, 0xb2, 0xa0, 0x56, 0xb4, 0xc4, 0x78, 0x77, 0xb9, 0x25, 0xb9, 0xaa, + 0x9d, 0xf7, 0x68, 0xd1, 0x6b, 0x2f, 0x7d, 0x81, 0xbe, 0x44, 0xd1, 0x53, 0xaf, 0xed, 0xa5, 0x45, + 0x5e, 0xa0, 0xa7, 0xde, 0x0b, 0x72, 0x77, 0x25, 0x39, 0x71, 0x9c, 0x18, 0x69, 0x6e, 0x5c, 0xce, + 0xfc, 0x7e, 0x33, 0xe4, 0x0c, 0x7f, 0x23, 0xc1, 0xed, 0x80, 0xaa, 0x6f, 0xb8, 0x38, 0x61, 0xc1, + 0xa8, 0x31, 0xd9, 0x22, 0x5e, 0x38, 0x26, 0x77, 0x1b, 0x43, 0x2a, 0x15, 0x0b, 0x88, 0x62, 0x3c, + 0x70, 0x44, 0xe4, 0x51, 0x2b, 0x14, 0x5c, 0x71, 0x74, 0x83, 0x49, 0xc5, 0xb8, 0x35, 0x43, 0x58, + 0x29, 0xa2, 0xb6, 0x3e, 0xe2, 0x7c, 0xe4, 0xd1, 0x86, 0x71, 0x1c, 0x44, 0xc7, 0x8d, 0x61, 0x24, + 0x0c, 0x3e, 0x86, 0xd6, 0x3e, 0xbe, 0x28, 0xcc, 0x84, 0x09, 0x15, 0x11, 0xcf, 0x91, 0x54, 0x4c, + 0x98, 0x9b, 0x44, 0xa9, 0xad, 0x8d, 0xf8, 0x88, 0x9b, 0x65, 0x43, 0xaf, 0xe2, 0xdd, 0xfa, 0x4f, + 0x19, 0x58, 0xd9, 0x9b, 0xa5, 0x85, 0x23, 0x8f, 0x22, 0x04, 0xf9, 0x31, 0x97, 0xaa, 0x9a, 0xd9, + 0xc8, 0x6c, 0x2e, 0x61, 0xb3, 0x46, 0x5d, 0x28, 0x2b, 0x41, 0x8e, 0x8f, 0x99, 0xeb, 0x84, 0xdc, + 0x63, 0xee, 0x59, 0x35, 0xbb, 0x91, 0xd9, 0x2c, 0x6d, 0x6f, 0x5a, 0xaf, 0x4d, 0xde, 0xea, 0xc7, + 0x80, 0x9e, 0xf1, 0xc7, 0xcb, 0x6a, 0xfe, 0x13, 0x3d, 0x80, 0x6b, 0x32, 0x1a, 0x48, 0xaa, 0x64, + 0x35, 0xb7, 0x91, 0xdb, 0x2c, 0x6d, 0x7f, 0x70, 0x09, 0x93, 0x6d, 0x3c, 0x71, 0x8a, 0xa8, 0xff, + 0x5e, 0x84, 0xe5, 0x73, 0xec, 0xa8, 0x0f, 0xcb, 0x1e, 0x27, 0x43, 0x67, 0x40, 0x3c, 0x12, 0xb8, + 0x54, 0x98, 0xe4, 0x4b, 0xdb, 0x8d, 0x4b, 0x48, 0x3b, 0x9c, 0x0c, 0x9b, 0x89, 0xbb, 0x4d, 0x95, + 0x62, 0xc1, 0x48, 0xe2, 0xeb, 0xde, 0xdc, 0x2e, 0x7a, 0x0a, 0x2b, 0x2e, 0x0f, 0x02, 0xea, 0x9a, + 0x92, 0x85, 0x9c, 0x7b, 0xc9, 0xb1, 0xb7, 0x2e, 0xe1, 0xdd, 0x9d, 0x22, 0x7a, 0x9c, 0x7b, 0x53, + 0xe6, 0xb2, 0x7b, 0x6e, 0x1f, 0x7d, 0x05, 0xab, 0x3c, 0x52, 0x1e, 0xa3, 0xc2, 0x19, 0x52, 0x15, + 0x1b, 0xaa, 0x39, 0xc3, 0xfe, 0xc9, 0x25, 0xec, 0xdd, 0x18, 0xb3, 0x97, 0x42, 0x70, 0x85, 0xbf, + 0xb4, 0x83, 0xee, 0x41, 0x4e, 0x79, 0xb2, 0x9a, 0x37, 0x5c, 0x1f, 0x5d, 0x56, 0xa0, 0x8e, 0x3d, + 0x4d, 0x4f, 0x43, 0xd0, 0x33, 0xf8, 0x4f, 0xc8, 0x85, 0x72, 0x3c, 0x3a, 0xa1, 0xba, 0x7f, 0x62, + 0x5b, 0xb5, 0x60, 0x0a, 0x74, 0xff, 0x6d, 0x4b, 0x6d, 0xf5, 0xb8, 0x50, 0xe7, 0x8b, 0xbf, 0xaa, + 0x69, 0x3b, 0x9a, 0x35, 0x0d, 0x58, 0xfb, 0x2e, 0x07, 0xab, 0xaf, 0x38, 0xa2, 0x07, 0x90, 0xd7, + 0xae, 0x49, 0xf9, 0x6e, 0x5d, 0x12, 0x52, 0x63, 0x6d, 0xea, 0x51, 0x57, 0x71, 0x81, 0x0d, 0xe8, + 0xd5, 0x26, 0xc8, 0xbe, 0xa7, 0x26, 0xc8, 0xbd, 0xd7, 0x26, 0xc8, 0xff, 0x8b, 0x4d, 0x50, 0xb8, + 0x72, 0x13, 0xd4, 0xff, 0xca, 0x40, 0x31, 0x7e, 0x70, 0x5a, 0x09, 0x02, 0xe2, 0xd3, 0x54, 0x09, + 0xf4, 0x1a, 0xb5, 0xa0, 0xe8, 0x91, 0x01, 0xf5, 0x64, 0x35, 0x6b, 0xda, 0xe2, 0xce, 0x1b, 0xdf, + 0xad, 0xd5, 0x31, 0xfe, 0xad, 0x40, 0x89, 0x33, 0x9c, 0x80, 0x2f, 0x10, 0x94, 0xdc, 0x3b, 0x09, + 0x4a, 0xed, 0x0b, 0x28, 0xcd, 0xc5, 0x41, 0x15, 0xc8, 0x9d, 0xd0, 0xb3, 0x24, 0x73, 0xbd, 0x44, + 0x6b, 0x50, 0x98, 0x10, 0x2f, 0xa2, 0xa6, 0x2b, 0x96, 0x70, 0xfc, 0x71, 0x3f, 0x7b, 0x2f, 0x53, + 0xff, 0xb1, 0x00, 0x6b, 0x17, 0x35, 0x02, 0xc2, 0x50, 0x94, 0xcc, 0x0f, 0xbd, 0xf8, 0x06, 0xca, + 0xdb, 0xf7, 0xae, 0xd8, 0x49, 0x96, 0x6d, 0xd0, 0x9d, 0x66, 0x7b, 0x01, 0x27, 0x4c, 0xe8, 0xc4, + 0xb4, 0x93, 0x64, 0x52, 0xd1, 0x40, 0x39, 0x63, 0x22, 0xc7, 0x49, 0x9b, 0x3e, 0xba, 0x2a, 0xf9, + 0xee, 0x94, 0xa6, 0x4d, 0xe4, 0xd8, 0x04, 0x29, 0xbb, 0xe7, 0xf6, 0x6a, 0x7f, 0x67, 0xa1, 0xf2, + 0xb2, 0x1b, 0xba, 0x0d, 0x95, 0xb1, 0x52, 0xa1, 0x33, 0xa6, 0x64, 0x48, 0x85, 0x33, 0xab, 0xb0, + 0x26, 0xd0, 0x96, 0xb6, 0x31, 0x1c, 0xea, 0x6a, 0x07, 0x50, 0x32, 0xbe, 0x2e, 0xe7, 0x27, 0x8c, + 0x26, 0x99, 0x3e, 0x79, 0xd7, 0x4c, 0xad, 0x76, 0xbf, 0xdf, 0xdb, 0x35, 0x94, 0xed, 0x05, 0x0c, + 0x3a, 0x42, 0xfc, 0x85, 0x3e, 0x84, 0xe5, 0x48, 0x52, 0x47, 0xf2, 0x48, 0xb8, 0xd4, 0x61, 0xa1, + 0xe9, 0x8a, 0xc5, 0xf6, 0x02, 0x2e, 0x45, 0x92, 0xda, 0x66, 0x77, 0x3f, 0x44, 0xb7, 0x61, 0xd5, + 0x67, 0x01, 0xf3, 0x23, 0xdf, 0x11, 0x2c, 0x18, 0x39, 0x92, 0x3d, 0xa7, 0xe6, 0xd9, 0xe4, 0xf1, + 0x4a, 0x62, 0xc0, 0x2c, 0x18, 0xd9, 0xec, 0x39, 0xad, 0x8d, 0x00, 0x66, 0xd1, 0x2e, 0xec, 0x68, + 0x04, 0xf9, 0x90, 0xa8, 0x71, 0xd2, 0x17, 0x66, 0x8d, 0xb6, 0x20, 0xa7, 0x54, 0xfa, 0xd0, 0x6f, + 0x58, 0xf1, 0x18, 0xb6, 0xd2, 0x31, 0x6c, 0xed, 0x25, 0x63, 0xb8, 0x99, 0xff, 0xfe, 0x8f, 0x9b, + 0x19, 0xac, 0x7d, 0x9b, 0x00, 0x8b, 0xba, 0x9a, 0xce, 0x09, 0x3d, 0xab, 0xb7, 0x61, 0x31, 0x2d, + 0x3d, 0x5a, 0x81, 0x12, 0xee, 0x1e, 0x1d, 0xee, 0x39, 0xb8, 0xdb, 0xdc, 0x3f, 0xac, 0x2c, 0xa0, + 0x32, 0x40, 0xa7, 0xb5, 0x63, 0xf7, 0x9d, 0xdd, 0xee, 0xe1, 0x61, 0x25, 0x83, 0x00, 0x8a, 0x78, + 0xe7, 0x70, 0xaf, 0x7b, 0x50, 0xc9, 0x6a, 0xe7, 0xde, 0x8e, 0x6d, 0xf7, 0xdb, 0xb8, 0x7b, 0xf4, + 0xb8, 0x5d, 0xc9, 0x35, 0x4b, 0xb0, 0xe4, 0x0d, 0x92, 0x27, 0x52, 0xff, 0x36, 0x0f, 0xff, 0xbd, + 0x58, 0x59, 0x50, 0x17, 0x72, 0xca, 0x0d, 0x13, 0xdd, 0x7c, 0x78, 0x65, 0x65, 0xb2, 0xfa, 0xbb, + 0xbd, 0x39, 0x19, 0x70, 0x43, 0x84, 0x21, 0xaf, 0xeb, 0x92, 0x94, 0xfc, 0xcb, 0xab, 0x33, 0xea, + 0x5b, 0x9f, 0x52, 0x1a, 0xae, 0xda, 0x73, 0x28, 0xcd, 0xc5, 0x41, 0xb7, 0x60, 0xc5, 0x27, 0xa7, + 0xce, 0x4c, 0x13, 0xa5, 0xc9, 0xbf, 0x80, 0xcb, 0x3e, 0x39, 0x9d, 0xb1, 0x4a, 0xd4, 0x9c, 0x4a, + 0xb0, 0xa3, 0x98, 0x4f, 0x79, 0xa4, 0x92, 0xb4, 0x5e, 0x5f, 0x99, 0xa9, 0xd4, 0xf6, 0x63, 0x40, + 0xed, 0xb7, 0x0c, 0x5c, 0x9f, 0x4f, 0x09, 0x3d, 0x80, 0x9a, 0x4e, 0x6a, 0xcb, 0xd1, 0x39, 0x84, + 0x34, 0x18, 0xea, 0x4e, 0x12, 0xf4, 0xeb, 0x88, 0x4a, 0x95, 0x26, 0xf2, 0x3f, 0xe3, 0x71, 0x40, + 0x4e, 0x7b, 0xb1, 0x1d, 0x27, 0x66, 0xf4, 0x29, 0x20, 0x6d, 0xda, 0x36, 0xe0, 0x29, 0x28, 0x6b, + 0x40, 0xe6, 0x75, 0x6d, 0x1f, 0x90, 0xd3, 0xa9, 0xf7, 0x43, 0xf8, 0xff, 0xbc, 0x9f, 0x13, 0x52, + 0x31, 0x77, 0x6a, 0xd3, 0x65, 0x05, 0x5c, 0xf5, 0x67, 0x88, 0x1e, 0x15, 0xb3, 0xf3, 0xa3, 0x9b, + 0x50, 0x8a, 0xe1, 0x4a, 0x30, 0x1a, 0x0f, 0xf6, 0x02, 0x06, 0xe3, 0x6e, 0x76, 0xea, 0x3f, 0x64, + 0xa1, 0xf2, 0xf2, 0x4c, 0x40, 0x77, 0x00, 0x69, 0x35, 0xa0, 0x6e, 0xa4, 0xd8, 0x84, 0x3a, 0x54, + 0x08, 0x2e, 0xd2, 0x73, 0xad, 0xce, 0x59, 0x5a, 0xc6, 0x80, 0x3e, 0x87, 0x45, 0x16, 0x28, 0x2a, + 0x26, 0xc4, 0x7b, 0xf3, 0xe5, 0x4e, 0x5d, 0xd1, 0x63, 0x40, 0x03, 0x22, 0xa9, 0x43, 0x9f, 0x25, + 0x03, 0x52, 0x17, 0xe8, 0x8d, 0xef, 0x06, 0x57, 0x34, 0xa8, 0x95, 0x60, 0x74, 0x89, 0xd0, 0x67, + 0xb0, 0xa6, 0x0f, 0x39, 0xe5, 0x09, 0xa9, 0x70, 0x69, 0xa0, 0x92, 0xd3, 0x22, 0x9f, 0x9c, 0xa6, + 0xee, 0xbd, 0xd8, 0xa2, 0x6b, 0xe0, 0xb3, 0x40, 0xcb, 0x98, 0xa7, 0xc6, 0x53, 0xff, 0x42, 0x5c, + 0x03, 0x9f, 0x05, 0x6d, 0x63, 0x48, 0xbc, 0xeb, 0xbf, 0x64, 0xa1, 0x34, 0x37, 0xeb, 0x50, 0x13, + 0xf2, 0x3e, 0x1f, 0xa6, 0xca, 0x6e, 0xbd, 0xdd, 0x84, 0xd4, 0x6b, 0x8d, 0xc2, 0x06, 0x6b, 0xae, + 0xd8, 0x63, 0x5a, 0xc7, 0x5d, 0x2a, 0x14, 0x3b, 0x66, 0x2e, 0x51, 0xe9, 0x7c, 0x59, 0x8d, 0x2d, + 0xbb, 0x33, 0x83, 0xae, 0x63, 0x28, 0xd8, 0x84, 0x28, 0xaa, 0x45, 0xc2, 0x5c, 0xd2, 0x12, 0x86, + 0x64, 0xeb, 0x09, 0x3d, 0xd3, 0x0f, 0xc2, 0x25, 0xf3, 0x5c, 0x71, 0xb1, 0x97, 0x70, 0xd9, 0x25, + 0x73, 0x44, 0x52, 0x0b, 0xa0, 0x8c, 0x06, 0xfa, 0x3e, 0x1c, 0xe2, 0x29, 0x23, 0xe1, 0xf1, 0xcf, + 0xb4, 0x25, 0xbc, 0x92, 0x18, 0x76, 0x3c, 0xa5, 0x15, 0x5c, 0xea, 0x49, 0x28, 0x03, 0x56, 0x2d, + 0xc6, 0x93, 0x50, 0x06, 0xac, 0xfe, 0x08, 0xae, 0x25, 0xe7, 0x40, 0x25, 0xb8, 0xb6, 0xb7, 0x6f, + 0xef, 0x34, 0x3b, 0xad, 0xca, 0x82, 0x16, 0x22, 0x7b, 0xff, 0xa0, 0xd7, 0x69, 0xc5, 0xa2, 0x74, + 0x70, 0xd4, 0x3f, 0xda, 0xe9, 0x54, 0xb2, 0xa8, 0x02, 0xd7, 0xf7, 0xed, 0xfe, 0x7e, 0xd7, 0x49, + 0x76, 0x72, 0x4d, 0xeb, 0xe7, 0x17, 0xeb, 0x99, 0x5f, 0x5f, 0xac, 0x67, 0xfe, 0x7c, 0xb1, 0x9e, + 0x79, 0xba, 0x11, 0xdf, 0x1d, 0xe3, 0x0d, 0x12, 0xb2, 0xc6, 0x05, 0x7f, 0x49, 0x06, 0x45, 0xd3, + 0x01, 0x77, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x95, 0xd0, 0xbb, 0x17, 0x0d, 0x00, 0x00, } diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto index 08d89cf812..3976fc6acf 100644 --- a/networking/v1alpha3/destination_rule.proto +++ b/networking/v1alpha3/destination_rule.proto @@ -442,6 +442,13 @@ message OutlierDetection { // Maximum % of hosts in the load balancing pool for the upstream // service that can be ejected. Defaults to 10%. int32 max_ejection_percent = 4; + + // Outlier detection will be enabled as long as the associated load balancing + // pool has at least min_health_percent hosts in healthy mode. When the + // percentage of healthy hosts in the load balancing pool drops below this + // threshold, outlier detection will be disabled and the proxy will load balance + // across all hosts in the pool (healthy and unhealthy). The default is 50%. + int32 min_health_percent = 5; } // SSL/TLS related settings for upstream connections. See Envoy's [TLS diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index 21d268e328..27506f1190 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -2294,6 +2294,18 @@

OutlierDetection

Maximum % of hosts in the load balancing pool for the upstream service that can be ejected. Defaults to 10%.

+ + +
+ + + diff --git a/python/istio_api/networking/v1alpha3/destination_rule_pb2.py b/python/istio_api/networking/v1alpha3/destination_rule_pb2.py index 3a7918985f..36effb9013 100644 --- a/python/istio_api/networking/v1alpha3/destination_rule_pb2.py +++ b/python/istio_api/networking/v1alpha3/destination_rule_pb2.py @@ -22,7 +22,7 @@ name='networking/v1alpha3/destination_rule.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n*networking/v1alpha3/destination_rule.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a)networking/v1alpha3/virtual_service.proto\x1a\x14gogoproto/gogo.proto\"\x95\x01\n\x0f\x44\x65stinationRule\x12\x0c\n\x04host\x18\x01 \x01(\t\x12@\n\x0etraffic_policy\x18\x02 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x12\x32\n\x07subsets\x18\x03 \x03(\x0b\x32!.istio.networking.v1alpha3.Subset\"\xd7\x05\n\rTrafficPolicy\x12\x46\n\rload_balancer\x18\x01 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x02 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x03 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\x12W\n\x13port_level_settings\x18\x05 \x03(\x0b\x32:.istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy\x1a\xdb\x02\n\x11PortTrafficPolicy\x12\x35\n\x04port\x18\x01 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\x12\x46\n\rload_balancer\x18\x02 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x03 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x04 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x05 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\"\xc6\x01\n\x06Subset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x06labels\x18\x02 \x03(\x0b\x32-.istio.networking.v1alpha3.Subset.LabelsEntry\x12@\n\x0etraffic_policy\x18\x03 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc3\x04\n\x14LoadBalancerSettings\x12J\n\x06simple\x18\x01 \x01(\x0e\x32\x38.istio.networking.v1alpha3.LoadBalancerSettings.SimpleLBH\x00\x12[\n\x0f\x63onsistent_hash\x18\x02 \x01(\x0b\x32@.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLBH\x00\x1a\xaa\x02\n\x10\x43onsistentHashLB\x12\x1a\n\x10http_header_name\x18\x01 \x01(\tH\x00\x12\x62\n\x0bhttp_cookie\x18\x02 \x01(\x0b\x32K.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookieH\x00\x12\x17\n\ruse_source_ip\x18\x03 \x01(\x08H\x00\x12\x19\n\x11minimum_ring_size\x18\x04 \x01(\x04\x1aV\n\nHTTPCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12,\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01\x42\n\n\x08hash_key\"H\n\x08SimpleLB\x12\x0f\n\x0bROUND_ROBIN\x10\x00\x12\x0e\n\nLEAST_CONN\x10\x01\x12\n\n\x06RANDOM\x10\x02\x12\x0f\n\x0bPASSTHROUGH\x10\x03\x42\x0b\n\tlb_policy\"\x99\x03\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\x1aZ\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\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\"\xb0\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\"\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\x14gogoproto/gogo.proto\"\x95\x01\n\x0f\x44\x65stinationRule\x12\x0c\n\x04host\x18\x01 \x01(\t\x12@\n\x0etraffic_policy\x18\x02 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x12\x32\n\x07subsets\x18\x03 \x03(\x0b\x32!.istio.networking.v1alpha3.Subset\"\xd7\x05\n\rTrafficPolicy\x12\x46\n\rload_balancer\x18\x01 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x02 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x03 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\x12W\n\x13port_level_settings\x18\x05 \x03(\x0b\x32:.istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy\x1a\xdb\x02\n\x11PortTrafficPolicy\x12\x35\n\x04port\x18\x01 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\x12\x46\n\rload_balancer\x18\x02 \x01(\x0b\x32/.istio.networking.v1alpha3.LoadBalancerSettings\x12J\n\x0f\x63onnection_pool\x18\x03 \x01(\x0b\x32\x31.istio.networking.v1alpha3.ConnectionPoolSettings\x12\x46\n\x11outlier_detection\x18\x04 \x01(\x0b\x32+.istio.networking.v1alpha3.OutlierDetection\x12\x33\n\x03tls\x18\x05 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettings\"\xc6\x01\n\x06Subset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x06labels\x18\x02 \x03(\x0b\x32-.istio.networking.v1alpha3.Subset.LabelsEntry\x12@\n\x0etraffic_policy\x18\x03 \x01(\x0b\x32(.istio.networking.v1alpha3.TrafficPolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc3\x04\n\x14LoadBalancerSettings\x12J\n\x06simple\x18\x01 \x01(\x0e\x32\x38.istio.networking.v1alpha3.LoadBalancerSettings.SimpleLBH\x00\x12[\n\x0f\x63onsistent_hash\x18\x02 \x01(\x0b\x32@.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLBH\x00\x1a\xaa\x02\n\x10\x43onsistentHashLB\x12\x1a\n\x10http_header_name\x18\x01 \x01(\tH\x00\x12\x62\n\x0bhttp_cookie\x18\x02 \x01(\x0b\x32K.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookieH\x00\x12\x17\n\ruse_source_ip\x18\x03 \x01(\x08H\x00\x12\x19\n\x11minimum_ring_size\x18\x04 \x01(\x04\x1aV\n\nHTTPCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12,\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01\x42\n\n\x08hash_key\"H\n\x08SimpleLB\x12\x0f\n\x0bROUND_ROBIN\x10\x00\x12\x0e\n\nLEAST_CONN\x10\x01\x12\n\n\x06RANDOM\x10\x02\x12\x0f\n\x0bPASSTHROUGH\x10\x03\x42\x0b\n\tlb_policy\"\x99\x03\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\x1aZ\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\x1a\x88\x01\n\x0cHTTPSettings\x12\"\n\x1ahttp1_max_pending_requests\x18\x01 \x01(\x05\x12\x1a\n\x12http2_max_requests\x18\x02 \x01(\x05\x12#\n\x1bmax_requests_per_connection\x18\x03 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x04 \x01(\x05\"\xcc\x01\n\x10OutlierDetection\x12\x1a\n\x12\x63onsecutive_errors\x18\x01 \x01(\x05\x12+\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x12\x62\x61se_ejection_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1c\n\x14max_ejection_percent\x18\x04 \x01(\x05\x12\x1a\n\x12min_health_percent\x18\x05 \x01(\x05\"\xff\x01\n\x0bTLSSettings\x12<\n\x04mode\x18\x01 \x01(\x0e\x32..istio.networking.v1alpha3.TLSSettings.TLSmode\x12\x1a\n\x12\x63lient_certificate\x18\x02 \x01(\t\x12\x13\n\x0bprivate_key\x18\x03 \x01(\t\x12\x17\n\x0f\x63\x61_certificates\x18\x04 \x01(\t\x12\x19\n\x11subject_alt_names\x18\x05 \x03(\t\x12\x0b\n\x03sni\x18\x06 \x01(\t\"@\n\x07TLSmode\x12\x0b\n\x07\x44ISABLE\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\n\n\x06MUTUAL\x10\x02\x12\x10\n\x0cISTIO_MUTUAL\x10\x03\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_virtual__service__pb2.DESCRIPTOR,gogoproto_dot_gogo__pb2.DESCRIPTOR,]) @@ -83,8 +83,8 @@ ], containing_type=None, options=None, - serialized_start=2618, - serialized_end=2682, + serialized_start=2646, + serialized_end=2710, ) _sym_db.RegisterEnumDescriptor(_TLSSETTINGS_TLSMODE) @@ -634,6 +634,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min_health_percent', full_name='istio.networking.v1alpha3.OutlierDetection.min_health_percent', index=4, + 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), ], extensions=[ ], @@ -647,7 +654,7 @@ oneofs=[ ], serialized_start=2248, - serialized_end=2424, + serialized_end=2452, ) @@ -713,8 +720,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2427, - serialized_end=2682, + serialized_start=2455, + serialized_end=2710, ) _DESTINATIONRULE.fields_by_name['traffic_policy'].message_type = _TRAFFICPOLICY From 24f6a071c45e2fefeb1d3dabb9ea6a986ec81eae Mon Sep 17 00:00:00 2001 From: Shriram Rajagopalan Date: Thu, 8 Nov 2018 16:12:09 -0500 Subject: [PATCH 11/11] Update protolock --- proto.lock | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/proto.lock b/proto.lock index 3b53442572..62cee6126c 100644 --- a/proto.lock +++ b/proto.lock @@ -2658,6 +2658,11 @@ "id": 4, "name": "max_ejection_percent", "type": "int32" + }, + { + "id": 5, + "name": "min_health_percent", + "type": "int32" } ] },
name string -

Required. Header name.

+

Required. Header name literal value.

values string[] -

Optional. Header values to replace or append.

+

Optional. Header value expressions.

REPLACE -

replaces the header with the given name

+

Replace a header by name.

REMOVE -

removes the header with the given name (the value is ignored)

+

Remove a header by name. Values are ignored.

APPEND -

appends the values to the existing values (preserving existing values)

+

Append values to the existing header values.

minHealthPercentint32 +

Outlier detection will be enabled as long as the associated load balancing +pool has at least minhealthpercent hosts in healthy mode. When the +percentage of healthy hosts in the load balancing pool drops below this +threshold, outlier detection will be disabled and the proxy will load balance +across all hosts in the pool (healthy and unhealthy). The default is 50%.

+