object

package
v0.0.0-...-5fb8a3f Latest Latest
Warning

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

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

Documentation

Overview

Package object holds functions that convert the objects from the k8s API in to a more memory efficient structures.

Adding new fields to any of the structures defined in pod.go, endpoint.go and service.go should not be done lightly as this increases the memory use and will leads to OOMs in the k8s scale test.

Index

Constants

View Source
const ExternalNameInvalid = "."

Variables

This section is empty.

Functions

func EndpointSliceToEndpoints

func EndpointSliceToEndpoints(obj meta.Object) (meta.Object, error)

EndpointSliceToEndpoints converts a *discovery.EndpointSlice to a *Endpoints.

func EndpointsKey

func EndpointsKey(name, namespace string) string

EndpointsKey returns a string using for the index.

func EndpointsModified

func EndpointsModified(a, b *Endpoints) bool

EndpointsModified checks if the update to an endpoint is something that matters to us or if they are effectively equivalent.

func KeyFunc

func KeyFunc(obj interface{}) (string, error)

KeyFunc works like cache.DeletionHandlingMetaNamespaceKeyFunc but uses format "<name>.<namespace>" instead of "<namespace>/<name>". This makes lookup for a service slightly more efficient, because we can just use a slice of the query name instead of constructing a new string.

func NewIndexerInformer

func NewIndexerInformer(lw cache.ListerWatcher, objType runtime.Object, h cache.ResourceEventHandler, indexers cache.Indexers, builder ProcessorBuilder) (cache.Indexer, cache.Controller)

NewIndexerInformer is a copy of the cache.NewIndexerInformer function, but allows custom process function.

func ServiceModified

func ServiceModified(oldSvc, newSvc *Service) bool

ServiceModified checks if the update to a service is something that matters to us or if they are effectively equivalent.

func ToNamespace

func ToNamespace(obj meta.Object) (meta.Object, error)

ToNamespace returns a function that converts an api.Namespace to a *Namespace.

func ToService

func ToService(obj meta.Object) (meta.Object, error)

ToService converts an api.Service to a *Service.

Types

type Empty

type Empty struct{}

Empty is an empty struct.

func (*Empty) GetAnnotations

func (e *Empty) GetAnnotations() map[string]string

GetAnnotations implements the metav1.Object interface.

func (*Empty) GetCreationTimestamp

func (e *Empty) GetCreationTimestamp() v1.Time

GetCreationTimestamp implements the metav1.Object interface.

func (*Empty) GetDeletionGracePeriodSeconds

func (e *Empty) GetDeletionGracePeriodSeconds() *int64

GetDeletionGracePeriodSeconds implements the metav1.Object interface.

func (*Empty) GetDeletionTimestamp

func (e *Empty) GetDeletionTimestamp() *v1.Time

GetDeletionTimestamp implements the metav1.Object interface.

func (*Empty) GetFinalizers

func (e *Empty) GetFinalizers() []string

GetFinalizers implements the metav1.Object interface.

func (*Empty) GetGenerateName

func (e *Empty) GetGenerateName() string

GetGenerateName implements the metav1.Object interface.

func (*Empty) GetGeneration

func (e *Empty) GetGeneration() int64

GetGeneration implements the metav1.Object interface.

func (*Empty) GetLabels

func (e *Empty) GetLabels() map[string]string

GetLabels implements the metav1.Object interface.

func (*Empty) GetManagedFields

func (e *Empty) GetManagedFields() []v1.ManagedFieldsEntry

GetManagedFields implements the metav1.Object interface.

func (*Empty) GetObjectKind

func (e *Empty) GetObjectKind() schema.ObjectKind

GetObjectKind implements the ObjectKind interface as a noop.

func (*Empty) GetOwnerReferences

func (e *Empty) GetOwnerReferences() []v1.OwnerReference

GetOwnerReferences implements the metav1.Object interface.

func (e *Empty) GetSelfLink() string

GetSelfLink implements the metav1.Object interface.

func (*Empty) GetUID

func (e *Empty) GetUID() types.UID

GetUID implements the metav1.Object interface.

func (*Empty) GetZZZ_DeprecatedClusterName

func (e *Empty) GetZZZ_DeprecatedClusterName() string

GetZZZ_DeprecatedClusterName implements the metav1.Object interface.

func (*Empty) SetAnnotations

func (e *Empty) SetAnnotations(annotations map[string]string)

SetAnnotations implements the metav1.Object interface.

func (*Empty) SetCreationTimestamp

func (e *Empty) SetCreationTimestamp(timestamp v1.Time)

SetCreationTimestamp implements the metav1.Object interface.

func (*Empty) SetDeletionGracePeriodSeconds

func (e *Empty) SetDeletionGracePeriodSeconds(*int64)

SetDeletionGracePeriodSeconds implements the metav1.Object interface.

func (*Empty) SetDeletionTimestamp

func (e *Empty) SetDeletionTimestamp(timestamp *v1.Time)

SetDeletionTimestamp implements the metav1.Object interface.

func (*Empty) SetFinalizers

func (e *Empty) SetFinalizers(finalizers []string)

SetFinalizers implements the metav1.Object interface.

func (*Empty) SetGenerateName

func (e *Empty) SetGenerateName(name string)

SetGenerateName implements the metav1.Object interface.

func (*Empty) SetGeneration

func (e *Empty) SetGeneration(generation int64)

