node

package
v1.25.9 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2023 License: Apache-2.0 Imports: 26 Imported by: 62

Documentation

Index

Constants

View Source
const (
	// PreconfiguredRuntimeClassHandler is the name of the runtime handler
	// that is expected to be preconfigured in the test environment.
	PreconfiguredRuntimeClassHandler = "test-handler"
)

Variables

This section is empty.

Functions

func AddOrUpdateTaintOnNode added in v1.19.0

func AddOrUpdateTaintOnNode(c clientset.Interface, nodeName string, taint v1.Taint)

AddOrUpdateTaintOnNode adds the given taint to the given node or updates taint.

func CheckReady

func CheckReady(c clientset.Interface, size int, timeout time.Duration) ([]v1.Node, error)

CheckReady waits up to timeout for cluster to has desired size and there is no not-ready nodes in it. By cluster size we mean number of schedulable Nodes.

func CheckReadyForTests added in v1.17.0

func CheckReadyForTests(c clientset.Interface, nonblockingTaints string, allowedNotReadyNodes, largeClusterThreshold int) func() (bool, error)

CheckReadyForTests returns a function which will return 'true' once the number of ready nodes is above the allowedNotReadyNodes threshold (i.e. to be used as a global gate for starting the tests).

func CollectAddresses

func CollectAddresses(nodes *v1.NodeList, addressType v1.NodeAddressType) []string

CollectAddresses returns a list of addresses of the given addressType for the given list of nodes

func CreatePodsPerNodeForSimpleApp added in v1.19.0

func CreatePodsPerNodeForSimpleApp(c clientset.Interface, namespace, appName string, podSpec func(n v1.Node) v1.PodSpec, maxCount int) map[string]string

CreatePodsPerNodeForSimpleApp creates pods w/ labels. Useful for tests which make a bunch of pods w/o any networking.

func Filter

func Filter(nodeList *v1.NodeList, fn func(node v1.Node) bool)

Filter filters nodes in NodeList in place, removing nodes that do not satisfy the given condition

func FirstAddress

func FirstAddress(nodelist *v1.NodeList, addrType v1.NodeAddressType) string

FirstAddress returns the first address of the given type of each node.

func FirstAddressByTypeAndFamily added in v1.20.0

func FirstAddressByTypeAndFamily(nodelist *v1.NodeList, addrType v1.NodeAddressType, family v1.IPFamily) string

FirstAddressByTypeAndFamily returns the first address that matches the given type and family of the list of nodes

func GetAddresses

func GetAddresses(node *v1.Node, addressType v1.NodeAddressType) (ips []string)

GetAddresses returns a list of addresses of the given addressType for the given node

func GetAddressesByTypeAndFamily added in v1.20.0

func GetAddressesByTypeAndFamily(node *v1.Node, addressType v1.NodeAddressType, family v1.IPFamily) (ips []string)

GetAddressesByTypeAndFamily returns a list of addresses of the given addressType for the given node and filtered by IPFamily

func GetBoundedReadySchedulableNodes added in v1.17.0

func GetBoundedReadySchedulableNodes(c clientset.Interface, maxNodes int) (nodes *v1.NodeList, err error)

GetBoundedReadySchedulableNodes is like GetReadySchedulableNodes except that it returns at most maxNodes nodes. Use this to keep your test case from blowing up when run on a large cluster.

func GetClusterZones added in v1.19.0

func GetClusterZones(c clientset.Interface) (sets.String, error)

GetClusterZones returns the values of zone label collected from all nodes.

func GetExternalIP

func GetExternalIP(node *v1.Node) (string, error)

GetExternalIP returns node external IP concatenated with port 22 for ssh e.g. 1.2.3.4:22

func GetInternalIP

func GetInternalIP(node *v1.Node) (string, error)

GetInternalIP returns node internal IP

func GetPublicIps

func GetPublicIps(c clientset.Interface) ([]string, error)

GetPublicIps returns a public IP list of nodes.

func GetRandomReadySchedulableNode added in v1.17.0

func GetRandomReadySchedulableNode(c clientset.Interface) (*v1.Node, error)

GetRandomReadySchedulableNode gets a single randomly-selected node which is available for running pods on. If there are no available nodes it will return an error.

func GetReadyNodesIncludingTainted

func GetReadyNodesIncludingTainted(c clientset.Interface) (nodes *v1.NodeList, err error)

GetReadyNodesIncludingTainted returns all ready nodes, even those which are tainted. There are cases when we care about tainted nodes E.g. in tests related to nodes with gpu we care about nodes despite presence of nvidia.com/gpu=present:NoSchedule taint

func GetReadySchedulableNodes added in v1.17.0

func GetReadySchedulableNodes(c clientset.Interface) (nodes *v1.NodeList, err error)

