egress |
-IstioListener[] |
+IstioEgressListener[] |
Egress specifies the configuration of the sidecar for processing
outbound traffic from the attached workload to other services in the
diff --git a/networking/v1alpha3/sidecar.pb.go b/networking/v1alpha3/sidecar.pb.go
index 88e2e3a951..6c4e074c0f 100644
--- a/networking/v1alpha3/sidecar.pb.go
+++ b/networking/v1alpha3/sidecar.pb.go
@@ -43,59 +43,59 @@ func (x ConfigScope) String() string {
}
func (ConfigScope) EnumDescriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{0} }
+// $hide_from_docs
// CaptureMode describes how traffic to a listener is expected to be
// captured. Applicable only when the listener is bound to an IP.
-type IstioListener_CaptureMode int32
+type CaptureMode int32
const (
// The default capture mode defined by the environment
- IstioListener_DEFAULT IstioListener_CaptureMode = 0
+ CaptureMode_DEFAULT CaptureMode = 0
// Capture traffic using IPtables redirection
- IstioListener_IPTABLES IstioListener_CaptureMode = 1
+ CaptureMode_IPTABLES CaptureMode = 1
// No traffic capture. When used in egress listener, the application is
// expected to explicitly communicate with the listener port/unix
// domain socket. When used in ingress listener, care needs to be taken
// to ensure that the listener port is not in use by other processes on
// the host.
- IstioListener_NONE IstioListener_CaptureMode = 2
+ CaptureMode_NONE CaptureMode = 2
)
-var IstioListener_CaptureMode_name = map[int32]string{
+var CaptureMode_name = map[int32]string{
0: "DEFAULT",
1: "IPTABLES",
2: "NONE",
}
-var IstioListener_CaptureMode_value = map[string]int32{
+var CaptureMode_value = map[string]int32{
"DEFAULT": 0,
"IPTABLES": 1,
"NONE": 2,
}
-func (x IstioListener_CaptureMode) String() string {
- return proto.EnumName(IstioListener_CaptureMode_name, int32(x))
-}
-func (IstioListener_CaptureMode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptorSidecar, []int{1, 0}
+func (x CaptureMode) String() string {
+ return proto.EnumName(CaptureMode_name, int32(x))
}
+func (CaptureMode) EnumDescriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{1} }
-// `Sidecar` describes the describes the configuration of the sidecar proxy
-// that mediates inbound and outbound communication to the workload it is
-// attached to. By default, Istio will program all sidecar proxies in the
-// mesh with the necessary configuration required to reach every workload
-// in the mesh, as well as accept traffic on all the ports associated with
-// the workload. The Sidecar resource provides a way to fine tune the set
-// of ports, protocols that the proxy will accept when forwarding traffic
-// to and from the workload. In addition, it is possible to restrict the
-// set of services that the proxy can reach when forwarding outbound
-// traffic from the workload.
+// `Sidecar` describes the configuration of the sidecar proxy that mediates
+// inbound and outbound communication to the workload it is attached to. By
+// default, Istio will program all sidecar proxies in the mesh with the
+// necessary configuration required to reach every workload in the mesh, as
+// well as accept traffic on all the ports associated with the
+// workload. The Sidecar resource provides a way to fine tune the set of
+// ports, protocols that the proxy will accept when forwarding traffic to
+// and from the workload. In addition, it is possible to restrict the set
+// of services that the proxy can reach when forwarding outbound traffic
+// from the workload.
//
// Services and configuration in a mesh are organized into one or more
// namespaces (e.g., a Kubernetes namespace or a CF org/space). A Sidecar
-// resource in a namespace will apply to all workloads selected using the
-// workloadSelector. In the absence of a workloadSelector, it will apply to
-// all workloads in the namespace. When determining the Sidecar resource to
-// be applied to a workload, preference will be given to the resource with
-// a workloadSelector that selects this workload, over a Sidecar resource
+// resource in a namespace will apply to one or more workloads in the same
+// namespace, selected using the workloadSelector. In the absence of a
+// workloadSelector, it will apply to all workloads in the same
+// namespace. When determining the Sidecar resource to be applied to a
+// workload, preference will be given to the resource with a
+// workloadSelector that selects this workload, over a Sidecar resource
// without any workloadSelector.
//
// NOTE: *_Each namespace can have only one Sidecar resource without any
@@ -105,9 +105,8 @@ func (IstioListener_CaptureMode) EnumDescriptor() ([]byte, []int) {
// with a workload selector select the same workload.
//
// The example below delcares a Sidecar resource in the prod-us1 namespace
-// that configures the sidecar to allow egress traffic to services in the
-// prod-us1 and prod-apis namespaces, and the policy and telemetry service
-// (if enabled) in the istio-system namespace.
+// that configures the sidecar to allow egress traffic to public services
+// in the prod-us1, prod-apis, and the istio-system namespaces.
//
// ```yaml
// apiVersion: networking.istio.io/v1alpha3
@@ -136,12 +135,12 @@ type Sidecar struct {
// autoconfigure the sidecar based on the information about the workload
// obtained from the orchestration platform (e.g., exposed ports, services,
// etc.).
- Ingress []*IstioListener `protobuf:"bytes,2,rep,name=ingress" json:"ingress,omitempty"`
+ Ingress []*IstioIngressListener `protobuf:"bytes,2,rep,name=ingress" json:"ingress,omitempty"`
// Egress specifies the configuration of the sidecar for processing
// outbound traffic from the attached workload to other services in the
// mesh. If omitted, Istio will autoconfigure the sidecar to be able to
// reach every service in the mesh that is visible to this namespace.
- Egress []*IstioListener `protobuf:"bytes,3,rep,name=egress" json:"egress,omitempty"`
+ Egress []*IstioEgressListener `protobuf:"bytes,3,rep,name=egress" json:"egress,omitempty"`
}
func (m *Sidecar) Reset() { *m = Sidecar{} }
@@ -156,37 +155,92 @@ func (m *Sidecar) GetWorkloadSelector() *WorkloadSelector {
return nil
}
-func (m *Sidecar) GetIngress() []*IstioListener {
+func (m *Sidecar) GetIngress() []*IstioIngressListener {
if m != nil {
return m.Ingress
}
return nil
}
-func (m *Sidecar) GetEgress() []*IstioListener {
+func (m *Sidecar) GetEgress() []*IstioEgressListener {
if m != nil {
return m.Egress
}
return nil
}
-// IstioListener specifies the properties of a single listener on the
-// sidecar proxy attached to a workload.
-type IstioListener struct {
- // An optional arbitrary name associated with the listener used for
- // emitting metrics.
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- // $hide_from_docs
- // REQUIRED for ingress. The port associated with the listener. If using
+// $hide_from_docs
+// IstioIngressListener specifies the properties of an inbound
+// traffic listener on the sidecar proxy attached to a workload.
+type IstioIngressListener struct {
+ // REQUIRED. The port associated with the listener. If using
// unix domain socket, use 0 as the port number, with a valid
- // protocol. In the egress path, the port if specified, will be used as
- // the default destination port associated with the imported hosts. If
- // the port is omitted, Istio will infer the listener ports based on the
- // imported hosts. Note that when multiple egress listeners are
- // specified, where one or more listeners have specific ports while
- // others have no port, the hosts exposed on a listener port will be
- // based on the listener with the most specific port.
- Port *Port `protobuf:"bytes,2,opt,name=port" json:"port,omitempty"`
+ // protocol.
+ Port *Port `protobuf:"bytes,1,opt,name=port" json:"port,omitempty"`
+ // The ip or the unix domain socket to which the listener should be bound
+ // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux
+ // abstract namespace). If omitted, Istio will autoconfigure the defaults
+ // based on imported services and the workload to which this
+ // configuration is applied to.
+ Bind string `protobuf:"bytes,2,opt,name=bind,proto3" json:"bind,omitempty"`
+ // When the bind address is an IP, the captureMode option dictates
+ // how traffic to the listener is expected to be captured (or not).
+ CaptureMode CaptureMode `protobuf:"varint,3,opt,name=capture_mode,json=captureMode,proto3,enum=istio.networking.v1alpha3.CaptureMode" json:"capture_mode,omitempty"`
+ // The loopback IP endpoint or unix domain socket to which traffic should
+ // be forwarded to by default. This configuration can be used to redirect
+ // traffic arriving at the bind point on the sidecar to a port or unix
+ // domain socket where the application workload is listening for
+ // connections. Format should be 127.0.0.1:PORT or unix:///path/to/socket
+ DefaultEndpoint string `protobuf:"bytes,4,opt,name=default_endpoint,json=defaultEndpoint,proto3" json:"default_endpoint,omitempty"`
+}
+
+func (m *IstioIngressListener) Reset() { *m = IstioIngressListener{} }
+func (m *IstioIngressListener) String() string { return proto.CompactTextString(m) }
+func (*IstioIngressListener) ProtoMessage() {}
+func (*IstioIngressListener) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{1} }
+
+func (m *IstioIngressListener) GetPort() *Port {
+ if m != nil {
+ return m.Port
+ }
+ return nil
+}
+
+func (m *IstioIngressListener) GetBind() string {
+ if m != nil {
+ return m.Bind
+ }
+ return ""
+}
+
+func (m *IstioIngressListener) GetCaptureMode() CaptureMode {
+ if m != nil {
+ return m.CaptureMode
+ }
+ return CaptureMode_DEFAULT
+}
+
+func (m *IstioIngressListener) GetDefaultEndpoint() string {
+ if m != nil {
+ return m.DefaultEndpoint
+ }
+ return ""
+}
+
+// IstioEgressListener specifies the properties of an outbound traffic
+// listener on the sidecar proxy attached to a workload.
+type IstioEgressListener struct {
+ // $hide_from_docs
+ // The port associated with the listener. If using unix domain socket,
+ // use 0 as the port number, with a valid protocol. The port if
+ // specified, will be used as the default destination port associated
+ // with the imported hosts. If the port is omitted, Istio will infer the
+ // listener ports based on the imported hosts. Note that when multiple
+ // egress listeners are specified, where one or more listeners have
+ // specific ports while others have no port, the hosts exposed on a
+ // listener port will be based on the listener with the most specific
+ // port.
+ Port *Port `protobuf:"bytes,1,opt,name=port" json:"port,omitempty"`
// $hide_from_docs
// The ip or the unix domain socket to which the listener should be bound
// to. Port MUST be specified if bind is not empty. Format:
@@ -194,19 +248,18 @@ type IstioListener struct {
// namespace). If omitted, Istio will autoconfigure the defaults based on
// imported services and the workload to which this configuration is
// applied to.
- Bind string `protobuf:"bytes,3,opt,name=bind,proto3" json:"bind,omitempty"`
+ Bind string `protobuf:"bytes,2,opt,name=bind,proto3" json:"bind,omitempty"`
// When the bind address is an IP, the captureMode option dictates
// how traffic to the listener is expected to be captured (or not).
- CaptureMode IstioListener_CaptureMode `protobuf:"varint,4,opt,name=capture_mode,json=captureMode,proto3,enum=istio.networking.v1alpha3.IstioListener_CaptureMode" json:"capture_mode,omitempty"`
+ CaptureMode CaptureMode `protobuf:"varint,3,opt,name=capture_mode,json=captureMode,proto3,enum=istio.networking.v1alpha3.CaptureMode" json:"capture_mode,omitempty"`
// One or more services/virtualServices exposed by the listener in
- // namespace/dnsName format. _*Hosts will be ignored for ingress
- // servers*_. For egress servers, the hosts field results in importing
- // one or more publicly scoped services and VirtualServices from remote
- // namespaces. The service in a namespace can be a service in the service
- // registry (e.g., a kubernetes or cloud foundry service) or a service
- // specified via ServiceEntry configuration. In addition, any publicly
- // scoped DestinationRule associated with the imported services will also
- // be imported.
+ // namespace/dnsName format. Publicly scoped services and
+ // VirtualServices from remote namespaces corresponding to the specified
+ // hosts will be imported. The service in a namespace can be a service in
+ // the service registry (e.g., a kubernetes or cloud foundry service) or
+ // a service specified via ServiceEntry configuration. In addition, any
+ // publicly scoped DestinationRule associated with the imported services
+ // will also be imported.
//
// Set the namespace to * to import a particular service from any
// available namespace (e.g., "*/foo.example.com"). Set the dnsName field
@@ -217,63 +270,42 @@ type IstioListener struct {
// namespace can be imported. Private services/configuration will not be
// imported. Refer to the scope setting associated with VirtualService,
// DestinationRule, ServiceEntry, etc. for details.
- Hosts []string `protobuf:"bytes,5,rep,name=hosts" json:"hosts,omitempty"`
- // The IP endpoint or unix domain socket to which traffic should be
- // forwarded to by default. In the context of an ingress server, this
- // configuration can be used to redirect traffic arriving at the bind
- // point on the sidecar to a port or unix domain socket where the
- // application workload is listening for connections. Format should be
- // 127.0.0.1:PORT or unix:///path/to/socket
- DefaultEndpoint string `protobuf:"bytes,6,opt,name=default_endpoint,json=defaultEndpoint,proto3" json:"default_endpoint,omitempty"`
+ Hosts []string `protobuf:"bytes,4,rep,name=hosts" json:"hosts,omitempty"`
}
-func (m *IstioListener) Reset() { *m = IstioListener{} }
-func (m *IstioListener) String() string { return proto.CompactTextString(m) }
-func (*IstioListener) ProtoMessage() {}
-func (*IstioListener) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{1} }
+func (m *IstioEgressListener) Reset() { *m = IstioEgressListener{} }
+func (m *IstioEgressListener) String() string { return proto.CompactTextString(m) }
+func (*IstioEgressListener) ProtoMessage() {}
+func (*IstioEgressListener) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{2} }
-func (m *IstioListener) GetName() string {
- if m != nil {
- return m.Name
- }
- return ""
-}
-
-func (m *IstioListener) GetPort() *Port {
+func (m *IstioEgressListener) GetPort() *Port {
if m != nil {
return m.Port
}
return nil
}
-func (m *IstioListener) GetBind() string {
+func (m *IstioEgressListener) GetBind() string {
if m != nil {
return m.Bind
}
return ""
}
-func (m *IstioListener) GetCaptureMode() IstioListener_CaptureMode {
+func (m *IstioEgressListener) GetCaptureMode() CaptureMode {
if m != nil {
return m.CaptureMode
}
- return IstioListener_DEFAULT
+ return CaptureMode_DEFAULT
}
-func (m *IstioListener) GetHosts() []string {
+func (m *IstioEgressListener) GetHosts() []string {
if m != nil {
return m.Hosts
}
return nil
}
-func (m *IstioListener) GetDefaultEndpoint() string {
- if m != nil {
- return m.DefaultEndpoint
- }
- return ""
-}
-
// WorkloadSelector specifies the criteria used to determine if the Gateway
// or Sidecar resource can be applied to a proxy. The matching criteria
// includes the metadata associated with a proxy, workload info such as
@@ -292,7 +324,7 @@ type WorkloadSelector struct {
func (m *WorkloadSelector) Reset() { *m = WorkloadSelector{} }
func (m *WorkloadSelector) String() string { return proto.CompactTextString(m) }
func (*WorkloadSelector) ProtoMessage() {}
-func (*WorkloadSelector) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{2} }
+func (*WorkloadSelector) Descriptor() ([]byte, []int) { return fileDescriptorSidecar, []int{3} }
func (m *WorkloadSelector) GetLabels() map[string]string {
if m != nil {
@@ -303,10 +335,11 @@ func (m *WorkloadSelector) GetLabels() map[string]string {
func init() {
proto.RegisterType((*Sidecar)(nil), "istio.networking.v1alpha3.Sidecar")
- proto.RegisterType((*IstioListener)(nil), "istio.networking.v1alpha3.IstioListener")
+ proto.RegisterType((*IstioIngressListener)(nil), "istio.networking.v1alpha3.IstioIngressListener")
+ proto.RegisterType((*IstioEgressListener)(nil), "istio.networking.v1alpha3.IstioEgressListener")
proto.RegisterType((*WorkloadSelector)(nil), "istio.networking.v1alpha3.WorkloadSelector")
proto.RegisterEnum("istio.networking.v1alpha3.ConfigScope", ConfigScope_name, ConfigScope_value)
- proto.RegisterEnum("istio.networking.v1alpha3.IstioListener_CaptureMode", IstioListener_CaptureMode_name, IstioListener_CaptureMode_value)
+ proto.RegisterEnum("istio.networking.v1alpha3.CaptureMode", CaptureMode_name, CaptureMode_value)
}
func (m *Sidecar) Marshal() (dAtA []byte, err error) {
size := m.Size()
@@ -360,7 +393,7 @@ func (m *Sidecar) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
-func (m *IstioListener) Marshal() (dAtA []byte, err error) {
+func (m *IstioIngressListener) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@@ -370,41 +403,80 @@ func (m *IstioListener) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
-func (m *IstioListener) MarshalTo(dAtA []byte) (int, error) {
+func (m *IstioIngressListener) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
- if len(m.Name) > 0 {
+ if m.Port != nil {
dAtA[i] = 0xa
i++
- i = encodeVarintSidecar(dAtA, i, uint64(len(m.Name)))
- i += copy(dAtA[i:], m.Name)
+ i = encodeVarintSidecar(dAtA, i, uint64(m.Port.Size()))
+ n2, err := m.Port.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
+ }
+ i += n2
}
- if m.Port != nil {
+ if len(m.Bind) > 0 {
dAtA[i] = 0x12
i++
+ i = encodeVarintSidecar(dAtA, i, uint64(len(m.Bind)))
+ i += copy(dAtA[i:], m.Bind)
+ }
+ if m.CaptureMode != 0 {
+ dAtA[i] = 0x18
+ i++
+ i = encodeVarintSidecar(dAtA, i, uint64(m.CaptureMode))
+ }
+ if len(m.DefaultEndpoint) > 0 {
+ dAtA[i] = 0x22
+ i++
+ i = encodeVarintSidecar(dAtA, i, uint64(len(m.DefaultEndpoint)))
+ i += copy(dAtA[i:], m.DefaultEndpoint)
+ }
+ return i, nil
+}
+
+func (m *IstioEgressListener) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalTo(dAtA)
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *IstioEgressListener) MarshalTo(dAtA []byte) (int, error) {
+ var i int
+ _ = i
+ var l int
+ _ = l
+ if m.Port != nil {
+ dAtA[i] = 0xa
+ i++
i = encodeVarintSidecar(dAtA, i, uint64(m.Port.Size()))
- n2, err := m.Port.MarshalTo(dAtA[i:])
+ n3, err := m.Port.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
- i += n2
+ i += n3
}
if len(m.Bind) > 0 {
- dAtA[i] = 0x1a
+ dAtA[i] = 0x12
i++
i = encodeVarintSidecar(dAtA, i, uint64(len(m.Bind)))
i += copy(dAtA[i:], m.Bind)
}
if m.CaptureMode != 0 {
- dAtA[i] = 0x20
+ dAtA[i] = 0x18
i++
i = encodeVarintSidecar(dAtA, i, uint64(m.CaptureMode))
}
if len(m.Hosts) > 0 {
for _, s := range m.Hosts {
- dAtA[i] = 0x2a
+ dAtA[i] = 0x22
i++
l = len(s)
for l >= 1<<7 {
@@ -417,12 +489,6 @@ func (m *IstioListener) MarshalTo(dAtA []byte) (int, error) {
i += copy(dAtA[i:], s)
}
}
- if len(m.DefaultEndpoint) > 0 {
- dAtA[i] = 0x32
- i++
- i = encodeVarintSidecar(dAtA, i, uint64(len(m.DefaultEndpoint)))
- i += copy(dAtA[i:], m.DefaultEndpoint)
- }
return i, nil
}
@@ -492,13 +558,30 @@ func (m *Sidecar) Size() (n int) {
return n
}
-func (m *IstioListener) Size() (n int) {
+func (m *IstioIngressListener) Size() (n int) {
var l int
_ = l
- l = len(m.Name)
+ if m.Port != nil {
+ l = m.Port.Size()
+ n += 1 + l + sovSidecar(uint64(l))
+ }
+ l = len(m.Bind)
if l > 0 {
n += 1 + l + sovSidecar(uint64(l))
}
+ if m.CaptureMode != 0 {
+ n += 1 + sovSidecar(uint64(m.CaptureMode))
+ }
+ l = len(m.DefaultEndpoint)
+ if l > 0 {
+ n += 1 + l + sovSidecar(uint64(l))
+ }
+ return n
+}
+
+func (m *IstioEgressListener) Size() (n int) {
+ var l int
+ _ = l
if m.Port != nil {
l = m.Port.Size()
n += 1 + l + sovSidecar(uint64(l))
@@ -516,10 +599,6 @@ func (m *IstioListener) Size() (n int) {
n += 1 + l + sovSidecar(uint64(l))
}
}
- l = len(m.DefaultEndpoint)
- if l > 0 {
- n += 1 + l + sovSidecar(uint64(l))
- }
return n
}
@@ -638,7 +717,7 @@ func (m *Sidecar) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Ingress = append(m.Ingress, &IstioListener{})
+ m.Ingress = append(m.Ingress, &IstioIngressListener{})
if err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
@@ -669,7 +748,7 @@ func (m *Sidecar) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Egress = append(m.Egress, &IstioListener{})
+ m.Egress = append(m.Egress, &IstioEgressListener{})
if err := m.Egress[len(m.Egress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
@@ -695,7 +774,7 @@ func (m *Sidecar) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *IstioListener) Unmarshal(dAtA []byte) error {
+func (m *IstioIngressListener) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -718,17 +797,17 @@ func (m *IstioListener) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: IstioListener: wiretype end group for non-group")
+ return fmt.Errorf("proto: IstioIngressListener: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: IstioListener: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: IstioIngressListener: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType)
}
- var stringLen uint64
+ var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowSidecar
@@ -738,26 +817,30 @@ func (m *IstioListener) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
- intStringLen := int(stringLen)
- if intStringLen < 0 {
+ if msglen < 0 {
return ErrInvalidLengthSidecar
}
- postIndex := iNdEx + intStringLen
+ postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Name = string(dAtA[iNdEx:postIndex])
+ if m.Port == nil {
+ m.Port = &Port{}
+ }
+ if err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
iNdEx = postIndex
case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType)
}
- var msglen int
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowSidecar
@@ -767,28 +850,43 @@ func (m *IstioListener) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return ErrInvalidLengthSidecar
}
- postIndex := iNdEx + msglen
+ postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.Port == nil {
- m.Port = &Port{}
- }
- if err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
+ m.Bind = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CaptureMode", wireType)
+ }
+ m.CaptureMode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowSidecar
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.CaptureMode |= (CaptureMode(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field DefaultEndpoint", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -813,13 +911,63 @@ func (m *IstioListener) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Bind = string(dAtA[iNdEx:postIndex])
+ m.DefaultEndpoint = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 4:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field CaptureMode", wireType)
+ default:
+ iNdEx = preIndex
+ skippy, err := skipSidecar(dAtA[iNdEx:])
+ if err != nil {
+ return err
}
- m.CaptureMode = 0
+ if skippy < 0 {
+ return ErrInvalidLengthSidecar
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *IstioEgressListener) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowSidecar
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: IstioEgressListener: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: IstioEgressListener: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType)
+ }
+ var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowSidecar
@@ -829,14 +977,28 @@ func (m *IstioListener) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.CaptureMode |= (IstioListener_CaptureMode(b) & 0x7F) << shift
+ msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
- case 5:
+ if msglen < 0 {
+ return ErrInvalidLengthSidecar
+ }
+ postIndex := iNdEx + msglen
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Port == nil {
+ m.Port = &Port{}
+ }
+ if err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Hosts", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Bind", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -861,11 +1023,30 @@ func (m *IstioListener) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))
+ m.Bind = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 6:
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CaptureMode", wireType)
+ }
+ m.CaptureMode = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowSidecar
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.CaptureMode |= (CaptureMode(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field DefaultEndpoint", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Hosts", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -890,7 +1071,7 @@ func (m *IstioListener) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.DefaultEndpoint = string(dAtA[iNdEx:postIndex])
+ m.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
default:
iNdEx = preIndex
@@ -1189,36 +1370,36 @@ var (
func init() { proto.RegisterFile("networking/v1alpha3/sidecar.proto", fileDescriptorSidecar) }
var fileDescriptorSidecar = []byte{
- // 490 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0xcd, 0x6e, 0xd3, 0x40,
- 0x10, 0xc7, 0xbb, 0x76, 0xea, 0x34, 0xe3, 0x02, 0x66, 0xc5, 0xc1, 0xf4, 0x10, 0x4c, 0x0e, 0xc8,
- 0x80, 0xe4, 0x88, 0x04, 0x89, 0x8f, 0x13, 0x49, 0x30, 0x52, 0x24, 0xd3, 0x46, 0x4e, 0x4a, 0x11,
- 0x97, 0x68, 0x63, 0x6f, 0xd3, 0x55, 0xdd, 0x5d, 0x6b, 0xbd, 0x69, 0x94, 0x97, 0xe1, 0x41, 0x78,
- 0x02, 0x8e, 0x3c, 0x02, 0xca, 0x8d, 0xb7, 0x40, 0xfe, 0xa8, 0x5a, 0xaa, 0x52, 0x35, 0xb7, 0x99,
- 0xd9, 0xf9, 0xff, 0x76, 0x46, 0xff, 0x5d, 0x78, 0xca, 0xa9, 0x5a, 0x0a, 0x79, 0xca, 0xf8, 0xbc,
- 0x7d, 0xfe, 0x8a, 0x24, 0xe9, 0x09, 0xe9, 0xb6, 0x33, 0x16, 0xd3, 0x88, 0x48, 0x2f, 0x95, 0x42,
- 0x09, 0xfc, 0x98, 0x65, 0x8a, 0x09, 0xef, 0xb2, 0xd1, 0xbb, 0x68, 0xdc, 0xbb, 0x51, 0x3d, 0x27,
- 0x8a, 0x2e, 0xc9, 0xaa, 0x54, 0xb7, 0xfe, 0x20, 0xa8, 0x8f, 0x4b, 0x1e, 0xfe, 0x0a, 0x0f, 0xf3,
- 0xee, 0x44, 0x90, 0x78, 0x9a, 0xd1, 0x84, 0x46, 0x4a, 0x48, 0x1b, 0x39, 0xc8, 0x35, 0x3b, 0x2f,
- 0xbd, 0xff, 0xde, 0xe2, 0x1d, 0x55, 0x9a, 0x71, 0x25, 0x09, 0xad, 0xe5, 0xb5, 0x0a, 0xee, 0x43,
- 0x9d, 0xf1, 0xb9, 0xa4, 0x59, 0x66, 0x6b, 0x8e, 0xee, 0x9a, 0x1d, 0xf7, 0x16, 0xde, 0x30, 0x3f,
- 0x09, 0x58, 0xa6, 0x28, 0xa7, 0x32, 0xbc, 0x10, 0xe2, 0x0f, 0x60, 0xd0, 0x12, 0xa1, 0x6f, 0x88,
- 0xa8, 0x74, 0xad, 0x1f, 0x1a, 0xdc, 0xfb, 0xe7, 0x04, 0x63, 0xa8, 0x71, 0x72, 0x46, 0x8b, 0x25,
- 0x1b, 0x61, 0x11, 0xe3, 0x2e, 0xd4, 0x52, 0x21, 0x95, 0xad, 0x15, 0x8b, 0x3f, 0xb9, 0xe5, 0x96,
- 0x91, 0x90, 0x2a, 0x2c, 0x9a, 0x73, 0xd0, 0x8c, 0xf1, 0xd8, 0xd6, 0x4b, 0x50, 0x1e, 0xe3, 0x23,
- 0xd8, 0x8d, 0x48, 0xaa, 0x16, 0x92, 0x4e, 0xcf, 0x44, 0x4c, 0xed, 0x9a, 0x83, 0xdc, 0xfb, 0x9d,
- 0xd7, 0x77, 0x1d, 0xdb, 0x1b, 0x94, 0xe2, 0xcf, 0x22, 0xa6, 0xa1, 0x19, 0x5d, 0x26, 0xf8, 0x11,
- 0x6c, 0x9f, 0x88, 0x4c, 0x65, 0xf6, 0xb6, 0xa3, 0xbb, 0x8d, 0xb0, 0x4c, 0xf0, 0x73, 0xb0, 0x62,
- 0x7a, 0x4c, 0x16, 0x89, 0x9a, 0x52, 0x1e, 0xa7, 0x82, 0x71, 0x65, 0x1b, 0xc5, 0x38, 0x0f, 0xaa,
- 0xba, 0x5f, 0x95, 0x5b, 0x1d, 0x30, 0xaf, 0xc0, 0xb1, 0x09, 0xf5, 0x8f, 0xfe, 0xa7, 0xde, 0x61,
- 0x30, 0xb1, 0xb6, 0xf0, 0x2e, 0xec, 0x0c, 0x47, 0x93, 0x5e, 0x3f, 0xf0, 0xc7, 0x16, 0xc2, 0x3b,
- 0x50, 0xdb, 0x3f, 0xd8, 0xf7, 0x2d, 0xad, 0xf5, 0x1d, 0x81, 0x75, 0xdd, 0x69, 0x7c, 0x00, 0x46,
- 0x42, 0x66, 0x34, 0xc9, 0x6c, 0x54, 0x78, 0xf2, 0x66, 0x83, 0x67, 0xe2, 0x05, 0x85, 0xd2, 0xe7,
- 0x4a, 0xae, 0xc2, 0x0a, 0xb3, 0xf7, 0x0e, 0xcc, 0x2b, 0x65, 0x6c, 0x81, 0x7e, 0x4a, 0x57, 0x95,
- 0x3d, 0x79, 0x98, 0xef, 0x7e, 0x4e, 0x92, 0x05, 0x2d, 0xec, 0x69, 0x84, 0x65, 0xf2, 0x5e, 0x7b,
- 0x8b, 0x5e, 0x3c, 0x03, 0x73, 0x20, 0xf8, 0x31, 0x9b, 0x8f, 0x23, 0x91, 0x52, 0x0c, 0x60, 0x8c,
- 0x0e, 0xfb, 0xc1, 0x70, 0x60, 0x6d, 0xe5, 0x0b, 0x8e, 0xc2, 0xe1, 0x97, 0xde, 0xc4, 0xb7, 0x50,
- 0xdf, 0xfb, 0xb9, 0x6e, 0xa2, 0x5f, 0xeb, 0x26, 0xfa, 0xbd, 0x6e, 0xa2, 0x6f, 0x4e, 0x39, 0x30,
- 0x13, 0x6d, 0x92, 0xb2, 0xf6, 0x0d, 0xff, 0x65, 0x66, 0x14, 0x1f, 0xa5, 0xfb, 0x37, 0x00, 0x00,
- 0xff, 0xff, 0x02, 0x6b, 0xfb, 0xb2, 0x8b, 0x03, 0x00, 0x00,
+ // 496 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0x3f, 0x6f, 0xd3, 0x40,
+ 0x18, 0xc6, 0x7b, 0xb1, 0x49, 0x9a, 0xd7, 0x15, 0x98, 0xa3, 0x83, 0xe9, 0x10, 0x4c, 0x86, 0xca,
+ 0x14, 0xc9, 0x16, 0xc9, 0xc0, 0x9f, 0x2d, 0x09, 0xae, 0x64, 0xc9, 0xb4, 0x91, 0x93, 0x02, 0x62,
+ 0x89, 0x2e, 0xf6, 0x35, 0x3d, 0xd5, 0xf8, 0xac, 0xf3, 0xa5, 0x51, 0xbe, 0x0c, 0x5f, 0x85, 0x95,
+ 0x91, 0x85, 0x1d, 0xe5, 0x43, 0x30, 0x23, 0xff, 0xa9, 0x5a, 0xa2, 0x10, 0xc4, 0xd6, 0xed, 0xde,
+ 0xf7, 0x9e, 0xe7, 0xf7, 0xfa, 0xf1, 0xdd, 0xc1, 0xd3, 0x84, 0xca, 0x05, 0x17, 0x97, 0x2c, 0x99,
+ 0x39, 0x57, 0x2f, 0x48, 0x9c, 0x5e, 0x90, 0xae, 0x93, 0xb1, 0x88, 0x86, 0x44, 0xd8, 0xa9, 0xe0,
+ 0x92, 0xe3, 0xc7, 0x2c, 0x93, 0x8c, 0xdb, 0x37, 0x42, 0xfb, 0x5a, 0x78, 0xb0, 0xd1, 0x3d, 0x23,
+ 0x92, 0x2e, 0xc8, 0xb2, 0x74, 0xb7, 0x7f, 0x21, 0x68, 0x8c, 0x4a, 0x1e, 0xfe, 0x08, 0x0f, 0x73,
+ 0x75, 0xcc, 0x49, 0x34, 0xc9, 0x68, 0x4c, 0x43, 0xc9, 0x85, 0x81, 0x4c, 0x64, 0x69, 0x9d, 0xe7,
+ 0xf6, 0x5f, 0xa7, 0xd8, 0x1f, 0x2a, 0xcf, 0xa8, 0xb2, 0x04, 0xfa, 0x62, 0xad, 0x83, 0x3d, 0x68,
+ 0xb0, 0x64, 0x26, 0x68, 0x96, 0x19, 0x35, 0x53, 0xb1, 0xb4, 0x8e, 0xb3, 0x85, 0xe7, 0xe5, 0x3b,
+ 0x5e, 0x29, 0xf7, 0x59, 0x26, 0x69, 0x42, 0x45, 0x70, 0xed, 0xc7, 0xc7, 0x50, 0xa7, 0x25, 0x49,
+ 0x29, 0x48, 0xf6, 0xbf, 0x48, 0xee, 0x9f, 0xa0, 0xca, 0xdd, 0xfe, 0x81, 0x60, 0x7f, 0xd3, 0x24,
+ 0xdc, 0x05, 0x35, 0xe5, 0x42, 0x56, 0xc1, 0x9f, 0x6c, 0xc1, 0x0f, 0xb9, 0x90, 0x41, 0x21, 0xc6,
+ 0x18, 0xd4, 0x29, 0x4b, 0x22, 0xa3, 0x66, 0x22, 0xab, 0x19, 0x14, 0x6b, 0xec, 0xc1, 0x5e, 0x48,
+ 0x52, 0x39, 0x17, 0x74, 0xf2, 0x99, 0x47, 0xd4, 0x50, 0x4c, 0x64, 0xdd, 0xef, 0x1c, 0x6e, 0x01,
+ 0x0e, 0x4a, 0xf9, 0x3b, 0x1e, 0xd1, 0x40, 0x0b, 0x6f, 0x0a, 0xfc, 0x0c, 0xf4, 0x88, 0x9e, 0x93,
+ 0x79, 0x2c, 0x27, 0x34, 0x89, 0x52, 0xce, 0x12, 0x69, 0xa8, 0xc5, 0xa8, 0x07, 0x55, 0xdf, 0xad,
+ 0xda, 0xed, 0xaf, 0x08, 0x1e, 0x6d, 0xc8, 0x7d, 0x27, 0x63, 0xed, 0xc3, 0xbd, 0x0b, 0x9e, 0xc9,
+ 0xcc, 0x50, 0x4d, 0xc5, 0x6a, 0x06, 0x65, 0xd1, 0xfe, 0x82, 0x40, 0x5f, 0xbf, 0x53, 0xf8, 0x14,
+ 0xea, 0x31, 0x99, 0xd2, 0x38, 0x33, 0x50, 0x71, 0xec, 0x2f, 0xff, 0xe3, 0x42, 0xda, 0x7e, 0xe1,
+ 0x74, 0x13, 0x29, 0x96, 0x41, 0x85, 0x39, 0x78, 0x0d, 0xda, 0xad, 0x36, 0xd6, 0x41, 0xb9, 0xa4,
+ 0xcb, 0xe2, 0xef, 0x34, 0x83, 0x7c, 0x99, 0x7f, 0xdc, 0x15, 0x89, 0xe7, 0xb4, 0x0a, 0x5f, 0x16,
+ 0x6f, 0x6a, 0xaf, 0xd0, 0xd1, 0x21, 0x68, 0x03, 0x9e, 0x9c, 0xb3, 0xd9, 0x28, 0xe4, 0x29, 0xc5,
+ 0x00, 0xf5, 0xe1, 0x59, 0xdf, 0xf7, 0x06, 0xfa, 0x0e, 0xd6, 0xa0, 0x31, 0x0c, 0xbc, 0xf7, 0xbd,
+ 0xb1, 0xab, 0xa3, 0xa3, 0x0e, 0x68, 0xb7, 0xa2, 0xe7, 0x7b, 0x6f, 0xdd, 0xe3, 0xde, 0x99, 0x3f,
+ 0xd6, 0x77, 0xf0, 0x1e, 0xec, 0x7a, 0xc3, 0x71, 0xaf, 0xef, 0xbb, 0x23, 0x1d, 0xe1, 0x5d, 0x50,
+ 0x4f, 0x4e, 0x4f, 0x5c, 0xbd, 0xd6, 0xb7, 0xbf, 0xad, 0x5a, 0xe8, 0xfb, 0xaa, 0x85, 0x7e, 0xae,
+ 0x5a, 0xe8, 0x93, 0x59, 0x86, 0x64, 0xdc, 0x21, 0x29, 0x73, 0x36, 0xbc, 0xe6, 0x69, 0xbd, 0x78,
+ 0xc6, 0xdd, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x62, 0xef, 0x1c, 0x27, 0x29, 0x04, 0x00, 0x00,
}
diff --git a/networking/v1alpha3/sidecar.proto b/networking/v1alpha3/sidecar.proto
index 433d5ff4b7..369b6be38c 100644
--- a/networking/v1alpha3/sidecar.proto
+++ b/networking/v1alpha3/sidecar.proto
@@ -20,25 +20,26 @@ package istio.networking.v1alpha3;
option go_package = "istio.io/api/networking/v1alpha3";
-// `Sidecar` describes the describes the configuration of the sidecar proxy
-// that mediates inbound and outbound communication to the workload it is
-// attached to. By default, Istio will program all sidecar proxies in the
-// mesh with the necessary configuration required to reach every workload
-// in the mesh, as well as accept traffic on all the ports associated with
-// the workload. The Sidecar resource provides a way to fine tune the set
-// of ports, protocols that the proxy will accept when forwarding traffic
-// to and from the workload. In addition, it is possible to restrict the
-// set of services that the proxy can reach when forwarding outbound
-// traffic from the workload.
+// `Sidecar` describes the configuration of the sidecar proxy that mediates
+// inbound and outbound communication to the workload it is attached to. By
+// default, Istio will program all sidecar proxies in the mesh with the
+// necessary configuration required to reach every workload in the mesh, as
+// well as accept traffic on all the ports associated with the
+// workload. The Sidecar resource provides a way to fine tune the set of
+// ports, protocols that the proxy will accept when forwarding traffic to
+// and from the workload. In addition, it is possible to restrict the set
+// of services that the proxy can reach when forwarding outbound traffic
+// from the workload.
//
// Services and configuration in a mesh are organized into one or more
// namespaces (e.g., a Kubernetes namespace or a CF org/space). A Sidecar
-// resource in a namespace will apply to all workloads selected using the
-// workloadSelector. In the absence of a workloadSelector, it will apply to
-// all workloads in the namespace. When determining the Sidecar resource to
-// be applied to a workload, preference will be given to the resource with
-// a workloadSelector that selects this workload, over a Sidecar resource
-// without any workloadSelector.
+// resource in a namespace will apply to one or more workloads in the same
+// namespace, selected using the workloadSelector. In the absence of a
+// workloadSelector, it will apply to all workloads in the same
+// namespace. When determining the Sidecar resource to be applied to a
+// workload, preference will be given to the resource with a
+// workloadSelector that selects this workload, over a Sidecar resource
+// without any workloadSelector.
//
// NOTE: *_Each namespace can have only one Sidecar resource without any
// workload selector_*. The behavior of the system is undefined if more
@@ -47,9 +48,8 @@ option go_package = "istio.io/api/networking/v1alpha3";
// with a workload selector select the same workload.
//
// The example below delcares a Sidecar resource in the prod-us1 namespace
-// that configures the sidecar to allow egress traffic to services in the
-// prod-us1 and prod-apis namespaces, and the policy and telemetry service
-// (if enabled) in the istio-system namespace.
+// that configures the sidecar to allow egress traffic to public services
+// in the prod-us1, prod-apis, and the istio-system namespaces.
//
// ```yaml
// apiVersion: networking.istio.io/v1alpha3
@@ -79,33 +79,57 @@ message Sidecar {
// autoconfigure the sidecar based on the information about the workload
// obtained from the orchestration platform (e.g., exposed ports, services,
// etc.).
- repeated IstioListener ingress = 2;
+ repeated IstioIngressListener ingress = 2;
// Egress specifies the configuration of the sidecar for processing
// outbound traffic from the attached workload to other services in the
// mesh. If omitted, Istio will autoconfigure the sidecar to be able to
// reach every service in the mesh that is visible to this namespace.
- repeated IstioListener egress = 3;
+ repeated IstioEgressListener egress = 3;
}
-// IstioListener specifies the properties of a single listener on the
-// sidecar proxy attached to a workload.
-message IstioListener {
- // An optional arbitrary name associated with the listener used for
- // emitting metrics.
- string name = 1;
+// $hide_from_docs
+// IstioIngressListener specifies the properties of an inbound
+// traffic listener on the sidecar proxy attached to a workload.
+message IstioIngressListener {
+ // REQUIRED. The port associated with the listener. If using
+ // unix domain socket, use 0 as the port number, with a valid
+ // protocol.
+ Port port = 1;
+
+ // The ip or the unix domain socket to which the listener should be bound
+ // to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux
+ // abstract namespace). If omitted, Istio will autoconfigure the defaults
+ // based on imported services and the workload to which this
+ // configuration is applied to.
+ string bind = 2;
+
+ // When the bind address is an IP, the captureMode option dictates
+ // how traffic to the listener is expected to be captured (or not).
+ CaptureMode capture_mode = 3;
+
+ // The loopback IP endpoint or unix domain socket to which traffic should
+ // be forwarded to by default. This configuration can be used to redirect
+ // traffic arriving at the bind point on the sidecar to a port or unix
+ // domain socket where the application workload is listening for
+ // connections. Format should be 127.0.0.1:PORT or unix:///path/to/socket
+ string default_endpoint = 4;
+}
+// IstioEgressListener specifies the properties of an outbound traffic
+// listener on the sidecar proxy attached to a workload.
+message IstioEgressListener {
// $hide_from_docs
- // REQUIRED for ingress. The port associated with the listener. If using
- // unix domain socket, use 0 as the port number, with a valid
- // protocol. In the egress path, the port if specified, will be used as
- // the default destination port associated with the imported hosts. If
- // the port is omitted, Istio will infer the listener ports based on the
- // imported hosts. Note that when multiple egress listeners are
- // specified, where one or more listeners have specific ports while
- // others have no port, the hosts exposed on a listener port will be
- // based on the listener with the most specific port.
- Port port = 2;
+ // The port associated with the listener. If using unix domain socket,
+ // use 0 as the port number, with a valid protocol. The port if
+ // specified, will be used as the default destination port associated
+ // with the imported hosts. If the port is omitted, Istio will infer the
+ // listener ports based on the imported hosts. Note that when multiple
+ // egress listeners are specified, where one or more listeners have
+ // specific ports while others have no port, the hosts exposed on a
+ // listener port will be based on the listener with the most specific
+ // port.
+ Port port = 1;
// $hide_from_docs
// The ip or the unix domain socket to which the listener should be bound
@@ -114,38 +138,20 @@ message IstioListener {
// namespace). If omitted, Istio will autoconfigure the defaults based on
// imported services and the workload to which this configuration is
// applied to.
- string bind = 3;
-
- // CaptureMode describes how traffic to a listener is expected to be
- // captured. Applicable only when the listener is bound to an IP.
- enum CaptureMode {
- // The default capture mode defined by the environment
- DEFAULT = 0;
-
- // Capture traffic using IPtables redirection
- IPTABLES = 1;
-
- // No traffic capture. When used in egress listener, the application is
- // expected to explicitly communicate with the listener port/unix
- // domain socket. When used in ingress listener, care needs to be taken
- // to ensure that the listener port is not in use by other processes on
- // the host.
- NONE = 2;
- }
+ string bind = 2;
// When the bind address is an IP, the captureMode option dictates
// how traffic to the listener is expected to be captured (or not).
- CaptureMode capture_mode = 4;
+ CaptureMode capture_mode = 3;
// One or more services/virtualServices exposed by the listener in
- // namespace/dnsName format. _*Hosts will be ignored for ingress
- // servers*_. For egress servers, the hosts field results in importing
- // one or more publicly scoped services and VirtualServices from remote
- // namespaces. The service in a namespace can be a service in the service
- // registry (e.g., a kubernetes or cloud foundry service) or a service
- // specified via ServiceEntry configuration. In addition, any publicly
- // scoped DestinationRule associated with the imported services will also
- // be imported.
+ // namespace/dnsName format. Publicly scoped services and
+ // VirtualServices from remote namespaces corresponding to the specified
+ // hosts will be imported. The service in a namespace can be a service in
+ // the service registry (e.g., a kubernetes or cloud foundry service) or
+ // a service specified via ServiceEntry configuration. In addition, any
+ // publicly scoped DestinationRule associated with the imported services
+ // will also be imported.
//
// Set the namespace to * to import a particular service from any
// available namespace (e.g., "*/foo.example.com"). Set the dnsName field
@@ -156,15 +162,7 @@ message IstioListener {
// namespace can be imported. Private services/configuration will not be
// imported. Refer to the scope setting associated with VirtualService,
// DestinationRule, ServiceEntry, etc. for details.
- repeated string hosts = 5;
-
- // The IP endpoint or unix domain socket to which traffic should be
- // forwarded to by default. In the context of an ingress server, this
- // configuration can be used to redirect traffic arriving at the bind
- // point on the sidecar to a port or unix domain socket where the
- // application workload is listening for connections. Format should be
- // 127.0.0.1:PORT or unix:///path/to/socket
- string default_endpoint = 6;
+ repeated string hosts = 4;
}
// ConfigScope defines the visibility of an Istio configuration artifact in
@@ -201,6 +199,24 @@ message WorkloadSelector {
// etc. This has nothing to do with the request level authN etc.
}
+// $hide_from_docs
+// CaptureMode describes how traffic to a listener is expected to be
+// captured. Applicable only when the listener is bound to an IP.
+enum CaptureMode {
+ // The default capture mode defined by the environment
+ DEFAULT = 0;
+
+ // Capture traffic using IPtables redirection
+ IPTABLES = 1;
+
+ // No traffic capture. When used in egress listener, the application is
+ // expected to explicitly communicate with the listener port/unix
+ // domain socket. When used in ingress listener, care needs to be taken
+ // to ensure that the listener port is not in use by other processes on
+ // the host.
+ NONE = 2;
+}
+
// $hide_from_docs
// The example below delcares a Sidecar resource in the prod-us1 namespace
// that accepts inbound HTTP traffic on port 9080 and forwards
diff --git a/proto.lock b/proto.lock
index b365ef6a3f..95cf510647 100644
--- a/proto.lock
+++ b/proto.lock
@@ -3296,32 +3296,32 @@
"def": {
"enums": [
{
- "name": "IstioListener.CaptureMode",
+ "name": "ConfigScope",
"enum_fields": [
{
- "name": "DEFAULT",
+ "name": "PUBLIC",
"integer": 0
},
{
- "name": "IPTABLES",
+ "name": "PRIVATE",
"integer": 1
- },
- {
- "name": "NONE",
- "integer": 2
}
]
},
{
- "name": "ConfigScope",
+ "name": "CaptureMode",
"enum_fields": [
{
- "name": "PUBLIC",
+ "name": "DEFAULT",
"integer": 0
},
{
- "name": "PRIVATE",
+ "name": "IPTABLES",
"integer": 1
+ },
+ {
+ "name": "NONE",
+ "integer": 2
}
]
}
@@ -3338,50 +3338,65 @@
{
"id": 2,
"name": "ingress",
- "type": "IstioListener",
+ "type": "IstioIngressListener",
"is_repeated": true
},
{
"id": 3,
"name": "egress",
- "type": "IstioListener",
+ "type": "IstioEgressListener",
"is_repeated": true
}
]
},
{
- "name": "IstioListener",
+ "name": "IstioIngressListener",
"fields": [
{
"id": 1,
- "name": "name",
- "type": "string"
+ "name": "port",
+ "type": "Port"
},
{
"id": 2,
+ "name": "bind",
+ "type": "string"
+ },
+ {
+ "id": 3,
+ "name": "capture_mode",
+ "type": "CaptureMode"
+ },
+ {
+ "id": 4,
+ "name": "default_endpoint",
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "name": "IstioEgressListener",
+ "fields": [
+ {
+ "id": 1,
"name": "port",
"type": "Port"
},
{
- "id": 3,
+ "id": 2,
"name": "bind",
"type": "string"
},
{
- "id": 4,
+ "id": 3,
"name": "capture_mode",
"type": "CaptureMode"
},
{
- "id": 5,
+ "id": 4,
"name": "hosts",
"type": "string",
"is_repeated": true
- },
- {
- "id": 6,
- "name": "default_endpoint",
- "type": "string"
}
]
},
diff --git a/python/istio_api/networking/v1alpha3/sidecar_pb2.py b/python/istio_api/networking/v1alpha3/sidecar_pb2.py
index b3f76c95c1..33b4779367 100644
--- a/python/istio_api/networking/v1alpha3/sidecar_pb2.py
+++ b/python/istio_api/networking/v1alpha3/sidecar_pb2.py
@@ -21,7 +21,7 @@
name='networking/v1alpha3/sidecar.proto',
package='istio.networking.v1alpha3',
syntax='proto3',
- serialized_pb=_b('\n!networking/v1alpha3/sidecar.proto\x12\x19istio.networking.v1alpha3\x1a!networking/v1alpha3/gateway.proto\"\xc6\x01\n\x07Sidecar\x12\x46\n\x11workload_selector\x18\x01 \x01(\x0b\x32+.istio.networking.v1alpha3.WorkloadSelector\x12\x39\n\x07ingress\x18\x02 \x03(\x0b\x32(.istio.networking.v1alpha3.IstioListener\x12\x38\n\x06\x65gress\x18\x03 \x03(\x0b\x32(.istio.networking.v1alpha3.IstioListener\"\x83\x02\n\rIstioListener\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x04port\x18\x02 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x03 \x01(\t\x12J\n\x0c\x63\x61pture_mode\x18\x04 \x01(\x0e\x32\x34.istio.networking.v1alpha3.IstioListener.CaptureMode\x12\r\n\x05hosts\x18\x05 \x03(\t\x12\x18\n\x10\x64\x65\x66\x61ult_endpoint\x18\x06 \x01(\t\"2\n\x0b\x43\x61ptureMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08IPTABLES\x10\x01\x12\x08\n\x04NONE\x10\x02\"\x8a\x01\n\x10WorkloadSelector\x12G\n\x06labels\x18\x01 \x03(\x0b\x32\x37.istio.networking.v1alpha3.WorkloadSelector.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*&\n\x0b\x43onfigScope\x12\n\n\x06PUBLIC\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3')
+ serialized_pb=_b('\n!networking/v1alpha3/sidecar.proto\x12\x19istio.networking.v1alpha3\x1a!networking/v1alpha3/gateway.proto\"\xd3\x01\n\x07Sidecar\x12\x46\n\x11workload_selector\x18\x01 \x01(\x0b\x32+.istio.networking.v1alpha3.WorkloadSelector\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.IstioIngressListener\x12>\n\x06\x65gress\x18\x03 \x03(\x0b\x32..istio.networking.v1alpha3.IstioEgressListener\"\xab\x01\n\x14IstioIngressListener\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\x18\n\x10\x64\x65\x66\x61ult_endpoint\x18\x04 \x01(\t\"\x9f\x01\n\x13IstioEgressListener\x12-\n\x04port\x18\x01 \x01(\x0b\x32\x1f.istio.networking.v1alpha3.Port\x12\x0c\n\x04\x62ind\x18\x02 \x01(\t\x12<\n\x0c\x63\x61pture_mode\x18\x03 \x01(\x0e\x32&.istio.networking.v1alpha3.CaptureMode\x12\r\n\x05hosts\x18\x04 \x03(\t\"\x8a\x01\n\x10WorkloadSelector\x12G\n\x06labels\x18\x01 \x03(\x0b\x32\x37.istio.networking.v1alpha3.WorkloadSelector.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*&\n\x0b\x43onfigScope\x12\n\n\x06PUBLIC\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01*2\n\x0b\x43\x61ptureMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08IPTABLES\x10\x01\x12\x08\n\x04NONE\x10\x02\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3')
,
dependencies=[networking_dot_v1alpha3_dot_gateway__pb2.DESCRIPTOR,])
@@ -42,19 +42,15 @@
],
containing_type=None,
options=None,
- serialized_start=703,
- serialized_end=741,
+ serialized_start=790,
+ serialized_end=828,
)
_sym_db.RegisterEnumDescriptor(_CONFIGSCOPE)
ConfigScope = enum_type_wrapper.EnumTypeWrapper(_CONFIGSCOPE)
-PUBLIC = 0
-PRIVATE = 1
-
-
-_ISTIOLISTENER_CAPTUREMODE = _descriptor.EnumDescriptor(
+_CAPTUREMODE = _descriptor.EnumDescriptor(
name='CaptureMode',
- full_name='istio.networking.v1alpha3.IstioListener.CaptureMode',
+ full_name='istio.networking.v1alpha3.CaptureMode',
filename=None,
file=DESCRIPTOR,
values=[
@@ -73,10 +69,18 @@
],
containing_type=None,
options=None,
- serialized_start=510,
- serialized_end=560,
+ serialized_start=830,
+ serialized_end=880,
)
-_sym_db.RegisterEnumDescriptor(_ISTIOLISTENER_CAPTUREMODE)
+_sym_db.RegisterEnumDescriptor(_CAPTUREMODE)
+
+CaptureMode = enum_type_wrapper.EnumTypeWrapper(_CAPTUREMODE)
+PUBLIC = 0
+PRIVATE = 1
+DEFAULT = 0
+IPTABLES = 1
+NONE = 2
+
_SIDECAR = _descriptor.Descriptor(
@@ -120,56 +124,94 @@
oneofs=[
],
serialized_start=100,
- serialized_end=298,
+ serialized_end=311,
)
-_ISTIOLISTENER = _descriptor.Descriptor(
- name='IstioListener',
- full_name='istio.networking.v1alpha3.IstioListener',
+_ISTIOINGRESSLISTENER = _descriptor.Descriptor(
+ name='IstioIngressListener',
+ full_name='istio.networking.v1alpha3.IstioIngressListener',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
- name='name', full_name='istio.networking.v1alpha3.IstioListener.name', index=0,
- number=1, type=9, cpp_type=9, label=1,
+ name='port', full_name='istio.networking.v1alpha3.IstioIngressListener.port', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='bind', full_name='istio.networking.v1alpha3.IstioIngressListener.bind', index=1,
+ number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
- name='port', full_name='istio.networking.v1alpha3.IstioListener.port', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
+ name='capture_mode', full_name='istio.networking.v1alpha3.IstioIngressListener.capture_mode', index=2,
+ number=3, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
- name='bind', full_name='istio.networking.v1alpha3.IstioListener.bind', index=2,
- number=3, type=9, cpp_type=9, label=1,
+ name='default_endpoint', full_name='istio.networking.v1alpha3.IstioIngressListener.default_endpoint', index=3,
+ number=4, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=314,
+ serialized_end=485,
+)
+
+
+_ISTIOEGRESSLISTENER = _descriptor.Descriptor(
+ name='IstioEgressListener',
+ full_name='istio.networking.v1alpha3.IstioEgressListener',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
_descriptor.FieldDescriptor(
- name='capture_mode', full_name='istio.networking.v1alpha3.IstioListener.capture_mode', index=3,
- number=4, type=14, cpp_type=8, label=1,
- has_default_value=False, default_value=0,
+ name='port', full_name='istio.networking.v1alpha3.IstioEgressListener.port', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
- name='hosts', full_name='istio.networking.v1alpha3.IstioListener.hosts', index=4,
- number=5, type=9, cpp_type=9, label=3,
- has_default_value=False, default_value=[],
+ name='bind', full_name='istio.networking.v1alpha3.IstioEgressListener.bind', index=1,
+ number=2, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
- name='default_endpoint', full_name='istio.networking.v1alpha3.IstioListener.default_endpoint', index=5,
- number=6, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=_b("").decode('utf-8'),
+ name='capture_mode', full_name='istio.networking.v1alpha3.IstioEgressListener.capture_mode', index=2,
+ number=3, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='hosts', full_name='istio.networking.v1alpha3.IstioEgressListener.hosts', index=3,
+ number=4, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
@@ -178,7 +220,6 @@
],
nested_types=[],
enum_types=[
- _ISTIOLISTENER_CAPTUREMODE,
],
options=None,
is_extendable=False,
@@ -186,8 +227,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=301,
- serialized_end=560,
+ serialized_start=488,
+ serialized_end=647,
)
@@ -224,8 +265,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=656,
- serialized_end=701,
+ serialized_start=743,
+ serialized_end=788,
)
_WORKLOADSELECTOR = _descriptor.Descriptor(
@@ -254,22 +295,25 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=563,
- serialized_end=701,
+ serialized_start=650,
+ serialized_end=788,
)
_SIDECAR.fields_by_name['workload_selector'].message_type = _WORKLOADSELECTOR
-_SIDECAR.fields_by_name['ingress'].message_type = _ISTIOLISTENER
-_SIDECAR.fields_by_name['egress'].message_type = _ISTIOLISTENER
-_ISTIOLISTENER.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_gateway__pb2._PORT
-_ISTIOLISTENER.fields_by_name['capture_mode'].enum_type = _ISTIOLISTENER_CAPTUREMODE
-_ISTIOLISTENER_CAPTUREMODE.containing_type = _ISTIOLISTENER
+_SIDECAR.fields_by_name['ingress'].message_type = _ISTIOINGRESSLISTENER
+_SIDECAR.fields_by_name['egress'].message_type = _ISTIOEGRESSLISTENER
+_ISTIOINGRESSLISTENER.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_gateway__pb2._PORT
+_ISTIOINGRESSLISTENER.fields_by_name['capture_mode'].enum_type = _CAPTUREMODE
+_ISTIOEGRESSLISTENER.fields_by_name['port'].message_type = networking_dot_v1alpha3_dot_gateway__pb2._PORT
+_ISTIOEGRESSLISTENER.fields_by_name['capture_mode'].enum_type = _CAPTUREMODE
_WORKLOADSELECTOR_LABELSENTRY.containing_type = _WORKLOADSELECTOR
_WORKLOADSELECTOR.fields_by_name['labels'].message_type = _WORKLOADSELECTOR_LABELSENTRY
DESCRIPTOR.message_types_by_name['Sidecar'] = _SIDECAR
-DESCRIPTOR.message_types_by_name['IstioListener'] = _ISTIOLISTENER
+DESCRIPTOR.message_types_by_name['IstioIngressListener'] = _ISTIOINGRESSLISTENER
+DESCRIPTOR.message_types_by_name['IstioEgressListener'] = _ISTIOEGRESSLISTENER
DESCRIPTOR.message_types_by_name['WorkloadSelector'] = _WORKLOADSELECTOR
DESCRIPTOR.enum_types_by_name['ConfigScope'] = _CONFIGSCOPE
+DESCRIPTOR.enum_types_by_name['CaptureMode'] = _CAPTUREMODE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
Sidecar = _reflection.GeneratedProtocolMessageType('Sidecar', (_message.Message,), dict(
@@ -279,12 +323,19 @@
))
_sym_db.RegisterMessage(Sidecar)
-IstioListener = _reflection.GeneratedProtocolMessageType('IstioListener', (_message.Message,), dict(
- DESCRIPTOR = _ISTIOLISTENER,
+IstioIngressListener = _reflection.GeneratedProtocolMessageType('IstioIngressListener', (_message.Message,), dict(
+ DESCRIPTOR = _ISTIOINGRESSLISTENER,
+ __module__ = 'networking.v1alpha3.sidecar_pb2'
+ # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.IstioIngressListener)
+ ))
+_sym_db.RegisterMessage(IstioIngressListener)
+
+IstioEgressListener = _reflection.GeneratedProtocolMessageType('IstioEgressListener', (_message.Message,), dict(
+ DESCRIPTOR = _ISTIOEGRESSLISTENER,
__module__ = 'networking.v1alpha3.sidecar_pb2'
- # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.IstioListener)
+ # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.IstioEgressListener)
))
-_sym_db.RegisterMessage(IstioListener)
+_sym_db.RegisterMessage(IstioEgressListener)
WorkloadSelector = _reflection.GeneratedProtocolMessageType('WorkloadSelector', (_message.Message,), dict(
|