util

package
v0.13.1 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2024 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CountPodsByPhase

func CountPodsByPhase(pods []*v1.Pod) map[string]uint32

func CreateIngress

func CreateIngress(
	name string,
	job *api.Job,
	pod *v1.Pod,
	service *v1.Service,
	executorIngressConfig *configuration.IngressConfiguration,
	jobConfig *IngressServiceConfig,
) *networking.Ingress

func CreateOwnerReference

func CreateOwnerReference(pod *v1.Pod) metav1.OwnerReference

func CreatePod

func CreatePod(job *api.Job, defaults *configuration.PodDefaults) *v1.Pod

func CreatePodFromExecutorApiJob added in v0.3.47

func CreatePodFromExecutorApiJob(job *executorapi.JobRunLease, defaults *configuration.PodDefaults) (*v1.Pod, error)

func CreateService

func CreateService(
	job *api.Job,
	pod *v1.Pod,
	ports []v1.ServicePort,
	ingSvcType IngressServiceType,
	useClusterIP bool,
) *v1.Service

func ExtractFailedPodContainerStatuses

func ExtractFailedPodContainerStatuses(pod *v1.Pod, clusterId string) []*armadaevents.ContainerError

func ExtractIngresses added in v0.3.47

func ExtractIngresses(job *executorapi.JobRunLease, pod *v1.Pod, executorIngressConfig *configuration.IngressConfiguration) []*networking.Ingress

func ExtractJobId

func ExtractJobId(pod *v1.Pod) string

func ExtractJobIds

func ExtractJobIds(pods []*v1.Pod) []string

func ExtractJobRunId added in v0.3.47

func ExtractJobRunId(pod *v1.Pod) string

func ExtractJobRunIds added in v0.3.47

func ExtractJobRunIds(pods []*v1.Pod) []string

func ExtractJobSet added in v0.3.50

func ExtractJobSet(pod *v1.Pod) string

func ExtractNames

func ExtractNames(pods []*v1.Pod) []string

func ExtractNodeNames

func ExtractNodeNames(nodes []*v1.Node) []string

func ExtractPodExitCodes

func ExtractPodExitCodes(pod *v1.Pod) map[string]int32

func ExtractPodFailedReason

func ExtractPodFailedReason(pod *v1.Pod) string

func ExtractPodFailureCause added in v0.4.36

func ExtractPodFailureCause(pod *v1.Pod) armadaevents.KubernetesReason

func ExtractPodKey

func ExtractPodKey(pod *v1.Pod) string

func ExtractPodNumber

func ExtractPodNumber(pod *v1.Pod) int

func ExtractQueue added in v0.3.50

func ExtractQueue(pod *v1.Pod) string

func ExtractServices added in v0.3.47

func ExtractServices(job *executorapi.JobRunLease, pod *v1.Pod) []*v1.Service

func FilterCompletedPods

func FilterCompletedPods(pods []*v1.Pod) []*v1.Pod

func FilterNodes

func FilterNodes(nodes []*v1.Node, filter func(node *v1.Node) bool) []*v1.Node

func FilterNonCompletedPods

func FilterNonCompletedPods(pods []*v1.Pod) []*v1.Pod

func FilterPods

func FilterPods(pods []*v1.Pod, filter func(*v1.Pod) bool) []*v1.Pod

func FilterPodsWithPhase

func FilterPodsWithPhase(pods []*v1.Pod, podPhase v1.PodPhase) []*v1.Pod

func FindLastContainerStartTime

func FindLastContainerStartTime(pod *v1.Pod) time.Time

func GenerateIngresses

func GenerateIngresses(job *api.Job, pod *v1.Pod, ingressConfig *configuration.IngressConfiguration) ([]*v1.Service, []*networking.Ingress)

func GetDeletionGracePeriodOrDefault

func GetDeletionGracePeriodOrDefault(pod *v1.Pod) time.Duration

GetDeletionGracePeriodOrDefault returns the pod's DeletionGracePeriodSeconds seconds (if populated) or the K8s default value of 30 seconds (if it isn't)

