workloadapi

package
v0.0.0-...-75c6eaf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	WorkloadStatus_name = map[int32]string{
		0: "HEALTHY",
		1: "UNHEALTHY",
	}
	WorkloadStatus_value = map[string]int32{
		"HEALTHY":   0,
		"UNHEALTHY": 1,
	}
)

Enum value maps for WorkloadStatus.

View Source
var (
	WorkloadType_name = map[int32]string{
		0: "DEPLOYMENT",
		1: "CRONJOB",
		2: "POD",
		3: "JOB",
	}
	WorkloadType_value = map[string]int32{
		"DEPLOYMENT": 0,
		"CRONJOB":    1,
		"POD":        2,
		"JOB":        3,
	}
)

Enum value maps for WorkloadType.

View Source
var (
	TunnelProtocol_name = map[int32]string{
		0: "NONE",
		1: "HBONE",
	}
	TunnelProtocol_value = map[string]int32{
		"NONE":  0,
		"HBONE": 1,
	}
)

Enum value maps for TunnelProtocol.

View Source
var (
	LoadBalancing_Scope_name = map[int32]string{
		0: "UNSPECIFIED_SCOPE",
		1: "REGION",
		2: "ZONE",
		3: "SUBZONE",
		4: "NODE",
		5: "CLUSTER",
		6: "NETWORK",
	}
	LoadBalancing_Scope_value = map[string]int32{
		"UNSPECIFIED_SCOPE": 0,
		"REGION":            1,
		"ZONE":              2,
		"SUBZONE":           3,
		"NODE":              4,
		"CLUSTER":           5,
		"NETWORK":           6,
	}
)

Enum value maps for LoadBalancing_Scope.

View Source
var (
	LoadBalancing_Mode_name = map[int32]string{
		0: "UNSPECIFIED_MODE",
		1: "STRICT",
		2: "FAILOVER",
	}
	LoadBalancing_Mode_value = map[string]int32{
		"UNSPECIFIED_MODE": 0,
		"STRICT":           1,
		"FAILOVER":         2,
	}
)

Enum value maps for LoadBalancing_Mode.

View Source
var (
	ApplicationTunnel_Protocol_name = map[int32]string{
		0: "NONE",
		1: "PROXY",
	}
	ApplicationTunnel_Protocol_value = map[string]int32{
		"NONE":  0,
		"PROXY": 1,
	}
)

Enum value maps for ApplicationTunnel_Protocol.

View Source
var File_workloadapi_workload_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type Address

type Address struct {

	// Types that are assignable to Type:
	//
	//	*Address_Workload
	//	*Address_Service
	Type isAddress_Type `protobuf_oneof:"type"`
	// contains filtered or unexported fields
}

Address represents a unique address.

Address joins two sub-resources, Workload and Service, to support querying by IP address. Address is intended to be able to be looked up on-demand, allowing a client to answer a question like "what is this IP address", similar to a reverse DNS lookup.

Each resource will have a mesh-wide unique opaque name, defined in the individual messages. In addition, to support lookup by IP address, they will have *alias* names for each IP the resource represents. There may be multiple aliases for the same resource (examples: service in multiple networks, or a dual-stack workload). Aliases are keyed by network/IP address. Example: "default/1.2.3.4".

In some cases, we do not know the IP address of a Workload. For instance, we may simply know that there is a workload behind a gateway, and rely on the gateway to handle the rest. In this case, the key format will be "resource-uid". The resource can be a Pod, WorkloadEntry, etc. These resources cannot be looked up on-demand.

In some cases, we do not know the IP address of a Service. These services cannot be used for matching outbound traffic, as we only have L4 attributes to route based on. However, they can be used for Gateways. In this case, the key format will be "network/hostname". These resources cannot be looked up on-demand.

func (*Address) Descriptor deprecated

func (*Address) Descriptor() ([]byte, []int)

Deprecated: Use Address.ProtoReflect.Descriptor instead.

func (*Address) GetService

func (x *Address) GetService() *Service

func (*Address) GetType

func (m *Address) GetType() isAddress_Type

func (*Address) GetWorkload

