e2enode

package
v1.28.0-alpha.3...-059ce4e Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2023 License: Apache-2.0 Imports: 84 Imported by: 0

README

Documentation

Overview

Package e2enode contains e2e tests specific to the node

Index

Constants

View Source
const (
	// TimeSeriesTag is the tag for time series.
	TimeSeriesTag = "[Result:TimeSeries]"
	// TimeSeriesEnd is the end tag for time series.
	TimeSeriesEnd = "[Finish:TimeSeries]"
)
View Source
const (
	// SampleDevicePluginDSYAML is the path of the daemonset template of the sample device plugin. // TODO: Parametrize it by making it a feature in TestFramework.
	SampleDevicePluginDSYAML                    = "test/e2e/testing-manifests/sample-device-plugin/sample-device-plugin.yaml"
	SampleDevicePluginControlRegistrationDSYAML = "test/e2e/testing-manifests/sample-device-plugin/sample-device-plugin-control-registration.yaml"

	// SampleDevicePluginName is the name of the device plugin pod
	SampleDevicePluginName = "sample-device-plugin"

	// SampleDeviceResourceName is the name of the resource provided by the sample device plugin
	SampleDeviceResourceName = "example.com/resource"

	SampleDeviceEnvVarNamePluginSockDir = "PLUGIN_SOCK_DIR"
)
View Source
const (
	// SRIOVDevicePluginCMYAML is the path of the config map to configure the sriov device plugin.
	SRIOVDevicePluginCMYAML = "test/e2e_node/testing-manifests/sriovdp-cm.yaml"
	// SRIOVDevicePluginDSYAML is the path of the daemonset template of the sriov device plugin. // TODO: Parametrize it by making it a feature in TestFramework.
	SRIOVDevicePluginDSYAML = "test/e2e_node/testing-manifests/sriovdp-ds.yaml"
	// SRIOVDevicePluginSAYAML is the path of the service account needed by the sriov device plugin to run.
	SRIOVDevicePluginSAYAML = "test/e2e_node/testing-manifests/sriovdp-sa.yaml"
	// SRIOVDevicePluginName is the name of the device plugin pod
	SRIOVDevicePluginName = "sriov-device-plugin"
)

Variables

View Source
var NodePrePullImageList = sets.NewString(
	imageutils.GetE2EImage(imageutils.Agnhost),
	"gcr.io/cadvisor/cadvisor:v0.47.2",
	"registry.k8s.io/stress:v1",
	busyboxImage,
	"registry.k8s.io/busybox@sha256:4bdd623e848417d96127e16037743f0cd8b528c026e9175e22a84f639eca58ff",
	imageutils.GetE2EImage(imageutils.Nginx),
	imageutils.GetE2EImage(imageutils.Perl),
	imageutils.GetE2EImage(imageutils.Nonewprivs),
	imageutils.GetPauseImageName(),
	imageutils.GetE2EImage(imageutils.NodePerfNpbEp),
	imageutils.GetE2EImage(imageutils.NodePerfNpbIs),
	imageutils.GetE2EImage(imageutils.Etcd),
)

NodePrePullImageList is a list of images used in node e2e test. These images will be prepulled before test running so that the image pulling won't fail in actual test.

Functions

func CountSampleDeviceAllocatable

func CountSampleDeviceAllocatable(node *v1.Node) int64

CountSampleDeviceAllocatable returns the number of devices of SampleDeviceResourceName advertised by a node allocatable

func CountSampleDeviceCapacity

func CountSampleDeviceCapacity(node *v1.Node) int64

CountSampleDeviceCapacity returns the number of devices of SampleDeviceResourceName advertised by a node capacity

func ExecCommand

func ExecCommand(name string, c execCommand) []string

ExecCommand returns the command to execute in the container that implements execCommand and logs activities to a container specific log that persists across container restarts. The final log is written to /dev/termination-log so it can be retrieved by the test harness after the container execution.

func IsCgroup2UnifiedMode

func IsCgroup2UnifiedMode() bool

IsCgroup2UnifiedMode returns whether we are running in cgroup v2 unified mode.

func PrePullAllImages

func PrePullAllImages() error