GetReadySchedulableNodes addresses the common use case of getting nodes you can do work on. 1) Needs to be schedulable. 2) Needs to be ready. If EITHER 1 or 2 is not true, most tests will want to ignore the node entirely. If there are no nodes that are both ready and schedulable, this will return an error.

func GetReadySchedulableWorkerNode added in v1.25.0

func GetReadySchedulableWorkerNode(c clientset.Interface) (*v1.Node, error)

GetReadySchedulableWorkerNode gets a single worker node which is available for running pods on. If there are no such available nodes it will return an error.

func GetSchedulableClusterZones added in v1.21.9

func GetSchedulableClusterZones(c clientset.Interface) (sets.String, error)

GetSchedulableClusterZones returns the values of zone label collected from all nodes which are schedulable.

func GetSubnetPrefix added in v1.25.0

func GetSubnetPrefix(c clientset.Interface) ([]string, error)

GetSubnetPrefix gets first 2 number of an IP in the node subnet. [IPv4] It assumes that the subnet mask is /16.

func IsConditionSetAsExpected

func IsConditionSetAsExpected(node *v1.Node, conditionType v1.NodeConditionType, wantTrue bool) bool

IsConditionSetAsExpected returns a wantTrue value if the node has a match to the conditionType, otherwise returns an opposite value of the wantTrue with detailed logging.

func IsConditionSetAsExpectedSilent

func IsConditionSetAsExpectedSilent(node *v1.Node, conditionType v1.NodeConditionType, wantTrue bool) bool

IsConditionSetAsExpectedSilent returns a wantTrue value if the node has a match to the conditionType, otherwise returns an opposite value of the wantTrue.

func IsNodeReady added in v1.17.0

func IsNodeReady(node *v1.Node) bool

IsNodeReady returns true if: 1) it's Ready condition is set to true 2) doesn't have NetworkUnavailable condition set to true

func IsNodeSchedulable added in v1.17.0

func IsNodeSchedulable(node *v1.Node) bool

IsNodeSchedulable returns true if: 1) doesn't have "unschedulable" field set 2) it also returns true from IsNodeReady

func NewRuntimeClassPod added in v1.18.0

func NewRuntimeClassPod(runtimeClassName string) *v1.Pod

NewRuntimeClassPod returns a test pod with the given runtimeClassName

func PickIP

func PickIP(c clientset.Interface) (string, error)

PickIP picks one public node IP

func RemoveTaintOffNode added in v1.19.0

func RemoveTaintOffNode(c clientset.Interface, nodeName string, taint v1.Taint)

RemoveTaintOffNode removes the given taint from the given node.

func RemoveTaintsOffNode added in v1.21.0

func RemoveTaintsOffNode(c clientset.Interface, nodeName string, taints []v1.Taint)

RemoveTaintsOffNode removes a list of taints from the given node It is simply a helper wrapper for RemoveTaintOffNode

func TotalReady

func TotalReady(c clientset.Interface) (int, error)

TotalReady returns number of ready schedulable Nodes.

func TotalRegistered

func TotalRegistered(c clientset.Interface) (int, error)

TotalRegistered returns number of schedulable Nodes.

func WaitConditionToBe

func WaitConditionToBe(c clientset.Interface, name string, conditionType v1.NodeConditionType, wantTrue bool, timeout time.Duration) bool

WaitConditionToBe returns whether node "name's" condition state matches wantTrue within timeout. If wantTrue is true, it will ensure the node condition status is ConditionTrue; if it's false, it ensures the node condition is in any state other than ConditionTrue (e.g. not true or unknown).

func WaitForNodeToBeNotReady

func WaitForNodeToBeNotReady(c clientset.Interface, name string, timeout time.Duration) bool

WaitForNodeToBeNotReady returns whether node name is not ready (i.e. the readiness condition is anything but ready, e.g false or unknown) within timeout.

func WaitForNodeToBeReady

func WaitForNodeToBeReady(c clientset.Interface, name string, timeout time.Duration) bool

WaitForNodeToBeReady returns whether node name is ready within timeout.

func WaitForReadyNodes

func WaitForReadyNodes(c clientset.Interface, size int, timeout time.Duration) error

WaitForReadyNodes waits up to timeout for cluster to has desired size and there is no not-ready nodes in it. By cluster size we mean number of schedulable Nodes.

func WaitForTotalHealthy

func WaitForTotalHealthy(c clientset.Interface, timeout time.Duration) error

WaitForTotalHealthy checks whether all registered nodes are ready and all required Pods are running on them.

Types

type PodNode

type PodNode struct {
	// Pod represents pod name
	Pod string
	// Node represents node name
	Node string
}

PodNode is a pod-node pair indicating which node a given pod is running on

func PodNodePairs

func PodNodePairs(c clientset.Interface, ns string) ([]PodNode, error)

PodNodePairs return podNode pairs for all pods in a namespace

Jump to

Keyboard shortcuts

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