func (x *Address) GetWorkload() *Workload

func (*Address) ProtoMessage

func (*Address) ProtoMessage()

func (*Address) ProtoReflect

func (x *Address) ProtoReflect() protoreflect.Message

func (*Address) Reset

func (x *Address) Reset()

func (*Address) String

func (x *Address) String() string

type Address_Service

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"`
}

type Address_Workload

type Address_Workload struct {
	// Workload represents an individual workload.
	// This could be a single Pod, a VM instance, etc.
	Workload *Workload `protobuf:"bytes,1,opt,name=workload,proto3,oneof"`
}

type ApplicationTunnel

type ApplicationTunnel struct {

	// A target natively handles this type of traffic.
	Protocol ApplicationTunnel_Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=istio.workload.ApplicationTunnel_Protocol" json:"protocol,omitempty"`
	// optional: if set, traffic should be sent to this port after the last zTunnel hop
	Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	// contains filtered or unexported fields
}

ApplicationProtocol specifies a workload (application or gateway) can consume tunnel information.

func (*ApplicationTunnel) Descriptor deprecated

func (*ApplicationTunnel) Descriptor() ([]byte, []int)

Deprecated: Use ApplicationTunnel.ProtoReflect.Descriptor instead.

func (*ApplicationTunnel) GetPort

func (x *ApplicationTunnel) GetPort() uint32

func (*ApplicationTunnel) GetProtocol

func (*ApplicationTunnel) ProtoMessage

func (*ApplicationTunnel) ProtoMessage()

func (*ApplicationTunnel) ProtoReflect

func (x *ApplicationTunnel) ProtoReflect() protoreflect.Message

func (*ApplicationTunnel) Reset

func (x *ApplicationTunnel) Reset()

func (*ApplicationTunnel) String

func (x *ApplicationTunnel) String() string

type ApplicationTunnel_Protocol

type ApplicationTunnel_Protocol int32
const (
	// Bytes are copied from the inner stream without modification.
	ApplicationTunnel_NONE ApplicationTunnel_Protocol = 0
	// Prepend PROXY protocol headers before copying bytes
	// Standard PROXY source and destination information
	// is included, along with potential extra TLV headers:
	// 0xD0 - The SPIFFE identity of the source workload
	// 0xD1 - The FQDN or Hostname of the targeted Service
	ApplicationTunnel_PROXY ApplicationTunnel_Protocol = 1
)

func (ApplicationTunnel_Protocol) Descriptor

func (ApplicationTunnel_Protocol) Enum

func (ApplicationTunnel_Protocol) EnumDescriptor deprecated

func (ApplicationTunnel_Protocol) EnumDescriptor() ([]byte, []int)

Deprecated: Use ApplicationTunnel_Protocol.Descriptor instead.

func (ApplicationTunnel_Protocol) Number

func (ApplicationTunnel_Protocol) String

func (ApplicationTunnel_Protocol) Type

type GatewayAddress

type GatewayAddress struct {

	// address can either be a hostname (ex: gateway.example.com) or an IP (ex: 1.2.3.4).
	//
	// Types that are assignable to Destination:
	//
	//	*GatewayAddress_Hostname
	//	*GatewayAddress_Address
	Destination isGatewayAddress_Destination `protobuf_oneof:"destination"`
	// port to reach the gateway at for mTLS HBONE connections
	HboneMtlsPort uint32 `protobuf:"varint,3,opt,name=hbone_mtls_port,json=hboneMtlsPort,proto3" json:"hbone_mtls_port,omitempty"`
	// port to reach the gateway at for single tls HBONE connections
	// used for sending unauthenticated traffic originating outside the mesh to a waypoint-enabled destination
	// A value of 0 = unset
	HboneSingleTlsPort uint32 `protobuf:"varint,4,opt,name=hbone_single_tls_port,json=hboneSingleTlsPort,proto3" json:"hbone_single_tls_port,omitempty"`
	// contains filtered or unexported fields
}

GatewayAddress represents the address of a gateway

func (*GatewayAddress) Descriptor deprecated

func (*GatewayAddress) Descriptor() ([]byte, []int)

