kube

package
v1.8.1 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2024 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IndexPodByContainerIDs = "idx_pod_by_container"
	IndexReplicaSetNames   = "idx_rs"
	IndexIP                = "idx_ip"
)
View Source
const (
	InformerService = maps.Bits(1 << iota)
	InformerReplicaSet
	InformerNode
)
View Source
const (
	OwnerReplicaSet  = OwnerLabel(attr.K8sReplicaSetName)
	OwnerDeployment  = OwnerLabel(attr.K8sDeploymentName)
	OwnerStatefulSet = OwnerLabel(attr.K8sStatefulSetName)
	OwnerDaemonSet   = OwnerLabel(attr.K8sDaemonSetName)
	OwnerUnknown     = OwnerLabel(attr.K8sUnknownOwnerName)
)

Variables

This section is empty.

Functions

func LoadConfig

func LoadConfig(kubeConfigPath string) (*rest.Config, error)

Types

type ContainerEventHandler

type ContainerEventHandler interface {
	OnDeletion(containerID []string)
}

ContainerEventHandler listens for the deletion of containers, as triggered by a Pod deletion.

type IPInfo added in v1.7.0

type IPInfo struct {
	Kind     string
	Owner    Owner
	HostName string
	HostIP   string
	IPs      []string
}

IPInfo contains precollected metadata for Pods, Nodes and Services. Not all the fields are populated for all the above types. To save memory, we just keep in memory the necessary data for each Type. For more information about which fields are set for each type, please refer to the instantiation function of the respective informers.

type Metadata

type Metadata struct {
	// contains filtered or unexported fields
}

Metadata stores an in-memory copy of the different Kubernetes objects whose metadata is relevant to us.

func (*Metadata) AddContainerEventHandler

func (k *Metadata) AddContainerEventHandler(eh ContainerEventHandler)

func (*Metadata) AddNodeEventHandler added in v1.8.0

func (k *Metadata) AddNodeEventHandler(h cache.ResourceEventHandler) error

func (*Metadata) AddPodEventHandler

func (k *Metadata) AddPodEventHandler(h cache.ResourceEventHandler) error

func (*Metadata) AddReplicaSetEventHandler

func (k *Metadata) AddReplicaSetEventHandler(h cache.ResourceEventHandler) error

func (*Metadata) AddServiceIPEventHandler added in v1.7.0

func (k *Metadata) AddServiceIPEventHandler(s cache.ResourceEventHandler) error

func (*Metadata) FetchPodOwnerInfo

func (k *Metadata) FetchPodOwnerInfo(pod *PodInfo)

FetchPodOwnerInfo updates the pod owner with the Deployment information, if it exists. Pod Info might include a ReplicaSet as owner, and ReplicaSet info usually has a Deployment as owner reference, which is the one that we'd really like to report as owner.

func (*Metadata) GetContainerPod

func (k *Metadata) GetContainerPod(containerID string) (*PodInfo, bool)

GetContainerPod fetches metadata from a Pod given the name of one of its containers

func (*Metadata) GetInfo added in v1.7.0

func (k *Metadata) GetInfo(ip string) (*IPInfo, *metav1.ObjectMeta, bool)

func (*Metadata) GetReplicaSetInfo

func (k *Metadata) GetReplicaSetInfo(namespace, name string) (*ReplicaSetInfo, bool)

GetReplicaSetInfo fetches metadata from a ReplicaSet given its name

func (*Metadata) InitFromClient

func (k *Metadata) InitFromClient(ctx context.Context, client kubernetes.Interface, timeout time.Duration) error

type MetadataProvider added in v1.7.0

type MetadataProvider struct {
	// contains filtered or unexported fields
}

func NewMetadataProvider added in v1.7.0

func NewMetadataProvider(
	enable kubeflags.EnableFlag,
	disabledInformers []string,
	kubeConfigPath string,
	syncTimeout time.Duration,
) *MetadataProvider

func (*MetadataProvider) ForceDisable added in v1.7.0

func (mp *MetadataProvider) ForceDisable()

func (*MetadataProvider) Get added in v1.7.0

func (mp *MetadataProvider) Get(ctx context.Context) (*Metadata, error)

func (*MetadataProvider) IsKubeEnabled added in v1.7.0

func (mp *MetadataProvider) IsKubeEnabled() bool

func (*MetadataProvider) KubeClient added in v1.7.0

func (mp *MetadataProvider) KubeClient() (kubernetes.Interface, error)

type NodeInfo added in v1.7.0

type NodeInfo struct {
	metav1.ObjectMeta
	IPInfo IPInfo
}

NodeInfo contains precollected metadata for nodes

type Owner added in v1.2.1

type Owner struct {
	Kind      string
	LabelName OwnerLabel
	Name      string
	// Owner of the owner. For example, a ReplicaSet might be owned by a Deployment
	Owner *Owner
}

func OwnerFrom added in v1.6.0

func OwnerFrom(orefs []metav1.OwnerReference) *Owner

OwnerFrom returns the most plausible Owner reference. It might be null if the entity does not have any owner

func (*Owner) String added in v1.2.1

func (o *Owner) String() string

type OwnerLabel added in v1.6.0

type OwnerLabel attr.Name

type PodInfo

type PodInfo struct {
	// Informers need that internal object is an ObjectMeta instance
	metav1.ObjectMeta
	NodeName string

	Owner *Owner

	// StartTimeStr caches value of ObjectMeta.StartTimestamp.String()
	StartTimeStr string
	ContainerIDs []string
	IPInfo       IPInfo
}

PodInfo contains precollected metadata for Pods.

func (*PodInfo) ServiceName added in v1.5.0

func (i *PodInfo) ServiceName() string

type ReplicaSetInfo

type ReplicaSetInfo struct {
	metav1.ObjectMeta
	Owner *Owner
}

ReplicaSetInfo contains precollected metadata for ReplicaSets

type ServiceInfo added in v1.7.0

type ServiceInfo struct {
	metav1.ObjectMeta
	IPInfo IPInfo
}

ServiceInfo contains precollected metadata for services.

Directories

Path Synopsis
This implementation is a derivation of the code in https://github.com/netobserv/netobserv-ebpf-agent/tree/release-1.4
This implementation is a derivation of the code in https://github.com/netobserv/netobserv-ebpf-agent/tree/release-1.4

Jump to

Keyboard shortcuts

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