SetGeneration implements the metav1.Object interface.

func (*Empty) SetLabels

func (e *Empty) SetLabels(labels map[string]string)

SetLabels implements the metav1.Object interface.

func (*Empty) SetManagedFields

func (e *Empty) SetManagedFields(managedFields []v1.ManagedFieldsEntry)

SetManagedFields implements the metav1.Object interface.

func (*Empty) SetOwnerReferences

func (e *Empty) SetOwnerReferences([]v1.OwnerReference)

SetOwnerReferences implements the metav1.Object interface.

func (e *Empty) SetSelfLink(selfLink string)

SetSelfLink implements the metav1.Object interface.

func (*Empty) SetUID

func (e *Empty) SetUID(uid types.UID)

SetUID implements the metav1.Object interface.

func (*Empty) SetZZZ_DeprecatedClusterName

func (e *Empty) SetZZZ_DeprecatedClusterName(clusterName string)

SetZZZ_DeprecatedClusterName implements the metav1.Object interface.

type EndpointAddress

type EndpointAddress struct {
	// IP contains the IP address in binary format.
	IP       string
	Hostname string
}

EndpointAddress is a tuple that describes single IP address.

type Endpoints

type Endpoints struct {
	Version               string
	Name                  string
	Namespace             string
	LastChangeTriggerTime time.Time
	Index                 string
	Addresses             []EndpointAddress
	Ports                 []Port

	*Empty
}

Endpoints is a stripped down discovery.EndpointSlice with only the items we need.

func (*Endpoints) DeepCopyObject

func (e *Endpoints) DeepCopyObject() runtime.Object

DeepCopyObject implements the ObjectKind interface.

func (*Endpoints) GetName

func (e *Endpoints) GetName() string

GetName implements the metav1.Object interface.

func (*Endpoints) GetNamespace

func (e *Endpoints) GetNamespace() string

GetNamespace implements the metav1.Object interface.

func (*Endpoints) GetResourceVersion

func (e *Endpoints) GetResourceVersion() string

GetResourceVersion implements the metav1.Object interface.

func (*Endpoints) SetName

func (e *Endpoints) SetName(name string)

SetName implements the metav1.Object interface.

func (*Endpoints) SetNamespace

func (e *Endpoints) SetNamespace(namespace string)

SetNamespace implements the metav1.Object interface.

func (*Endpoints) SetResourceVersion

func (e *Endpoints) SetResourceVersion(version string)

SetResourceVersion implements the metav1.Object interface.

type Namespace

type Namespace struct {
	Version string
	Name    string

	*Empty
}

Namespace is a stripped down api.Namespace with only the items we need.

func (*Namespace) DeepCopyObject

func (n *Namespace) DeepCopyObject() runtime.Object

DeepCopyObject implements the ObjectKind interface.

func (*Namespace) GetName

func (n *Namespace) GetName() string

GetName implements the metav1.Object interface.

func (*Namespace) GetNamespace

func (n *Namespace) GetNamespace() string

GetNamespace implements the metav1.Object interface.

func (*Namespace) GetResourceVersion

func (n *Namespace) GetResourceVersion() string

GetResourceVersion implements the metav1.Object interface.

func (*Namespace) SetName

func (n *Namespace) SetName(name string)

SetName implements the metav1.Object interface.

func (*Namespace) SetNamespace

func (n *Namespace) SetNamespace(namespace string)

SetNamespace implements the metav1.Object interface.

func (*Namespace) SetResourceVersion

func (n *Namespace) SetResourceVersion(version string)

SetResourceVersion implements the metav1.Object interface.

type Port

type Port struct {
	Port     uint16
	Name     string
	Protocol string
}

Port is a tuple that describes a single port.

type ProcessorBuilder

type ProcessorBuilder func(cache.Indexer, cache.ResourceEventHandler) cache.ProcessFunc

ProcessorBuilder returns function to process cache events.

func DefaultProcessor

func DefaultProcessor(convert ToFunc) ProcessorBuilder

DefaultProcessor is based on the Process function from cache.NewIndexerInformer except it does a conversion.

type Service

type Service struct {
	Version   string
	Name      string
	Namespace string
	// ClusterIPs contains IP addresses in binary format.
	ClusterIPs   []string
	ExternalName string
	Ports        []Port
	Headless     bool

	*Empty
}

Service is a stripped down api.Service with only the items we need.

func (*Service) DeepCopyObject

func (s *Service) DeepCopyObject() runtime.Object

DeepCopyObject implements the ObjectKind interface.

func (*Service) GetName

func (s *Service) GetName() string

GetName implements the metav1.Object interface.

func (*Service) GetNamespace

func (s *Service) GetNamespace() string

GetNamespace implements the metav1.Object interface.

func (*Service) GetResourceVersion

func (s *Service) GetResourceVersion() string

GetResourceVersion implements the metav1.Object interface.

func (*Service) SetName

func (s *Service) SetName(name string)

SetName implements the metav1.Object interface.

func (*Service) SetNamespace

func (s *Service) SetNamespace(namespace string)

SetNamespace implements the metav1.Object interface.

func (*Service) SetResourceVersion

func (s *Service) SetResourceVersion(version string)

SetResourceVersion implements the metav1.Object interface.

type ToFunc

type ToFunc func(v1.Object) (v1.Object, error)

ToFunc converts one v1.Object to another v1.Object.

Jump to

Keyboard shortcuts

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