Deprecated: Use GatewayAddress.ProtoReflect.Descriptor instead.

func (*GatewayAddress) GetAddress

func (x *GatewayAddress) GetAddress() *NetworkAddress

func (*GatewayAddress) GetDestination

func (m *GatewayAddress) GetDestination() isGatewayAddress_Destination

func (*GatewayAddress) GetHboneMtlsPort

func (x *GatewayAddress) GetHboneMtlsPort() uint32

func (*GatewayAddress) GetHboneSingleTlsPort

func (x *GatewayAddress) GetHboneSingleTlsPort() uint32

func (*GatewayAddress) GetHostname

func (x *GatewayAddress) GetHostname() *NamespacedHostname

func (*GatewayAddress) ProtoMessage

func (*GatewayAddress) ProtoMessage()

func (*GatewayAddress) ProtoReflect

func (x *GatewayAddress) ProtoReflect() protoreflect.Message

func (*GatewayAddress) Reset

func (x *GatewayAddress) Reset()

func (*GatewayAddress) String

func (x *GatewayAddress) String() string

type GatewayAddress_Address

type GatewayAddress_Address struct {
	Address *NetworkAddress `protobuf:"bytes,2,opt,name=address,proto3,oneof"`
}

type GatewayAddress_Hostname

type GatewayAddress_Hostname struct {
	// TODO: add support for hostname lookup
	Hostname *NamespacedHostname `protobuf:"bytes,1,opt,name=hostname,proto3,oneof"`
}

type LoadBalancing

type LoadBalancing struct {

	// routing_preference defines what scopes we want to keep traffic within.
	// The `mode` determines how these routing preferences are handled
	RoutingPreference []LoadBalancing_Scope `` /* 160-byte string literal not displayed */
	// mode defines how we should handle the routing preferences.
	Mode LoadBalancing_Mode `protobuf:"varint,2,opt,name=mode,proto3,enum=istio.workload.LoadBalancing_Mode" json:"mode,omitempty"`
	// contains filtered or unexported fields
}

func (*LoadBalancing) Descriptor deprecated

func (*LoadBalancing) Descriptor() ([]byte, []int)

Deprecated: Use LoadBalancing.ProtoReflect.Descriptor instead.

func (*LoadBalancing) GetMode

func (x *LoadBalancing) GetMode() LoadBalancing_Mode

func (*LoadBalancing) GetRoutingPreference

func (x *LoadBalancing) GetRoutingPreference() []LoadBalancing_Scope

func (*LoadBalancing) ProtoMessage

func (*LoadBalancing) ProtoMessage()

func (*LoadBalancing) ProtoReflect

func (x *LoadBalancing) ProtoReflect() protoreflect.Message

func (*LoadBalancing) Reset

func (x *LoadBalancing) Reset()

func (*LoadBalancing) String

func (x *LoadBalancing) String() string

type LoadBalancing_Mode

type LoadBalancing_Mode int32
const (
	LoadBalancing_UNSPECIFIED_MODE LoadBalancing_Mode = 0
	// In STRICT mode, only endpoints that meets all of the routing preferences will be considered.
	// This can be used, for instance, to keep traffic ONLY within the same cluster/node/region.
	// This should be used with caution, as it can result in all traffic being dropped if there is no matching endpoints,
	// even if there are endpoints outside of the preferences.
	LoadBalancing_STRICT LoadBalancing_Mode = 1
	// In FAILOVER mode, endpoint selection will prefer endpoints that match all preferences, but failover to groups of endpoints
	// that match less (or, eventually, none) preferences.
	// For instance, with `[NETWORK, REGION, ZONE]`, we will send to:
	// 1. Endpoints matching `[NETWORK, REGION, ZONE]`
	// 2. Endpoints matching `[NETWORK, REGION]`
	// 3. Endpoints matching `[NETWORK]`
	// 4. Any endpoints
	LoadBalancing_FAILOVER LoadBalancing_Mode = 2
)

func (LoadBalancing_Mode) Descriptor

func (LoadBalancing_Mode) Enum