PrePullAllImages pre-fetches all images tests depend on so that we don't fail in an actual test.

func SIGDescribe

func SIGDescribe(text string, body func()) bool

SIGDescribe annotates the test with the SIG label.

func WaitForPodContainerRestartCount

func WaitForPodContainerRestartCount(ctx context.Context, c clientset.Interface, namespace, podName string, containerIndex int, desiredRestartCount int32, timeout time.Duration) error

WaitForPodContainerRestartCount waits for the given Pod container to achieve at least a given restartCount TODO: eventually look at moving to test/e2e/framework/pod

func WaitForPodInitContainerRestartCount

func WaitForPodInitContainerRestartCount(ctx context.Context, c clientset.Interface, namespace, podName string, initContainerIndex int, desiredRestartCount int32, timeout time.Duration) error

WaitForPodInitContainerRestartCount waits for the given Pod init container to achieve at least a given restartCount TODO: eventually look at moving to test/e2e/framework/pod

func WaitForPodInitContainerToFail

func WaitForPodInitContainerToFail(ctx context.Context, c clientset.Interface, namespace, podName string, containerIndex int, reason string, timeout time.Duration) error

WaitForPodInitContainerToFail waits for the given Pod init container to fail with the given reason, specifically due to invalid container configuration. In this case, the container will remain in a waiting state with a specific reason set, which should match the given reason. TODO: eventually look at moving to test/e2e/framework/pod

Types

type ResourceCollector

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

ResourceCollector is a collector object which collects resource usage periodically from Cadvisor.

func NewResourceCollector

func NewResourceCollector(interval time.Duration) *ResourceCollector

NewResourceCollector creates a resource collector object which collects resource usage periodically from Cadvisor

func (*ResourceCollector) GetBasicCPUStats

func (r *ResourceCollector) GetBasicCPUStats(containerName string) map[float64]float64

GetBasicCPUStats returns the percentiles the cpu usage in cores for containerName. This method examines all data currently in the buffer.

func (*ResourceCollector) GetCPUSummary

GetCPUSummary gets CPU usage in percentile.

func (*ResourceCollector) GetLatest

GetLatest gets the latest resource usage from stats buffer.

func (*ResourceCollector) GetResourceTimeSeries

func (r *ResourceCollector) GetResourceTimeSeries() map[string]*perftype.ResourceSeries

GetResourceTimeSeries gets the time series of resource usage of each container.

func (*ResourceCollector) LogLatest

func (r *ResourceCollector) LogLatest()

LogLatest logs the latest resource usage.

func (*ResourceCollector) Reset

func (r *ResourceCollector) Reset()

Reset clears the stats buffer of resource collector.

func (*ResourceCollector) Start

func (r *ResourceCollector) Start()

Start starts resource collector and connects to the standalone Cadvisor pod then repeatedly runs collectStats.

func (*ResourceCollector) Stop

func (r *ResourceCollector) Stop()

Stop stops resource collector collecting stats. It does not clear the buffer

Directories

Path Synopsis
Build the binary with `go build conformance.go`, then run the conformance binary on a node candidate.
Build the binary with `go build conformance.go`, then run the conformance binary on a node candidate.
perf
plugins
gcp-credential-provider
Originally copied from pkg/credentialproviders/gcp
Originally copied from pkg/credentialproviders/gcp
Package remote contains implementations of the TestSuite interface, which specify how to run various node test suites remotely.
Package remote contains implementations of the TestSuite interface, which specify how to run various node test suites remotely.
gce
runner
remote
To run the node e2e tests remotely against one or more hosts on gce: $ go run run_remote.go --v 2 --ssh-env gce --hosts <comma separated hosts> To run the node e2e tests remotely against one or more images on gce and provision them: $ go run run_remote.go --v 2 --project <project> --zone <zone> --ssh-env gce --images <comma separated images>
To run the node e2e tests remotely against one or more hosts on gce: $ go run run_remote.go --v 2 --ssh-env gce --hosts <comma separated hosts> To run the node e2e tests remotely against one or more images on gce and provision them: $ go run run_remote.go --v 2 --project <project> --zone <zone> --ssh-env gce --images <comma separated images>

Jump to

Keyboard shortcuts

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