update workload api to use repeated addresses (#4691)

* updte workload api to use repeated addresses

* bug in xds resource name

* handle primary key and on-demand lookup, add uid to test

* lint fix

* envoy only ever needs workloads

* removed unsed protos
This commit is contained in:
Greg Hanson 2023-06-06 13:44:48 -04:00 committed by GitHub
parent e2801e02c7
commit a1c31919e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 103 additions and 313 deletions

View File

@ -114,11 +114,11 @@ private:
}
AddressIndex address_index_;
};
class WorkloadSubscription : Config::SubscriptionBase<istio::workload::Address> {
class WorkloadSubscription : Config::SubscriptionBase<istio::workload::Workload> {
public:
WorkloadSubscription(WorkloadMetadataProviderImpl& parent)
: Config::SubscriptionBase<istio::workload::Address>(
parent.factory_context_.messageValidationVisitor(), "address"),
: Config::SubscriptionBase<istio::workload::Workload>(
parent.factory_context_.messageValidationVisitor(), "uid"),
parent_(parent) {
subscription_ = parent.factory_context_.clusterManager()
.subscriptionFactory()
@ -134,15 +134,12 @@ private:
const std::string&) override {
AddressIndexSharedPtr index = std::make_shared<AddressIndex>();
for (const auto& resource : resources) {
const auto& address =
dynamic_cast<const istio::workload::Address&>(resource.get().resource());
switch (address.type_case()) {
case istio::workload::Address::kWorkload:
index->emplace(address.workload().address(), convert(address.workload()));
break;
default:
// do nothing
break;
const auto& workload =
dynamic_cast<const istio::workload::Workload&>(resource.get().resource());
const auto& metadata = convert(workload);
index->emplace(workload.uid(), metadata);
for (const auto& addr : workload.addresses()) {
index->emplace(addr, metadata);
}
}
parent_.reset(index);
@ -152,15 +149,12 @@ private:
const std::string&) override {
AddressIndexSharedPtr added = std::make_shared<AddressIndex>();
for (const auto& resource : added_resources) {
const auto& address =
dynamic_cast<const istio::workload::Address&>(resource.get().resource());
switch (address.type_case()) {
case istio::workload::Address::kWorkload:
added->emplace(address.workload().address(), convert(address.workload()));
break;
default:
// do nothing
break;
const auto& workload =
dynamic_cast<const istio::workload::Workload&>(resource.get().resource());
const auto& metadata = convert(workload);
added->emplace(workload.uid(), metadata);
for (const auto& addr : workload.addresses()) {
added->emplace(addr, metadata);
}
}
AddressVectorSharedPtr removed = std::make_shared<AddressVector>();

View File

@ -27,39 +27,8 @@ option go_package = "test/envoye2e/workloadapi";
* 3) append bootstrap extension stub;
*/
message Address {
// Workload represents an individual workload.
// This could be a single Pod, a VM instance, etc.
oneof type {
Workload workload = 1;
// Service represents a service - a group of workloads that can be accessed together.
Service service = 2;
}
}
message Service {
reserved "name";
reserved 1;
reserved "namespace";
reserved 2;
reserved "hostname";
reserved 3;
reserved "addresses";
reserved 4;
reserved "ports";
reserved 5;
reserved "subject_alt_names";
reserved 6;
}
message Workload {
reserved "uid";
reserved 20;
string uid = 20;
// Name represents the name for the workload.
// For Kubernetes, this is the pod name.
@ -76,7 +45,7 @@ message Workload {
// Each workload must have at least either an address or hostname; not both.
// TODO: support dual stack by making this repeated
// TODO: when this is repeated, update xds primary key from network/IP to network/UID
bytes address = 3;
repeated bytes addresses = 3;
reserved "hostname";
reserved 21;

View File

@ -46,12 +46,12 @@ type XDSServer struct {
cache.MuxCache
Extensions *ExtensionServer
Cache cache.SnapshotCache
Addresses *cache.LinearCache
Workloads *cache.LinearCache
}
var _ Step = &XDS{}
const AddressTypeURL = "type.googleapis.com/istio.workload.Address"
const WorkloadTypeURL = "type.googleapis.com/istio.workload.Workload"
// Run starts up an Envoy XDS server.
func (x *XDS) Run(p *Params) error {
@ -62,22 +62,22 @@ func (x *XDS) Run(p *Params) error {
// Register caches.
p.Config.Cache = cache.NewSnapshotCache(false, cache.IDHash{}, x)
p.Config.Addresses = cache.NewLinearCache(AddressTypeURL,
p.Config.Workloads = cache.NewLinearCache(WorkloadTypeURL,
cache.WithLogger(x))
p.Config.Caches = map[string]cache.Cache{
"default": p.Config.Cache,
"addresses": p.Config.Addresses,
"workloads": p.Config.Workloads,
}
p.Config.Classify = func(r *cache.Request) string {
if r.TypeUrl == AddressTypeURL {
return "addresses"
if r.TypeUrl == WorkloadTypeURL {
return "workloads"
}
return "default"
}
p.Config.ClassifyDelta = func(r *cache.DeltaRequest) string {
if r.TypeUrl == AddressTypeURL {
return "addresses"
if r.TypeUrl == WorkloadTypeURL {
return "workloads"
}
return "default"
}
@ -96,23 +96,15 @@ func (x *XDS) Run(p *Params) error {
return nil
}
type NamedAddress struct {
*workloadapi.Address
type NamedWorkload struct {
*workloadapi.Workload
}
func (namedAddr *NamedAddress) GetName() string {
var name string
switch addr := namedAddr.Type.(type) {
case *workloadapi.Address_Service:
// TODO: all fields currently reserved and unused/unimplemented
case *workloadapi.Address_Workload:
ii, _ := netip.AddrFromSlice(addr.Workload.Address)
name = addr.Workload.Network + "/" + ii.String()
}
return name
func (nw *NamedWorkload) GetName() string {
return nw.Uid
}
var _ types.ResourceWithName = &NamedAddress{}
var _ types.ResourceWithName = &NamedWorkload{}
// Cleanup stops the XDS server.
func (x *XDS) Cleanup() {
@ -235,14 +227,9 @@ func (u *UpdateWorkloadMetadata) Run(p *Params) error {
return err
}
log.Printf("updating metadata for %q\n", wl.Address)
out.Address = ip.AsSlice()
addr := &workloadapi.Address{
Type: &workloadapi.Address_Workload{
Workload: out,
},
}
namedAddr := NamedAddress{addr}
err = p.Config.Addresses.UpdateResource(namedAddr.GetName(), addr)
out.Addresses = [][]byte{ip.AsSlice()}
namedWorkload := NamedWorkload{out}
err = p.Config.Workloads.UpdateResource(namedWorkload.GetName(), out)
if err != nil {
return err
}

View File

@ -637,6 +637,7 @@ namespace: default
workload_name: ratings-v1
canonical_name: ratings
canonical_revision: version-1
uid: //v1/pod/default/ratings
`
func TestStatsServerWaypointProxy(t *testing.T) {

View File

@ -86,134 +86,12 @@ func (WorkloadType) EnumDescriptor() ([]byte, []int) {
return file_source_extensions_common_workload_discovery_discovery_proto_rawDescGZIP(), []int{0}
}
type Address struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Workload represents an individual workload.
// This could be a single Pod, a VM instance, etc.
//
// Types that are assignable to Type:
//
// *Address_Workload
// *Address_Service
Type isAddress_Type `protobuf_oneof:"type"`
}
func (x *Address) Reset() {
*x = Address{}
if protoimpl.UnsafeEnabled {
mi := &file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Address) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Address) ProtoMessage() {}
func (x *Address) ProtoReflect() protoreflect.Message {
mi := &file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Address.ProtoReflect.Descriptor instead.
func (*Address) Descriptor() ([]byte, []int) {
return file_source_extensions_common_workload_discovery_discovery_proto_rawDescGZIP(), []int{0}
}
func (m *Address) GetType() isAddress_Type {
if m != nil {
return m.Type
}
return nil
}
func (x *Address) GetWorkload() *Workload {
if x, ok := x.GetType().(*Address_Workload); ok {
return x.Workload
}
return nil
}
func (x *Address) GetService() *Service {
if x, ok := x.GetType().(*Address_Service); ok {
return x.Service
}
return nil
}
type isAddress_Type interface {
isAddress_Type()
}
type Address_Workload struct {
Workload *Workload `protobuf:"bytes,1,opt,name=workload,proto3,oneof"`
}
type Address_Service struct {
// Service represents a service - a group of workloads that can be accessed together.
Service *Service `protobuf:"bytes,2,opt,name=service,proto3,oneof"`
}
func (*Address_Workload) isAddress_Type() {}
func (*Address_Service) isAddress_Type() {}
type Service struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Service) Reset() {
*x = Service{}
if protoimpl.UnsafeEnabled {
mi := &file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Service) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Service) ProtoMessage() {}
func (x *Service) ProtoReflect() protoreflect.Message {
mi := &file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Service.ProtoReflect.Descriptor instead.
func (*Service) Descriptor() ([]byte, []int) {
return file_source_extensions_common_workload_discovery_discovery_proto_rawDescGZIP(), []int{1}
}
type Workload struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid string `protobuf:"bytes,20,opt,name=uid,proto3" json:"uid,omitempty"`
// Name represents the name for the workload.
// For Kubernetes, this is the pod name.
// This is just for debugging and may be elided as an optimization.
@ -227,7 +105,7 @@ type Workload struct {
// Each workload must have at least either an address or hostname; not both.
// TODO: support dual stack by making this repeated
// TODO: when this is repeated, update xds primary key from network/IP to network/UID
Address []byte `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
Addresses [][]byte `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty"`
// Network represents the network this workload is on. This may be elided for the default network.
// A (network,address) pair makeup a unique key for a workload *at a point in time*.
Network string `protobuf:"bytes,4,opt,name=network,proto3" json:"network,omitempty"`
@ -250,7 +128,7 @@ type Workload struct {
func (x *Workload) Reset() {
*x = Workload{}
if protoimpl.UnsafeEnabled {
mi := &file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[2]
mi := &file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -263,7 +141,7 @@ func (x *Workload) String() string {
func (*Workload) ProtoMessage() {}
func (x *Workload) ProtoReflect() protoreflect.Message {
mi := &file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[2]
mi := &file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -276,7 +154,14 @@ func (x *Workload) ProtoReflect() protoreflect.Message {
// Deprecated: Use Workload.ProtoReflect.Descriptor instead.
func (*Workload) Descriptor() ([]byte, []int) {
return file_source_extensions_common_workload_discovery_discovery_proto_rawDescGZIP(), []int{2}
return file_source_extensions_common_workload_discovery_discovery_proto_rawDescGZIP(), []int{0}
}
func (x *Workload) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *Workload) GetName() string {
@ -293,9 +178,9 @@ func (x *Workload) GetNamespace() string {
return ""
}
func (x *Workload) GetAddress() []byte {
func (x *Workload) GetAddresses() [][]byte {
if x != nil {
return x.Address
return x.Addresses
}
return nil
}
@ -363,66 +248,52 @@ var file_source_extensions_common_workload_discovery_discovery_proto_rawDesc = [
0x6f, 0x6e, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c,
0x6f, 0x61, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2f, 0x64, 0x69,
0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x69,
0x73, 0x74, 0x69, 0x6f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x7e, 0x0a,
0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b,
0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x69, 0x73, 0x74,
0x69, 0x6f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x57, 0x6f, 0x72, 0x6b,
0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f,
0x61, 0x64, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6d, 0x0a,
0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04,
0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05,
0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x08, 0x68,
0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x65, 0x73, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x11, 0x73, 0x75, 0x62, 0x6a, 0x65,
0x63, 0x74, 0x5f, 0x61, 0x6c, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x04, 0x0a,
0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a,
0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12,
0x21, 0x0a, 0x0c, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18,
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61,
0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63,
0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f,
0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11,
0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
0x6e, 0x12, 0x41, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79,
0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f,
0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f,
0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x6f, 0x72,
0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75,
0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x14, 0x10, 0x15, 0x4a, 0x04,
0x08, 0x15, 0x10, 0x16, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09,
0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0e,
0x10, 0x0f, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x4a, 0x04,
0x08, 0x11, 0x10, 0x12, 0x52, 0x03, 0x75, 0x69, 0x64, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e,
0x61, 0x6d, 0x65, 0x52, 0x0f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0f,
0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52,
0x04, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x75,
0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x69, 0x70,
0x73, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x2a, 0x3d, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70,
0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x10,
0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x4f, 0x4e, 0x4a, 0x4f, 0x42, 0x10, 0x01, 0x12, 0x07,
0x0a, 0x03, 0x50, 0x4f, 0x44, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x4f, 0x42, 0x10, 0x03,
0x42, 0x1b, 0x5a, 0x19, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x65, 0x32,
0x65, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
0x73, 0x74, 0x69, 0x6f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xdd, 0x04,
0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c,
0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0c, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07,
0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e,
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f,
0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72,
0x75, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6f,
0x6e, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x61, 0x6e,
0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18,
0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c,
0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b,
0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x1c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77,
0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x77,
0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65,
0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x12,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x4a,
0x04, 0x08, 0x15, 0x10, 0x16, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x08, 0x10,
0x09, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08,
0x0e, 0x10, 0x0f, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x4a,
0x04, 0x08, 0x11, 0x10, 0x12, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52,
0x0f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
0x52, 0x08, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77,
0x6f, 0x72, 0x6b, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x04, 0x6e, 0x6f, 0x64,
0x65, 0x52, 0x0d, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c,
0x52, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x73, 0x52, 0x16, 0x61,
0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c,
0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x3d, 0x0a,
0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a,
0x0a, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a,
0x07, 0x43, 0x52, 0x4f, 0x4e, 0x4a, 0x4f, 0x42, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x4f,
0x44, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x4f, 0x42, 0x10, 0x03, 0x42, 0x1b, 0x5a, 0x19,
0x74, 0x65, 0x73, 0x74, 0x2f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x65, 0x32, 0x65, 0x2f, 0x77, 0x6f,
0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
@ -438,22 +309,18 @@ func file_source_extensions_common_workload_discovery_discovery_proto_rawDescGZI
}
var file_source_extensions_common_workload_discovery_discovery_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_source_extensions_common_workload_discovery_discovery_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_source_extensions_common_workload_discovery_discovery_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_source_extensions_common_workload_discovery_discovery_proto_goTypes = []interface{}{
(WorkloadType)(0), // 0: istio.workload.WorkloadType
(*Address)(nil), // 1: istio.workload.Address
(*Service)(nil), // 2: istio.workload.Service
(*Workload)(nil), // 3: istio.workload.Workload
(*Workload)(nil), // 1: istio.workload.Workload
}
var file_source_extensions_common_workload_discovery_discovery_proto_depIdxs = []int32{
3, // 0: istio.workload.Address.workload:type_name -> istio.workload.Workload
2, // 1: istio.workload.Address.service:type_name -> istio.workload.Service
0, // 2: istio.workload.Workload.workload_type:type_name -> istio.workload.WorkloadType
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
0, // 0: istio.workload.Workload.workload_type:type_name -> istio.workload.WorkloadType
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_source_extensions_common_workload_discovery_discovery_proto_init() }
@ -463,30 +330,6 @@ func file_source_extensions_common_workload_discovery_discovery_proto_init() {
}
if !protoimpl.UnsafeEnabled {
file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Address); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Service); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Workload); i {
case 0:
return &v.state
@ -499,17 +342,13 @@ func file_source_extensions_common_workload_discovery_discovery_proto_init() {
}
}
}
file_source_extensions_common_workload_discovery_discovery_proto_msgTypes[0].OneofWrappers = []interface{}{
(*Address_Workload)(nil),
(*Address_Service)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_source_extensions_common_workload_discovery_discovery_proto_rawDesc,
NumEnums: 1,
NumMessages: 3,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},