func (LoadBalancing_Mode) EnumDescriptor deprecated

func (LoadBalancing_Mode) EnumDescriptor() ([]byte, []int)

Deprecated: Use LoadBalancing_Mode.Descriptor instead.

func (LoadBalancing_Mode) Number

func (LoadBalancing_Mode) String

func (x LoadBalancing_Mode) String() string

func (LoadBalancing_Mode) Type

type LoadBalancing_Scope

type LoadBalancing_Scope int32
const (
	LoadBalancing_UNSPECIFIED_SCOPE LoadBalancing_Scope = 0
	// Prefer traffic in the same region.
	LoadBalancing_REGION LoadBalancing_Scope = 1
	// Prefer traffic in the same zone.
	LoadBalancing_ZONE LoadBalancing_Scope = 2
	// Prefer traffic in the same subzone.
	LoadBalancing_SUBZONE LoadBalancing_Scope = 3
	// Prefer traffic on the same node.
	LoadBalancing_NODE LoadBalancing_Scope = 4
	// Prefer traffic in the same cluster.
	LoadBalancing_CLUSTER LoadBalancing_Scope = 5
	// Prefer traffic in the same network.
	LoadBalancing_NETWORK LoadBalancing_Scope = 6
)

func (LoadBalancing_Scope) Descriptor

func (LoadBalancing_Scope) Enum

func (LoadBalancing_Scope) EnumDescriptor deprecated

func (LoadBalancing_Scope) EnumDescriptor() ([]byte, []int)

Deprecated: Use LoadBalancing_Scope.Descriptor instead.

func (LoadBalancing_Scope) Number

func (LoadBalancing_Scope) String

func (x LoadBalancing_Scope) String() string

func (LoadBalancing_Scope) Type

type Locality

type Locality struct {
	Region  string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"`
	Zone    string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
	Subzone string `protobuf:"bytes,3,opt,name=subzone,proto3" json:"subzone,omitempty"`
	// contains filtered or unexported fields
}

func (*Locality) Descriptor deprecated

func (*Locality) Descriptor() ([]byte, []int)

Deprecated: Use Locality.ProtoReflect.Descriptor instead.

func (*Locality) GetRegion

func (x *Locality) GetRegion() string

func (*Locality) GetSubzone

func (x *Locality) GetSubzone() string

func (*Locality) GetZone

func (x *Locality) GetZone() string

func (*Locality) ProtoMessage

func (*Locality) ProtoMessage()

func (*Locality) ProtoReflect

func (x *Locality) ProtoReflect() protoreflect.Message

func (*Locality) Reset

func (x *Locality) Reset()

func (*Locality) String

func (x *Locality) String() string

type NamespacedHostname

type NamespacedHostname struct {

	// The namespace the service is in.
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// hostname (ex: gateway.example.com)
	Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
	// contains filtered or unexported fields
}

NamespacedHostname represents a service bound to a specific namespace.

func (*NamespacedHostname) Descriptor deprecated

func (*NamespacedHostname) Descriptor() ([]byte, []int)

Deprecated: Use NamespacedHostname.ProtoReflect.Descriptor instead.

func (*NamespacedHostname) GetHostname

func (x *NamespacedHostname) GetHostname() string

func (*NamespacedHostname) GetNamespace

func (x *NamespacedHostname) GetNamespace() string

func (*NamespacedHostname) ProtoMessage

func (*NamespacedHostname) ProtoMessage()

func (*NamespacedHostname) ProtoReflect

func (x *NamespacedHostname) ProtoReflect() protoreflect.Message

func (*NamespacedHostname) Reset

func (x *NamespacedHostname) Reset()

func (*NamespacedHostname) String

func (x *NamespacedHostname) String() string

type NetworkAddress