func GetExpectedNumberOfAssociatedIngresses

func GetExpectedNumberOfAssociatedIngresses(pod *v1.Pod) int

func GetExpectedNumberOfAssociatedServices

func GetExpectedNumberOfAssociatedServices(pod *v1.Pod) int

func GetManagedPodSelector

func GetManagedPodSelector() labels.Selector

func GetPodContainerStatuses

func GetPodContainerStatuses(pod *v1.Pod) []v1.ContainerStatus

func GetPodsOnNodes

func GetPodsOnNodes(pods []*v1.Pod, nodes []*v1.Node) []*v1.Pod

func GetServicePorts

func GetServicePorts(svcConfigs []*IngressServiceConfig, podSpec *v1.PodSpec) []v1.ServicePort

func GroupByQueue

func GroupByQueue(pods []*v1.Pod) map[string][]*v1.Pod

GroupByQueue Any pod without a queue label set is excluded from the output

func HasCurrentStateBeenReported

func HasCurrentStateBeenReported(pod *v1.Pod) bool

func HasIngress

func HasIngress(pod *v1.Pod) bool

func HasPodBeenInStateForLongerThanGivenDuration

func HasPodBeenInStateForLongerThanGivenDuration(pod *v1.Pod, duration time.Duration) bool

func IsInTerminalState

func IsInTerminalState(pod *v1.Pod) bool

func IsManagedPod

func IsManagedPod(pod *v1.Pod) bool

func IsMarkedForDeletion

func IsMarkedForDeletion(pod *v1.Pod) bool

func IsPodFinishedAndReported

func IsPodFinishedAndReported(pod *v1.Pod) bool

func IsReady

func IsReady(node *v1.Node) bool

func IsReportedDone

func IsReportedDone(pod *v1.Pod) bool

func IsReportedPreempted added in v0.3.57

func IsReportedPreempted(pod *v1.Pod) bool

func IsReportingPhaseRequired

func IsReportingPhaseRequired(podPhase v1.PodPhase) bool

func LastStatusChange

func LastStatusChange(pod *v1.Pod) (time.Time, error)

func MergeNodeList

func MergeNodeList(list1 []*v1.Node, list2 []*v1.Node) []*v1.Node

func MergePodList

func MergePodList(list1 []*v1.Pod, list2 []*v1.Pod) []*v1.Pod

func NewTimeExpiringPodCache

func NewTimeExpiringPodCache(expiry time.Duration, cleanUpInterval time.Duration, metricName string) *mapPodCache

func ProcessItemsWithThreadPool added in v0.3.49

func ProcessItemsWithThreadPool[K any](ctx *armadacontext.Context, maxThreadCount int, itemsToProcess []K, processFunc func(K))

func RemoveDuplicates

func RemoveDuplicates(pods []*v1.Pod) []*v1.Pod

func RemoveNodesFromList

func RemoveNodesFromList(list1 []*v1.Node, list2 []*v1.Node) []*v1.Node

func RemovePodsFromList

func RemovePodsFromList(list1 []*v1.Pod, list2 []*v1.Pod) []*v1.Pod

Types

type IngressServiceConfig

type IngressServiceConfig struct {
	Type         IngressServiceType
	Ports        []uint32
	Annotations  map[string]string
	TlsEnabled   bool
	CertName     string
	UseClusterIp bool
}

func CombineIngressService

func CombineIngressService(ingresses []*api.IngressConfig, services []*api.ServiceConfig) []*IngressServiceConfig

type IngressServiceType

type IngressServiceType int
const (
	Ingress IngressServiceType = iota
	NodePort
	Headless
)

func (IngressServiceType) String

func (st IngressServiceType) String() string

type PodCache

type PodCache interface {
	Add(pod *v1.Pod)
	AddIfNotExists(pod *v1.Pod) bool
	Update(key string, pod *v1.Pod) bool
	Delete(podId string)
	Get(podId string) *v1.Pod
	GetAll() []*v1.Pod
}

type PodStartupStatus

type PodStartupStatus int

Jump to

Keyboard shortcuts

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