id

package
v1.16.0-pre.3 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2024 License: Apache-2.0 Imports: 5 Imported by: 38

Documentation

Index

Constants

View Source
const MaxEndpointID = math.MaxUint16

MaxEndpointID is the maximum endpoint identifier.

Variables

This section is empty.

Functions

func NewCNIAttachmentID

func NewCNIAttachmentID(containerID, containerIfName string) string

NewCNIAttachmentID returns an identifier based on the CNI attachment ID. If the containerIfName is empty, only the containerID will be used.

func NewCiliumID

func NewCiliumID(id int64) string

NewCiliumID returns a new endpoint identifier of type CiliumLocalIdPrefix

func NewID

func NewID(prefix PrefixType, id string) string

NewID returns a new endpoint identifier

func NewIPPrefixID

func NewIPPrefixID(ip netip.Addr) string

NewIPPrefixID returns an identifier based on the IP address specified. If ip is invalid, an empty string is returned.

func ParseCiliumID

func ParseCiliumID(id string) (int64, error)

ParseCiliumID parses id as cilium endpoint id and returns numeric portion.

Types

type Identifiers

type Identifiers map[PrefixType]string

Identifiers is a collection of attributes that identify the Endpoint through different systems. For examples of the type of Identifiers, see PrefixType.

type PrefixType

type PrefixType string

PrefixType describes the type of endpoint identifier

const (
	// CiliumLocalIdPrefix is a numeric identifier with local scope. It has
	// no cluster wide meaning and is only unique in the scope of a single
	// agent. An endpoint is guaranteed to always have a local scope identifier.
	CiliumLocalIdPrefix PrefixType = "cilium-local"

	// CiliumGlobalIdPrefix is an endpoint identifier with global scope.
	// This addressing mechanism is currently unused.
	CiliumGlobalIdPrefix PrefixType = "cilium-global"

	// ContainerIdPrefix is used to address an endpoint via its primary
	// container ID. The container ID is specific to the container runtime
	// in use. Only the primary container that defines the networking scope
	// can be used to address an endpoint.
	// This can only be used to look up endpoints which have not opted-out of
	// legacy identifiers.
	// Deprecated. Use CNIAttachmentIdPrefix instead
	ContainerIdPrefix PrefixType = "container-id"

	// CNIAttachmentIdPrefix is used to address an endpoint via its primary
	// container ID and container interface passed to the CNI plugin.
	// This attachment ID uniquely identifies a CNI ADD and CNI DEL invocation pair.
	CNIAttachmentIdPrefix PrefixType = "cni-attachment-id"

	// DockerEndpointPrefix is used to address an endpoint via the Docker
	// endpoint ID. This method is only possible if the endpoint was
	// created via the cilium-docker plugin and the container is backed by
	// the libnetwork abstraction.
	DockerEndpointPrefix PrefixType = "docker-endpoint"

	// ContainerNamePrefix is used to address the endpoint via the
	// container's name. This addressing mechanism depends on the container
	// runtime. Only the primary container that the networking scope can be
	// used to address an endpoint.
	// This can only be used to look up endpoints which have not opted-out of
	// legacy identifiers.
	// Deprecated. Use CNIAttachmentIdPrefix instead
	ContainerNamePrefix PrefixType = "container-name"

	// CEPNamePrefix is used to address an endpoint via its Kubernetes
	// CiliumEndpoint resource name. This addressing only works if the endpoint
	// is represented as a Kubernetes CiliumEndpoint resource.
	CEPNamePrefix PrefixType = "cep-name"

	// PodNamePrefix is used to address an endpoint via the Kubernetes pod
	// name. This addressing only works if the endpoint represents as
	// Kubernetes pod.
	// This can only be used to look up endpoints which have not opted-out of
	// legacy identifiers.
	// Deprecated. May not be unique. Use CEPNamePrefix instead.
	PodNamePrefix PrefixType = "pod-name"

	// IPv4Prefix is used to address an endpoint via the endpoint's IPv4
	// address.
	IPv4Prefix PrefixType = "ipv4"

	// IPv6Prefix is the prefix used to refer to an endpoint via IPv6 address
	IPv6Prefix PrefixType = "ipv6"
)

func Parse

func Parse(id string) (PrefixType, string, error)

Parse parses a string as an endpoint identified consists of an optional prefix [prefix:] followed by the identifier.

func (PrefixType) String

func (s PrefixType) String() string

Jump to

Keyboard shortcuts

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