type NetworkAddress struct {

	// Network represents the network this address is on.
	Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
	// Address presents the IP (v4 or v6).
	Address []byte `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	// contains filtered or unexported fields
}

NetworkAddress represents an address bound to a specific network.

func (*NetworkAddress) Descriptor deprecated

func (*NetworkAddress) Descriptor() ([]byte, []int)

Deprecated: Use NetworkAddress.ProtoReflect.Descriptor instead.

func (*NetworkAddress) GetAddress

func (x *NetworkAddress) GetAddress() []byte

func (*NetworkAddress) GetNetwork

func (x *NetworkAddress) GetNetwork() string

func (*NetworkAddress) ProtoMessage

func (*NetworkAddress) ProtoMessage()

func (*NetworkAddress) ProtoReflect

func (x *NetworkAddress) ProtoReflect() protoreflect.Message

func (*NetworkAddress) Reset

func (x *NetworkAddress) Reset()

func (*NetworkAddress) String

func (x *NetworkAddress) String() string

type Port

type Port struct {

	// Port the service is reached at (frontend).
	ServicePort uint32 `protobuf:"varint,1,opt,name=service_port,json=servicePort,proto3" json:"service_port,omitempty"`
	// Port the service forwards to (backend).
	TargetPort uint32 `protobuf:"varint,2,opt,name=target_port,json=targetPort,proto3" json:"target_port,omitempty"`
	// contains filtered or unexported fields
}

func (*Port) Descriptor deprecated

func (*Port) Descriptor() ([]byte, []int)

Deprecated: Use Port.ProtoReflect.Descriptor instead.

func (*Port) GetServicePort

func (x *Port) GetServicePort() uint32

func (*Port) GetTargetPort

func (x *Port) GetTargetPort() uint32

func (*Port) ProtoMessage

func (*Port) ProtoMessage()

func (*Port) ProtoReflect

func (x *Port) ProtoReflect() protoreflect.Message

func (*Port) Reset

func (x *Port) Reset()

func (*Port) String

func (x *Port) String() string

type PortList

type PortList struct {
	Ports []*Port `protobuf:"bytes,1,rep,name=ports,proto3" json:"ports,omitempty"`
	// contains filtered or unexported fields
}

PorList represents the ports for a service

func (*PortList) Descriptor deprecated

func (*PortList) Descriptor() ([]byte, []int)

Deprecated: Use PortList.ProtoReflect.Descriptor instead.

func (*PortList) GetPorts

func (x *PortList) GetPorts() []*Port

func (*PortList) ProtoMessage

func (*PortList) ProtoMessage()

func (*PortList) ProtoReflect

func (x *PortList) ProtoReflect() protoreflect.Message

func (*PortList) Reset

func (x *PortList) Reset()

func (*PortList) String

func (x *PortList) String() string

type Service

type Service struct {

	// Name represents the name for the service.
	// For Kubernetes, this is the Service name.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Namespace represents the namespace for the service.
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Hostname represents the FQDN of the service.
	// For Kubernetes, this would be <name>.<namespace>.svc.<cluster domain>.
	// TODO: support this field
	Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"`
	// Address represents the addresses the service can be reached at.
	// There may be multiple addresses for a single service if it resides in multiple networks,
	// multiple clusters, and/or if it's dual stack (TODO: support dual stack).
	// For a headless kubernetes service, this list will be empty.
	Addresses []*NetworkAddress `protobuf:"bytes,4,rep,name=addresses,proto3" json:"addresses,omitempty"`
	// Ports for the service.
	// The target_port may be overridden on a per-workload basis.
	Ports []*Port `protobuf:"bytes,5,rep,name=ports,proto3" json:"ports,omitempty"`
	// Optional; if set, the SAN to verify for TLS connections.
	// Typically, this is not set and per-workload identity is used to verify
	// TODO: support this field
	SubjectAltNames []string `protobuf:"bytes,6,rep,name=subject_alt_names,json=subjectAltNames,proto3" json:"subject_alt_names,omitempty"`
	// Waypoint is the waypoint proxy for this service. When set, all incoming requests must go
	// through the waypoint.
	Waypoint *GatewayAddress `protobuf:"bytes,7,opt,name=waypoint,proto3" json:"waypoint,omitempty"`
	// Load balancing policy for selecting endpoints.
	// Note: this applies only to connecting directly to the workload; when waypoints are used, the waypoint's load_balancing
	// configuration is used.
	LoadBalancing *LoadBalancing `protobuf:"bytes,8,opt,name=load_balancing,json=loadBalancing,proto3" json:"load_balancing,omitempty"`
	// contains filtered or unexported fields
}

Service represents a service - a group of workloads that can be accessed together. The xds primary key is "namespace/hostname". Secondary (alias) keys are the unique `network/IP` pairs that the service can be reached at.

func (*Service) Descriptor deprecated

func (*Service) Descriptor() ([]byte, []int)

Deprecated: Use Service.ProtoReflect.Descriptor instead.

func (*Service) GetAddresses

func (x *Service) GetAddresses() []*NetworkAddress

func (*Service) GetHostname

func (x *Service) GetHostname() string

func (*Service) GetLoadBalancing

func (x *Service) GetLoadBalancing() *LoadBalancing

func (*Service) GetName

func (x *Service) GetName() string

func (*Service) GetNamespace

func (x *Service) GetNamespace() string

func (*Service) GetPorts

func (x *Service) GetPorts() []*Port

func (*Service) GetSubjectAltNames

func (x *Service) GetSubjectAltNames() []string

func (*Service) GetWaypoint

func (x *Service) GetWaypoint() *GatewayAddress

func (*Service) ProtoMessage

func (*Service) ProtoMessage()

func (*Service) ProtoReflect

func (x *Service) ProtoReflect() protoreflect.Message

func (*Service) Reset

func (x *Service) Reset()

func (*Service) String

func (x *Service) String() string

type TunnelProtocol

type TunnelProtocol int32

TunnelProtocol indicates the tunneling protocol for requests.

const (
	// NONE means requests should be forwarded as-is, without tunneling.
	TunnelProtocol_NONE TunnelProtocol = 0
	// HBONE means requests should be tunneled over HTTP.
	// This does not dictate HTTP/1.1 vs HTTP/2; ALPN should be used for that purpose.
	TunnelProtocol_HBONE TunnelProtocol = 1 // Future options may include things like QUIC/HTTP3, etc.
)

func (TunnelProtocol) Descriptor

func (TunnelProtocol) Enum

func (x TunnelProtocol) Enum() *TunnelProtocol

func (TunnelProtocol) EnumDescriptor deprecated

func (TunnelProtocol) EnumDescriptor() ([]byte, []int)

Deprecated: Use TunnelProtocol.Descriptor instead.

func (TunnelProtocol) Number

func (TunnelProtocol) String

func (x TunnelProtocol) String() string

func (TunnelProtocol) Type

type Workload

type Workload struct {

	// UID represents a globally unique opaque identifier for this workload.
	// For k8s resources, it is recommended to use the more readable format:
	//
	// cluster/group/kind/namespace/name/section-name
	//
	// As an example, a ServiceEntry with two WorkloadEntries inlined could become
	// two Workloads with the following UIDs:
	// - cluster1/networking.istio.io/v1alpha3/ServiceEntry/default/external-svc/endpoint1
	// - cluster1/networking.istio.io/v1alpha3/ServiceEntry/default/external-svc/endpoint2
	//
	// For VMs and other workloads other formats are also supported; for example,
	// a single UID string: "0ae5c03d-5fb3-4eb9-9de8-2bd4b51606ba"
	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.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Namespace represents the namespace for the workload.
	// This is just for debugging and may be elided as an optimization.
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Address represents the IPv4/IPv6 address for the workload.
	// This should be globally unique.
	// This should not have a port number.
	// Each workload must have at least either an address or hostname; not both.
	Addresses [][]byte `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty"`
	// The hostname for the workload to be resolved by the ztunnel.
	// DNS queries are sent on-demand by default.
	// If the resolved DNS query has several endpoints, the request will be forwarded
	// to the first response.
	//
	// At a minimum, each workload must have either an address or hostname. For example,
	// a workload that backs a Kubernetes service will typically have only endpoints. A
	// workload that backs a headless Kubernetes service, however, will have both
	// addresses as well as a hostname used for direct access to the headless endpoint.
	// TODO: support this field
	Hostname string `protobuf:"bytes,21,opt,name=hostname,proto3" json:"hostname,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"`
	// Protocol that should be used to connect to this workload.
	TunnelProtocol TunnelProtocol `` /* 139-byte string literal not displayed */
	// The SPIFFE identity of the workload. The identity is joined to form spiffe://<trust_domain>/ns/<namespace>/sa/<service_account>.
	// TrustDomain of the workload. May be elided if this is the mesh wide default (typically cluster.local)
	TrustDomain string `protobuf:"bytes,6,opt,name=trust_domain,json=trustDomain,proto3" json:"trust_domain,omitempty"`
	// ServiceAccount of the workload. May be elided if this is "default"
	ServiceAccount string `protobuf:"bytes,7,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
	// If present, the waypoint proxy for this workload.
	// All incoming requests must go through the waypoint.
	Waypoint *GatewayAddress `protobuf:"bytes,8,opt,name=waypoint,proto3" json:"waypoint,omitempty"`
	// If present, East West network gateway this workload can be reached through.
	// Requests from remote networks should traverse this gateway.
	NetworkGateway *GatewayAddress `protobuf:"bytes,19,opt,name=network_gateway,json=networkGateway,proto3" json:"network_gateway,omitempty"`
	// Name of the node the workload runs on
	Node string `protobuf:"bytes,9,opt,name=node,proto3" json:"node,omitempty"`
	// CanonicalName for the workload. Used for telemetry.
	CanonicalName string `protobuf:"bytes,10,opt,name=canonical_name,json=canonicalName,proto3" json:"canonical_name,omitempty"`
	// CanonicalRevision for the workload. Used for telemetry.
	CanonicalRevision string `protobuf:"bytes,11,opt,name=canonical_revision,json=canonicalRevision,proto3" json:"canonical_revision,omitempty"`
	// WorkloadType represents the type of the workload. Used for telemetry.
	WorkloadType WorkloadType `` /* 132-byte string literal not displayed */
	// WorkloadName represents the name for the workload (of type WorkloadType). Used for telemetry.
	WorkloadName string `protobuf:"bytes,13,opt,name=workload_name,json=workloadName,proto3" json:"workload_name,omitempty"`
	// If set, this indicates a workload expects to directly receive tunnel traffic.
	// In ztunnel, this means:
	// * Requests *from* this workload do not need to be tunneled if they already are tunneled by the tunnel_protocol.
	// * Requests *to* this workload, via the tunnel_protocol, do not need to be de-tunneled.
	NativeTunnel bool `protobuf:"varint,14,opt,name=native_tunnel,json=nativeTunnel,proto3" json:"native_tunnel,omitempty"`
	// If an application, such as a sandwiched waypoint proxy, supports directly
	// receiving information from zTunnel they can set application_protocol.
	ApplicationTunnel *ApplicationTunnel `protobuf:"bytes,23,opt,name=application_tunnel,json=applicationTunnel,proto3" json:"application_tunnel,omitempty"`
	// The services for which this workload is an endpoint.
	// The key is the NamespacedHostname string of the format namespace/hostname.
	Services map[string]*PortList `` /* 158-byte string literal not displayed */
	// A list of authorization policies applicable to this workload.
	// NOTE: this *only* includes Selector based policies. Namespace and global polices
	// are returned out of band.
	// Authorization policies are only valid for workloads with `addresses` rather than `hostname`.
	AuthorizationPolicies []string       `protobuf:"bytes,16,rep,name=authorization_policies,json=authorizationPolicies,proto3" json:"authorization_policies,omitempty"`
	Status                WorkloadStatus `protobuf:"varint,17,opt,name=status,proto3,enum=istio.workload.WorkloadStatus" json:"status,omitempty"`
	// The cluster ID that the workload instance belongs to
	ClusterId string `protobuf:"bytes,18,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// The Locality defines information about where a workload is geographically deployed
	Locality *Locality `protobuf:"bytes,24,opt,name=locality,proto3" json:"locality,omitempty"`
	// contains filtered or unexported fields
}

Workload represents a workload - an endpoint (or collection behind a hostname). The xds primary key is "uid" as defined on the workload below. Secondary (alias) keys are the unique `network/IP` pairs that the workload can be reached at.

func (*Workload) Descriptor deprecated

func (*Workload) Descriptor() ([]byte, []int)

Deprecated: Use Workload.ProtoReflect.Descriptor instead.

func (*Workload) GetAddresses

func (x *Workload) GetAddresses() [][]byte

func (*Workload) GetApplicationTunnel

func (x *Workload) GetApplicationTunnel() *ApplicationTunnel

func (*Workload) GetAuthorizationPolicies

func (x *Workload) GetAuthorizationPolicies() []string

func (*Workload) GetCanonicalName

func (x *Workload) GetCanonicalName() string

func (*Workload) GetCanonicalRevision

func (x *Workload) GetCanonicalRevision() string

func (*Workload) GetClusterId

func (x *Workload) GetClusterId() string

func (*Workload) GetHostname

func (x *Workload) GetHostname() string

func (*Workload) GetLocality

func (x *Workload) GetLocality() *Locality

func (*Workload) GetName

func (x *Workload) GetName() string

func (*Workload) GetNamespace

func (x *Workload) GetNamespace() string

func (*Workload) GetNativeTunnel

func (x *Workload) GetNativeTunnel() bool

func (*Workload) GetNetwork

func (x *Workload) GetNetwork() string

func (*Workload) GetNetworkGateway

func (x *Workload) GetNetworkGateway() *GatewayAddress

func (*Workload) GetNode

func (x *Workload) GetNode() string

func (*Workload) GetServiceAccount

func (x *Workload) GetServiceAccount() string

func (*Workload) GetServices

func (x *Workload) GetServices() map[string]*PortList

func (*Workload) GetStatus

func (x *Workload) GetStatus() WorkloadStatus

func (*Workload) GetTrustDomain

func (x *Workload) GetTrustDomain() string

func (*Workload) GetTunnelProtocol

func (x *Workload) GetTunnelProtocol() TunnelProtocol

func (*Workload) GetUid

func (x *Workload) GetUid() string

func (*Workload) GetWaypoint

func (x *Workload) GetWaypoint() *GatewayAddress

func (*Workload) GetWorkloadName

func (x *Workload) GetWorkloadName() string

func (*Workload) GetWorkloadType

func (x *Workload) GetWorkloadType() WorkloadType

func (*Workload) ProtoMessage

func (*Workload) ProtoMessage()

func (*Workload) ProtoReflect

func (x *Workload) ProtoReflect() protoreflect.Message

func (*Workload) Reset

func (x *Workload) Reset()

func (*Workload) String

func (x *Workload) String() string

type WorkloadStatus

type WorkloadStatus int32
const (
	// Workload is healthy and ready to serve traffic.
	WorkloadStatus_HEALTHY WorkloadStatus = 0
	// Workload is unhealthy and NOT ready to serve traffic.
	WorkloadStatus_UNHEALTHY WorkloadStatus = 1
)

func (WorkloadStatus) Descriptor

func (WorkloadStatus) Enum

func (x WorkloadStatus) Enum() *WorkloadStatus

func (WorkloadStatus) EnumDescriptor deprecated

func (WorkloadStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use WorkloadStatus.Descriptor instead.

func (WorkloadStatus) Number

func (WorkloadStatus) String

func (x WorkloadStatus) String() string

func (WorkloadStatus) Type

type WorkloadType

type WorkloadType int32
const (
	WorkloadType_DEPLOYMENT WorkloadType = 0
	WorkloadType_CRONJOB    WorkloadType = 1
	WorkloadType_POD        WorkloadType = 2
	WorkloadType_JOB        WorkloadType = 3
)

func (WorkloadType) Descriptor

func (WorkloadType) Enum

func (x WorkloadType) Enum() *WorkloadType

func (WorkloadType) EnumDescriptor deprecated

func (WorkloadType) EnumDescriptor() ([]byte, []int)

Deprecated: Use WorkloadType.Descriptor instead.

func (WorkloadType) Number

func (WorkloadType) String

func (x WorkloadType) String() string

func (WorkloadType) Type

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL